From 2c14206a5bfb05371969bc8e4da69965475e1908 Mon Sep 17 00:00:00 2001 From: zhaojing1987 Date: Sat, 21 Mar 2026 13:56:42 +0800 Subject: [PATCH 1/2] erpnext: stabilize hrms asset sync during startup --- .gitignore | 6 +- apps/erpnext/.env | 2 +- apps/erpnext/Notes.md | 62 ---------------- apps/erpnext/README.md | 2 +- apps/erpnext/docker-compose.yml | 44 ++++-------- apps/erpnext/src/after_up.sh | 1 - apps/erpnext/src/compose.yaml | 72 ------------------- apps/erpnext/src/create-site.sh | 65 +++++++++++++++++ apps/erpnext/src/encrypt.sh | 12 ---- apps/erpnext/src/example.env | 40 ----------- apps/erpnext/src/filelist | 4 -- apps/erpnext/src/get_version.sh | 1 - .../src/overrides/compose.erpnext.yaml | 24 ------- .../src/overrides/compose.mariadb.yaml | 27 ------- .../src/overrides/compose.noproxy.yaml | 4 -- apps/erpnext/src/overrides/compose.redis.yaml | 16 ----- apps/erpnext/variables.json | 4 +- 17 files changed, 85 insertions(+), 301 deletions(-) delete mode 100755 apps/erpnext/src/after_up.sh delete mode 100755 apps/erpnext/src/compose.yaml create mode 100644 apps/erpnext/src/create-site.sh delete mode 100755 apps/erpnext/src/encrypt.sh delete mode 100755 apps/erpnext/src/example.env delete mode 100755 apps/erpnext/src/filelist delete mode 100755 apps/erpnext/src/get_version.sh delete mode 100755 apps/erpnext/src/overrides/compose.erpnext.yaml delete mode 100755 apps/erpnext/src/overrides/compose.mariadb.yaml delete mode 100755 apps/erpnext/src/overrides/compose.noproxy.yaml delete mode 100755 apps/erpnext/src/overrides/compose.redis.yaml diff --git a/.gitignore b/.gitignore index 8dc53cda5..f827b718b 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,8 @@ artifacts mk.sh .claude -_bmad-output \ No newline at end of file +_bmad-output + +# Pre-downloaded app sources (large, user-managed, not version-controlled) +apps/erpnext/src/hrms/* +!apps/erpnext/src/hrms/.gitkeep \ No newline at end of file diff --git a/apps/erpnext/.env b/apps/erpnext/.env index 7e42258b4..d77fd8172 100644 --- a/apps/erpnext/.env +++ b/apps/erpnext/.env @@ -6,7 +6,7 @@ W9_HRMS_BRANCH=version-16 W9_ID=erpnext W9_POWER_PASSWORD=1PrMxExC45LsCT -W9_HTTP_PORT_SET=9001 +W9_HTTP_PORT_SET=9019 W9_HTTP_PORT=8080 W9_URL=appname.example.com W9_LOGIN_USER=Administrator diff --git a/apps/erpnext/Notes.md b/apps/erpnext/Notes.md index 346a83324..8a14d6d3b 100644 --- a/apps/erpnext/Notes.md +++ b/apps/erpnext/Notes.md @@ -1,64 +1,2 @@ # ERPNext -## Install - -官方非常及时的更新了安装所需的镜像,且提供了灵活多变的 docker compose 文件以供用户使用。 - -由于过于灵活,导致理解起来有些困难。 实际上 ERPNext 的安装比较简单: - -1. 将 example.env 另存为根目录 .env -2. 将 compose.yaml 另存为根目录下 compose.yaml 或 docker-compose.yml,然后略加修改。接下来有两个可选方案: -3. 方案一:使用 compose convert 命令合并多个 compose 为一个完整的 compose 文件(环境变量会替换),然后启动容器 -``` -docker compose -f compose.yaml -f src/overrides/compose.erpnext.yaml -f src/overrides/compose.redis.yaml -f src/overrides/compose.mariadb.yaml convert > docker-compose.yml -``` -4. 方案二(推荐):启动时引入主 compose 文件以及有选择性的启动 overrides 文件夹下的 docker compose 文件 (多 compose 文件的用法) -``` -docker compose -f docker-compose.yml -f src/overrides/compose.erpnext.yaml -f src/overrides/compose.redis.yaml -f src/overrides/compose.mariadb.yaml up -d -``` - -5. 主服务 backend 中创建一个 erpnext 项目(此步骤是必须的,但很容易被忽略) -``` -W9_URL=8.218.129.87 -docker compose exec backend bench new-site youurl --mariadb-root-password yourpassword --admin-password admin123 - -or - -``` -参考:https://github1s.com/frappe/frappe_docker/blob/HEAD/docs/site-operations.md - -## FAQ - -#### 默认管理员账号密码? - -username: Administrator -password: admin - -#### ERPNext 镜像与 Frappe 镜像有什么区别? - -经过研究,ERPNext 是官方推出的新的镜像,感觉未来应该推荐使用它。 - -实验中发现 ERPNext 不会出现图片乱码问题 - -#### 究竟如何部署 ERPNext? - -从官方源码中发现,安装文档指南(单一服务器)中对安装写得过于繁琐,但实际上只需采用 overrides 中多个 compose 文件即可快速安装。 - -这是怎么回事呢?通过官方的论坛中研究,发现这是文档更新不及时导致,也就是说overrides中的安装在文档中还没有体现,虽然它更具有效率。 - - -### 安装完成后执行命令,同步hrms资源,解决图片不显示 -``` -docker compose exec frontend bash -lc 'set -euxo pipefail; cd /home/frappe/frappe-bench; id; ls -ld apps/hrms/hrms/public; mkdir -p sites/assets/hrms; cp -a apps/hrms/hrms/public/. sites/assets/hrms/; ls -lah sites/assets/hrms; ls -lah sites/assets/hrms/images/frappe-hr-logo.svg' -``` - -#### 与URL有关的变量有那些? - -``` -echo "ROUTER=custom-one-example" > ~/gitops/custom-one-example.env -echo "SITES=\`custom-one.example.com\`" >> ~/gitops/custom-one-example.env -echo "BASE_SITE=one.example.com" >> ~/gitops/custom-one-example.env -echo "BENCH_NETWORK=erpnext-one" >> ~/gitops/custom-one-example.env -``` - -https://github.com/frappe/frappe_docker/blob/main/docs/single-server-example.md#create-custom-domain-to-existing-site \ No newline at end of file diff --git a/apps/erpnext/README.md b/apps/erpnext/README.md index 7a3e0bdeb..d193beed8 100644 --- a/apps/erpnext/README.md +++ b/apps/erpnext/README.md @@ -3,7 +3,7 @@ This is an **[Docker Compose template](https://github.com/Websoft9/docker-library)** powered by [Websoft9](https://www.websoft9.com) based on Docker for ERPNext: - - community: v16, v15, v14 + - community: v16 ## System Requirements diff --git a/apps/erpnext/docker-compose.yml b/apps/erpnext/docker-compose.yml index 9bb9544ce..d9665c39b 100644 --- a/apps/erpnext/docker-compose.yml +++ b/apps/erpnext/docker-compose.yml @@ -43,44 +43,18 @@ services: image: $W9_REPO:$W9_VERSION container_name: $W9_ID-create-site restart: none + env_file: + - .env volumes: - apps:/home/frappe/frappe-bench/apps - env:/home/frappe/frappe-bench/env - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs + - ./src/create-site.sh:/usr/local/bin/create-site.sh + - ./src/hrms:/opt/hrms-src:ro entrypoint: - bash - - -c - command: - - > - set -e; wait-for-it -t 120 $W9_ID-mariadb:3306; wait-for-it -t 120 $W9_ID-redis-cache:6379; wait-for-it -t 120 $W9_ID-redis-queue:6379; export start=`date +%s`; until [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".db_host // empty"` ]] && \ - [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".redis_cache // empty"` ]] && \ - [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".redis_queue // empty"` ]]; - do - echo "Waiting for sites/common_site_config.json to be created"; - sleep 5; - if (( `date +%s`-start > 120 )); then - echo "could not find sites/common_site_config.json with required keys"; - exit 1 - fi - done; echo "sites/common_site_config.json found"; if [ ! -d sites/frontend ]; then - bench new-site --mariadb-user-host-login-scope='%' --admin-password=$W9_LOGIN_PASSWORD --db-root-username=root --db-root-password=$W9_LOGIN_PASSWORD --install-app erpnext --set-default frontend; - else - echo "Site frontend already exists, skip new-site"; - fi; if [ ! -d apps/hrms ]; then - bench get-app --branch $W9_HRMS_BRANCH hrms; - fi; bench pip install -e apps/hrms; ls -1 apps > sites/apps.txt; if ! bench --site frontend list-apps | grep -qx hrms; then - bench --site frontend install-app hrms; - else - echo "HRMS already installed on frontend"; - fi; mkdir -p sites/assets; rm -rf sites/assets/hrms; cp -a /home/frappe/frappe-bench/apps/hrms/hrms/public sites/assets/hrms; if command -v node >/dev/null 2>&1; then - bench build --app hrms; - else - echo "node not found, skip bench build --app hrms"; - fi; if [ ! -f sites/assets/hrms/images/frappe-hr-logo.svg ]; then - echo "ERROR: HRMS asset missing after build: sites/assets/hrms/images/frappe-hr-logo.svg"; - exit 1; - fi; bench --site frontend migrate; bench --site frontend clear-cache; bench --site frontend clear-website-cache; + - /usr/local/bin/create-site.sh mariadb: image: mariadb:$W9_DB_VERSION @@ -112,7 +86,13 @@ services: env_file: - .env command: - - nginx-entrypoint.sh + - bash + - -c + - > + set -e; cd /home/frappe/frappe-bench; if [ -d apps/hrms/hrms/public ]; then + mkdir -p sites/assets/hrms; + cp -a apps/hrms/hrms/public/. sites/assets/hrms/; + fi; exec nginx-entrypoint.sh environment: BACKEND: $W9_ID-backend:8000 FRAPPE_SITE_NAME_HEADER: frontend diff --git a/apps/erpnext/src/after_up.sh b/apps/erpnext/src/after_up.sh deleted file mode 100755 index d3f5a12fa..000000000 --- a/apps/erpnext/src/after_up.sh +++ /dev/null @@ -1 +0,0 @@ - diff --git a/apps/erpnext/src/compose.yaml b/apps/erpnext/src/compose.yaml deleted file mode 100755 index 85f029319..000000000 --- a/apps/erpnext/src/compose.yaml +++ /dev/null @@ -1,72 +0,0 @@ -x-depends-on-configurator: &depends_on_configurator - depends_on: - configurator: - condition: service_completed_successfully - -x-backend-defaults: &backend_defaults - <<: *depends_on_configurator - image: frappe/frappe-worker:${FRAPPE_VERSION:?No Frappe version set} - volumes: - - sites:/home/frappe/frappe-bench/sites - -services: - configurator: - <<: *backend_defaults - command: configure.py - environment: - DB_HOST: ${DB_HOST} - DB_PORT: ${DB_PORT} - REDIS_CACHE: ${REDIS_CACHE} - REDIS_QUEUE: ${REDIS_QUEUE} - REDIS_SOCKETIO: ${REDIS_SOCKETIO} - SOCKETIO_PORT: 9000 - depends_on: {} - - backend: - <<: *backend_defaults - volumes: - - sites:/home/frappe/frappe-bench/sites - - assets:/home/frappe/frappe-bench/sites/assets:ro - - frontend: - image: frappe/frappe-nginx:${FRAPPE_VERSION} - environment: - BACKEND: backend:8000 - SOCKETIO: websocket:9000 - FRAPPE_SITE_NAME_HEADER: ${FRAPPE_SITE_NAME_HEADER:-$$host} - UPSTREAM_REAL_IP_ADDRESS: ${UPSTREAM_REAL_IP_ADDRESS:-127.0.0.1} - UPSTREAM_REAL_IP_HEADER: ${UPSTREAM_REAL_IP_HEADER:-X-Forwarded-For} - UPSTREAM_REAL_IP_RECURSIVE: ${UPSTREAM_REAL_IP_RECURSIVE:-off} - volumes: - - sites:/usr/share/nginx/html/sites - - assets:/usr/share/nginx/html/assets - depends_on: - - backend - - websocket - - websocket: - <<: *depends_on_configurator - image: frappe/frappe-socketio:${FRAPPE_VERSION} - volumes: - - sites:/home/frappe/frappe-bench/sites - - queue-short: - <<: *backend_defaults - command: bench worker --queue short - - queue-default: - <<: *backend_defaults - command: bench worker --queue default - - queue-long: - <<: *backend_defaults - command: bench worker --queue long - - scheduler: - <<: *backend_defaults - command: bench schedule - -# ERPNext requires local assets access (Frappe does not) -volumes: - sites: - assets: diff --git a/apps/erpnext/src/create-site.sh b/apps/erpnext/src/create-site.sh new file mode 100644 index 000000000..b17854b27 --- /dev/null +++ b/apps/erpnext/src/create-site.sh @@ -0,0 +1,65 @@ +#!/bin/bash +# create-site.sh — one-shot ERPNext + HRMS site initializer. +# +# HRMS is installed from a locally pre-downloaded copy at ./src/hrms/ +# (mounted read-only at /opt/hrms-src). No runtime GitHub access needed. +# +# Before first `docker compose up`, place HRMS source code into src/hrms/: +# git clone --depth 1 --branch version-16 https://github.com/frappe/hrms src/hrms +set -e + +# ── 1. Wait for infrastructure ──────────────────────────────────────────────── +wait-for-it -t 120 "${W9_ID}-mariadb:3306" +wait-for-it -t 120 "${W9_ID}-redis-cache:6379" +wait-for-it -t 120 "${W9_ID}-redis-queue:6379" + +# ── 2. Wait for configurator to write common_site_config.json ───────────────── +export start=$(date +%s) +until [[ -n $(grep -hs ^ sites/common_site_config.json | jq -r ".db_host // empty") ]] && \ + [[ -n $(grep -hs ^ sites/common_site_config.json | jq -r ".redis_cache // empty") ]] && \ + [[ -n $(grep -hs ^ sites/common_site_config.json | jq -r ".redis_queue // empty") ]]; do + echo "Waiting for sites/common_site_config.json..." + sleep 5 + if (( $(date +%s) - start > 120 )); then + echo "ERROR: timed out waiting for common_site_config.json" + exit 1 + fi +done +echo "common_site_config.json ready" + +# ── 3. Create site with ERPNext (official pattern, idempotent) ──────────────── +if [ ! -d sites/frontend ]; then + bench new-site \ + --mariadb-user-host-login-scope='%' \ + --admin-password="${W9_LOGIN_PASSWORD}" \ + --db-root-username=root \ + --db-root-password="${W9_LOGIN_PASSWORD}" \ + --install-app erpnext \ + --set-default frontend +else + echo "Site frontend already exists, skipping" +fi + +# ── 4. Copy pre-downloaded HRMS and register into Python env ────────────────── +# Must happen after bench new-site so the Python env is fully initialized. +if [ ! -d apps/hrms ]; then + if [ ! -f /opt/hrms-src/setup.py ] && [ ! -f /opt/hrms-src/pyproject.toml ]; then + echo "ERROR: /opt/hrms-src is empty. Run 'bash src/get-hrms.sh' on the host first." + exit 1 + fi + echo "Copying HRMS from local source..." + cp -a /opt/hrms-src apps/hrms +fi +bench pip install -e apps/hrms +ls -1 apps > sites/apps.txt + +# ── 5. Install HRMS on site ─────────────────────────────────────────────────── +if ! bench --site frontend list-apps | grep -qx hrms; then + bench --site frontend install-app hrms +else + echo "HRMS already installed, skipping" +fi + +# ── 6. HRMS static assets ───────────────────────────────────────────────────── +# Keep create-site minimal. HRMS static files are synchronized in frontend +# service startup command before nginx starts. diff --git a/apps/erpnext/src/encrypt.sh b/apps/erpnext/src/encrypt.sh deleted file mode 100755 index a669725de..000000000 --- a/apps/erpnext/src/encrypt.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin -clear - - - -# Add encrypt script below if use W9_ENCRYPT_PASSWORD at .env file -# ------------- start ------------------------- - - - -# ------------- end --------------------------- diff --git a/apps/erpnext/src/example.env b/apps/erpnext/src/example.env deleted file mode 100755 index f90e74108..000000000 --- a/apps/erpnext/src/example.env +++ /dev/null @@ -1,40 +0,0 @@ -# Reference: https://github.com/frappe/frappe_docker/blob/main/docs/images-and-compose-files.md - -FRAPPE_VERSION=v13.30.0 - -# Only with ERPNext override -ERPNEXT_VERSION=v13.31.1 - -DB_PASSWORD=123 - -# Only if you use external database -DB_HOST= -DB_PORT= - -# Only if you use external Redis -REDIS_CACHE= -REDIS_QUEUE= -REDIS_SOCKETIO= - -# Only with HTTPS override -LETSENCRYPT_EMAIL=mail@example.com - -# These environment variables are not required. - -# Default value is `$$host` which resolves site by host. For example, if your host is `example.com`, -# site's name should be `example.com`, or if host is `127.0.0.1` (local debugging), it should be `127.0.0.1`. -# This variable allows to override described behavior. Let's say you create site named `mysite` -# and do want to access it by `127.0.0.1` host. Than you would set this variable to `mysite`. -FRAPPE_SITE_NAME_HEADER= - -# Default value is `127.0.0.1`. Set IP address as our trusted upstream address. -UPSTREAM_REAL_IP_ADDRESS= - -# Default value is `X-Forwarded-For`. Set request header field whose value will be used to replace the client address -UPSTREAM_REAL_IP_HEADER= - -# Allowed values are on|off. Default value is `off`. If recursive search is disabled, -# the original client address that matches one of the trusted addresses -# is replaced by the last address sent in the request header field defined by the real_ip_header directive. -# If recursive search is enabled, the original client address that matches one of the trusted addresses is replaced by the last non-trusted address sent in the request header field. -UPSTREAM_REAL_IP_RECURSIVE= \ No newline at end of file diff --git a/apps/erpnext/src/filelist b/apps/erpnext/src/filelist deleted file mode 100755 index 60e982b6f..000000000 --- a/apps/erpnext/src/filelist +++ /dev/null @@ -1,4 +0,0 @@ -# https://github.com/frappe/frappe_docker -compose.yaml -example.env -overrides \ No newline at end of file diff --git a/apps/erpnext/src/get_version.sh b/apps/erpnext/src/get_version.sh deleted file mode 100755 index a6429db8b..000000000 --- a/apps/erpnext/src/get_version.sh +++ /dev/null @@ -1 +0,0 @@ -sudo echo "erpnext version:" $(docker exec -i erpnext cat /home/frappe/frappe-bench/apps/erpnext/erpnext/__init__.py|grep version |cut -d "=" -f2) 1>> /data/logs/install_version.txt diff --git a/apps/erpnext/src/overrides/compose.erpnext.yaml b/apps/erpnext/src/overrides/compose.erpnext.yaml deleted file mode 100755 index a82d35abb..000000000 --- a/apps/erpnext/src/overrides/compose.erpnext.yaml +++ /dev/null @@ -1,24 +0,0 @@ -x-erpnext-backend-image: &erpnext_backend_image - image: frappe/erpnext-worker:${ERPNEXT_VERSION:?No ERPNext version set} - -services: - configurator: - <<: *erpnext_backend_image - - backend: - <<: *erpnext_backend_image - - frontend: - image: frappe/erpnext-nginx:${ERPNEXT_VERSION} - - queue-short: - <<: *erpnext_backend_image - - queue-default: - <<: *erpnext_backend_image - - queue-long: - <<: *erpnext_backend_image - - scheduler: - <<: *erpnext_backend_image diff --git a/apps/erpnext/src/overrides/compose.mariadb.yaml b/apps/erpnext/src/overrides/compose.mariadb.yaml deleted file mode 100755 index 4592d5f58..000000000 --- a/apps/erpnext/src/overrides/compose.mariadb.yaml +++ /dev/null @@ -1,27 +0,0 @@ -services: - configurator: - environment: - DB_HOST: db - DB_PORT: 3306 - depends_on: - db: - condition: service_healthy - - db: - image: mariadb:10.6 - healthcheck: - test: mysqladmin ping -h localhost --password=${DB_PASSWORD} - interval: 1s - retries: 15 - command: - - --character-set-server=utf8mb4 - - --collation-server=utf8mb4_unicode_ci - - --skip-character-set-client-handshake - - --skip-innodb-read-only-compressed # Temporary fix for MariaDB 10.6 - environment: - MYSQL_ROOT_PASSWORD: ${DB_PASSWORD:?No db password set} - volumes: - - db-data:/var/lib/mysql - -volumes: - db-data: diff --git a/apps/erpnext/src/overrides/compose.noproxy.yaml b/apps/erpnext/src/overrides/compose.noproxy.yaml deleted file mode 100755 index 599005eb5..000000000 --- a/apps/erpnext/src/overrides/compose.noproxy.yaml +++ /dev/null @@ -1,4 +0,0 @@ -services: - frontend: - ports: - - 8080:8080 diff --git a/apps/erpnext/src/overrides/compose.redis.yaml b/apps/erpnext/src/overrides/compose.redis.yaml deleted file mode 100755 index 43a5ff828..000000000 --- a/apps/erpnext/src/overrides/compose.redis.yaml +++ /dev/null @@ -1,16 +0,0 @@ -services: - configurator: - environment: - REDIS_CACHE: redis:6379/0 - REDIS_QUEUE: redis:6379/1 - REDIS_SOCKETIO: redis:6379/2 - depends_on: - - redis - - redis: - image: redis:6.2-alpine - volumes: - - redis-data:/data - -volumes: - redis-data: diff --git a/apps/erpnext/variables.json b/apps/erpnext/variables.json index 1c45dab89..37c727e31 100644 --- a/apps/erpnext/variables.json +++ b/apps/erpnext/variables.json @@ -8,9 +8,7 @@ { "dist": "community", "version": [ - "v16", - "v15", - "v14" + "v16" ] } ], From c4dbf8e6c79841009b4779a71ec7e8aaad7f0bcd Mon Sep 17 00:00:00 2001 From: zhaojing1987 Date: Sat, 21 Mar 2026 14:01:31 +0800 Subject: [PATCH 2/2] erpnext: track bundled hrms source in src/hrms --- .gitignore | 4 +- apps/erpnext/src/hrms/.editorconfig | 15 + apps/erpnext/src/hrms/.git-blame-ignore-revs | 30 + apps/erpnext/src/hrms/.github/CODEOWNERS | 13 + .../.github/ISSUE_TEMPLATE/bug_report.yaml | 81 + .../hrms/.github/ISSUE_TEMPLATE/config.yml | 5 + .../ISSUE_TEMPLATE/feature_request.yaml | 50 + .../src/hrms/.github/PULL_REQUEST_TEMPLATE.md | 33 + .../src/hrms/.github/frappe-hr-logo.png | Bin 0 -> 6741 bytes .../src/hrms/.github/frappe-hr-old-logo.png | Bin 0 -> 4261 bytes .../erpnext/src/hrms/.github/helper/apps.json | 5 + .../src/hrms/.github/helper/documentation.py | 43 + .../src/hrms/.github/helper/install.sh | 61 + .../src/hrms/.github/helper/site_config.json | 17 + .../src/hrms/.github/helper/translation.py | 68 + .../hrms/.github/helper/update_pot_file.sh | 44 + .../src/hrms/.github/hrms-appraisal.png | Bin 0 -> 1202115 bytes .../src/hrms/.github/hrms-attendance.png | Bin 0 -> 990423 bytes apps/erpnext/src/hrms/.github/hrms-hero.png | Bin 0 -> 1136444 bytes apps/erpnext/src/hrms/.github/hrms-pwa.png | Bin 0 -> 1832501 bytes .../src/hrms/.github/hrms-requisition.png | Bin 0 -> 1009132 bytes apps/erpnext/src/hrms/.github/hrms-salary.png | Bin 0 -> 1049915 bytes apps/erpnext/src/hrms/.github/labeler.yml | 4 + apps/erpnext/src/hrms/.github/release.yml | 4 + .../hrms/.github/try-on-f-cloud-button.svg | 32 + .../hrms/.github/workflows/build_image.yml | 66 + .../erpnext/src/hrms/.github/workflows/ci.yml | 144 + .../hrms/.github/workflows/docs_checker.yml | 25 + .../.github/workflows/generate-pot-file.yml | 35 + .../.github/workflows/initiate_release.yml | 32 + .../src/hrms/.github/workflows/labeller.yml | 12 + .../src/hrms/.github/workflows/linters.yml | 49 + .../src/hrms/.github/workflows/on_release.yml | 32 + .../hrms/.github/workflows/release_notes.yml | 42 + .../src/hrms/.github/workflows/stale.yml | 37 + apps/erpnext/src/hrms/.gitignore | 22 + apps/erpnext/src/hrms/.gitmodules | 3 + apps/erpnext/src/hrms/.mergify.yml | 79 + apps/erpnext/src/hrms/.pre-commit-config.yaml | 49 + apps/erpnext/src/hrms/.releaserc | 24 + apps/erpnext/src/hrms/.semgrepignore | 1 + apps/erpnext/src/hrms/CODE_OF_CONDUCT.md | 46 + apps/erpnext/src/hrms/MANIFEST.in | 17 + apps/erpnext/src/hrms/README.md | 138 + apps/erpnext/src/hrms/codecov.yml | 24 + apps/erpnext/src/hrms/commitlint.config.js | 26 + apps/erpnext/src/hrms/crowdin.yml | 12 + .../src/hrms/docker/docker-compose.yml | 31 + apps/erpnext/src/hrms/docker/init.sh | 42 + apps/erpnext/src/hrms/frontend/.eslintrc.js | 22 + apps/erpnext/src/hrms/frontend/.gitignore | 6 + .../src/hrms/frontend/.prettierrc.json | 5 + apps/erpnext/src/hrms/frontend/index.html | 194 + .../src/hrms/frontend/ionic.config.json | 8 + apps/erpnext/src/hrms/frontend/jsconfig.json | 5 + apps/erpnext/src/hrms/frontend/package.json | 37 + .../src/hrms/frontend/postcss.config.js | 6 + .../src/hrms/frontend/public/favicon.png | Bin 0 -> 440 bytes .../public/frappe-push-notification.js | 294 + apps/erpnext/src/hrms/frontend/public/sw.js | 64 + apps/erpnext/src/hrms/frontend/src/App.vue | 24 + .../src/components/AttendanceCalendar.vue | 132 + .../src/components/AttendanceRequestItem.vue | 56 + .../frontend/src/components/BaseLayout.vue | 68 + .../frontend/src/components/BottomTabs.vue | 67 + .../frontend/src/components/CheckInPanel.vue | 210 + .../src/components/CustomIonModal.vue | 45 + .../src/components/EmployeeAdvanceBalance.vue | 39 + .../src/components/EmployeeAdvanceItem.vue | 76 + .../src/components/EmployeeAvatar.vue | 53 + .../src/components/EmployeeCheckinItem.vue | 29 + .../frontend/src/components/EmptyState.vue | 17 + .../src/components/ExpenseAdvancesTable.vue | 93 + .../src/components/ExpenseClaimItem.vue | 107 + .../src/components/ExpenseClaimSummary.vue | 89 + .../frontend/src/components/ExpenseItems.vue | 59 + .../src/components/ExpenseTaxesTable.vue | 265 + .../frontend/src/components/ExpensesTable.vue | 246 + .../src/components/FilePreviewModal.vue | 60 + .../src/components/FileUploaderView.vue | 130 + .../frontend/src/components/FormField.vue | 231 + .../hrms/frontend/src/components/FormView.vue | 787 + .../src/components/FormattedField.vue | 84 + .../hrms/frontend/src/components/Holidays.vue | 105 + .../frontend/src/components/InstallPrompt.vue | 103 + .../frontend/src/components/LeaveBalance.vue | 57 + .../src/components/LeaveRequestItem.vue | 58 + .../src/hrms/frontend/src/components/Link.vue | 99 + .../src/components/ListFiltersActionSheet.vue | 135 + .../hrms/frontend/src/components/ListItem.vue | 37 + .../hrms/frontend/src/components/ListView.vue | 405 + .../src/components/ProfileInfoModal.vue | 45 + .../frontend/src/components/QuickLinks.vue | 38 + .../src/components/RequestActionSheet.vue | 346 + .../frontend/src/components/RequestList.vue | 103 + .../frontend/src/components/RequestPanel.vue | 80 + .../src/components/SalaryDetailTable.vue | 71 + .../src/components/SalarySlipItem.vue | 59 + .../src/components/SemicircleChart.vue | 59 + .../src/components/ShiftAssignmentItem.vue | 49 + .../src/components/ShiftRequestItem.vue | 61 + .../frontend/src/components/TabButtons.vue | 31 + .../src/components/WorkflowActionSheet.vue | 137 + .../src/components/icons/AttendanceIcon.vue | 18 + .../components/icons/EmployeeAdvanceIcon.vue | 28 + .../src/components/icons/ExpenseIcon.vue | 28 + .../src/components/icons/FrappeHRLogo.vue | 29 + .../src/components/icons/FrappeHRLogoType.vue | 49 + .../src/components/icons/HomeIcon.vue | 17 + .../src/components/icons/LeaveIcon.vue | 19 + .../src/components/icons/SalaryIcon.vue | 40 + .../src/components/icons/ShiftIcon.vue | 21 + .../hrms/frontend/src/composables/index.js | 125 + .../hrms/frontend/src/composables/realtime.js | 19 + .../hrms/frontend/src/composables/workflow.js | 101 + .../src/hrms/frontend/src/data/advances.js | 17 + .../src/hrms/frontend/src/data/attendance.js | 108 + .../src/hrms/frontend/src/data/claims.js | 60 + .../src/data/config/requestSummaryFields.js | 256 + .../src/hrms/frontend/src/data/currencies.js | 23 + .../src/hrms/frontend/src/data/employee.js | 12 + .../src/hrms/frontend/src/data/employees.js | 35 + .../src/hrms/frontend/src/data/leaves.js | 68 + .../hrms/frontend/src/data/notifications.js | 35 + .../src/hrms/frontend/src/data/session.js | 50 + .../src/hrms/frontend/src/data/user.js | 12 + apps/erpnext/src/hrms/frontend/src/main.css | 30 + apps/erpnext/src/hrms/frontend/src/main.js | 146 + .../src/plugins/translationsPlugin.js | 79 + .../src/hrms/frontend/src/router/advances.js | 20 + .../hrms/frontend/src/router/attendance.js | 57 + .../src/hrms/frontend/src/router/claims.js | 20 + .../src/hrms/frontend/src/router/index.js | 87 + .../src/hrms/frontend/src/router/leaves.js | 20 + .../hrms/frontend/src/router/salary_slips.js | 10 + apps/erpnext/src/hrms/frontend/src/socket.js | 31 + .../src/hrms/frontend/src/theme/variables.css | 83 + .../hrms/frontend/src/utils/commonUtils.js | 57 + .../src/hrms/frontend/src/utils/dayjs.js | 16 + .../src/hrms/frontend/src/utils/dialogs.js | 11 + .../src/hrms/frontend/src/utils/formatters.js | 44 + .../hrms/frontend/src/utils/ionicConfig.js | 34 + .../frontend/src/utils/pushNotifications.js | 31 + .../hrms/frontend/src/views/AppSettings.vue | 150 + .../src/hrms/frontend/src/views/Home.vue | 61 + .../frontend/src/views/InvalidEmployee.vue | 38 + .../src/hrms/frontend/src/views/Login.vue | 178 + .../hrms/frontend/src/views/Notifications.vue | 164 + .../src/hrms/frontend/src/views/Profile.vue | 282 + .../hrms/frontend/src/views/TabbedView.vue | 13 + .../attendance/AttendanceRequestForm.vue | 102 + .../attendance/AttendanceRequestList.vue | 30 + .../src/views/attendance/Dashboard.vue | 96 + .../views/attendance/EmployeeCheckinList.vue | 35 + .../views/attendance/ShiftAssignmentForm.vue | 85 + .../views/attendance/ShiftAssignmentList.vue | 30 + .../src/views/attendance/ShiftRequestForm.vue | 99 + .../src/views/attendance/ShiftRequestList.vue | 60 + .../src/views/employee_advance/Form.vue | 151 + .../src/views/employee_advance/List.vue | 70 + .../src/views/expense_claim/Dashboard.vue | 63 + .../frontend/src/views/expense_claim/Form.vue | 416 + .../frontend/src/views/expense_claim/List.vue | 61 + .../frontend/src/views/leave/Dashboard.vue | 46 + .../hrms/frontend/src/views/leave/Form.vue | 291 + .../hrms/frontend/src/views/leave/List.vue | 59 + .../src/views/salary_slip/Dashboard.vue | 146 + .../frontend/src/views/salary_slip/Detail.vue | 168 + .../src/hrms/frontend/tailwind.config.js | 26 + apps/erpnext/src/hrms/frontend/vite.config.js | 128 + apps/erpnext/src/hrms/frontend/yarn.lock | 6042 ++++++ apps/erpnext/src/hrms/hrms.png | Bin 0 -> 1180791 bytes apps/erpnext/src/hrms/hrms/__init__.py | 12 + apps/erpnext/src/hrms/hrms/api/__init__.py | 826 + apps/erpnext/src/hrms/hrms/api/oauth.py | 33 + apps/erpnext/src/hrms/hrms/api/roster.py | 292 + .../src/hrms/hrms/api/system_settings.py | 6 + apps/erpnext/src/hrms/hrms/config/__init__.py | 0 apps/erpnext/src/hrms/hrms/config/desktop.py | 5 + apps/erpnext/src/hrms/hrms/config/docs.py | 11 + .../employee_boarding_controller.py | 198 + .../hrms/controllers/employee_reminders.py | 290 + .../tests/test_employee_reminders.py | 265 + .../src/hrms/hrms/desktop_icon/expenses.json | 22 + .../src/hrms/hrms/desktop_icon/frappe_hr.json | 19 + .../src/hrms/hrms/desktop_icon/leaves.json | 22 + .../src/hrms/hrms/desktop_icon/payroll.json | 22 + .../src/hrms/hrms/desktop_icon/people.json | 23 + .../hrms/hrms/desktop_icon/performance.json | 22 + .../hrms/hrms/desktop_icon/recruitment.json | 22 + .../hrms/desktop_icon/shift_&_attendance.json | 22 + .../hrms/desktop_icon/tax_&_benefits.json | 22 + .../src/hrms/hrms/desktop_icon/tenure.json | 22 + apps/erpnext/src/hrms/hrms/hooks.py | 376 + apps/erpnext/src/hrms/hrms/hr/README.md | 6 + apps/erpnext/src/hrms/hrms/hr/__init__.py | 0 .../appraisal_overview.json | 32 + .../attendance_count/attendance_count.json | 29 + .../claims_by_type/claims_by_type.json | 33 + .../department_wise_employee_count.json | 30 + .../department_wise_expense_claims.json | 33 + .../department_wise_openings.json | 31 + .../department_wise_timesheet_hours.json | 34 + .../designation_wise_employee_count.json | 30 + .../designation_wise_openings.json | 31 + .../employee_advance_status.json | 33 + .../employees_by_age/employees_by_age.json | 33 + .../employees_by_branch.json | 30 + .../employees_by_grade.json | 30 + .../employees_by_type/employees_by_type.json | 30 + .../expense_claims/expense_claims.json | 33 + .../gender_diversity_ratio.json | 29 + .../grievance_type/grievance_type.json | 32 + .../hiring_vs_attrition_count.json | 33 + .../interview_status/interview_status.json | 33 + .../job_applicant_pipeline.json | 33 + .../job_applicant_source.json | 33 + .../job_applicants_by_country.json | 32 + .../job_application_frequency.json | 32 + .../job_application_status.json | 30 + .../job_offer_status/job_offer_status.json | 33 + .../shift_assignment_breakup.json | 32 + .../timesheet_activity_breakup.json | 34 + .../training_type/training_type.json | 32 + .../y_o_y_promotions/y_o_y_promotions.json | 31 + .../y_o_y_transfers/y_o_y_transfers.json | 31 + .../hr/dashboard_chart_source/__init__.py | 0 .../employees_by_age/__init__.py | 0 .../employees_by_age/employees_by_age.js | 14 + .../employees_by_age/employees_by_age.json | 13 + .../employees_by_age/employees_by_age.py | 87 + .../hiring_vs_attrition_count/__init__.py | 0 .../hiring_vs_attrition_count.js | 35 + .../hiring_vs_attrition_count.json | 13 + .../hiring_vs_attrition_count.py | 78 + .../src/hrms/hrms/hr/doctype/__init__.py | 0 .../hr/doctype/appointment_letter/__init__.py | 0 .../appointment_letter/appointment_letter.js | 31 + .../appointment_letter.json | 127 + .../appointment_letter/appointment_letter.py | 29 + .../test_appointment_letter.py | 9 + .../appointment_letter_content/__init__.py | 0 .../appointment_letter_content.json | 40 + .../appointment_letter_content.py | 10 + .../appointment_letter_template/__init__.py | 0 .../appointment_letter_template.js | 7 + .../appointment_letter_template.json | 81 + .../appointment_letter_template.py | 10 + .../test_appointment_letter_template.py | 9 + .../hrms/hrms/hr/doctype/appraisal/README.md | 1 + .../hrms/hr/doctype/appraisal/__init__.py | 0 .../hrms/hr/doctype/appraisal/appraisal.js | 155 + .../hrms/hr/doctype/appraisal/appraisal.json | 368 + .../hrms/hr/doctype/appraisal/appraisal.py | 341 + .../hr/doctype/appraisal/test_appraisal.py | 330 + .../hr/doctype/appraisal_cycle/__init__.py | 0 .../appraisal_cycle/appraisal_cycle.js | 177 + .../appraisal_cycle/appraisal_cycle.json | 274 + .../appraisal_cycle/appraisal_cycle.py | 278 + .../appraisal_cycle/test_appraisal_cycle.py | 84 + .../hrms/hr/doctype/appraisal_goal/README.md | 1 + .../hr/doctype/appraisal_goal/__init__.py | 0 .../appraisal_goal/appraisal_goal.json | 90 + .../doctype/appraisal_goal/appraisal_goal.py | 9 + .../hrms/hr/doctype/appraisal_kra/__init__.py | 0 .../doctype/appraisal_kra/appraisal_kra.json | 74 + .../hr/doctype/appraisal_kra/appraisal_kra.py | 9 + .../hr/doctype/appraisal_template/README.md | 1 + .../hr/doctype/appraisal_template/__init__.py | 0 .../appraisal_template/appraisal_template.js | 11 + .../appraisal_template.json | 114 + .../appraisal_template/appraisal_template.py | 16 + .../test_appraisal_template.py | 81 + .../doctype/appraisal_template_goal/README.md | 1 + .../appraisal_template_goal/__init__.py | 0 .../appraisal_template_goal.json | 47 + .../appraisal_template_goal.py | 9 + .../hrms/hr/doctype/appraisee/__init__.py | 0 .../hrms/hr/doctype/appraisee/appraisee.json | 86 + .../hrms/hr/doctype/appraisee/appraisee.py | 9 + .../hrms/hrms/hr/doctype/attendance/README.md | 1 + .../hrms/hr/doctype/attendance/__init__.py | 0 .../hrms/hr/doctype/attendance/attendance.js | 30 + .../hr/doctype/attendance/attendance.json | 328 + .../hrms/hr/doctype/attendance/attendance.py | 405 + .../doctype/attendance/attendance_calendar.js | 30 + .../attendance/attendance_dashboard.py | 2 + .../hr/doctype/attendance/attendance_list.js | 199 + .../hr/doctype/attendance/test_attendance.py | 297 + .../hr/doctype/attendance_request/__init__.py | 0 .../attendance_request/attendance_request.js | 26 + .../attendance_request.json | 209 + .../attendance_request/attendance_request.py | 234 + .../attendance_request_dashboard.py | 2 + .../attendance_warnings.html | 24 + .../test_attendance_request.py | 276 + .../compensatory_leave_request/__init__.py | 0 .../compensatory_leave_request.js | 21 + .../compensatory_leave_request.json | 180 + .../compensatory_leave_request.py | 160 + .../test_compensatory_leave_request.py | 305 + .../hr/doctype/daily_work_summary/__init__.py | 0 .../daily_work_summary/daily_work_summary.js | 6 + .../daily_work_summary.json | 64 + .../daily_work_summary/daily_work_summary.py | 120 + .../test_daily_work_summary.py | 103 + .../test_data/test-reply.raw | 75 + .../daily_work_summary_group/__init__.py | 0 .../daily_work_summary_group.js | 12 + .../daily_work_summary_group.json | 91 + .../daily_work_summary_group.py | 56 + .../daily_work_summary_group_user/__init__.py | 0 .../daily_work_summary_group_user.json | 39 + .../daily_work_summary_group_user.py | 9 + .../doctype/department_approver/__init__.py | 0 .../department_approver.json | 35 + .../department_approver.py | 94 + .../hr/doctype/designation_skill/__init__.py | 0 .../designation_skill/designation_skill.json | 32 + .../designation_skill/designation_skill.py | 10 + .../doctype/earned_leave_schedule/__init__.py | 0 .../earned_leave_schedule.json | 104 + .../earned_leave_schedule.py | 9 + .../hr/doctype/employee_advance/__init__.py | 0 .../employee_advance/employee_advance.js | 179 + .../employee_advance/employee_advance.json | 317 + .../employee_advance/employee_advance.py | 397 + .../employee_advance_dashboard.py | 9 + .../employee_advance/test_employee_advance.py | 448 + .../employee_attendance_tool/__init__.py | 0 .../employee_attendance_tool.css | 33 + .../employee_attendance_tool.js | 298 + .../employee_attendance_tool.json | 206 + .../employee_attendance_tool.py | 169 + .../test_employee_attendance_tool.py | 241 + .../employee_boarding_activity/__init__.py | 0 .../employee_boarding_activity.json | 108 + .../employee_boarding_activity.py | 9 + .../hr/doctype/employee_checkin/__init__.py | 0 .../employee_checkin/employee_checkin.js | 61 + .../employee_checkin/employee_checkin.json | 289 + .../employee_checkin/employee_checkin.py | 482 + .../employee_checkin/employee_checkin_list.js | 20 + .../employee_checkin/test_employee_checkin.py | 925 + .../employee_feedback_criteria/__init__.py | 0 .../employee_feedback_criteria.js | 8 + .../employee_feedback_criteria.json | 73 + .../employee_feedback_criteria.py | 9 + .../test_employee_feedback_criteria.py | 9 + .../employee_feedback_rating/__init__.py | 0 .../employee_feedback_rating.json | 50 + .../employee_feedback_rating.py | 9 + .../hr/doctype/employee_grade/__init__.py | 0 .../doctype/employee_grade/employee_grade.js | 24 + .../employee_grade/employee_grade.json | 89 + .../doctype/employee_grade/employee_grade.py | 9 + .../employee_grade_dashboard.py | 9 + .../employee_grade/test_employee_grade.py | 8 + .../hr/doctype/employee_grievance/__init__.py | 0 .../employee_grievance/employee_grievance.js | 53 + .../employee_grievance.json | 276 + .../employee_grievance/employee_grievance.py | 19 + .../employee_grievance_list.js | 12 + .../test_employee_grievance.py | 68 + .../employee_health_insurance/__init__.py | 0 .../employee_health_insurance.js | 6 + .../employee_health_insurance.json | 58 + .../employee_health_insurance.py | 9 + .../test_employee_health_insurance.py | 8 + .../doctype/employee_onboarding/__init__.py | 0 .../employee_onboarding.js | 123 + .../employee_onboarding.json | 218 + .../employee_onboarding.py | 94 + .../employee_onboarding_list.js | 11 + .../test_employee_onboarding.py | 157 + .../employee_onboarding_template/__init__.py | 0 .../employee_onboarding_template.js | 14 + .../employee_onboarding_template.json | 96 + .../employee_onboarding_template.py | 9 + .../employee_onboarding_template_dashboard.py | 7 + .../test_employee_onboarding_template.py | 8 + .../employee_performance_feedback/__init__.py | 0 .../employee_performance_feedback.js | 53 + .../employee_performance_feedback.json | 249 + .../employee_performance_feedback.py | 81 + .../test_employee_performance_feedback.py | 146 + .../hr/doctype/employee_promotion/__init__.py | 0 .../employee_promotion/employee_promotion.js | 10 + .../employee_promotion.json | 171 + .../employee_promotion/employee_promotion.py | 40 + .../test_employee_promotion.py | 95 + .../employee_property_history/__init__.py | 0 .../employee_property_history.json | 59 + .../employee_property_history.py | 9 + .../hr/doctype/employee_referral/__init__.py | 0 .../employee_referral/employee_referral.js | 68 + .../employee_referral/employee_referral.json | 306 + .../employee_referral/employee_referral.py | 97 + .../employee_referral_dashboard.py | 8 + .../employee_referral_list.js | 14 + .../test_employee_referral.py | 81 + .../doctype/employee_separation/__init__.py | 0 .../employee_separation.js | 65 + .../employee_separation.json | 186 + .../employee_separation.py | 19 + .../employee_separation_list.js | 11 + .../test_employee_separation.py | 53 + .../employee_separation_template/__init__.py | 0 .../employee_separation_template.js | 6 + .../employee_separation_template.json | 96 + .../employee_separation_template.py | 9 + .../employee_separation_template_dashboard.py | 7 + .../test_employee_separation_template.py | 8 + .../hr/doctype/employee_skill/__init__.py | 0 .../employee_skill/employee_skill.json | 49 + .../doctype/employee_skill/employee_skill.py | 10 + .../hr/doctype/employee_skill_map/__init__.py | 0 .../employee_skill_map/employee_skill_map.js | 21 + .../employee_skill_map.json | 89 + .../employee_skill_map/employee_skill_map.py | 10 + .../hr/doctype/employee_training/__init__.py | 0 .../employee_training/employee_training.json | 40 + .../employee_training/employee_training.py | 10 + .../hr/doctype/employee_transfer/__init__.py | 0 .../employee_transfer/employee_transfer.js | 10 + .../employee_transfer/employee_transfer.json | 165 + .../employee_transfer/employee_transfer.py | 74 + .../test_employee_transfer.py | 150 + .../hrms/hr/doctype/employment_type/README.md | 3 + .../hr/doctype/employment_type/__init__.py | 0 .../employment_type/employment_type.json | 66 + .../employment_type/employment_type.py | 9 + .../employment_type/test_employment_type.py | 6 + .../doctype/employment_type/test_records.json | 6 + .../hr/doctype/exit_interview/__init__.py | 0 .../doctype/exit_interview/exit_interview.js | 47 + .../exit_interview/exit_interview.json | 247 + .../doctype/exit_interview/exit_interview.py | 143 + .../exit_interview/exit_interview_list.js | 27 + ...t_questionnaire_notification_template.html | 15 + .../exit_interview/test_exit_interview.py | 134 + .../hr/doctype/expected_skill_set/__init__.py | 0 .../expected_skill_set.json | 41 + .../expected_skill_set/expected_skill_set.py | 10 + .../hrms/hr/doctype/expense_claim/README.md | 1 + .../hrms/hr/doctype/expense_claim/__init__.py | 0 .../hr/doctype/expense_claim/expense_claim.js | 651 + .../doctype/expense_claim/expense_claim.json | 637 + .../hr/doctype/expense_claim/expense_claim.py | 933 + .../expense_claim/expense_claim_dashboard.py | 12 + .../expense_claim/expense_claim_list.js | 3 + .../expense_claim/test_expense_claim.py | 1083 + .../doctype/expense_claim_account/__init__.py | 0 .../expense_claim_account.json | 40 + .../expense_claim_account.py | 9 + .../doctype/expense_claim_advance/__init__.py | 0 .../expense_claim_advance.json | 188 + .../expense_claim_advance.py | 9 + .../hr/doctype/expense_claim_detail/README.md | 1 + .../doctype/expense_claim_detail/__init__.py | 0 .../expense_claim_detail.json | 168 + .../expense_claim_detail.py | 9 + .../hr/doctype/expense_claim_type/README.md | 1 + .../hr/doctype/expense_claim_type/__init__.py | 0 .../expense_claim_type/expense_claim_type.js | 21 + .../expense_claim_type.json | 75 + .../expense_claim_type/expense_claim_type.py | 32 + .../test_expense_claim_type.py | 10 + .../expense_taxes_and_charges/__init__.py | 0 .../expense_taxes_and_charges.json | 143 + .../expense_taxes_and_charges.py | 10 + .../doctype/full_and_final_asset/__init__.py | 0 .../full_and_final_asset.js | 7 + .../full_and_final_asset.json | 114 + .../full_and_final_asset.py | 9 + .../test_full_and_final_asset.py | 9 + .../__init__.py | 0 .../full_and_final_outstanding_statement.json | 99 + .../full_and_final_outstanding_statement.py | 9 + .../full_and_final_statement/__init__.py | 0 .../full_and_final_statement.js | 170 + .../full_and_final_statement.json | 251 + .../full_and_final_statement.py | 343 + .../full_and_final_statement_list.js | 11 + .../full_and_final_statement_loan_utils.py | 101 + .../test_full_and_final_statement.py | 111 + .../src/hrms/hrms/hr/doctype/goal/__init__.py | 0 .../src/hrms/hrms/hr/doctype/goal/goal.js | 134 + .../src/hrms/hrms/hr/doctype/goal/goal.json | 282 + .../src/hrms/hrms/hr/doctype/goal/goal.py | 237 + .../hrms/hrms/hr/doctype/goal/goal_list.js | 155 + .../hrms/hrms/hr/doctype/goal/goal_tree.js | 295 + .../hrms/hrms/hr/doctype/goal/test_goal.py | 232 + .../hr/doctype/grievance_type/__init__.py | 0 .../doctype/grievance_type/grievance_type.js | 7 + .../grievance_type/grievance_type.json | 83 + .../doctype/grievance_type/grievance_type.py | 9 + .../grievance_type/test_grievance_type.py | 9 + .../holiday_list_assignment/__init__.py | 0 .../holiday_list_assignment.js | 57 + .../holiday_list_assignment.json | 153 + .../holiday_list_assignment.py | 48 + .../test_holiday_list_assignment.py | 148 + .../hrms/hr/doctype/hr_settings/__init__.py | 0 .../hr/doctype/hr_settings/hr_settings.js | 45 + .../hr/doctype/hr_settings/hr_settings.json | 423 + .../hr/doctype/hr_settings/hr_settings.py | 97 + .../doctype/hr_settings/test_hr_settings.py | 8 + .../identification_document_type/__init__.py | 0 .../identification_document_type.js | 6 + .../identification_document_type.json | 43 + .../identification_document_type.py | 9 + .../test_identification_document_type.py | 8 + .../hrms/hrms/hr/doctype/interest/__init__.py | 0 .../hrms/hrms/hr/doctype/interest/interest.js | 6 + .../hrms/hr/doctype/interest/interest.json | 80 + .../hrms/hrms/hr/doctype/interest/interest.py | 9 + .../hrms/hr/doctype/interest/test_interest.py | 10 + .../hrms/hr/doctype/interview/__init__.py | 0 .../hrms/hr/doctype/interview/interview.js | 280 + .../hrms/hr/doctype/interview/interview.json | 272 + .../hrms/hr/doctype/interview/interview.py | 437 + .../doctype/interview/interview_calendar.js | 13 + .../interview_feedback_reminder_template.html | 5 + .../hr/doctype/interview/interview_list.js | 12 + ...erview_reminder_notification_template.html | 5 + .../hr/doctype/interview/test_interview.py | 331 + .../hr/doctype/interview_detail/__init__.py | 0 .../interview_detail/interview_detail.json | 32 + .../interview_detail/interview_detail.py | 9 + .../hr/doctype/interview_feedback/__init__.py | 0 .../interview_feedback/interview_feedback.js | 53 + .../interview_feedback.json | 172 + .../interview_feedback/interview_feedback.py | 84 + .../test_interview_feedback.py | 97 + .../hr/doctype/interview_round/__init__.py | 0 .../interview_round/interview_round.js | 38 + .../interview_round/interview_round.json | 118 + .../interview_round/interview_round.py | 30 + .../interview_round/test_interview_round.py | 10 + .../hr/doctype/interview_type/__init__.py | 0 .../doctype/interview_type/interview_type.js | 7 + .../interview_type/interview_type.json | 74 + .../doctype/interview_type/interview_type.py | 10 + .../interview_type/test_interview_type.py | 9 + .../hrms/hr/doctype/interviewer/__init__.py | 0 .../hr/doctype/interviewer/interviewer.json | 32 + .../hr/doctype/interviewer/interviewer.py | 10 + .../hrms/hr/doctype/job_applicant/README.md | 1 + .../hrms/hr/doctype/job_applicant/__init__.py | 0 .../hr/doctype/job_applicant/job_applicant.js | 117 + .../doctype/job_applicant/job_applicant.json | 224 + .../hr/doctype/job_applicant/job_applicant.py | 120 + .../job_applicant_dashboard.html | 54 + .../job_applicant/job_applicant_dashboard.py | 9 + .../job_applicant/job_applicant_list.js | 15 + .../job_applicant/test_job_applicant.py | 55 + .../doctype/job_applicant_source/__init__.py | 0 .../job_applicant_source.js | 6 + .../job_applicant_source.json | 53 + .../job_applicant_source.py | 9 + .../test_job_applicant_source.py | 8 + .../hrms/hr/doctype/job_offer/__init__.py | 0 .../hrms/hr/doctype/job_offer/job_offer.js | 63 + .../hrms/hr/doctype/job_offer/job_offer.json | 203 + .../hrms/hr/doctype/job_offer/job_offer.py | 130 + .../hr/doctype/job_offer/job_offer_list.js | 15 + .../hr/doctype/job_offer/test_job_offer.py | 118 + .../hr/doctype/job_offer_term/__init__.py | 0 .../job_offer_term/job_offer_term.json | 44 + .../doctype/job_offer_term/job_offer_term.py | 9 + .../job_offer_term_template/__init__.py | 0 .../job_offer_term_template.js | 8 + .../job_offer_term_template.json | 63 + .../job_offer_term_template.py | 9 + .../test_job_offer_term_template.py | 9 + .../hrms/hr/doctype/job_opening/README.md | 1 + .../hrms/hr/doctype/job_opening/__init__.py | 0 .../hr/doctype/job_opening/job_opening.js | 60 + .../hr/doctype/job_opening/job_opening.json | 301 + .../hr/doctype/job_opening/job_opening.py | 121 + .../job_opening/job_opening_dashboard.py | 5 + .../job_opening/templates/job_opening.html | 7 + .../templates/job_opening_row.html | 4 + .../doctype/job_opening/test_job_opening.py | 96 + .../doctype/job_opening_template/__init__.py | 0 .../job_opening_template.js | 8 + .../job_opening_template.json | 87 + .../job_opening_template.py | 9 + .../test_job_opening_template.py | 20 + .../hr/doctype/job_requisition/__init__.py | 0 .../job_requisition/job_requisition.js | 84 + .../job_requisition/job_requisition.json | 229 + .../job_requisition/job_requisition.py | 101 + .../job_requisition/job_requisition_list.js | 31 + .../job_requisition/test_job_requisition.py | 68 + .../src/hrms/hrms/hr/doctype/kra/__init__.py | 0 .../src/hrms/hrms/hr/doctype/kra/kra.js | 7 + .../src/hrms/hrms/hr/doctype/kra/kra.json | 56 + .../src/hrms/hrms/hr/doctype/kra/kra.py | 9 + .../src/hrms/hrms/hr/doctype/kra/test_kra.py | 9 + .../hr/doctype/leave_adjustment/__init__.py | 0 .../leave_adjustment/leave_adjustment.js | 57 + .../leave_adjustment/leave_adjustment.json | 197 + .../leave_adjustment/leave_adjustment.py | 135 + .../leave_adjustment/test_leave_adjustment.py | 246 + .../hr/doctype/leave_allocation/README.md | 1 + .../hr/doctype/leave_allocation/__init__.py | 0 .../leave_allocation/leave_allocation.js | 261 + .../leave_allocation/leave_allocation.json | 308 + .../leave_allocation/leave_allocation.py | 580 + .../leave_allocation_dashboard.py | 10 + .../leave_allocation/leave_allocation_list.js | 11 + .../test_earned_leave_schedule.py | 507 + .../leave_allocation/test_earned_leaves.py | 1234 ++ .../leave_allocation/test_leave_allocation.py | 642 + .../hr/doctype/leave_application/README.md | 1 + .../hr/doctype/leave_application/__init__.py | 0 .../leave_application/leave_application.js | 335 + .../leave_application/leave_application.json | 354 + .../leave_application/leave_application.py | 1490 ++ .../leave_application_calendar.js | 21 + .../leave_application_dashboard.html | 30 + .../leave_application_dashboard.py | 9 + .../leave_application_email_template.html | 30 + .../leave_application_list.js | 24 + .../test_leave_application.py | 1594 ++ .../leave_application/test_records.json | 1 + .../hr/doctype/leave_block_list/README.md | 1 + .../hr/doctype/leave_block_list/__init__.py | 0 .../leave_block_list/leave_block_list.js | 99 + .../leave_block_list/leave_block_list.json | 112 + .../leave_block_list/leave_block_list.py | 97 + .../leave_block_list_dashboard.py | 2 + .../leave_block_list/test_leave_block_list.py | 74 + .../leave_block_list/test_records.json | 101 + .../doctype/leave_block_list_allow/README.md | 1 + .../leave_block_list_allow/__init__.py | 0 .../leave_block_list_allow.json | 34 + .../leave_block_list_allow.py | 11 + .../doctype/leave_block_list_date/README.md | 1 + .../doctype/leave_block_list_date/__init__.py | 0 .../leave_block_list_date.json | 43 + .../leave_block_list_date.py | 11 + .../hr/doctype/leave_control_panel/README.md | 1 + .../doctype/leave_control_panel/__init__.py | 0 .../leave_control_panel.js | 212 + .../leave_control_panel.json | 205 + .../leave_control_panel.py | 203 + .../test_leave_control_panel.py | 152 + .../hr/doctype/leave_encashment/__init__.py | 0 .../leave_encashment/leave_encashment.js | 128 + .../leave_encashment/leave_encashment.json | 349 + .../leave_encashment/leave_encashment.py | 352 + .../leave_encashment/test_leave_encashment.py | 483 + .../hr/doctype/leave_ledger_entry/__init__.py | 0 .../leave_ledger_entry/leave_ledger_entry.js | 7 + .../leave_ledger_entry.json | 194 + .../leave_ledger_entry/leave_ledger_entry.py | 253 + .../leave_ledger_entry_list.js | 16 + .../test_leave_ledger_entry.py | 47 + .../hrms/hr/doctype/leave_period/__init__.py | 0 .../hr/doctype/leave_period/leave_period.js | 20 + .../hr/doctype/leave_period/leave_period.json | 108 + .../hr/doctype/leave_period/leave_period.py | 20 + .../leave_period/leave_period_dashboard.py | 8 + .../doctype/leave_period/test_leave_period.py | 43 + .../hrms/hr/doctype/leave_policy/__init__.py | 0 .../hr/doctype/leave_policy/leave_policy.js | 29 + .../hr/doctype/leave_policy/leave_policy.json | 107 + .../hr/doctype/leave_policy/leave_policy.py | 22 + .../leave_policy/leave_policy_dashboard.py | 10 + .../doctype/leave_policy/test_leave_policy.py | 40 + .../leave_policy_assignment/__init__.py | 0 .../leave_policy_assignment.js | 72 + .../leave_policy_assignment.json | 171 + .../leave_policy_assignment.py | 498 + .../leave_policy_assignment_dashboard.py | 10 + .../leave_policy_assignment_list.js | 7 + .../test_leave_policy_assignment.py | 339 + .../doctype/leave_policy_detail/__init__.py | 0 .../leave_policy_detail.js | 6 + .../leave_policy_detail.json | 43 + .../leave_policy_detail.py | 9 + .../test_leave_policy_detail.py | 8 + .../hrms/hrms/hr/doctype/leave_type/README.md | 6 + .../hrms/hr/doctype/leave_type/__init__.py | 0 .../hrms/hr/doctype/leave_type/leave_type.js | 63 + .../hr/doctype/leave_type/leave_type.json | 276 + .../hrms/hr/doctype/leave_type/leave_type.py | 78 + .../leave_type/leave_type_dashboard.py | 10 + .../hr/doctype/leave_type/test_leave_type.py | 39 + .../hr/doctype/leave_type/test_records.json | 27 + .../hrms/hr/doctype/offer_term/__init__.py | 0 .../hrms/hr/doctype/offer_term/offer_term.js | 6 + .../hr/doctype/offer_term/offer_term.json | 41 + .../hrms/hr/doctype/offer_term/offer_term.py | 9 + .../hr/doctype/offer_term/test_offer_term.py | 10 + .../hr/doctype/overtime_details/__init__.py | 0 .../overtime_details/overtime_details.json | 80 + .../overtime_details/overtime_details.py | 9 + .../overtime_salary_component/__init__.py | 0 .../overtime_salary_component.json | 33 + .../overtime_salary_component.py | 9 + .../hrms/hr/doctype/overtime_slip/__init__.py | 0 .../hr/doctype/overtime_slip/overtime_slip.js | 51 + .../doctype/overtime_slip/overtime_slip.json | 219 + .../hr/doctype/overtime_slip/overtime_slip.py | 509 + .../overtime_slip/test_overtime_slip.py | 203 + .../hrms/hr/doctype/overtime_type/__init__.py | 0 .../hr/doctype/overtime_type/overtime_type.js | 8 + .../doctype/overtime_type/overtime_type.json | 159 + .../hr/doctype/overtime_type/overtime_type.py | 16 + .../overtime_type/test_overtime_type.py | 44 + .../hr/doctype/purpose_of_travel/__init__.py | 0 .../purpose_of_travel/purpose_of_travel.js | 6 + .../purpose_of_travel/purpose_of_travel.json | 43 + .../purpose_of_travel/purpose_of_travel.py | 9 + .../test_purpose_of_travel.py | 8 + .../hr/doctype/pwa_notification/__init__.py | 0 .../pwa_notification/pwa_notification.js | 8 + .../pwa_notification/pwa_notification.json | 116 + .../pwa_notification/pwa_notification.py | 43 + .../pwa_notification/test_pwa_notification.py | 9 + .../hr/doctype/shift_assignment/__init__.py | 0 .../shift_assignment/shift_assignment.js | 6 + .../shift_assignment/shift_assignment.json | 200 + .../shift_assignment/shift_assignment.py | 692 + .../shift_assignment_calendar.js | 14 + .../shift_assignment/shift_assignment_list.js | 3 + .../shift_assignment/test_shift_assignment.py | 307 + .../doctype/shift_assignment_tool/__init__.py | 0 .../shift_assignment_tool.js | 308 + .../shift_assignment_tool.json | 231 + .../shift_assignment_tool.py | 344 + .../test_shift_assignment_tool.py | 314 + .../hr/doctype/shift_location/__init__.py | 0 .../doctype/shift_location/shift_location.js | 30 + .../shift_location/shift_location.json | 125 + .../doctype/shift_location/shift_location.py | 16 + .../shift_location/shift_location_list.js | 3 + .../shift_location/test_shift_location.py | 9 + .../hrms/hr/doctype/shift_request/__init__.py | 0 .../hr/doctype/shift_request/shift_request.js | 17 + .../doctype/shift_request/shift_request.json | 156 + .../hr/doctype/shift_request/shift_request.py | 136 + .../shift_request/shift_request_dashboard.py | 7 + .../shift_request/shift_request_list.js | 4 + .../shift_request/test_shift_request.py | 293 + .../hr/doctype/shift_schedule/__init__.py | 0 .../doctype/shift_schedule/shift_schedule.js | 12 + .../shift_schedule/shift_schedule.json | 114 + .../doctype/shift_schedule/shift_schedule.py | 47 + .../shift_schedule/shift_schedule_list.js | 3 + .../shift_schedule/test_shift_schedule.py | 20 + .../shift_schedule_assignment/__init__.py | 0 .../shift_schedule_assignment.js | 8 + .../shift_schedule_assignment.json | 156 + .../shift_schedule_assignment.py | 143 + .../shift_schedule_assignment_list.js | 3 + .../test_shift_schedule_assignment.py | 59 + .../hrms/hr/doctype/shift_type/__init__.py | 0 .../hrms/hr/doctype/shift_type/shift_type.js | 54 + .../hr/doctype/shift_type/shift_type.json | 259 + .../hrms/hr/doctype/shift_type/shift_type.py | 465 + .../shift_type/shift_type_dashboard.py | 6 + .../hr/doctype/shift_type/shift_type_list.js | 3 + .../hr/doctype/shift_type/test_records.json | 8 + .../hr/doctype/shift_type/test_shift_type.py | 1032 + .../hrms/hrms/hr/doctype/skill/__init__.py | 0 .../src/hrms/hrms/hr/doctype/skill/skill.js | 7 + .../src/hrms/hrms/hr/doctype/skill/skill.json | 64 + .../src/hrms/hrms/hr/doctype/skill/skill.py | 10 + .../hr/doctype/skill_assessment/__init__.py | 0 .../skill_assessment/skill_assessment.json | 42 + .../skill_assessment/skill_assessment.py | 10 + .../hrms/hr/doctype/staffing_plan/__init__.py | 0 .../hr/doctype/staffing_plan/staffing_plan.js | 149 + .../doctype/staffing_plan/staffing_plan.json | 133 + .../hr/doctype/staffing_plan/staffing_plan.py | 243 + .../staffing_plan/staffing_plan_dashboard.py | 5 + .../staffing_plan/test_staffing_plan.py | 123 + .../doctype/staffing_plan_detail/__init__.py | 0 .../staffing_plan_detail.json | 84 + .../staffing_plan_detail.py | 9 + .../hr/doctype/training_event/__init__.py | 0 .../training_event/test_training_event.py | 63 + .../doctype/training_event/training_event.js | 48 + .../training_event/training_event.json | 231 + .../doctype/training_event/training_event.py | 38 + .../training_event/training_event_calendar.js | 14 + .../training_event_dashboard.py | 7 + .../training_event_employee/__init__.py | 0 .../training_event_employee.json | 82 + .../training_event_employee.py | 9 + .../hr/doctype/training_feedback/__init__.py | 0 .../test_training_feedback.py | 71 + .../training_feedback/training_feedback.js | 10 + .../training_feedback/training_feedback.json | 143 + .../training_feedback/training_feedback.py | 47 + .../hr/doctype/training_program/__init__.py | 0 .../training_program/test_training_program.py | 8 + .../training_program/training_program.js | 4 + .../training_program/training_program.json | 130 + .../training_program/training_program.py | 9 + .../training_program_dashboard.py | 10 + .../hr/doctype/training_result/__init__.py | 0 .../training_result/test_training_result.py | 10 + .../training_result/training_result.js | 30 + .../training_result/training_result.json | 83 + .../training_result/training_result.py | 34 + .../training_result_employee/__init__.py | 0 .../training_result_employee.json | 86 + .../training_result_employee.py | 9 + .../hr/doctype/travel_itinerary/__init__.py | 0 .../travel_itinerary/travel_itinerary.json | 124 + .../travel_itinerary/travel_itinerary.py | 9 + .../hr/doctype/travel_request/__init__.py | 0 .../travel_request/test_travel_request.py | 8 + .../doctype/travel_request/travel_request.js | 6 + .../travel_request/travel_request.json | 254 + .../doctype/travel_request/travel_request.py | 12 + .../travel_request_costing/__init__.py | 0 .../travel_request_costing.json | 72 + .../travel_request_costing.py | 9 + .../hr/doctype/upload_attendance/README.md | 1 + .../hr/doctype/upload_attendance/__init__.py | 0 .../test_upload_attendance.py | 43 + .../upload_attendance/upload_attendance.js | 77 + .../upload_attendance/upload_attendance.json | 88 + .../upload_attendance/upload_attendance.py | 221 + .../hrms/hr/doctype/vehicle_log/__init__.py | 0 .../doctype/vehicle_log/test_vehicle_log.py | 129 + .../hr/doctype/vehicle_log/vehicle_log.js | 39 + .../hr/doctype/vehicle_log/vehicle_log.json | 192 + .../hr/doctype/vehicle_log/vehicle_log.py | 53 + .../hr/doctype/vehicle_service/__init__.py | 0 .../vehicle_service/vehicle_service.json | 60 + .../vehicle_service/vehicle_service.py | 9 + .../doctype/vehicle_service_item/__init__.py | 0 .../test_vehicle_service_item.py | 9 + .../vehicle_service_item.js | 7 + .../vehicle_service_item.json | 50 + .../vehicle_service_item.py | 9 + .../hrms/hrms/hr/employee_property_update.js | 209 + .../hr_dashboard/attendance/attendance.json | 46 + .../employee_lifecycle.json | 49 + .../expense_claims/expense_claims.json | 43 + .../human_resource/human_resource.json | 65 + .../hr_dashboard/recruitment/recruitment.json | 78 + .../src/hrms/hrms/hr/notification/__init__.py | 0 .../exit_interview_scheduled/__init__.py | 0 .../exit_interview_scheduled.json | 29 + .../exit_interview_scheduled.md | 37 + .../exit_interview_scheduled.py | 6 + .../training_feedback/__init__.py | 0 .../training_feedback/training_feedback.html | 6 + .../training_feedback/training_feedback.json | 25 + .../training_feedback/training_feedback.md | 9 + .../training_feedback/training_feedback.py | 3 + .../training_scheduled/__init__.py | 0 .../training_scheduled.html | 44 + .../training_scheduled.json | 28 + .../training_scheduled/training_scheduled.md | 47 + .../training_scheduled/training_scheduled.py | 3 + .../accepted_job_applicants.json | 25 + .../applicant_to_hire_percentage.json | 26 + .../approved_claims_(this_month).json | 25 + .../early_exit_(this_month).json | 25 + .../employee_exits_(this_year).json | 21 + .../employees_joining_(this_quarter).json | 24 + .../employees_relieving_(this_quarter).json | 24 + .../expense_claims_(this_month).json | 24 + .../holidays_in_this_month.json | 24 + .../job_offer_acceptance_rate.json | 27 + .../job_offers_(this_month).json | 24 + .../job_openings/job_openings.json | 24 + .../late_entry_(this_month).json | 25 + .../new_hires_(this_year).json | 21 + ...er_of_employees_on_leave_(this_month).json | 26 + .../number_of_employees_on_leave_(today).json | 26 + .../onboardings_(this_month).json | 24 + .../promotions_(this_month).json | 24 + .../rejected_claims_(this_month).json | 25 + .../rejected_job_applicants.json | 25 + .../separations_(this_month).json | 24 + .../time_to_fill/time_to_fill.json | 27 + .../total_absent_(this_month).json | 25 + .../total_applicants_(this_month).json | 21 + .../total_employees/total_employees.json | 21 + .../total_present_(this_month).json | 25 + .../trainings_(this_month).json | 24 + .../transfers_(this_month).json | 24 + .../erpnext/src/hrms/hrms/hr/page/__init__.py | 0 .../hr/page/organizational_chart/__init__.py | 0 .../organizational_chart.js | 23 + .../organizational_chart.json | 29 + .../organizational_chart.py | 49 + .../test_organizational_chart.py | 37 + .../hrms/hr/page/team_updates/__init__.py | 0 .../hr/page/team_updates/team_update_row.html | 15 + .../hr/page/team_updates/team_updates.css | 57 + .../hrms/hr/page/team_updates/team_updates.js | 91 + .../hr/page/team_updates/team_updates.json | 25 + .../hrms/hr/page/team_updates/team_updates.py | 23 + .../src/hrms/hrms/hr/print_format/__init__.py | 0 .../hr/print_format/job_offer/__init__.py | 0 .../hr/print_format/job_offer/job_offer.json | 21 + .../standard_appointment_letter/__init__.py | 0 .../standard_appointment_letter.html | 38 + .../standard_appointment_letter.json | 23 + .../src/hrms/hrms/hr/report/__init__.py | 0 .../hr/report/appraisal_overview/__init__.py | 0 .../appraisal_overview/appraisal_overview.js | 40 + .../appraisal_overview.json | 39 + .../appraisal_overview/appraisal_overview.py | 131 + .../test_appraisal_overview.py | 96 + .../daily_work_summary_replies/__init__.py | 0 .../daily_work_summary_replies.js | 21 + .../daily_work_summary_replies.json | 25 + .../daily_work_summary_replies.py | 61 + .../employee_advance_summary/__init__.py | 0 .../employee_advance_summary.js | 42 + .../employee_advance_summary.json | 26 + .../employee_advance_summary.py | 143 + .../hr/report/employee_analytics/__init__.py | 0 .../employee_analytics/employee_analytics.js | 23 + .../employee_analytics.json | 30 + .../employee_analytics/employee_analytics.py | 101 + .../test_employee_analytics.py | 98 + .../hr/report/employee_birthday/__init__.py | 0 .../employee_birthday/employee_birthday.js | 34 + .../employee_birthday/employee_birthday.json | 29 + .../employee_birthday/employee_birthday.py | 76 + .../test_employee_birthday.py | 63 + .../hrms/hr/report/employee_exits/__init__.py | 0 .../report/employee_exits/employee_exits.js | 77 + .../report/employee_exits/employee_exits.json | 33 + .../report/employee_exits/employee_exits.py | 237 + .../employee_exits/test_employee_exits.py | 235 + .../__init__.py | 0 ...ee_hours_utilization_based_on_timesheet.js | 48 + ..._hours_utilization_based_on_timesheet.json | 29 + ...ee_hours_utilization_based_on_timesheet.py | 256 + .../test_employee_util.py | 200 + .../report/employee_information/__init__.py | 0 .../employee_information.json | 27 + .../report/employee_leave_balance/__init__.py | 0 .../employee_leave_balance.js | 77 + .../employee_leave_balance.json | 32 + .../employee_leave_balance.py | 284 + .../test_employee_leave_balance.py | 284 + .../__init__.py | 0 .../employee_leave_balance_summary.js | 48 + .../employee_leave_balance_summary.json | 33 + .../employee_leave_balance_summary.py | 70 + .../test_employee_leave_balance_summary.py | 179 + .../__init__.py | 0 .../employees_working_on_a_holiday.js | 41 + .../employees_working_on_a_holiday.json | 29 + .../employees_working_on_a_holiday.py | 90 + .../test_employees_working_on_a_holiday.py | 75 + .../hrms/hr/report/leave_ledger/__init__.py | 0 .../hr/report/leave_ledger/leave_ledger.js | 108 + .../hr/report/leave_ledger/leave_ledger.json | 36 + .../hr/report/leave_ledger/leave_ledger.py | 196 + .../report/leave_ledger/test_leave_ledger.py | 195 + .../monthly_attendance_sheet/__init__.py | 0 .../monthly_attendance_sheet.js | 171 + .../monthly_attendance_sheet.json | 29 + .../monthly_attendance_sheet.py | 739 + .../test_monthly_attendance_sheet.py | 591 + .../report/project_profitability/__init__.py | 0 .../project_profitability.js | 48 + .../project_profitability.json | 44 + .../project_profitability.py | 210 + .../test_project_profitability.py | 79 + .../report/recruitment_analytics/__init__.py | 0 .../recruitment_analytics.js | 23 + .../recruitment_analytics.json | 27 + .../recruitment_analytics.py | 204 + .../hr/report/shift_attendance/__init__.py | 0 .../shift_attendance/shift_attendance.js | 79 + .../shift_attendance/shift_attendance.json | 38 + .../shift_attendance/shift_attendance.py | 362 + .../shift_attendance/test_shift_attendance.py | 289 + .../report/unpaid_expense_claim/__init__.py | 0 .../unpaid_expense_claim.js | 13 + .../unpaid_expense_claim.json | 29 + .../unpaid_expense_claim.py | 52 + .../hr/report/vehicle_expenses/__init__.py | 0 .../vehicle_expenses/test_vehicle_expenses.py | 76 + .../vehicle_expenses/vehicle_expenses.js | 68 + .../vehicle_expenses/vehicle_expenses.json | 26 + .../vehicle_expenses/vehicle_expenses.py | 176 + apps/erpnext/src/hrms/hrms/hr/utils.py | 1042 + .../src/hrms/hrms/hr/web_form/__init__.py | 0 .../hr/web_form/job_application/__init__.py | 0 .../job_application/job_application.js | 3 + .../job_application/job_application.json | 200 + .../job_application/job_application.py | 3 + .../hrms/hr/workspace/expenses/expenses.json | 274 + .../hrms/hrms/hr/workspace/leaves/leaves.json | 216 + .../hrms/hrms/hr/workspace/people/people.json | 402 + .../hr/workspace/performance/performance.json | 35 + .../hr/workspace/recruitment/recruitment.json | 207 + .../shift_&_attendance.json | 288 + .../hrms/hrms/hr/workspace/tenure/tenure.json | 247 + apps/erpnext/src/hrms/hrms/hrms.png | Bin 0 -> 1180791 bytes apps/erpnext/src/hrms/hrms/install.py | 21 + apps/erpnext/src/hrms/hrms/locale/af.po | 16958 ++++++++++++++++ apps/erpnext/src/hrms/hrms/locale/ar.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/bs.po | 11517 +++++++++++ apps/erpnext/src/hrms/hrms/locale/cs.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/da.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/de.po | 11495 +++++++++++ apps/erpnext/src/hrms/hrms/locale/eo.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/es.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/fa.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/fi.po | 16958 ++++++++++++++++ apps/erpnext/src/hrms/hrms/locale/fr.po | 11514 +++++++++++ apps/erpnext/src/hrms/hrms/locale/hr.po | 11517 +++++++++++ apps/erpnext/src/hrms/hrms/locale/hu.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/id.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/it.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/main.pot | 11496 +++++++++++ apps/erpnext/src/hrms/hrms/locale/my.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/nb.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/nl.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/pl.po | 11508 +++++++++++ apps/erpnext/src/hrms/hrms/locale/pt.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/pt_BR.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/ru.po | 11517 +++++++++++ apps/erpnext/src/hrms/hrms/locale/sl.po | 11514 +++++++++++ apps/erpnext/src/hrms/hrms/locale/sr.po | 11515 +++++++++++ apps/erpnext/src/hrms/hrms/locale/sr_CS.po | 11515 +++++++++++ apps/erpnext/src/hrms/hrms/locale/sv.po | 11517 +++++++++++ apps/erpnext/src/hrms/hrms/locale/ta.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/th.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/tr.po | 11514 +++++++++++ apps/erpnext/src/hrms/hrms/locale/vi.po | 11489 +++++++++++ apps/erpnext/src/hrms/hrms/locale/zh.po | 11517 +++++++++++ apps/erpnext/src/hrms/hrms/locale/zh_TW.po | 16958 ++++++++++++++++ .../erpnext/src/hrms/hrms/mixins/appraisal.py | 21 + .../src/hrms/hrms/mixins/pwa_notifications.py | 73 + apps/erpnext/src/hrms/hrms/modules.txt | 2 + .../src/hrms/hrms/overrides/company.py | 186 + .../hrms/overrides/dashboard_overrides.py | 96 + .../hrms/hrms/overrides/employee_master.py | 155 + .../hrms/overrides/employee_payment_entry.py | 320 + .../hrms/hrms/overrides/employee_project.py | 56 + .../hrms/hrms/overrides/employee_timesheet.py | 23 + apps/erpnext/src/hrms/hrms/patches.txt | 40 + .../post_install/create_country_fixtures.py | 9 + ...lete_employee_transfer_property_doctype.py | 5 + ...rts_and_notification_from_hr_to_payroll.py | 45 + ...oll_setting_separately_from_hr_settings.py | 30 + ..._from_payroll_period_to_income_tax_slab.py | 140 + .../rename_stop_to_send_birthday_reminders.py | 19 + .../set_company_in_leave_ledger_entry.py | 20 + .../set_department_for_doctypes.py | 36 + .../post_install/set_payroll_cost_centers.py | 29 + .../post_install/set_payroll_entry_status.py | 14 + .../set_training_event_attendance.py | 25 + .../update_allocate_on_in_leave_type.py | 19 + .../update_employee_advance_status.py | 29 + ..._expense_claim_status_for_paid_advances.py | 25 + .../update_performance_module_changes.py | 80 + ...date_reason_for_resignation_in_employee.py | 17 + ...start_end_date_for_old_shift_assignment.py | 15 + .../updates_for_multi_currency_payroll.py | 131 + .../add_expense_claim_to_repost_settings.py | 12 + ...ate_custom_field_for_appraisal_template.py | 15 + .../v14_0/create_custom_field_in_loan.py | 19 + ...nal_relief_field_for_india_localisation.py | 16 + .../v14_0/create_vehicle_service_item.py | 16 + .../patches/v14_0/update_ess_user_access.py | 5 + ...update_loan_repayment_repay_from_salary.py | 10 + ...ne_if_salary_slip_is_based_on_timesheet.py | 8 + ...lary_and_payroll_payable_account_fields.py | 14 + ...yee_onboarding_and_separation_templates.py | 17 + .../add_leave_type_permission_for_ess.py | 22 + .../patches/v15_0/add_loan_docperms_to_ess.py | 9 + ...total_advance_paid_on_advance_documents.py | 37 + ...check_version_compatibility_with_frappe.py | 20 + ...counting_dimensions_in_leave_encashment.py | 7 + ...nal_relief_field_for_india_localisation.py | 16 + .../v15_0/enable_allow_checkin_setting.py | 9 + .../patches/v15_0/fix_timesheet_status.py | 19 + .../make_hr_settings_tab_in_company_master.py | 22 + .../migrate_loan_type_to_loan_product.py | 10 + ...t_assignment_schedule_to_shift_schedule.py | 29 + .../v15_0/notify_about_loan_app_separation.py | 25 + ...name_and_update_leave_encashment_fields.py | 28 + ..._payroll_date_in_employee_benefit_claim.py | 12 + ...able_late_entry_early_exit_grace_period.py | 11 + .../v15_0/set_default_asset_action_in_fnf.py | 6 + ...resent_in_exisiting_half_day_attendance.py | 15 + .../update_advance_payment_ledger_amount.py | 75 + ...ate_payment_status_for_leave_encashment.py | 54 + ...for_employee_advance_in_employee_master.py | 15 + .../v16_0/create_holiday_list_assignments.py | 66 + .../patches/v16_0/delete_old_workspaces.py | 15 + .../patches/v1_0/rearrange_employee_fields.py | 153 + .../erpnext/src/hrms/hrms/payroll/__init__.py | 0 .../department_wise_salary(last_month).json | 30 + .../designation_wise_salary(last_month).json | 30 + .../outgoing_salary/outgoing_salary.json | 29 + .../hrms/payroll/data/salary_components.json | 27 + .../src/hrms/hrms/payroll/doctype/__init__.py | 0 .../doctype/additional_salary/__init__.py | 0 .../additional_salary/additional_salary.js | 109 + .../additional_salary/additional_salary.json | 248 + .../additional_salary/additional_salary.py | 329 + .../test_additional_salary.py | 199 + .../hrms/payroll/doctype/arrear/__init__.py | 0 .../hrms/payroll/doctype/arrear/arrear.js | 47 + .../hrms/payroll/doctype/arrear/arrear.json | 191 + .../hrms/payroll/doctype/arrear/arrear.py | 455 + .../payroll/doctype/arrear/test_arrear.py | 195 + .../__init__.py | 0 .../bulk_salary_structure_assignment.js | 301 + .../bulk_salary_structure_assignment.json | 169 + .../bulk_salary_structure_assignment.py | 120 + .../test_bulk_salary_structure_assignment.py | 103 + .../employee_benefit_application/__init__.py | 0 .../employee_benefit_application.js | 50 + .../employee_benefit_application.json | 230 + .../employee_benefit_application.py | 93 + .../test_employee_benefit_application.py | 9 + .../__init__.py | 0 .../employee_benefit_application_detail.json | 54 + .../employee_benefit_application_detail.py | 10 + .../employee_benefit_claim/__init__.py | 0 .../employee_benefit_claim.js | 48 + .../employee_benefit_claim.json | 217 + .../employee_benefit_claim.py | 226 + .../test_employee_benefit_claim.py | 8 + .../employee_benefit_detail/__init__.py | 0 .../employee_benefit_detail.json | 49 + .../employee_benefit_detail.py | 9 + .../employee_benefit_ledger/__init__.py | 0 .../employee_benefit_ledger.js | 9 + .../employee_benefit_ledger.json | 188 + .../employee_benefit_ledger.py | 128 + .../employee_benefit_ledger_list.js | 12 + .../test_employee_benefit_ledger.py | 29 + .../doctype/employee_cost_center/__init__.py | 0 .../employee_cost_center.json | 43 + .../employee_cost_center.py | 9 + .../doctype/employee_incentive/__init__.py | 0 .../employee_incentive/employee_incentive.js | 69 + .../employee_incentive.json | 163 + .../employee_incentive/employee_incentive.py | 38 + .../test_employee_incentive.py | 8 + .../doctype/employee_other_income/__init__.py | 0 .../employee_other_income.js | 7 + .../employee_other_income.json | 159 + .../employee_other_income.py | 10 + .../test_employee_other_income.py | 9 + .../__init__.py | 0 .../employee_tax_exemption_category.js | 6 + .../employee_tax_exemption_category.json | 75 + .../employee_tax_exemption_category.py | 9 + .../test_employee_tax_exemption_category.py | 8 + .../__init__.py | 0 .../employee_tax_exemption_declaration.js | 72 + .../employee_tax_exemption_declaration.json | 197 + .../employee_tax_exemption_declaration.py | 78 + ...test_employee_tax_exemption_declaration.py | 510 + .../__init__.py | 0 ...ee_tax_exemption_declaration_category.json | 64 + ...oyee_tax_exemption_declaration_category.py | 10 + .../__init__.py | 0 ...employee_tax_exemption_proof_submission.js | 86 + ...ployee_tax_exemption_proof_submission.json | 226 + ...employee_tax_exemption_proof_submission.py | 54 + ...employee_tax_exemption_proof_submission.py | 142 + .../__init__.py | 0 ...tax_exemption_proof_submission_detail.json | 82 + ...e_tax_exemption_proof_submission_detail.py | 10 + .../__init__.py | 0 .../employee_tax_exemption_sub_category.js | 6 + .../employee_tax_exemption_sub_category.json | 87 + .../employee_tax_exemption_sub_category.py | 21 + ...est_employee_tax_exemption_sub_category.py | 8 + .../hrms/payroll/doctype/gratuity/__init__.py | 0 .../hrms/payroll/doctype/gratuity/gratuity.js | 68 + .../payroll/doctype/gratuity/gratuity.json | 240 + .../hrms/payroll/doctype/gratuity/gratuity.py | 319 + .../doctype/gratuity/gratuity_dashboard.py | 11 + .../payroll/doctype/gratuity/gratuity_list.js | 12 + .../payroll/doctype/gratuity/test_gratuity.py | 333 + .../gratuity_applicable_component/__init__.py | 0 .../gratuity_applicable_component.json | 33 + .../gratuity_applicable_component.py | 10 + .../payroll/doctype/gratuity_rule/__init__.py | 0 .../doctype/gratuity_rule/gratuity_rule.js | 38 + .../doctype/gratuity_rule/gratuity_rule.json | 133 + .../doctype/gratuity_rule/gratuity_rule.py | 42 + .../gratuity_rule/gratuity_rule_dashboard.py | 8 + .../gratuity_rule/test_gratuity_rule.py | 9 + .../doctype/gratuity_rule_slab/__init__.py | 0 .../gratuity_rule_slab.json | 51 + .../gratuity_rule_slab/gratuity_rule_slab.py | 10 + .../doctype/income_tax_slab/__init__.py | 0 .../income_tax_slab/income_tax_slab.js | 24 + .../income_tax_slab/income_tax_slab.json | 187 + .../income_tax_slab/income_tax_slab.py | 14 + .../income_tax_slab/test_income_tax_slab.py | 9 + .../income_tax_slab_other_charges/__init__.py | 0 .../income_tax_slab_other_charges.json | 76 + .../income_tax_slab_other_charges.py | 10 + .../doctype/payroll_correction/__init__.py | 0 .../payroll_correction/payroll_correction.js | 66 + .../payroll_correction.json | 258 + .../payroll_correction/payroll_correction.py | 233 + .../test_payroll_correction.py | 101 + .../payroll_correction_child/__init__.py | 0 .../payroll_correction_child.json | 43 + .../payroll_correction_child.py | 9 + .../payroll_employee_detail/__init__.py | 0 .../payroll_employee_detail.json | 76 + .../payroll_employee_detail.py | 9 + .../payroll/doctype/payroll_entry/__init__.py | 0 .../doctype/payroll_entry/payroll_entry.js | 472 + .../doctype/payroll_entry/payroll_entry.json | 366 + .../doctype/payroll_entry/payroll_entry.py | 1775 ++ .../payroll_entry/payroll_entry_dashboard.py | 9 + .../payroll_entry/payroll_entry_list.js | 17 + .../payroll_entry/test_payroll_entry.py | 1264 ++ .../doctype/payroll_period/__init__.py | 0 .../doctype/payroll_period/payroll_period.js | 36 + .../payroll_period/payroll_period.json | 112 + .../doctype/payroll_period/payroll_period.py | 140 + .../payroll_period_dashboard.py | 7 + .../payroll_period/test_payroll_period.py | 8 + .../doctype/payroll_period_date/__init__.py | 0 .../payroll_period_date.json | 40 + .../payroll_period_date.py | 10 + .../doctype/payroll_settings/__init__.py | 0 .../payroll_settings/payroll_settings.js | 39 + .../payroll_settings/payroll_settings.json | 226 + .../payroll_settings/payroll_settings.py | 45 + .../payroll_settings/test_payroll_settings.py | 9 + .../doctype/retention_bonus/__init__.py | 0 .../retention_bonus/retention_bonus.js | 43 + .../retention_bonus/retention_bonus.json | 190 + .../retention_bonus/retention_bonus.py | 69 + .../retention_bonus/test_retention_bonus.py | 8 + .../doctype/salary_component/README.md | 1 + .../doctype/salary_component/__init__.py | 0 .../salary_component/salary_component.js | 181 + .../salary_component/salary_component.json | 323 + .../salary_component/salary_component.py | 141 + .../salary_component/test_records.json | 36 + .../salary_component/test_salary_component.py | 73 + .../salary_component_account/__init__.py | 0 .../salary_component_account.json | 39 + .../salary_component_account.py | 9 + .../payroll/doctype/salary_detail/__init__.py | 0 .../doctype/salary_detail/salary_detail.json | 292 + .../doctype/salary_detail/salary_detail.py | 9 + .../payroll/doctype/salary_slip/README.md | 1 + .../payroll/doctype/salary_slip/__init__.py | 0 .../doctype/salary_slip/salary_slip.js | 390 + .../doctype/salary_slip/salary_slip.json | 828 + .../doctype/salary_slip/salary_slip.py | 2724 +++ .../doctype/salary_slip/salary_slip_list.js | 26 + .../salary_slip/salary_slip_loan_utils.py | 174 + .../doctype/salary_slip/test_salary_slip.py | 3050 +++ .../doctype/salary_slip_leave/__init__.py | 0 .../salary_slip_leave/salary_slip_leave.json | 79 + .../salary_slip_leave/salary_slip_leave.py | 10 + .../doctype/salary_slip_loan/__init__.py | 0 .../salary_slip_loan/salary_slip_loan.json | 101 + .../salary_slip_loan/salary_slip_loan.py | 10 + .../doctype/salary_slip_timesheet/__init__.py | 0 .../salary_slip_timesheet.json | 42 + .../salary_slip_timesheet.py | 10 + .../doctype/salary_structure/README.md | 1 + .../doctype/salary_structure/__init__.py | 0 .../condition_and_formula_help.html | 47 + .../salary_structure/salary_structure.js | 373 + .../salary_structure/salary_structure.json | 302 + .../salary_structure/salary_structure.py | 468 + .../salary_structure_dashboard.py | 9 + .../salary_structure/salary_structure_list.js | 7 + .../salary_structure/test_salary_structure.py | 304 + .../salary_structure_assignment/__init__.py | 0 .../salary_structure_assignment.js | 191 + .../salary_structure_assignment.json | 303 + .../salary_structure_assignment.py | 219 + .../test_salary_structure_assignment.py | 8 + .../doctype/salary_withholding/__init__.py | 0 .../salary_withholding/salary_withholding.js | 35 + .../salary_withholding.json | 243 + .../salary_withholding/salary_withholding.py | 199 + .../test_salary_withholding.py | 168 + .../salary_withholding_cycle/__init__.py | 0 .../salary_withholding_cycle.json | 62 + .../salary_withholding_cycle.py | 9 + .../doctype/taxable_salary_slab/__init__.py | 0 .../taxable_salary_slab.json | 69 + .../taxable_salary_slab.py | 10 + .../src/hrms/hrms/payroll/notification/as | 1 + .../notification/retention_bonus/__init__.py | 0 .../retention_bonus/retention_bonus.json | 27 + .../retention_bonus/retention_bonus.md | 3 + .../retention_bonus/retention_bonus.py | 3 + .../total_declaration_submitted.json | 21 + .../total_incentive_given(last_month).json | 22 + .../total_outgoing_salary(last_month).json | 22 + .../total_salary_structure.json | 21 + .../payroll_dashboard/payroll/payroll.json | 42 + .../hrms/payroll/print_format/__init__.py | 0 .../__init__.py | 0 .../salary_slip_based_on_timesheet.json | 18 + .../salary_slip_standard/__init__.py | 0 .../salary_slip_standard.json | 22 + .../salary_slip_with_year_to_date/__init__.py | 0 .../salary_slip_with_year_to_date.json | 25 + .../src/hrms/hrms/payroll/report/__init__.py | 0 .../accrued_earnings_report/__init__.py | 0 .../accrued_earnings_report.js | 113 + .../accrued_earnings_report.json | 34 + .../accrued_earnings_report.py | 181 + .../report/bank_remittance/__init__.py | 0 .../report/bank_remittance/bank_remittance.js | 26 + .../bank_remittance/bank_remittance.json | 24 + .../report/bank_remittance/bank_remittance.py | 174 + .../report/income_tax_computation/__init__.py | 0 .../income_tax_computation.js | 54 + .../income_tax_computation.json | 36 + .../income_tax_computation.py | 635 + .../test_income_tax_computation.py | 148 + .../report/income_tax_deductions/__init__.py | 0 .../income_tax_deductions.js | 8 + .../income_tax_deductions.json | 35 + .../income_tax_deductions.py | 133 + .../test_income_tax_deductions.py | 67 + .../professional_tax_deductions/__init__.py | 0 .../professional_tax_deductions.js | 8 + .../professional_tax_deductions.json | 20 + .../professional_tax_deductions.py | 72 + .../provident_fund_deductions/__init__.py | 0 .../provident_fund_deductions.js | 8 + .../provident_fund_deductions.json | 20 + .../provident_fund_deductions.py | 183 + .../__init__.py | 0 .../salary_payments_based_on_payment_mode.js | 17 + ...salary_payments_based_on_payment_mode.json | 30 + .../salary_payments_based_on_payment_mode.py | 174 + .../salary_payments_via_ecs/__init__.py | 0 .../salary_payments_via_ecs.js | 15 + .../salary_payments_via_ecs.json | 27 + .../salary_payments_via_ecs.py | 146 + .../report/salary_register/__init__.py | 0 .../salary_register/salary_register.html | 40 + .../report/salary_register/salary_register.js | 83 + .../salary_register/salary_register.json | 27 + .../report/salary_register/salary_register.py | 354 + apps/erpnext/src/hrms/hrms/payroll/utils.py | 41 + .../payroll/workspace/payroll/payroll.json | 393 + .../tax_&_benefits/tax_&_benefits.json | 153 + apps/erpnext/src/hrms/hrms/public/.gitkeep | 0 apps/erpnext/src/hrms/hrms/public/build.json | 9 + .../desktop_icons/employee_lifecycle.svg | 4 + .../icons/desktop_icons/expense_claim.svg | 4 + .../public/icons/desktop_icons/leaves.svg | 4 + .../public/icons/desktop_icons/people.svg | 4 + .../icons/desktop_icons/performance.svg | 4 + .../icons/desktop_icons/recruitment.svg | 5 + .../icons/desktop_icons/salary_payout.svg | 4 + .../icons/desktop_icons/shift-attendence.svg | 4 + .../icons/desktop_icons/solid/expenses.svg | 4 + .../icons/desktop_icons/solid/leaves.svg | 4 + .../icons/desktop_icons/solid/payroll.svg | 4 + .../icons/desktop_icons/solid/people.svg | 4 + .../icons/desktop_icons/solid/performance.svg | 4 + .../icons/desktop_icons/solid/recruitment.svg | 5 + .../solid/shift_&_attendance.svg | 4 + .../desktop_icons/solid/tax_&_benefits.svg | 4 + .../icons/desktop_icons/solid/tenure.svg | 4 + .../icons/desktop_icons/subtle/expenses.svg | 4 + .../icons/desktop_icons/subtle/leaves.svg | 4 + .../icons/desktop_icons/subtle/people.svg | 4 + .../desktop_icons/subtle/performance.svg | 4 + .../desktop_icons/subtle/recruitment.svg | 5 + .../desktop_icons/subtle/salary_payout.svg | 4 + .../subtle/shift_&_attendance.svg | 4 + .../desktop_icons/subtle/tas_&_benefit.svg | 4 + .../icons/desktop_icons/subtle/tenure.svg | 4 + .../icons/desktop_icons/tax-benefits.svg | 4 + .../hrms/public/images/frappe-hr-logo.png | Bin 0 -> 6741 bytes .../hrms/public/images/frappe-hr-logo.svg | 5 + .../public/js/erpnext/bank_transaction.js | 14 + .../hrms/hrms/public/js/erpnext/company.js | 42 + .../hrms/public/js/erpnext/delivery_trip.js | 19 + .../hrms/hrms/public/js/erpnext/department.js | 15 + .../hrms/hrms/public/js/erpnext/employee.js | 42 + .../hrms/public/js/erpnext/journal_entry.js | 100 + .../hrms/public/js/erpnext/payment_entry.js | 107 + .../hrms/hrms/public/js/erpnext/timesheet.js | 21 + .../hrms/public/js/hierarchy-chart.bundle.js | 3 + .../hierarchy_chart_desktop.js | 644 + .../hierarchy_chart/hierarchy_chart_mobile.js | 567 + .../src/hrms/hrms/public/js/hrms.bundle.js | 8 + .../hrms/hrms/public/js/interview.bundle.js | 2 + .../hrms/hrms/public/js/performance.bundle.js | 2 + .../js/performance/performance_feedback.js | 182 + .../salary_slip_deductions_report_filters.js | 65 + .../js/templates/circular_progress_bar.html | 13 + .../employees_with_unmarked_attendance.html | 39 + .../public/js/templates/feedback_history.html | 58 + .../public/js/templates/feedback_summary.html | 49 + .../js/templates/interview_feedback.html | 29 + .../hrms/public/js/templates/node_card.html | 39 + .../js/templates/performance_feedback.html | 37 + .../hrms/hrms/public/js/templates/rating.html | 27 + .../src/hrms/hrms/public/js/utils/index.js | 280 + .../hrms/hrms/public/js/utils/leave_utils.js | 15 + .../hrms/public/js/utils/payroll_utils.js | 57 + .../hrms/public/manifest/apple-icon-180.png | Bin 0 -> 3517 bytes .../manifest/apple-splash-1125-2436.jpg | Bin 0 -> 24779 bytes .../public/manifest/apple-splash-1136-640.jpg | Bin 0 -> 8828 bytes .../manifest/apple-splash-1170-2532.jpg | Bin 0 -> 27045 bytes .../manifest/apple-splash-1179-2556.jpg | Bin 0 -> 26562 bytes .../manifest/apple-splash-1242-2208.jpg | Bin 0 -> 25984 bytes .../manifest/apple-splash-1242-2688.jpg | Bin 0 -> 29494 bytes .../manifest/apple-splash-1284-2778.jpg | Bin 0 -> 31217 bytes .../manifest/apple-splash-1290-2796.jpg | Bin 0 -> 31571 bytes .../public/manifest/apple-splash-1334-750.jpg | Bin 0 -> 11066 bytes .../manifest/apple-splash-1536-2048.jpg | Bin 0 -> 30270 bytes .../manifest/apple-splash-1620-2160.jpg | Bin 0 -> 33174 bytes .../manifest/apple-splash-1668-2224.jpg | Bin 0 -> 34802 bytes .../manifest/apple-splash-1668-2388.jpg | Bin 0 -> 36381 bytes .../public/manifest/apple-splash-1792-828.jpg | Bin 0 -> 13973 bytes .../manifest/apple-splash-2048-1536.jpg | Bin 0 -> 29423 bytes .../manifest/apple-splash-2048-2732.jpg | Bin 0 -> 48732 bytes .../manifest/apple-splash-2160-1620.jpg | Bin 0 -> 32032 bytes .../manifest/apple-splash-2208-1242.jpg | Bin 0 -> 24129 bytes .../manifest/apple-splash-2224-1668.jpg | Bin 0 -> 33673 bytes .../manifest/apple-splash-2388-1668.jpg | Bin 0 -> 35268 bytes .../manifest/apple-splash-2436-1125.jpg | Bin 0 -> 22383 bytes .../manifest/apple-splash-2532-1170.jpg | Bin 0 -> 24609 bytes .../manifest/apple-splash-2556-1179.jpg | Bin 0 -> 24061 bytes .../manifest/apple-splash-2688-1242.jpg | Bin 0 -> 26889 bytes .../manifest/apple-splash-2732-2048.jpg | Bin 0 -> 47316 bytes .../manifest/apple-splash-2778-1284.jpg | Bin 0 -> 28617 bytes .../manifest/apple-splash-2796-1290.jpg | Bin 0 -> 28780 bytes .../public/manifest/apple-splash-640-1136.jpg | Bin 0 -> 9683 bytes .../public/manifest/apple-splash-750-1334.jpg | Bin 0 -> 12191 bytes .../public/manifest/apple-splash-828-1792.jpg | Bin 0 -> 15437 bytes .../hrms/hrms/public/manifest/favicon-196.png | Bin 0 -> 3955 bytes .../hrms/public/manifest/frappe-hr-logo.svg | 12 + .../manifest/manifest-icon-192.maskable.png | Bin 0 -> 3707 bytes .../manifest/manifest-icon-512.maskable.png | Bin 0 -> 11466 bytes .../hrms/public/scss/circular_progress.scss | 98 + .../src/hrms/hrms/public/scss/feedback.scss | 62 + .../hrms/public/scss/hierarchy_chart.scss | 325 + .../hrms/hrms/public/scss/hrms.bundle.scss | 3 + .../india/data/salary_components.json | 44 + .../src/hrms/hrms/regional/india/setup.py | 285 + .../src/hrms/hrms/regional/india/utils.py | 223 + .../regional/united_arab_emirates/setup.py | 57 + apps/erpnext/src/hrms/hrms/setup.py | 861 + .../src/hrms/hrms/subscription_utils.py | 180 + .../src/hrms/hrms/templates/__init__.py | 0 .../emails/anniversary_reminder.html | 25 + .../templates/emails/birthday_reminder.html | 25 + .../templates/emails/daily_work_summary.html | 55 + .../templates/emails/daily_work_summary.txt | 11 + .../templates/emails/holiday_reminder.html | 16 + .../hrms/templates/emails/training_event.html | 21 + .../templates/generators/job_opening.html | 225 + .../templates/includes/salary_slip_log.html | 19 + .../src/hrms/hrms/templates/pages/__init__.py | 0 .../erpnext/src/hrms/hrms/tests/test_utils.py | 156 + apps/erpnext/src/hrms/hrms/tests/utils.py | 120 + apps/erpnext/src/hrms/hrms/uninstall.py | 21 + apps/erpnext/src/hrms/hrms/utils/__init__.py | 62 + .../hrms/utils/custom_method_for_charts.py | 29 + .../src/hrms/hrms/utils/hierarchy_chart.py | 36 + .../src/hrms/hrms/utils/holiday_list.py | 145 + .../hrms/hrms/workspace_sidebar/expenses.json | 278 + .../hrms/hrms/workspace_sidebar/leaves.json | 231 + .../hrms/hrms/workspace_sidebar/payroll.json | 219 + .../hrms/hrms/workspace_sidebar/people.json | 157 + .../hrms/workspace_sidebar/performance.json | 158 + .../hrms/workspace_sidebar/recruitment.json | 208 + .../workspace_sidebar/shift_&_attendance.json | 279 + .../workspace_sidebar/tax_&_benefits.json | 158 + .../hrms/hrms/workspace_sidebar/tenure.json | 232 + apps/erpnext/src/hrms/hrms/www/__init__.py | 0 apps/erpnext/src/hrms/hrms/www/hrms.py | 39 + .../src/hrms/hrms/www/jobs/__init__.py | 0 apps/erpnext/src/hrms/hrms/www/jobs/index.css | 106 + .../erpnext/src/hrms/hrms/www/jobs/index.html | 359 + apps/erpnext/src/hrms/hrms/www/jobs/index.js | 138 + apps/erpnext/src/hrms/hrms/www/jobs/index.py | 131 + apps/erpnext/src/hrms/hrms/www/roster.py | 9 + apps/erpnext/src/hrms/license.txt | 675 + apps/erpnext/src/hrms/package.json | 29 + apps/erpnext/src/hrms/pyproject.toml | 73 + apps/erpnext/src/hrms/roster/.gitignore | 5 + apps/erpnext/src/hrms/roster/index.d.ts | 1 + apps/erpnext/src/hrms/roster/index.html | 19 + apps/erpnext/src/hrms/roster/package.json | 27 + .../erpnext/src/hrms/roster/postcss.config.js | 6 + .../src/hrms/roster/public/favicon.png | Bin 0 -> 440 bytes apps/erpnext/src/hrms/roster/src/App.vue | 5 + .../src/hrms/roster/src/components/Link.vue | 107 + .../roster/src/components/MonthViewHeader.vue | 124 + .../roster/src/components/MonthViewTable.vue | 532 + .../src/hrms/roster/src/components/NavBar.vue | 60 + .../src/components/ShiftAssignmentDialog.vue | 526 + .../hrms/roster/src/icons/FrappeHRLogo.vue | 29 + apps/erpnext/src/hrms/roster/src/index.css | 1 + apps/erpnext/src/hrms/roster/src/main.ts | 17 + apps/erpnext/src/hrms/roster/src/router.ts | 16 + .../src/hrms/roster/src/utils/dayjs.ts | 14 + .../src/hrms/roster/src/utils/index.ts | 32 + .../src/hrms/roster/src/views/Home.vue | 30 + .../src/hrms/roster/src/views/MonthView.vue | 132 + .../src/hrms/roster/tailwind.config.js | 12 + apps/erpnext/src/hrms/roster/tsconfig.json | 20 + apps/erpnext/src/hrms/roster/vite.config.js | 73 + apps/erpnext/src/hrms/roster/yarn.lock | 2264 +++ apps/erpnext/src/hrms/yarn.lock | 37 + 1530 files changed, 526858 insertions(+), 3 deletions(-) create mode 100644 apps/erpnext/src/hrms/.editorconfig create mode 100644 apps/erpnext/src/hrms/.git-blame-ignore-revs create mode 100644 apps/erpnext/src/hrms/.github/CODEOWNERS create mode 100644 apps/erpnext/src/hrms/.github/ISSUE_TEMPLATE/bug_report.yaml create mode 100644 apps/erpnext/src/hrms/.github/ISSUE_TEMPLATE/config.yml create mode 100644 apps/erpnext/src/hrms/.github/ISSUE_TEMPLATE/feature_request.yaml create mode 100644 apps/erpnext/src/hrms/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 apps/erpnext/src/hrms/.github/frappe-hr-logo.png create mode 100644 apps/erpnext/src/hrms/.github/frappe-hr-old-logo.png create mode 100644 apps/erpnext/src/hrms/.github/helper/apps.json create mode 100644 apps/erpnext/src/hrms/.github/helper/documentation.py create mode 100644 apps/erpnext/src/hrms/.github/helper/install.sh create mode 100644 apps/erpnext/src/hrms/.github/helper/site_config.json create mode 100644 apps/erpnext/src/hrms/.github/helper/translation.py create mode 100644 apps/erpnext/src/hrms/.github/helper/update_pot_file.sh create mode 100644 apps/erpnext/src/hrms/.github/hrms-appraisal.png create mode 100644 apps/erpnext/src/hrms/.github/hrms-attendance.png create mode 100644 apps/erpnext/src/hrms/.github/hrms-hero.png create mode 100644 apps/erpnext/src/hrms/.github/hrms-pwa.png create mode 100644 apps/erpnext/src/hrms/.github/hrms-requisition.png create mode 100644 apps/erpnext/src/hrms/.github/hrms-salary.png create mode 100644 apps/erpnext/src/hrms/.github/labeler.yml create mode 100644 apps/erpnext/src/hrms/.github/release.yml create mode 100644 apps/erpnext/src/hrms/.github/try-on-f-cloud-button.svg create mode 100644 apps/erpnext/src/hrms/.github/workflows/build_image.yml create mode 100644 apps/erpnext/src/hrms/.github/workflows/ci.yml create mode 100644 apps/erpnext/src/hrms/.github/workflows/docs_checker.yml create mode 100644 apps/erpnext/src/hrms/.github/workflows/generate-pot-file.yml create mode 100644 apps/erpnext/src/hrms/.github/workflows/initiate_release.yml create mode 100644 apps/erpnext/src/hrms/.github/workflows/labeller.yml create mode 100644 apps/erpnext/src/hrms/.github/workflows/linters.yml create mode 100644 apps/erpnext/src/hrms/.github/workflows/on_release.yml create mode 100644 apps/erpnext/src/hrms/.github/workflows/release_notes.yml create mode 100644 apps/erpnext/src/hrms/.github/workflows/stale.yml create mode 100644 apps/erpnext/src/hrms/.gitignore create mode 100644 apps/erpnext/src/hrms/.gitmodules create mode 100644 apps/erpnext/src/hrms/.mergify.yml create mode 100644 apps/erpnext/src/hrms/.pre-commit-config.yaml create mode 100644 apps/erpnext/src/hrms/.releaserc create mode 100644 apps/erpnext/src/hrms/.semgrepignore create mode 100644 apps/erpnext/src/hrms/CODE_OF_CONDUCT.md create mode 100644 apps/erpnext/src/hrms/MANIFEST.in create mode 100644 apps/erpnext/src/hrms/README.md create mode 100644 apps/erpnext/src/hrms/codecov.yml create mode 100644 apps/erpnext/src/hrms/commitlint.config.js create mode 100644 apps/erpnext/src/hrms/crowdin.yml create mode 100644 apps/erpnext/src/hrms/docker/docker-compose.yml create mode 100644 apps/erpnext/src/hrms/docker/init.sh create mode 100644 apps/erpnext/src/hrms/frontend/.eslintrc.js create mode 100644 apps/erpnext/src/hrms/frontend/.gitignore create mode 100644 apps/erpnext/src/hrms/frontend/.prettierrc.json create mode 100644 apps/erpnext/src/hrms/frontend/index.html create mode 100644 apps/erpnext/src/hrms/frontend/ionic.config.json create mode 100644 apps/erpnext/src/hrms/frontend/jsconfig.json create mode 100644 apps/erpnext/src/hrms/frontend/package.json create mode 100644 apps/erpnext/src/hrms/frontend/postcss.config.js create mode 100644 apps/erpnext/src/hrms/frontend/public/favicon.png create mode 100644 apps/erpnext/src/hrms/frontend/public/frappe-push-notification.js create mode 100644 apps/erpnext/src/hrms/frontend/public/sw.js create mode 100644 apps/erpnext/src/hrms/frontend/src/App.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/AttendanceCalendar.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/AttendanceRequestItem.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/BaseLayout.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/BottomTabs.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/CheckInPanel.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/CustomIonModal.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/EmployeeAdvanceBalance.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/EmployeeAdvanceItem.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/EmployeeAvatar.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/EmployeeCheckinItem.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/EmptyState.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/ExpenseAdvancesTable.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/ExpenseClaimItem.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/ExpenseClaimSummary.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/ExpenseItems.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/ExpenseTaxesTable.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/ExpensesTable.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/FilePreviewModal.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/FileUploaderView.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/FormField.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/FormView.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/FormattedField.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/Holidays.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/InstallPrompt.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/LeaveBalance.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/LeaveRequestItem.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/Link.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/ListFiltersActionSheet.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/ListItem.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/ListView.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/ProfileInfoModal.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/QuickLinks.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/RequestActionSheet.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/RequestList.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/RequestPanel.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/SalaryDetailTable.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/SalarySlipItem.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/SemicircleChart.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/ShiftAssignmentItem.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/ShiftRequestItem.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/TabButtons.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/WorkflowActionSheet.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/icons/AttendanceIcon.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/icons/EmployeeAdvanceIcon.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/icons/ExpenseIcon.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/icons/FrappeHRLogo.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/icons/FrappeHRLogoType.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/icons/HomeIcon.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/icons/LeaveIcon.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/icons/SalaryIcon.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/components/icons/ShiftIcon.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/composables/index.js create mode 100644 apps/erpnext/src/hrms/frontend/src/composables/realtime.js create mode 100644 apps/erpnext/src/hrms/frontend/src/composables/workflow.js create mode 100644 apps/erpnext/src/hrms/frontend/src/data/advances.js create mode 100644 apps/erpnext/src/hrms/frontend/src/data/attendance.js create mode 100644 apps/erpnext/src/hrms/frontend/src/data/claims.js create mode 100644 apps/erpnext/src/hrms/frontend/src/data/config/requestSummaryFields.js create mode 100644 apps/erpnext/src/hrms/frontend/src/data/currencies.js create mode 100644 apps/erpnext/src/hrms/frontend/src/data/employee.js create mode 100644 apps/erpnext/src/hrms/frontend/src/data/employees.js create mode 100644 apps/erpnext/src/hrms/frontend/src/data/leaves.js create mode 100644 apps/erpnext/src/hrms/frontend/src/data/notifications.js create mode 100644 apps/erpnext/src/hrms/frontend/src/data/session.js create mode 100644 apps/erpnext/src/hrms/frontend/src/data/user.js create mode 100644 apps/erpnext/src/hrms/frontend/src/main.css create mode 100644 apps/erpnext/src/hrms/frontend/src/main.js create mode 100644 apps/erpnext/src/hrms/frontend/src/plugins/translationsPlugin.js create mode 100644 apps/erpnext/src/hrms/frontend/src/router/advances.js create mode 100644 apps/erpnext/src/hrms/frontend/src/router/attendance.js create mode 100644 apps/erpnext/src/hrms/frontend/src/router/claims.js create mode 100644 apps/erpnext/src/hrms/frontend/src/router/index.js create mode 100644 apps/erpnext/src/hrms/frontend/src/router/leaves.js create mode 100644 apps/erpnext/src/hrms/frontend/src/router/salary_slips.js create mode 100644 apps/erpnext/src/hrms/frontend/src/socket.js create mode 100644 apps/erpnext/src/hrms/frontend/src/theme/variables.css create mode 100644 apps/erpnext/src/hrms/frontend/src/utils/commonUtils.js create mode 100644 apps/erpnext/src/hrms/frontend/src/utils/dayjs.js create mode 100644 apps/erpnext/src/hrms/frontend/src/utils/dialogs.js create mode 100644 apps/erpnext/src/hrms/frontend/src/utils/formatters.js create mode 100644 apps/erpnext/src/hrms/frontend/src/utils/ionicConfig.js create mode 100644 apps/erpnext/src/hrms/frontend/src/utils/pushNotifications.js create mode 100644 apps/erpnext/src/hrms/frontend/src/views/AppSettings.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/Home.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/InvalidEmployee.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/Login.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/Notifications.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/Profile.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/TabbedView.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/attendance/AttendanceRequestForm.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/attendance/AttendanceRequestList.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/attendance/Dashboard.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/attendance/EmployeeCheckinList.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftAssignmentForm.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftAssignmentList.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftRequestForm.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftRequestList.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/employee_advance/Form.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/employee_advance/List.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/expense_claim/Dashboard.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/expense_claim/Form.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/expense_claim/List.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/leave/Dashboard.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/leave/Form.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/leave/List.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/salary_slip/Dashboard.vue create mode 100644 apps/erpnext/src/hrms/frontend/src/views/salary_slip/Detail.vue create mode 100644 apps/erpnext/src/hrms/frontend/tailwind.config.js create mode 100644 apps/erpnext/src/hrms/frontend/vite.config.js create mode 100644 apps/erpnext/src/hrms/frontend/yarn.lock create mode 100644 apps/erpnext/src/hrms/hrms.png create mode 100644 apps/erpnext/src/hrms/hrms/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/api/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/api/oauth.py create mode 100644 apps/erpnext/src/hrms/hrms/api/roster.py create mode 100644 apps/erpnext/src/hrms/hrms/api/system_settings.py create mode 100644 apps/erpnext/src/hrms/hrms/config/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/config/desktop.py create mode 100644 apps/erpnext/src/hrms/hrms/config/docs.py create mode 100644 apps/erpnext/src/hrms/hrms/controllers/employee_boarding_controller.py create mode 100644 apps/erpnext/src/hrms/hrms/controllers/employee_reminders.py create mode 100644 apps/erpnext/src/hrms/hrms/controllers/tests/test_employee_reminders.py create mode 100644 apps/erpnext/src/hrms/hrms/desktop_icon/expenses.json create mode 100644 apps/erpnext/src/hrms/hrms/desktop_icon/frappe_hr.json create mode 100644 apps/erpnext/src/hrms/hrms/desktop_icon/leaves.json create mode 100644 apps/erpnext/src/hrms/hrms/desktop_icon/payroll.json create mode 100644 apps/erpnext/src/hrms/hrms/desktop_icon/people.json create mode 100644 apps/erpnext/src/hrms/hrms/desktop_icon/performance.json create mode 100644 apps/erpnext/src/hrms/hrms/desktop_icon/recruitment.json create mode 100644 apps/erpnext/src/hrms/hrms/desktop_icon/shift_&_attendance.json create mode 100644 apps/erpnext/src/hrms/hrms/desktop_icon/tax_&_benefits.json create mode 100644 apps/erpnext/src/hrms/hrms/desktop_icon/tenure.json create mode 100644 apps/erpnext/src/hrms/hrms/hooks.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/appraisal_overview/appraisal_overview.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/attendance_count/attendance_count.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/claims_by_type/claims_by_type.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_employee_count/department_wise_employee_count.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_expense_claims/department_wise_expense_claims.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_openings/department_wise_openings.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_timesheet_hours/department_wise_timesheet_hours.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/designation_wise_employee_count/designation_wise_employee_count.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/designation_wise_openings/designation_wise_openings.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employee_advance_status/employee_advance_status.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_age/employees_by_age.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_branch/employees_by_branch.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_grade/employees_by_grade.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_type/employees_by_type.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/expense_claims/expense_claims.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/gender_diversity_ratio/gender_diversity_ratio.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/grievance_type/grievance_type.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/hiring_vs_attrition_count/hiring_vs_attrition_count.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/interview_status/interview_status.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_applicant_pipeline/job_applicant_pipeline.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_applicant_source/job_applicant_source.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_applicants_by_country/job_applicants_by_country.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_application_frequency/job_application_frequency.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_application_status/job_application_status.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_offer_status/job_offer_status.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/shift_assignment_breakup/shift_assignment_breakup.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/timesheet_activity_breakup/timesheet_activity_breakup.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/training_type/training_type.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/y_o_y_promotions/y_o_y_promotions.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart/y_o_y_transfers/y_o_y_transfers.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/employees_by_age.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/employees_by_age.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/employees_by_age.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/appointment_letter.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/appointment_letter.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/appointment_letter.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/test_appointment_letter.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_content/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_content/appointment_letter_content.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/appointment_letter_template.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/appointment_letter_template.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/test_appointment_letter_template.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/appraisal.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/appraisal.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/appraisal.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/test_appraisal.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/test_appraisal_cycle.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/appraisal_goal.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/appraisal_goal.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_kra/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_kra/appraisal_kra.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_kra/appraisal_kra.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/appraisal_template.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/appraisal_template.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/appraisal_template.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/test_appraisal_template.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisee/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisee/appraisee.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/appraisee/appraisee.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance_calendar.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance/test_attendance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_warnings.html create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/test_attendance_request.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/test_compensatory_leave_request.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/daily_work_summary.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/daily_work_summary.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/daily_work_summary.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/test_daily_work_summary.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/test_data/test-reply.raw create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group_user/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/department_approver/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/department_approver/department_approver.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/department_approver/department_approver.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/designation_skill/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/designation_skill/designation_skill.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/designation_skill/designation_skill.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/earned_leave_schedule/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/test_employee_advance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.css create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/test_employee_attendance_tool.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_boarding_activity/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/test_employee_checkin.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/test_employee_feedback_criteria.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_rating/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/test_employee_grade.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/test_employee_grievance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/employee_health_insurance.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/employee_health_insurance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/test_employee_health_insurance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/test_employee_onboarding.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/test_employee_onboarding_template.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/test_employee_performance_feedback.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/employee_promotion.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/employee_promotion.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/employee_promotion.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/test_employee_promotion.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_property_history/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_property_history/employee_property_history.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_property_history/employee_property_history.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/test_employee_referral.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/test_employee_separation.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/test_employee_separation_template.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill/employee_skill.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill/employee_skill.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/employee_skill_map.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/employee_skill_map.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/employee_skill_map.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_training/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_training/employee_training.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_training/employee_training.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/employee_transfer.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/employee_transfer.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/employee_transfer.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/test_employee_transfer.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/employment_type.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/employment_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/test_employment_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/test_records.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/test_exit_interview.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expected_skill_set/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expected_skill_set/expected_skill_set.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expected_skill_set/expected_skill_set.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/test_expense_claim.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_account/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_account/expense_claim_account.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_account/expense_claim_account.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_advance/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_advance/expense_claim_advance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/expense_claim_detail.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/expense_claim_type.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/expense_claim_type.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/expense_claim_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/test_expense_claim_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_taxes_and_charges/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/full_and_final_asset.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/full_and_final_asset.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/test_full_and_final_asset.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_outstanding_statement/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement_loan_utils.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/test_full_and_final_statement.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/goal/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal_tree.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/goal/test_goal.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/grievance_type.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/grievance_type.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/grievance_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/test_grievance_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/holiday_list_assignment.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/holiday_list_assignment.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/holiday_list_assignment.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/test_holiday_list_assignment.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/hr_settings.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/hr_settings.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/hr_settings.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/test_hr_settings.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/identification_document_type.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/identification_document_type.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/identification_document_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/test_identification_document_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interest/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interest/interest.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interest/interest.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interest/interest.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interest/test_interest.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_calendar.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_feedback_reminder_template.html create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_reminder_notification_template.html create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview/test_interview.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_detail/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_detail/interview_detail.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_detail/interview_detail.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/interview_feedback.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/interview_feedback.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/interview_feedback.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/test_interview_feedback.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/interview_round.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/interview_round.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/interview_round.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/test_interview_round.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/interview_type.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/interview_type.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/interview_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/test_interview_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interviewer/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interviewer/interviewer.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/interviewer/interviewer.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant_dashboard.html create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/test_job_applicant.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/job_applicant_source.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/job_applicant_source.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/job_applicant_source.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/test_job_applicant_source.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/__init__.py create mode 100755 apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/test_job_offer.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term/job_offer_term.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term/job_offer_term.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/job_offer_term_template.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/job_offer_term_template.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/test_job_offer_term_template.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/templates/job_opening.html create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/templates/job_opening_row.html create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/test_job_opening.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/job_opening_template.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/job_opening_template.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/job_opening_template.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/test_job_opening_template.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/test_job_requisition.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/kra/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/kra/kra.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/kra/kra.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/kra/kra.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/kra/test_kra.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/leave_adjustment.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/leave_adjustment.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/leave_adjustment.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/test_leave_adjustment.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/README.md create mode 100755 apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/__init__.py create mode 100755 apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation.json create mode 100755 apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/test_earned_leave_schedule.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/test_earned_leaves.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/test_leave_allocation.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/README.md create mode 100755 apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/__init__.py create mode 100755 apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application.json create mode 100755 apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_calendar.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_dashboard.html create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_email_template.html create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/test_leave_application.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/test_records.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/test_leave_block_list.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/test_records.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/leave_block_list_date.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/leave_control_panel.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/leave_control_panel.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/leave_control_panel.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/test_leave_control_panel.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/leave_encashment.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/leave_encashment.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/leave_encashment.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/test_leave_encashment.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/test_leave_ledger_entry.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/test_leave_period.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/test_leave_policy.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/test_leave_policy_assignment.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/leave_policy_detail.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/leave_policy_detail.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/test_leave_policy_detail.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/test_leave_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/test_records.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/offer_term.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/offer_term.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/offer_term.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/test_offer_term.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_details/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_details/overtime_details.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_details/overtime_details.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_salary_component/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_salary_component/overtime_salary_component.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/overtime_slip.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/overtime_slip.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/overtime_slip.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/test_overtime_slip.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/overtime_type.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/overtime_type.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/overtime_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/test_overtime_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/purpose_of_travel.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/purpose_of_travel.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/test_purpose_of_travel.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/pwa_notification.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/pwa_notification.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/pwa_notification.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/test_pwa_notification.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment_calendar.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/test_shift_assignment.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/test_shift_assignment_tool.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/test_shift_location.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/test_shift_request.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/test_shift_schedule.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/test_shift_schedule_assignment.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type_list.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/test_records.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/test_shift_type.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/skill/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/skill/skill.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/skill/skill.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/skill/skill.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/skill_assessment/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/skill_assessment/skill_assessment.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/skill_assessment/skill_assessment.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/test_staffing_plan.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan_detail/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_event/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_event/test_training_event.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event_calendar.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_event_employee/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_event_employee/training_event_employee.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_event_employee/training_event_employee.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/test_training_feedback.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/training_feedback.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/training_feedback.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/training_feedback.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_program/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_program/test_training_program.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_result/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_result/test_training_result.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_result/training_result.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_result/training_result.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_result/training_result.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_result_employee/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_result_employee/training_result_employee.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/training_result_employee/training_result_employee.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/travel_itinerary/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/travel_itinerary/travel_itinerary.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/travel_itinerary/travel_itinerary.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/test_travel_request.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/travel_request.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/travel_request.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/travel_request.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/travel_request_costing/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/travel_request_costing/travel_request_costing.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/travel_request_costing/travel_request_costing.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/README.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/test_upload_attendance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/upload_attendance.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/upload_attendance.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/upload_attendance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/test_vehicle_log.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/vehicle_log.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/vehicle_log.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/vehicle_log.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service/vehicle_service.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service/vehicle_service.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/test_vehicle_service_item.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/vehicle_service_item.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/vehicle_service_item.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/employee_property_update.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/hr_dashboard/attendance/attendance.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/hr_dashboard/employee_lifecycle/employee_lifecycle.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/hr_dashboard/expense_claims/expense_claims.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/hr_dashboard/human_resource/human_resource.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/hr_dashboard/recruitment/recruitment.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/exit_interview_scheduled.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/exit_interview_scheduled.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/exit_interview_scheduled.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.html create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.html create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.md create mode 100644 apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/accepted_job_applicants/accepted_job_applicants.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/applicant_to_hire_percentage/applicant_to_hire_percentage.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/approved_claims_(this_month)/approved_claims_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/early_exit_(this_month)/early_exit_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/employee_exits_(this_year)/employee_exits_(this_year).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/employees_joining_(this_quarter)/employees_joining_(this_quarter).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/employees_relieving_(this_quarter)/employees_relieving_(this_quarter).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/expense_claims_(this_month)/expense_claims_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/holidays_in_this_month/holidays_in_this_month.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/job_offer_acceptance_rate/job_offer_acceptance_rate.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/job_offers_(this_month)/job_offers_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/job_openings/job_openings.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/late_entry_(this_month)/late_entry_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/new_hires_(this_year)/new_hires_(this_year).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/number_of_employees_on_leave_(this_month)/number_of_employees_on_leave_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/number_of_employees_on_leave_(today)/number_of_employees_on_leave_(today).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/onboardings_(this_month)/onboardings_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/promotions_(this_month)/promotions_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/rejected_claims_(this_month)/rejected_claims_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/rejected_job_applicants/rejected_job_applicants.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/separations_(this_month)/separations_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/time_to_fill/time_to_fill.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/total_absent_(this_month)/total_absent_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/total_applicants_(this_month)/total_applicants_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/total_employees/total_employees.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/total_present_(this_month)/total_present_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/trainings_(this_month)/trainings_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/number_card/transfers_(this_month)/transfers_(this_month).json create mode 100644 apps/erpnext/src/hrms/hrms/hr/page/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/organizational_chart.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/organizational_chart.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/organizational_chart.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/test_organizational_chart.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/page/team_updates/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_update_row.html create mode 100644 apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.css create mode 100644 apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/print_format/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/print_format/job_offer/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/print_format/job_offer/job_offer.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/print_format/standard_appointment_letter/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/print_format/standard_appointment_letter/standard_appointment_letter.html create mode 100644 apps/erpnext/src/hrms/hrms/hr/print_format/standard_appointment_letter/standard_appointment_letter.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/appraisal_overview.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/appraisal_overview.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/appraisal_overview.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/test_appraisal_overview.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/employee_advance_summary.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/employee_advance_summary.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/employee_advance_summary.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/employee_analytics.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/employee_analytics.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/employee_analytics.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/test_employee_analytics.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/employee_birthday.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/employee_birthday.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/employee_birthday.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/test_employee_birthday.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_exits/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_exits/employee_exits.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_exits/employee_exits.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_exits/employee_exits.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_exits/test_employee_exits.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/test_employee_util.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_information/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_information/employee_information.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/employee_leave_balance.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/employee_leave_balance.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/employee_leave_balance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/test_employee_leave_balance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/test_employee_leave_balance_summary.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/test_employees_working_on_a_holiday.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/leave_ledger.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/leave_ledger.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/leave_ledger.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/test_leave_ledger.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/test_monthly_attendance_sheet.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/project_profitability/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/project_profitability/project_profitability.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/project_profitability/project_profitability.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/project_profitability/project_profitability.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/project_profitability/test_project_profitability.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/recruitment_analytics.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/recruitment_analytics.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/recruitment_analytics.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/shift_attendance.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/shift_attendance.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/shift_attendance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/test_shift_attendance.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/test_vehicle_expenses.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/vehicle_expenses.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/vehicle_expenses.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/vehicle_expenses.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/utils.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/web_form/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/web_form/job_application/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/web_form/job_application/job_application.js create mode 100644 apps/erpnext/src/hrms/hrms/hr/web_form/job_application/job_application.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/web_form/job_application/job_application.py create mode 100644 apps/erpnext/src/hrms/hrms/hr/workspace/expenses/expenses.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/workspace/leaves/leaves.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/workspace/people/people.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/workspace/performance/performance.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/workspace/recruitment/recruitment.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json create mode 100644 apps/erpnext/src/hrms/hrms/hr/workspace/tenure/tenure.json create mode 100644 apps/erpnext/src/hrms/hrms/hrms.png create mode 100644 apps/erpnext/src/hrms/hrms/install.py create mode 100644 apps/erpnext/src/hrms/hrms/locale/af.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/ar.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/bs.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/cs.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/da.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/de.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/eo.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/es.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/fa.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/fi.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/fr.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/hr.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/hu.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/id.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/it.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/main.pot create mode 100644 apps/erpnext/src/hrms/hrms/locale/my.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/nb.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/nl.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/pl.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/pt.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/pt_BR.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/ru.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/sl.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/sr.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/sr_CS.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/sv.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/ta.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/th.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/tr.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/vi.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/zh.po create mode 100644 apps/erpnext/src/hrms/hrms/locale/zh_TW.po create mode 100644 apps/erpnext/src/hrms/hrms/mixins/appraisal.py create mode 100644 apps/erpnext/src/hrms/hrms/mixins/pwa_notifications.py create mode 100644 apps/erpnext/src/hrms/hrms/modules.txt create mode 100644 apps/erpnext/src/hrms/hrms/overrides/company.py create mode 100644 apps/erpnext/src/hrms/hrms/overrides/dashboard_overrides.py create mode 100644 apps/erpnext/src/hrms/hrms/overrides/employee_master.py create mode 100644 apps/erpnext/src/hrms/hrms/overrides/employee_payment_entry.py create mode 100644 apps/erpnext/src/hrms/hrms/overrides/employee_project.py create mode 100644 apps/erpnext/src/hrms/hrms/overrides/employee_timesheet.py create mode 100644 apps/erpnext/src/hrms/hrms/patches.txt create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/create_country_fixtures.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/delete_employee_transfer_property_doctype.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/move_doctype_reports_and_notification_from_hr_to_payroll.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/move_payroll_setting_separately_from_hr_settings.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/move_tax_slabs_from_payroll_period_to_income_tax_slab.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/rename_stop_to_send_birthday_reminders.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/set_company_in_leave_ledger_entry.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/set_department_for_doctypes.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/set_payroll_cost_centers.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/set_payroll_entry_status.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/set_training_event_attendance.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/update_allocate_on_in_leave_type.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/update_employee_advance_status.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/update_expense_claim_status_for_paid_advances.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/update_performance_module_changes.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/update_reason_for_resignation_in_employee.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/update_start_end_date_for_old_shift_assignment.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/post_install/updates_for_multi_currency_payroll.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v14_0/add_expense_claim_to_repost_settings.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v14_0/create_custom_field_for_appraisal_template.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v14_0/create_custom_field_in_loan.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v14_0/create_marginal_relief_field_for_india_localisation.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v14_0/create_vehicle_service_item.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v14_0/update_ess_user_access.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v14_0/update_loan_repayment_repay_from_salary.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v14_0/update_payroll_frequency_to_none_if_salary_slip_is_based_on_timesheet.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v14_0/update_repay_from_salary_and_payroll_payable_account_fields.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v14_0/update_title_in_employee_onboarding_and_separation_templates.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/add_leave_type_permission_for_ess.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/add_loan_docperms_to_ess.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/call_set_total_advance_paid_on_advance_documents.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/check_version_compatibility_with_frappe.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/create_accounting_dimensions_in_leave_encashment.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/create_marginal_relief_field_for_india_localisation.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/enable_allow_checkin_setting.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/fix_timesheet_status.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/make_hr_settings_tab_in_company_master.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/migrate_loan_type_to_loan_product.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/migrate_shift_assignment_schedule_to_shift_schedule.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/notify_about_loan_app_separation.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/rename_and_update_leave_encashment_fields.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/rename_claim_date_to_payroll_date_in_employee_benefit_claim.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/rename_enable_late_entry_early_exit_grace_period.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/set_default_asset_action_in_fnf.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/set_half_day_status_to_present_in_exisiting_half_day_attendance.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/update_advance_payment_ledger_amount.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v15_0/update_payment_status_for_leave_encashment.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v16_0/create_holiday_list_assignments.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v16_0/delete_old_workspaces.py create mode 100644 apps/erpnext/src/hrms/hrms/patches/v1_0/rearrange_employee_fields.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/dashboard_chart/department_wise_salary(last_month)/department_wise_salary(last_month).json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/dashboard_chart/designation_wise_salary(last_month)/designation_wise_salary(last_month).json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/dashboard_chart/outgoing_salary/outgoing_salary.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/data/salary_components.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/additional_salary.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/additional_salary.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/additional_salary.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/test_additional_salary.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/arrear.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/arrear.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/arrear.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/test_arrear.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/test_bulk_salary_structure_assignment.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/test_employee_benefit_application.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application_detail/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/test_employee_benefit_claim.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_detail/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger_list.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/test_employee_benefit_ledger.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_cost_center/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_cost_center/employee_cost_center.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_cost_center/employee_cost_center.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/employee_incentive.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/employee_incentive.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/employee_incentive.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/test_employee_incentive.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/employee_other_income.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/employee_other_income.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/employee_other_income.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/test_employee_other_income.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/test_employee_tax_exemption_category.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/test_employee_tax_exemption_declaration.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration_category/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/test_employee_tax_exemption_proof_submission.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/test_employee_tax_exemption_sub_category.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity_list.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/test_gratuity.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_applicable_component/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/test_gratuity_rule.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule_slab/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/income_tax_slab.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/income_tax_slab.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/income_tax_slab.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/test_income_tax_slab.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab_other_charges/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/payroll_correction.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/payroll_correction.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/payroll_correction.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/test_payroll_correction.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction_child/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_employee_detail/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry_list.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/test_payroll_entry.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/test_payroll_period.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period_date/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period_date/payroll_period_date.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period_date/payroll_period_date.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/payroll_settings.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/payroll_settings.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/payroll_settings.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/test_payroll_settings.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/retention_bonus.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/retention_bonus.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/retention_bonus.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/test_retention_bonus.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/README.md create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/salary_component.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/salary_component.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/salary_component.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/test_records.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/test_salary_component.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component_account/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component_account/salary_component_account.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component_account/salary_component_account.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_detail/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_detail/salary_detail.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_detail/salary_detail.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/README.md create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip_list.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/test_salary_slip.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_leave/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_loan/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_timesheet/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/README.md create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/condition_and_formula_help.html create mode 100755 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure_dashboard.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure_list.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/test_salary_structure.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/test_salary_structure_assignment.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/salary_withholding.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/salary_withholding.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/salary_withholding.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/test_salary_withholding.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding_cycle/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/taxable_salary_slab/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/notification/as create mode 100644 apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/retention_bonus.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/retention_bonus.md create mode 100644 apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/retention_bonus.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/number_card/total_declaration_submitted/total_declaration_submitted.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/number_card/total_incentive_given(last_month)/total_incentive_given(last_month).json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/number_card/total_outgoing_salary(last_month)/total_outgoing_salary(last_month).json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/number_card/total_salary_structure/total_salary_structure.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/payroll_dashboard/payroll/payroll.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/print_format/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_based_on_timesheet/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_based_on_timesheet/salary_slip_based_on_timesheet.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_standard/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_standard/salary_slip_standard.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_with_year_to_date/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_with_year_to_date/salary_slip_with_year_to_date.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/bank_remittance.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/bank_remittance.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/bank_remittance.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/income_tax_computation.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/income_tax_computation.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/income_tax_computation.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/test_income_tax_computation.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/income_tax_deductions.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/income_tax_deductions.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/income_tax_deductions.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/test_income_tax_deductions.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/salary_register/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.html create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.js create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/utils.py create mode 100644 apps/erpnext/src/hrms/hrms/payroll/workspace/payroll/payroll.json create mode 100644 apps/erpnext/src/hrms/hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json create mode 100644 apps/erpnext/src/hrms/hrms/public/.gitkeep create mode 100644 apps/erpnext/src/hrms/hrms/public/build.json create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/employee_lifecycle.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/expense_claim.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/leaves.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/people.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/performance.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/recruitment.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/salary_payout.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/shift-attendence.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/expenses.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/leaves.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/payroll.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/people.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/performance.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/recruitment.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/shift_&_attendance.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/tax_&_benefits.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/tenure.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/expenses.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/leaves.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/people.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/performance.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/recruitment.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/salary_payout.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/shift_&_attendance.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/tas_&_benefit.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/tenure.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/tax-benefits.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/images/frappe-hr-logo.png create mode 100644 apps/erpnext/src/hrms/hrms/public/images/frappe-hr-logo.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/js/erpnext/bank_transaction.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/erpnext/company.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/erpnext/delivery_trip.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/erpnext/department.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/erpnext/employee.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/erpnext/journal_entry.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/erpnext/payment_entry.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/erpnext/timesheet.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/hierarchy-chart.bundle.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/hrms.bundle.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/interview.bundle.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/performance.bundle.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/performance/performance_feedback.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/salary_slip_deductions_report_filters.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/templates/circular_progress_bar.html create mode 100644 apps/erpnext/src/hrms/hrms/public/js/templates/employees_with_unmarked_attendance.html create mode 100644 apps/erpnext/src/hrms/hrms/public/js/templates/feedback_history.html create mode 100644 apps/erpnext/src/hrms/hrms/public/js/templates/feedback_summary.html create mode 100644 apps/erpnext/src/hrms/hrms/public/js/templates/interview_feedback.html create mode 100644 apps/erpnext/src/hrms/hrms/public/js/templates/node_card.html create mode 100644 apps/erpnext/src/hrms/hrms/public/js/templates/performance_feedback.html create mode 100644 apps/erpnext/src/hrms/hrms/public/js/templates/rating.html create mode 100644 apps/erpnext/src/hrms/hrms/public/js/utils/index.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/utils/leave_utils.js create mode 100644 apps/erpnext/src/hrms/hrms/public/js/utils/payroll_utils.js create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-icon-180.png create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1125-2436.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1136-640.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1170-2532.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1179-2556.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1242-2208.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1242-2688.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1284-2778.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1290-2796.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1334-750.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1536-2048.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1620-2160.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1668-2224.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1668-2388.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1792-828.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2048-1536.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2048-2732.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2160-1620.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2208-1242.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2224-1668.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2388-1668.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2436-1125.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2532-1170.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2556-1179.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2688-1242.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2732-2048.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2778-1284.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2796-1290.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-640-1136.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-750-1334.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-828-1792.jpg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/favicon-196.png create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/frappe-hr-logo.svg create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/manifest-icon-192.maskable.png create mode 100644 apps/erpnext/src/hrms/hrms/public/manifest/manifest-icon-512.maskable.png create mode 100644 apps/erpnext/src/hrms/hrms/public/scss/circular_progress.scss create mode 100644 apps/erpnext/src/hrms/hrms/public/scss/feedback.scss create mode 100644 apps/erpnext/src/hrms/hrms/public/scss/hierarchy_chart.scss create mode 100644 apps/erpnext/src/hrms/hrms/public/scss/hrms.bundle.scss create mode 100644 apps/erpnext/src/hrms/hrms/regional/india/data/salary_components.json create mode 100644 apps/erpnext/src/hrms/hrms/regional/india/setup.py create mode 100644 apps/erpnext/src/hrms/hrms/regional/india/utils.py create mode 100644 apps/erpnext/src/hrms/hrms/regional/united_arab_emirates/setup.py create mode 100644 apps/erpnext/src/hrms/hrms/setup.py create mode 100644 apps/erpnext/src/hrms/hrms/subscription_utils.py create mode 100644 apps/erpnext/src/hrms/hrms/templates/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/templates/emails/anniversary_reminder.html create mode 100644 apps/erpnext/src/hrms/hrms/templates/emails/birthday_reminder.html create mode 100644 apps/erpnext/src/hrms/hrms/templates/emails/daily_work_summary.html create mode 100644 apps/erpnext/src/hrms/hrms/templates/emails/daily_work_summary.txt create mode 100644 apps/erpnext/src/hrms/hrms/templates/emails/holiday_reminder.html create mode 100644 apps/erpnext/src/hrms/hrms/templates/emails/training_event.html create mode 100644 apps/erpnext/src/hrms/hrms/templates/generators/job_opening.html create mode 100644 apps/erpnext/src/hrms/hrms/templates/includes/salary_slip_log.html create mode 100644 apps/erpnext/src/hrms/hrms/templates/pages/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/tests/test_utils.py create mode 100644 apps/erpnext/src/hrms/hrms/tests/utils.py create mode 100644 apps/erpnext/src/hrms/hrms/uninstall.py create mode 100644 apps/erpnext/src/hrms/hrms/utils/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/utils/custom_method_for_charts.py create mode 100644 apps/erpnext/src/hrms/hrms/utils/hierarchy_chart.py create mode 100644 apps/erpnext/src/hrms/hrms/utils/holiday_list.py create mode 100644 apps/erpnext/src/hrms/hrms/workspace_sidebar/expenses.json create mode 100644 apps/erpnext/src/hrms/hrms/workspace_sidebar/leaves.json create mode 100644 apps/erpnext/src/hrms/hrms/workspace_sidebar/payroll.json create mode 100644 apps/erpnext/src/hrms/hrms/workspace_sidebar/people.json create mode 100644 apps/erpnext/src/hrms/hrms/workspace_sidebar/performance.json create mode 100644 apps/erpnext/src/hrms/hrms/workspace_sidebar/recruitment.json create mode 100644 apps/erpnext/src/hrms/hrms/workspace_sidebar/shift_&_attendance.json create mode 100644 apps/erpnext/src/hrms/hrms/workspace_sidebar/tax_&_benefits.json create mode 100644 apps/erpnext/src/hrms/hrms/workspace_sidebar/tenure.json create mode 100644 apps/erpnext/src/hrms/hrms/www/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/www/hrms.py create mode 100644 apps/erpnext/src/hrms/hrms/www/jobs/__init__.py create mode 100644 apps/erpnext/src/hrms/hrms/www/jobs/index.css create mode 100644 apps/erpnext/src/hrms/hrms/www/jobs/index.html create mode 100644 apps/erpnext/src/hrms/hrms/www/jobs/index.js create mode 100644 apps/erpnext/src/hrms/hrms/www/jobs/index.py create mode 100644 apps/erpnext/src/hrms/hrms/www/roster.py create mode 100644 apps/erpnext/src/hrms/license.txt create mode 100644 apps/erpnext/src/hrms/package.json create mode 100644 apps/erpnext/src/hrms/pyproject.toml create mode 100644 apps/erpnext/src/hrms/roster/.gitignore create mode 100644 apps/erpnext/src/hrms/roster/index.d.ts create mode 100644 apps/erpnext/src/hrms/roster/index.html create mode 100644 apps/erpnext/src/hrms/roster/package.json create mode 100644 apps/erpnext/src/hrms/roster/postcss.config.js create mode 100644 apps/erpnext/src/hrms/roster/public/favicon.png create mode 100644 apps/erpnext/src/hrms/roster/src/App.vue create mode 100644 apps/erpnext/src/hrms/roster/src/components/Link.vue create mode 100644 apps/erpnext/src/hrms/roster/src/components/MonthViewHeader.vue create mode 100644 apps/erpnext/src/hrms/roster/src/components/MonthViewTable.vue create mode 100644 apps/erpnext/src/hrms/roster/src/components/NavBar.vue create mode 100644 apps/erpnext/src/hrms/roster/src/components/ShiftAssignmentDialog.vue create mode 100644 apps/erpnext/src/hrms/roster/src/icons/FrappeHRLogo.vue create mode 100644 apps/erpnext/src/hrms/roster/src/index.css create mode 100644 apps/erpnext/src/hrms/roster/src/main.ts create mode 100644 apps/erpnext/src/hrms/roster/src/router.ts create mode 100644 apps/erpnext/src/hrms/roster/src/utils/dayjs.ts create mode 100644 apps/erpnext/src/hrms/roster/src/utils/index.ts create mode 100644 apps/erpnext/src/hrms/roster/src/views/Home.vue create mode 100644 apps/erpnext/src/hrms/roster/src/views/MonthView.vue create mode 100644 apps/erpnext/src/hrms/roster/tailwind.config.js create mode 100644 apps/erpnext/src/hrms/roster/tsconfig.json create mode 100644 apps/erpnext/src/hrms/roster/vite.config.js create mode 100644 apps/erpnext/src/hrms/roster/yarn.lock create mode 100644 apps/erpnext/src/hrms/yarn.lock diff --git a/.gitignore b/.gitignore index f827b718b..7fbff1ded 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,4 @@ mk.sh .claude _bmad-output -# Pre-downloaded app sources (large, user-managed, not version-controlled) -apps/erpnext/src/hrms/* -!apps/erpnext/src/hrms/.gitkeep \ No newline at end of file +# Pre-downloaded app sources \ No newline at end of file diff --git a/apps/erpnext/src/hrms/.editorconfig b/apps/erpnext/src/hrms/.editorconfig new file mode 100644 index 000000000..58e30f790 --- /dev/null +++ b/apps/erpnext/src/hrms/.editorconfig @@ -0,0 +1,15 @@ +# Root editor config file +root = true + +# Common settings +[*] +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +charset = utf-8 + +# js indentation settings +[{*.js,*.ts,*.vue,*.css,*.scss,*.html}] +indent_style = tab +indent_size = 4 +max_line_length = 99 diff --git a/apps/erpnext/src/hrms/.git-blame-ignore-revs b/apps/erpnext/src/hrms/.git-blame-ignore-revs new file mode 100644 index 000000000..691de8586 --- /dev/null +++ b/apps/erpnext/src/hrms/.git-blame-ignore-revs @@ -0,0 +1,30 @@ +# Since version 2.23 (released in August 2019), git-blame has a feature +# to ignore or bypass certain commits. +# +# This file contains a list of commits that are not likely what you +# are looking for in a blame, such as mass reformatting or renaming. +# You can set this file as a default ignore file for blame by running +# the following command. +# +# $ git config blame.ignoreRevsFile .git-blame-ignore-revs + +# sort and cleanup imports +4872c156974291f0c4c88f26033fef0b900ca995 + +# old black formatting commit (from erpnext) +76c895a6c659356151433715a1efe9337e348c11 + +# bulk formatting +b55d6e27af6bd274dfa47e66a3012ddec68ce798 + +# bulk formatting PWA frontend code +f37f15b2b5329e3b0b35891e1c4fd82f48562c6d + +# bulk formatting PWA frontend code +920daa1a3ddccaefaf7b9348f850831d6e0a0e6b + +# python ruff formatting +b68457552bb3540565267f23fbfcee35c9f86e1c + +# js, scss prettier formatting +1ab1d6238171a5cee3263812402a8b82e7131cb1 \ No newline at end of file diff --git a/apps/erpnext/src/hrms/.github/CODEOWNERS b/apps/erpnext/src/hrms/.github/CODEOWNERS new file mode 100644 index 000000000..a0394c46c --- /dev/null +++ b/apps/erpnext/src/hrms/.github/CODEOWNERS @@ -0,0 +1,13 @@ +# This is a comment. +# Each line is a file pattern followed by one or more owners. + +# These owners will be the default owners for everything in +# the repo. Unless a later match takes precedence. + +hrms/hr/ @ruchamahabal @asmitahase +hrms/payroll/ @ruchamahabal @AyshaHakeem @iamraheelkhan + +frontend/ @ruchamahabal @asmitahase +roster/ @ruchamahabal @asmitahase + +.github/ @asmitahase diff --git a/apps/erpnext/src/hrms/.github/ISSUE_TEMPLATE/bug_report.yaml b/apps/erpnext/src/hrms/.github/ISSUE_TEMPLATE/bug_report.yaml new file mode 100644 index 000000000..eb83ea8b6 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -0,0 +1,81 @@ +--- +name: Bug Report +description: Report a bug encountered while using Frappe HR +labels: ["bug"] + +body: + - type: markdown + attributes: + value: | + Welcome to Frappe HR issue tracker! Before creating an issue, please consider the following: + + 1. This tracker should only be used to report bugs and request features / enhancements to Frappe HR + - For questions and general support, checkout the [documentation](https://frappehr.com/docs) or use the [forum](https://discuss.frappe.io) to get inputs from the open source community. + - For documentation issues, propose edit on the [documentation site](https://frappehr.com/docs) directly. + 2. When making a bug report, make sure you provide all required information. The easier it is for + maintainers to reproduce, the faster it'll be fixed. + 3. If you think you know what the reason for the bug is, share it with us. Maybe put in a PR 😉 + + - type: textarea + id: bug-info + attributes: + label: Information about bug + description: Also tell us, what did you expect to happen? If applicable, add screenshots to help explain your problem. + placeholder: Please provide as much information as possible. + validations: + required: true + + - type: dropdown + id: module + attributes: + label: Module + description: Select the affected module of Frappe HR. + multiple: true + options: + - HR + - Payroll + - other + validations: + required: true + + - type: textarea + id: exact-version + attributes: + label: Version + description: Share exact version number of Frappe, ERPNext and Frappe HR you are using. + placeholder: | + Frappe version - + ERPNext version - + Frappe HR version - + validations: + required: true + + - type: dropdown + id: install-method + attributes: + label: Installation method + options: + - docker + - easy-install + - manual install + - FrappeCloud + validations: + required: false + + - type: textarea + id: logs + attributes: + label: Relevant log output / Stack trace / Full Error Message. + description: Please copy and paste any relevant log output. This will be automatically formatted. + render: shell + + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: | + By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/frappe/hrms/blob/develop/CODE_OF_CONDUCT.md) + options: + - label: I agree to follow this project's Code of Conduct + required: true +... diff --git a/apps/erpnext/src/hrms/.github/ISSUE_TEMPLATE/config.yml b/apps/erpnext/src/hrms/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..acc407a67 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Community Forum + url: https://discuss.frappe.io/ + about: For general QnA, discussions and community help. diff --git a/apps/erpnext/src/hrms/.github/ISSUE_TEMPLATE/feature_request.yaml b/apps/erpnext/src/hrms/.github/ISSUE_TEMPLATE/feature_request.yaml new file mode 100644 index 000000000..1ea3aeea8 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -0,0 +1,50 @@ +--- +name: Feature Request +description: Suggest an idea to improve Frappe HR +labels: ["feature-request"] + +body: + - type: markdown + attributes: + value: | + Welcome to Frappe HR issue tracker! Before submitting a request, please consider the following: + + 1. This tracker should only be used to report bugs and request features / enhancements to Frappe HR + - For questions and general support, checkout the [documentation](https://docs.frappe.io/hr) or use the [forum](https://discuss.frappe.io) to get inputs from the open source community. + 2. Use the search function before creating a new issue. Duplicates will be closed and directed to + the original discussion. + 3. When making a feature request, make sure to be as verbose as possible. The better you convey your message, the greater the drive to make it happen. + + + Please keep in mind that we get many many requests and we can't possibly work on all of them, we prioritize development based on the goals of the product and organization. Feature requests are still welcome as it helps us in research when we do decide to work on the requested feature. + + If you're in urgent need to a feature, please try the following channels to get paid developments done quickly: + 1. Certified Frappe partners: https://frappe.io/partners + 2. Developer community on Frappe forums: https://discuss.frappe.io/c/developers/5 + 3. Telegram group for Frappe HR development work: https://t.me/frappehr + + - type: textarea + id: problem-info + attributes: + label: Is your feature request related to a problem? Please describe. + description: A clear and concise description of what the problem is. Eg. I'm always frustrated when [...] + placeholder: Please provide as much information as possible. + + - type: textarea + id: solution-info + attributes: + label: Describe the solution you'd like + description: A clear and concise description of what you want to happen. + + - type: textarea + id: alternatives-info + attributes: + label: Describe the alternatives you've considered + description: A clear and concise description of any alternative solutions or features you've considered. + + - type: textarea + id: additional-info + attributes: + label: Additional context + description: Add any other context or screenshots about the feature request here. +... diff --git a/apps/erpnext/src/hrms/.github/PULL_REQUEST_TEMPLATE.md b/apps/erpnext/src/hrms/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..b37bd9e61 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,33 @@ + + +> Please provide enough information so that others can review your pull request: + + + +> Explain the **details** for making this change. What existing problem does the pull request solve? + + + +> Screenshots/GIFs + + diff --git a/apps/erpnext/src/hrms/.github/frappe-hr-logo.png b/apps/erpnext/src/hrms/.github/frappe-hr-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..adda0415e231e27774a8ceef13ed13d1c0bc303b GIT binary patch literal 6741 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 ~/frappe-bench/bench_start.log & +CI=Yes bench build --app frappe & +bench --site test_site reinstall --yes + +bench --verbose --site test_site install-app lending +bench --verbose --site test_site install-app hrms diff --git a/apps/erpnext/src/hrms/.github/helper/site_config.json b/apps/erpnext/src/hrms/.github/helper/site_config.json new file mode 100644 index 000000000..39ed235f0 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/helper/site_config.json @@ -0,0 +1,17 @@ +{ + "db_host": "127.0.0.1", + "db_port": 3306, + "db_name": "test_frappe", + "db_password": "test_frappe", + "use_mysqlclient": 1, + "auto_email_id": "test@example.com", + "mail_server": "smtp.example.com", + "mail_login": "test@example.com", + "mail_password": "test", + "admin_password": "admin", + "root_login": "root", + "root_password": "root", + "host_name": "http://test_site:8000", + "install_apps": ["payments", "erpnext"], + "throttle_user_limit": 100 +} diff --git a/apps/erpnext/src/hrms/.github/helper/translation.py b/apps/erpnext/src/hrms/.github/helper/translation.py new file mode 100644 index 000000000..9b0dc9395 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/helper/translation.py @@ -0,0 +1,68 @@ +import re +import sys + +errors_encounter = 0 +pattern = re.compile( + r"_\(([\"']{,3})(?P((?!\1).)*)\1(\s*,\s*context\s*=\s*([\"'])(?P((?!\5).)*)\5)*(\s*,(\s*?.*?\n*?)*(,\s*([\"'])(?P((?!\11).)*)\11)*)*\)" +) +words_pattern = re.compile(r"_{1,2}\([\"'`]{1,3}.*?[a-zA-Z]") +start_pattern = re.compile(r"_{1,2}\([f\"'`]{1,3}") +f_string_pattern = re.compile(r"_\(f[\"']") +starts_with_f_pattern = re.compile(r"_\(f") + +# skip first argument +files = sys.argv[1:] +files_to_scan = [_file for _file in files if _file.endswith((".py", ".js"))] + +for _file in files_to_scan: + with open(_file, "r") as f: + print(f"Checking: {_file}") + file_lines = f.readlines() + for line_number, line in enumerate(file_lines, 1): + if "frappe-lint: disable-translate" in line: + continue + + start_matches = start_pattern.search(line) + if start_matches: + starts_with_f = starts_with_f_pattern.search(line) + + if starts_with_f: + has_f_string = f_string_pattern.search(line) + if has_f_string: + errors_encounter += 1 + print( + f"\nF-strings are not supported for translations at line number {line_number}\n{line.strip()[:100]}" + ) + continue + else: + continue + + match = pattern.search(line) + error_found = False + + if not match and line.endswith((",\n", "[\n")): + # concat remaining text to validate multiline pattern + line = "".join(file_lines[line_number - 1 :]) + line = line[start_matches.start() + 1 :] + match = pattern.match(line) + + if not match: + error_found = True + print(f"\nTranslation syntax error at line number {line_number}\n{line.strip()[:100]}") + + if not error_found and not words_pattern.search(line): + error_found = True + print( + f"\nTranslation is useless because it has no words at line number {line_number}\n{line.strip()[:100]}" + ) + + if error_found: + errors_encounter += 1 + +if errors_encounter > 0: + print( + '\nVisit "https://frappeframework.com/docs/user/en/translations" to learn about valid translation strings.' + ) + sys.exit(1) +else: + print("\nGood To Go!") diff --git a/apps/erpnext/src/hrms/.github/helper/update_pot_file.sh b/apps/erpnext/src/hrms/.github/helper/update_pot_file.sh new file mode 100644 index 000000000..c361ee9c0 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/helper/update_pot_file.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e +cd ~ || exit + +echo "Setting Up Bench..." + +pip install frappe-bench +bench -v init frappe-bench --skip-assets --skip-redis-config-generation --python "$(which python)" --frappe-branch "${BASE_BRANCH}" +cd ./frappe-bench || exit + +# We want to exclude strings from ERPNext from HRMS's translations. +echo "Get ERPNext..." +bench get-app --skip-assets --branch "${BASE_BRANCH}" erpnext + +echo "Get HRMS..." +bench get-app --skip-assets hrms "${GITHUB_WORKSPACE}" + +echo "Generating POT file..." +bench generate-pot-file --app hrms + +cd ./apps/hrms || exit + +echo "Configuring git user..." +git config user.email "developers@erpnext.com" +git config user.name "frappe-pr-bot" + +echo "Setting the correct git remote..." +# Here, the git remote is a local file path by default. Let's change it to the upstream repo. +git remote set-url upstream https://github.com/frappe/hrms.git + +echo "Creating a new branch..." +isodate=$(date -u +"%Y-%m-%d") +branch_name="pot_${BASE_BRANCH}_${isodate}" +git checkout -b "${branch_name}" + +echo "Commiting changes..." +git add hrms/locale/main.pot +git commit -m "chore: update POT file" + +gh auth setup-git +git push -u upstream "${branch_name}" + +echo "Creating a PR..." +gh pr create --fill --base "${BASE_BRANCH}" --head "${branch_name}" -R frappe/hrms diff --git a/apps/erpnext/src/hrms/.github/hrms-appraisal.png b/apps/erpnext/src/hrms/.github/hrms-appraisal.png new file mode 100644 index 0000000000000000000000000000000000000000..fe4481878e69c3d4caa451cfd54ea225d7e138f9 GIT binary patch literal 1202115 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 H-unIhJvD+rx3n9Z*1 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

  • N?q zd|zZ6uXap%CT+Ydujh6mOVtAR(A*ZFY?+1!x1U!Tv$@oc8nyYwgWm^ zrk?3)DIoz)d`af|A45e^Mr2hCG-t^ni z&QXVn0y zOa86i^|w}ZFP091GPJZ`md}#cFQTKR|9JzLXSpqm=<7AT*mgY@P*?d+;CRhsn$4Bq zaeTdlc5HgyK0q}?#X9E{SE?Ttjc+_sHl7kmuPgSI)p-XuCn4ctc#q#KslG5F-h`&rQP*Z};HF9m z+OppCb)%r{k)p$4m{3+vU4||P-hADob*+lii>ebLo>wDb9DcshUheDsPr`2Z=EL6Z z;2#{F6;aN*SS>_Ei)Yk-9PnS2DqrU3fq@_qy6O!c>6*AT31}TW;ekQ*n={Svm_9I0vf(zP!(0Cb7 zP4ajr+6aSOfsHi=WaeL=eY)=cNA*LN-!@WQ4uJ!u4vTEkj1WVYexis{`Xq%@M%`#{ zlrpRzx^{LHXI#T&#?4LnBxF!Z(D%f$S7k340UT2c=i)wTA6@`+Vpj>1 zh>u1gJkq|bTwd^XdhQH`Ofh2Oax2^6^OWj~^`{Z!CU6XFOh@&}CPAWr!+|zuWeXXa zr&cIQe!-HI4rzoB6j900M3d+9M|cK(hFN$IXGe%#;j$#u7PqICQg#;9k|q$cURhKK zqe-mPV4`Nk-Aw^8)1B1C-?PJ*T1yudI-$*AMzr z^MJX&&wx5@YgAW8lB_K@Y@zx%+u^O}2jdp?#nbSEM{ye;nn1F*rhM?wg;oMJ*J?~d zR913LGti=qyrygWNW6sK$%&SFvsZM+IAE9p9KVy3OZ90p>u z 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 uUncpl!};c+h>PI6)N{nZ9`9}ZaH1c~7z4UQI) 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�tw$riW;O|4+ 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

    (^VMvfAMGa}%Eb_Uze>!qr6hnnyZU5Z-jm^Sile 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Ν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�D2fvEpT?f39fuzoynpBX`w9$m`)-h}SYp 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

    a&LKM=vjW$Q+-=2OSjE6eC~De=9bgs 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 *o_@7YYvNYO< znrBT>_l#TTtcpI0FJpcRWEmluPQN4oPT2^hBPPxp_Y$#)iY)W_tIP@?#pKgIzu!u>McsL(T!s1 zZb%ugEAxqGzn;od z5Xi-E?*Zhw98$z)e|r;elrr2k?~WMrV#EB}1)wQ4gO^^*6Z*KKs;W>9{>XWW`bjoz z4%3l1yDT1=NppdRV2|mqEYWa9a_nDD8axv~u!^xL!^f^k;E>-7m^XPrcmEU~FUBen!P+}>$Zmerm$ zU-FjsNUZGA%e+zb0Nv8QR9)gM>U;*CCc5jLHol!Oo;kcjKi*3b6ZP?F=6}TJzZP&4 zhX064)Sf+AV)Oz(0#o+^XUg^@pR(&EpASm{*U^ zceGL-*!NWt!g$jAFQGQ^;P5ua#Sq=s31zg47IMz*n452&>!jIu1xgcJuTU^PJQQm* zdc&fj&g`7G5sPk+;74~(xggFt)T1N#_RQle0h0^s|kOP1R6?y35N7UjyDz+U|%qadSWSkYj7v z8M5@}rI|i*hE}L*kH5RCOhGHe{=zL?GG04WkCZXXISVn~Yq>$<$74~ix1h5%KxP7m zM=aTM?{I?t@?%M_wq0Gic=|~;aI{Kp?;77Xz)*8bp9MK&9+~XmY^A<$yb>lxytzC^ z(*9J>`0-sigM3}WV`f(pTr{v-;U>^edp1I1lKlPhyZsj+^;uCV=ZFU^U~Gw+P|EKx zL(TkfJ01oZuYy+9db{Xmo!k27>#v+$DEXIIiz$KgN!_$DplXgB&)eGCOhp)*3n)(# z6BBLS6!QOZQ((CY)e7MjPxT?OuCT9`v~jQ@i!CQzaD3?wQlBGA>z(ntIKSD~v1I-I zEjLSdsf(XsUROslfA39RM@AfK*Xvd9m+<_}dAE;_E~mP>nGQdSG=$hUnNZbBWqHrA z<)KF-IyG#LUqd)snX!7;f+1P|U;x0DA&pNw286ag;F8uH*C);S)d#gsj&LIITX${& zKEHceBN3V{L;Q1n6%Cw6?ALOwx4%PiPX6q#&}N@oV`Z&zQ-Ht$@mXpiSXsijLEwba z1|Z|!Zs(m0<^<+iU5a69*?@h@+}(=*1T~AP@|00kt|i)nw^a3zld(Mi>n}3$rM9@R zHk(F_)mZrH)96r)Cqvnz5|79!XXBoH*^4w@z$VOnKUm;vbifqk^3isdF$ZuI_!x{N ztzxs$3iSgpLnLCys$)B|DFBCBCg`t9`B(SYEe=$aUp$XX4k+unIC{d)BPhy zwE)K~iy}nD0LO~mOp%~n-r$8Xr?hggKbdL(Fo0{F>eowC?HmB!^5Q3ZPCYb*n3VgG2^ZQWh-eR3LC!8yx&OMY+Ra>T)l4$5fI`Z zpNCE@3^n#*r>zwe&?rPROhDbWEP6IW>FNHEn^Z`Yk;z9fivJRc@VqOH7fhNE{67(R0+k@$$o=nycC(wHV3d%SC9yAoi-~nFxnO)~<(UrT|Bxg1_)v#A> zIj+R|hj!Ro*ogR|eQ%+z86w&Y;tT)V@QZpps~K)^%wP6rT|Ce;N#5^B|0TW8lJEhm zus{;%M)c8Zap!Qj%SLU-^KkX;)ASQ9<8!T{+-Q*Avza>BS<x; z83CqgqTdptoCRPbnB_=|bHRnh0@#ZVB*rxLO*3;v*W%wG1O&J8?wdCue&tXd4oxxw zEH7GrGO~+<8S_t400JEUeR%**(7ybuy8y@~xuTEsCENkLw|wJ4PBs~ezm9uCVQM6# zaxjVEVYfb5sD5CQdS1+L=u@q$iHmoVSw0$JwUm93uf+n$lKuF!&-P&I>!7LfPj%31 z*e;NjdG2CRLosg`y%J)z19>Gy3%;14mwDGkB8lLfl#>UE-`V8baShJgr&vlhukpiE z8inVwqQSc?m$MZW#yxczzb1*07xpZb;?G4I$J)DfM7oIfa3>uf2Yf%UE-$a+LnQB> zM`R-X=-v_2!S?o+pjR~vh6o;3JQ%7nL$>QH|0$I-fb$Bof)TX+Zq(u%)vEij8FQt} z{!(+X!T>|C=p!B++*RiHl0WkX6_kwEYXhz2D0E9XRKDb}6)MYX?);8>llWtrXxl{h zM_mCeFdz;D#cqF1H8y96qbTw#13hr&x{?o78P~hJZU~;+=leBPS{37TR-72*dwcSm z(y3yhcTvDu>8UFV9#r^?qy_V|r)|OvzOnV-44yQG{R^IS zGT}?^HZKU#(+N)w#ft>tRVfKh;|yf3nVNmkrdKFf1n&&Lw|sK=4G!B<6;tzP(r^R* zGIQ5%GV1PNcwF4@b?K^CguOh+hx~af6#g?9onY=zxDH9q15=q>jbV+xL0Hv{naRzw?`*xu*M+Di%G{exA1Gt0{XkANOeHo0u1* zu_meli#sjlFU!uQg+{a`YxU@ZBFOjgRR=Er_~1emF)Zx`AdKIg4dG-wiIt!xWW)zj=;=}@4myUlgl2@l2I2?SfO z8hC&T=fC>htb{Q0!T~|S(h_7er|p&>S0PYEc<+E1>&3t+Tu?|*JU5jrit|7#)}))L zK8Rk3=9A#BIl-tUx8mfC6dHb0zkvd3<|tcxMOwkSSvqo%L()1=cnG-SBF< zrBv1uL6F~weUMu>8so$Rp*cAIrL1IF(o^c?hUiC7YYbHpfDwBf^dK|gcJWQL-J9Ma z78?K|oBoSFvD^**jGG7x4L~-+Xvne=&N-&VX^4iLP&W8}MVaDn%0lS0N~uL*to`Jy zZiVYPT=*sH!CV~Q^hwjoJb0qR(|*6kQOpMBzp2;gPxbyQpZOu!58`O&nrb-_6)O%; z)qmVO@HwMDsqxG1_oN=WTOp;xlv3HQ54t|ZS?~8kw~&a@s)<)m z?3d$jO#J0PUv__;JRau>=7)AVc-vSrAB?SjzkS#E!ThWqbLH%2{w6nu&_R`@C6@F# z^YBS#0+bnTdRIBleSq`+q*fy%#{%RC-w2JA(1Vy2lN z6xQgI$^VFf9X4Ikv<$W!trBers-Fni`*O7Tdf)iP?eje!z5i`zERyFE`5NAIl@m9Z zia1?#|0Rn0D*TH1`u4uA{=N-0K>V1N$v4NNNs&0y`{v!y{Jg5}R97PJYmVrpIqy+= zW;>>TNToF9QD$;8V#v?hM75nld{;5Cx#sN%X*5$4eS{7qGNR@CW0?gKQ(n_7Ln7$ zza^cE>vZ-$f{F0`{TZD6+3JIRr#2Sq%Aa+p(GKM9u@kp=1Yuoc^v&Zf}04) zqx$+gkZo{q$Mq{F%=fvYk4E3g08mJkZ;SZ0fydPUaB4-09lg+*TX|V~mU#bS*lK&<%6mJ*Wy7XuDae-4&@Si6`Id++JPpSE(;A>dI9F3kz za~3>2m@Dgjl)!0KYNx*W#!v<^{2MB)fYqgvy36RDLEfh46rmSRaLLQipm7TN?sL_b z%?>L87oZoF!?B3fuEc@Mz@&0uW8|)D%(hd9bp3+N=FkvHu4gk1%_dRudNw|@C2!Ns zZ@ZkNp3TmW|1%4~Dr(8s`1H3OrhjN52G`PR|9j35lDrJn~VU8e|= z+lDOlb2sb~c-G|Z{^jhr*~gbYOQ^*uiIZMdTm?IMr5TS0j+EXbK^_PJlM`TOXKo#& z9g>l`lI+Sp!ZLi|JG_~TH8mlA4#W{>50J!wW<)|gzpMpW0M7fJm5Tr}9HjpPbAr4E z1wtM;6XgSELe!gUNtpB(}8M%sNI)Ax14X03FK_h>a4y==?dsW@HcjmppE0=51g4M__xXU^fNS`y^dFZMnn zNxhq#j-)iZ9yg!5eQSE}w?Zi$8LJYG-JJzf*2ZX*IAa*I&U1Nzm}cb>m>ZqE^IWTv zcji3zT(GyWJI!ZY{59jUbD?2B67loXJKjmTC=m3FIH|`kD($1L?SOz>Z(^6jN? zbmskgrMu?KMYACmc4j!2)y<4W29Ld4h&coZ&a{q0D*bz=bf04-J5lzL z$aL{AT*%k~=?>kwszBH+q`VXo(p;PbgI?tMd7Ytq z$Emw2kJWb_h;4WW!E{?Zf~W3;n5v)jgiV5TI-S1L_q!!G?|wBOVCG@lDEp`#w|kCT zhT~-?Uk)ZNBmf_mLqrPO$|9sWY$WZ*ov6kKo(2=S^Vgb zxPL4v1z+4gMMfT4+_Y2iOufr~UflZ0S!ez6%t`t;Mp-=3XJ4xF`0JESgtK&1W(9>Y zs@1cp-mlm8{>k?5L^`A+uoho4{ znx%zrbO2>c?*9$M(76lgRpRfiiyDmje;jB&^Q!IoyL_n!^!IH^I3(C#do2gC6x~oA zEhJhyY4R&ikwIu8URxLrEZrWs2`^p3mbAadkm}g?52Kf(EgwoC!su|2VGocX>$d6r zKgHCR0GhlwU!RqhNa6%p>*Uem1hgU^=#8k5VJabJwlzn>Ii5dYg!F+1;r~8eb?7xqjl^+fJ=1`we^5lHbQcL zSzagVCsVgG%y&LVyT=RfMCie^rxTsY4>_-sx)bX4)S~`+3U~o|BAj#h)B1aX-mnbHS>KD*}TCt<_Wb~baI)(OW$tP@Q1~*TWR+tv6b_3A3Is;DitVKvc(Dt1I~cS$9Aj` zERfPb{AJ^&*V51A<@5N{8ny;5A ztF<>QWR({8{PiiO$1-ncGJoh3#tc1=O|2VYrttSa48pZzc`JQOUSccjOE#!#IKg+v zzwoL&OBg{a6d{0g1rWm-Woy{o7y-R z_a4{xr{13%R_Cm{l^QJ%-4dxlkreOan!5vg&w3v99kcxmOvVfLdzqK#WT&Y!;<<^~ z439jNq&PUwjXbWxsSn3-Ba!(ewaZ&a8oH;Ui1{xB(8?^i=cUt!V#_nuK(8R&7xXN; zyXj9u$fpjp+vy3j4Hhuz=nqWHB*z_rNI&c(TFCVfDg}T`WrI1F%2a^je0Lz!Qh9M;Lm-ZjkNb-`{L!`6;+2b_kPJ&?=Q=Fdz z9k9^I{iK=#Y9uV|cid?ALTB8TJi@b^mv8WO)j;6T#I+XrBZPBmm-*?=;18#&Hf}!S zagV6oXQ4_nFA{1_t*zgqOj~Yf)>X^G^Uz>XA)T@E8J8z_3-UZANhE9f4a?NgI^T{e zKq#x@$?46Sue8N0myK`&3_)a|Rvrnt3kkDmp5Rp9mrU(fJ(nF)Ja-%xHA;N+wps7l;Od~6%G-R4QiIR=LnF-B9#C(H3VL#|R z&_Uh+NXrAmSt2-0yZ;}CBV}?3B*SW7luRvtffjfGQmpkdvXxM z2!Q~EV;RJa5|kHbVoopy27G@^y?4rtr<0F*$Hf+=C92Wwm&WbXbr!HuSLmTv^M=e8 zn!78jihQqHAmZxO^ofF+QSUqPmN@N#fb?oa1x%F2OnHB7O$;PDf7O*}J0gRhyg6^t z6t&Vkb?8{ecLU57t8HLsx;`vs*557syLg!qYpUN<{%vZEo;G#vxyW=>d;89iXEt6E ze{coLCcYz!&N;fN;_2hPFR333n6ElZqwK*^@M%~NzU-VM;4Ha=^hZEc&md(cwzKK* zam7z{xsXYpau-L{o}Q?y>5WffY)TbOOGD}jw8YZ&N#`Hx~m^wq~3)jwB#DG95aNp=8UCZfjENMH#`TbQz~XbH>=iL&O$$ich-a|H$ZU zRG;G5#NE7_tq_H(=zM3=UF@b9@q{KU;IOB@9+!p{DV5sdWa9uOboEUDByw zH!&^QRFtaP9}@fZ(87XF9L4Fom=~{LR-ZLIxrd}A zi?pj1G8Rr$w{#_Qgb%=|8=|2fMcVzIq|9RT&$f0yGsd0kj;(Zr$m;zms+X8}cAj`^ z#rhqH0eR(@_m%($_}A|+X&6f)mOR43RhNyLfMDLw0Rk5dN~1M)|0&V4tZj!&jwd1B zxjspnwR%Y}OnX${L6b)MTq6_8DkRJU*;zSl<+Jt?W&%m*Iw1aj)(~c2M#Y2*cXa3_ zHV01AZb~tHocftoa&eJz7*Ml0WYO8Y(+>S`r^AUqNM41s?s8R3GBa56#z@9W({v^E zzrpssELUIuzqCXAP!O%Y{8tXqK7d6;{>AL;5WgcmRUjdj)N&0P9ne2FJVz6jB925C zd^BRDKOjcBWw$oE_K`BNM+-aci=fP6UV=S5G=NMKk5g9B`k!vXxe`lY8YR$G%f2vR zT^K_*=Ej#F3|t$cu~k2V@@w}Uzc!y_EIvOL{9W~%ty;7`!&&%?Qps=RPJ;AF0`zwU z*Nn@T(R>qYQCM8IUZP=*+bkKTUIi`v67bmEES^$eheVadK$P~GV zV44teS#nL`1(mybmrd;|got)u1V?I?{roZCt&X)|)rMbV6xwqEZ&xb6{ME#dXyUqL ze=fjrjE#Qv9BT)wSWJS`DD_Nb#{mXpZGH_C^eStWRPfhITM2%DrjQ<{x@=hfQK1(hAZ#8A6TEzHKD*kh-V zXs9dEn5*yJZCA+uUB3G3Xz<;iP{KqN3gp(6rC`bW)?XLwcG{+EqEsSv(1gTk`zcU> zftzreme1&gFtfoZ4{qboeH%WLrIGh>SDeI~fI8n9V~y3z4pPbK#_czm`e#O-+g%9s zWHHi#n+_nm#C0+UwM9cRS@O!>4BQHInw(!#nuvC}^Q8qvMHlDY?kf;|>fo73Yd*nu zWkQ+I9doE&9dBCWWhr8LTCuIBlM=5Q88=!-r*zILhQH_x&YAAeqYv9xj-1j*DD=F} zzXz~jFu3;r)E;H#s9f`k=yb9Zq8nilsbq?~{n2J@N5$E983?4`YGL2zG;OOv#a z6%g~eKA_h?H}%h;z$u2ne<|ROtWsJ zpNAdIg8-5Qgg{aVfNt~~aU|`eU4UgKQHD~p*ENY9;;+=)8LE)15b7Um1?A;f3AF*tWse=qBfd#T8NiXUgB<^pZ zxU9YSd#Q9iQA<-2=j-1;83x;ApEFTyV>l6etyf_xtskwoA$}$rt+o<{1<*4;BZ(3! zGeB>lh{>>nW5^Itk!ftn{4s$q_Y5(0R}fG)dLK+gapP?cC(C$as1Ojd9YP1N-~&k+ zJ!?HKyTKqc^nb%YkBC>SutFOB;ec=+IQH?Ack>Btv!oeCL;do|t=V7Cp6PVopcXHi z5wQw?JRT3qfH)z0C(&q(NhAfV1hxu2V1p2LgUSJ#qp&Yi3K2Lze&8ssCaEukaf06X zg^8d!$S&HdS`iZwlSISMSWjZt1IE00z?e6X?l%t@lZA~w8u6FurwD8%VU4*7V#JeJ z5t3cL5nb@hqNO>-LR@r}+Zxe}>b*xVS3OkY32x;0SJd0W9sHi##fohE(*T>aWJy0U zLFgRYh&4}TTteOCDgonj*!M@{Jh0vGSz%Go`eO~0)bKQ}xOUHxK^ddZs2m)+HOpLb z+7-6u;wf2O3`Y)%*EYy4-C0@R8i}LM^vZj>QLf$}b&XImz5~HoZhCti5gp91XyG0D za!)9Rnel~G#30~0yOjgiiyaqWEi=M*_9LgePYg(SRDURKUoh< z2tupsn4I8?S6Gct(#`Gr>!F(|%r|Y!HlVX?(jWXS#fm_V*m`e*0lqRJ(?2&fV}I1v zyLvMzIk2Zr_xW0cX8z(7_+;5H=)s*pW^Cf5yFB-7%88wuHEd`8{u=_#sDr;M6c^*; z@0DsnA|8rLv+BY`5d+FcnJ@Y-$f$UYn++6ka&vQs*0cLQyZV%}*|e;57JilsThDaA z@jjLbI3FCe@sPRMN?HtUzF>sJ2@_5fpB}}sHjFO&Bfe)|1;r)yq{43-t2Suxn(^0b z7M|d`>bmyGCSA?H<474(AQir35}l5G6KS2(+gHt66eR;?ng1iV)|ltsy#1mIz&#$Pp7Mdz)6n+ zQBRGzLv7!+`3)JUyvR)ZENy@y2xnUZkNUB1gh&#WE)fqdQ;KKgRwE`A6#F# zl)POuRJ~XVe?tIOUJMzR%V`#&3RZ;xC5)HYVox8p?gTN6#6bXzS2N#Jh6(@S$P(FA zt&mnEIE?r#nCWMzUn58>Oig89c;~A44;N}Bo|k@MW>ucw{7TRtUaRaRStt0o^f{)n z(oGEM=b(YOj2bP;=u^G9v5{a+AsIV&A4e+bh0|{?1)YJtem#;!Q zhVbVT9OW`=MAPZ>(NI0gV4e|CX7FN@uU{F8Ua?GVVC<IHYC}HmP$I$9L9z!rfBo0ry(0@=+mQBKQ8R>B{^c zwSfb;39#lKw3xXt#KH9=Ow<3(cGw?8mVZ{Z&65ve?lVEOxnv-NE}*P+oSSGLjH#Eq zq-ZiD{@|L6zm1GWi@X64Vf0Zp{bsxto`1S5;F?f8%=M$~*VgOP%>flF6}!BX=3Y`Z z-$?K0+9wEQwM2@n_=`L?&XdgX9efX)r_`6W%~O~J1nPxG8te)wdBV^8bl7@4itUv0 zrK7On-#=`!gxe5A0kxI0J^6cjh1RpPn7dIc8qAF%7K}(X?$ZQc9T;2H_ZN*>!kh5nH;KmW^Lj5!%&p_5(dz4!jPjn( z_Rqut{Y4fGgZDXL^G9|*ezFc*%Pj0JORT6Fv~Cj>YMbDfj6&Oc_sT+?{nUjc>W_t&H9RuYan% z15#}99DBaI;ntg5U2U}cBw|R>VNp8xN`ZvQ^0O>~$LhPxFCWh2uY@JeAg4%Fv=Axt z-@i{Nw@nOolj-QGb$D0;Khz_M39(|Z0oWra>9UogzA@GLzvOX(ofyAgbZ0U~C?{C> z2D5XiZpwCAmRWxJ4i~LC5%S*uq-4#~mIgK`M-Q36f!VPxcVjuTNIu>vK~ho7M10fJ zT=THI@>#zK6e2WQlcpduRp|`9o|!@X&X8IR0IR>yjem|8(7uzr0%yB3`6m?LYMjB< z9H>hlwgY_kqF23WY}UbOOD2zQ%odxB**yxsTK;1d<#6SVQ!Fp)^z_&K4FxuA(!ee} zhWKMI-g3KG$a+x|HC8(g4hA_qujk%@pWE9a-k}B1QYFYe6lq>`_0LEoAG;yl1g)Hl zW^Y>f*k#u{eQMAh(QC7Pzx%0TzOuXkDhfk73%Ypxu9tAB-*c443B+aJt4fqOa^~skli;@)b~guDzQZ92^mN_M zGQII1r5TpHBfVt5>W+gBXv4nh%L1me1_adxRmyhozGh#{{2MJQ-hmdta}b{`5RaY& zoL7*ne%sMS)E`~qWr~A#V+?5Ij8;Sus?+&!ys}j4-K)PHW@oqQ=LvO3vw zPx;t7cKEQ^jQrXoez1+297%NL$fkMGU^30i<~F5HK=3!hHwWLp6oCF7)>hl;-hGU@ z(tTwvgr+q#53UgWJDLIAi4N?sp&u!EphJ@t5ug4eHP#QLriOCBGZ1qBkgd7rR|`sI zHNnF2_}1v2a8oE0qWr|LKUsQl(GPMk59ynESCwI}MKSy8**iO(PTY-vWWSfWTjmb2 zoKw$YYs_fmo-zc}Fd{rG$|Op5%@iExqV!VZ4C{m}mM(%xQ9Z&F*9&L69;i0_zM?@7 z$%nWU~t}fHoa@VewTP2#$!cP(7dwYXsC5pMfi#bQ@*y^4? ziCgXLjgu{sRnt=>+~3D1BXh!*#x-tWgqVC#T7IAS&^R%~cl(d;bqlhn1(~vLOyPa~ zIA&bs{0(8kO5nON2S%>F?)KSDxe~kwOf7M?+yTUG{Ef5Shk(?Zn*6!G z%Dna682Ie*EvAiHfz9Ex7N$rXL(R+m#QV#RGW4bybtZ(8Q7&%QyJ#p7o=*(2h234t zKxR%h{x0+R-ff2NIcT4@N6`MT1nb8YNAK`l1b!qna6d>!gxZOdsaGUVyuo<+$jIlo z3-NoA*EgDgF#iBN*?4g0mFjigeG^!$@ir>{wg2`P!JNDc@&&zCHxho`j@H={Y_`P2 zL3fxfu~IE?Nk+M0ljqL+l;@Pj`*x*`7}LAzSh8C;W*iLEk89=PDO46F;hbUkhXpNC zmNo8=QYzjg1$tlGY`^nBNeaIknacCo4%=gy<4>Q9 zyBLe(PUyeu7yGf*@>~?LAB<4+vSx-er2-7^kzllNMqipC79Bj-QuR*+5eL9A^mglzvdr$Tsr#>k|AjJS>Siwp&fZE#GxkW-AbKG+GFKL;D&nUfj16@on)S z#-`Y>^_F-tbHxbhL|d+26!{WP!sfwqNO6T)rM_G$EK1U-`?0PL(I7f0#N_QqRly!UzG@~o(_v`A) zPIm>9{S4-Ty6jfWe|KY6WB-6h(@^7UpGu6+uI=rHn~%?j6zYZ ze6oRyQbBghCCYl-ZDp%(s4A%m_xZU;z8*!!@Wn0a3X8x`=L_N5yh^v&^XplM+Rf0Z zTczk4Dj+6QZ{+ull)K-uUrGFc+e!$2{q=G} z1m`+|qu)@_9QZKeR$jA4J5*c`67yB-w;i&pfnSxNJ zlf(f(u#)3tJYVU=>L388e3M)7o!;Mzf=x`U_OroH=cJr{zUA}gFZnb($A4N$4gh0A zU!qmv(chC`4+qW6%qOuPpZl+mMa|Sn!Dr>G#IN|82@3t_iSVdYgn2^=1PkZrjeNF$ zNJIPp?aWOa>XHT-`k`!s4f`f8y0V1nZTt(1ZA&dT**5{9uVY?y_dM%A?5Q~BC+CZz zX%CbZD%<%?(aXvjWA4m!qsC(aq$eSI%!wOaQ_BE!8j@*EM!QW>%;3ewyYn*p#T$gM zu<=co@x1qTqL0;eGiNul%?*E|lXGC~;QtpXayXd3j?0%{93!i@?N4SE{>IPuhUvZ0 zlX~06q{O^Z%)VY~R$92Ii~0Llbvca;c42@-;e*`s!(Hn)YF#x|Vp-IwbgGg-#oFzU zeEwul#=7sOm0(Eoeud+bQ+Jg5o$G$IsJE#?VO>X($645b-ux=5IO_NQfAhGJVaiphNNc`4tPxPimit_f8q{D|f}vjN`b`R<^M%2$8+1YvR{z-Xl$~!; z-k0wXvOfpQw{ryuw1w0td#}q3%>RyaUSW#?yvbP?DA_A#Ur9*l>_cOcqBuK&GZAJ6 zG_FHwp3na0;p9ox>_gew>OugKSdow6k9E9C&!}{JunaH%OLUuXKd5Td;};ok2nf6m zRV#A<+?bS1Pa+?`^gfgz*!wM7oipGF#oqusC2zQvbKHk{ z!=;)G+`K>Dl%zCg{T5zNxUu?<`|3sgGTY#H2{|UAQqJmx%i1l`o~M$}1;SC&F+GMT zsgOq7@A%_9t``as&9Esa^DAd2QL{(L_u=|`1;f5|i~@U2LOsWguxP-abW~Rn=o= z)AmP-e{Dskt_++mfaZcjb2q{4=;8oSo=E0r06Aw~tDfJ9LCJ(LsY?#?b$=-NY_cb5c9JOceiFCO6r&JFe(QFmSwN5Ag> zDNUa5KE^_S{m+Y{uid=p*JCoA3;GAQ#-3w#=r)ZT2geTdmIo(DYD1DZ(SSn{|K{+b zI@sauNseOm=RqHR0qN~8vOe)f!$=aBOigs0Hh`mk;{7ADlLD?JjpU+FWHd3k`W&Hp zypCM8th96dBOKQ$G|8~(=#3P;=;+8RBT|ops4~0lF+H_Rx@of9Vced??=6hRIh7>d znhZpe13UAcaN3R6jAx!}bH4W8bGC)&0k!4^Pgd|>TIy!e+Skke%<55Py7! zU1Iu#9)jS)TXI~GCMdwHO-oq4y2{mz;a4{>uYO(OC+Zw(OFv-Q^bApcdbc-qn)3WK zDi8$S(r7#s13C3bFEyY|-`$eK=s1T3nsH8K*7KQ$p}GXsbZT-ESt*^rm{N5tR9INT z%*FAkq#tCJbqoy9fWqT<{ofrx@bFRM_@@HV@t-BC98Mg6wFgp_A7wq(_0_MO>s2!P z8ClY3ZuTgW#7zdWb+qznTgn9g;aIlD}_GC z)}LQ3ptV^V&CO6dBI19OFYwS;$ItI&wHk=-=_+1Oc0wp%RqFO+;sUpXO$y2(trb5j z;b^jI8z)gB)+7}8XdRO_E>|hibwJ{Jrnfi$m%7?(o*&W!X|`$V!wk5h6BoTl3h4dC zL?>cCwrg}z(duQS$!q!t`*Zm)7B}y`of|J3uG+%Q3WWomD4AVR)Q^JVp^6x<+dEXrUh&vuz9qAb`Tw{;Og?cIrJrg=ujN{U3YbLk&$8W|91nSvF{;{ zS?342^YyAyyi8p zId3g7ElW6DjEGAU+~hpSYb5DXS3&i?Fx@^C&=3V|*BGTRx+~9)-eR4CLALwvjsx_S z!+{W?2zxpL^YaP>qO6@>V^_CpBfbKXLL5_mEfiq!0c|7ldw`-mqcxh@{_tzYoLX_| zfpg^rKZo1z=4KaPA<95b;#iLbz0UXIaw8JIXf8-#EFC_@jW{g1b-52xCS|Q1+3GBF zmtW!^4m;Tih&r^@E}m`So^hCt74*{i=u{h~F}`jCPCgTIJ^6C{#k9){`{k!Bh*Ueb z)7^1g!2_mumKpS4tXrt+9iS7}Il```O18y#n?maZrTY(DFT0w3NHgGF3G%sHPH9}e0*S8Q&(l{vWm`wB6 zB7Yujw7oDyp(L}v-beTFK~H_ZyG{8JpktLdH$dL91ef0T5^TXRz-pTQV>Xy84KSW7 z&B{shS>nw4y=G5fh*5dqAGRr)kN=A0sK96NRCLpq;LH3V5f#>Vm3;bAwMq^HCSkYV zRH!00majmEhTgjc=V0JA*8WcVAbt3?#k@oT&*)&-5G^gOU3_ET$0z*)3W<8l)l=Vt zW<35`D)kx!Cw6P5;Pi(*spPtZ#r888^IJy?2IT9bqH8G~Rw!f&z9sKmlpo+ty*$iA)@*2fvSqa_)Z#^ z>{1iLBQJ5vLCVrg&<+byMEYJyolXWxwMP$YaJ6T^&?c&civ_La_q88^nAS?0fyBI=3hStY9#gf9^W5qqeLW zQ;UiO;qdgwshWT>5A=3?w-BqL|74~kR!+T3w8{NfX-i%-RrQRqZd6qGcD||=ljzp^ zY@F=+deC(Y!#sB2z~GaYdo4agqlmvED(HL@Mu$f>Y|?G9{P&Oh4p`?}73*aRR%_P! zF;b@r{bfS=`D>*7q5a95jnX02hueCiyE*x4l!Zh_0x=R%enp1uR{95Nxbo*+OE*JI z^eZ|r(^>>Ph0qI^m!62yhitI!J{_Fb;o7hD1otU%S;vDG#D_E_@njKA7!$+I;0Sq( zF!+cE`b-5Xue<_ff2nb!7(}p3Y`j)ArSF-Mit++4EdD6S|K%V`kb^Kc#4;C`GoM*bWp)41j;8N#A}#JkWb*YdQd)Lf89 z$4w?zz8>OtT>2&1kD;m>@Ed7zXko6fndtLlX-&B*Q!d{7?T?U(!UtLr?XG|7FC3#oASiy(wsj9KP2z}OZE6lm84UQ>; zV|mnbJ*s1#Eg*pAyI2DRT{O@y)m&lcEFV2p_DhTvU*UBy`Q8ildZiU45geM~b@$aL zaXt6_jO6Q)$fxJmePye!Rc~h?kbXGh?fODI&lnmAAt-;0@XOJX!cM9Y9sfbU%)xX-WR@xZr1YWT9)v z!fj{&n0Pn{N+Cf{k6?bs0gyvg4ArwU9&@c+dT#5UuZq&2H;&!vreO)DX9|+NkSyAJFvRG2 zSS+)ihhxErK9g}7@G{Z(V6!~0a$pcUJ)IS`An38j*_~Q`y+dLkMFKM!w^!RFSUBof z6w4>|{@hA?@&_>!CT8QTj!e6rM6=~i#yea2W+<8qwL0llL-DuCMSNS9zgc0%yje=3 z=C}9k&GR*uOzP7D?#Q3RJwn_ zGaDoa*!R#Nv7{sws8H-ZTUjj{c6M0c5_JbR08`+W{Yl?qD$uPLlubNOq7QZGKBwZF zm%z*_Mvnu8tO*bBd{?qXe~to=`C_Z-sDhChg*_<}o{w!c|JdShTtdQZ zgCR&I94Lf>RYTA5sANIsV`h@ZXD!NXz-rJOvB<^Il@Q;a(USJIfQGw}#Psgl(Qz$+ zs2IlGKx;LF8I+Jckxp$qf87C^pc(cv!2)*(g4|)i-PJ{G377;S@+}78-1qeW$`$7< z^HjbEl-;msfe%^l-_GTk5kZOD`!XZ1zc0)c2|lMj^Wqy zRnZe}{QVw_c$a)T6v2%xakGMzR_b8Kv`V>&OVm0oAu77#V9_AH;4beLOS*e|;fMR1 z9+vuBOrCOEt#WIT{P(XC1`%E+HdQ~vhd;&+g)q!tcIW>o@0J#4nL*GzcNv2^XEYIF z!u)iLIINCRh%~fgUB>V**UocUulBJu!IM9&!lyZJe4S~y-cBm!eT%tFv<6U#>38=& z7eNniot#(A|xRL>q1h>bMH04>Qtx198r zY6y5|Yod4=UHA=LDg5TUE2syDd%?s$16vTzK_8rZU)%$EU;`@zk6D!%DHM#x*@4u? z>-oFXk$dduhzPnL#K1h~oi@Q1nd$|i4G^vr7PXVcQ*^2 zRa9|kv~;#)iRgI;-xQmT($;Ry_$1l6t=9b<)8#rGO+MGp;jyPgbKLlt5OoJ1FAFOn z$8wu!TM*}8xs8IJQE&DHt^QiJft-*tXdi9+M>;jHn~rn;JXy$UKOksIuf-)8)X&#a zEuqI99VYmsV%U?n6{aZCd0#!SYhX4V3n7Zxy1E@4Gfd&gLngnjqL&y0mGb-z2 zZcc8l99Y}C9(Cp2-eXuSZRNJ_wL5V)rL`WVySf8hS*FIp))Nv6iokF~?>`9WuLDgy zgU_J$#FRqoZ$C+XVp#j|WZiwHWm5foPR{2W^C+LUiRtNf2G0*3ZZ;h6+I&n7L-+7Q zv5TQtY6&Q$Qk$fD{pFv42nW=c&yTB>px74yz8cR6@RewDcK8n@vf9m3+X<>tAU_w6^&-*g}>ZRg`tGf_0_JjYm*L(-nWUccCPKk%qzpNCSeLO1V7 zE+uqSMQfN;38*@ZdE^gwS+D1^+V$2XOa|x#X!4iFl_=m~$QPz9o(iRgGifDu)+^!k za{XBvZ@p~_CabBuwbu?_DG>Id0pXjoc^^p1HK<~@E28}*Q%oeOXzZEQ4g znzOc*=SI(|g4_9D!OtHGei+~DbsPU|lAeBx7CAjZ$PT4=O*1FqyjRoh%zu~2ooa1@ zKg@*zS2|bKwA6kYds?~AHGW!qfSbbyi&B&Oc|$E?xqGAT>A)<1Muw_GfxYyl%LYD6 zzyb$MXl{dFS^#0~0h1q(ZiBaEs`4NPXGIxYTTvFS`}0V7G6T!+?Cd{v0n>&^XxcC% zEuj`(DhAcaquv72cdq^Lvjo05Lkebu<}pMZ{y!2IH1}?^IZ5%neKn7rXn=uQG~eT9 z+4~PyB+^+d&h8J>(Y$@ROAm*a>28!=wY6E(vyM)!&|exvNJg!><0_(bY0rd)<*AR< z^$*3*GY-empO(gbS(A2Z&n}Ll6s(c$#;E4+HsMct&AKoy;dQ&Xy>d$8)lz&2L$~4} zU6T`Ujo9QEvrD^5kFj3-5QXCr$Vh3qE-WY>kLz3cn!^Hi?)lMqPZ0Y3guR`xk@61D z(-^c~%y7C3YgXJB!|q=~@=?_~zFRd7$ZbJUv5u zBs|>GiBvJt4hx|!vhauy&?lB!OKN|>7+mJiQj|BM^sx@!{ zVvZ3CpUVxR+O}|bG7+rj$u*8JrC1Zc?-Un6+me}>gyD6BGn+Z2}DrR+TPnVU}< zNSFO})Z_?vwlI2h9R7DnA=uaASN=eO#xdsD2~-w76=i<)ur=_=)~$;XWZ9 zo9DhJcbqxbelirF*WP!AOl1?kw<$K?#u+-ts3hw(9cHFD8l;#>?JUA z0udU|lKi<7q}RU!4kUpBJO*2&zxMv*=Vf*1Cz9u1JtFfPg_L7o!n{qGffj58J0W?4 zo5sHd9&-k0(^kk~2iI33;T#;?t?ny|Fbxq}+FA0z+{=~KoX%-t`PV-5-o@u?P>EsY zHM8c6ocgZtT>bU#v9N0UTl$AZO3{MlV78AC%dm=%SlYuIwM%>Fsh*p!A10SNc)0aj z4Z9>!r)-)QH&x>@tc~#LNX$^cF7;eQxTt-ls=8L5*O!0%Pia}Be|Z)@nju1iUOlsH z#H-z+sH}Egtav*oQTX0oHhygS@z6;g;^OTBDonxGkUQrNotF~!?9)Z=TN_5#GT?U8 zdWtlxWuCE?eRioaFcFGQ@n%PNba%^UDSAwq$2-L@9##mU}WlERZFHI zs>Z>Zm&f~tUP#ea-rTsO``_pvIPS<<2-Gxld*Q}U$L3seHAKg^pPvptb9OG>e|5U` zN$fH@;r;K`wSzC6mrj3;S9cBOvYk3_wp7%VxNj!QR_rs#9n%hUnu0NH2&*0|x|$sW zQntj6O9x5dfxLBl=Ck2*IDBCG<$d6-%n;&fu5`YCkwlR}gU^ZzSojN6Q+%P0tp9_F z#-N~F>nWB;+3opAje+ z$D+BA)QcRQ&p^k+=9NsoWY!D+R+7s%W6yOauvoVL0_z>J)f4J+!V$xg;}`WeO4V5! z4Atd(3h9Q0-h2IAuRSxTA5%p2l;9E7@3i9=QRZgY|I%DPUiO6BK+2=#x6+dP(SX&* z`CdS#zBc!YOj9b)o@#*j*^dm?J_eNxEsQcezUW;)9h~>bKiPy=)^@CiH$(hW{8@Zo zUfN_Iy!&<=fMG*9Wqb+SutXFtDkP;2XZvzE1S1rpF+&$!dly$hg_$!iT9;*%imGnn znkN02`^?PDd-CGBI~7f0=*pmXJ!AevOqnb3%+N}pYuAv-xFpb>!r%PUi-O40Ke3n@ z4XARvb6vvSvI9U=L%I~3OpUBNrSN{Yzk)cuyIJ6~z>q|Ns`SwxPd(kR86VNB##Vu& z&yFsH{~-6Pd5}jLf1aU(NkX_MRkm)s33RNeZc0MW z5E1ZNTcW$T9Dt?pex_C6+7=nOc0gj4@+Xe$T!!FLE2j0Wf5T@E0FU&8@DKS2)*g~uR*mBkr<+Q7HiFZR5G<-h!q{Dksq=H&W?UamLq-F|n%rxTyurK zJvKKevJg&xR}eXtH*4L%tkCVceX*xV*0FnX96_?V6O^*VjlH)Rw?|+!(mC3@SC}1x zH!K*IBxwGg)WRn*PPk}|uP0WVW3?`FIvT5$@Mi6Hcv{Yu?#;I=$$7=c{Moa)04(E^ zZT2hD&rv;!(i8PU-~Db;w8XKa>?sv*Dr)KISjNT2E6OA9Uj1X(zm8k^2%@fZl`Mrp z&xA$#|ENHwZ+sfak#Yu{7*x9Fnuf%J;4;7Nf zJ6K$Sc75&M?wMcik2tOTiM{6SW0%yuMfsY%thr13i#i;SVsh2l%2yJUP*w9qml#qL z2)`T;n<>ax3xYuK1yrME&1W5hf`Gj)p8}WOU7g<;X6N^KclAZkk76q!cjn8DHavV= zn>D3A_L7!qU}7RX=)odctoRz4=a}mlo#^UtoX7)WN|diX9W90QnnVR2S>GJCmu99O!)pFgL0()!Ol+5U+_7i% z?2uoMCmh~hJ?Xn2=SBodM;JAATwGl8Y<8349ni!ABru7{|LB(dLATeqMLJbruoLg& z9|e2KoxPr`*TvA*GYhIdM_fsUCvObxPAYtM#^%CLHW;km(SSJk7|L*u#h-U-0}Uj( z7YW7xrUe!SwZQg>pY4Mu#+ni`I%R~zpWXlg23|Q&B^0-y3$x&t<&0G)?-r^f&F$nT z<^m>znIX$L9ey2BhX(}IDA#hJW7_pvC|Ee+OF@n|6(am(2+UM z$F4V=&qpLiwpoO_d;1So)%37}8nUAANU&e>_$|~M@E1@n=WshU15a6JT+;I&n74Xz ziKXn(bq@yjH+ku7g|-h_T(u1|^(^SLD&{*VL)hcXr_@J2DDhvE+q!CeP zd!Z|$b_3bGxxr!~HZol}oNkWmp+U{1!Sus+se-2>jy=BFT)06NIbGdRyQ*~ooOKjCcyr|Pi zuUcHD-`6?S(;=UVg588pP=MOc!=<-36gQ(~fB#IC8k%OiTQ?ivi4A&QSM$7nb~uTG zGkUx#%k5w3;lKVt(7(e1qtNIo3=H`7*vFV#uAFY2-1f;YD*U~qSy{|T< zN^c>0HTBfn+R_t;OZVzgy}MqGO~4C92j zBY;Ks#i0Se(3ZAX_11o;yQQ)5?(*lT()OUIM6u?zZ@OOGcpL}z=?Ty~WC8+v zllW=i&Cx*nxeg}xe}GQozn_gtCJ01zA}!~|E}^k~6(_ZGwDSNUkF6a&Gj87XIE<=4 zt?fh|^`gY;H6aJ5ZgoTtqrJ z

    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

    Sm0 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

    kL24U-#i)MWg&-f1k)MONlX$TUxZa&sYGIdH;DW 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

    (`7JpA_m70e#gHtZCY@U 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

    PwIrrt~Hr%`UUNTs3>Yv49w_v(42Ve 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

  • UKFX2#F6W65$@|?(n{fv6Y9Bu& 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 z zK-ZF3i&0#g%qkiW!VVqcWsAS`ystQfWEPmM(IZ62Ki)~B-20l`&Yw|J8{IdP-rkzD z;0)2q_n^M=Tca)-?Mp367p9HOJ_@|igm6Zs>4u|^up>QOeew&%P(?q_s-c^3OA5Rm zKN?x5IRnR)P<&wu({Mb8bcTn>P;(6Z6_4$+W4Z~2_wJGLHI*h^3T1CAu{vx#M;*2U z+BK@jXYsqznneX$={oo<)$QniW2ZU}ma2!r()E}*@i zyi2Id4{Xop<0yu>6n=ax%-iMD*TP#){$Gw!<*|JnpcA@TgrpfXs+027eU?T|mUNx9 zS^C)GFdr)7KiO2q;ztLS##Mtx2hn{w*~hfBs@5AFbe_p8L@gyPbfpV}J#ja&yP&Yu z)A|9e+7pf4hUf>iAvqz@%$Fv-_e`QeFs}74IBy$1G2~}x4Xg*T6L@Y34a*y7wPzO> zoRMhh)u^@B)8{ZH1`&RWFl#`t6pB%iK;MKF*l9VUv~1W5yW8k9rvMQWHoJg8(DGXy zW?n@>hmdPPNhYpYL*v8MrI~NwLPqbS{j>Ev(ue>^6`498g@id)5hoSk8wiNE46cx8 zg77VqvXw-YEU>$lch5Hs+e`OLR)UnW6jN@kB7qGRr(Dj;9#`pM__wu@&7Uy-*5F+3 zh*JXEu{OA;K>)D^wuSz&b9ECsm-C-9F6Mq(-n`m+>3?*_%Drk}(W5@{X8nWa=4pjYyVmu5t5r790(^%FfR0b@`3%SNcv#sjKkx?x7jp4#VwXwLz z&9e1PBVG+pYS4gMb0)nSeYCPS0Sn5sX&Dz8DH}gb)V?KkRV1oXO-V*x zYDLI3$)V`iI`ggUsJ)`hF@{=ZJ9~Vn8j#e0qY?1uhOm{geEN7M+GMDuR28pQPAr=V zIJydE<2~lI85mw-pQe7!gPh$=DCcb;a81$Py)(a}hoTih3|hVnz}H3~E+<`N&iqi* z3##Nk7ATY}Ky!PXl+Mz?dCPs|?wX1#GRvI63>-xUq{(nEvx84fxN&{wndEOKrw-mk zIn!hSm)JK1R=6w~WZyviR8#*!Hu&BFr=^xpViw+Q_Pj2>Pdc%JK>?QnJthn8fKy~I z_i@4j@4;AUc7g5WPZgs!fPGSx$cHzQ+a`+K^9bd{49w9!1VdOb<%KB6mM=aW^YV7~ zKx{9ES)oqAJvYGHkak5CqB!Grv(F(ly$!JwUI>p!A6Y`Q8`=?*H^eatLk%{tgq|PF zO-PeYLN+^G107Nf@mUhC&ntJO%{gmPf062|m<|#3d*H;JoGG{T{0H|zmoNqdXUiH`}WN)`ThxK$K znUTJ+JmAS>vPU#t_tt|tpVyHdQ1-k6gatnSz~bFg{b*Qe>o7Ljk~eGW0pMI7c(<=(1 zh*sjxl$$nMG5%~U;<6>DZ`2&P;&#bWgLZ{-&UhvHqkKn3Q})b`(n9Vz#7AZ z<^mhRjpS3aZ%Zu-xOZtJ`3sW}_wZ@Ic;l)u^6%*!NS(tga6-oRyXX}KRC@H=We3_i zqq$!Y>Frj0e!IajRp`{2_)1>;d133->VPlie0rV=DkI>SYS#tX#}RP36^Nq{qY^x7 z-&n|tVV{Wrvk1PKJo)fMrAF9lbRd4<5Ds$~cSSf(_C&>3g`$^) zZ%m4DfzX4gk&;&y_If`8W;@MQ5h9yAIMo?ltcXw~2kG}Io|$weyJc1?zF2FYjiVeB z7W{nhPIm7YiNw zjug_cY6M%6oVS}~kG+Ju9D1m3i7 zD3dM4Z<5Zcu=HhzX@|n<75_9@csG!R@juPkUN=pn9dc#xSx|=>Oan(H0VNn50h%7L zOOFOFn*A#p&K5>4mXyY)eoL#eW&Q{RiN2`q@=-=>6D`PtEu)9fKz2qMURyBm|FmUS z{KsqUfsRS})YIjAV2i(k0-4^FWF_6%P|LQUqDmX^Ub4%_Y1`#5)zilrjB^qf!>x|{ zp6-^(%$SKn&-L-i=JM$ULzdWSU_9junBB7MQoUi_tgx!V>iM0l&_i#& z|Bpgc%U#DB77D9utMV8@aulaXl~;+cG+0uFk!T}!n%xc;>D>6~o4#;=Bz-3zIUNRK`Pyn41@PHKGS zPGcZ8TqRm0KFriXwMED#F01YIF-HGsK)&ee+Oz?x9WLx+&8k7^dDI`1ALgx7(IClx zjSNJi-D3hXOX6ijEX6P|a{<>rn=-iB(fC0qKa?2J8sW~3U5HSOyGIjEIGm6*YbXapn(WR1D>@`Cwp1SRr){0d%TU;Vrf)u$N5-bG*1b7x zSO2l+gzHk0?j3bgYaOk857CKqc;9AcX;IaCTM+PH#m%~q42@vdqyyykntH;^zA|53u!yeJ9{M) zwX~kp*-af(jHn8rj(rgg-PEEtjJ%cj3rQrww>4X7;IK`E^ z(DY@f?c36Kz$cpO-Mhe)XEj?y6qB{j%vpS!i*{0I8vTa%4vC~#Lbkw zRjj0V?qQMin-Wp^Brq6-96Bkr^oso!SaHDl$Ep7uo$p^R-DLY&$y2vHV6JUBW2khX zD_gWn-yGH~er@=urvaq;|< zbQ2h6&(4VYb@cdwp@Kli0Q+nzeXL@xt@_OLsaGbmtBBQweJ>e<5U^~6wP1YbN-~4d z&QD>%I9@KgZA)L$i_>L+IDG^P)!Gm{zk8DXiFl2I2;9M?I-C>VJWCc$T-$oPZeyTo za^dArV;|KgwXOAUCQ*X0_vb>BQ~5gp_W4R;!(LLBr>3+@OE2Sr-R;10J~nZf0|Hx*twF%&kZ{d4C1A# zSAfQiGafmfF0UpOqspo{$Mn_)?8;M(!7%=F*%mpT7oUx_55Q4kAu~YTjv@Z({C zpK%>H+eeAU{ViLO9q6*)892Nz5DBL6;J_KKXo3gnZsq?=GMIG4d|}vt=IY-k0P0z+ z@~_b3ALHl#M1WtPH=mH;wV)deZf4H`PYEE4R?Oo6-1&z?KR9FRZpMRtOa^%t>;afEl_8OVdBp!EGOn}8gqRrd`{`o3GkG!uX z^!MY5C<%dIDjdaeUvtW3`G7n$AO^Mzql;g`?5PeHg!75*xul}otiL)`)5~qF1{@Hp z^cz)m5lpU4Z4&?0UeiFGqAK=ByZ%{(yHCFO2eM=<@pNSOhJfumL1I8v+#5!GY|ee1 zS)s#sw?|rT2_U5^y720TKJ%id!tY`u^>Y>u9#hqx{T{^FRbY2m{fT2ag`94t#0u%T zDrb+Y^EP78@wCbQh!Av0lV(tJA$k*Ofvk?It6XPdDBnFIA4BOh)+mBTNjl3W3@||I z*l325t;dIhT!&kwLhywvy(mg5=Z138Vm{A=Q%?3mue3K;s_6O6p6MXZ4i=`)%qe*# z7&BtD?6HXA|4|xb^F=d3W7ix2x#!`1a9n68CsPV%_>>QAs|Q!E4IMyu@1HWCxmY0_5TP;H*Bge=a?@isYSe` zG->DjCA}JBhPDX{ONE(=W_oG0~cr;U6QlUr_@Q_ z8QawNWaC=L!LfLW@K9JYhyy#(y!`<9TiNd>1sH7Vt_?=t?5i5rtk+Y-`ReX!Z>%Q$ z`i=(x6qf71Y>jOg9$OW&KBGpwNOo6_r?sk zx{DLByX*?s3s;3xyqDQq`a{tEsmUjM(llw!u}Bh17}Iq0iU)dvt!pvCnIqn2-(73% z2zsJ;TcL1XxKwtw07w;mT9dOsRF~#I#-`2`G8&`49D`(tz9yOmY^%Sf$m<)@4=uwh zn?>@612dNeMXGvPE;{UNDSE|Do>9^Mrsub0ifufN z4`Z;FVPl!BrEkS^pe9bqKBdT*w+WY_<6^~p{ZOd3B{ejXTPh)s5*1PBoziCRJ?-i! z(>2W4Vy7Sf11D+M2JMrJF$K6z=9lXjz7tjMjeA`*|6|7{5g{^PsIV}fgb%g!?^0wc zJ}dMNZg_X6enRD%^|d}`*UHNkQ@CZaq{c|TOa80e25rv~jGM=kFFzj?hwH6w|Sx3b}yb%-9Y z#O}IhV6uFFY+U8;?tzZlE#QD(&g+PUot!8Y6Xs~O zNFGr~T=Wihl2by(&T^6HkcMB}%wNvsZ-it(9aby+pPl@k+RXXSxtO3E4L0v?%(5Gh zA~j0i436RNxHLPLr^opFNzu-Z$cb6v?K^0b=Pujg-YJ(0CH4W}Fng}KrS zX^QO^0TiR?1QUrIA%`e>Wv+t25wdQLw*Wr^=S$wrMOG~m6bTaFd0~YBHENI}!qJaN zYAo5Z6zh)A#op&Uc|hO@5Hlc0+cR*cC{DKdk}Ym@sGnj6e{Fu9C#QzLl|Pz1()uJe zCXQt_9hNnxf};;NB8)B2Jwr_yLUxxb>mlox_s@hwjOcXB4qo@-mI)vc3261w`GNnC zdQqIs?13+B^?8pVFX@Xb%OOD zTU7WV?qRwsQ_J#kd2@Mo*TIk=2-FQX&&o>Dhk0ddgfRDWT%s0Sd5@ra;?%>}Ft0pX z-pYA0Bzkte*AAa|#|Ia}u0QeYsCkbc7Rdwh?(2~0$Z$N{aH`kUPotSuo0m92W9I zE2Mc6g(#a+T;bIQZ~uQou%*o{#gMUUD1q1pm&n`uBR<1Nw4azwJ>y}jM-t&WNJ{~f z%GZaW(H2LoCx-W=>64arSqcVmq9pwo(`#Nf+o4nqJC6wmJ<-!b@CQ2brfk&$bu?nk z>_T_~&o1+pQ9z-$L+a9L*c=}ae^t5ZoVIbT7f{ERJ=Y2ect+3XiA>oi2%1MePwPGD zZpjAWT(wmpAW6c4)9kIc-YYHSns6GI#YVK-rZ7F-ezOT`;J#XYa-+kHMd}B&=Wouy z(&BAq*N0GEUz^O$4{W;waX}Zq8?P!*gL^f_;+Y?*7WU}bH=N=Es56Bc#TnRl>20IAs5#V72qVq z<#d^)|64wG@br9r)o+r>A;lyv5tFL0?f7JKswD|r0imDddd!`Y$ZXtn;1c|uM-M^- zxxjm^KfOZ{*`F*8lsjk6SdJ%b#LWwE&8XOgJ#wr0D_{%gt5X~t?Rp}1lSVsR`rCtN ze8E1Bcu0;X^Rxy((pgLRCE}8a*ACBC5^hn#Tw)nq|5afO#!k=SAU~FN!Vb)$eEiGL zuycez>!ounD%nD%<#+rjT!y~hOdEFpLKZ{O%VLQkzt;wr$dlXQ7BfO}S`nLHdL{ix zrY`xP(S+qNJwjn`>{>(jP}}md6wWHbE$w2%9BJEnnq_?99;TN<3ue>mC2NfZMm1~M zQfCK30w)+kWExPdwl}52AJwR0d4{21u+FXK!j3JHv6qj0Pqz9Br_<9n)DRr*U^m50 z(tqEmhWH750XZzK+}2~zXqT^!_ATw&7G$+I4n~qiAHm+;fVyD4NyFi7k@J+!0YfWy@sFcsEl# znYmO9kAhQT$>eunoiDou%du6s0m6Ks+!ue~jRu&V8lKc7C%Dj+L+wFv5S&=w7ECf& z)1@M3@JKmS_eWztJbfj6CG4)hwCC^-e@MfJaW6DOexo8eVVr94`m<7ZFdnH|lB|DK z?E3F8bui5_R@mH9^E!d{6*-GEVck02%cfL3W?pmX+evQm^CYzYKiJ*Q^7CNuNYZv8 z*F~YG*ehwb>_P6PS|GE)2A$)Av5^Kz6V_qZhD**E!zW^OUKNMfJk@|^Jod^;m&9Um zI6uO{7)#K;%J{h&Ir@XCs)>Gi_orji_qRr+lS1m|H0;nVoyXxjw(ErqHXSV}A5Y#1 zlP!H=2{!?2k-Yh50?$fsEsWo=dw}F=p{K?Ev_DbC-tdLEZF9mAw_R_0WUnu6Dxr^M z{6^`5iDrVlEc7yVrNA~3*HV@~sd~Vqs8u>(qA;nXEhp_QOVvc^Y0bX@yLhcDqBa{}GD15UYH<%H7Ya(dA39(pC+ilj(*?s;W(sjc=mb~J z_&T_(T7iWrhB~LE0amR5=(r>M&IcDLAxn|+YH$|65(Wu2HPa@clPJVm7kPNLA{`f| z_@XSAM##a6BUzV*>k#08{n;cK_^31_hi2s^l4@5PIDz|RUIIKqr&HzxPGq?5esASJ zmo+{b34{MVot4M*5c!7U%5`qBA__dvhMz8k;7+=|l<%o7cts;@^J_tIyIW!bW#)aD zeK=J-bE=UKkxnVz#Ib~Nz~H6tZG;b9?ZSrbp(c`BOYTY?W)vR_WRgG?PIcZXQ{_T<$q!X+`(hp+h#XUwx)-PXuzywylb)OEB zpgJ7hfN+OR*tG^-UmmFGo|4WZHp@C5g-$x&!xi8-x~vLe2f>$fO#_9c#3N4-CP6UR zhA3Z3cSi*#!5Qi+T(X8q-P31BOl43BSw<ts|QQkOwMY7_fVl!@@nJb)o zaP1MUGJTM$EUEbSZdUs!SEMLRqIY zY^*@0BG)2t=VhwcY)irLpshD*oX;2{sXIH~9@s%N{X1N#;Ie`|WKYrC{| zNq-Rh!AjGuOl5n^mMW<>PKEdPxF{3>gphUYT?9*qaPDVcvHoBa`8R)s1y0;^Hz*n* z>uyoK^+1x3qGaZ_vscI3uUA|Ecv1XBxxDmLOa;x^&*YH~#gFrntyd}*Fk z1^N@Hj3boWE1Ogz^%JDb=KV7x-7Kwswe{3xiQ#-fnUAP1H*<+-J8BGCqCE;5|Lq6g zNY(aoWzHgBQK9GpxHZIf$$po+|1;``?k+-&^_Qz_aQdN>**1|124?jui+0>q_%e=O z%%X*Iw2+x$PO02*#Xe4vT?)!lj5@i`5-0W~B=419z`Ro&iNSal3tNBJGabvz651g3 zDE^<*MQqiL9ql){`#VUkLiT_vS?s8eX}hBSN|xdERPzTY!;Mr90M^4O54&H8!B`++(B*2S}uFE;Z~OR)j-=8qzhOm zHWO5)t1t-GakuM0wr(QWGH4Pj<|aaj#S<%8hni*5q!vl$)M6$~@cQ%+(qe!X_sPN_ zsI`5FpP~u!5$$%R9sDRNTrhsgcPlGGvC}Z3DbetIVaEaT=%uyhqgHA$2KP!FUd9C=SV6fxN@fAGV)iw z_Gpf>`hS(7*Id(AqEraehS}=cbGsjR8r{OccnscgdO!sLinbBK22B>dhIX=xCKzO% zv4Fn`_H(5*;L3`4h$dRI*NfqE{_Yc3+M|p6o3>lxpiB%kcyD9!4(9UGzg?GFM#~MC zA*2Cgj5sf|WNOe#BVuzy)eS1i=h&da*7WAOaNx5`A zX75^giltvWwu@D|wS1g+2Ox`N|FJCzzq{t1bnDqj+34)|==AyKzZ|)p_N+S@{s~z= zi3ibW{DWK{(p#*@A@Wg4M1!00Wc-a6CI&{9I@s~)xH_vnXm0(AWA2W}(w>N!tIsw$ zGiFO?+haC~I%i!;zPp0AM7AV63=H0Ums%z5$kOHy_gEIP2@&S&$IC%43%R>8)|JAC2t*&9T zGy&XNPz(50xl7iS?U4da$&wXs9q+E(TJ*A3DgNl9UW|6-Jl|}6g{{NFpDw&g7jX+X ztR2}$=l>DPmpSl=KujZT{M?tGT4|kS#T+|fx)d(PFBj}mj&)6d_15_c(nhbLE;ibQrgjWQX-r2bL!?O=d4`r~X z-oAPjXg+ePa?__Z*h)#%ON+!z`4t zIXfc>%UtVX+*NNi>ml{%$_0yxWs4k*!QNcye(8_CHerL4RtV4OeN5ZgtyYR7794J=Lek3D%FP?7wLmASuG7XBiiNnP)0E}gnX^dp(#ZI%PiIOP0a(c4rlgdeg znph^;y8x*^t6B&H3~5HYn~GYj$z97e5~Ef3VJ+jvH_jQ>T3CKN^44mSJr}+%+-MPM zk2#jrA$#LOL(?Yvss<>*%c#HzOtXYQFEm%oF|8%)#T94`M2S_p9oeo1T-_y`9X@gNYpT}ZQ z;P_(K>k>C-Np4Xu`W`++lDd(knYy`GmP7tkiL9obrkA5Jw36_1lw{7uFBP-xrh;UR zB|hh)l3Pkcm<9Z>%&mE_47Yu)&zxP6xofpPm>bPNQ;?Z_P9B=q16A_ySY{=kp}_yFV^E7Cb~PhLa6!= zj_ZbP{Q54RS{&~L3Ed09`ni$JsvB}c=BiVzNZ}*ZN7^zqxY9Sv%)9QCzsF!FK|gQ- z*?RVS#@#=%_umUX^04gbfn;YR%FQ$r+Wx#OYwYwf$@(KCe_3#t-AWo2FU)*uRV~k&&bS0G!(enb$ugRzail{4l->8i$`M@~3E3 zP_Idj`fcl>DR`1q0}cJkxR1O;_1h!zrdc?4E<(31d#EYEZ4XB@QD|-hLHOm1^~CP@v`n;P$0Qhm z`H5Z#aaanBG+mp^Q>BT^Xe+-*VTTWrm>);hoIgen5mgl0Ji3kYA?se=NR#KU{D$Ah zDL(0~$J%)7cSX%{ObBiBa4!1P>im+370X%iH4{CLy3L`a_4*vEz?pSaR?|N2lg!x1PI__!w(x z$~x>MK}z83b_H=vn3YGUac#F2K3BW*d{>_ zI{bkLj~d4DOk5P}s#t?$4zeugqHMaXMGeR3tfs5UyNpQi={I&g&QI|J&xopyB(v-i zo_HuQVa8RHSxI3^Cmhe`PnB*x;RreXjN60L;~Yy%-qly{LCY$Y&N!gt$+tauPDUL4 z-B_-nONO+AC2a6(ODy~xdBnH{ zX|g(!Dhg@V*l#(I4a3J=_JZ$48_r37Vnx_z*qgjGZ_)xg`P?%*z)g#lSfglXA@6Lu zm}^X75~A%~sZA}HY2GJwtPg)IY=;yATbnG#gzKC{2+3&v$OBqe(IF@U*)cI%E6tbI zjr!vVGPVy}z1_;#N(@}5h`E3kGn@}G8V&eX-i@}yLfh(sS$*;$)j6n?(Zik~&V%Dx z7+#D&r3|cJiz?I*?3Q$MnA(aY$KoC zB0rEy7Qi>|iN7fCcJE2IFlN!w`~T}bJ`j2Gb9Bvio@3`cxXdC)ttHy_Wt7a#L2eGd+O^G;w>n9(=32QCQA)^Sguu?+fL zNoDVy$Y8%JWJm1qffB92^bM;aM@hbl4TzQlGBbAmm-G(7gVkXhH5Nb6?9DqGK9_s= z(9xu_W6sgdLsSh?WpeY^XS$j$y!w;aOMCY-*>zzQjze}`j-zPouAU7}_|As;X-T>N zqaT=d9{EOhXrV(J1SZ0yx5}iSEj9RHd$er_&*RzJah2}|r8bQ$!sgxs{frXYHkQT;Z>v&yRqk8Xc!350>%st&R=4W#9&lEDcG`%YK)>w##a_=JeXh^ z=Nm{2DtxSDdT|E9Iad6cW6m)h<}3~*Hw}U9p)7`Kk1te$>+YTqOyQ<+F)Sd>RsA;d z=Fd}@c^wXPFrf9^_>az(HbqMy^$OV4P@mwGvO>X}LRUjyU7aMT#lkCs5 zeucDyJCjU~xD|%Xjwv_mo1}6hMixz_eYQ`+EM~uX<9x>anhsmZXoLgR{!b0F9iWVrl;!e!^}+KWGS_{)I!W~&9)XP6j1h=h zEuBWD5s)&8T&_C5ptL0gra(qj4^F`DaK9R#_Tvo8mqR@ZKVC+JqiS&t@PC>g@)h|` zD1rnve&N^`19B)l==j4A#Lu@_5eyzO8MZka`m1dKxy2IyIkynUK;C%G7CHok%lcY2*QV}V+fW{oyyH)2qC_V8muenFP@ww^y*69JY|R} zeElSxOJz0bQdd6m zRS7c(`wp42PmtT+PvjeYpAq_VY=A^K7Cx3fpLZ42K&%xi9b~Z%uI^|<`iS)EsNC$bgtkKD_T5J4cfux8s)K|$E z#hb}~{|oo_!781$yy?YOX1x;`w?xAqt(kVwE8XceJy_(?6T%$ zr~dADz}7THT*q|k)2jlfnu5q2;z8Y& zE%0izd%T?ogZ~g6bSME#ja3Q0Iv}^G2l^6oHtpx_#jyarj!g*5N{$DF-L8amd7xu} zpdqZS3H5Ii*{}0wS}8+DQwmn_^#A}hv^R&Z;FTWAh%AB{kg97%qz*I%zXBH<;EqS3x zQ$o?s_#6Et?dS-E%813@!WEMDFKA_FtklgV5JVZsD}_ezdsYe5n9Hiid)x~Z!y0yt zRc$>=XWSALp*tK!!D2zXCMfeP@(GU~QSf>~rB7I}6{+#fGMZ2Q=}T=W_xP~QoDC5F zN`^&-al-8!tIt%PJa@ddSTHQ+9OgIZ7>N{wMh&&5PJzkz>v(ynP7v4rcM*^o>hHxk%U1ucKHk+Qox z^lfB`!SYnio(3TzUk7bk8_)Ij;NGpXeGe7vF5OE+Z5mKGZpjj`qe z{(m@DARqG(C9T7$Ea+S7CHmeXFBEzC^x6nBY{0aGH%Wd{gVov|_}tLX);priNzg#J zC>>*{x@0Zj>=WZ+P|S)$)7Oz^zYTuKn0J$?Jtf>;fI|ys9|~T2 ziXrlcj*I{qt)KO*S}6z&JFYzPPX$gA^U=A5f|sp`G4=<=e;(#PwduPB+zPgs>?}?Z zcS7B~|63mf9_I{?DyL6lX&C7oE(y)pm@ z*4E%rX`esuBb$$YcWi0fBEKiLsJ^f9njxAY(&3!z=eaTCAHV+C!9#U7q)(gTUf2BL zCwnxM{}_)IUdR9jmM?~$%W6&^bSKm_2YCyBYkYMJMGFwx^9ruqz;(HzxAFcq1e>gj z`^+wav@MFl)1-;ZJ-bjqAXiF+`io*+03i{$Iq7NP`KbE*DfyUBe^c&IL?NOBH_nw) z#yO|x*Kl2E3V&dsO1rWYc#+>{N{jZwTVPU1Yb!leZ4b zT1f)!%!P_WOJj2mC<54(bAfl6KmVTL^DVdVP?y|F+O#uI%GdL2Z*x`_$gNSl&}De< z{ehktUZT;aZ{h)-kOZ#5;LcLPu zEfotkrkEk60eQE<5yb}0y4v)U72z*pQg-ca{XxA{bf7e#CK`o4P%w5}+LqSgdH`q7 zR|^tTt6Qc8|F85dlEH6^7iCSMZ$7Jr)_D&dgCj=gtzEC*d;a;Ho|RO3MJ9P@5uygA z>XPZp%&fylwh4+E!O8-uhT%Tr?1DJ|3uxAJ)m_2}zTBKDYK;q>v0iH2xEqY&I{FC3 zL1{Wd!I|PyOg-ciVodrgi*=&5HKiQ*oM**sK=7}c z`K0wW=f!G#rM7F&^e=THP9HOR8uMrJV%+rkm~Vkw5^|vRmM2KrDIaWUPp#0Rit*L# zdS`2HeV9@F)x`BIQl3_XsmjK+S^8XKCe7rjcgAYicAnO1h?URoSqT! z4AgN!qC5tKf?uNOu`E5HMIAb8h@Ra}OIl=?9SCMCqqj*FgzQ{%s%7)JP2}c~)*(Q= zs65(l=-G&pKG>&(o#}c)U3SLs}Vv@JL#CZ4_f&`ibOsKcv1c>V$C z5%R+s*`4z7Tvqw}98K$V%pHoajI((#BYUwA|NW|vZI@L5`7o*}jR!QxgH@%h*(ibSxI~!3JULWF z0cMQxHN*Kci$FhOqyeYHMmaUH&SY$z33d{2oxh{~v*dW7knz7hBMKnS5gJR~LZI{g zaJpHHy16q3CAhSLz;@UbSfW25LjVvSQI^tT^oi-BYtEsO}|XbKtsLU|9?@ z{tlR@Mkz=!v%UUsKaPwj%mzNSYS7+8-y&8ar?rW-Q180%bMS>1c3h(LjX0+uOPb(R zXxRfEqUO}}fX-nN!r%Pe5!ani;i}2oh6w-0X1~pt4nMJF@-z#$omA5fG3Ndaj8_z< zEmG+%G{rgsqbj}IV|Mz0Ioh!)EvCx<9=BqI?YxQOkhDJw^HF!wk-Ya|X+luMh*gTf zW#B#r^CszX7exuIOI{`fxIN z8QQLmIcp)-p_AfMB+o@}qu;S50dlq^3aJX~??cxjW(lEht(%2K0Up5ZK#TmW;*^FS z&loYjM(l;8zeYG9fBIs+WK{(quaJ0LzxI?K%>n8ven9wf2iR(DEfoCs=5QNg%;R*g zZea8tBD;V#04Nufu;KKN-cnDnBDYJfStpZ^DkG#l9M{dxK-u7d4aVz;^66wpwwe)D zS0Ni@nqRGGV0Tr0jDC~@bS{<-RAK_CQv10Z_77(!&U>hV&O#;VIYmCb4ZL}mqqfYf z8+|I}3riVbRQry(>N)i58jrDb6;*J0O4&BnDd!O%e06AUoXV7;8=G=2ef4kdKDoum zjDAx15!9zk#A+I4sj(%&i}Z3LjGmC?SpL?hdb(5U-#}A#cxiLpNb$12;t{$6E-A)}DS^Wdi7fE^)uMvPa4 z)s$4^g>kJ2z819Y>$+sbFUvlm1YiN;{4Bk_et9EGZiBv{`8hvly9sUPEM&osz@j2M zNa|gy5DY3PhJxx$Zc-gnb}S~@bu9d)DV#GK1JRKasyuazFL;^DmjNqPsLg!OaMox} z`dG?+nJ%Y#ImA%fIQUrt$sO#xgYX&53xx?dFdI%RNJfTp#cIH+sNgH=RF_vlE1g4- z9u+~>B?5s)+(gxzy=T$QjIbSQ00TG~=S{V}F;jT;(#-{=8M_MN!#@kczXB^(3ICn+ zLRZ^E8qgVCxy)$+WPvoAl15}*BdtnRs%mh{%qKVpuoX4vx4f(dMuo6P5HEqhh_oR- zy$X^MBRkVRYFKL7HHoW@dw=cw7Fa`0<~YD^!nb}k(n8m)r_27zjfJeUt%ro}%=UAP zIiK6ONm@9pXd%Weo&M(b@GoxZfO`HGygU*0p)w8!lA*NV;IFqZh3hk#LtdU6*G6NpzyNmk z4gcg{-+W%&bF^|D{UlGyX=@;8ZWAS$MR(6cy)O;!dzKd1_PcwTQ~cFDV>5cy--HHT zpN1F~mRYL{ZV~mJ#K_*J*@KUQ*skOI`yXQ1qUQp%q8vWVbme# zpc2s2n+()}=i{_J`oqR!wjj%XQik7FtX*|Yy-ebL;uxVBXJB__ao>*@Z$8OYuDE55zT zx&lkOoyMcLg73tvA#h1Cx?2IJs$ipM6pNJKUq843u6e>)iP85Nx4CU)J{i>)I^IBI z8XvVuRvQkobKJPDZD};B9KO0kc2Q|k&dUtShI~J;8GkyN58fDonY_Qj-&cG)r^Y2)k+<62^pou5umh|`Y{ zNC|_(r}D2Kt_d01CC>e9R+yVHs>!x)JZKm1E*ccA1>*0b!OT(Kq9X(ED!i~RqIB)q zSiz|VXL>+_Hk3kSD4)Y%rgCNh8ax|L_p#$p+`*+s?5VM?8PWuI*?B^%CnLxU=_DUR znoDbLP~%G@=+~(6Au7(PXa>V#ZkfGEl~X-~i0v*QJ0Q5nDU0E+c-~*!s!p2J_OSoC zW&V=1dM)*Z^w0bQ@L>mAm945p*7I(vj6vtfv+kg^QP(8inG0B`D7XALb zyR!HjVYBd~D|(MnNq<#Ms!$ZPq2a3A9V#I_T!&`=D@t|g@_3?jy7dkv8#Fa{hw=}S zY%)n@apFyMA5;4DIhiIsc(18+dC1L(z_shfn@g_~3(@oxLk$eKgF!mh`CJ-LUV?rh z;kbI)cDYA0_^A@o-tv4zGKqjN*Yh$H{~n+-1nw=fdj50C4v-LeOJuBpe1QgZ{`9N^ zmIqDa0Gn16*m!9(6$(%b3hLSjf1UhW=X3S832u)HFOn3Rb3eTLH#M-Wt)uW%ulIbP zsO}Zrm9a*Nw-}P{hk!_Xt_-gD$%>a9640OUAEM>?Z9I=eZKclL9@Dqfj{NDv_kYSMV}FJV`1_yEJonu%{d#_;c-I9Ugx|Ff zJ&csIHY*GG*I0w8uB4eKBw3=ykwYXTO&_SaS)%6tXK9wr`FJ=M*JX|kF3z(2Sf5Yb zzR|Tu@HUK6^a2{E&0a&z0d8~1sV%8ESjDO1%AdN{ZVmN9dK8Qs80+Cusjz^nHV=y* z3#>$tL|%uRBM6YMa5?B37<0r|CaiA87x*%efMm2CYgzC)h+z-6fH$Du;e*8!tXb6} zLXMOng$AG$WI}Rc7-D*@DUOs0&Y0b_=s_on7SB#2KCA~cj=%>>Mp6+qI614UfG@B$ z78a4S=RV*xJ`Vd)&S;&QUvA{?eJqVR;ANA(^-)U^qgLuOZ_Kq8GFg(XkcKgFqoU(T z9RA8u@m;QKJTf}_f_uTk?*PfqRyQJL&?+be zT81`mDh5Jain%GNb28^TDYUK3k|0egP!?Qy3ih*u-r0i{t_OOb)H#UCna>H*wSGtK zQ$rP5ivpS-YrS=1aBWGYQ&m|x;-2n-p(1HQWegD=WIR}>aF;gcdCpR|coL-!we-+6l2N!x~$P48%@h6Z=PSf-QsV+Ljx=?HBKU%^6%8X|KBL; z*ONY@AlJc45B^XU`MYA!it;-!VjPDX=%>*y&7L?-QSrBNiHZrhozY*{HSnHmWjCa( zyE-e$FZ>X4WZGTA2u@)UgqbuSbHQL=zUFNFreQ@C*|&W}{}rvcIbG@@&d?0+Qs`cO z_#zfnL@SWD%Z*AoE&e#x^x<2s4vwu~B7g^~wRpN6E@+B{p6?5|8|b|u$sRo}j)<)J zvw|ARe{SgggTb9pRB{PSI5?>n?(L2fpWZYxA-AjlwzCaDN$o;M<;@`DX{Gr-AA7Qa*%kD7bImdpqVC(`|{(wG7p-nqa7*c@nl5ME7%%jXH1|^ z{HmZKecZ=is6x#Tp)9S*P6BQg9B0gXR!BAeeE41<&Gt7TXMbOi;3>NeV!a-;Y22S| zG@SoDbrS0qZZ7y3Xd}L;_=8Tj7$}Cj^5Ck4kOt@~&MhVIF7?aX#`5+Gnk z3{x*dH4I%uf1pTHV^F)Z{3(3GYZ3TGOYd@J%B`T1&&M)96@5sDohdH7NPkt+4O7_AA6y2;4U{oC zL7PTsEC>pZKIhz|oz%QYsfgn{_IxABHvnTh1E;sHGHPrfZm25PM6&jIJ5mI|Q z=ipIeR#}T+*Izl(YhVk_7~I?cjF|DG666>6pU<)hC_FX+hEi2hgerFQTGY|TdS|W4 z<|q~zT@diOV76}xG~tzn_^ik`yqfH{gn{KXZ2?~xQi5C;ZI|Gb?Q=pEw~hsfnV`;D z+&h{8r{t@6pc|j4$?7%%#xvb)1lWGf6xGaSG8&Cb^AKr-ZUbH=gH3;`l^pD9gYQ>E zlayD|U^WVfMea&3xR@3*O|8T0K)R4NMs30WhHhP7h18G{FMvAch1d!@P}R2}jZi4^ zlINl9TToUcWzqiA1gufrOt-=6ylAYl$v5=)&v!F02EXWe1ZY_j&=DT zDqm+uN@vWOb{|4EvO=!XnL(Rq9$+rf1WupV|}G8%j2p9n(z(gblreCYVZcD~1~nZk*75(J6m(w)t3 zvg6J;tlw&i3h8Z|z)1$glCFgQ`)E#ScB#}uzirZ(zV%W+!-_DptLf@U?;GbOzKkmw z($Yf5{X?$$O-acnjA=7^4g1;UckDlp`fS~xvpb3Obx*6u@bppg1wcdRUydgy>{>!j z-1^mV`e@bQP!tn)_Fjo8b~+JLd7-X>7vXBAok2b1>}~CT@!GQ{K7Gl3EbATGf`ii;j~D^830B*2k5J|E%7&kvaZ^$ z&RJ*3VaDAqc>wo@d#ax1Lq?J3g)ZX6vTU4CP+s?-5a8r0LJYos^Lrnr9UMh@3 z;bK-k!uMR-Da&NMPK}R>;Z;(G0q}{rNaGW>%(Pc(>??NMO%t^xql$Nv@%Sg&!# zHyiNk-cDWh(R@i!16yHK5fL-o5O@(;wV+Y31J7extrRft}`UQ>*!M=;&4&ZRZ|#>YH&~f#Kx_I?J1n+!EBSQ9XL{aNX=x0 z5OY_$1^I1EaA?EIqs7T9L%e^*M8A@rC7CDmR1H|u9cPY6hApE}xI)R{i(g!Dxg{Ic zk6(HmD+nKo-8JT@&y2BFfQI?dHHeI-3LAE|)$@Ajm6YDj*}7#Ya%$PGyEN=?=QH?W zMqnTSw$Q7RAZK@P`GG;g-OqlfvFOTm#yC4rG1|wcDX4P5ijo#%^#<|4F~$&ln`2k1 z8uEm)n_~9-O)6zr!S9hF=;KbX+eM}#YP05o?32l6On#~hmSEIY+l7jxUv)J{zV7(% zf=(_nT0^;GrIy0~t@p;Z3YEr+Rq*!?yUdT!7|;fA+MRP%-;6WM)b@rRjpZP;H0V@( z7Z50XRtqEkD&0wG#acZ}P!*NSKEWCOJK~V3K?9A8?N#>3X_K&iLMJPoinQc z4wD$^{n;xFt~2bqkY4k@)Apx}Sa#iUw(6Q|jhi8Rd@;(1a> zt7wAt&*Y}Li09tDhORVpgt-@T%M~4v08F;hvT7~Sx0vue^rL`;{5IR(%}B);Rws%| zdV%8T%gUqbto&b2>R`jQp~#x}%3NqjlrHAUH1R58zYREut6^%r^GGQlg>c!>ysxWm z5=ZdqWdp;426P{(M*m-+?+&LRYAkL)Wwfv$=FIJZ3KK+>As&3^RQ^j}1Yx7x6M}Dh zi2IaJ+g;K1($zG(PtXW7$~7s><)L~ku&nq%mB(zZRD;5dawe}A;#DfeMsAS5{7Ga`qJ7wL$;_pv-wC7SovCB)kFDI8(Uf7_|Y)Of+_I}Nch&H8{j7Cwh zyp~eiv!YGW0fmD)u=UVoRomU8q>;MJBw3GiJfeXY!68!9Di41KP2dRCadzLn47sy0 zYkA1|>1vAn1Zn1t#+B=WuLE%cB~K1a&hsHJwN0c_fPi@<`sQ#r9thXR0kng%z_<6` zOy$D+J)c4C*EX}4W;<0@r0LU6Pn-zqEoq_10OcEI-T;jeD3_*>lA???w-|GJPXUos z4Zuf1GefJdTY@JeHv+4j5sGuZjvQ_B|%3gt9CfbEF3G&U0O!jcoQIMT^60 zFo?kM(qMJr7uX67fM7IYA#6A)a?c?b((cUmpJIRnz;Ll~pYa$PY!x&kMhJvID}sKq zbMqem!@B$ShT?Y zUe_&w=NtE~cUIRurE9xFqg~NR+M)>0QlF$!V7ww;`D;qZKE)^@4q7a#1fAh5yN+N~ z^o`w)6YnveaR*Mi{{D7I%9J5Z5*m!@Q=HZ9g(Tqn4J>exU*IyN7dpQd^ge3pL8KvF zuHN??EFnJ)iwhp@J8FB;|M`bh#wn62#R*Nx*V4s>B7?I-9k;0);71X z3vnPj!zd)eBdF(C@D6)_gJ74_EAjJv7PYSYY^3qM7^ zM>xE@@o0G(WO&6K@C3gxg_*5ZK4?PzJe|5gs%k^0YmS2lf*l*Lv%S0Wa}nVGB1Uti zVpc5f_F`N!Y{E;CAb_hBw-)fIa3qh&PG_dCzFX?=rO9$Yx)wJPSe3cK=`11JgQ0hJ zYpV5c8`g=wT_x!-r*(i09>!cNhYY!nK&Ed9#&SNajA)XZ+>Avo47vO@upz^`^Ie=M z{j=_%o}#?4;)7q7NVtoB*!sTxBPxNCh+BG~w_f6YF`Ok#YB+b@_OK8{UhV6g%O^P? z8}p89Xi68;{8zBCzLue0jFZj%C%0V5K1@?G zg${L*iB&O@|FFJ7qQ3q}r_60VS6aFi|Q(le+i5ClN+)(@i$Cf(#cELL(!- zau^~Ln*Cl#JIT?`*kO?-cAE%Yzz$3}vL&c~Q51zXn8ey{K>!gMd)>yJSO-(GVg4aW(-Ci^VKkvZzWI)L6L^FlH+wwl67c_7EZX1MjJop3+r z*zTFDaU@{GNP!z37|B@QOa%HQ9=HpBo5%#dglc<^7PN^S#|q!DV1zkn5ao5+)fX~W z&?W>5B_57BmO6jJF0j?zNgey%oj?vPLclS11JzR>^H8{K3;0u=v~ z%`R1n?XBN!ktDJ5VjM`7>8t6cg*O+F%GG2DxCOUm=!(Dg^dfQtb!chIWL)h5TYvk1Oyo6xB>P& zIa_H3UrnP|?(Hi>nmEDBXjmYs-F9oR!8+7A8wa17q_To{w7HU8d`XcGzkI{3}TCYzA|_L-2v zDXVFsLE`@I4JtMknn;S|q55kH$b4`U{lXP6D;cWV)nEe6G@}6>`QkU$ZV{3M$mFTO z>&O~65y=8k$EZVT3!c5n&bwBhRDG2Es4Y_Ue<=X*zEY`n^+y#^!XC!=?b5qmklf5@ zV*oeVCS)cv8JrZU(3El1JUSf{M0KOorlpCfN?mnN*8Lh!O6(_`i#c~G{4#{k2A)DeN1 z>QwM;E24C%RmtrYzYHvBF+;yj{Gn9IRZbvdr>>ZY7{CAb<}70x`>Y6DNLQ);OD}%} zM3}f852z0gO?;>CbePxrRj%44;uTuVj55bd zV?ek2aM_&L5h?0LUw&^a_G~2_?uDws6NWnAW7-P(1;i+D4^Kc*KFs=5cp%cLk902W zeb~fnst5s*CEx|BME62jxXC?pypP`z_AE>da8RBT;YDmKiK{$CpSTJ#=KaX{{%OAI z0s@$*^J=pJ2+YF;`NezE?z0L z*NPxW38KL) z={WKnES4CC;MEL79_h}{Ud;O1IU`h7(>Ac$)Tb*=#r<^>TPMB)7DVg41uM95tniX$ z94@}$C8|SY&|%KLiwr@xkPkFqM`pbTVW^KI7fth&sPz|<=iOQJlL7vTfUDbBN#?6|$w)5b&xap5Lx+Fr$GXI@?Vkz_eaQ!CQMJ>zhT!9jg76$H?v3+x4EaXqXG|J(`9K8H(mc z990l;e2^)m5!R`(J=hS?4K(?Q{n!R5#@H4&vV>L7og^Mv=m{8{D z((SYI7pgNaW;E$Mi9W)sN%Zd*_3q8i^^l(a#FK9T_V|gIG^$=l!>ckuCwy$lu$5GJ zl}cjXdRsc_AF&KF2ugCY8x|^^S1v=^V{d;adbA$Dh1Idn`yPKdQGTF*4v2%|iw+^- z{jJ6%n~u$3^SZQCblyWWoQrbAD!(L5CO7>@yaEdXIK)9KVz?LYMD530tWs$c2;XC7 zG_hOF=pg2qS%9p7LB5#9v5Il#JA;A4jK7J9V;p!CMt6}XB&|i}kV`~+sCr2W4$lM5 zm-#TJuESbCAnZ;!9ci>oEFoVVk`XACE zNF_0ocX%+6o%urbv0Le8>#q(kspaBBd%(wKAnOxGVF4__V;avYcwg9%eZur}Ws$8Q z7U|Y_k;E!s<4n*;>7u*B!=0_X|R2nH++_>MPX+{SO!A^$0Rw34@k9=u*1o43vUO*AeJ$Pn* z7}EtSkn;IIRp>Lk`Hw4cxoV3o=$yp6;GJKa($^+zOMR>!=d(l(HjDD7z!1*{5kBiu zr9v^pMgr!p45VD53KEc+xT0=^AgXPN9D-uqfXbECbY&INM{Omj81l<)tZryz5!(0Z zhX<27^b&I;4My|)jCp;O^@msZ+r_J7>}UHieE86n}_HHik4C6CHX(y%wt zlch=hdq5=;uq1GB1 zd-RjV?j+_rmc~j}aY7D}BW?|sUWj?ai)g?D(@038d7a&kcWIy_@vYPv2|^(~vkYBY zC218l$Q!7{APW;#tC6RQ7*>YCCAc1TT^M^BX$SjfVF1edS4Hr|!wEt8I%`g5Yp_p- z;&*hm%5Lt^9M2KCuTbk$UqVlgKw1WOkhkr?7y#gOJMoI?Ek+^ZvU;Mf+EHr8JENle z^d`-_*eML#dN65y}DLZIc!Tiv1L| z8F3_?mzgEab&b%vE!x)4JeTvr=taE@H(@%vRAk1F==}fMd+)!dvUhFRQOAY~js+AY zDk`IZ5m7pcii#aOC?#rSB43&i0V!dNs7Q^KA|)a!79b)Bf{>^*1!RNLTPQ-17D5Q= zdp~Q3nK|cupXU!aKOFCm7(ZDFd#}CL-LGpQA5|5iX?6zif9?CeggQ3h1yAM95w zLMn;;y9?IzrXWNWj^!c@qv9CTlc=9y^i1H_Ov;@&26lK3uK+`A*&BQ3hRuQ3vFvFGhTciJ$#r{ePRBux2NW9Q9|lj?-6SEr-&NOR5v~6UF}f*q;7X zD6bvnlE#TS$fJ!DX7qp~tJzgeB&$*Cg%jadHOM@xCW(2+15B zQ0dqiO9vhmS{o;;c?()C1ItifWZ{SVik6WBfSqMcQd$qAq-hDd6jdBRz8=|nBs&F6 z=zyO-NM+!HKqn+H)hadxvfJ1c_ArNd>!Nh@KcIuiYZ+5Jz1B|&Eg^+vRT4L+miGk$ z`W_{%67!etRC);{n3k{USufaJHI-Y{P9ID9_cQEfeHl-WlL%$!vt$zOm>X9)?6>H{ zPmdTvVied}-wFW12+JC+o*Muoly=Z^_@GbVAjn|+BKh}2WAanm9tv#r-Rz_A(c8zn z`}o;_Sa;FL9elExdz4pN?S_qUl)mG;22Y*o5gh7yY$4IGHZSe=-b@i!-U~AT&|>QR zw~`?@kbt;(I*99i3!cWGtgA2_IaiS7qkwxp^qt&W53s^!+Xj1vwca0 ziH+)q&3ypK;N^$?9qV$xrs+vdE_z&)x{x#aBG^8TTL!{P8L%$E4V>sKnN2s{NG?lH z-hRYlkYMOn;n8sLgIQ`atSv_s8lniK%r7&40#b!Si>2KH+g?LsAsp}-LI89^rp)Sd z7Kxn!)d5qAlK4}8k+E#3%u2bl{Q--(JZzZ8wqG6d(Rar{UxO@c7|zQ7TQ`&i2T&s2 zi~Uf0L^LGgfTl(p5lTb6J%XiA?Zvr< z%bW&Ru13z@_E#p*1f^j%%ePpD@*KMTG5{DXEiIf^^iVRN@cxf+4VfN6px7t3okH=g z;tFkH2ync_DTp;cu=o;FgfW79sOg2P7Y1#6dCJH#u=&262Z-1)wgSRB^gc+KH47H= z_M0xgWtF;|A7Dp)GH zi~*y_3$bi$jrcx>YItk>w1;kmAG`s`Vt5=W0&sgQGjvQ#nl?-~8nHy^*~~14fpkgJ z4lKu{V>-E1?(ftjw)TfRiDIog`)LRglsuFq!jUMS(CGz74j5OQwN}lEj_#V}y|~s! zv+pO!XQ(ekmo4wbZHQl2H#=kx*lRJy`;r8KOQEb^ zAW0p}fg^~0oU=p=-Wk+ToH$S=D@aF`G%7x_ACi(n2U%DH(!x*_jG%wJ-y*{vc-WKA zM4rjX9F=~0(t>@8D@aNe+Cbv-vLTN?lnP;F97)Szm=%bb{c#2+KsDldsyrI{6lB2k zkZr8Z;K-tVuxi09vk;6LTPf@b#s?phVJm?1iUU*a%2AQp^hUZ6BZ+=0*R|^DGAt~5 zEf$#I6v#6U`vGKG!+x_oh@gvf?MD71mvJ_f_=Oiy6gbyM{2Ammty&$>4^>7{CFmA# zr^}g&sQencFGh_|QC2!sVYtxSVtubf-thA?I=Bb1Tj?t7-EcAOXxISRY6tblSVqc# zUx``F#rvUu0w#wmpqsyUfPIsB$oS1$Jsnnj7xm6v)lXIB&u)O+_lDZGF_q%kjF9SH zOK}!Douv>sf$6=tHVn>@a_sOEi^M#C6eP5^)q>L?KIu-<7YQ)02x>t=l9mmaX*~01 zl=q7dz`qOO+iYcH9M7w!b`O^)MVyP#kIQxr%-e(zM;Tfj=nK5a?(cm1+u0G2i1ygM z^z|7lgRIctM2JeKobCH-TvnAoZps0L5}i}tY@4|hzr08IMdcM zmA1opF27h@dH{DGEikr?;hgG$qRT+X6|HsQ0da!ykdQirboh5{;U$We$MwX2Ei$SFUsIllEU&OM${h^9ji?N=8gkeF`M0&926Oumg95G4Z*XOFY z0=Bgw9wVIvh!WpVRe3)A-G9;BJfq(+w*1sTtptXQKhakA>!vzJ-_6*}X9S@S9$mXE zSt_3+i>#*bKM_j&YIxbGE-QQ42=gbYdT0@A=tf*2@AG8lukQdIYeU@DL?1=xUZ_J? zd{aN%5!(N}KsfI1NB;ILYT?5@L|SdBcS(4D>{KOSq5d|5Rrx(q`Fz&ayFQ+Z{ITWu z&a)}qIZktfzxV|Gj>No2HIb~a2{vPBl9M$X(Aq;dALQZT7D?N?I?N6?f*s0Oj&p|m za3Qp6bS3Nh3fAJ{9rYc$ITn#@{ET4veY9gK#-{D<0aBo($&jb|nC^=tPM$Cz$D9#m zRKFFI>2*;#xw^4=>cFGC?14qy&9m?2<$}$cCMFY?8urKgz?FJfOx~csW-~Kc51sOe?VC2`>(4dDotdqBW8>!AN<`%<=z+}bIR=XT*#94bu|H5dhTIiwEGGLb(l#>^!pl^#Oa@l*^HMgz`kut@9qXifa!E~yE43uS4i^vl*I>Ah=Ve=Rw zY!#u>CIGVnqAkL#HV?yGDagt;3hpS5I4(+0VX`d|Iomy?|D||okIKO7CRhvE7ZeN+ z7uvyr*L^~AAevLcuAN2C6Om^Mj?5GFLvnzU9A@*$2+s>SZ()f}JEK^x zdcju6EQ2_Ph)8h}eG8>mH7F5l|eRM06M^RtB;jWuRz`h%pL-(jrb_%eUdf zD@vB2OVDreevKWvt*VSjC=!asM}VJ^5DrCVB%T2}@13+3bLE#~4dBnjDnpW-k;j?J z)!Zwqz%{??VNf-V+>s14LSfyc#sRSRrUgCF1EFQGB3H#h>oQTszQ?X7Q9U0Y~^2W3Umr?T02{Y{UBIq1g zd>F*V)f{t^mO)*svfw>`!#X!xs5H+VjVdzUMJzp;OOzrM@?qA?!kWh=;UU`lyf-S0u{OvQNlEt|K_JU7$R;%7qXSHl@ zEDcj%IXA^#jPSfuK810$`3dSnfxZe58y+cvJkVz-y#wo;fj~gb05j2LAKf>mLgABu zb*a)4e-RUbhlu%+V6p&3tD-XlcqBPunOV)xLsK0c4h$9A27_(831w&eCuMO{QJwN9 zp0;0UW-5G=PAN$_um&@KclGGymBg?03;qJV3xCjA zacn&Gu)`oA5{E$u7tr5gcO@^f&qRuxIo^V1OfUc3;pVZWuwJ#V-HqJ*tP+4sJ1$a7 z-ge*lt%YYI+rah_e`3Tf$UC;H(u-A@4;OGg`+d9cnX+nm{#eom4grU-D1cy@-@;b79SU?_72Pq;{$Ruq zfH#zjD|FUdwv6xvUFoltx07KwbZHYRV95gq4V9IiQD0!Dht{CfQ7QleIANI`5a*G2 z5+q$L5PyCT@cNi&E_eV9%N_%yeh#I^VCd2-WeRslOvb^b9($z7G4qJzYZG`ZI2>Le zpPJX%jr=$C*27b$x1j31_{n(zAuO3R0mmE4k>kw7QQ|6p#t3nXqv|uGB>#+`gjk&8 zj?wcKSzL%K4MR_zN8ii~K5J%n-YUCp+cdXzgjtKm-WU9&QZoSol4s0$y{GeK58-%8 zlhxR#Uiv^fz;EETuC5rz_z8I5h4lN003|Rs^kH3H9p9jqYN_o zmKf&oP6Xl%JomHWj>5F&wn3bij+ykKSXV|JXapG8uOJ8emfadEhtF#Zz>&^TgKjKjdeQ6$L_OHP0?z*@uR0#$t}B<(4|)7*R0#G6Q&bVJ6#vb5{vgs4Bx= z?ltfPD6W$Do#q(47cj%LKO8bwxUb=c=CPpi3&Vw5IJL0=vF$(bLPqaB^fHpS61v<8 z+SvH7WjIO9`Si<9!DZ+X%|4M@t5a4DDB>(HIvBL$lzYOG;PmbqU*=Q zR)CN$y6X9j0g7QA_tpd0*V)b^L%nCYsn$#h_iCTvM_;k&18|Ov|IwdhLKNWXbS(rN zpa${xpcp@o`EL|}K5#utgA@)TU3Mq*3*syurA~BrUSu~Ti)1)|0QKVJqRH$UoY7A6 zspjd)_bZ@Z1z?8U>n{t9O4U9^PJ>wtL}IDd3t`BdG|WY`Tes-Ps(Yod;k zkd@)=ZgdckK@qz(9@FoBsfsJI`E_dU+0cK^y;Mz=MDlT7jodiwvK?@QL=nDWf6~J+3BnJAAHV zD1kEkh!JTZ66I`dY_4gd;Iq+)+biV>LKx&VqmRHRtCRD^bvIwAoI!vjHx(woITD_3MrUbitUCNY-bQ)0IN_QMM zg&i9IZr#cdwzi-$(~MslKdd(pvnV5a>~Rr?8@Mfa?P~G0q9fOC1aEp35x%o7J$c@U z+<^Zy5YHlAR9`6#pbabbU+I~Bb`+Am-@+MQpf*_`(fc?SK$HO48FJwS{;mD|~694zB|>h-szY`K62v#US2 z>-;@I_{zFGA`tOW(6P$*EMFCm*P51mZ_^GK4uCj0Q z4!w53#6B-Is@jz4{r36wCljOOPF7{jyA^k+P9++AB=>fv$h$+}vT<~a8qbGSzP+Dh zMw*c*8msPoOG!g21*RVaO>mEHFv7P1S)pN7&}Fb@)8>Wr2u!g|u`TH%OQ1+L21^l# zjKdWc=+v=T*wI-3U9ylD$SY*rQ*Uf`{hZshrg)&<*)Na`rIa$qc3p}jmf^@z2G$)P zN$*d~HzKi+1L{=>@gkyE$3*Ak-uCU2+l;Y;@NAx+1Q|~rah0EuWw66(A={X-T&)Q2+DT2J-!D&#D$Ayr*-`gGYiU1DI)n68y^oG_8hPUBe+lh-Rud9csa)oR@Ln zaVQBp)kXv8*D^+rCqG|&@S+}a9CwWP5Yltpq4Q<|^*JY#SilfHA<6ZTWng~FNJZzt zIQzd{K>*y>+wqF%`|YIS-IeQp5GOpP)^EPHX{ve5H-p#2K!hVeOSUZhB{>L_#v-NV z*cR!TI`GDL(OYR~^SK%~rv>VQk#XK29qb&{#>D11dA-dm587YoklT}F1M(^p9wl%j zh^@lV><%1loaUrnie|k@qLc=G^?eJ=BBau z%C9A}qMe+b9iKgi3!l{078*V5kY$&gv!u($TI5=JW(#5SJcrV3 zF09~LG8A+I13)5{Ag_2FiE_=z;Uk-I%Ry1^-vyH_jPr>ap)?S|+}ZHc#V5eCUIGOm zO#--r0Br{A=l?H*A{)9)_74=`zj1bvU^YKhAZp+#WNpkhL_!XOn&N2@&zarPRraVS zep!O77%#}kF@n!&ov#rzTO+)yoxJ!X!4IzyACrn%Ls@el=gx_E^|m!^yJBNC|NET& z*7k!8+6qvp)N|<3X25AzO21pE#Eg9(410CWpoSDX@(DB{>DdY zHCHD@JULh&>Vhf+ixsS9-)<^>vRv>Ns@?0UyhYQfk*}SVs4|eS;pfZA{SG-KMCb)G z{v~Q;+ZJVlP4bV#Z?71(g-$|2^*r=7`_;el#o!h3_1^+zBBju#iI)v;bfj4Zvq?8h z8}Bm5*f<{+r=pQ(l|0@mq7W_Aq%k8hQAOMW8_#NfPfp;-kMD-I}Xp6NTl zxm?#`c9!+cv@_gmmwwJK#$a!kc)&>-<6h7im_zC07-RC%>4U3$&-b+f#D5?VF?6|wfl`sO*z6jX1abm71QNPokdKS4KS z7Sc?>*tXjWOY-E@wy^9Rc_8<6>9MO1pj{XCV{l+$#pI#}obIizRZ(juUK3vd$vb=! z{0ck2=F^ayY>V$nXt@2l$yue^4PUSK5($D7FI5djKdKchh3u?2?N(KUGJjFE56vX- z473pyXyKE2XWrpoG+}5(hR7L5 z<8sCE!A+8+UP(J0YC+h&efU_eDb9z$t(N&A(u4}4Vrp>=iO(hJA{otuUdu!MVhz@E zG?LvU#e&40HCU&`l=!T|Rk3}K_|)Xr^o}#X&099l^wn_?KmwKzrEnT>|45VMn6RSe zB`hrWKNRzAC39mRCvmT^;vEf}twD_zJCsO<8%TJsTMlFHJAi zEge!Vrz0|MTn&+MVEpdPX~{vGe~Ye&{ZZ4t+}!%yk2%{9geLEOnd*(dLAxyw1iC1E6!cVT=F)B=V$gjr7s96>Krm7BEL9q*PC1tXxyc7(-jvn@5_^4 zVRBaP=rv&~F){1Ind_|ctrn+tPQl$CLU#|wQwFW7i0X3-4gt#2sdJy)wN8Oohm+!u zg9jM0a5d&A7(&}Tx(u&Aglr)@N*DglAhT@e<{!cT?3Ac9Fo;wdz7hMUfmF2?+cp%$ zt-X{o{t8%~+?uVoPD7jj@J^T%(hQFL0-vCB}-DGctRp}o0cAe zEI|t+=#P+`wL#wvIwn_dSuk%#!rq=o`nR6H@r)oRcNEdf4-6Gwxi#GDGh`-eeQV7x z5;R+OGEQr!3!SpqK1e&a*i_IcsrH(c+2j)}|G`$gF_nFoRFyEA6zt$7M}SzLo4O#X%*GO-W)m zKBND%A#<%S=;zkhl!omx7o9$iIad$u)EjsR;b&p%rTKbrj`a1vqC!09?i{qm^A*x= z`ZVel(N8NR1?)t%l$ly5a?=3v%Ja%j^em$Ak>m%jWcR@(rWLIt2l;d#CMfrJt9o>B zwP7w*hjHi{?&`SR^kpwKROB1&`r#17->KyDz6C`qwvjKch$^qPpp^;+sLy+0Glon% zXfun>HSmKa@;IB$&{)}659xuV!vz$}l5yw+URH$;n}A&Ooa>@|PICRR z+K$>`IZLBFqg(CjRZEdpNtLC`_P=Bf728Q(1a7Ap1MXQd6r3+fju(9R@-vgiJ7Z?N z9AFK(KuOs9PWhAODJuYU6!Rw)v;UIL>FGZx(FwG}gQxKnH0zTRO?1tL@6HH0e>vTuSH_YJXcy73HhcqV2jTZ6Nu)V|~W4;wgD))VqnuBs(8AhCjRlZLY`(!8EXbEJ#g1|(>u z`kOF77C7-+@wGiL$u~J9_#}kG!jkrYV~R71aL=widYK4e^~&Q4$G@eRJR`WyWT!oF z(9bBMPw9Plfn*`&S_FY4)XbNT`lvRot`GRanGjVBX^N2bGv_ZPd0!1fBBv2mlRgIx zl-QluqJ+#S+5d*qw37O*sK&BlqA%bq_X?rL2XRNn0`L$t%WzR#zFbjIT*^=k?=eGZ zQXKls_!lQHb=dRQZiE8<`nAn6^NK;s7~j&x_VO~V(Qj-FtF-zk@{V>%()2bQd)!wZ z%c-(k*lr)B4{_-Yq&DJ7U|cad4e^Tj4%YEji>w2YH~+~T)E&LQ;bG8#;+ z$(GefP#a4IFEPmAw+CA!DKqzZUtVaYz3OI6sLi(|nf%P)4!d+-WOks7j~-WM%ImBl zW%STzDa_+v>ipvLgeuM%-p=#OdkLO(+L51-Xa*rD!(l=f_=T!w$K>muEP-I;I1y;O zi5d2QFJ7<9D`sOKDe-GdN=-%taH+2V^7x?27N-c}LE{LvdH)i~II@Qq^G+HuPXG3E z*rtjYJMu#J?|L2RKHGyFtmWG4~9~)p>Q=Z?(`($K1X94>)Y(X(DrpZb|lVKQ`jGg z@(+Ga<;j;bn)(UzImLOMHWmJE{wzR+(-vOo>iw|qqTg$v<7^zWPch!IT^Y0DKpL;& z;?ltGXT_ica!X`5tCWAyPzL6JUU=cP{!v<9?i;cs82onuCQF zuXOVUPk^|>oc6n7DiArTkNknZx*Y$Uxh3|COV+nwtkemv8-G(s|_Yr2f`nj7#?g z_Ddxdj0EVM;H&Y5$Embldb4$4$VYk0A`5t~Y22?JEmc~gM2_Rav-tb8NOV@%rIJ^_75}_TZja;zqQT`T!aN_lsa3)TxgKLu{e5V7WX|DOZzKk=<~w zSW6%#SvTpTHSP#F+kWT>-|yFr!ed~_pbZwRUiqYP0rHO;v1*9x;rY1TygxipGIt~5 z(E$>o$w$FvD3^o-bK>RsM%Jr^F}{{ZOOI2w-G(Nu9El~ z%DxG_guf-(Gf}rXDRAPr6f>n^+hYr!^uE-b z$Si24u$9*EVAV_HGyXA%u)@|k+|`?3y|dkW8#@C)}w zUR^-rw)d{=HLai(#Y`3vM6Jr;ur20|%5L)~yd)#+y*P!t2XKaYErjQp&3ItpB8cWO z=hXM{DPCQU8>I8O8gM}muQ3rkJCPgi$LV2p!-{YK@f_=CyV=EbyI)F`e4czB1w zg9yx{yXa108vrOk?dIQ)%NHGw~9K#1ei%0QBpori}1NSoI zAYWbc;99j1+}>#=D9krApUvu@zv9Qv_j|9MdOv$BkIe92tikJj7iEq<(k!|o_S`%e z9kBcL!cUtNp`ZJ=`-J%yd_Cq1RDli}=x*GsvekXxhq{BHgw?JMHs@Y@w5zsugh5x!}wzQ%YV zl$?9_u`6tHasJXdp*pW=rE^75`_Dhk%YSjU8(&?s<$h}W&v+0Rx2hH1Lqk62#krVQ zyBfFN9ad%p;CCJ8@LzJ*jO;ak(r~Le5scVw9natO^PgLAyk=?eUtb{|U#y_}9+j2M z?P|X_XUE5D6_D31P9s_q^RXhSH!YBgYm$;2ThjN$+s=PclN}bvZ4Ge3e9J0iVz&71 zFMJXuhJbt~=zlJ{hn`t?ak{pX)X~1+pLzi@jc1^^DX6Z4!PM0Mes*T@QP2*2!co-p+)7NjYL?Odv#W`gu6Cb>0Eo!;2z92JL)Fuya8 z_3>c*!IL1&g{5upv$gjZ&jEG^xBJ>h!x@Y6``EV)jyWH~ooArV^U0z*>wZYT#Hp#6 zJ(QQyE$!Q2oHZohvjO=+7w89(e6k7H;B? zHnv$B$=N~P5;Vaa&u*wFB$yVKJ0N~{r|L-o;UlD^I_8!d)Po?kl{62M9T_Vf$(vCS z$6)0qQgP`dzGlEyg9{ns6t9EagxOg(F{9_q!}`2cURlu)pOt*Hwkki_D6(A2D%*%5MLkliH=ndEQ+I6 z)C+>8)XwatEu(VRy<@w2*d}8si2ky{TSgB-LVx1fU}>(pa=?4P(Ny|RXxZ#e0WtDs zVJgr+<3#BnJ{MY56sEjp*LHJJt@SuqF+2&QY*)uo64=u?TDY0P$W0{4Z+QD?a^QeA zcq>FChcBdhyubs!PiO5;j-T8G)tFDN5Y<>t+?B&U9|I9e_EF<{%q6rYJvnkHFqOz% z6&M}J)spT*fL*XebL?Jd4ju$5GYx-C=Xr50Ll9G3UQAV`twVFb<)dfx>K6#tgRX_T zxEG6mI1Rx56;8dK1z`lR&sScBQ9W>b(tAMX4IHcwcfn6^i^xnbUb_|UD@eH&aiL`@ zK2|iW<6&a`|Ks*?-O!|q5a|3l^0Jwi-_Kfmc1G-6*db9N@R?;WDaO~eGf#+Ca9xtk z3*+EV@wQwv@tbQq@c8vt9YBp#0-6^;$t-?utTillCu4UELY!lu7=sygnhPiPvxZCMn- zPE;QT@iL=ncmo>wP;b>&)MMEMSQFNK?uf~8Ifi-1j)U8b8ae%8Ih7(jtu;3+$K9e3 zIm>t|!Zy_+@!gs8H!bT6+J7BBDA;wm8PSvp$EXF6kkX{Ql$2yNOb8 zy|ej}bPe9z0uZIQfd7bqYkh_kWKmX2NtRBDG`vm9GqKY?%(7Yp`tcstUYWn%5 z*;KUZ#4pbO^xFk>;|~t?_A{{sk1dYdJO20O|IWkzE`tAIn}MD95&f<4F%y105)ly# zMY`0Wlpq432}m(W3q3%9kYqA*CveXDp5MLq+x>7q{9l&Iv^{$=YxZ8{dDi&I!pvB7 zqtbi+k6sKY8rjn5p;&!MFEYgw7!Ey}!Tzn3DQ|H9Pf7-w*VhTBB0B@lChY zv0YLVA5|i+`5lT}8~)rk_louJ`vRp?DzrpKqCUiiMV&+D!F8FBY#KghJ%3}r{(D1k^~Rb42_g{mmf!2)r)P8=oTN`eAeT7 z&1=&O4|Hr?g_#lYk<5TO@yX-%hn|YmiuNSMnMTUIVx4{v^<(#N*>avBB94REp}Rr) zIqF@q!l38`HYVJ5?yR`w-Yu%)ilw_1W~aW{uCv<)|1!u{Y!Z8TDY|z0ZAoj`l7EPj_Q~&w$EA_Thf;g&V#Opf&LNQT zqsEj^K#fWs`)cb!!mO~Ikk@g!D}rk?$FJo2BmK`nu-6UkdLI#<)s1k?6I{=&LCpK>rj^Wg#2tA&Xr8-U_hPkK zwY$x!my@2%w0TXu4z2G`$`dAz{Jm1V=#TuN-1P3NQ_^=fmW60yMMJ`qtM=qtO}*GA zmh*)otm5HP)GbKxdEH#E$z1$?P(#`8qwmBW&fAF}5>1WP9;auHj;p@Z(NH1PhGI5v zja1yK6LVEpU$;!?H2}VM^vt=ou2N-v{-R3pn4dt9*#e6NEj-_(FIaV4Z26oH=Xw6s zYV*iF0(9cW9eF}KBUF%UmPcP#_h*Pjh3b9|ozoHa8xRGKi?0{HASb&&Ou2=t`lZ?F z%DNZAyY5}H*k~2H_*&@JTK!|1-6C5;*R^am3nhI$<+a;h#BX3?d=2#&(q9<0Z~ciA zF6)I`jn9jl)W~|D?tX~ecK@VY?wKP`A6(zJ?PO@<@m+h<>-W4B`W4e5C-Nk%UU^uk zEvE0ZtXzM+$*}O_)QR_7Zr;C~ioKxKaJ;(J|MrnrkIalWwbqVpERfDR!Fsbero6E4 zuFUi?QYv1us^jp18;^Cb+=_}kbyeAB-GS=Ss|q%|t-^m^HJ#PP)arefoia45*{!q5 zFGNLWhk4c7<=a8BmC`v?pXTlYn}c@}LRf>C^+)gR{hBgxYGCVuZAUg}tgpR)J zt>0|FBW`E`Hl{FVb5u?oZce0B$jv31xR*~)DBQ_rrQoqKcg!u>eg zxaV=naR(X{&MA(_Uy8hGx|mvLng3zahmj7w3EK&W2^CFEO$|-+LP^cs9-%^?LgAbA zpR(^Oth=m=E$JUKKB{zBzh_vXKLp$Hc1EAhf5UFS=)x}8S+J+awFlp$FZ$p?+B$Qi z_v)Cmi)oHSkLz%H;T~t{Eg3DF#+??b7fcppO&`B|e!%)!j;?wBMdtfa(kgcXGML>BtFkUE2Fsw77@s~J_<)O3H>`7ze9cfw|J_I94{ zIp3x6g7Jlko0Fvz2PT?3vN{ak^?t2+VRc?sBcbGJz{7wr_SLvnrDmnp_fBaOryX`L zT6q?vkWQ4VXfm#}`AWZ3R?cAJ~`EJStgo;JLExb*r$ zYAbp7n+JCu}n~D;qE%dd^RLjnlnJm4pD68lW&c|~lze!TnpQ>NNdg#5^_mbWyeN#qO z=ZK8FbfmPDG>KR!nRw*RVmA&;)+x~)(VM#mfga)FLdWWZ{@A*usss_e2Q{M1<2<#tJKv)R_Y>#a7Ex`-Y!1V zv+TbZY3X^sD8&FbAFjO4(kDYY@f@jvbXO-jHa@OMae6!YF{YMbLQnTR$Jpt$R%#9P zKKRY|o5vHPOZ1rQ1M|99QQ7B7jfF4!ZG&x{Yz?nve>nl{(?1&Mw$z*SKB-@qS8}$5 z%d8J@4KP;dc`E(=rE6XL4Kufd9+Sv)nf8izIi%kzn-Zp<%FlnFuM3h{PNRMNd?6^q z-(tYd!gki<^k7uAM&XTfH;S6`5({s2wtpM=hPW}5zc$})^hL9+4*jcrbKf*GHej52 zc{GuVF(BiP*Wa56?+Dl3L^$Mg@UrE?-3x7R-qoItlu!*`aH#hytld+aH<)Nro^Z?I zF>)u;-EK7R)=(Z&;oDQpx#V*{&Y=%Us6r!LZ(0I@M&5@#)q9Th+|FvN^;xTao9W`x zyV0GmzG)IW&1~$*F@@RJ`zIGIyD&<)L%pS;rN?tq(+u8}d#BabU6Mjyx_-$%XY>0$ z@^`QHJX25YP1=}WgXDCNPpzG8S%{)X#r-|9c@>onA3xp_@izV%qo}{#FNGV*Gip)` zb4V{kG2*9Y-p6F2EQc;w=2N_=4VMe7F7#Gt`!YuGq1-)_(i24t=NY7-z!s$~fcN3) zfoP*Y5tp~*i*@l_*hBB+qvRD9&+sxizaL~ih^ZT{TS~iXZ1<`>F$Nf3ZlAf)KH7jS zrC7;k$YO%Zp_6|eRX%HbW|(or-0MN!u9A^>_a2@U8!8;44~MkzIpw z!Ar7co8`ZzITJ^SXkWG96M+|(I)+_M6L8izKQGn@`T(z$eV#LgHJ>A0CV1TSU;-2} z0NtEU?(SuuSb77E%v*DE?vU@```aY?{UFodi9}D6-{a&@!PH>Fj8R)e2EsXLAO0Y8 zi(4{ovYb%H3*hlCRz{&`RYC+uS`P?^B$NrhRuHZVp`V`E|C8Oa5Oh{NbOox)gr;KtKfE+6I68Ukm-ydb8YX z;eXae3gBY`$1RP{o`si|SRW@R51fnVZH+?-P4JElUT17^0s^}f_#eTu7x&M?{dc?m zWpmrc^t>L{(_QWAbEk4)rFK~D@IKT=IXO84pX)dDE}lI7_v!GK;Xaq!x4ra`NIyS6 zH9rkCPakKbx~{G+^6(Mlkt2uT7Kd;F9=EUhAM(J-uXgfJKPR1VSRYrf+peA-a{PX; zUi0+5ZMbhA|3d%yTm79*{;vPMk_YbZ+k$Tp$v=WrS38XSPv7vV2K>Ex7OwtIw`@D=P(0?!auTyRQd#Z-|;iLaP^1710?_6|D}snMX&6IHI3S6fc(!>Lv6Hp@00{TNNLxT=6}IUc$o43gnQsG zrPU?8zJAjk7oReUfWR?Xp6|M|q- zI#H~#AU3LR!}yCeZ5wMg)HT&hN>K(*pYYmqLF4Az?f3L^H~1X(?(otO9g@60^+5dT z*LB-}6fL~3YH-WzbpLM z`uqR;_dgB%PXqraX+U~?P~|0ZceZEWXBWE&&EAfZ*R~}0(TnR)*At(XR7{ybp(T=` zqDNN`OwXbZ>k0aXJ(qM1?9tJ=LHI>05SeVhky#8L+Xp>^Dkhz4)0S}(5?zm-<}v_t zsg?r`=mvD7?rd6Tp;#}+hFze*ohP$tt`gl5?&t8-f)4;SceKVO`_rSJHEpGm?H)Xt zB`x(GX;TcFuxo7`H=Zd1>%jdSO=zVzmin+sfae_DMm}?sOZLk_^EqRw7OltRTH0=G zmK&nTxiQ&ygugk+*y?F3VKK+5`r565KR1`LtTFwy)Qz$frJJ8^4{urmx`RzKzC^9b zu)^Vy((lkHA%j?$jqgrD`E@?$it~^x*;RWObboyiF7Vy%D*uz)WY>eQcKk{aGz-|S zKv9o4PAnakuFpUN`DDD)XEnL5XOj=xeiRy&G!%m~gKOfi>`y7!tKJ9=6C%;Iq(SN* zi4Wt*NVIXL5;zn5t^4fvwXVpx?TVb(T$0wX^ehur3&3!-EzeDvCr9MG2tH*$k1p#U z!!XIUq!P2wF@v7$2=FRvSA_W?=pdvDr%wlN9CJfCr8u2`>3-dsJx`n$b3fJlS{3|U zxA(C8+2@-ru?Z7nq>+?PWmnxU-faE)GOkK?t<;!w4h9C2Pn)#dvMj&gh zMkmdDr6;~-?OL^z&~?kzcORV?__?p@MAV4^2f2_ee1*~x@u0#v(RGi{+fLMP+aEh} zPclt99cNMOZpag{k}^=-2=!;@k+IV*QkhbZ?oJ}%ad8OTLHL1gATQP1fC0mCqrGz2 z=0m7avAAaq=pX3Z(0RtZCu@ciF|M+J7$N;5WeG>gZ^DTk5f_WylXXn+7unV;;>>3K z(O)FCTVHfejw8hXEi;aJ0JHwXqpc&fGKY|Ge;ZH8ySpK#EyXg9kN^v!vb`{r7W+Pd zPzt1)gw^R$efmWIq=eS_hU{P!?J3S?KeM|Y*bwW~)N?+Kv zIXl>%Lvr>yz3){d-dPT74At&Fc18YzgoX(xQ^jQb6#DIEU+!@07DBA<>^iCSxAsq5 zyK$D}>!e&U77>@~K{Dw1BX&gO_Z8vL=#vhOs^j_Ds_7EE*dra&&y4kfng_|TZ6z17fnUE%J)J(7)Su~~10Ag!(7Zn+UcUn(i(H*COqeHY{LWnZ z93DGJ6u=t3VdNkV9iTrw7ay*Hv8K@ z>mkUvgwz(~EFq@RJ%j>y#Ar-wgQ-N9J^)X}m4i5AW~FrM>9{nN?{# zdjE18SjO}Fr(-k)jBqFg)@ z6RbwDeMb-;Stp^s!&$vg;Ty)jCh}sV>hyN~hN+yz2)x(0pDGib`9embD|WI`v%qAS zP;;tWskX5Vm7B&l^Pk1kcri|3#Lj2XSJ{QVoZbFC8zjGHsL|BpmvrNgz;^H}>Pvyt z4?s-i02F38X0)I&Td@7`Q*(z(tm-sQ)d^ID!th?M+VO0J)p<}Puq9&5dB9ci%6?L5 z5XGj4ZqopmgCg94HjkAb0*EcW7Hg$ewVPGJH^Pp|EuiMc!7fs4>1%qw%_zY}osF0} zj(9@~%}5S;5;QR{gLNfgm6>RGcbG|8ZX@*h+B~{D40RGMY_2aT&+ZsmRmLa*-Yt@F z2m2DbS_|Ko2>xO4x|BOYr{_QX@QX^v$E5##yVG??pz6opp(|n>ao%Qw=`~TqmI(|= z6RxxgTbYCKdI;+sb$re3n1plEZ@O;BH31ZQrshv`5tbUAPu;c~>CfzWrKqPZ zX7KO`?+<$VYES&4iNa9%yJ_W|=wC%ioILWBXHRv(*2#o(?!;{`1Fi;fzijpV~aBte4oG2oD^5x2P-?`h8|2op_){`>d^TPed2PF3g_|EXW zRBrHxjwPihFC~gZei`=%y!+Q>pL#piH*N|H8^ch{@xL%j+SAAFbe*-AZ1)YV^>nmj zo}`b4idYI+4$#n6HX5%C&Cv`utl5g@)&@kA_blU%KFz^6$%DPm(yo{PtUp z(=}&_Sy4fYRr9ZCe0;tC*Tk+)gVvIOf#Y#2*ZqG{J*5}%99s&*@_4r-CwD~t3aH$4c~lL<{T7yb{Vl0%aghDRnL_-EqT7Iel-HZ z_-vRL#fkMUH_eM#bZ@Y4Aa7B9|C}JJbpZ_Mu5Q%${A@mF9(n6Z&ndR^ie#{Fu<1|2 z{6OQ*7XBRf5CPmF-zm*1p_`EJl{RqlbHqz$tl~7ehfoOJgmif){+aZ}&-%cYo&OX0(pUXi&aGv{hV3@TuV{GNs&D^s z$?E(c{kl@@u!{bo+@@A-_M{~JvQzT*N^GY7>B>Ayu{?47Gjfb~_N7kU|26!ddj2;k z{x=o=XDR+?AOC;!3bFXWPvpJgLJS!}35AhN99H#OuzI7WgpRw@h-apqEgURHmK$*X z7&RN|PA=>vCgG}#9u(zGCN-grril zvNGKsqs~-fpClNQefXEIzfSmtxbsHz>h|vSFkWA%JbjLTwD?j!`dIfFX=Uf+%1+GW z|9-&#Ck=3SbRwv`VZf_gevQ`=J=Y1n-5tH1Tfc@4n~SJ);> zap|>;tA5YrCB=P|R|Y!z#5iK7;ysXXoe-wR&p4DuZ7< zU|0?l6uvaDM;TIrst$Demlau;rA8a>B-o!VlQA_I+gc2Gg4$4Eriiua3PPt0X0z*h zv|=W-VF-~7<3wcV$}IC1V+(i(`3Ee-MSgE;P@Qo$yR)a0cvG9x1LQoMx^r~ywQ=7H zutm+4wbxt$xH6W@My1?(bw1LRpfMoAUypgn{e)C%hX-mHa6_3dTE~Q}V>Ng(pOFov zDc0Ibv&})Cvs2Gli**`u7g#+Xi}RvF#j=>+{TxT{B?PzJ-H!C$2+1IBDRA{a3lM!x z3&Abt=h1#V_DvNwZBR_>0??12m_R-zm$}Cgq}7Xop{h5)P`&2D&Jm2rfluf|P*j$H+ZN?-#e`44*`FJiHt)}Gw(ki`XQo3QLPBbAa$g9} z9*iKhV$PG_ATM|!%mhLl!9^v$$C7Q#rog?y zfFUdoKaL=3HmMEOF6^w^=KTtv?+Evj%D*VT+jeUUBs`#$Ai0n61aah-D2aA!Ns}5^ z__x8mL=;{7VE7#F_B`fz1&{^|sk0-NjHDksZV=MrSo`Rc0C!0jJW}r$F4B1SG3?%h zCcUV-3-lAGOK?neS)a|mbOXhlEyGC(+w!O-sC7Klb}F5DG2#|_0T}q2Q*C9io1Rm* z{4<_0xDA}>J!yVjpQkTd`ROP44b64q@#lkf=+HZ*74UPZ)&hRiwqQk0_!5Hqd&a)< zb#%yI+?=6I0fQbw=r`~9LAEiMxgjqwXoBICp!WcllDcdM ztL+lVRvx9L*q!HUdt}b-@N{kb>D+)z=}(g-M5}wP-ewJ^WPzcx$TF0FomxrnT^{~9 z6yz_Vx2~rn!zgv;fGtJHv*A{grIfDr(*~Uk{8;<=US{eT3#E+LI!9W2tFpv_$^J9f z7r)@Z1nP|%qhm~#`4BnUs-d#(G66;>7+bZY^yA?Xv;y;0L~nXpx?Z` z!MQxv2v7UY5f)~KiYSAwNbm1Vm@?mej@J?KnnoY0Ok;%zJlI)*SaV=W?S4s%L)Gm0 zlO>kD`_uEYEl=0!G4CE$qFs+KTBuyWL9wh!rdJ5NV*1;k@4X)t^YAogWPc%*1j;z) zib61wlmLB)b`hdB)Y9g~#9L$=$TQcjZrN~pghWYYYjVYM+l%<1_^J>kjqF1gp48IH zY$T1U-oxO%6aF^n*U!#zGp7AxJuZR1!;-^0V^Mj)q}r}J@xupUh>b7&@lz*ure;0w zp20b6L~h}#D)@++v~Cf25%CKgs#>QSwRfNc9D0~vi?MF@kRL&CD~FFcQNpzI0v)7!@0#A&kK$?sdFfv%PmV0r$Y|H#)DedTo>LZfZEMahci1 z`L+EdW4#~-(7(t!`^h`?!nNVJ{j5C(?h-w>d!)E`LfgzqxEABj^saBSa_4p_AC)*9 zltXW$28}^JWnYjk6ZByGX+|Pw!l}Kdj;gk*z!$Lr6pmB9YIJ7fUl9hpqN4YsjO=*YnGDIk?8 zf}`*cc@uxqF@crc`~&aLNaU8o?=B=BuD6UiWz_#PxJT_=uhe9w zbY8ujXY#g-5{s0HE@ey`(a1v4ci5Vzmy$JUMK-uz669e*$B(g}W4BCOkaUb#F?tYW4Dtd%5SalI)?BRukWb_p31c{G_OBA($lij$NZutxsXzj*na>0hq zhA2hET`(G-Gl{^+xkB@5hGcLk6|mIxMP&ptO6Ff~9dJ5@j0jmCJa6x%7hiZ?u%y1Z zf9rhgCKE~_PK7B)b}7cL0m~5uy4aFs=;I<^c1#8+krpiYOlP)DNhlsgI^J; z9V!4X6XXte^<~nbNCHRZ2S8H#@!;eAFISE9lVUj$%egHkA zPdEs5Z%u-!Q<%fV@UorYI4%+9{3M;bBvr|OdmdX5A5M3xi3Njv&B*n$ljahMbyOi?PtI-e zhE|c*lt@a*u>F!<57p-Se!8!;Pr`!61Jrdk{k&`&wL(REQ6K8W-`(PCnbMwvYFLOM z!(e9ay*rpc93d&SPTv(ivwtXV5^J}scrKcwIcH8VvV|>;i&!nf%3?0U-T}Jj?zNM^ z=Q~%WetVRdT_J$0u42~AGYm0@J*&(N5E>DOX>V`Aw1yGv&2tYujBX$km){^-VcWtN z=}BS2)u8m1Xovb%71HaBP_GFJ<15TEPzl<9k8gqy?6q!TCNzHd=m0xQF~EuKM<*pi zdE5BI%>#08J{dp*6Tf_2dsSO(8a-z15ez<%9pA$>vMQlWSeuX7?YmOt|HE}p<=(^E zw*&_7z1SpP`J&g{PIl8(hrbr~PQK~==(p=AJ_bYCS2kh1?(Ro0069@+j;7XBSl&h2 zEhbMIv$!2lB?--|fTjqnWJdMM7|J4d(lTBVMxc2Dn+#w;;uMaxHf}1pA3Y@BZ`n?{ zn@VisL76I({=JFI)8H#zOf{$vk;%`d5R(Q|8eC7_BpE&x(tNNJdJJjMU;4VAg02SE zCCroN$@4T8#I|D-*yzeKo>=P#o>-AUA>;-*gPmXwkM^p%7~ark1?6XFjiGOCw~j(i zLp>0`1uJzLJ%_O;T?Uu|i+_rEz;;w{3dRL z-ZC2llDEqyQs;krK)nxTl1f2gr+Ea7{(OgL4)crjl4Yg5flY zHcyn2nr)1Deic9J+@TMR0~t(`A#9)0n8b)mLKm11^K@`v>L$CmcbZ(kmiK!G%Oslw z442&vUPznV1K{gSfu(>hZz4XJZck4Yy|7LG4XnFZb7}CbSoI5Axiv~rv0B4#TDz@L zr$u!=DuqQ;f|u=QZ?Eb2X+l%r)q6d;k}5J^In$maJDd@`J@*ni2-Ge8V5~aRPVJ+o zKn~-yjtoL|h+l14>^I1Uf^>xjl6lUAm7C}q!wu_t&6D-l4cjko7_7yOV0! zd|$)S#yI=G!Qm8?i^lI$c#EhtKf$rayTD1us<0fO_cT?gud6OfqVsqrQ1-WQ+ndO2 zVifrui)=j4%kc(uS?I>8ptzaT*)Ww4G<;VNhASi_6qKsJbT1@P$4ldQwVdgdtr=Td zb2iuMQ(WG=k(m~H46BM{x1Z*Ay0;G_3?6dqk2ae^njAX$=77D<>qT1^eU<{Rd4y+> z0lLBQB1NzfM}}sppdCb62PQ#HFwOKia**aBQVTUnY6*$p71^o2=kRq_6-^_}BbZv6 zaPd5q$tD-Y!2x(2gl4R`DNPRv!ejI_RBuB}+G)^$Uh?JVNqqUqrYN7h4d#BmGSkhb zhMuBhjGJrDeZ|D;-v(Kubm}yj=-a+BIm``4|7i3QWOLuH&J=zMC#(L3*Y(6Q@)Vq) z-DtLlH?FEIi%*{{D=C0p1QsMbL?Xi!%iO0M?7CO_1| zcH{uko(SRLp&+*0*1HH!D|^o(shXiMOUR-^*;6@mLh=%gOT%XcUnIPy6&mO^Pg5;< zo=YSixo)|O zKaa%4`uuEXURF0NI?F{=SrsIVqo=S@z)CFSX?2nWyCQzNh9gGvss3UJHGh(MmTC6G z&?la7&zSAU6=T_COR#JUrm;=+o-3s}5-Nkf(`0|eTBzFGlyD>Y;@$7d5wa|WQJMIJ z1(h69x*?^W0&Oea%aMsNyB_z97&ULFsTU#e`V>n(Wbg4kyV6fORIf1+wM@Icd4A8^ z2OEi{36T_bM`Y4b%D1w&G*fk)9`z$BclKTIFgrDL!@O060xA6B-Lt&ktPbCCc5R}1 zUpvkK!Y-r{15F6aE4GF@vx#;993~Wp99d8HQ3iJs93mD8Ca;X^6UgKU7xIYAek)9J-5^iFD5gX2}CXs&f=zK5|(rr z^MEkEE-H&t$Cff+{hlGmN>Gd0Km_Ye@WM$6ae=pE211f@4+@?_+d}G0$Ub|L>r4XG z^yqK@vcfva`WM))QGMX+$Z3T}?&wmiDt@X{sxvAkGMa#erYoj_G1lnxyf|b!A(3N6 z4FdhL2(|Dm3=EK9paDiU1QY3j31BhoU{pX^w)M*7GSp%slOg^DgYQqwTLSh-7LKDlY4a)frO94etgL+s2|JE#jeY8J*gvJ*t#OpG5g1(Zw zj|GoA9}GhH2V>X{)95NG(o!2Iz>&20fkqy6Q~+{tN04i7v~*wtgCWlT4wA5-pn=ZM zW57I)wqS$tee>odS)C~Hye#J^-m3BLm$|Dx!$$C3_qMU;#J_YZJ zWoC1HE!3n(%1Q2H)AyLcIX{VN*MEA?u%`nz@cIHd)flNC;O_`HDdBy{8LA14)IgYzmJKWp4L5_<3JSckmdHtp0cN zA!oOs6f2;g=L!Q_e6fbfam9cMl` zz##QaDe#bN`IBITr%_i4KtaK196^p^f5j=~T<_dOD)O?pK*5;ln!^`G*GIjN-1*?B zs9AO1?aZOr@G-v_-D2j~b}w~~vc{sNu?SAxsv_PJ9r;M>t?WeO)n0bTakdtmC-Aa3 zbS60tBF{$@7qlc!^Z(x1lSS(N0P}h^eheM z8}9xO9_8%6@yfjQU5r7{;o*C#boCZWR>@*)hF7B>c3-WV_A>tjnIQJ_XJtnw|mknr58C7P~@lAAST( zg%MM59EW4LEfh~9kHy}c;B#BFJG?!j@Lgkc+a%Z^_s@6I2_8HY>8{dV#;M9_)(0B* zt{H$}0^_vleE`W5j$k5kS}9+eXARq-dMcQQ#!l%b=8E+O^e&Tl)05kiQU@XCC>#a@ zWK?6DuN9yI^5@d>TD6CHKrzrI&9ZO&oCB|sdDPxy7*yf|urN51W680Fp~ij?n=go) znrHB$)-mLEU2FfRf-0ykRAxX7C>KTu{<=dtwPD<3IDsJZL^^fO1cKrDh4Zoo*afPAsdKzQDr}BM}1CkwPvP_^h*$8LxU=9ziDTG*M`!l41y&z zydmU`u;6CtHm{>c{nwq45HwgnbdMrA>~49}KPK06Qt$h-Gr*I)PtF+rO?)|B;CInzjTB==Ytk#f&~Me;Ieh3XJ$U z^%uw;W%H+E8rkXjfWG@A9L{n}1^Lr6!S_#(64cFGi-G~C&#lgJgd{m#9-p(2qg_kB zvZ*I*ZkPPk>F!R-m-sOx4D5d1!mB zTo0Kf!CPc*TFD|w@W-ZTsRgD1n#qqf$dglEA4bo{auVnruJ{) zE|Uqmj0S}JMP>#ts867IVUb7du4U)IY&yLqr`bGvO}Y8Yqq4~ZHP`kW^}X(3P;azH z**Chq)cqXA@YG6Bej+ z@>`PbyJlMwCm{YTHJuayuM^;nPSyv6bQ_@?%D6#*(_iu;jiU|Hp@;P%e-P=#-w7`w zCQ|_w;8Y;88mf}#_F^^N)~J4w8%((4;|jHMe!vkcoUhUP#TpAOKnyI<0<()hf9I)| z2ZK4AtEu8u_ob7Ak~whUx+9D+?0{##IStd7>z6B5O?cM$reH1DB1+ zi%s{fqa{Flb3`u`yTijr@$1l$lzQm;Ia$zh|K<%5A1++ckqn*Ay8E%WDCuCzN$pf#J$aOkIR|lr!3B&nQ~_b}XbQ&Wzc<+SFzKOor`aDgeB<6zPm=~nj?h5unykq>2<&R{^ol{LGrh&Lb$rXmIhIiFGS)~eWHs}{Zx1e7j^Wj#0eE(Gc_^3q(?FRJSW@_VI5?h2do5blS zsw>(AlsxG0qtS^`r_6R!JTi@k(3Itw7oLM?x^aru+r}xsEnK`KefT$8S18Ur`tX*s zVX0YrU5?gY-Cv;YGO=gZ7l+GA^T`q0t~EX`#xH0zhleF`{xC7S21z2Rw;dOC7!9Op z_wKW-pgaD=pA4Ql)p7y7#BNn5VR(&9wFPE#JE0r1Oz!6dX8w~SQw6NgXkg_^)6bcAWvq`P~V_cBA$#WU^~ zE%Y>ud};99KtD8-uZDacJs3psjM#9JlLhmy2O8pGTX$6$uILv#$|o?KgOp+5d5TF! z!N3c@+}@gttb{a~VM`=Rici01wtL>xD%&N?HN81a7BfJN^0XOjhh=ojQMC`xv=$`c zQPKn^%z37f0+Tt9%FKBntB^|Ny|H9xapu}5V$q=DZ;}^&rbOqkK(ybU+N0+-hoioi z0=g+p!gZgv>Sth;t$BT6b@e*Ev!f@vUnyQ*R552~P2bH79@z~Qagc^kkjNx6hl3x@ zFn|Zq-Fx5@HoQ@xF zs=I$`&`&v{eCe1)4aXB6PxWB0lGI|kzy+cRQoP@vn5~tg?B@hC-k2FbTjJ_nIRwAH zl7%*)nhhL%w4@1QZeb#!k;;-hXbNN3a#}efxd_xg=CMBWK&uB2odn&qYtNoX!_)=e zG3WP&pz>hgSbgX^Jiff26J%^GR90w=R&eMQlYp;nEOD-Y`Sj|?WXkUXVCZ4V2ts5R zAKa;n8>C*{v}`gMf$>Q_TGaeS=uRz7M*FjPS~FS?dNKJHz}iV`{{`;d7HA8M1HzaK zd_Ebe1k+_fGeGYbH`g6)qrcOkm#kSWj&n?{0r5MzA|hkVS_}(M_G*8|P@e%u@SJZp zHOM0=FTOe7lEvZ zpfL3}pNwX~=#D2SvF0&4P&T0p_gcYDjHd{?%v)LCoMW{JK$%mW_%%-%kgt*@J~7`KKng z!C;7m(0Zsx_#Nk)-yGQ2b$WyeI0MOOCh=FYm=t;B6i~>trZ(yk zf&q3}<#0(QRG9wJ90YgM9xXXI27-TVUs8_;G_mt()H=cyZ81Y~Q7tfWM3I&9yu=*R z0+ux7C+Q2-%-`<`1#4a)G+q`kqsq@j*H(>0J`lTV5KE2?6%*4{n|+lB#$LgaI7-iP z9_sHZCNOk*6enGf=5nW~D-}SSw^v`y_+Mj|`jE&595gAflIihRNoOE1OdjSIPk9b1>-`c@36)RK9wgNpgm0UgX*X9J!tL_} zf3RMSkOILh?*2)!-5ncf98J#iy=uqC?tMYJuaTW5J`K`Ej8sQQyxR0N;Sg18aQ5(H z*V_dO%k^04J&%|zMa_~qS$CcHz8ABlr*65B&3RHxrnrOLYT~VyNy32 z`q{3yTnP(ySB$WKqpxsRp(Plw96L{~hDjuTnb1GN@b+#>YfSA6^iL5%9EAG3ZM?%& z?(n-(D0K&KdnUH3)yHO4Y5Y#30&Zp9yH!u7JQEV9Px-Eys z-CT31o{1=m8Kh4?KAN^qb{V_hQSPlEXPd1~x!1XXPu}&`R@fGcxQv>yF~18QKidKD z>5Yku7*(bY-O6xxG9wg4(P04URR;;A;L+P^CX1xN;9*8P8HHvI<{K=rt$78hlnF9} z{gO&ADrc}^Un4E9!>;_D4&s(GAlFIHLNtx;Rz&^{xw82nIGcu7HqeFYp?(syb+QXk zffAv$p|E-}%vxB1=FNtEMqIvYq4x!s^18flz)UacQvhtrR%MkytDx|QCAx8YFJap4 zoe1+*MaZX>wseKa2nAk8m+l`o zNxMZW;(S~qMTg$=F{89@Jwo>(N0+De`4Sn>?MfO#@jf+2ETq}-#s*5?l1j$W8MItW zC=+uR`~V|)Z@>T|eL?@uMABmMPX^BJ2!eIeE|0i$*&GUe{^F{0S0!PtU^BmL#V_*% z4y6c*9Mp#?@@lJja+w31j*v$XWulEXb8!F$txtcs2z#flFYtRqeDHut?yid3SxbTg z6*Fn)3OH%eoPmRIK1cx*$i)D5bR*vp!3j-ZPb*yh6;F8Ocln>!Ir+8Xa-q_p*`X<9#`d{&{yAdWggUq5`8pQ(%xq zqK*)Nfj>Qq)V`e zTF4l;%0_nI>|TmR1VvJGZ3<3Vj2fVvisSsjz6Rd7HH(nERh7=9Imh5QPc9&Q&)W9D zbuAA{-~_vCj8@|z!PaG)P>D0#1q>H3|4IEqZ$rK#27n6@geA&BogiiZF@kJ9Xh+cZ zV3VHd_Jg)VB=>Xg7mJ5N`a@2w5X^XcuxaB#IN!6;uEkhYAFs31EmBS$WW*T3dP@U7 z!AdCu61$gQFfsei@BzU)mf-iBI`u)8F>p_?TV7QhUwQe!vu^mUTOJGf@HO88XC}^j z!aa`m`oLK=Jg&F=*DR0FYU)_e3EQJnOwdfPCsHQxH8sKNG{!4B33~O-h+WKqIdYzO zWKJtF>h2-LGsqh`$t(jasJ@l%^@mbMH_uDr%u+zHlr~zzz(uz8 zYSD`is~q-2W&Q*5-TKF_gjG~AkHoi7Y=w0X7;yAq_dc#nH}4jGD^n52bEU?KbKX;z z6u8C@D&3|LC2lNC7i`yNQG6puICGrD>!V|v5t1U~Zll~{&xGY;(EJsI@Z2^35){!F zQ%-%KnvJ9`1+_||PamS{y696gKW*2gT=ctY;g`f2I39B|I1dh<%4EP!J7Y1OA{#e1UiQ*UM4T-&8LQr&#+3-IZiH1AF=r6H`sKF;Lj`ne_M^kx}AlW*Dgy0#` zi)f|~>8U%(uF}2Ek}{KAO~2F$8xBy!c4N0l08?Arkn}a7deiW!Y-C?>Lt*pnXB7YF z&;U8EW^nX%MnCsYZpiD11*z+r7wH)bV8E_Lc?zI+gW{RFU00SDzv zgxtLnM&W*~u+@o>Qx3nDB%Ux;`5KtyFcpCZbk81YIum()wIGn?Z?{tH!7upWzxfI$ z)l53yYi09b6xbT(>1kXRVS$tkr&Qntc=)3K&Kr}-TQ{Lbn3O~cA%liKMYrT3b(^AS zOt1?O)AiZ=u#|3sD?gG?16=zF&4ES1uYeoDDwSo3QjtkQ)*)r7P^pw{DoV1&WH)n^N{gNB zOcE*~`)-o#%h+Wd``CvWW6XBWb0+uw`##UV-{$=|W1Doba?1?fr zp!m0r@AU8J7Ws?#n&>)Ai_kXG4$0);6f!`t!7=0^^U@)u%jx z!C$~=k%4MSgvD?^4zT`?#7<(D5D_r~pM1^PX7&5TT4NztvkGbr$Er=wLP} zvX)h*OOfD5J<;g-5cPu(uFd&ANxa005nbyosq+P3%Z$nKYXH1J|$@XL4aGn^=Nf=8J7^TpfT`-j% zUlA2nvjr>Q?}=kc=pha0zQ-uA79MQ{!*_FN;ip4)r=Zn8@em1%S$1X|FmHU?c(}*y zm+FHS_2ZDs!gW>r!@uellB1tu7!37|NGH!A=@CnRlP*f7W*VVQz~_k*nxFiH!_yMueiIt+spr|L}8)1uQs#J ziC=hsI&|#^4}z`>^J($St^M$?D*&It-1AAq4X}po8x1;x*QRqo)9<$G5z)NHE0w3h+WQQ513|gQ(tyWdktbHAn`+UZructPkT>$Cjf50$uY~m~t8@Mgv`Y zp8!juvm8JlLH=XyH&5Qe{H6H4VB!)xT(nLk9C`RK%S~ieEoz@mz!x2u{GhnOQ2p7+ zj&JDdd{Rl5F*^Z=k9P@9wxACfZ|8Aq3d1E`#F#6rQ6EGU9Bc$UGeCJK*G-$cM;Uh$ z?2QR`tZ3ke#D_5HrWYSKd5mqUD_afWpbWy@CYUQxkSj@h)W;fV-yrGR5(uqK0Kw{% zN{%yKtq@M)@Nf?n;?MM}jnLxbbwrw%lneSEiFv2f|X;{ZgS8r9B`Sk+}J~BCNrp>wk2_uGVlSIgCk_7m<@t7_< zWN5dAP;Ez110m5`wrt>=_Y|vaVenM2Mmp(FusZF8+Ld8x>+ZZ;lsyC;6{u zeh8NfkXHE#SP9q;zW>k$(&X9B3@cSe2bzXio96St#Y9DmP&GxE8k=EZAV0oAxie}PEW@yHc z{UtVV_ShYXto?;a@R3-N2?-?5??}<`niGMAgjeuxHWGE&)-%<`Y1*ofx``t7S(q;* zgvNK4on&=E@X(!fmBUSg^+}ybN;v5Fr-p1wIGZnV1rKx+u81;>*x|S-)c`^|bfQFnR-$T{-Q*6hK-@zK1yp&N%-jy2Di}=A8Qn z=3Ua^6ojWgSbqCkUmwz+KZoOq%fJ6iNHLf+<=%H-=juxKTGzU9`1?qtI)Ad}X*bG5 z^I?PT2oCbZVRK^N)*;(z&U1zR1Q9z+^nK0`4O$Zq2jU?NPd*0epsYm+v+0JU5>5c()FFz9v(KEW#`{SXZu2h7ju0aX1vUaC zADgVNc=-NPrdn97GXWuD^i!MAiCw5|)Eev_Wgkog?bUV0!z|%bA4Ue2e%0L{bm)dc5ou3Z4g~be(8)|HE~|& zEh?ROuGx%%{=Un1;>rYRAU|Z4Fi28dMgZAFy%72gG)f{vVQzzPCi%)k4m`V+H$;gn zk)l~LT470S2D7_Xt5V=$E9@Sv58LvF&IC;&jCY~v*YS=k&CG=q&b>GMYi)0~RJ|V? zK51uv0!~}~#EoD4aeLzFzpaoTkhgR>OdThcni7=|a3|0RyBBJb26=nuaDcDWd# z)TfGdAr`0ACkVGlQK2i4*j+@0bf8H1hi5&Q#OA^oC{F-tDGX6jMB%?o`MOL}S{8P- zushaJW?QVzVIWHw6<z#sRoajN#MYj~7k1rHqfuh$f`gZ9J_m2~^{Vdaug zDh#fG@3v=)Y(yeVdcy<<8a7!x$=4!Ga72f|0MmIru>MFiTy$4g+@f%uT&e^qNS9AB zt6<@V&{^1Ol2SRH4DANRUOdCY2*ScW@q?G|rsKR?32#YEF#Y_|05P%|1F?eI3QWK3Eb_M_ z5U*AM!{viSF7TlVU>yZ60g0`s?F>olQm0xaR+y87KkHCP~=$^dOvcE z>?}p2S2~fw#8hCo2{VmifMjeo1;r(@!D@)g@<=p{kEhSW9#^?{`4|)d6PeLt&T|y~ zS>pY_0gfr@IMnnP6CpDQWM3yHnk}&K>90NdTi}9TZI`}r0hXNphkuOmi@VC`6WW=O zlkijmZ&5$q@jc>Sk6;X0hp;wZu0P)obKzoBLaa7k3h=KAs26oanYX~>d|L0;J>b3Q ziC_!R`pCJcq>X1$zV(o03P~j5h8H>70}UFGjzM$2b2K$1k&h`--wx~Fm6=2=(HJov zSyY*0M66*XW%mJt>3G{$VVd9-hvc}aCQ&Yxk^iYsxu|&k< zUAsoSBr3IDUk~uzzS<(cVvt8tO(l41@Ald`Vy--yU_YxD?30g9agiH{uYVhADsBCx z3A6Ksz>JU(U9Gkd^A%CaD4sQ~m2cgG-%=cGiANmXR^lc%FekEv#mz=95p+>^v;<~M zrv`aEvhOs*%1*LK6S^{^=gg~sDVr-Z1N3%QNlyYwdz8GLApGCvV}CIx%Agvr7_c}% z_V4nD_z&JY`e78}QO1U$PFY3$hI? z8No6I=D3=W2Od}Zf>;9c@b)6y%J*=kMNq7! zXE2Pn41X)~oshq*FKHe4ddzc00TGSKAh90=szz!j<&amL=OZ}Z@bVeBI>HXFdI*C; z8%Sb#$u;;`;YrK&{dI?!OFiUtXDrBu0n31u_lRRFcevyvQb`Pw%T}X_zK=fNStw9G zfo6k=&i&{${|O_wmkew)i(A*L{gQe|(1UcURxbG8TPt3_=4~y#V-9-K3>P7N z-R+jtgc`|7S1@+dWOyZQnh#^If&RXey~|`O3F&_{Ur^E&r3?WYC zJ!KE~zC&S~8;&V0`N~bSZ)wlQO(hYLXpMS;*;p-FZKIUbkH~#)=$*u|_sgm0w|b%9 z5U(QC(PGxcYst@b3vL;|48&Z&+|^CAnDtPnRryC^vc4i>F{}#HT4OFX9p^diS2UY0 zAiDHba#K~FGyJ)TE&_E5!~6~#tE=4nSYz&B^*2&UC_U-)sCIMCYye}B)lIixmDJU# z11yj7UqIbPAHO7+nL@*GA_mKG$%Ly>QQw76LhO7_28`zLv?N(W(5Q0`Y^Rom)Iz_Y z9zw+PS@X_llkXYqR&?QF59zfw96G^WtAytx|L&p?;;nk=JAwjO&~K+HJiPoWm;Oq5 z7*3nWngA(EpB*BM(jE-`!YdQPW%JZRJMh=Q5^~S)n?0K^&Zusb%vz6dd7*4SQ1O~8 zv^)cA#iuq7{t9Fo;g9<1aDi;!=S44bKtDcf(}j-<+_iqauEDR0&k&Q$zxDg z$l_OgrGW{`w?6~-?57D~vQ{+%vH(YM!IcIXIF{TDS>^YG*5%n*nfmO-t;E4STN{zr z&xu{!AhPcnT5Q2?Whrd(n2cJ`<|J5q zGfDPT=r0LQD~BlyUO>bPT3uPaOf(r^$CS@;NkZ|ka^A7ZB*x=W;X1iWk2rtg(hIR` z#?+ntIJgex-(G18D5dn`_LaXB+yW|?0>LUtShHcvB(u0E%=}?gp!Dho*grpp=&B6- zck|v15*jgaUx2LR8(jS|T;r>Tt3|Da61N2h z2RNG(JX=9B_e32xC8PwVzCv-!1Fw@-*p_a!_|A~v5@;C=v(5U@MoAb%eim`0|4eW3 z&5rW*GxhNw2-;YTtY#m0Y9-=!xvEIx;UVIyowYSPy6Q(Ht~98x+8u)JrX1Z~Yt|Ib zsOf5yZ=~hOm6K$yLS2G66Aq2*&uqo+aZ94`KXzF0AE*gAd?GB_2r>S}p99@4(-nFZS%)z&$#q0DZ eY6PAo$)haHp4y+hw`w4lw24lW(lY*FhUd#bU#4yeib5Kjz|V+P{g`m^6{SSSc*=x+Z~==D|bX@BT3A*z+YJQ013pR*8EXxl4#%Mnh;-FJc+|GC$V}2 z0FX&0acY$-m-~9r0Qc~*UIu|^y^v2QtyU#F3qyUTXe_-?sm_+f7MsJAJr`D)ZS~*j zTYIhFRydK`fdKmr;ow(I<@G`cZp(n*zhaaBL#M!L1d@7zc5!x5l2<&(i&%w-@hiIu zc?iE@{4^(rrbm0-ickY!dUonVBFY_nr|}F<1~Ft}BFf|c{R3@K`kDu#@4t8Ez49un z+ga104HqQE+64exlio-1rq^d50^$qy_&>P*>NP`7~`_&$1R=FXRaK-uryv=>P;hccbp4%`gwBwi z+~E-K6USz$?VGMsk^g*WeMreS9{vUhsx(~tMhchT<2|x0V!>G&fio0iZWn<|LqRmC z9l?|YCPKIq#xNT4!!eX_X&;B)i*__v26g!MeM)4|XP$CpaGRgf#{C_G%`a4~=Dl11 z2152ZmFT?!2V4f$vYE@j43$lWebJtTPUrbN74O2u=9CR4&ZfLLP_3u?j#xUqoi%_u z#~;8U-k1I>En?J~C+&M1>k?x=&z(dF?~bot+HtTp2F@~x>yAk>yF>ZL@LOS?W+4%H z24cp=d9m~pX!60I##UhC=+@9xJVqHO9a4HpKXAPfi2%_>HdJjcjhBe7B8v7F!rWXL zhkg8ZLU?AZORV_<*JG@HuN4cdd3}itGjQvN_;5zrh`X*#y zcH}%tQ!+9C)(Eeth6e(@!kEvm+D`021}edZo;2p2tEDjhtO7P z+kXxnxLRV~x3a@{4Y9T0{-^5?PI{bV4-{4LThzss<-u(wlVHbDg$sEAzvaT{ zH6D^&rtOgrn_+ZtvVg~Ra8$s3@%JAdo?zl|8j|uIyenMzFQ+m;yX^~aQpyYynCtY) z5IDX~h!>(H_F3~lpFR-N^s)7OP>@f5NFlU8NfXfId%^?XY~8KYc+y7rM;M%Y$}8gT zjTOmTf5l@J?JE!qoZLBv@&(NabaQAd8em34MJNUt9E4aI1o*2khbi%k(nbg)MI@1c zBvQ&0yWIi@n5hh`%14ifx>!w!5AVyJV`ST@_1@Ol>xzToa0AU{v*{ITuXUi>(ryL1 zWRvec>@b1Wp_iyh=~GH|h2ga9_nXJvhPrXee#c`5rIFQz$ire-ix(BQoCj77y#ik; zT_hksl+voKZ+#(ZG9#N))VcLHF4)IwPNw5_>1=Y5sYH_P*}7pWO4!=+&qT0 zOn`wp#(2B1zLFqMe}4+H(TD^{4X2eaw(5ok^}#Ys{KOG8BhJtlF3IqZhP{UH?Zu+1 ze~RJu;^>1$aQTtigQi8Xr`aCUyLFZ29wFDtuEQ_-oQ)G6|C2d3<;*7VI*?=<4@L1* zz%YeA3M-b3oC+jdm0mbCuR=vLzfbn|yNprb&K$f$_T@rp%egy;g+IXA9eit>tapxY z*BMGdVV)gOmML}%7CQT;#df%H@be+wKi^1j?#L2;>VDG+<}k1)m_jHs)>f4M+Sq#{ zI7#3{6TlsWr5z9#y|x1wg@&yr2!G^oZRjmM{B{mSphe^Y%rebN0C zi_X#W(xsdh=oX{;fukE1siRek)YU}gr6l`jF7?~o&YDkD}(dCo7YOG zU_cw5H{L)QMGuw5+~hKQJ_OrA4FnJH?O5SUgm`4ypGayue15YxDLt5Bh!buZlUl1yMN& z&Shj*g7fABgm+6pM8Yzi#4Q6DLeL5x?1Va#=Fa?N<^!IpT>g+(W9QTs6K_M&6}y|} zbg8C0HWD@^X@S_t)|!~F=;{l)+}61m45nIV_XAnDJx>U<76O&QZ7{f*&{R6WN{4o*0Uh!h4sLm5D6Bq-_~arr7GVPBB=dUw zkn>OQP{q?ir@`SCY4{APfX6AHofTWAqP<)Xd&CW>*My-n#V{zHdS) z*~&9$MfVFiI>seF-RAce$K1wU*YzGw2di(xn7-2|B0>!sJg5t|LjaNnZT=%l_6i#9 zz7Ju_T6h(ybKma|7DNko+Cg5IGo6HPutU19_5> z65;k%6#@}1$ic|f`cl#a4)@O%si&jwUVhx_98Vpj8FPd6Rx83s%6sDvHEs!Je`?*a zRo3bY(!7mWaiX??^esKwSoo7O)(ZV{yltE_YpV|BZrG~8?)DcM7nKIAE0Pg?2Eor^ z@t5AB1UL9n5tY-#549p8DiWGRtptE=`14S<*m(zJ@6Y0v0*!_qW#c)c=4JAucU;1$ z4Zy1dXL>fbEYIMlTo2CXU0oh%TtaEba2@UE^H^N_k?OlIjTn8e=}8f8v4xQouplgwz1Z)cnuedVsFDZ0bIv}TQ)@T zT2R5L@>J;=$`AGUCkYRufWf1@t;{=0m<{V}i!v>6Jrq;!edSd&*>{sIOH*P$d(2CO zK^LG4!)@h&kebbrSe(w_&@s~)drWb@X1-v3lnhY@fZ5yhU($kt?kKr=r; z;{wnq3bwbjL<)!HjsUkkHy>MYVOH2*S={$&SEln}v9r7oxl@?{v=F}k3=x~hvqDp` z{*4RRX0H!-DOElxcvb??O=J*9GrePAV18}(niE{%_l00OmS!cm%(vlc=*f+uVvN}< z%a`DGNzB|yqRSxxl+`^apv`Yks{g@rxyi3;Vu!Qn0egh!dfv?FF;uv%)-a%8V3!E8 zS1`u2ec#eu0=ZQStYtJS6%9xKYY1o@VlpZR=iSB^-~Q>TMx|WxiMI@R|EXmQX({Hx zcmi0GX;SyqD~|i94ScRFX=LIENDn<-D0d9s<`@b7RYk<3>!EoZ#v_bL(kSN%_6FX; z1#XGeEv_e^qaK6)x=d+=C)`lZ1%p0bM-t9TENbC_GfNV}{|rC_5U+UcPsP;YQ67Hw zQ+iM;VUoliD}J5=tItZj{-L&J^3+pGHN!&h0B6BPlcdRj%~-Gv++=D7RwV!661a6I zBNGzf-*WsqY=B$hiVe;;5g0GWwg$spa%|U&qIuw{2iV4=)zUL3lB9>g1*CU?#`ZpWBU`w}PkTq=oOnD0DS zsv{kvw3~~o^9inQP)Sn-1*5h&K`5-NVjmq~oIrv!pvk zx?>gI&a=@WvNpn^oR1qH43qLK2^1tZm9T<=6CD&xszB6@u0=0@&V00I+t;<09q>xY z1)l!6f{&OqHAwGsI)1a(@K?gpu@(Hv(zzLwwkQaD{3)G|d5YFYI)eiP5IPTdDE2%q z4F>Kc4#+?Q0&hd6%cQ4?iNN35YMzJ~2157nqNM-&ehm|vJ?FJlp*c=Am(001S05dG z%e6=;wIws{;{Wu?9mvUQbLEQsAz0R$^9TPL7}4j0)GYngx_q6X=iF zR=z?O;3ek0z(O{+00jv_V`vUZ*_jzXKp$Ed^oO{gJ2z0?t8iJ zWL}OFA~@O8>NalJB(zSs4^0IOHP)AE^8*}#b(Z3%s*DwzN(T?=hB*j8wgGu zPheDh7@V;G=!NJi@pPeX+$Fxz1s6+Nt<|KP@F=;%dWk9%cKesok}|!*wSxgFpCw#b zVUJq|x+xqJ0{tsGMQhkcTVS)mU8rG~=ODjz>kRZf2$DoC3!;`OTrL4(K+y3pBW@$8I8ZhzJ*F<5ZLUWW9^_1b09DoQMO zKK6Iuu}SpNdtGo<^Pa<7P2j$OarQ*0kzir4UYr59?)qgwMhWxj$;z|Of71PnXZKnN zO`;P4BfQteE|atpUl8Znu}%qD7tCvR5A}`S7Xr`vJ%V9d%*6MA=M#W(*$Hr7xI7+k zOIynb80u}vF*}GVQ+9?_zi~-h4amf5xi1F+%@1oB?^fGfh=_v5U=0|YWh#SQJTn$r zQO1ocgYA#>Ay&_iU`haGtNVCO(NFzdX}q{Y9&HbZs~!0N|?dE`$8E^REk$ZSwGC%xRw^O1iRTv8^@bM>M!? zU6h2SLz`f}d?&Q8ngYcGG-uEh#m<99fgJ7}KOVchTKdfYgMJJC)xzlVBk~GH^wYg>V&0<5ldFpD&>S+sQTp9W?sQVXe!$4! zDo^RGbMG26+B``3S|iFsyb)EkF3+VslHf(CPWMNTpLNjHb~F}WRmjTpQZDmzQRSC~ zhI3{)88iZxn-KN7iJazQc3PPpf2;6x_84(%!%W`GRuY27e6QP0h5>nAV}*SVe;X;F z0s|)w4A8fVuS5gSFObo^+7+jRzorD?bVOr3C}f_)e^C{B5OV2vvEbGF&%mNB?W^cN zmv{;XG6T(Ko%h-SI;=bbxk1jppzJb()^eS@K;RYuqh#D78LTsGhwm3f`RF3)vB?+c zr=T&Cz8*(D;opOBEDJ*n*+o-!fh5ACK$4JcC01U9)bOZWz3~=mTw>yj0;LP()jFxs zPEK76a%-ZMjhUcmM6#{A%}h)pI|*_f&wjf>fch#M`GWn5zeQ+!ai#cNq~C%<$Lbb^ zs8X6q2LZlwEbzQ*A)Ux9R-W};#tQ}Qemt9_NtdklU9sETJYI30T+5n=Y$=8xPZPem zlDt@1tedIE-wbY z?-Gl+wnM6^iV`c~!Vy}>p060t-B?pCBo@UP@8)iF>r{h^+c)N;+*ULDtiJDb?m&fo zYeib_2ztD0|H=eDQQ$|>qo%0SYOV}_sGCG0Y?M&ZyQFMbFzd4XZZfK4e%>JkFXU}r z*!}So{s}EvJ$jtlSy;Vfy@Iydx{TQd)ueNU0X$F%78^@3!IZLc3amU-FC-K21dA&M zI4A~)&KQO`V9lmF_#KErMgZWr_9(-c0I<2{9y))&5nr)dzxZ6l;@&7jpBgegkO*9+ zB;p&$Q3UR;(M(Ie7E(k(&Ljnb%^(3n;wxv1VB!FxvQ6iH*XL>Do4dXd1(s(cYAJXe zw8}2xoo~IohIfTQ=>ZDq-`95VEimfmyD8ChX~BlB@v-j9IB11UUgm%eKAoeQK+kx{ z6o)di7~Ig%U>R-U+7L42QYWfBbxb+#Rm|hP(T6T(uG#nRuR$wZf*->aveul(vJXTX zTF#vUngUIexLk}%C;KtZ@ITcQ*}R!&%(Ro0P51ggqIyDuW!QrDBBL1-ng)UE}UbE zn-e!`^wo;x$B3PsKFRb`qSjw9BRr9N5dTuR00`S<)B9CT=MNQtOeebBfmZ?!HUqW{2xlISqt;~n1n+x4TJ5=d5vz3bGP zS`FmIocnb{D3ps>ToZ=W@6KXs$!LuA5}nL8_R?Jgn>0Fzc;>)oJUpLEY*P%{!78&U z$Q8UbK*1m2;|;bl@=qpB>(*TO-ZJd3zf<5_$RNX*_zA`~09@kzL?s&o;KbK$Oj;2N zVADKkRwG2x3LzH3&h8d&3H>480q&MAbw;DdE_HtTA&0MDNVmf>MZVyH-*8A7gYV~D&L|3qo}c>cZ;9Wz zq*fIvqWE&x!`x}DFHxs$Mzs@HN9142O6w)=3>^xnzhVToXL3_8=b`EDx#;rwa2vl$ zql+!kaXA?0O6C+wgPed#>bKc{EZtG=0IhMdCNpp{BE!q`{%(4j?jx`^%yGh89XFF7 zc)#${Lx&vq{_0stI{IduS~Exe-tlZOwfm??3@XH(Tl1M4JwB`{u%Tv+&1sq=l%xq@ zMhjm1a+x5RjS{Nn9Kc8sNv_N_<~TWIxZsNf3gB|+w4%~@rRbVukj1U0AaKyg>=HX* zaW4+?UZVj2+~(~!SkKMnrYvq6+|OZF<53)Dig$d6dCgb>3Rt5Bpn#{2@VCW1AZL__ z5MWR!lNRkh(NAJ{yB(g!Z|QFrzrFAM_gS$L2TWCaxjwtu)pbCW{Uu7`xBDz^Cj}qi z1<7u|U)p|yY@Ln+qvqs@$w%w%=yBwsLGfL!iete8iaG)3q2hEBj=g{RmdKIzjw7_PoN8W_R(xaM4gPwBjCleZdj zx=*L5lK|f`Pba)L;YUr3!_PW_o9uLCA8)7Y#;v?F{5Toowc+JdirLS9&i_8_kM`F$ z_wD{8h>Cx8Ft2)pYPcyrPH?B_?#EcZuD9D&Zmv8`Sq%}xhS^LbduoNGL^A~|jrP}$ zMEIU5cbn^ZPXG(D(Gh*R++#W?V|RppM(S!8bL@&ORxBn~%#@GFIeprU?J{7Y-rYSx4nYC43VBAm3BVd$x{*Boeriim5 zN?ta<>!`<07C6Vw=DChF<^ZUdJ+-SE59f0)dzR~$2&gp@f&(rvoC!dYQ(z*auCewCcL_uz}Vk5~f%E zI6`jVo4j`X(OHoQ!yp8`G->d<$MER2Du&-DuaiqS`HxaMEmaY+j}(uahbJ5B8l-Ei z6xcuC?VbD1aJFVbW#h$Zr2B>0&t}bpsW(AJP;RE8yj*xDX!D(&NMa@maciA9BtTs` zS~y~&=KJ^0r9%n*XTxUuWZ!P4@9a3F{(0(=tKN*Ue<{M~``L>Go zI|FXlaRZ}iUo-=J!DCvLV4V4O>C1CzV{GFcZA&lYzx z1&_pgw5g{kJ;c}k}si$d7)e9NEX zbwvE;Zu&(gQp)5&UYRRAN{d+$M=_; zD*@*R5$#W~%Y)yft^_SeYJk9s9Jnib~aPexfwM@26xfVzc|Rk@)hLoMeAlsKKm@z^M=B z*jIL)I+B4k5CG=yh(iTKHbNb&ukAW%QPm;gQja72o;H?|xQo5z)0dE}OZzql2i6bk zoQ0MEFU({5sFJ^Ye8IlG`c4~??#}iEhRQ&xyN>TPD4G$SMYfs;WKoIdo?LhW>UK?! zgg9DEglZ=4?(T0sx}Yl^qzo1HI72&<`Hqce2Ry>GuEA#L@2q=|tT8(Wg}5BcwRv^l z?5bu8;_W7g&CM7YVGv)L?lOJLiwydF?YajQxa*dJ%?tcm@;czQ6XX{tK-Sko6+ZF1 z7ZVN-QNToZMEXnk)$%9Bm;ZG`{^|C#<|Q(c7n=Ni$eyyS!V~_Utw^p8<2s&^A$B>i zcs^>47L5W}G{&zoX%7PcTqQdLpysM3VDI5i#cDa({oENp-qqz6-xLF?XFrXj2&)YP zQvScIEur5>fN32Bt24TCB^8JpW7ta69#K3Rd0;$qZBBK0L(&+5KKoA0aV^y5$Ci^~ zWx>m@Lz3S4CY#jZJL|Ic37jk9Gp9;0v$@G8jIgiV6anM2bh8N^%!Mo~{~iH>Zwu!V zQdUeOG%qh6EdGk!v_a~c{f5!)HVtk3>d(KKDQ!HI=rxaQ-bFfNU-A>zfj*%>fRM+dn`R-ir+2s z^pCLK14tpqukI<;!PzJ@oM}*DwpFV?(>-N8?&J_t8w~^i&@#L3MW_8}!vxQZR6=sa zTKyh9?$)EnI#;Inu@IeG#5}r?OuiW3>GUk&N+tB4zk!IDpCr`Mv&X1Y{kw`2&!MIn z0)HKrPn}NoTcz}&>EhsjL&wwQ?ztX+D9w$>&H>uY_07+-0_--Q2k>RrxYirt;P-Eo zLJf~0Xy=yAaN{1<>`Z()S`X1N;WQ}!+B)>Zr_qEUdrGUqgkW?8xIj%Vw% zl@7!6H(*Rx+nlI>%_=y_SqcTNJyG5TC%# z4OEnz%;uYK|0RCW+@-JU=<;3BEtWNajJr8C?$x}$mCL|N*i0ZQfZxCv+r2c2Urpv% zZ&K;IUX~RWrZI2N9qWundtS38jEcP?T=h-;qWL&ZZ%9SYDp-FM`kr|R?2 z&gYGfBxdvpMrXA?ilv8W8f>73Am?S|wO9?Oq_9TfOuZJLy*ax+Zz~qJiGt3|_(j3Dq$c+^-d>9|BnZADPb{;!O}@T1NlmdQezJ`d zZLZyp#!Gy-*=A|uS|fE}BG*9k%jDaSfmu_j$sapdoW7;b{`;DM{Ih}9M11K)_!SVN zL}@-7w&liE#iPFst>X&y)mgut1@WgZ+|KFgFl|;k8+b*}vG&rEDpw)+^t*YJURHjx zw}@9?N5Z*a!~Vb~oYDa6or<1wj?1%$8BW&YU-q?{zFXRL&2QWGJ^hN0kE9&@SpP}S z(DU@B`~UR#8E(sHghflL=1G&!(;rRQeT4f!PLq^B8}pY{vWeq^=+=6h#)|7aAKpkV>^sx9Q$7KaA`js-r^_~(QoA1 z7i5FEtL>h9$MaA6{!LFyqw@*korfpL*==x){0fd)yj-TgkLboZmQL38TPT-$PfbqM zy+8EiQauAMzskTgFi2Z^!%z^5nUPUVBpuv`1E(TPY_|w>ICP#C=%HS7fyYrA51#=X}4~M`8SSE3#nQI_#tDg3b~s2e?H#uabm}3 zz+K@4bY14{hN1m(2HT{>me9e{3jS&FN1#BV_chnShPQSeFRO>3wlel&nR9>c!zN-H zsGPTF)9^c8xhCtkD{muie|KLF$Bt#&ja$f*`W%YdwTmJ~6a}3e9{8_O8r}&AkO}~% zb>OGUsi^NtcqQKzi6_s*nd!v1F9!g*!?R}5%uoF2)YWYI73rE_F}n^u;&{2VsJ`gq z=aN5f?NFZ>{YpA15Lyq5Hnl&WR_k-Xzsa}1+ZSH$+i(z@xIcg@Kqzc@`@C|k&w(8f zB71WngM0QkwAOQIF1cm*Hgnoh-`=O! zS5#nC==T}Pn4LB9ov+*%`nd~vt*W$#edQWWRkA^y%r%Nl!Fa}Y%OUlf*DfZ(m{y@a zSQB9!g!phIT`zufxSz@CwrQm9*d~!nepha9I9sdjzilv}?Z60?AFbL2k9C9;KXeTo zZ3;0u#f%hFl=A7g`<U{Opb?I?A!keZd=QYioP$fO=W1azgu~6yoV#$qzu> zZ7{V(j=v$val!qJnp)>&t@@n(;-mNIv)#vLMkI`y|Chu1|CyJOVqHI*ms~cZZeqel zX7nR7nd-D}*X6Spj!Q%i?K@i>dvWtvWQ2g?a^pow_>M9vIgQ6uHa_219hmqgr#;6~ zSjoZD#nt0cZ2g5n#n*p!ZTu7@e|hM3dC^!FrdSlp^z-$ce)~jidat$7>2O2%{wx;b z)DYR#(drEQmWtKbqpv37cdxda%Yv5j^Y2jTW*{9+Pc_d*08N+UMsiiZ29Ae}c!`Sl z!;PXlv#TaO8f^~me{xJDpLNW~ zE~-h*Lp`QJ>g7b&PS2x@oQ4?boL1R+zYTlm zzZcu_#m=Opt~osT@fKQ)luU|Wvwt#k!YQG0LRv;;{#QWU$C|~ zneY$J^Cv*|wPnh*b^)+r59MBOvRe$44@uFLr9O`Eo&DJ^WXylXx-0N{@5q;3Kf)Ux zZ8R%gkq|xqq_!=r#UZMYV{f4}Tj~2LMX6AHCPP5La*b+?UVQ?^8SgHtOO^3@;`?Nm z#R(~KIR9H3DJaQo&?2ZGH$Wd8xP*4!=0Zz4H z=41G?wlO=~O{Io>7xLz+ny+H4B0@h(z3k2~t*fus4^Z?7`d^#g{~6iy?R)DH1|i%M zK|X^`^S)ZtjgH-hW!p2-44=o{BRkCTchxj&s!2CL%KcTpw3HXYZIR{A{rKgML;rjF z0gU0!f-&OTye#XyoQ?7@TVOL{ZE|xUdROhz^9t_-rSck%@)gIiiqwct3lm$Gm$c*g z-exOW;|r(mhID3e^W-uKtLOoJxcK9=jaNmpxsdqN4O;v<`}l%2bHjV99$GwS1tt^S z_p4sd?bCd`;V#W>DfIah=+BFZ03{YR1Ti787M{UX5YW%1A}gQW+4R}*+|qS+Hn$#C zs)!J_;df|tG}5f8Ip15VpVzHaC$}~5?d1+_t9(q!z(&Up$7k-P&A&X8*szUTfpuxD zHTgW%|Nqyg!2|m|V&`+qGWQzT;P!F--q?f-=A; z<2KXxn?(A%Hry=A8`$dabvAgHmj7%?({A;5^S!HWnasY^xKTT&g7Vt0lW1vk4PEoX zIhCqx$17Va^`!%P1km>F7Wv0}kWhW7-;dKp=b1wLw*Pbe;n52bh)BO%+qdNxuu2^A z1~z&tD8vSyQ8USXtA8;jHa6JASmU&}kITdVE8E}Z;yrI~)x|PO-#BCDy zwhm?5Y<>~RY+sR!xmJ75BUM(S)gkcOg@pUko48d~RWf-#=28B4554|!>rB^SH6z50 z!Gb4i`ETX*@JfnGBYUe2JNPz-$m_F~#F|T7Fx7i+)9i_$-g|Q!x;DtmiGNYq))lHXxnYBm;}zGXFp~*& z$Bo&Edq%q7Zdh5?wq*Cd)jjPUT!43|@UCI4i`CNGp@?|Y(T zK>GM`O{1}&d>4+Ib{bu+ms_}@uRcP!z3)OETl=_JsBft9+vXGRf`paj&X9xuw?Wtc z?EEu)(g;2Q^(C#VhDMi+osEwROc?PGbr~Mz>)Uc{gBpAOoz`B(h1=IK?+tb;Kmq~+ z=-BTAxgzzS?#w%!?Ke8oX0+{y?bTOz>>t!0fHFN@XC|)YWUSdYe9AuW_@wsayTjRV zp}NSBDriAVjsgl`XZ8&VbC7XFR*tjpdS2{jULGg2CZNcvQ9r~xoNz9b;KqIrX z$t&+Sop@e*C{^&>%^H5+-Tz319`4*2nxK_gwg2a|+!VqpGrL4W0P#W^x_tEB&Vdf% zqcWs$;EbQbZoG>1Cd+@+nb*;(9nn_rbkPU*?P+atG}P48Q0R;+U)B71|64R9JZy3N z(1aC#$$++kQoO2^ROIHD4tbKlt}ed(f#b3c9r=~t@PEY)9DbgYlk=y*-Xp>0*7irj#VAz9(mRth!nV z^C`3BbQ+qN-btA1F41LHIi(xrMg=_e&e#9=BzY}0lW&R7^y5(zlgu52DBG+2x-8Yh zp$jX>p?(x~Gvf+EqgG;~TQ0B%(Kq?=dT0dtNv(wF%|0z7)uqqrzc<%P#kX9TH4(7w z^IjUMGIrftB(0Zn>DYD&y+4(kZ~S`ht`ig6`rE%*{~lx0zWr%w>0`|bt+L9mb*q8@ zE8gnv-k1i2Dgn;DQi_U-K6r+fAy%%P-76uu^NsuBOrz+Yvq`ZZAMV>XHKlKK?GHw+ zvE;WJ*b!}d%PR~BH;86ImT@o}i*b-RqDP1V@ zuw7CGP=smy3eSf>}cW2(6{mkt0Plm}b!#vM@pL3n-T<1D$I6M3O!xC_&N>HxL z;hod5%d!b>jHu@%1ju*{ZLBiu8axKp`73RTDnxS?vgpJ#=YR)l#E+WG%xMd~9}g2h zi?lA&Lb(Nwvnq+M^j3w_JPf5O7TG7@FDV1f#lqAsKCi+O{$Gpz7B!Z?bs4uD!!Qj~~6 zwPLY}rU=*u^kp*oTwPl}!@C<^ns)td;PQbopMl+_j!g@#zpDM(NN$nP865?xB}+iM zqH*+NTaSusy&o&99fPw0^Nm}^K{s?P_h2`|IJ3kmFeP_=*M?PCFUr{_A^zI9 z`id1c$*l!~A!7_Q={)djG?@}p91>UuYtOnLO?F+<9Yu!HP!1T!dwJ1*+TN+k{W~aM z;2A>veJ@Pmc^%Y>C!Ru8rpqd1`Y5nf8^j6K9MJ4s=}Vy$V)&m`y#IgjT|Az08UT*! z*_T{#4Ir|I#MH5VOy(rKzAw%CKpF};B-6v|Zx<2|C()8P1S-ceUCc319mw}q;9rJk zyctPJ7JEl;AJA+nG)bs>|3!+|o5)NsWkjC@k%5D1x}2*AO5A@7#(}isu@6F`rLV>g zR9JEQ;k=x_AK;x$D>-K)!fU!PE78tL_<3pW8AnroHW6Q5{Dc0t<@$bj6r8`y&5t}> zVY<)V54cMy#ge3oFFGm!B?0DBNl3F96Ej z6u0c~kitEVR&TFYYc&Sjy{>|!C4=oxsXZe}hz>Z^gH$4!zeNouL^(Xx2&+`}so+Cn z6tQ!Aw{cobvhJ|SQbm)2q{hXjG6RrlL4=I|>FK*?0KIpr*IP6C7LY>-@5RP~&r8`- zx(!)}z9w|~SU!*V2oCD|YX5kI7P2--OMm!{pg89IX9erT&x@|Mv6k(Tm(1QQ571b% zo*(4Uui(ru$D@wCD~+6E0ZBU$!&&=_hJf=@aMMA7YT?H~eGCmfBY~Ip7skg{65sJr0lAvFNGt36 zDWq`}YZ|6JxAyk{Gt28`Y9wmO=pa_JbaL};7;m=s5Sss-F&=5P$A%lqgnzW2!eB6+ zK#`~$XaasJsIoBwRu!IaeS?tw+#Me8_nVWwcoT2Q`XpFW4u#h7#ygF#Pr+k;h@=jdLZxf3Il2<$IY!5w%1KUNx6clni6IHeh0}2*5 zgoZpW-4Pm>4@$<4K3fzrsOSidb`2`O01jvIL`{}L>7I8u1TtA1&b}2#$z*5y^S4u#lzOS3}gE2Od0PWnAlA$;+FLOF%{TG zWId2GBnd(FmKxGL_`mU3Z-D$ZQ<4IIk5M;pVZTfeJtP55UVZr+&G`e9p*jOMHg|H0 zAh!5lUXoK#_&bSt+Powt9KRhxL!*^ZxtRB3T|-+4(|r#+_LGJus@|(qQH!~XiVjl* zs=V%Mywoto&c%JwauB5JzJFam+;sROHthE!o$N-tK05DpjvlXE8A29;AX@U!bt1r^=q{$`_RWTSzW(4plKaZm#nfWs^ z(fxhJO8n(u*_q`A2S*zx%UfXebLp+exld7ip!6 z`+x5(d`-*r0dAZ6R;I%5$#5d8=%aAF31dO{d5pVNv|Ri7NRAD29Q53-$CmQdRV>o| zT^f3j`i~ZAZrRgUjq-e zGvV^Ft{tw+<9u_ABNzz?$cUI8J4RGqdPKF@)*lO)Oeot*XzT!r4=nd!VCJ(YpVV%~ z#6ha{C&)9m-o{uCi%b$dtb=NHjEuND%r!Qwokjm|R9wpPBp_K%wvQ$dAApF^(V^a- zCNJV-gZxS*A!&bbfb3RMy}Uh_8abOjySBSKMghu_RNpFJ%#D49^3cdTj5k@#tMCoN z&_ow9N?H`#GpXMWBz~R0F6!@h_lbPKX0lksC+Jxs-vnCxQSIJc^?O|_ikBQ3u_*UV z#)e6_<>7LMT={35jTH%Q(W*w3bd9k5IJcvf8Zxqm&rVF@kAJ?&OM_kzx7}6*e;nni zxy>gQ3%}hReYyGNeNnv5K}fWJA70%)aglD65KZ?lI{(Rh1_kZSuz~Ysc#5?HZ1Vt( zRxWaEe>pJhz|9nMH=B^qE)HyCYg_vJ&Bpp`D#$p|OKxgNPHLbaIMe8Vo}T8jRpv*H zoWdI$ucv`i>iKZZemkI--Ie<9Qfmy<0}4ATD~xCqb65%`M; z3lz+-e>{xEg;o#4J8}xD-%NZ9wW}K{vcH6JocU0!4JSe)7a}BEc&>f#ksieGO%yo} z(KaP$AlSNp3YZZvw10Zjnt65kP{T5`5ZX z*Wn8&D4O^G!>DK~x17P4!R&pf+DgsT2!r?qnxlU)iQ1l=Pg(< z5_jzd*cC90nff~Vt!n_&606Z^-7GfT!NI{UfVn{@U}121+MRLPt>55t^fFuap9I|0 z@1Q*=?@Rj6x2{&^PP9j8d`SUnhWyP$bpQ{F28(e&vZA>nwt3U!l~X2oLl(bCaKg_I*@?crb|&>%Lxe|96q zj)UiEip%83Nu+GXBoN3eINiB)m~a~$SqNEA3=AN`5v!DyDA1X7TQlf-zgVo91}64tC52?xJ+(aZd_Lv~kI# zQV_9=QgfXEY5R$|f!lohy_Bq+brr}{04K*-rI->9_8Rf<@ZgdJ?hEOo*4X8bz{42}BBZ3b!_!x@21h}ZF{tsivTn9pJH*z#$-|4ic zT%T&Wn9p6)uO~-A14fU%e$g0xl@2c0tvgFUZ5?Z*mWI+t&k%E4%#FBjWpw=>+~H3B zbTR#VPu2K(#7*1yUjit`9E`VbjnOQjDp#2)#b1&8SziSnEH^)!ttn_Q?Qus|xAnPt8B=qz|d zrJ+`pF$je&0g0Md8jBCPIhvgUtgUMSc5T1q*-l__n>5T_Vg33Rn=?BX6r{kz1|k{z zk305X68zc@gxuWRsb0<&P>Z7e|6r@UZi8Y%1O)~6?mQ^4_={8ZkRmJx93~BmF9k+p#b3^ zznhcn<%qq_NnR9n#@)}fx%cSsj0?2>yOY94T}D2godK-`w4@q2^$v>jT+YH&2J2%~ z=u&Q5v@E9>`lFThO7LFumy&`r#zS}j{)Dq8Ihyy1i$}|~n>_a+pHlNr+Rvxid=Mf* zpT#G6UFm4I@BZfPSu2EtEqQ09S>^#~j2X`-iWl4Pj$aRz65g_gpbk5-(2W$PvQaY6 zF2=e!a9!q#*Rf%r=}J+rDS{{D1e)qEK~3pHF~*p8$=x^mxIx`LXa{a)t6K{8#39q< znVhg*9%wH{(fM8(7O^!xSi1ZRl+TQRak2}4InZJBriSZ9kqrTL{6D}I&R^M@o2DY8 zqgR_c*5`J$%V~UM|K*H$Ie;L}5)u+?GZ0oL)F?pzn3F(0Cnuve;pge}pBqF*9VNKV z!$QA`6MSzvUS?WsgPx926-dUzH~h?TuTU$i^`acIE-RBk`r^W=B?%%fu%2mmZl>)1 zUWc1z)Ydb@G{f=3ToNf}ff;?{eY5F1YumfwwwJ$kIz`M}Jr0kL1X{KnTS3hJgzx>g zHhX5k>iDgG`ww-}mu6~6Re?TWK7rkn2}(8raw&CsWCcGDLYG*YiyPz8xOpTpY-*^9t)XB#M>OATOo`}D>onz zVude{NkJ<;^dpHxUx=PHBrqyXZuB%c3>R(3g93SZV&d?>W5Gf%E^_&BBkUNMmnamu z_%gon(yFX{IpgScs?f`KI##1Lk~~e#^)KpJteQYVs`&T~qc=fkff^N7B?PU;w2gc9;_-0Kz zW{U*7mk0XNBh)(Hqt+#enIA$DrT2oR>z2?0{%msRu>&2ixS`G&$-M*K@s>+2Eu&gk zR8OUfr?TH0+>XXlJoLQE3$RV+dxJx3VVkdfms*H<7Dt_CXv?@PKHllqRPP%46#GT? z$Agb`&G}RA$}&eP0sNJ4>@Q0YxlRX&nE_wi7GD9G-f2uH+aQ}{Je;zM0Kz?C$TU$9 zhCn?kF>uvk*j$hB+?eL_%enEsZ!!zSG$z%_nxRLb{(;3~qx$s(Av9Z|;Nti7;hY>u zL?kPA?gOPQGwV_{&q}IX=?C~2z27a@yFkPFyj0tJ&uK&!i| z9NZkmrJ&0_FwWU;$1THXLX9{6Bv*F(H8%aE-WF)QYix>J_ z>n^4qRCWGrnLX`oGNq$St&(LOZxB$-=v>+%J_dFV=~HK?vHbu*1}aUO1M+qrM@X)Ie~%>a5yl*nhHQJDJ4)yALC^I$VrHh@6ul>ETzV0 z8%}yZ{J|}~N5YoKZq>J$)NQYl_oD3mW7wNy1taY6qORg+wl7Ue+EsS$w^t)m7i(X) z>D5b!X8#zunglxnYTyK2GqJTEuqcstq`m23M{WTi1+2VgVz@ zc$tG3B)UCU3-JMD6yqSw?@*3#&(t>9>Y??CQ$b4f)SNw9f!mtgIe2R*Z-cKefyYMo z(G20b0HB7UR!wfU-n)2gp7Nhx5{InkmuXsKDL@LtN9ydw);$UPqz~^)hAr=F-NXSb zXQlCqo3quhIs1;uHkh*FE^Z(WcoY;zl=dTU&^Hk~TMCYM`?)%eJL` z!O5JPZT*oBl83cg7TF;i{LK?80ijDpn#yb@>9wDe=PJ$Zncs{!Zr5`<^}F0ufz$b( z=(O*YT)A|bTrBnzpR_00kEx7pd2Nj&-fT%03#9K=lUnKy1W8EDK+S5Fr-Xz=DQ6f` z&Ss?hy9tl5WXfC^k>E!Mrkw)lf#srR>N}HTQ;BtV4%-c;1R{5FH8@6l@iYU#q8P-y z2?AIS%yR{Nh4i+O)Tzm%z~t=UIAc{Zw@QuQBHhF+A-zDW=Y;2Cly}LX+WbztisA;f z9-o}hANpXGALJr0dg4;$FFhS|6KsvKtBaOdQ4EQ|xMHG^U#z=5yi}t=l1;#1@-!~h z!9wwR*~lZ8SFD&PWzEiXd^pt}*KH~lxAd*7`uEcY3FWo2JKxLt*bN?Jd*cbp1Z9>m z(qn(Ogl-Mpbe{NS^SUjJQ$=h25Ug`u60Fm`!5I(7{>jbhf-gZf1HrGghTi3hSwiFh zs^VLf)R~bm-a^~6%RP#NoIrqh|ZVf>z#ctr^ zz=I5$NArinI%ZFBJ=>S*zB>kQ=qjE50WHbQ^%pf-+{2~y{io`0uZwbRbCcr+Huk>Z zQuQMsG<0rfN*D43bc*A2E|<(M1DL0;%*ntu3eCnkTeEd=F{cS;J(;6@dV?nZ)0Y!u zX;CSS0gBUm6Gdnbvzog*Ugi(bHp1V1-rR$qXmyTbtWv$vcZCF{84|77TZ4#qqmS~4 zm-5}J+KJ)*iutAu_t3|?;dI6UFAvGAh8|vzjin$o9*eS0 zrIqW4;g)fE+ar#VdCJ7n6-ck%Z^r_xewfV~bvlOcthz>*lLD48f-Mx4iK&=Ze_ke*iG8j36BxzYcy3UMijGEp#=Lb+E45a;ud6Bz1u|wTO*nCR zY+9cQ0J0QpreZ@L1934~Kshb&##YX!zhV8pKjGHgKZpwwRD`GE;t06leS6{gVaYaefKk>H7^Um3b)*nH91B3rj;8?fhVVdr`;KL7k{5j-B^Q~R~5 zsETB~e{HkoQbujvq=GyBxYR5{w_j?P@Zofi#1qQuN4uNi!J7%cO`?0ifmtZ^;DV4mFNX((2jm&4O%#)4k${nP4^3 zl5r0+;Ydt9(yAnAZW76ttM6oG#e^Fl@w4~tqhl40`^M+*H&=M+ z4z!Jz_UT>bbYFq)kJb-Iwy?(0FeDf2tNi1PHb-0qd`rQQxE9q0?Jl);@Vit@GKlGW zH?rjy^R_^!@zQ|`Qci#mbS?KE?&pe#IElqmrUn*66i)!q$OFq~K0bE%C!s+SfA(s= ztE4phUw{V1yFkx}61RnUxaUYfJS#4;FZ3!dS}qo&k*gI#BXDY4he^QeVR&##l#V(p zzQlfPRv)?X+GX7nF889qgqk3jV=#p>!wk2-y3};FFtsRs0r->?{NzEaSQh4r_p_u% zL=4D@hK8P79PMq4m%rhxbdnTr^jYG=jv}uNnNv~K&OJGwyY+jARn9G}-pE`RB{sq0 z!J)z=Y}DYJB;%~_XUY0kRI+$Fc`SrIM^e&~dgQk%T+YC_ReIC9b^Uik2g3M5O#}+S zq8@MUM1ZXZ!}(PnFpJtk-6NgA{6^x!tP&6Haf+Ka^dedRcrY=;_6u zMS8{1;BWCcH*d0ZKei`(JUHy*{-q=$Rn`A2zJ7(vmy@)s=~6Ah5b=N;x6kE!`i{qB zy(Mg3ms4PBA55{&#pRuZ-2@C+0e2lbM^rI8R@6NikvJP9TO(&n+e zbUz&4myBxu#Xe6M@~LBP_Mgy2VJd;hU}-@1*+y#E`mbSS{v{XpW+o?`Hm7crw#dd7MsaMne4IK=dxL=U>ukaI#2+2vY`W~}%wFm1ix+I!WapZ|x z;kQ1%>DJ#Nx_dTex35ljj&qhK~q+{TY&49hTB`=T6QDjG*nm0{PicC|QZp=|H z)ghL_^3k0Qb=-^3kw=*l)>r5H8Pa#j$SB%J8fCF%dM1>Ka@*L!6g80l>!!Lq_^t6@E|;oB?0Rh zqmttZHo!yWIiWl0y+++`mY7C(ou`##%)3*&Ti7|(;TLIrM1JTmhUs!GBe#b1w#1HM z6In$P4n$_U5mHxUeuu>zIFwp?&FFPfm{*)$)3J`xfxPxX7GI4+2?kFuKU0 zE5jP}{{7Vo)H7`)oGc)tHpu!UO*TMq>sUg}SSzdnm3)H(v zBfst1f%deMStg@_Zo&|cJc}>3Qo+);A~vqP$J-3iL4WKQTRY)w%A=@ud2R~#Ww3M; zX1R&Jjsnp+f(fcN_cyx)OwDOI+7w+j?r!cAf628p@B2Ak?&ynJ1b;unOkiS2mLuP^axb{He$bI&wxzE0A1;(s; zc<#KHA92$Yhv%dR4U8y|Dx)8qVhp z8FRV&lUu9ZOARK69%h_6s~%%@dJzRWOh31W69C}AVRWGfRI*7Ci*w&H@)dwXu%8Tf zR7Grx$=u3zv2(wZ|NLNJWhjnWpx_TWnKqN?x87hlUW`;V>UHKGk)hZWAX41JV`QNa zbG($_`~6AwEQZz3kG)99Yf-l?G14JH2;id&f~=B1wMo_(0{tYSovRRj#JwjF0~+ z=>_B8B#rU_~!d&Nvo@0D+pk7R}cacgNF zmUct8{%F(eeRShVk%g-d`%djry2Nh1n`K+ArtsP?!jM8#TJM1C#W4$N_IcjYTaBjs zFA5mLTQdKYAl*Id*Q}dfuuH1=*e-eK$#RTF9ik_hp{zTRjbzz7CL+vN-c1`CGc~9> znPN{pO_^fp>x()$8nZ^Hub0m5PDnGd1>S^?rAtR+w> zWJe}UO$wHiKoKT~1>x z3axKT0@!t|@-v~I7chyHq!^h$Il&u}k6}neV%R#odys8u8G73pLWfphmhoK0UTYr4IX(xh zd(+zi^!CUA>htP<0IWB$|c<_Y?e*~Z@PDj zq|nG1O>mNYvCXzKNiwT;S{Gq(%>-F-zt8b}kVLf;vVI*Iz%5q;j3-&2kg@dX_g&A< z-cAY6@avDa^yFqZBs)Yuc0z{#;dJ;|J&=T&*;124D0RK+uXeaFa2d3w>s%^4KO)0$ z6aKLxjA9`Km@?PZV3|(egZk~4W5K*Y!q=1oc#}eu-VQq@TU*j=#Y?WJnsu5N6AWxc zTnPDU*`8}&#=@og@HyJMk265)h6yf58i(%3&$9;TiPFzYGf%fCc^o_J?U}t#_p|7o zCa9Z+`IkP>*lHe^8mR79q+VKnx}ugj{MtN{p%Bb%We%Yw2b=OcA}Ta4%W^eSvnhYAe{emsBqTk~G&OX;A>~Z<#;mY_~O4Cms*>v9v0d?w@-=AKipm9QSp85K62fe5d?= z@FS6QktOk5kvH+MCvU5H(4C9n(Nk23G6BA+{_6*eA6W(r-TiGCgFY#I;e=r*K(c?O zPcmIfA#r~4>eji9qF*GiNaUvc<6P#uMmI=> z#PPm%a169;_k5-1PI+gQL4m-eFv>;_E7LVTZKuzIj0oUPbL30k$y{^go{bShyw7sU zU$b-p^AY)ql|R;jq6_Gsk;Ng8nX(+1n3yhZ5P-hGh7!~Ic0jLzT3b`tRLe{(< zNbL*(!<_6^CRC7mg10dDhPNQ#jT5z0+5by;`L6~d=ifsloadV*^TtP?A{a+tR=Zh z{iPHvz1s-ymp(y_SHJckJM2}`L2GDhMRi=uW(~%lq;1o|`9oh6L|tD8d9{E|S(e-g zN`5*?T@RNPy}vk#LMOhdmF$`!mpV7h*tvU@o|!R zM*z>0^gd=)x|>9loSZy1(AkK#(fmp3gJ11WhV^7bMce7ItA{jAS~6n(i+MCD>3!^^ z8E^UA!*MUj#LI#N;6UCp?#qn^ceq;yyKDhkEnxCsVp48@->kDKi}(o#xP<>anZO5_ zS0K4%*yQlL=xS`U`GsuyOs978o@LbtuPHT}l{%C#mG*81V{SBSh-NN1I`+@QTs~Mf zPs-3I?GLmmQoo1Z3EyW4zy%YUa(C)r+5PU^EWQ0Uv?imR9A3mBHt&yV2&$7LCO73Vt0^I;7fkR{3gQ)jx>Ha1pAwz!^e1(-A@b*R>l6NrJ7DV0` zkP{fqH-s|1@a!PC;9i>Z43Ivzv0daEsD02cu~c4t(C@p%0zGq|_Sw}pF5X7bZ|r_B zYP>S{TbjLcF@FmUPycZA1G$i7zxcIGtbHP-3OzpF^0~j;!}_zG6WVPfEIT(PBQkoo zaeiyuWx-%@c#I|2!B;ueXTdFME_fj+!x=Q~deApGHkYCHpl^q`p<%|Fj&M8RciO58 zT{p;ko3d?s_6!yaqs-(+;4?5YUIt-i(yjAFl?5L>{C$sbgj!mwj~@F6Rq-~bOjM^! z&~(cDw)g3+>0FZ@n=1H=0rr3Q0*JAwT<;3lHbXq9QqBuMO3((*g+cJ8y=?M*VTiwj z;=WE~{b&eTw&a)l{=m3k*T}U2DQA<`uF&PDrA~8;pr2c>7nAGHHB%oo(|s8l{AzcD z@V%9l3gBSDmC|=iq8mM&0G`|zKuW0|KI;8s6+B6?bod+?g!{~B$v+){X}1JISr+(A5FI6_FCBxkmjm8!ee7h5-roMDZDST|eN^+$$aMojnj<`pldk zs+xYj2CNw0QM9XkRlnCtx>P=_?c4R4;Xi@)|K~5PeE6LT`1o@*_p$TNn=rhf5JDby zW(uz8e`6oD{Rq*WojvSlC!^BL=_SvVZZll`C(U}#S0Cl2a3G-zBoRSim+qAc8VWNzX+q_HH`K`vc zCypJl(eYli#4E=9=dqBdi5*Z#k~FlH9j5!P*;He%IJcUJ=GD+3#mC; zU-3jKdnbDKRy3=-vqPu`joGu*n%D2av*mI0v6rqbQDz08d9ZS@9bXhyia(Ta4kKH zjbiuh6CG>6o0~c`I@N?k%HYlhoKC=h^qT_wjok+yVL#~Av-8(&l`4iO{r3$PAkFJ{ z6A~gMVOaS(mOCwh;rF`(F@)c>AHzr%RFTZz?+7eG8|R>mjQ1Xr_N<|E{tx~3a)#BPJf_PQagX`TuTgQMFFO| z@cTlt0=^SH7J$DgIM=l`658$U-O6|Vk~Z4}%vm|EO`IkSY+-T$F4}z(5TF=iT8uEe zw2;Au>!9YYX69(x!}8(#vC-`*vxhmt*FdW|x4wt<=_w^y{q<2%bdlfkee5D#lSDN< zg;f^6>iU9ik$U%P)8b2>05a1b!OwkQ>Nf_^^sU>royp{RK#g>d8iKa8ao|7RnV<`1 z(gr9U4U1RKcer!WOWguKj+Yo3I`li+qKGoFf`|s$81aDx5q{q% z`H}}N(X6-a8H2c#=545e=?P+WrB`tfRjID*WK9{^IzaBg;waz0vat;bO+K}mT(f?< z1-3aD<)t>D=Ug!=8Rn!n2gwPI#Mqt2SsM$l4HdGm^GNSm2Lq<5C8Ftl2qwwX4`T@w zm26v?0?56XSTj3dG;y$=lc(`A`&Dd*Sgoj;)P9k7545&a$LM+?Gw(>ZhxW+w>*SfG zPto+BTl^&f8wm+b9X4htB?$d8 z+ahXTnVZ7^uUjNM{kS|geEGlU2b(#R&AF%{v!`hBgtL2Cc{SoNL!}1YR&_46J*Q+~ zftbHq^8B3oe%PqGU@JP3DHzG*(@LEVu}yVBXC^o+9FVm7?)uIdjh>3Y4@6XM-}X}= zSnL3DNAZmyF!Ho*nRvE(3^xy^$~szG%eY?8uvqO+b7>)>YX@Kb2D1!-aFsqwk>WR- zeg@#KPO5MPpUg0G<*#*(T^?O;92{?ljhJl&{oMrSax&xD*+FNE|Q4=mmth*WAS{-QQg4Fj2~-svt4ZMFJv?_Da)t zKKcXBc($jyOy?u*(_qPkx8PCaYhvs<n}`c0P3a$L#7)SXvknMPzfu?sZS~c8K&%tET$(0l+C=77|>}NZSW)CJ#k8I)m+LCUT4ztyA{nHO1 z4OfbTveQuNq{qdcW3y{XJ5hX7{ZYYXmfl4f9|VvKOeH>6oc*(YhP~MbbLV9zXveG> zZ1b#UEi1!^%+$__&9J4Pbbe-sV5d96H8T&BtPVtmXM_~XH%6|#rVac{{HM;>Hq8L# z7_sFMLt?u@BCacwZkv+B`8MUNzj-WpcHa`8ljU&bY-VPXBvZOb;M$%C2I(>8@4`@x zrn)WfV=nLzYF(aR>8wwVd9#Y8ZwU>**QFLIxFLVub+6D+xT4-YCiwUASB`7rdI#D# zInfY)PNt!6W&@PC!*2l5{>*4;92RO^C)TA`%BX56>hJ!nTzRF?Tj=J?;7Y5FO7!!r z2=bR8oRDtA`%Vi@(&n3v->CzAO7P`Lb8L(e-#53&Cw>N>E|5UhTNH18C4Y5jtsynS z?!Mjwcl45aU1|U_;)FfcP`Ta=)-bZ~NVwD;wq=eZ^FPxwx~`zb#J0dimlO>utt$_G z)$Zxb-+h9BtLDT}mlL#ZX|DWQ9+fQvq}=h2auTHkt?r|`HIY+is~JtrAEkk-0&&J~ zRsRxj=*PcG0rJCZBW_PtEwt!-CxATbY2l|moWS1zhh0;TR5~hV^}wR&w9*eXYVekj$PzW;4G`ovO{EWsz{ko{lx(hksir`BUF# zM}PA%P##G494x#O@LR|#bt(TScl1N2V-=1&YpY!%J}9i;|8-ipdtUfxd3+J9pmv8Ba2Mxgt(HHXIA-RxI-Fv;VO6M-T2d)EYZ( zY{$R@<5d~~t|``wx1s8~MF8z^7CVGW=lms{btjj{b}{_|3JlbV+2XgVk{wzXA3AWu zFohy@tkcvSo8s+fi8B12;`HIr^Fh5%aktgCV*vw87Dtnrf7>jTX}&%vGV5j!Gbfam zCi=>AH|n~)PK=uNe5~+8rtVn#;rKP`URp%Zb9;-qhPp*0a)k+N3q5~IR%n=}+vT;C z+WR^$Y{@sn)0+G4*8A?Hoi!%{ix+sra7q5n0EW9rULyMRBgxo z*J0<`0Pd(0Kf)ujIgZV_r>}-U0cpk!bGN-@@z{9~_YLS4Gu-@^CfZE|k%m3+I5V2O zyo>Ggj$EMt&hT{XvV4M+SW2Zubp`cXG>xEEB*D?29Ay>kI7)X-BSD(b^)x2kiax6g zj$P$_?_!6B9a$?1kLOvA#;PQEId``zn);&`gjC+ky^|9LJY2c*wxN=K>dJ^8Y+Ju7 zt?Y4+)&?(I)}KNUcamSNT6`{7jTmkjQOFkfolO8$NDsy*QJVOg(74s2TUW`&Lc#5K zmUmnoxwO-7KH-_=VxP2Ym+2B7VsTC*{Ip3wBWhT3cxVd7}_CfP6v!w>zP!ZziCC!-nmmrSC1i&^33@3*$=>H7iaB z*JtvYQ93p#jPaq(Q1jt4ZrHRh(zx8x9;p%zcnXY)9z9Pt*qIWSLTQ4Cq!CT0g)xqU6&_`BQ#>Gdg zQGgWf{Xh;(eY$*d1ac2GI95H`eQ#-lnvUOlvWpr?5iKSfA|rOU>j}op(XP9vX|V?I z7YIR}kHl=T3*gFQKk?bA7Ze>m>3JbGwFyjM$I4w9s`z#HgdW;Wp=8-xPc6B$$c!|N zVXqeV+2q?h1sp%n_F7ciZ*X?mFyxND{bB#}YS_m3yu5_GTV)%duaIvq20Llnt5s`9 z?8Xj02>|)5G&$FbJ~&tMcdj{@nO+h6G&0|T!qyj9hD|&-@QAbwG^lz{8p>(O4@IH= z&Z=e;Omdx>OL;y7nxr|d#Dr8-+_|pAAuOwO{(v{!{cxbkn*hE-)?Jfgsf((m0?tH> zqQF1*yDkR_BD(Vjdn_cN|6o3)R|>x2K?sp)(P4M}?jpCZ01i zw&~tBdrl-g)Bx{gB{gZ9N9lzD@je1>-(`2k$M(0mK*qu5+sbaT#lz5;Z6~DfothgA zR&-fRZ>rh;0<^@;2!Y0G!l5x&9!vaIZgYQn41$}nqknD1ZIVZPa-?^LMs5o84tZkJcS}pGRNH~e_#(q#?bBKuZ#l*y zJ#8M_jUN0lC~;68DHK!3p?T7eey%6S)8DYBCNu{B*uX1zoED4Taf<~s>Kdi|b?mktKz^<(N_G3GI9 zqOwWOUuGc5fh$|K%x-1W3jb#1krgkk*ucqi(#LCApvJEBMQ-7D`^)<_$&IIkk92QG zr1cG{n7T}MiPOE%6%QJTWZp+TDGp-gWH~SYmIbsh=@@9xF+A5P-lJ}L%YU?EZ-yqw zAj)4j3>IDit$^-OKV1$|v(2I_o;s9TqFl(OB|Dkiiy?)QERt*7Rs(Tr+VhH&rks;< zH64%$2?-&HFoqq*b^Gp9!cX_UV)60E_MeQLG;TDUk430cJ}LS7MGxox1oAD|Sc*zr z0mhac6Y}h7&WWf0Nw3tFWNMP6t-4KI{wJBTsY(0YE8p~k)Ya6o0N)AB-KlQ#(i{!D zT3(saTr$vFyozSxM`|lJ(fo|am&fbTk1H#yHKiR<4}J5Umh3%pv3Et}2#H7s9wrem zjdMh6t-K%i`>v9&S@)-7X(H7@Zd^e#5rJOC=lhfOv`u%GMMdtn6ivZkdQb>Ny%xg7 zC|E|z1ucJF9-I($2eeHINuCM^o!?xegy08W+s04=$FMmqa5G@vt>)Sm4kjR@C3#s) z0`hY~w2_MwlD%m>vq=(a3)ds??5MF;X{K~0WXAiiKM=-*m7;hpsgxHAa>ZpYl|pBg zo(M9n=SWyBe(nyHr!(_&Nt|)E@|q7KerwqZT*te>&-zo(tMjAQH$ycwH42>XN=r-m zJ>r=TPyQ6=xj%pY+?k>S8=v;Gj;g=x%`LiA-f<%49|Z-UmU|MHcqzY1W^eTHhmedo0g_bs0b11)o^<<*C)KF65t;R+zuh3 zZl&LjQY(4kn?6S6P)w28ettn28cgKv~wAR`r zG5(RDyQH+dpxvNpCK$^9atV6UCrNz^^OUHP(Xg~xWCg`w3ELMZPAbTw_DuZe0M%tYv}bL z1NOa=1oM?fo5~CamJa6~u6AyPB^A9~-<9mVc5e627jopjgk zBY$d8`yBmAbj??-uIJT@7wKeq<2pH8ZWg~bJMXguIfgg0UrncHr0`6r%XAH|N~M>$ zeO)7tfxP!IA6VIyowFrkSNMG2bkN89fHylsNPBFEO7{Pw>@B0B4!E{oVw6Dy22cU1 zp+Q7SVd(BsK#-QMp-VayknS!4>F!SHlANKDZW+4I-+R5!`F5WBJ)cq&FtCx zx3BBkVZNW+5ENRS8YwoHnrp(=qjxPL1zalrrUB!bSUz+6S?C^M>r0=>%mDXmXk4j} zKwJ2)OK#!f>Z%cS?+795fv!u_ z$<6+Ydv(T5?0xF?ER$m{nzid|eP6+A22yoGy3*=E7P zIwdcxm_pn$Tvu_13b|k`_HSS8zxnXt40^7tW>IpA6<6(EcBDa}=52*YZ1DHOA&AIl z>4(3=i3S180g7TIa14x9A!*Is52dwUuw^Mp^ z)pC>51`paT*!Ml^GcB$^1=kT(bQnIcdQEFIO3C4gYR{GO=iURW{ON97{`vrEMrwaU+Mx2(5%yI3}HxY>Ky z55ZV+gt(2#3AF!11*je(Wl*0{T1#}f_gOLXO{qhn)!!vTrd{dbpl#_gD2=7=0Jk&AoS2>g1Zy-1OM`b=oZwN!cgG-(GXfXRz3! z1P!IbX#;EMI)5yTInIWIrJR3OTM576Sy4hSdQ*YwV%yscOpr2X{d6m(KDh?zSuV0 zqK1}TmA+X2V}YyAU)H0g2dRU|V@B0nz!Z$o7HN?r{`!mG`1^*wOg%U2??e47atI+% zD!X#+TFdx!ebnro*0 z%W#1t7)nhPW@L5NKIQd{zCB@!l=-mOybDfYE!LjaY=Y^#q;hILkqgbug=#!Oo#blL z(!q7AKYR;kj@NZbfAw&jIXhU{=OaVugOa?OwHnGRE0in~*po>X_@P#HQngOTbNg|W z_Zpfk;2syZUMHJPh=Z!qGFiWj-c?*+I4aShrvLh=sfFgjHD#ueW0R&1`1N1myF;-JSnjzTW z`yuQai04#GM^1swX!WOsXyssn6-(hWhk`Bezw|-p7tulCNmC8Eu*dPt@ zf)DI`nnS+#J`y*Od%h!sueV~VSGup4N8e%c_s`F%akcDt%wD8HoOi$Ld1D-)rt?mJ zj*UD{rH6e4DVOKQ>pkC(p5g~wd>oc)5lMZ`94leYqnrBHWH+{xeY}?Wl*c1(ASY7y zdal8A8BUrMrwI4lGvodvgy`E@?#;z_b7BQLyN`yt$CvBYo->AfVb(t5iQiYe6c_T4LV z(PZ~G5gngt$Mr#=Ht_YJM%%>J#$U-v;H$G}#&7x=Xy=BF*k!>1iXsg_vVK>hj{w^7 zhEoxn?17HkE*ORp;Y+*nzy5Lh+EK>)T2)0WXB&0w~Cg+@vzJf<<_=C2k~yBHxv~X2gK96%j&8h=z9$GZ`mN-G35M(G81e zO5R_g;@hQyL+JT3$ReiqbFEN*_?}SMj5c!Oi}(IgXaJx8+G{*I*xP)XH=le|f**nT zXHtEsx(UkRq2$g}AJF;P|2X&B<{+dH*~y%nl-Xwbbw)@?{ z^?q%C!-^E?!cT={LhmuU7zGoPBQSV@KbfTt<})Bx69)WjZDqd<0~#}gaeSPKhakJz zp=+9U#d@3N*4K!-L#|O6ZKb&Dt=7TLlI2!=I~c4ibY%?9J$o@`%npqN_$^EJ%dO9& zuF74FwX@GJ^J4xP;iFW7{}Qy%=1wd|@22@e{n*j$vxI-V07l~*4XiQts2V(>%N3F9 z9X;*!a-X|m9k-2m(eSN!7$4+9u%Gf|YbAE#AxDNW)k|(<*;?gYI=z1Dwf@BW`j0Q#?~87CMzQG3 zhF&ti-?~%Wjo?+uIoS|a7L=RQvNS%Yj6H2_mCPYoALK4~c^W3iq zrVHY!Q+qIZlopwZrDk{-v&B5@mp&;&>94%1*|bpC1l65A@-A=<5#;UnV7-S% zx0iP!O{@%_f^>HwPNndZtWkIhu2W$(_ux<4Chj-Zq@jvTYZ0;(a8A>) z7iMR1iu)jRg(}KxG^)(cm;u~-Mxk|8;o_vSj|Y0GH`XVXueGR3pM0K|B$}_eAO6}B zZo7d{Ul`jR;r0q&_`Ig|9nUQ_^{nUhMmF z%X<|6%jo+*W3gWu1Tg~w&5Paxl2t7YRk`Li;T-1Ew@k3bFKgl0eb(eM$gey^Tb4hF zR|Fz+o;O#VPzX1Fr>$ANZFJZeTxk$=JzP*~9z>-wwd1eIgsIXh>BAgTR^TH_Q`-i_ zST&!9WfSS!>SYB5;L+h*sUe$-NCA`#`v^&x2_Zj+ zYEbpuY7kWhl(~XTP^lF`t%a#Hl`JE`!~VJ6A(bqmZ+|WVldS9TW}lNv9(4-~DnV!5 zQFz2?*4tx`S0!1sQWM@yZzcFAnAV?5w+fFxaSa{>@uP`&@p%geiv(W5!jI<$t8t7# z8c@Erf7-W0N+?!U&CWmau)*eoeV$CqpIe>%9It!dJS_|_Cc;^Y;?!So? zk55M)=8;;FBY@Yp!eu>Iv(jL0y_0+FHhTK9r)?zs>@V38rN=%2Ig34Dz;FQeyNsSs z?7YKfac87Nd_~X?_fcVZpMtEQLXDSK=2Dh_|hIqNRA^MG;c zWo@T3i27&otW8m6GSw_6|F+|Z!?H+ZEr-50?M9oytmA)bXv@zAV)2QU7CIaPberab zy7!CEqgfi2T}{AXi9Bh$w8*2znK8ZMxJIR>ruqq+EuR8H$QK{2R(I!yF@(~_aC5mK z$?8g&BWjdJNyHrR;qzaqwx3!rTH4-IdT*LoAgc7fpFGKZSN|U6 zcw#bF)+~bzHe{YTK;XRd7qwEYF41n*>s3fD7~7Xb)dyw704L9ar8qya>0jUDx|cmM z{vsOcxe-U3Yd8pIp5E#-k)P@BF~~8wtWY84atnK{SM%w+)DBmFznEsdX)%1RLXuLm zMfCo({lvKU4Ux&}cju}-gahe^IJWXq9ab)>#KGvG9mo5>m7JdY5(5)%wKcn@lh-h0 z?wEw;2rj4Br|>WqtLPT7MT531HPqSo7jV@B^N}u@IJ#|S_h<+j5J<5gAQ z=53S{8h;xFIZamA7tkta{^53;Xc77dXdoqbwn`@7YL;P@cogvt3zI!Zkr>!QLf-IKr)LLP1{de_oY1-fm zXL1Dld@gqzQW7hB%pv{cX#KpQC^>`S%`~t1(G|?l)cvNEQx!iO9+HjLtW|2r7`Kh=@uA0EsW&Upcs$H0hME%+5t$zck6 zQmxH9s`vc)^G*U@|9aJPAVC)&uSxfyEn*Qk)aT0V+QWlo?9Jla0^u*7hr&oEBf8Hl z@>d`JW+Y)Uy@MUDeM*-@{9a7EL~f+l(&I$*KnOmu;hAoBQ1Ek98|V~;SK4WHcjELZ zxXg}7OeB-xUBH%T2coh5Tpeo<1CwUVz~6Ky4;pAzST&4Hb+sg8Fgx4|JKr7*c{sOy zm>KZ)Y_mf%p1m?QOGF@Fn!(em6dUx)nh%@)&bw(4P;ZaD3ppHM%v>1o8{c<|ubLO0 zeHr*T7P|ZT{Jy)`a>;8Nsi)NXn#sKA=)=@O zQIxI=_RQ(>)V{aC3d9I}b($}{Sj@zd?bw&8fDK+;)aJ1GPl;-%({$9hI3h_^K%J+o z)pqrU4qQ|zz^#>=lti}mF)+3$X($cv3A5SzeTG9aFTy&X(Lzs6@c@-v#sjqH{%?@5 zf^3!XQ?f|2R+h2`8V)!g0p!c()v%dR>^6~E8?fmCaZ;`;(z5m)2yPs_9H86%7Oh<& zs8&`gKPn`La+W?XNi#%hwaN-|TIH!>gSE-D=y>uaT#CubGN?iwwDM#GImzPQH`&}h zPRVWN+My zAwLgwxs95|T=PrN0Q0M987wygqMdJ>>I2pvyVn1{Amu5Ne1dXxW_6oL$jKd=f%EP! z*j_ljYF#8Cu>-we)5{(EbG3THZ~R9@Y&+Pug9|4xumm3Ninc0}DO~;Mt%b`rOGqNt zL%jRcjvp0I+teKIs&F`$le!v1WR{itdLfUXif3u*61=CbP`o5UXnn*i)ddxde8)d! zK-O-z3xBgs{nK_$o8o-O$fb}`Sy!M9`HMTKbP}Z%pTy%<9YkrkrY-1P^MPA?iW;$B zi}3fb7U4JSW`Mhtz|V1WjnNb%C8P5x3_d(I)K~#V(K|T#$m7bYJX3rx@=IIi)Q&IARJgS z)*X-{X6Qh)(7(TS^*j#ZXAH0YHUg)ivgRq!sVR&Ww#r)1=PtaCla%yl?f*OIvjaW# zLnJTlKIS}72J(vL zI}W2>r=7HT`0U_5ISz+!!4qJQQTZ`wihRyK;y+Brh2bc7{KIEPZStgMM-dZon0K{F zYh{m8KTL1UH~sa#h|gBK>o?1^dM^8M1v8ud?T6URTe@L3BmrLrRZobM3s@Ehy805Ene_l@=8T%R4 zxcfd9K<2y>&7bq{ooKzamk(8fi6QJ!@@%a&s&69?uYV`}rv%;h3EvaYV2gNu)=3Ld z!H&3ut&3N5{+^&?fRei)45**@)@sVp#r%{0m^{O9vRe=IjsE_{5O2G%ANSO2zp`%~ z0B^WGc;F`k7@cT82>fFi_Y^b$(B*S?CYla@b$pb1Y(<+sYlA{ag?-+#?#Es*i}~t! zo8hAHbt zyM78-l^48ZLA{dsYBK{_Atiqp+!J|ZFhx7rA4OM6<=&Agse=#H3M z0RbdtdA2F3?%y0rje2pwf$nEEzZNMh90G)Fi`|W@%NU9>tC06O;Nv zB9qhpRXMr-7@BbZ_qwegxy{u=pPT`b6k+w=xX7p@pRK+LnbUmScc^pIv%+D^Xl9dN zsH<4Kn4S1FlTQ{I>jgm;q7iKxo5TgP_OUgEW?M7P+L+O(7-1peLE3j>U5E)C&AJa> zMbpw;%8Sy~D2I21Vj;sRoa&~-DQ~|1%AqSa4y-ZVkns|ay|%5B^R^05i!hHlrmZ@2 zjOKIL^KeLzvNM0rvuU(-Z53C&(``e zA)l{7raxTaRFQ{r8CAo0kw=bW!tZx{ImOk6&39aH5N9p4-Q&Utph4wlH;=?>;#IMCfpgoNI8x_^xL;njP`wv4KC;p%A1~FOy*cE55F+|I+ zQDh9w-EIFcF*O(I1N2 z8^qM%7rPIfFzXt9fY0~Lr9_VJ$POF0#*^;g-)u|zm$fFb)7!Q z<-gkundEm^{hFSRQbpD@DQueJ?GNxb_MLRgrlc=;umH5=Qt$>)yGEs?q=+aabD1d_ z!bVTLE*6PL*&{x9O6{1UD)^Mq{(7KfRB-~`AIeEtl_ZOWe6%Dv5GG>T~p4%n71vss) z9>Wo`7R6%TKduO#Kp!11&TqP%1{&9{TWHcfy1_GFBhCV)=fb8#&F<{nHq za4i_mMGbXwwXL<^zrFb8>l=HrJ6$}YCX?xj8mJIu{F)QN_i74B)en_$ACTB@OYl4j zvqs$5=$Kt`jR~l_%v1CHM4Gvv>OXF2l&Ux7GAPeIBdwIntv@ zNE-re$`a`J$nwhQwdYdE zHga1T27hA>#|Y*t#>KR#Gry*I(06`T zu<@}67)C&dh>w>Y!&7SMD#-mgPzRLC4(s65j?EwCs(-g-$*Fp!7W@JQ0{6kCc-ONq zvEU1SbkK@!1yoSeR;G_$+uea}&>2Mi^q*SLw{!%T|G(4xeE~4s3Zv`$bC$sVN2)&+ zq8&$h^JhiKqO;3g+y(t|BVgB6H{1~${fJ7VfPhv4@QXJ(Bre|-cW11lnI6Lu`Y?D6 z?r*RBxn4DI<;NU?!2=Py_C9HGK6iWiK}Cl@-u8I?@!aoOh!60w1#Wc=hg1BqXG#`u zbAb9I$S0FCch2Kdat^bDC|^-sj|VlW)d#ze-TFz=sue)_e}HYNZ1AaXwTDIwHad0eNt&eqIc{UV z*9s<86rd?!h?gs%6+_2M><1Qw(Fo*Q1}L30HhA#5FRlMZOk{fyeR0$Sc!{uK$EC() z67-%;iu^?a$b{PgkYf(j5UrxQ9{Md!MS(xfY)ioZiiL|2itxaCEPRqY7Rbbr9%h9u zM$&9XtDD|Fp0t^%0RA^RS;LxLn)n`mCcg5zJ?{G|L$o7@x?@ZCezBO-T)P4x$63$G zlTZ9sR7Nw@L!kL(dCSYg48jPN@$cUT1^TuBxe4|CyApsuSl@P5%5ETIB8ZLG1n4WM z2rUJH;R(+jSSL2osiSnb0802dGFX#{QAq(YN;gT=n3aF7(EAd+c=XUGDYv^&pqFf2 zWq;B_3%OwAL*e?%3Y*T74I39y7=l$n|o;2In_9Y5OSVWTQ5b|AN!|@ zKt&~u&FB6ubN$%Oc3_gNjhd|Z<$A7H{@@{zT&_q6+9X3nA_2YI>Xp-7v-U>9gO^@! zT*A;n`RiG81*D3qF6~-xL_)Y+je1c4pV^kYl6oDV*4FNnL%eabWJCt9?0HIU{(jpQ z+|3&K(qigrdb-}+_?r~cQ71c$DmCA6I6>WcVRTjotfKZt+Oul$!U9_1m>MC{1emM+ z%xT?TW@FM|U=iR|o$}?k31VOvW73bWOb$PENQ{3NZr9{$l+$@{7$GTAFs<%cWbZT+ zDwMk(9if*!irS{x-Ud_W!Oy0s?fI=u$@pi!QJNHoI-7HGP~0|JlkWoXWLMVO(~7b7 zcz`x;geQ&jBs=_AR#CaSGb7#_NCJA(2)~}ODcnh+kpF!YkD&3GZpn%!oK=~e#*6C&h>u0Gkf_HO`Juwy#fzqqzg+d%{G$Y)eqsR`Aaob(>H0KuesXN zJx9K|>{=giXXKqqGtCPq&TfiWI@Smn(QL=$vtdO)Cs_{0ts&n1@IgbP_?XxlR=N{4 z!;L$i^8ny$EN@h4DXSl^#1rOh!E3*7I4YbN&F)UmtETqdcfoKR(Bl+ev@578FzS?f z0L`%>s&k9&Ce8DBnd>Iztt$L+jBf`X7ci`EN>2qm!g&!GMB24kbrbmiqu23k6cg!4 zKCS4+i|xi2Zqb;m*G;-H%+bKS7{?~WP}-8&&kfBvzq?qb+Rax?JWj+*w$sQ;jW9*^$qZr69gpvces*acLSaE5 zgAF^TE_9*8$Nf!pO^{5hyUMrjUbB3R93Yv%oh4>&4*A!{bfy93CGlEDEGPb>R%+f`YKQRRXBX1;luf|kI!n`bo_$* zUTK%tk19?_jIJipkl4k^(;c z<_sQ3t@S42a#IBJUTv!4JYRvwJhv~xeS`inu13&I29O_nN;%+Uwhs6 z$807rFq5?dXP|zc=D<&R>TJdc*#84qGBxAWVq;kw8{OQkx6GfQivr1^SWCkY0thYT zr0_%2%KPsvKjL5kS$i5J3(>Udf_fqNnacjTkLDt8|>(&HL@{eiXRI}q%o7^!uqJf+_zGyu)^fIT7 zqyRo2_$F4Nvk_(S7WJ_a-U>n$jfl$`>1qG>k>g`daL;|jWsRo3N^d=H&swZ9)(Iro&n;{lvnZ*K2dmcacOAO*_yIgr7y3t3JZDTQd3^W`>qf` zp2;MN{!5aaKLo+8Q0OdVPcg)9MT66|0bz9}oIlEo?*Cig`Ts7tCtGiaeCjp+GXL`pDfiP;KgP50@K z8edOlmO&uemeXg^y);9DZzLL=?m{CBAMQ$e|=E_6>A&mXb3GCN%|9T_H1ZcTJUh|_9i9VL)c@oi@uzhkh z=0mx~UzHw+dv5nis>$7Ud&&Td8HNr_weu*ILpBVIi>`m{LxSi}>pjp=jGB`IgGd|T z{B?B~3dL$TpR*FDBRl*BpG_jyz>cp zt)oHz=vtt%_NUg|?#tZV3Yipy1RtX^_eYJLYKhP=X6Crxat;d(ZlMa~noL};7zP_c znq?GKBWenS&HUV>M$1UbK!FA^#Y#&fBYYapCKUBI231FunJ-077iwsuC^3LluR6*_ z?+eAcIVezvo<>Bhf(eY&@U2k8Ie@RY zP+8s99~W~A!-GMW8mh_^)=8BCoMOo?lZ?v3gWElBd&Se)_=QMC%1j3VAvX|NaJceP z?^btFxb5BVYEJ=gcu>n3?K>34`L=v>csUX}u$E(FB}&X6XN{Z7{WDK1zOe_>Z0V+z zav;{kU)}68`-g}xsGs65_cVP#CYol zNP>4_=LF!l4e0{@cun9n8q-AX9+gyahwr28fWbZ0dTsDKxq3bEmjZ zmBdopJ{+%R@|36_Nb8G*xq|}H5+6uu{w3ecrv-OHsVb^~uQ>Z*V%uq+#1}pt0UXjM#koSrpH1nu9=+(z(+*r?t*B;+?eeo~ zzdOe{!8CL9tRVsq~F+PW%y`Fn#!w&+-Y1i#4Vqz zJ6)9pOY$2OapfGfD`&CP%dd}PW@OhlxeZFU8ar9l7fv6aUEX*UlIEe|1|yp<7N z$+MOy=eAZt$lv&m56^r;*7ugwDWqXLwiy1B-kn!1EDMdcNn92tCYvD8D6Ul?+T@}a zVza9$WVh2Qhu;kt9=dJIFY{O8UdDR;@o1N1m#s4?p9VPTDOU{m!epA6|OVngmhg0y!H>B8Y@U z2S5;!REOg4LBY#8eVY_9)a-yQipw3)@y%O~`k3Ev>? z@cE8fPP({akq7cGVd-w{T8BBUw{HVTsvizHsmx~|j+~;1GBLj`vr|bFO*Uwi7 zFdvX#zrrhf0<=#GRHh=>NdilQ?H0mv1#I8hHXtgb?g@!*A1V$9A?$4 zuARR$?Q?pH#gb#|Z}VDRs&BvNfOLbjqP)v6+Bj?2MZlmK6OI|uGHnzj5R?wteJaws zvWR@4Wa;wfxR%d=h+^NM+gFitdDj{~sMBA^t+H=4BxDgQ9W#Uw8Ghl;&CPs=K@Qle9n%CX^N0QmtVU&gUQJv#;;1C|L)i2kMn8=dhR{>J^+`V&uYpKs9qSA}84 z2{rpC5GV>roq|X!R#Z<-+RXo)r7AoyjI16r6FMPXWaW79GQB#yZ@W2+y*k+nsx#h# zI|`W9yOS3qyaY8VJ^zY!?l@nc?iloWTKNFV#7EMzfRSY7)Z{GT5BU2UcSO$SwvBb} z4&Q**vq#sSr#V#dq+Cl>ZubC(i1|k@IN^wjl?9u2)!em}Wnv65KF8*@2!0S2cUlNr z<9ZCc^o)NlSG&td#>4$Tr7+!7Fat!fDfZj9Z!2HI9gl$BioHRE4vUU7Y&DONU%$q_ zRp-m<*G^G}nQ+(V$}W6;vZ*q2x&H9aWeF(K{$bNDkS*NRlJR z_q`u(6SQrxd%*i9aw0NY0p(|y?j^rFD(d9{EJ@z@09J^g6U9@^AJzc* zR6OHBM<;x0Op?p8fYi)f=8Ya49L5Hpa&?VN6{>byg)|wjI)78W1+o{qy;7K%w(|+~ z#C?EkB3*mY9&eiO`v{5pD#X>|jX88&K^PcTw4C4%xR8FVTZW8RMWUsLNh4QiX1UG5 z*!9ca%`E`T=5#}?|6L;H+Xwl$xL{z6(eW&OF@jABbe{(ObF)4*-5gCPBcHzMHr2Pb zdk}}NKK)5z;T!xYs@9!Q=KFs*smJAN5Wiq7%Kd9gzo6Y{8t-bO<3z5kXyUBU5zpz? zRpiCZmjj?@*~V%_pO_s^=IVaj1Bkt=Zdb5`AsH9Pwf;;93iP7@A>lT2ux&yC1Ns(jQa z9nBo!EGdw9dDdDlBTh-)wDop?W!xMK`A9`4i4{vN>^Bp(+$VD@>{)qr^;B}tbDmsJ z)aknFx{37XRN4waw-)S~B@Kld0|wRlJFSlsqId+5x4;hPj{KK2^P&pHn{c_UZLEda zCr_SyK4P22#PGk8No9kXc(xKa#{3+Wc`_BtlRXmXE|nMYEOnDdi2{f`=`~^f#=U3d zSb1y_+1K}TXF`gSgMzHPw{JO(kBn&9uBW#WSn~?H@sFD*Y>Mj^9k026#BM@#y6lH4 zH7a+B+)*P8ICB-ol`^KSKAJO{tUmspE^z(c>@0UcgzWQ7(D7^AHN@rPS0+T5p_Tif zPd>ed3fh>=?qD}OCtkzUndM!kzVp(IXF#_knI3LnWrAlK%h%H@oyd)MO-SrizjF`Z`N{a!8X-M&8t-rW-tZt-d~DAp^&Srcb-WMJ<6)8j)45HJBcx(Ba3Jne{xn)I zYG{%w-(JT~oO2a5VKlLwsaeE+Q#iT%b~Y*---~JeDmEg(M;`!=BjLJVkj|MWfw>M{ zN@m{KjxT+}wmWL=68Jn<>97i+$bn^rML>CtnzJh3c~h~`X^?n=FPg`~k#FjRTknE?Jq1Udg3zjo7^Lr5YogyCa4<_X2w4kyLD}h<(bx#22eD0l62Kdnmj%Mys$(<6(P`h(Y1TtombL*Hs{#|9(P_+8DTAp4DME?s8c^IF%yCt|@Zql@9< zgYiOxeb>7YE?#GWX2M74V%D$!%~-b^Y(wv6b%>hmA2ukhGNr$q2d)oPZ;62S=6oLR zu)3Vu=Wnm+&16c2PDBOz2dsQ3OA4)Gno=y0uH{ci)j1Wk=2I}PR>Y+#U#D`HBy!U~ z5qbZ`W>xNL^TLO|{dQHucp+Hls(V>4F$RVGlENUg<#_6j(+WkxYpMP<4v!@+rpvRi zus9Kytgb&@nJwX13?v$(Fp4SM54+k+_R?#ISaSip}lNGJSiN!i>!V-4)WU zO5>NYo1!pR7*l^d_J+yJ)dMt5ZXZ8#?|r|j^YpW-**FJMuA)yA64S}rnHJS2IO{!Z zw^hrP4gnD&wh-VeDzc6V^o_#ij8yAPtBm~G?IHa0=&lS<41BEi#4W|OsrG`(rY*QnjXWpokFD_# ziszB}c>LTE;kI7z*B`N6Mi{JWj|+_yc4H2#K30TBgqt+kr-v(3xXAD-YA z`d7AnSL}y#@D>~S+qbfgzmP^My}cXWp+p-k(Sv$AW^ZGoRVUDwPv4SO0^4Ah6w`JY69Dve~$`v4FGr4PD3wxwRhpaNp=hR)RAWAS(jg@^rrBOr;RG%yON#uBUH9 z92hp~9sI9WjsMeY)aS#2CGR@zg(jLki*0P_MwA z4*|LwdRWmP^Vrt_kic!0(x$p5nnrWLh)4l9O91r>nSRa1(2lht5xD{i4d57Uh2^dx zLc5Pz+)l0~L^`1VEMCILpn=CV#tS{CW^mOzNke!%`v9PhRK{)Yv*P|qK(?a@w zw($q)&KUu<3cL6CrJoM4BPI4`tVaRNB#O{#4*B7d>fsU#2|YC{gW=6P52x9aj7j`q zdISqtI~{Flkb=O4PKLRtGnvu-lnVc2z$JPA&@=jXYE{D8F-Paa2LhMzNQ&J!H&qko!$(DHN?cVpJ0Q_S+^aeU z!_s7CSa%~h2R~L(dw1Q}%d~%PT0Y*lLet@U-+*S~Z9crz;{C&bsfFcG%<{vEmQjkSJOhGkZ=&NrvN}vZG>WL(F3=Ru z)b_{JrmiP5QpFdyyVnWa_Rut5{5H!~7gVf1c{0tcHbATRaxp9WgQ;RB!^nuU``ZBy ztOJ%>R>i7(LW)7TC-nS0+9_nI#wb0kAyKp2=1e{5&oWREP@w0XPLJ6+IXx7DO^x+O z6bf~U!avnyBok{Gg-M8wKm9mD&<>W#eAkIhe?ntMmK%e0ml{@`j?Kl98$0k5aG-enMxGwc^`e6zVXLQJv# z+rZm2(K}3*^x^Lp&pF6-lyp#=eQPa!d9wTIL1-Kaad)5#JUf&`=paw;zINcO%46F! zG_2F4ikuUi&PdS zOPx|m36G>8x=wz>O)yA)d>KdZMre|@woN^<6+`gVTZzeZPZ;(by5PrI2W_mAj<(yC z03~g*9?T!qP7)&KHaoy9M}Usu-)5kg2^h40O`Aj!keFkL*(T2FpZvl3(@7ZW&HiZ} zb4D-;1nO-EFyU9bcyRU(0@?fPznK631Bd&c`62B2C)+Ud@JZ1*s{HZ_d*=ZSpNls= z23oVo+NCW`#R{)+QLL}L4E(lz5kD~{MJgIs zqaww11bEWYJ2S5GVw^S;i}W>|VPk&9_cIh~P?L%i&sVD#hx)gFh&!<=ltbIUbHoEf2L}fm_zrGa%3BD72_X0i z4d0T9Mvs6{xg#-WTQJyZf8?F{iSKZ?RhaIf(J)jWf{W4hC^y}B)xBxAs95YwS_nnp zrx5pgQ=$#XoclJb>%c$DU`!7d`={N>H{F|$$81W!Q1jyGiMW&C6G6D8SP8vIdpK&n zSdw`AY|gHzi!`a5M&l_6-LEpZ#BYu70{7&2#l259ey=NSu5l9zIhDEx^w{4hE~z&w zA`SyR-p-;$oN}Olyj&B*f1btq{`rW^77esOswHkO#Qs@2L@LKJ(7i4nET-L;u`VR#&|G z?bP%jJ#i+Z@@OiXEvq)0ZELIg8<{`iX39_Cz&%#oyw`t zI-e@tf}P`bf`ovqa_;rxX6|-Jm7br5#%R0SW_PkXW`=i600au)yZ%9SkxyB9oSZoV znE3ll;62g;LM{Z?J$K{z@U_0XTE5^B7D}pCJsiyQkNd{StlDTUvBU;VxeTY(ZIAix z?CP-89GiGnwymyblq|VR%hexM^1f$BlP#1UrsTGMTJ5Ks#84S->{V@XHZ!|fut;Qt z)Pk37e-cJgw3uvWKj1f*+Jm>6I!W7wLH}YRZ8|a?$CqcNJu|pkA0Jb%yzBMC za{!&}l{;TxxnP=Ls(|rwB(VIRcJVGJbY1EYwNOG$&$jjm9l94?mnp~%s10&yVsf=u zj6r1|H+$}ynrAJG?iXC$?(DqGuIJ=UY(0v)^|8bt<+NqYhxI!;sx2@%TQ!%+lm292b$DuGmmuRil_HsaTS~6er@tpUb zq_C(ohJc7+fPVQlcE9*;Nv~32Nv+E%y$x$>=3W0(Ww(iwY+Fkn+02aP+iw;`eFLd1 zv&D?XhxcW_pY6u?usbV+#6VuI|8P`}YuS8Es-8r=#Dxl#+sI|RhkFR%3T;t5`)34~ z6L^mjEsMdIaTB7OK>vU*Lrp<~F3Pp)oU~hw$9Jvp1bvlN@N?K2TliSrm8)tmK}sB^ zzSZ1u&QEgr65_oSAD+9IM-%7=99L+9LZHuMaINoe4u)wdGq0dEn!>3pb>jze%cn8~ zWSK3PAA;DqgLXc(j&SsH&M;Dqg*fyY;*2#IO?AEy84P?a`D?D9);^VWd{+~8 z5PVi0`+P4Zf613ax7xZ1Ayxv}Mwl^Q{SixOw zYxR?|(tWR6M-ww>WF8)8xmb3Mej35fMJCF^EG`8`ibz0r{bnF{S*3#4=u}RhlgW;= zB!@;6U!se43pN7Ev2YO|-fMnzgNm`-$fN(8pBom3N&p-NB;MG}PCQ4?o>yAh2JeHwBA^O$nm%$zg-8N37Yvzi`-J)c*M!7l zb@kFG>P#H1=TbNSjR-jy27#a?GK5_Vjp6~G9elvW!Y6{EL=g90rubgn`dg{P_N|1K z|A)2rfNHYcwuPk#QMxECKtL4qQ<{-pLQ$|$tRN^=LrLgLCsYYa34S2G3L?FT^xhH? zLJ>$pFTsFx2rbn6y6?Gr?{m++_w0Xv{}^GI0VXistaq)s=9+6hCnAI0lFwXW2|ahK zv$XTa50XfvWaNW~quI%FRo}i%e|lhi{h9n9w`=n6ybZWh>qB|twb8<`{h?f6UBex0 zE(O>r%GK;H4P1~YdAuR_QA_h_p7#~r+X%mkLgTVqr`R5USs2%;p}sfzRGgy^?Dk%A zlJYZs(o`-VZL2#gf5#4$79j+^qjT=ux4jX#mmkfh4MtxXbG>AG}q>c=RY$J zx8HkT415yNYvkX1HPLI=?%HBP`9sNpMZrK#O^fxJn|JQ@aAY%teNc*K6A_;0+TdhY zz6EOGH=$Nvv-yRXQ@d{tXA92A7Z{hip52p-|U(eIM zhmpTPsH*=3L@v#IBtF^#*X zPV@9_V^j&lGdE~x7*^7RqFGuOAHie<9)1Jr-7OGsBnh3@D^s}z0AAZ(V7vtqr4Pyp z0l%i#Y92mjz4m(~Fv~sF_Ah7=fp!(prY~J$3=!sCI33k2BHFx41lE(#%I-y=x|ZJ) zxfK_2VBLu8ybg}?8mp96_UOT!+ z0ro((XL(}3v9R#`g1)SA{1LJE=?wQ5@Qq-$Z}aP9?N^n0VEN8HHn5y>3lqPRRrbOD zXG}~(4r}~z&9WtJ;oKb%VnBWKQOPd?0iHKee>=@*CDfPSHuJI0 zyVrjUv?!1?yQH+=$yILi-6g$F=iPT5aq0f9--KtW=ekvA7ap+KovqM?fw(v~U$-EF z=b7tUuiD4apis*$sAUe&3_fsxOH9Uh{O}aYF#w;5mvnNoPI1p2!DS=K z1H=#%ymzk;PJS4FRi4SuM-rY*WcnBd4?i`0yYeK7p6vv~Fpr+fp+hD?x+dZ|(64kP z`xTvjtw@FH_&#s}ChNC<8PwfIDhQ{0Cx3o_7THLM|1x|Yg1MQvUdRrPE$a;QYsY@| z%CsgYIEY=&FfYW#Dqj@2R36|eajKo6sO)U3rV3rlc@fS-jZS9K4bAe#%gS__+yQ2M zkAAN+=C18e{kJX`f1^&Knds%@v`Eb96ul`k+fl*tPiIWf=!+KqtN4ZCUZ3v>h+d({HqJpbP;iKZ_p?l0r1o8XsZSJ4rY{@UlaUL&;W!x_j+7)3sH*7nl3?FF4%u;6W1}Z=5 zHUIiZAldXKcDBrwMniWU*DSzk{r=Cz$r4XO@o5E!f=_vsX22;P#atZr7pt<3i}#m< z|9ozI;gdH90+|bR{fk5J@>#gu*Eb$d77kSnT*KvDgC^!izPPAN zw)W+}2-%o^`DMR*Ji9SZ4~r3!wnzmn&Ej&t!^^zYtGF#H*NA;uc^hdpFPOOuZ{vri~BJO z>CUVVbV@_0UzH38;#HLa!?4Znzb(D}j2T@c!daL4;BME{zLRD(awVL|!@GlGUuAjR z9qtuqqm}nWNMXb~rmE`lfCWo1yA^r3zGwn_4fZNodO3%i^~D}@o8LJkDFkn(s%d(G zY-o^pJGmInEfJvnidBOL`8tWs%KH6}P|1R~zr3{mQHl z^=H@tl)S9H8LZF6DFA-C7s20BeGE{7+<`~uMOY~UwcupKGO2$pU`zeP3{6eJAETTm z3)Y5J=(RZl0Smj^g!~x3KjY&iBvPD%mH_I>P7km|wriQa^S5_pz0K(S;HnfH_9VWT zv-B2o-biF@biPCG5OCZ=1C*Yh3P`EgzoP|RZ+S}HDfx^5Zi(*-jh=y5O&iPryR(ZW z$k?;Il+N0G`@DqfxAQ9<;|MyhDcz1AB=2}i_DaV}ZdC{*X55!|ERG*4c=Bzb%IJH{ zj+ulh!6~-$oX?#n`UTf7=ZP3}GA0w7#ID4bM8D&YnJtqr|InmX_2}K{&^))-;b&(l z-wIgbzOPN+yjEDMC+|cO;l{;w#nr+SYlssY3$4T#M|Vr^Jaq}2Jv&>FWuJD{yiSWf zRqi1+DqVy|t9c;r%}bkj3>$JwTa_5#;(GwPa9(8obs7szgn2_#Uqs-=m30wQYLabD zo1Vb6pkk4Oi`=JB_`OC0#*nJ50I#U@>$>;UWgrd<_;q2l-S@Des`v?No#T(w)bSjM zw_tbcQo9#2iL{$zpyuT^D2_2sLUJ6tVVN1h+U2KO^Z^Y~nZwd>?QJgbVo->3ZpuCdYY^ueORJ6MUv0 zBKii$t`2-QaH{(0FBGVG1L*RDL5&>$65FguZztNU|3k0#Va{*$@TN5Vl_!PKlBSj4 zN-f($CfT6FbiRPN_lw;?&QwOcetXDKYK^Je|J>M|XQ7YoxmGi`^RjTcM*0F{`$yrW zrsE^g^Yp*A0XGDaScQLvbO-!If{!)-Plqb`Yqcm??Gbfw2O!H#kPN0+<@L341I%t54M zG%>zOEFQItcBS?s|ySpUmqH%1f|O{ALfPcKSU?^ZMdkAP5r6A zqLv@xEH5ws8@ua89Av95%8iDi-VJ$PR^wC}Fm(d(-)D9;_N5H{%${9h z?oGL1zQ0rc$#Asskm~=PWGxk4zGL?x*%4(%IE#s6fjdN#+4loX%`{^1Myb7aIPg_~ z0rcqmjhh-@D}?e2cLY=IfHh8KQ}D!Ku(Xlwjc!azY!u~6lxa%j>%)_jVJZ?8=1Rjm^v`hB7bfc=fR1uj@r=@{4HoWl~3| z(347ehtpP6Y}{~0APP`A@`L?&pkut+m6ybM=bkdYEU;lU74hQ1@bMAi-^A$Nvcts% zo~bfT{bf0@p?DOd(03gS(AWqnbbmgnLGe?n`k*MVV9p*=X^c@NmUJh+bXYe)W%KkNAvMXRTY1T<)%UgC)k3bpTht`d%(#4Rt2#Cpc$TXM<>96$o2cK zvPJ&+3#v*_KVQQt^*flJ9r(TaPoeRD_3@eKr~4SY2)9(bQXBf8c0PeFB{nv8KJ**q z+E7;Q6(sJrPEtkPYjk?>czLGxTl+Nai`BTYU2cAiz|o8NW2lR)Q9Kddhd^GjtaiG;+bfjkfY0=_S656ta!SSWiZ>NL~OeB z)Jg4fyuWKy#8vR+hkrjD#Sm! z&Fl>@n0M4gHt1G=KIP=vlpLQRdU@b5N~m~TZ%uVIU>*fX<)dWUl_q`j);o08-pPOV z+h}>An<{>4VAoWvCEVoUqV*nJ`qD4Rrd{~fx8$bE;eq^i9U2La%7$}*1>wEe&qB|^ zuu7ZPBPnY!RjOo((Kepfw<0h@i4BSsG?H&o1l#5e%`pBwshR)vod@z@c{_1|;CHoj zjMF2CLI z>xbi_!t4C!yrxhyi?bkH^r^spc0nPsW zd0SJn#phhwXy$LnWp+Pr^w>=G#7g~7g^gyi^eqSNEFG=f_i8zM?dWG%3=GSq!5g4N% zyV1(_Wp7yy;L7M*V=rH`f2Bevsvu#o@e1vEpPpVgv#3ZY`KH37&R*2IPoCkI7SW#z z^=jVLkBE;tcOYK6KwEH`S@2bW@2_{qv1Qg0tV*nYT2TR_oFI_5-(1K%Gw{aewSF%% z_T@4QF1Is?oiD9We$T1=tY{s9RWlJ2HT>L<5fQmc3m~Odto4ADz)^pJp$%-)iQ(n1PxV`C;WcznGVAGK2mhQz3o`OUP*-z)s0+W*%C= zHYZ&s;5R0E-c|qv5~j-((l}Ph{hb#Kr*~TZ6|XQrVWh{n%T`=jDX-^X^dEreKML5b zHySQ3F3u+RhA6L9gnt*W^`2jb=KViD-JM;4`0BzR>Hj%>v*wHIvdOUVbFrdGr7xe# zo@^)97O1YzhCfifY6Oh6KB(;^ooC@`lAIHS-DMy1NIID5*HKzsdr-4dX4UENRN7ok z+1xB;=Zk8kMMKJF=HbgpwJWh7Q}n^^ zw;a;GW}+>wRASO9Oz+ec-7QZH*HfgXrTQcYCCe1u;}eaPu&>R$e{5K(%wsK|n^p3O z$@>~-PF6mh$oDdfm`2%eE-Ksn+?gdmwQuSsdV|xw^-pZy;zG8&e-q1=SC?0u=dOaL zZRu6!>Aj_q5(Zr|wKQ@EpFegahvP-;g;1OnWlya@=jcyJQ6S5(o0!Jl*Uk4!`tYi6 zWJK`6x4*@T&aukw?^s#u4eb4A)bf8VP0oxzw41X;ve7XJrGHxTjXq6>K}DbbAXL|L z3Z$}46Ur|zt#GY*=0E=U&+#XKF~V-by(H!5QEJYW^}ATD#Oqhh^TAc$ABLN}MAATs z*DOP>q7WYhYj9*p`S+C{e29bser!x0c#QxKJ9=jQM{wYQ#CuHQ~{8smMw1ngko=oi-s~~h2@Su3r3FTRy<=Pk=ehbwK9xj!Cz^F3+(MCCm z&Fg!IH?VjzVmgs5j9<3m;=KCC833>#AsUcLf;}~I({pm*iR$A|Uxj9V4n}JLZVQ7% z?#DJbZZ_}*;26NsbsowU*ZbKH6K;x(s=89w%JW z6pIlq=ovh@kn&sv?^W~Qhsi~~;jBTr{ zOwRw(B24~)^kpgayNI}7_w~YsZ4)px@L&!()F5b?;uggr_a4Ma?TmW3lz})ReeG~> zy{8N~l4BKA0I%L~L%1WzoquvKL5lhXVBHbrvX3u@ZB?w}4OE5G)#cTfL)pk+9zfwS zpU^los_61`NVy2@iVd1>Jk4Txzcak5L!3A|(@h6U3#QXZ6`Hq(_-&A&0k`uo2C?{# z6XG3l!}@ZK_(1thE^OHzpb+VYCiBP#dl{molm!U}>^>|u3{u7fmm$7}l>5ImdbG*>5$7*}ex<`$B-qtEhS-gA9=vr%&M?#tHP{x8Ta zou>y_uxslnTqhKxdV$w>Bg=IPRd>gWCiTOR`B(k@1$*%95U+W3-at-gaBsuqMI-4L zgY+F2ezoFft9B>!05CVV71lmS%S+-{03V7u`+ot z4Mn5TY!L2mg@Gbt;GnEOF*r^}I9GAschLZga;2PwDTnO6f_U45Z|Jn?9Tq=R%AOcpA@;6A~0 zH|klLN4muieJ=9-;*fRjPLup|^SErsQ8vzo=r_@%pZf6m<2EkIw~Uwjp=w|6zicaG z)0XGtyCwW5^FVWb$DQ$%r=-w`ovwPl;(ekO$|wVcA{a zc>b9kXAf#+@D@LUx`SBN5}av`Iyk!aBfz=o=)>+Y!H69@|5Yfq>j^{a7c<2vU!-aV z-Sn3v_P92yGQqfTnuc|&uX-;F=%n1nI`{4y^W8VobN)wju%mEaMun+5)V7WPwpdt7 zv?wS2|N8-vpgVGMs$Z+8HI4hF#NS@w1O@)b!!z`hVRW_magt&O`u!Y6Lx3}_DV4%o<&b0+M?QozWM@uhu4Vv~=+0u{4<_grQ(5=(0 zD{ITE2L;mxM>X;J^3?kLaF0;h0&=&c@kjv;TOaONGdkKZ7m!jvwn6tEzHM5&YSo#l zHN|mJrZJ$oi+Nz1o?egnp&87$DMTi54U_A^1{%CpMG5}#fbgvUau}saA(O7`sJz)= zXggH^bH9YS;zwa3Am~myZf-7|FdUJo!$!%yCXz(2vv3AKeJ(j#`}{55WUV8o*OINu zyEj3J>Ntv6{)RZLt9>9R3xl@SwAGI_H1WEpSXQNStF(J|&%gLKoEmn@5!{Wrz>atU zK2dXEOhNVH%2oq+8Kk$wd0;0T-ik)6!<0{&`rFQL{i0^!qWJt!{&o!#>eo-$A_`IF zI7tXJh>aHcGYv}imUgX!W0}o64k&85!A8Jg1e4i$Q}1GL`W$A&9`UA-O3fq}Plj{} z3`Lg~ZjnMt`FOU>!+NBpLdj(EmCP@v0x`kOK;-V^IfPChbEDQfcwy{?o&5hzh={In zaZeqK>vFg598RvP&(xoS{NokrXXzJ%+UkARZqovPrirdy7B78vHI$j-sAsL9X#>VC zee|9e?SGIu2|n75N4==_Se;n2ZB#j!SUuWaQ)t|CVu!gO@S?}V{gtlfOS#F9^B+x2 z9@e$pJ;tUB9aWj{%6p#rA@4TJ+@&|CDa6NLht;zI$=^`kmIv|&509mB(PfXb*a?|?ZxE}TUn#5ExQ`N^(qBLktTT6lzln3S+@y4 z%6F3OYu*M5Pu~MS&D<$&pGn!@q9J^sqJ7UnF7;=5t;hW%Ah)D4PYrNvOD!E5E=7i` ziE#D!oM<20RycMqTt2{R_9j^#m^h*=4y7T8kdz6Cf4e8vnZoL`O5VxBRqf10D3S_r zz2>KT>@=$VU0l}Ll9*)#C)F(;$LEVPD8H3=8-B#1B_}eNK^N$E$eU3Foav{Y!Eb3M zEh;D^BzJtkMGsL3G(YGt7euYhp;pL^*i_2zGb_{&x_b}0Q?d6-|B)O1o+SSB6B~@i zp_tY3*1F9qyyiYAMB_gmzP^m`@~2mp4tE`+yMHI7wL`|EDf7dwX`=t35&HPh=;-rw z18$WA(=!1<&6dMdeb>>#9IFRM4b!-z&2-_TVAxjc+Oq#aRqdOX^H4}AP$w+Th{ zKu-eh(ro@qZqn?>N9MGksp`%4^npU&psU_Z)A znkaHH2{u96w-+T>DyH+hA@a*Ii%on8ARk2GQ)^5qmI?N1?@yd@1=5}L(WZLEI&;;n zTIzMUgB1Kt%Ao(it-$C>rgbVHD&`+P*3-=Ue`CXPp_l4A2jagl1hdWB^#kp<${FGTR9^=Ii$&Po@>+lMRL zN<(6YUdn-^QB-;@IiXTVJaf4B$xJh?1S1Iu+bLeEH{J9lX_2#~-=JDk1A`&alwh0L z_&qCWv!mJ~jA;(^ zlY4{`j^nA-Us%tjB3l;B)e;igJ z`T{hbUq9I^FS@x!Ny*eLwKO(}WH()`bofIglfj3ar5zCnX;reJ5OL7u(*7!#wys(Y zO$iE|&4^fN$K!UKb%a+J6t3-fFZEgCrdWm6jTeoYT~h#`vON{JfxT4n1^I<%*z z^eTGGyTw}U>T={s#-7rxHpK7@m0{yH+aY5COdjO*))F=CTHLc=YJ?VQdU`_lin+I?^yYl&2Q#hD#IFk?$)2_^gwHXd>@?h-BCFHRjR!250sJR3AqJn!Uig$O?56ZUl(0l2xLPW93A@~mA5Egf81X|Y2sB|Lo2g% zDl{=$$DuU^sSi~gQEwB1)waj_4}61@oD1=|9LDdN9-+a(!Rh%Ob#k^E89bvwC<4I{3gxuVKV)7SvJ7|D zacO!zKX1Hqbb*j|w+zeC(xV2gOp#3vZ}7N*an`vSYO`A|;lFA=3U@+MEyJT4Ue7LV z*+iDk?GKTOlX%aC+=n=#3Sr}2gZq4m8>RXw3|c2b(_M#Oi3uDC^8@- ztD!7nbk2zR9?M}re{h8lxnC&Upg2Aw^mY?;)j;tyz)y0*<-ezE{m2 zRt5Uzy&Q{6KL-ZN6_W2BcFdl@>|Lp&89m%(3GWM#k%tsw;f!XQ#{Hh90zBcb8Cq}3 zi3mdE_JR8P?_Jryzsj1S6-i26Vjtiy5sWMmS)0)WKupr_6t-59Lp{#t3f!ao`08g6 z{hiVl99%NE`6Lo2mz#(UtaWO)Lfyk@&AU*>_Uu_!60eYV&aGvMu|s7`vmC*qp=HnA z;8&>#1S^t%;v8ffY;n;pW9|2A?B^B5)_N5#zvg;i-_%)S| z>e}#`D=;Ux%Ud8*jaqBW9{#ib7lm3MP>Pq`|3{ViZ*$Op{SQE40zS3W9{WcO^wJ`a z#9CLrCUMw1>VbyBnhTigxP# z>eFw!Hhvvkip8|=#hig`@0Qx=MEpzw4idG=2?ZZd@T!m#xP@f#orMPeki!He-9fw6 zw8T9Ru$XuH=bu`*9UrU!WIJpfH_mpn*{a~&Fw@!**3nU&!TU0D695>MJcIiTF01G~ z+yq3h+y#H?5wU&iCf!nB@<3gtn0(nY>o$vCjj*3-Zp~Q$i%P^Yj=y3IOxNCUGR}6 zRUhWG-iGq`KmL5@a8ynoVW>OKODxyTZOMrn@wT`B>Qm>noL7R4f-;&O_PY@FZP9Fv zVd_gtHkgD-#raKbn`cX$%Xmyw0_nb(qobRr$A)aFB>||A9(u?nPO5Wg^dw2|zQ421 zy~Cm8w!;cIY}Z8J6x+VmDqN$`Xn0_|y+^yh^i-@{o@=coEt9txYBOp$wxbjVECIXp zBpDYf*@$D_9JO0Hhf2ECL!dUhmkRqu)3&xzyzZ=2>+n=%s+&U3H_ZI8RZ-I`clSN~ z!e!&h0K;k{!&&&CDCws72^9TZgp_p zTw^LBQ0AeE9$UqmBZ6zZy&E>kZ8@(F-k?9$6Jb4GB{%$%U|*HEU%$k4n6hp(_#S-# zn)5^Tlv-!(2>PtrOgxYil25ZM0eW5~n^Mieavj}!aBAHud1xKq!7`!R8iUz%ZMRyU zkgG8kE8fR2ApIc@Wjn!ddWC=a-)hcMH19_rZa)t}^i0I5c*0hLVU?7&H0bte#|+Qc_X|SwQ70Tfw)BJ{L^~R-ocjz(^*CPtR?8)$RH5@*Mu= zJ)~cR!PNtNuK*a%)JTXUez^^R__FS~M3-(NG1*PmIw?FcP=*`B*WlogY>Nw(b8n}D z?Q3c{7Qv@9ov!$?N=tf5>$5MZR?VBGTBP=??D6^58!GKEw+Xbw^&g+-{=rjXkW0W!(@redv*MPAbu zHlGDJjjMP$ZRK<0IdknO#})b^Gd6y1k~u@wrBzin46Syl4{kZ>DMA_e!!vM)%34?U zK1T^a777x%YJ`z;fCT-D3K2N&z?hzL7mMEa@_H(HAkZCF_ zlM6-o4siw7iDD_;ZZkq zSf-wpA)H6?#yv9K;*kAQ>lC{?eCDtWI#Fp6)y(+E|LBhY zonSoy^fG_D^@luV_;UuH$_XzK?lH9P?$Nnji7nP)Y{xRp<$V2EE6>c#Tr#xj4j=)= zOnq>sBiItgqgk~K$18a=yARqd;*#P|74D~%^hUmEEE%65fN`oL_C_no&*p*ABLc}k ztHHs#@*^E=Zc6^BOYE%}Z+}r#1XZTa>q>1{YoiFGw9Wxs?($a1iK-7rXUwAS=Iv~B z`wH5Swt|Wn!0J!-C(JL+r)^LBp@?UfxqJCx2VAb_N!zqTON#=CI%&&h&jL46-N1%t zSV`ns+I%T4rM=!rAwpn;F}o)0A<%^4KQ{&#>M_0G19RD%ZFqLR^f?7kq1?8&j2{iO zcwT2cxOF9vaEG4f2)b6%~k3dUH_GcNE_0^>KM)<(%-x( zO1d&-tJUnezdy2bai?^JN_2N)CJ=dI%tl?h0u>KmzIhYXRc;em4KIN}-J9k0C6njp zo)1G$bQPvU0~7})4nEbM0h_P37Q(z&0{N_c98jBnf*S(pgj|I`7UZ)Ljx;OR&zpRk)5`CfspodQloRgrEqx&c^W_b%4=@Zn|92?* z?>#XEg7$X@?hRa8#e~NUK)+y3)!YH-2mU_Kz9XA)XPLYj-i0Iyl^Dxoi{p~Gqu)$i zbJ%(R#r(XE9AQB$!$K;YB zYAA|(WKjjBFtT%L+|_U(sbNBAr3Egr6n}4SN3SC+kj5NzYV9NJAb~MN5l5YNPYF zGX*#Yv5e0&i>Ck{;IS5Kz1a}poWjdlc_02yF3E1dv#kj=IiGleR4aDS*Tzh9wKtA)c|~~(c;vyz;zMByLypdE2fGQCI5u$ zIlK<9HX{xmq$nj5EwE{c$}Tex!tqF{nQbroy3Sq!So=ZY{)l^T{}l=mtwt;TB%b0+ znN<(lvBW0^3Hw{gicxF~?ro)%!8aq;}2XV{xSGll$(5udsleE)h;Q*OO)U*(pr z2;ui!pukc+orro$wNg}8Ho<*A``4PXwR&zo08jm701D=z1#pb~IB=oI%eXRY*=?l^ z-D`CiS@K4oevpR<3j2N{tPXm9t;A(J31^%h8F7TuKTMCbD2Pg0a!}c3UF^^+Ni$9n zEgGqXFI0A7_|hxXQ=Eu6Zk(G#KUa)pgQ89QBPZY2Dd6bxb5zlrql&RvE>>tG zkhdLB4hj4e2`R*ijhlvKayo6t9+SGW*z}>I%tuXmJFR?`922vjG|4yr%uQmpTn=@x zw6v7m=pJw;3qDrMk^d{>>{9%YMKe&)o)I$aEbo^<3iIhK??*DH41`59F<$zsxmctb zz_#T;ZF@x3loMGy(<&9o{F}Dc%%BC_p97{j0Ccb{mf$2k?COT)qMpjvky$_`aR4Cu zoHCf9o|G8))pb6p-?VQ0&PSq;eOdob#RPA~=VGwh9JcUf0iF=2>_B!S%ylrCzfoH+ zwW(I%Xe0zZJdP3u+ccs13iHn4dQ4nbTN2lmtRpidgnfFe$T5)Vx&y}z@+huoITQeA z;qi4Y0j`^3KGkNV>e&|d=`1eIc{DrNcOSEoNo%tp^paL0H3i!}DMpj~UO6Q&(C;4G z?^qkkgqpRHk3)6uX5!2m8r!M&%&Elt$U;a$Ghuf1=`)Zw|B^z%hJSD=K7F; zK4)jI+hn>D(L!?#RjB1>v_q?L5*1jiifKVJ)L`r*FCTwaBUw&(y zs#MdF!i3$#-s*;Qn?0)%p`&-+ zRKzN+!iL*?w9IYl+B1SNN=Cd;Xlb8gt!-`5uL8%D%QL>SJ$plO)%s(bV;un7kWb0I zNJnz!KpbED=Ybo3PQ4@h>xb1_qo6 zW7&H_Npx^OGM&H6C=2ME!&5y_yu1j2|L+1wc<`CEnV7W5EvVaH18M**ru933TL4-i z!HccMh$F#HIiV2DY2R<3WJ+z}QAe(f*Xc5}df2BBGt5SkoEJU~?*uC&dh)V#FnZD{ zb{I*$lY~GRej=Ve!cKp&Zd`>sMv?F)%cdv++~9Gs$$NQI6jt*M)8Msc*`QXs44{Sf zu8$#5zxsm7R(>rus(!ik==JO>xLqq@7NqBam;0LA-P&k^QL++21mJV z1&ImEW3AvBx_cGtiCpCO>3nJ6V4r<$ozD%E&E3s9kmbGtw}w=r=d5Vc#(;93Mr@u}MN+`t+s@Vzm9BwWC*%q9Dai5?lB>gc&|a z<3b-SAZpgDp3;F=t=N~}{_@Nu?DY2ZOk~t#9IE~7Ji~MGI$xUJU&eG_(CnOb^G zoRWnVq3CT=QZMxN(!MW6!sA$IFmY#nQvqg!b(fc_JT1%BWI6VnY7qQvU^$P1ozc?T zW*9t`glSK63vt^9EAR6<(hUg)otR|#K@fXQO;co|)$oai7dMPH2mHGb)G z@WgQ9V7eT!i@8WkAg)4{1oNzTGFha_K>vDZ(Bz?qgBV?H<9a~A5*H!GR3oxPj##Lc zC7!(HnJ9}^UQ)7N9XY`6=wsI$cSZJ~+zc=((Um*7nlevaB=gHrX6IKC<24>_>28cL za+w0mI|NGDJwL&lD!)8c>(9AcIfM4RJX1q)MP)-S#j2NVri{WgQS`T~EDm=uRnyyd0bz|OcU++#xOa6RM9(KKFQyXA#tZlU!7-%(Uk8AQi zA-tSsdB9gw{pP?G&BISZ=IVT}mxQhmhMfD%G%i8RVAUJHX-DT*zGFdin7>5S0*oW6 zK0sz%DCat4@Gf&QFK7O`#e@B%{Plo87tSPcCG5uBlo*tQ2nz$hQbkU9D5EjSGO+1Q z|3Y4#_-UUWPB?L?Xg`hU?e{hZ$|R3nChlIQ;BcnNF%7gn(TQ*+%l=` zOvJW-^K2)w9}XagVsLd1bF0<}s-}n71ezyk{K+1lSx=BJj06dp>t@xUiH-%!si)8w z#Nw3wPP8XMuFn;6!I4Th|9$3WFMr+*@+!yMVXBFvRbslEzvi>#bQ0xr;0aNlIqY?H zXz;#uIK&6u&JSz430?^TxEYuk8wi-vT5*>ThVpWlh-u*uE}9Wom|vYOdJKd|2=moSM_BsjDJZ+exc}!HEQUzS&SV3q2@$G_!%L|tELbeoWwii z*_@;ka$V$>%wGisO}W4v@>ii8_+H)b8FU7h~O`ShAm%R^07va?ah!PpyPk`KnjaiQmD-~JcMzLGYnPRBs%4YYmr zmjf;ad}KETu2oR5lJQnNyy>F`vDFU{UFdVtzAok68xbizrvYe8M#`AZ?@y#b1iagy z!l=L>@r#OZQeDQEOr#uGm2St=`>b{(dHVUTnl0!7S{MXsrcAxirO8agvot>{qYM`2 z{DCukYjx!!8}pVz1^%^6BdWBpCW&idh=EBO@|BlUiqh7<&eiiz+JS#<*6_b47ruXR z4X_0L#DZTLIzDunNgSRui_Z%mJZx{|y21${{|7kLm8AS3B_MCC{mvT`;EH8~h5Ecy zo!lCo+;=*YTCdCB9DK6Z5>jZ5C{i!%=j!FFc*bjDUIB%OL+9>8o^8X#NM8jZhmhO8$pIKV?#{DoG-$&*eB@QsE zD9K{ZUHui!rqGhIr(d7$67r|LsGtCpqpS{CpCn90zp&`Tcc%E22C*zku~n!6xpWN|MTCD#2KO~(k6(-+>7{St?EDk0u_0i*9^_rgiH z0-{7gNC!?016egFq*t{-)EMbwn?mm5@F)p|$!wC&1P=?&a~-Nme1?fot=mLk?x33e zgZWYgnERM+%j5w-RSIplle?WRK&()WT|Q^J_AP_w!-d#DB`IlX>Ql|LgEW>~G|rpW6xs39~T+=q#k_?)s65U8)>3_=jzXoR)=s^{{EYo|=5{p1pmW z}h)LkPglxu9vzfV!2X z#2xDbQ1Jv37jHF*B~h`#A~?M=Ww8qxr5=i~p6;6WLyW$fAewU`OK&E;bwVK{pLV%7 z3W3#VzI8FE!>3^G&?w^ueU;&I5~2e^d@ zKI&hsY`3Onr`s$mtBj-}5haj&pJTR92Lb=)w^^X!z~#*d^`dTQ)(nL8-F?cw&%9p} zw*p8)5f&PbdhYu={@&NVSXKs4W*8$g)*;Kk- zU(NdhBh&`D25IMb1STs248SLn8JKJpoNFVg`l@)}cz&2As+v;rlA)V_=NgBHoWEo; zACCXxHmffeae`ZDJHna@PAnYXKnnfZj5_FGKD99GLo z6gC&eiN~ZFPq2V*z^Jy?f(QMgyW8HYffF`Rk`K&!XEL!K6qJQ*cAILz6xmORj2$%DzD2!uG*GWm#s-+V%518>r**nZHOb zhBRvna1ws!*9bk(b)hA8l_5`!-_T6tx|m^qcNZutVhdlmJ~}$OZz9?Bocxh#YtS#4 zPI=*z%SRq?OU|3Zr>5H@(P0&*B0Jw0L&04pP6GUeLpo?_pREd{`uy8KXGew;KCZ5C zGn-8kO$ckDV<6<^uaB|bJ2evMo%8GnxV7x$or7(=)AYjk?^6g=h})hPWjY zA2_4h%=iIns~Z4gstyjmEBYw^7F!KZ8o({;nJd{=mFO_;1?MwlQuYKJb6-4_7AzG8 zbJ%KB7v=>2EH%E0{%K`4S75J^05qgrMn|lFiBRCYL=P~A^}aGfo^*h^mV}lc5^N^$#@HgVc*;ZVl>)XsS6d+!1fzL7-|Xt*NJBd6 zaC}criF5S^>xzqwRnREY=8tyENYF5Ju8|}R-Wt1kYyKcG3&(EDv+g#rFTfxq4?=|Y z{SW5eGpy;gTlbY7q$I#pIssA8Db>(h0;s4+Q4|4{79c>V1`tSSf&$W1lwL)8@2K<^ zkS-7cNbjA{YdC-B-s|kO_O;eJ@1FC+*&n?0qDhh`V~pn>zk7^Opm#U3S9~O$LVC|~ zXmhT&GU~~C2;Y)d@B1E;B=B25-mfIfuDpoDzWC(rQ?9~<Ww7?BwM4o!6R7X$+Wqgib^f(pYi`Nku5~mw>JUOkE1>lDAE>TI&Pm< zgVW`uUG>=You>@gm8*o0#=%eUgJ3Y&9^wAT);1%5D&y)%jW|oyLa3*$6>EydX8L-9 zA#|-Mb$!GfZM7EWmw#v&-xG7>Wc6${tle`o^U)d)H@dwYRiGjx^NVF^=Beh!*Tc|; zq?qy7!&T*W#YMZv$0sFC>mzC@-yzfP*TjB&JL7=Ad#1LBlv7`L{<~G|Hjk&GS&9dF z`mAy^Bde_RgP5euC($Zv#Vxm?J3-#RBBdK+56fXmk_o3OKEWrn+eLfa2Kgd zy}nLo)6>%wT~t>OHSg|2)FLTXx}M48Dwv1@yl8zb7rPOaS`7{XYpga_16mEXN3%m4u7LaB~%AUOkJVo0t01itmk~Y_S#Chzk$D4)9m4^_Ywq-jvKlYcK3)&R7!xZHE(P(s^x9}m8#{G=xow_{GLIv z1-rZ7LZ|2xl-FmrvX9ow$q>vqEEcXK&&xy~#)56Df!kObAb^J;Vdf8h8mn9dnvvX2 zB|wKaj@bZkaonnTr7JGb$sR&@=OkIk4haW%8mgFoDuum?jQmTplo(57{;tObUcNxh z#V9oBuFFJM`$poT)KKkm3_cnn^SC>IoHH4_zwVV^&1On0Y{6W-X*5Z{d4PRuj zYi(Stu=gKm66XB5%LGA2cD`fAgoW!>TA;nD$pw; zJ$|O|RnW~rMGeTK1<~{jY z;=Vxm0#2|ok;OjN{@riEQ3t3OcEq8kq1;;P`Shu4%d7xORAwm+eMUgjb?jaT0YNeZ zXlfa&wK0I0Ov(R;mF@o?Pp(pebAj-nzzsaJ67hgIhgNalI-<}5ReSatt6e=VCY^Ip z%xCd?ocp%G)@C^#h!b^2aT~vl3!XMB?S_Ifbh;>DvP}6*LMk!>=*nbI%!e9u29Xn< z57g_!F-5Y!Yb2=8a^)}^m1Lmn#1Uq_@_=_d0=C>kl7!0}3N}lrC~VI}MC`A4^$9NS zpsegdcK3<4b^nvdT{3gB*)vWmhqTl1_<+<}qQ38-)Y2#U6zu^M2MWM(hr*T7wCDio zO9(5MBbE?VV_c_(cYyK&5u3paLxE6$*tvLNnsh3|ITGkib$)ep)m#w(ybG!gvDVWqgR2qk1Q~)92T?qG9Iv!p2%~ z3vZZz;>*48PR0NjCZ#`O_`6wYVsZkJAHY9m+NIB=CZ)#;Vz~bTayvDyjeN!@!3dNX zM+$FVdpl2)?%{Yg#i1kC4(OYTPR19Pyi`ugw*w2pP)QgQT;=O+6}U(B^@;?b)9xH( zuhLEIcQMs=?VMjYDQfM=%tRH+_7j{Wj0Q}Gg$tn{`BEv&>{JZGxxEsPS(=mhY9BWsQ!;jku2p`@Nu2UOu>aL{awKtlN{llx zc`;d;2pvTOOzv9M+@xhF{)%Dl%bry{iDel*OjrzfvmwLd)hoElvb`fOuQw684BmQB zy#ek!AqsRhw?>uTpj<9Y=bL&yFYI`u#IQs7yrfp;GJ?u%8Hy#haL z)fzZt-#Z3=4o6z?>J?~iF6?pS*)Dx)@4cRr=qxYDOeG1&c5hD6-4R*q?2$+Bm)pHc z^w2H3tzl>W_4bCLkH$uG>>(+YVu}pVx&AFL9;mwSro0-Y7w5ey#nby>z!;IWo5Kax z&+VvKn4{VOP^eR0Gignr8n1K0ZB6~VIi znXTor6y_7X$ISyz$z*bFy7%v5;`~bfaE5-Is-)EJ&vnDJm5|Ma^2+X!X`9tz)zCgX zL7Ug@pladQNwb@lck@X>A2M??B5beI%WkdLP_{cxX_fR6@)DbG!dqVDc}hb-$Myr|afxy@KEpPkj! zoiKpR^^wF^MNfUB_lstBuMhZd$lQP2RQr!)?%EucvHIpN6>vEoG?)yblj79ETm0?~%g210a`ay%2jPD?qBP zI;~z?P;R#o!G+HxP8eT1`kw`jhdfj#O2A<2rj^sMbp7ZN5$Jkhh$UZf^en$Q`{ z#yL@ddhBC6G@Y*>-NYcy^V4@zKWrau@I*^lnx==KU#byvyvt#2Csw4NaLJa|tswZd zs7xMb0%x)`6D0u^p9wFV(RyZX)+9gu96uIW-Fyq^p_gie_QY`z(q;mguvU8qFz!fB zpPd><`}i3DFmmg5UJu+8Xj^`m09rxbJnYD|miE+cX{hKQ@Mg{$D(qUoTjt^M__{My zjzGhu?UZeYd9&M@5ev=x(f6NXY@Q0mn@|Hc#oI+qnP=%p9lLD_McZLQ=e#gbO8zEu zfe7lX~h=Dp$UIa zR{%Ry;iun2FidK5!026!YxyPd{bKY}rURY>4 zNqS*9mNy|5k6Bmqo_@GLwjdmSXzOvMz;k*BfbbBVQ=!c8T0OYeaN2_Rul8*fooq)T z<3+3SG}K*W@HJ2l|XP44CAmM9?5k7G}f=p&ie$i?J3;d zu4+s;avm>4eb2>3mD8Liu(Uqt&{~rQ9uNVX?5(9GqsB<+OeiHp#2T%s@GTI{A|#IGSLN|Z zMvfmR&dKJ5p`+A& z?Ig*4`RB0f@JAuhVq#)^o1PR6a{rexx`RLKo&p#chvBM8hZgLd=W+?>>9-24g;h?> z^?2jt?}YBwb31v(Pf**w6<*q_VPh-1mCOmsKNl>+4tNQ5qYz&{pA9oUfIercIDK9; z2(8)AvMfdFR|m?hE7uWL1C2XuI*6Y=R1l;YB33nIxsU$!NnQI&ddM7q&1E^&OS(l+lUyV^Xl1h9n!= zSz#XF?6s{lL}fh*%@TaYzp(5lkR9NN%`R@o`wve$Zul#E&crY%x;DFQcx1=fO)y-k zXx%{f)nG8y?NH-Iq1qa-^NF?CRi)h#^QN!RuE6YVDw5e+AfaT9WZ7 zZ)~zNFPl-^o2I_Gva%8Ex7eRN6EXg59<|q5m2P|3^?Ljm<0eS*cbKhq+fr+tHeaqv z@$5WBh4ro4~OWv-POEw_a7t=_Q=kqMtFmV%r)h+2ahWElu(|a1Jj(ZKW zm)~cnQN);`aX4&^+o|la*8xi;4=(yp{z=d+Z#$KzGx*=+*iO0sh$8~fARSK60Sct< z6VVI*|M0o_2HyxG?ic)&U-z8&FGr_O@R}eFY;DGKfH?}c?x>3X+bn<)>y^^{NU_Hl zOUE@iGXq#wwv|vduwQYdeBt0lxNdw`(lmb z2Q3T)qXWY)k&W~4>!;v zNuFLO1!5?hTr!35QoK8e-`%9RA8GAO&jdsqzBfuV^`#M?8zulpxEu$zECGtJ@bf7~o_B=x}@i&wPRDxre^7LlE4qZ)}EtJD|2-%+L5L4YiwUnjf#h zO7Y_|e=FI3IC_&?kS8DQKHsh;^lO2enx=$R7GOE>(Qs_d9 zl3?u$InQMKJx=PCD5b$U5EVe`BA@Nnh@yK)V=CLVME(&4OnAiCB1u|>n@@MVsbKyl z)IG7~&h{tv-1`ZU_>&`+;})*pR|@~AV77E^o7;%i+W^^gm8lT=EW8l9d8zRQU_r^_ z21k{fbOJzGTD32K>t7>U{=X(i{fBe;@4p!EM99f|$aPv_fig@Xf1WCi$r_Q>N08#l zi-#Doxa4269FKh_>QtMDg8XnHPQVXrCA~6RZJ5sQu`IXduUY9xO8N7T6ya|x0?oq4 zP*Leo&_Yr+sxX{5d+Vrbv3$k8Y=*IBA5j<+sK^lyTbVwtYL&T&8s~+6fn)N=u{+p} zn>>Ud@5RmuW``}h28Zj-n@9j?KB72HGWUdMa1KEMOqaRp6=u9bJTk1y&3lh|n;}G5 zivm!}?AjfNKqw+xQ=?D!uweH{(LOl|yRoKR?A4bV;qPxoUk8VbZS*P0Aw1M_v#{B$1lWrD3t3PTfx{T+o5SGY1(yh>;%p3R{WT2TB_H`3c39cMb1-he_+sW< zVp{P@3|W1EB!Ih$A~GZbtZt}8@lZEMx~*G{GRjLNp3&2HF?4E7PBvWr7&nfGGMDak zzI9eki}mH1pH;L|THLs;y>Z8G)sxpb*v1=I?gQ*JN&E}c9oWhNH0lAm!X9fm4sHmJ z!fyzi19%c}MOkkE`0m-2nCJiO-cTRO4iRbsX29GZxenSrYFH=w_5z$ER2vvE@Xc!P zqy5I}{pFsxl{tTX7N#FYe5=rE{oG1hU<{0a6chD;=I9-SR=L7Tdv;fA)a0T_ioQ;l zH2TeFT>M$X|KE{2;Y;MSM}?#hawlz4UU~a5zH6;JIi#gwAK@ zbcAEkcLA*V{h|HICZ5@B&$xA)t}Ra+I~`kRk~CohLQcwP<6 zlru&gq<3h-YsB<@Z1B%q=I zwT@$mGPW*IdUs*;P;-!4ai&OUC@j71mzMvIWOc%=E#pU!Bp8gkg^T4f)<>eApZPOb zfq*d2PhsO%*v5|IQTcFh=8d;tbX^N(rgVY)du)P<;?>9fl34BgtDO<~sLmi*Mf1M) zLDmdS0JM-cz;TnkI9R`Ys>PoWqzm&&i{5Rd;JuZ5AuSGK3$TPQ$~oqNAxf!nEb}1% z0qr8y`Xl+j44VHwfd1G2?osw5050nC3@SiXNCfI=fG^jillqNK=A3vu6u+dqR1F(W zwfnjwtqHz0D5cY3<+#De1acg5uU5%$_KmY&F3au#Iy};>`PHQ5Zl>Y*$5JK5Hh#Wg4LuALP zfnbtiWdAXCUAauv2PsJkqxvWaT>*cPYo7gZ=ZwPp>H-;ZuAOTM4yuvtg+Y8-1I@J0 zAFSzTTPm`#?vc;!!r<7Rot2H(-PObrnWV$mE*%lO-d%HMt8NZ&I)%E(@;XQ!%QR;s z=Tmn!WMS*6Mg(6?U(z*Fh-UD?pRc;;t3B)4ggR`Ms`8|_Ul@kbNs9wGxO5oE2ElPS z_fLsDGk5nFH&(TPX#=JsHLno<6k(vqM8Hg$k`e1UN8cmxabPLPap7(%OaoAG&zyNr z^utQIcy44BT2&;C7&)V}`Y_sw(&aPf-4^rvtit4GWR0zNkXoT3TnE5ZgR^&*W>OQnsjm&H~b{f@mFqc?^JV%eg%GY{h;VMEQAqZ>KR$2=VslYVXLP)+pK zd}ZtD5)O=dUJnv?!#Ky;lf((^Q;-@WlbCpxgndl+Jg3*DkJcm3g%`V zo9qnA({_Azy)1grjTPR$QmflROG(2G!)_ujprayy4MIyXoOXQ3kxG+YZ$FX{hi~8L>{=y2lEVH7)fU9EZSSk%r<()PEhr$-Fgofw%LG~hAb3^kzxnGS9Cw~inXhP z;Ez4Rq5d$d83kld?6HxsaJ1$Qp-$XBb#{DtP$vz=gwXdFdC}Bt3|A|NF;4n_} z@}(XpspgqQgpB>EXI_pG4x`LZ*R8#gpNFC`b;&{?ni^7>v_|2}vE*F^6GYV$62L%h zmYt>4oI>kulv3#ZtZ0nY4W5Ss{$O-XOwVWtXghA3@)f+`?-XZHX^Q2ztf%HT)h5#} z0en9#?b(g}(#y#M6K9*%qZ6M|pBBcvEkAqxqzAB5fPkp1@kaPRkrwF1Ap|KgVSrG1 zo0@FnYOH2(w(*>c;aXZjG^BTJW24`9(=Du@Yv7&WNg&0_kJ#hS9t`Vn>(+}<4bk{I zEV?*fa$|RXim|3*IqbD@B5Z$3Ff33MO`}L{@@9XiHKv&#{u7T3v+fCvfRV}z=YWZu zpP@239TTAi$8>%U*IPGVHJ83W$J+#Mih}td{^-Ya<6%9v=Pou>1h&f8p1fEa+@#a* z5F+z;`LRMzsqMVG?IDZXrMKJGUP`ri_KbD)d{yJ~k@IGMDOtCWa2S?XEGaw@!D~)- zmL+G4AO2P*c6N4L!<{a@GuLZ8P*A&)@|!Th9h&w_e*HaV$lQSN>$e*G3iNkw7q|dw zU`l7d`zFhl*5ZaRB6Yt8`*GasWXtB@6x{RuRM|7ieS9tY$_QWwVFEa`Nn+w7HZ^I% zvLV3s(MWXfmGwNFrW5DOgWe>j$jJeouj=P-_lNGSRLAmuy#2JOCyvWukD!NK7#{(y zydP}u<;o*7gpNPcdJ~KB(ZDrU+I4E)YGMITXVM*<#w(xaGeid`Fs=q^darew?*@XrdV%PgdZD+jN z+vPn8fOVIw-bNM25ci1o$X~+nKY+iFm30Wls#lY5N%Q9EhsbQ(83I(bad=Aer=Q%Q4ra%!}ipCvBU2Ea+y63zcDZiXjJH^WC^)*Sgb1dq}LhjLiB81 zjg{$Z_V#zvr&GN5ls6~g%LbdO=N3#E4PMC^+ z@zl>2$+K|7rs9uLH1e4pWC!GVE=^+re7EkQ{foHdDl+TTZ?}WDtQzZWRIo}8pYP8a5o<7;7uBpiZ8LkR&z#sE|?(_njx zs`0l){>IJuztaS%(xV)>-iI@N-k(UTQv^A9M}758I=!FT2=oii$mgtS+rcM9MJ(y% z@rB?$8$rP4UH!A+Y<%_twG|iGEqBWFVWB|L{L5$$k&1#B%SUtrHup^7`nQK_$$>t1 zPG2`Q6@J>w=c@KatVv4`5Zs4=aSZ|kTHA$ZNPG%8zKHO2B~V$RJHN-uG2!>L2Kk_D zUUaiEdW#K6r{&eG3^g8|5y}eY0EFB*Kt!p=F z?KslB=Q*xoIuB2&9D)!`(Ay0k=BbQT7vmroLvBf568Y(?JNtLWZ$OzSY@>iFko~yL zzDcbCG;50P-sEJ;g%0EX-P`lYd%qJvUttTK!fA?!_vEb?5K1&9*ajE`#77L0kP+y0 zDNgxHeYW8)yZ>pLaM8$rU!3O_?;jGx?* zHL)KsLjiAq>?T44Y_%^kkn^c+UwiQLLRlF}h+Q=U7AL=5dmy-2ys~?$3`|hQIs&u( zvghX4i4vRJ+U0iU-uu5Op6=!aqrK;!217k^`R9H$30!2qb;O`2xA9tes3)QkUtas` zJ%xz*xyQh0<`KDNlBGSPm5-|J@J_-^;9_Coels0OTZSnH|24v2TawP%o@etH3*Zs=`3x^+ zbI(@0=U-)(+gjqPKrq*hfp?Km(tW5^OSxoQ#~5Ji*jnBgtB$NCMs{%gTI+6(sIo_h zYw-|3&|aSenbELw%U?s@^$rjECCQzeq^s{d>^Dzqy1kSdJ2YJ7)vY3ya%|8lBaYeV z;A_AWSBoX1Bzw^_vSt7yX9!(|01W|z9ALx$0oXvq`yM&n`cWbc{rGd9+RmUb3TQ@K zhS}aRAjAnL0yC%{Z2vPZxk}V82V;ANShk;OhEuP{ojdyg7)`eCf|6&J2Tv@i z8jsU6AS2&w2?M%pL7%u9j+R(~@`0uPwpL%@-nqpsG3N)KJ zU2EOLyDur&LYKg_%Km>%i0(D2fSG@$x~$e$>*49M&DO(_*C#mM0TrrEFiYdb;$n;U zjc0eFyG{;blBGY_VQ08Hu*2@YV3~P~jgjNeO-Wc}M;vXyF);h5uwThnz~|Z$pPKaz z)0)_h3?oPmMJhldtma-z1xAE+&`Ak)u3QO7OG}&ody~K>#X!25&2?lxdOy^sbA|i{ zQrMxFIKF?&1NV|%V*76%OR>3IQ>jUF^m6obL2SD;L2SlqDJ0+90dd)=q}731^3={> zgmbET>MlSy=StT+ohhR&ClajnKw33ru=%&1YuVYiiBFMTp%LT(i~c*l%vd}5mF->f zkr_JA$YGkZ375bU&yf^6kuYmMHWZlFl!QB2c4XXj9iUcLXWl1Wk{~)uIzpVUi93Xkhj+k=783lx-)ehnE7n4X!EXAQ%925W=OS>;Qgj%f!jTGC zPjH8PA>-o47~EQ{|N8zFVRK_b>&AvZA5a66NTa!Z3k#hXWbwjSW;CC&=MJrpjjXQ0 zM}Qmrv0M_z*2Nu(Nz6z@x?&q2Ab1ZH$on@psAFDmKcV{yMU^a6RiR zo%Uqf$&>kH{9kpy$yCILg|Ts|KC;hVH&uN>j?tN7q}toEUe$-b)He~H4-lbu9!&M! zLeSGP>|Q%qBtKAX2z+?+8~;`MTb^u?2VVq(z&H8%d6!ZUpu1K=XS<^>Yva9olu^rH zBV#*_oJ#hMv7fwZvFkOM9z%2?4X0mbQptIceK4ImEtuXv@SVHqW5^u|>ylrqX1Uv|-U9{P!5 zz7(V|it6-ZYM)^+Ty66q1Zv$PZ$w@So?s`*%GvG)=<7y`@cMT)irA%D0ezj|G3C)x9iAm;XyJxDU} zTv|lZDw_HGv|vZI`$3BM(+@EH0kck}07m-r-wpGO9r%f({GZHf0=391?DzDsNy5U)_TklVOn$(BD3ak%7 zrk^0ylxozyz!F=Y|7;!2zw$vpRtW!_b{Rv_h7a*h)LbF;Sr5`iC@nj-Veblk@TJu& zAkDD)(q9+8mDBM0Ek*fC*tPZcS^zIepaG@YeU+Fer@oh|bNI62?q4CDdqmrEGav~3 zpzmUE7b@-X9+Ic?Z|tuOfKH?EsRXjS~z!}kK(M&OlRej@}X*ke7j^u zk1F(Y^3l0F?j@=nsSI}(QY|Q#IwFE^kG4%wJr9ypFe*HO1&Uz~-ucYyaWD6qM{Wm} z>AUY_`${+v0!uSK-1jvLYNopJ#vRjo)_ETJSlL(Sh8lY17XlF1C>oA1amo~_uRfox z{A=r9{?jdYmi)cHe(|WBY&PAv|CLE2B^AU7RZ(IrP8qpj!*6mHj*5Nq5cI!ZlzTMP ztl&4zJwI$IUp_)#SYVM!t@HhcN2Fsl>2~$_ z_I&eGt60mC+Qnwl-ry6Hd@70)58fXs`x8EJCkq?EQesAwIA6CTK7BN&Aolqd`*SHG zRQFbYcd`zsGf7#o`gCv9b)4PUeJbXbvFuc+cW^zdM~N-TeLA>)pMp*{BFe}%yJ+X9 zW?(tN==vsaui>9Zt48L*SIpbLc8@sA|7*)J|5`a^s(Ra$kY{Mt%`-ihz~fgNR^OYd z{{2G4z_=mP?8*emZsW(|(KEr#)uTV3A^8P$?;<$3Xl0q0)!#6O2ZJsP=#u#LRf;ZC zvogjJr4!FYS^N&HW}2Pf@~ZX;YJ?J-;@DSH?z4)RXI)S#oIQ8YjDu-(_%XKj2T*Y9 zBU@vml`VQLMU+=sB`YRZ>V=fb8R={ znapHw1>CG4w9l!&66YXNce3RwXZLL>W9seof~=XBfuy>#YUd7%7{F zymf`JaJlIqr>WQM7sa-(n;hPgTlx}te!N!Y^aaJ>D61T`M1Y6DBi~)fTq> zudO`%YuTM2#p`-HC=McfpI29SO?XtCg+It`_DZG}X-h9zT z5Cj9WXwy{`p=gjfxy)j=3DHz3k`WRhqOvS`IqF0Q;%-uhJhu|Naw(oZpn?fkXV(=1 z1ebFxjES^2(V^$*-u&@QJgGQG;hv0drhyCT4{Vn~#cYV=$B_XJPEznxt60SsUlM4{yp~rM{@WWjKON=APMTo+z<-!w2u+k=? zx>oUfFRWWmkmuzuXWqA1N;T1&Nxr%v8XAHsdc(Jr9fiG?#43p9Q+*oHUEZHGcc3;v z&WNanToLo{DGU+&b~OPAAZz+p+A&|Zeq0YsChugLMQX{k$A>HFAg%_q3jZs4{eRX2 zet%NJtU9xTQ90V~c$P&Z2!fKe9msn4MEbAvKA?H6wf&QqSJZd4%8C@h%>liB(Q*5j z$0{jDs!v&8m0#xA^cEH{(~TTd;(k#GZk#cEq~GuuDEp#nzSmI zCfyhf@0!tYdq49|dn7tZOM`o{1ManIeM$(!gjzE2eJn_CTxzV7TfS!IFZevDwWOz! zzG&#~N^{K6U0_vnn;ryidLvM*gfjXfpRa`Y*^WGad8dH5mr=W9AQSUy1IpNs9OsXJ zUl3A!^0d;HEeY3{8DX3we%2|NoCJQc1y1&GC;I7pFXFw9JDBR!6v<3kyKnYH+wd;v zkwS_u{bSb2a-&`UsIQ{V_pbz4<@)xT(=$F&-#ibZP1Z|Bq`>GwB0Jw!3K+N@s?0Kn zs^_AfzNrKD%kcgXZ=(lgCcL=kKKJQ~t;8fl^5m~eThsxUEVd3SC%mylBsfRCT&Iq_ zTiB%k)PAs5_eMu~h;~%PuvNTU?#)e=uPX)LOKhinshB}Xe0cs0*y4>azleLG%HZ{_ zaoI#=J#UfcP7O3>K(y$7Orj2WW?&mb=6pmI2>w?O2gf^5^%?n?YODJ6%ds#e^sr6i z-tz-Q9htZ1p?IdQ3=jpne@6i&>9Ifg8M#^CG|&2{Mp+|R8>^S;F7rqkn*069_s*i; zds!>$BP3h2IhK~NIVA`x!S*r#$zLzT#r2Ru$9dWYSNS=Eo-AC;^;z7bB?KmHY)hwt zWVxYWkaq%09z-%5&Pt)ia+KZQvg5%o@|cuc%igkAIwVAIxP!o_ zR03V{pC)P^mt4V?v>P;Y-DQ4fA9f|a;IWsH-J}UUT^vlmEPY!wJcPAT=mMnG>tHHS z4_QKyph|+S#Q4^rKLymsP*VjV%y~EOsAOFha0jaGwzDNRkc$k3+170P8f|x`u=-(g zm&~Y$<%K==S?Yiu@4eEgVmx22{C=u>;2U-mT=AP|W+e)NTWK@o20AE@7?3-dX@Jmx zcOn>~T(1iIO`NX3G)wl{>nj@J^O$|_w|}3-YXdvMu#ouDcx-2P$OI}w1eP$95mxS$ zjjwi>lbssrr^@=ZS4ejaD_pCNmUEjFR`T>v9l**A{%qs{N|*O?_kX{r@_!u?U>v7J zFICa*D>k3hl>4OWH7w{O@8sC%(AnAP#2F3qqHNuvmK~fFtkWFjQ@i!4Fu>(mqP1>j z-OMn*!8iK~JEiY6kS9FvKoI}Cc~ijA&>}!t>qZZ}b8+|w^bL(EqFcjTV38OP-SjJ* z4dl`X%?0JI1&=$PZIJ`u8pwrplca*n;KVPh6p1pz(&O}(^x5POQ zb?nW=chib31}`-=#9VAl{&0>1CTwy55fD_|66FrvRh#cJqpCfDMTyCL%0f^!YKT%y z{k->CHC|Er3lrxxdOuq_k?c4e;*#2Zgmp1B^`HDwfy1Q>0l{p-x0TQEEHTM{of@F1 zoO-XpS1j^v$3C`h>ob3!l8p``>sAXJ#Fk|3D1|2E6}57q1NO&f96#^bGzYOra$3yZ zQR!9`(m^b8q$S-04xtXqs^Zb*$Mz-dLL|q8>c?T6FrmD!^KoW_kDrA3Tvt9j*`A8< zIYGJuM`)|Lsg>K2rvUi$x38Z!qR@pkGInKsw_UfW-cQkks7R0ZF>e3j{W0aD-)%Zm z_)f3-RDR|7TWx$eFLyE(p}>?JKJI}Ty)ap-++?(}! ziv8u#?fq)D*VEoIAMt!>p+y?mwE@Se*#(hhAmM$EjWfosno$FNEE z@Q~*;F>QAvYEK%P>IgXmgFf-?pP%wpvu;&9{U}!Zl=gmb3)-(tfkHGv^77XoSzC^t zlx^vL$DR+~`Smaend;SBJRuLnx$nM4KIdtB`%}6}9efPIEZw@<3m1=>pG(#!=W`zu z{e-cNf}aLGFNcT)cy+bIZ)|~?JCW!rUL>mf#MJ1uWm`7dvJyi^hF9j2y^@&Il#fufbaN}4YCY(*wB_9$)N4}1XvPKW6I zzse148nDm_Y_7(K96F3a-StqQAQE{zIj~5;Ry!swlA3L_G17464k_rD- zs}e;0MC|7GCVb93;0_~Ss+KT6u4M)Q1x=bZn08}hm+-XEsv9`1lWn}feydM>YvSGle zQ&9rKQJljC$Q#3-s*(0w$^)!m+NYY7YUxK5_KZ#yH>vLg)7c6}zOxDlwWFF)&iCjG z=L`)CVharV{w8R&fLirQS###=Ldh4+kI|uYc9L&&;E5Ww_7@283+lMxRISroom?uf z9XXq>4&kF_uSkgoCFDs?xdV@;4z9J$jQw-r?md0c?Zx&wi@sa5Dqe)k-?O2}ml0(t z>o!lyic;D7D9hViNWNKYYGPLsB}9eaB-BUoDe%Na_T>4nWxom*-JuZ^^(3l-KRD(G zd*D(scQv7$yRnf4M|qs)BG|3MD394$6ZCtr?QEYV$(~f{up%-?uCIh>CFQFtoRg`5 zG-S`vqB(E$nIagZe_GGV8YjAxGWaL7Gq#@xkD2deW)pI!p>7(qQ4!Sr=v#C!9Wu10 zt+gqm`fH8FN6N8gm*9GdP3S(zV$QN1c&S-{3d2ZggnRA#M(xxaZig(EDR8dhdX=DE z?cx037YX`zO6sgys5Ul;g8#!F3nhwF)WPnRH7(gODWOQqp`A1G#92r?ouRja3J^P* z2D0_^^jCe3M<>GD8I}Ts`M+4t?kiIWK-m`*{@sr4$^S+}k$4BOwm7%9Ryo0^EjJaw zC3hFW&yp&;*vzKG=yTX%()dtQ^s&~Bwxje{$G@|#Rc8!~kWLcM9?_pEIZ?si*KKzr zf9%LmZ9S$1@np$=dT1I|^jCPt6yoZnJ^ za!C%2`t?uXJjzCh=1qQj)yI%HTBh*3bXu*#KRw<(zFp)ikB&G0#S;voMqGCvVTBy1 z;l}@}h}`1Tz05N{DW%Ap7X;6|v9@IHZ~L;f$aYdFXFvZgT181;&r{Ls z|Fa*E47Uz$nTS^OMdm*;@v>M1MuF}OTAjw;QG&V%xX4*(8nnaFKME!c#suZplJ=DH zSIrGm+$pJSw2ed9A+|J87Vmll=jGka2HEfUiYRWSNtV1j*l{HrUB^H~l}Ljq<_|u* zmU``!Wk28hSO^fVeqaO^VA;0l%q`CNuqf&$C}a1ea@gyG*s2XZA}fGvfu(~O@YrEP ztYDCkL#nj0OMH9{>Kegd=hD{Ou4E%NM3g6Oy z=6p-DDi(4e5SLzXnZFtkMy7&=lR#yKHG4(|E`7I}&R@@iTwSW1k3;L19+aq*Aa_26 z70SCU3vEBQ*x28!tUDFef8l;O7v1zhQ;gF`LT}7ZoTL;7$ffSx7mhmBhu;!u4PuiYT^Fj9i*1IR|1O+O|2&4KFP zkL!g4HsWQyYG$1=lCCErO{^7^@a0mA^n~e^PjfF_JC6tk$S~jJj|Zu49io-Z_jsS> zUh^XfMkuk~DQHi7V&WxTy+4k1Ue1Vj$oX#5*bMvoyR1PiN_l8kTzzh_sWZ7qFII%^q!EvK& zO!w%!MV$Rbyb9raL}VYk_w6vQ3o1u_5pRHsHBUoUJ;{fBSmmaIthf0(7sZg9S90$p z&(LkyvQ%^VXH3r>Lg(>2m6bV|dHJ9|LsOt0F`H*vVGb7B(<$=6vpfy`sYgQPNom=b z+vwoh&4)X~EiVUebK5_X?h6`vyJB~=vqU;x7<)MpHeoXvTce#5vZ%J;4^{zz;U`XI zT`T28^N^OI^T#`imkQc%<7i!HhZg>IG2=*xGK{fa=B`#_V&jclNg(TJ6^Q%e;vB9)51 zXu}sRRb1qwj!;pcewyJnIb+gJMF=Y?(Fm!w%fz`8Z<^d7gn6~TGun{@>H7;SyDy^c zx6(W;aabGtVEOD`5`AX|l)+w7lP zqE3+N6;t%!B^&$c4!GMablA)d@d#ny+)4)%n+l6bzc)t(M7))H5lARLUPg$|;07h` z1K22!QVoN-!eUnO7!k900aBuSF>Hh%qcN+%ZI$3 zEWqs^5f;u0aTgzRp9%AWPxqk`G^qX7%ZH53dX)E9C5qx_-yUz&)wMGE^}U?%dO7kVfwS6vN~)k5$e`VM{A{c>|sx}k=bM#98>>b2|l zXk_3}AUZd5XLN!r!{gGc>T2a~AFi;R zyiguQVKCeG`?0yFQ8R9Tkn0sVv^rj^1h2Z)wq2TSyP%g=u&)$B{V*B3{&nhPyC*_6 zuH*)ruy*J|Z38X0iz00S^iVlV9>J;VDIrlsoq++q41TPjzEUC z)%DCle1aI$Idp2pNnJ}^)=#z&Q}NkWiQfRkix}O$_h!cab~jjp8T2ylXFm}2%>U@C zyN7O>aKJ%NmY>wUrI(ftvEhFAv7FS(9SA);!24~yFM!aa>rUpxo93cT_#D0GmzEXC z!1iB0&BeL)yzlGZ(!FWt4xN(z{X+ZywA=A-A4Hs~raYh^+J(1mKS=T@afXukWPdrS z|GK&k#QJNvq{l)p615Ol`xg*J>Ghu7pC&!mHYd36f_`5xmXCBKm+8flkAE#pUm480 z96)}B^6@bF6o&GVcQipwAWS{)BT}~fc-8M9tV@u0PHNLf8chG>H{fPtzH_sPXgT_D ztTnH$;)sHzc5$X8TC3WWjvhp9#>$a3iD+$ppl&c}DmM4N=p1xdDo789)cC+xOx*HQ zY8Wcpv`}|zuFTHyaX%RH48lbFthB1+AMB9)m{m5DkIaAsd(??!`yf8stchHahQ1!P zc-L_heVXU9RWokRWl9YF3NIu(v`Q2+X^-{?wc;J7QY}yCBkV^2%(}&9bi#< zifi>o?4p;?7GEGXWANfiBT~h_@)kwnyd>*#q50na!}fxC`#-xoz+0UHbW7EGXPa{j z9_=4|CAv$HncWPnw-|FCA+nlpa`!0YM>&~Z1KD4IcZde0akLs7Q>3!`%|1@_^%Q?eN3Hfmq#G-8uE_~^N{ z3ne8zC2&a4V&O}k?Ji$d`QiFoS%1AL5fL{6JRV;MiJdjF*SaY8)eh9_ev6^&L-{hoxO@FmJt@fSoCUE-|T&>w3e;rIW z?8=sKUk(4|Ze)qxpfm6;%<-@If4FsMe=(jZ-nmM#J5g>-|2gmft&h=hPN zC?MS((%mR6NO#9Vx>IQZiG8m7dH#F9ANGFV`}w-RIff3$8nDjmJdQbkb6&WjhDS{r zRypE1@5a=9PU6~e?>+jV!PIVgPdB2a->F8Eb?(cUey|Cp-ndff`)Nf>Df=6}MExxn zqsH*xU!#AN)<&(8j7S{IHkGv-w7KAp-*0~)&c#KS?G^@?{wgQ2i(TTr2I3ZPvMInF_}Q2p%!qA||JGmk2(=O1-E2#~x7}sT zrt-O5b+RG#sdJSnOG&GN+ltA0G9JFA-e3|2YZrm-$oqf0cA3(T6+N)e>?Km~IF%&C zoePQmjDb(-cC1p$-X-VT6@FBfvfX6={Oevx>6U~E!US1&{%H{<{D4DGSPz=UxZBiB1g)^zZgPWt z-Kln-O(<@U2XmX8NS6x31$3ti>|fswxrVtsTYT=IHPJsv5=In-`Z=mWO#{oOEKc6> z@iV!XFvtnNdMQy)A{U`05{36wodYAVAIjz59qkTEa0YQ(9!GhD<7}>0GgM1*mBbC0 zfQves16~$td$V8?@{JVr+fJf>u65Z%y(PEpR_$qA(>(}#^PRzjKQGUMIVPG4m`5t8 zA*h0e=YhJ)uvcHZP`0**Qr0ms{C1u!6M)ftCF-RcoJE0;sb&{rfLh$sWgznQ{wnJ} zbo0kVs9EQyk1Uz)^vwJ_=*A)@@qX=ie6i$nbWNpQky8iJZD3m5DA_`_JY7F*N5R8J z2$s&SC&`eRf&_eu4Dhd~N-LV!99dn(2DlepCRP30cQ}YqkFAOD=khZiEN~n*X?*+= zV(fiB4TISWzDlEBY$kkaY?)<5{Iqgw>+E+Feqa&i$~J|S!};`!%AY#vk~K7*J6{&q zh)zY3RwG4!h0GG^K$?^eQ4fXoJk@6vawZU}`R*U~S(a(GlM=H>8CaNVkYwk{!qTqc z62#{_MpM=OwsQ;nh#ZS5^4HVrILsux8E$iEcLNrH-qAYX+DetFeOq{yn`vP9jrB_lwo(aRj`Utzp% zXIeffY&d`m%9|W7*6m15FmR%q_c7~s2 zKEgxJXDKJLF*e=Zuu9T(vqbSIM={-0zpHoXNzMHTj;C>rLDEg2F1o`yCI7s8Om!&)A;j15B^riM59NK zjEPapiDb40;oslD7&3u;Cd8jB&h+zS!?z4wJZDkQeA&rd{HX*55?uJ?^+X=bR5XEz z=EFg?3){shn3(aZC-1>dWyG?q-;)!@Me+Xk=wIGs(r8sbKA&1*+WAxY0^xqLfv1j^ z$jH75b#+JMKRwvy55I%UHO;Sm7};3M?TvcqDbrY%>71Cz@0Qaaf7<@EHnF;U%xYzr zqGS7n5aea%17SrX9Zae^g8f8{nwFul;R|H_6E`X__tRmaP7*_Vf>);@c@N)mKWwwf zq@<$#JJ-86Md{jF82KL=v7ik1uUFRI2Y%uaWmpxY-93=iG0EEnK}*2Si5#$r4B88D|8xPkA67+*tx?duE^Y3@scx|)DHbmoihlHUw;&B|5S1{_R1DM zuRX1-5<}!!Mj^$YfA91GhJh@a`iOv7LIIt5`rML_vAGVabhZu~sdW6Ucc;=`LXt(mhS~jAIL$j{c z!P2{{8@5;XED{=KR$bE_p!ZnD1bzJsQup@kxlum@*3+AO6g*n|n#-VMmd9DTVwS6P zEQVmEzMPBU@VYh#^y)*iaDlqxpG?e(-RW0)?N#zeykR5!TE*aHs)Uy|7Z*9hX1K!} zELL;l+7f^&U~Kz_aS-b>a>y>81oB_^^`3_q)~(&K_*-m99c<7#4Wy2{Is0mhNNR|* zh%oXgrGE|tqO@HdD8{tf;GmUbzXT@MtePKhzAchmfL|a54T_J<@p@dgRxD0Ue3Bom zUxKgwGz2!t?X`-Aly z=0jb9d&E8*tsTu|Y*I1HQQh1D#=1vv?Wn#|L4PhGX&J_bx9c#e-@R1MD%r>~i3*<- zlqF*4q@dLyK{OSc95L}n=as(VZ>9b1g6uNuPbsX4o;PqQG=%uVm_JdtwhngZMoCbV z((W{Cco`6)%yA;D?MNXj_sZv?u&0GJds>PgDaBbe+fGH7uha%UdrRc1fileG$0&h+ z@H&pPU-T(6H*IHrFmD{1(is0M#m5LfY&-7V0;Cx%tyn~|a~UgnacZ%)^>2RjN6aSv znE(rcdF+FIN#HqHgL_j=iy~%J?4mVN6Lg7c^!A}YS%AoA|orJiD_-=-vdc; zeal>o$a-BVbMu%g8t2j-ZLn5%CcfM>ni*Q<4@WEjxWXIJJfPde-2to_r;7*`#L1|O z{OF}nzDtIE=GSGPzd9Cdb2mgo#PYBM99|?W`UGGyhwOjHUYN{7F~{;bOgZD~NL<2d%)m+6{&<)$L zPp<}wi7`6gQIXuGAoNoz{K@Ui5K@-MT45;s)1w!vSn48uP-UvGmwh3O+`(7p(I4#M;LiQ8W4a#-C))~7*2U{wayNvrkDcEdh_Sqb5B6i;;d)?Y+8?n=e%eOP& z>xnz$nqpZr_&GFyM5Z)u^2d|lhU?vz^RtS|i6o{-Fw^!pS|o<%wZfV+fhY$zwS8H% z*fN8y@fdDPOB5PL{Yw#a16(f1@T8KQH+*#9)sUFa2CanmCDzaC9Mt!!VVTJUDK@bL z*-A%DI(XsI=Yfq0d+3l@g2yFYfh3edKWV2k{h;`*8Ce*Qn4tJ)3fYXJ0z?WageK1+ z@&*1UH%|w#;$4*nWriO4n7uy$?pnTDB234p&pPy-+iMMX5nnLp zPTl%1Ar|%KbY&&PvSlIr$=(&+(rwxM&tTk&DfSu?EjiGo76`;=rF4O&DJR2io)up^gDK!0aDf3im$+3Ob9|JmD;(-KKnNNE#|5wxw0d_9v+iSsjpmgqFvr^Cn8{q_6!$K}gXF3^jx!rb^3& zeX!5Xsw%TZoZyWY<7^-=ZvdWO-q&Ci(+BsD%mheoTLA;tGOrrRGJ zf;Lf)323wLs!Q~n(=_a)# zXxdL!dlDU76ipB2s*h_W#9s`%7G&^R$f+bM##M>r24iP=fEmi>=}|ih7JDi5#g<*S z>JZ{lom@`nzU_VgwljL)@#gYaN8gnOtozA9iRF6ju07|8ghDWQBfWCG_iYEBPqbC< zsAge=pouJohjjVh+@2E4@Z?`-_#ilKqrk!lb63R6JwU zd|}ZEJOJKPR|xSCxbGG3>WbUwsfa*v?Rfgp7@>0ne;KLjnCS2)sEF`5;ypBo7-G8l z49Oux^<;GfAIOs0yHnioxz$$qIsM(A2lRF%=OKsi^2KVc(0GOD_CE|ynN7b8@9q@z z`7*`j)t}E7Yk}J~g9KjT+!Zk>=zK;@#N`c774wEG_8Jhm?MP1q2IIGu~!BWUE#B{Hv{jWVTvj4YTt_w~0of)YwGFSi8(OgIGeZ$pMyNcqp zwO%SoGA*`;eM<;uez!0y^Rw<>S)}0uvI>s-lDCG12aq5wHQ{`N9-jR$Hll<1to)Xs z&;NDw4+w%(3FVY-{BP$hqNY)?NDt3&ec<+YQ^q!b7y6z8-)X;V7NG~#`nb_oQlRkN zR7oCGb=Is+J2^5#H(F^R(UK>93<8+M)7|y17<1O!r}6D%Wm>jp=W6YOp)C6J_}2h~ z>#JE$eiw7#^~LC?))(-^Y2(LCXTelJ4@GAb+$2blJPG(+%=~3hC@(2k(ix2V@5)|1 zTT@SLxbQI1CdAtwey$WZk;_W#UEmZKVtU&Gd3bgj+jPn6@3@P9HfrNYA}@hAhm;#q zbP@CI6eFuzn|TM*i6Ju0=e5Vw$o#rBlh9a$N20t{o32N{DdSHoB5ghNek!lTN1999 zG|M{bV#hKON=qLIS{iZBgsdV0a2l!yB1kIk<1dZZ|8gp4`bEoj_5Mfd_WM7G;@D!4 z0o->Qr__>ik7pp}xWtN|Wr$JBzu^3FVwzE9C3LNbv zp89y@r^47KCjop!g%Cf-87a4qy+oq)xJT_hw&cAaY3K#}szmrjZCq*khT0!j;F6bCy)rET72hLpiejY!mVEfEWF=9hnQ^q&dt(OFnZi&ED;-Hwac^pMvqWZ# z4JOkw7h@mKd0>sJ&#qsiU;*U9lMS1iuMVirbsrxjOc8XaN`pRjZ78_wIwvdDyjPHm__(% zyK7^zNhfVbx;XNnj-^tdUsCXS76n7_n>&p!s-eQ&sr)P)Q)`mSC;krK6y=)UKsDnz zGgLh3*PQ6nA3OJ9xonZ|TSAymV&iZuWE-_J8>bRuv7bL!?f*2>({j*fv!}j49wyE1 zVGwg*8)=E`)yJ}pgxBcu=5mUnI^yMkG)>w`RKnkS(;BN z6Ll9OBo;4~^Q!%F*g2J98K4rpXXF3K=l&TNnAt3W87mGI`|-)rXlxHJ#1USl6gu@I ztIq-PwU`+4R8BG+R-_5BzLy03YRj@+4omTQgM^}XwQcby0k9N=d$p!EQ(SfpA>OuX zCAt~J+ZAI2MiDKohvd|;kv3`$JJKvT{E%fD=OJF#LWTYgd;C*CiyI}Ct0qbyjV>TrmM9t%KG z{~R#i=<#+!ktIJz;5KKpZg;XUSe8UTkInEb*%E zNPt(TZm6r)ix)o~O)N#2W!{xrzCYalG>a>Gpiwjn$BdQHqZIw)EFS9zCmtwW2=IYd z5{L3AZM92eF&s3-G7(ly?6JW;*jVkqExPHuwP4l*tUz8Of&a2?Z22=`rkKY&m7U3_ zl~#X}0I-s4{h5twC5A~I)7+(9G6ta-RYRFw^3sjGDgSged$HcbQf5jS(fwiP$^9CPea*p>VD=9-MNXUbCpNl)qEY_R?lZ{Psf4r_`;I2Li7kf`32G!R%~)H#wXoufc7zc%Y;P7OjoA^gH|*W z7IvfUtCEPlDc6w*AsC0*EE06eM@wC{P%}dDF;r_F98c6S6IhgVGw3~{k&^5qgrKP- zO|2<2fF$B_t@Udn?mp7nu`q+w=?>Jiz7UfmZ|Sv zJiTAQdwPH9VNEr=|9Y9x#5uH7moR`%Ok+V^e#U7ksteg%)OK{Od^(4eHMAs zJNhxO(UcBi`7pL8!wdrkSidCUOl`JGX>0*YdE7lfwxbCS32HG~tgmwqi(A$dVAQI*T&WA{_u*XZ)>Ii8^Uj;*M!?{ zWN!4i!7Za`p_8V$GT>Z{!M{4XT#rHz=<~=Z{?Yy+gZgm|rq&5O0RoYjy%b}kuei6b zL9fw%4Aq29Esj3f{WiOG*b*fs^&1#Fuhj)Mj3lXb&|c4)b}%M56-{;gK@v?k^0W#( zsx8Tti+H$DwcZ-@eB9>6dy`Uob0pEY4W@Y4GvkfhQo{0G&&r0i&s9KolOqu-P#7D? zjXc`*;>>$r&W>aM`AJg+IWk+Tj>L@)_T`QL3Q@Ig#!)^ESEB4-hsR<^$~ zuN5YfeodQsImGIgp8d?c^7ykjhB!vbK+V><6$<%qXD6E2m5jQ@zV6joiga*XZ{ba+ zv^-;T-#V7CJN@yPlpJHLcA{`kU%%w>w*Gz3XGZdJ9FxTY7pFym*!i)wM~sz3B>1U? zoA?@MbV&VV)MrT2ev0Tc-mo0*02XTZlgg_p3Gdz9LTNkM;I z3!QuP)@o;*ucd%IR4-sdi=N-M z$Kr>pqXs3;SYxf!Kg1yE6Dw?NJc?51-vt9J1u~E}8-NdE@w)LKr=sO#K+hG*-7ZW? z1xFmhZ0{RFzhcWz2O>|nCi0Py6Yym`_N@>H1RzLwNqR=24hs!U)SWMkT&J5diu04d z(I9vBA8^x4a8J}LMZ!D+*1|$If`H)m)uAaI0tv4f^c1A@1$0$p$4uuZoG>4F{Y%NV z$&U*_J~IP`le+%mUahluKILi1Lwwn;h)A)4Qe3*mB_){qpT+kUgkd*{<9EC2z9n#v zFW}tG$}HjDAiV2e5rt8+Hsog&EveB z`49I>D`$AVf(w4pyS%2K9@@1F+@F9*HEzs0ys zSLigX9|%(N(SR6&4nDkJGRk^5RmaMv6qUzm*6965+M5-0%}+Sk9yD{*dq8DQ<1hyJ z&A0%ik3Ns}DxZ7i<)Ndm=tymfAw`^~E;4dYsCol%kIjda+;|5$YE>>r-nS8jH0o;< z14p+8Jax`dj#xA#a8kKz-%06LI+}FXmYwdu5w%)}|J;A?drRq`>}Oj2iIG|Z3B=6U zfZiPNrcdQWs?5*y%ZREjfq&7qlxiS`pM`noQQ*8-?4wiFx-fdu3Yq)b|<7gOawJNqQ_Z zBK-{ICLi~{f$y%RL6PP?)l5Gz@-B862CsLdQ(uIsmz$g#1Y54WPupntiKY@0hl&Bu zv5L{~L>AH9I;VfY=#A0V9?VU7Bn;iE?xf3t9I+dAH#w<6=_*MzJWodToF|lLQPq87 z^0_~psI%YCJwr1F=-41t@CZugNL(8i#x?$hWgLnAQ4iX9y@kzCvXdf*Rt~=)b6yFC zl3Mm25|fGnN3?sz`D;T1j^p-uYh|%)b^2$T0L>`@3F9+d#6en#Iu)4F%jLSfTM5L& z-HF@G#Gw~I?jo`a;1o^sgJs`>W$3x{Ny~4H`R&0v@in{;O0!m>)aCl$i-!CTmP-71 zz7yeN)Qzym_2HF{djE1Jm~UBG961Q8oXyX518z^0j*v*~{(+d}l;T22);@VYI2h1f ztMv$>5%=Hl=#`uDuk$6gc`>tp0oU94C78zGJRdg;N1oa>{!`-{P1&#%~0bVSVCx)lXlB|2hG_ zI+A_N)PCp=U`zu|VrQ1RU>MnvnA?RglB17HDw+g1%s zHJ?DLcI;vog8xCatR?0_8^&_6w!J(eFsTmpoj?9Ut?~}vM77l2w)->tCklyEhy$T0 z*E8HU^SWJW+woG4q8xcz%GyJi{JT1;KK`uhZ)O5pM$Sjj4LW$NczN1s&L~})2>PzV zj7*8s)|{1u`U{B^E!wn8LSA%M2l0gRA(vAV@?Qm>+MQ_f57nB+;zuzDSO9g=F&gl= z`AC4}=gt5LryHYu7VK7g`I8R$wIB9t@125+QJienUR_gK>c0uY{ zBtHsz>O_(U=L66?SQcH&05CXjOD>gg1JxcjZLw#c{q>R%_aKA9Fb%qzJzYYlf%&Do zgyyZr71$<|#aUF6pVG}A`BM2`g~DtI@%3mWA0(hwoL7KnvA<+Pt^Y10QUWLm{?w_m zfE0r!XV7NqH~nt=`=h~Wz2+eGxDa67Mc&IDk%Pu>rW&6{fO}P)UIZRCCC7|-b9iy z#%UfGu%9J;zhTmthAMmA6^kgjaZ!^pHPCgcipJ8*M5w_YdzLr-HQtbmALv_pH^_NR zG1Hj$=KY~_uF!|tP9ps0maV`4H&Ffm3f#B1%Vd{5H~{mkkk_uV$>+54fV@m^;xC?H z!RrQ7fIcJONvzEJ@PG8Poq>z0XK|hUP3^E?Z{--FdHYpl^=|>p{0WP@g{Q{D!Ske_rI0@VocI+U*XtUjG};(uA}S-@hZG3mi8?^OAyKw$&8PMDZ8h2b|g`R|57xrnUdF-Lq{z?0q|wMc(N zH0#sJ_`*RPt-ZI+i>J`T;A%YVb9zXd<#XySz}>G}ZAM!~oN%Wd*=cZRQ{k63MdWQ1ap7@vDNKLq7btRwu^-A{#}{ndjdQi5D}VyN_@;sk zzX#yV^syFNKIi1~j8vf6ugKqm56T>4JE)o{{%3)oIVPM|vdv&PAnk=mv*bqWk`;Qr z4LkIacR~KNbP3B;H?C0QWA#)fhtzzbPc^4jk$6v6{M^^s?P_yJ543$iL~|7kR%-gy zqmc|?{kKRkxv)zp_iO({zU<2C#BT-=^=UiyjD4jnN^O9?xMn;QQYc2&B=JCgrmxUM z{ci<=Yi?vKh^g}ha6P;QUIg}#WC=943te_I+^?<1a~ZOV(-w)b+61>uMKVR z-B7p)EH6~%YGg#ybg1e;GXp1~f?(%0@{ga6->DH64B2*lKXclKgkv`y?_>KZ#g=|T zWe$QmX3l~#2xNx;!^J@rs4W<9QDq+jKt^>tT37@Wb=JaA5d*+zFzrxxCBF!SBm&^5FngSJjqyH5Hpnb*Sn zb(3~w3=+IJ3l*e9frnMh%39>y3YZoPxU5^TI%fK*n~l1a$j{}sojB`we@6!1>qc&1 z#4^^1*8c%}e*$%bkJj2JWn-pj?E>(yH2y7{z+H59d^V|$UPAb29At8b|B2bCBG!J- z-F!W72KI(dT+yIObxH9Rc4bI7g8SBYOQyxdkj;7xW-;xjmn(t$Gmp`xnbd?goh~sIrEU|IygQDXWh|pN z-r8oo5JN(Gl>TomE3!F^cw#?Qv3|sV(Xh`4kO%uQn%jMo`x1%54RWX=2CEUEPN&I` z0~!$(8ZIIip~|L2Pt3L56Gxn<QE3xR6FEPi&(rRZEm$gIB!ib1lmpo=f1 z{~(R>Z!+*d(bDT$#w>~Yop}snH0hi#Ayy?kCk5uIM>Z(yg~Qu>&J7R^V=aJ zpW8-`+x;+dq8nxBm%~_~nQd}mzF<3QQRM_dq zOK0ELeSRQCsfoXRw57KzcW9T*5%hSU9ia4~vEurCaJ-^IdVVeizl z8w(4^gKM*A&1qx_NKL5sijZE-3ez#9?br^9JlF4k)p}`3BXOJT#{3_usmJM~?*E;PIXtG)@6ZoTGZ=xln(oe&G{66Czk&^aLKm_4eUwpsT zX%3?iu+_%itK%-CXar|)!T0`_7g{R^M?>ts*ia*f#?2b7rpJ}YBJuC~(UWyEP;OiiFBFeXMcm z#1YzHW`@e+3wLbj4`6-%{p;_S$3^0XNMCjU(-JXSmY-xS(meFEAZQchvkmy=bFgRm zvTE@Y_z}sqriT<>Bra$A!;$niu+{nT^UiI%7rtU9V6}JJj!OMF@0S(@@D`i{r3o71 z)j(WgL6F$%F7bp{>VOlT`QaBPA~-yqC8E7|36dTaW=4NOvQKo$Z(TqYZz=3`0QNN1 zFJL=Sc=LS!`>Pr2{d=io%SR3~1z#I6`}Y&`e|e!On7>G#WSGX7Wzmfw$&ki0??zBD0KbAot+k=HNPdQ{{t z4_tNB_cI7^C>SAyxDrneD!@#ozdDbK3uR(qQUb2W`EssTf+TB_2<68omo8;kFpcM{ zIqS4H=HE5%^As^IcOo`WZd}gE1w;-t$!C3Iyv@!+)xGGM@yFagh6rg|eQbFeQ!&RD zd#LVCk|AxfmK0%QA|hm>yez-M`qR&~sQck@hQfIuoph>sDWGN(&3HmAAs~MBsnOu7 zT`fW;C|-pRo0j)xu;;^gB;ElG){hL4CBhy~CbK;*rwrxQ#!Sv+3B%c)7+`jqSE6b+ zPW3bGRG6@eo>#bKK;h*M=oML^D-|{v?ne`w$vKS;uP&)Mt45~_7JGM8C0*)qP-v&L z9TVew^+eY-A~kT9Gj`p9^&4wGR-!oPODxN9Ds;d0Su8ekxTYPwW}@kb{yr`~d@l@% z2c5x%q>7$BCD-x32Yd9-Ot=ZlZ~7u{ItnYR4K8cwvWEH-U2`M7cv$XZ&B7(;rz9<| zsvYY3lT%F)A^4Rw4;~&Py1SL2DMF3@4!v7Fq%WMu+4TvKpe-JNi+)DBpCw3+!f;_i z`qBz}n}IADGV*jC8>jRQxCz~tqZ^0uS~&>XRpq==>w|~DX);O@<~H(aI6>jemqWK4 zB;7A8a_6vC9YP2+N@p>mBiiwg> zU0Vl)K1jg9X{-YW9hW@_So*8X0zY`QKt(B{ZK-iwhABX7K>3$DkRVZ-_1{jiMAcwo zkQ%vYJ_Xfp`!bEyU6G{vp5TI7k4R~GNO%g;o}*73`ZSfEC^PO@D!bBmZZG(w(fU6XSDK2ZuM`Z!cWG&Re|YjD;q=pbj2I3-|+X^rw|( z^~bvNxml-0x3>&U`>-&l?29iTg5)o7Y}7qG75^0P?XrFC@N>8NtUuxdSD?GWH=;Q~ zAvy@#0oxit$%_8_Vye2)*!|)|HoU1~jS`L68Q^&LCw=?39`{pZEHuQ>T#F*nF@v8* z7|St6Zf=3-Pvid_8y@X_*H>|8?{ftrzvZ@(Hg;V)p>qlmPmwZ@Z9+GK06Evi_|YZO zCfnW~(>31DZwM^zG+8NaAY_QmaBLrI^C@Rq*N_u!6%pq(*ZB!9bL)|Gav@l{15yFK zSM`-e6Ru!3%3#ZO=mdMIj-R(96K&P68kCm7hP$7gT8fZ9m#?4w-^vE(eUxLOHU0j5 zwLkSQ9~hWTBwm;pE=&70@JRf<%G_vAYPjJV0Ie zVXMYW#9a(Qd)?f4SOAxdsc(}*KNQbQx@}Cy+;4`? zr#*nzOWcmbs@#`G4sSZ-@cDkDge-1j7LaPX#s1MwtQtNK5z|4PlR{Lhlz&DPAn?Mo z2VU)$)eNvX{qc=;#OT|yekj^g+xg6R8mYuvaPfZx{m4Y+Bj54{Uw6i_6* z98RtS2tbb@)HI;_vCf6@P)y+k}3tUC}uKO1|d3U9Zgf5x4iQ zGViCrVR{5jI?H;z5RTL2E~qs9o?tWy-r@*418m=G%>p@z*&(*~RDxi1%p(!ql^F?1 zSg>c~ij{b9GMOmT@dSMQjefInSyI`$$N>dd`{U6!aEw^hy@}a~ImnvD9HeeM0dG&O zB8mKUnH+hA7S&)?k_|(eh97o6Msx{16eVVeVbA_Yz((`rg}hj^b7pJ4mSARUy~Cec zQz%acBnU*UnCP`*@fAeKsLR373<4 zE9@&>?TQ>#UjET0@hC?Xosjy3B3|C#6tiJsG2>Tuc~;GCSSL=OVHp*k{O%#{SG~va zT*>VooO-7dlZsz*+g$V+&`r%yG=SxPFc^8cGm(U2@SyPHlPDTS@BY^rJ1_&HyYrlW z(l@rj)e6pYvM+o99%tYlt9)xmv!o&VYBk1>rzb#;yBG~3x1UEn2kP#=bhA;JW=N_P zyMa!;Z=6@zOm$C2F&UZhAA<}ywoc(yBXu@hiFM?CII@VWj_w}sJ6-jYvaC!&wraHn0 z6Jsf~_xipd?4pJk>VE)@Nw+@XP~$p=8vk=hnox_)K~y(I%u>S=yj$XTkLK_*zQA$t zmV{raS*kF1pzNDxyDq6BJGiN)Kjl4=C{!_9;<_pRd6nSTPSFt4u3GeqaGFM;XboK| zu>p-$$3Vu5`Lu0F`FS+%rZTYDQas9*p zcr@|!-|o_HA=fO(9;3Q{*HVs#4naBq7svzF*k?AUjTMl;HCMC=*zOWZq?8kI=dF|{ z`=%B=2UWP4m=}V_EopfenWUh1qU{&l*Ritj+l}j{!0(|{&;4r_IsXmh`4J6AM%t=K zQ08RAlTOQLwJt0<(&2q!0%0S@FY@AH1RU6|DaJG&hg*nDeF3weraIWGt-fADpJl#& z1XK0GI=NW9uuAjl2La6@eA;3EBJ=!EIJ2CnD7w0HU2)5GPvqBRmiEv*Wc#oZWm^lL z8UKhWbc^9}Th&+sJd-nFr;x;k_sDw3c(2t&>ga)6{=F=NSqb z6ACQjT7d>n0Kl0J^L!VJgmI}MGHL)JtQpwzi=ujPggnNVwKpKx@?_vCs;bZQfWsbt zJ=Rz;Cp^()UOS05DAJx^PVTEEN}HvN8X#VB5^&$)H!(tCLs3;0>9?yNoQ&F&6?^v3 znX_R}EJ16N9`cU`CBkQ6=Q>DV;59F{^%^+>m@|NL5%JHdV0DTw?$(O;dhV-c9bSbKQU)%N}w#;-P@@z`EMrik>GX*PA>P7rxYqqT>`$T z^(D3oFsR1K2SFV`GUKKK_{JeK-6P?G`EEp+gWLP$-Cs5uG3wj@gLnit#FPC&v+tL+ z(!rs^;v3?B;0gJ#FC}n?qJWLnp1zbCewjPZ4i3!w(4=@LI109L1Oji+}K{Y zYI=5NWkmH3>7C4CenA-XNm<$^ch#V!cU9UT$ymiDMOyA%_;|jo@&1oOF2O5#`MX`| ziCH~2E9L#?Ye*t}eJmE|^~UafwGNiMaeh2*7YA@HMH*Pu^S{|OFJrO$7)!n~Td-mP z2oiK7gmXUS0iy9HN-V*a9up96OkpC!?;%aV_6YzW-p?bDHkmEI1zk}X2v3cgRt|j4 z$LN0ER(0ZHB^kMqcd8LIx0@g;EWv92@uZa?nsfUgrxnGQ=}g`W^zicWL1 z!0LP4Pc7@;17Ey#%`|!gFV8TwbR+MZKm=tm)_${5gJd_z970{H3D7AA|jQ<{o^BKUR7l+O2}{zC69r!X}=A z{jo&9u0*u1qtWm9{&YSorDoCIT4pyp({Hy3bp>A~gK30`n=Er82@!RAwl8dS0hnZtn-Cr zNGWiv@;BtpvhGJcckUU*U7|QudL*%p7%Q&xq&;Ok zeRz$-bf$eDt@B*Zr>zYWiDOyG2)y86vAeN^Hv14qt(cYEzzA&`;VYX+SE;o^G5c3< z=5_?lS_<<%nki#hXc{zl<-Oy`MDf@X9`jE^oBzo(GQJly{h7tX-V_g6?8Zz>;?<-p zoM+@UP4keJ73|vJgQi`Mz0s#O#)ajOD95V*1+Nqw#Q3p8ty=oQ%WXEbjbRzLCTrMLh7NMi6-dy=xuTnE^kPl&pC+i2H`tZHA%I1Tc(-a}^>oYf!%1CtHU-q-_3e z;~a?CQ9|4kDJ)X1hd+CNK_Nz3!vJ+!I(xf#hyr$w^XH$N`;-3fDrFdUG-&0=rXfVb zqdRUdfkvAm-kOm3Hro~>p~!~Pkjgoq@R`7XaF1xN1@E&DZQd*pvg~y_oU97zdfk#oq@B2Tp}vh*SQ~K z6Pf}i9F}ewHexM;P@nw+B_EOkS5yt%`#WgS=Jj6%>DL#C2Dlt9{|oR&M*ZbetiQnN zro-31z22`3Mkw+naq;J!;lE!>U==;;*lq`fa8!~gY`(D3O8#F>CWKmNDLvaiz}J$p zNC_5zHmjr_B9n+{hJSn50&vD-=T8r55sj9~PpkhBLXYpkXGR-|3Y>ifN?)tzF}C3e z+1HsX<61_ox~BaC!}ZvirIl@-UW=aQS^FuU`8>;u;{D%LeR;%^B_xhmrO&4-_x}eY zjs&vyU+Yt87WwQ-hW4!hut{^j^?346&-efLYdkpJ@<4Zp@i|H?evxN;{lnp~G>S(= z1oUx!)?r=Dg5461f9l3-5xwrLf|RTwym?O@-E?%kg!#gqm_54f7}ROoaQEdF;WGut zYnP_jUl{&UOb$ra3`x(a&W7Ri^RnEpP3Dve@F!AvV|c@Z3+w56J@#&%FFu@0aE_MX zluvx*8zmv1siIr>Hr$^tglG)28row(=B;K7dFn~9vd{QxQrIs*zK#-DSJ?fTH`%?Q zeqnMu8*g0Q`vD`b!c66Vx&XxB*_&gid8Zmd31^$VGP!Ryj{Ld0$N+nEmm-}c4C-7? zi*e3hR~NsMEGMS%zMCKy+V9lYQeJO@|A!RM|10f$CV^~U_CkBH`Ok}W8ft%Y$Xs&N zu;^gkKlS@o#)>2g^M3pPdELr?zu9A$y%ZAzXpB$hBK45`EdxOhTR;*z0eJ5{CjRl@ zYk?pF2Dt-=gQPg8WPo0yXj{!{*Nj-$v3K1l{p08)y>Ju zRUe*IUOMa+ip=?)Y>fp!Vi_T$-SxD>qCJU9_p*(sJL#s{R=`sCtSfFU^PLI7j<0xe zJD@^(pU}ZoG95A~=NVwY!O6lD%i*<=lFQxx1kL3#+P#?TG<=gt_&h%>(-^z|N8t0H zJNevb7OguwR;~hglFCQVjo^tKcUE{t<>>d(8_y~GOy!&Uc-6}biGlF{);2v76TOEQ z>mo72QJYf7kPx4(AH6)m5>f)KGuTA2OG|qVS~I>fK~>WIQvd5`fBVp1p4R(`*DvR+ zQbYdcF(6AVx_bR<%=~}FonXJAFndCsZ~qs2Zywg<+3ov_Am9Lj;=q`IRH@qmkQqsW zVu^1B)Y>YF5(Xt`fPi662q4H%CatZ^0i^{kv&al#PP7mr1wt6ZWWo#~BoKyhZo2nA zZ}&N8@BOyt`u%aP-}{GGpUcZu`rP-k?zO((&ssOA(I|xt0_#4t?dT zsh|eMKq2v4FK11yfB0&RLw~XpuFWXg(y(0T)wDm0XoSG5`h06;{z@CTS4tE?fQ;U;WcMq{Y27gU(peU{kIy&)Ecj!stNqA z-tCmba+~s3o)0tDb)wX2S>MY)df(Wcv0iW!(bKnX)H%?6#zJ0H;kAO=JU5HF`G{F4 z^y^&uXd7|~HTz-x%e>2xAl^OsSttL=J}0VztHA8q9`=6U1V5J(%2Pj^8^=f5u6(`y zR(m_XH#yYu2dJ)W2&be)LMum~zsB8j5Cqn#-?)}hH~c>y`jEFXo62_zE5|H!+y%x4 zYka1x`I!P0+)+cgjlW!G_G%{F%b*EcgFheuu=0xIJ!~afy$9!>@@Pgpx?~%f85^r`=7iT-B@s|Y*^LO-t;`>w zgN-#jv%w`2r8xozlTQ5?rvtCnyx5nwe|!9OUZh;2ua;^%V!uwKBN!6o>ZtQGrS#~P z^P6EG)N9`FyK_5mS99HFH#ba-BrLxDsn6%wjnHpj@4lAZ^U$`|;nke1(?bTFKZL(K zfE(v7DH)zHYsQV6>}p-M8Q`TNE7oo~Lq#Jp18w);!V=7E{(snvM&a>3%s z?=?yTe%2mqaBlrxHlQnH?oNbGKrQr4;zX z|Hb1PR;Lm6w-6vCpf|8WQfQMD6hU0u-Z(kTX3i30*xP|52R0ernf07oN%-y6mXT86 z`aLhps?bNK{b>+8ZdR(HR$cX0SX9Ksn?XKR^5NPVVTRWIL&*ofSOdvlWFVa+L^p#w zCN0(Tjg@xdRDlwDwze=WcP(rEVPv(C8RyWRu&62n$L>MG%m6Xv zj$oxLJhZH`?gcNnjw>Z*Y>SZ5p{tAHVHo@qTRhK(if2Q&ilevJVA~V0@(0@gz;gWS zdM&E8*O* zH5$m#acGgSl_5+>m}uFktbhRm+f4@zVDs8^S$@MU&-2AajxdCHO-oL;A(ac^U)8o9 zHiGP7^n6`Qp1xs{K;E@*-LSs%7Jrl$!}`h6!Xt=ffWZ4sViwXuIIR~lp2IXYVnnOG z>B=l^*0^h76|W;HL6n+~f)?;FhR3zVZyWs&;j_EhfeVGAn`~r|-E!rRMp3$;ub<%k z=rvwm@8#Oj#Ho;yzQiNw^TUqmXf=LuX-p-@r?61l*rGs1ak*crF%6D?X4OPB=D4IVikFe|2<;qLA(MqT$T;-S^Q;TS?r?4cqlIL8Mw8-2t?=gqlJkS30u$ z`SU`>v5}7IvC%1aRfUu*8Zhi_xx^DsINKF=kygx5pE2>)hOwsim!EC>IO!wt z+pf;KQ6u$T*RF&hAb!jNgQJNX4_BMAP!297Zl6c-Zt?BeAq2MRWZoMIw1>UYpuncm zOdBy%ewSaGSHggb=%1ke>-r`z^JT&f+BMIh{=SHmV{pwJ-O;97 z+5_|XTio^CtimT7q%T<6TuG(5eH~RCygEM}l8EOy*J4N>9S|8|tiXwUg^Uap_7|n~9=%yyOno|g**gnzU)+)@ z>h1kxv2p2oGigIYPIfq~WE89V`*#DhjyOpZt+nlxt-;U@9E1&I7B>HSK;3^4wf-2^ z8l!E)RCBqEEOw7!2+J^dBfvK76|1bQY_?%wi;JYAH&&5k_Cml^Ek`s@rnrYDNRbgC zXH7JRvZxUgEgwEiZqxWLA#}>KBQ18U^|6)-vKfvGd#;w!+KjG>UsIGpwhobFLmrKCMFJYtjIeIb z?U2Pzq_Urd%ylf@TDc!eFNSSckf%L3NV1v&Vq-u}A@@Vr0fKgOeDWQ~#)F&lG5CkyFR)A~5Qc++L#vK|yC( zS8A%mh6mH+6H!-w=64N6>TSQx;stI5AlTS_*{8|moo{?iU@;UHmNxJJ%I&ckv=}A( z4V9Jm;?)vAvI>N2*EeyQ#st=NnZ(hFJ8&%jdP60hAHS} zn;Cb|n_f3e%oAPTW*$OI!Jw`me%;KN7K%`QCi>IEb?m@l#3`9?bPf~*1wnLWQO*w{ zw)*yNSP)A(pGe)CNTC^3!~}CF4Ve27=ZkqGW`r0~rdqd~gmp+q(&=WEL!QcteDhz> z^C{1_aU4-s{>@^<1oEq^9%`F!moEp0@Flbf#nmFGbR+0kpT&YEtz?LN87;=&zhABP5oBVwFxa*AHq_ zl0~i?D>zTw4Cr-Xby+MEy;QqPF`W zgS66xV%xsmM!jf=0t>MXgDsm3k+K3wEjbvmghJq3Bfz9KSvW{G^9(gJJm_}}HHIdn zBULJ+Bvlo2*Mr1Atrvvzdj}!z?@~h#Z%=q^xhw^s1lQpBN26AW<%cuu4~M3Qelutm z6PvRCoFCS+ej}Y%F6Up#SKIa{Z7moEXP-0EwQH4-)|OdWnn9KCHJ;n}jTAUVJWssw zv22LB`yNb@5~T4!)?OkXbFt%!1yo97WAaN{mGR+{Xt`>^HQH1vtA(*@P_$82KA$c_ z5SCaG7mbj?c<18NAfrm%mKCko>gc(>CrLJw_BKzsJu;G$>3-}TBH26?Rr32g=@r6w zH@koECXsvsfhY%kmG$3evHx*B#2r$vLtgEDX&s3)n1WbXJQ=oFoMA>FqqcPg8!!e^ z7&~ISO1xX@anCbL!y4TXB;`sL9P|TfYv{`phWY3@v;nrgUaENJ}5bCC7as}p(Tva*1oV^ZJ+ZJ_1c-eR~LPQ zf`a%ZBiL+8`}H4Yi^Cfom&`*GHlTanZbU4EyjT^1Rlu#L^ON862ajES*YM5mp)l`I z)#{4SB0I_5CR#%|JSVKBDOn979E2otvuYhm4Y!9f_f{S)84;i8Xc$C=;u<8zxH)2h z1%unvy6%nr1yw$Mi|^r#`N{u|+G;^N$%xQVxaigj=}M~c*uRw!k$^`f7C<#FXqf2V zGQdohGSfFZ=*7s=_a6q<118SBn_C_72mD@*iutGoMn-=cEx{9)k?m_IiW4w^o!=9XuHs^FOhuox2b@J>&noAM3hINqKWAgqPDn9kaLi@RP znR-&|=VS!A*M6-u8eRe6iZ(!Exc!i7o2%dxhEN-R(+5MC-XpbUUe6c!SqW`h8Csv5tU>?7v`S8d z!&-?5G~u{gu5rOoHLC=}JzG7O48TyPkdI|owhWC1WBhvKr{2+|9cD^;U31)vHFC^} z;8c5NCW?J>8rzn(*gI0D+Rh)3fV-SR;m0DX+$Ob-n{}9UYv?{#1?L6gumhL!t|C5cPnh1vRFod|+lGO&0icQ|kdLTcbU+Dt z`bUhZmeKBUBLPm6V{xO19OKS}&_Sxv#-u(nm^0OYWF+NEjFp{MI``|nTos9aHN`4{ zli?6)DY#)POii)kWP6bsm6u&MSAfM95%}u-q&Lp9r04J3(~& z$@;dAuSLOwf3dW8&C$?)40V2YE8J*f;SHuRku~`xvudi`!SkIfq@HV8oDyB*<61@= zO7q@I@I1A$R`_kH(@G^a5)}^U#5GFPzj_5iPt?^Al!mmFbv$1y9bD|h&#+xL_bd=VoIY26;Bdhm@ACCkv zK!t&|WU&PQxQOt_uYX4hV(kU_-->teqZ$*=hl%FL7)!ncBjuG<0mhMw`|f3u zJfsr}>g?H|Dv9v*hft}qa(7sL`KNphyhmY6?o^g`N|d5TbB0V-{l|5>YN+e<6~sKt zl^*xNq&q!jO*=oyM{Go3+#|UZnB8?ndCUx{+;nE##tZL_T@nwv$P*V&Nmt{;+Pds1 z9qUJD0u>#9fX_YYL}1a@DJ(1|{+g$MKAeC(m44tx*i`&jKg%T1tdB^hL87k_tlO#< zx@;`v@yk$SXaPn$5A(UPe|}qXtoLA{Jpk>i&JcO^ijgiJ!(%ed)j9R3rtSGhEzaU5#?=q3mWzTvBL;F%o z7l`*;5RV(oZspKmaF;W)A7kIxrPG(v#hUL2_vsU_O%%$k9P77YtP5Y3n9d5 z-kRf3*wP2^>q;?tV+LO$`gs_KVEGk<6s25gY4VqBUi02)x(QMT!OYSWZ(?uyAKuiT zeKb|~^0G9o4lsQwa`G~-s+Mq8g(PC&Er!rL$$#sP*Bhp%lYW)%)Sf*f*)0$LW+LQD!E*7GD z#g3oTP0B^Txv6u+pMybbAWj-F$_88*1FOzoL}2O#S|e)2=XBqhZ46z#n44`#=zQ$ zzuqslv?+vssR6QLLH}qX>oc~&SWcpvg4jz{L9EsglkRS`-^+rfs^~Upvi``+G&^T% z<~vN90%uG*vOPbpMI;&u0~HGQ$dPDN5_Gqw85$U%d za;gmSIO)&I@qIZpCtmll-F68Th_73$GuZ0$w^8&8F{?-f?|zNjq%&epU$F5ANfvBQ zl^AW?;G|$!YV3WF1I)FK(oe(=#Z`?D)1u*3^?~e$vXr$>3F@WX##mtI@I?Szi2ynA3H!KB43*6kz|Oy+C&lHRod8p(c)$7kqTz^Y#Z8 zfp9#v9sDze=b{Qp>5jQ7+1y$Dr;CoiX98nOlhfTTThF@-`$z9p?+KR%6^R<)9KwC>`0Jo))nBQH!NbJxk_t>Qng2-2op_gZkBP40O(H zpt)E(VTRK4JNpPRezW=W6g(|Unv%1@u|7aP)EWHoTgLu0CCwP~l}atuBlQF-wa-4j zwJXu=$$I|wDV#@&qzaF?R>Wgjp-y=OZMwWfsna9m%w1+Cg5cW0oOoINy9Vne0p|{z zOKr6TAyR?DRG*fZU5}LQ+glalxw^Q3Rh8$M_^DxBfinGw`oKEH0TNgxa;lXW>lKZ4 zfhwD&Dg5handzK~W(QpcztQwz?}VX7N7*p=Qe=jR-iCr-QHDot%nb06Sv~rT`L^Y~ zW=LWnRZbQp2hl;sWhy5+D~;3FJtH5xuT(yfjx;(Y7>LOcGhJ#cya?q6^2VG1_U3@; zz$HsNU&5F$y~}=~l$rc&Eq*4`0aHY>@v3^-!mmz(G1eUm5|ZGAB1}#H2C1N-^y#Q) zn=+IfvHW!mL4DJ|sa|*HeVkKE@Q+5)!Q<%>@KqK1MD%x=&3Dp!qeBGw@R~t?)+1}a zno>PwZbNK%{)?%Eyh5`Z^?W~EZ;)g&N-0S?l2P}m@nZbc4S0f#q1MNOMo-zB#j8N9 zz>s`Ml;Id}gsX{W!NGLYUrn=Gj)RgLXm6_(gOFUF6Q~C`V6SqRlH__`qqUUyowrU)5B%}qBlmv4XI%Jp!+Px08Ux;?9*9<7IAS*c#)qQbTcDzP^` z8on~{i^<_&zr>8_WJ730$Dug|Vvt3HG4*q4(K90`{vyGes2*FqWrLeb(O!4v`-x0) zaO)A4xRcbSu-39?yEKw?qfQe@mIu4b80`k+PDy*I!9%JWYs;T%kV!C>jR`NpQ06P* zic*QFzw*2jouRH(xmbFls4ru9bME9MuZ34{8YddYFaqu+CYS|<&MEL0^SAOSlX((j zI*csj_7A5sWPf52OW28ed)+NlawTyHr%_?o zY;EWq85CL8*{PtS1yx;m^;>of5TUM55<|2eJ4Bb2f!vNAKOTqu*>5Bs@q@KP2_r+* zi^;t1${iS3x#oGS_lFy0wD&I^=@Bsh0^a>3MQ6LaRn@nOMZBiuka2gE{4870lw=0+ zZ#~xF&w=$;FkanX?voZ;s3OOueG}=bq)jaLFa;KTntL+-$-Hyd`&aO7Z zyZFT38)}TpcET8Zjs>2*B2W6IZ@#cCBjY?yFBR~ye$Sf7MtY#=n=@oM(1T{-Ok<@4Vpn3)mxNNz>M_>Mk3RCgtQy)BS^uNYVfN+pYs0LwI?(a{QY)0Y^=fPb`N1%a zy2(-RrK=2E1?cGWGBb)ZnUZRZ2!bV(#oHxS4|{D)^-+ILf8j##jE|Fh3_TBVTAA8> zx}w%=YsXjW(^V8_ppg73V^}b!NTW-wC1Xxe2|hl6PeZFQ=k&)X2qnf0o63{|SSSAj zpUV(W%Sl&&Ta%X;dok4iHSPbyyZf&nMiaG}S*aH6;%!q;$JCUQ%2s$gL9zm_L*p`Wp9RR~dQxE*HM%ft7`g>J2c2n%t@<+a8gj0y6c=KQo#KcnNOOE6xRh;|x<|AN?dBJPrdY*l# ztJc!sKHX+5Q`4ie=o@g|(Kx3(cCfU^JJceSw{^4xcWUJhYD~tc`!v#cx7+85uzeKS zCtI`C8n(PRXnrbY$ZOdEEg(-!bZu{yVHl(~-HBPz zv19N6nBH%JjoTH+Byy*B4IcyN%i|J5tvh$_sGrf*eQ2p{_qRW%692)6Uy5o}QdI!u zvd2YWBDQAKqjp5z^4|I2&RV(*x?^Unm02RjK)s{;Pd zOFl)qm`RDl`eDC#J4jQ5KO%&Y!zMGYYNl7NY>TmQ)^^yGlN+r|ya=1)W3jpC6&OQ4r%+h{kpwS5{} z9w%aLOp(Y%>B#W3KU+EceOI3g-va&+!qm)La<{FF&Jf8vM5&plA9^tam>n;Iun6VT z_vuPeSJTzFhiz)0v5+3Xym#()TZ#qT>l}}1wTk8AwIvJe+^g4%7doo?shq8 zf~vVuBGjU$wG1r~j(dJA#ycKz{%Ij|zq>hIMU+s> zxic|dMm<{*l<=kemRpTTIlWvId;h@7z?vOPQO4O2=`Tw$)YP2IqVu08>!QUDoxxDR!L5EKS7mIoH@{_qmelasFJJ!k-8%N!zd;}7 zaIAt$JLij2XMqIs4)qoxo%(04!^+#kteKg2v$wQ*YtGCWVgDWbMS0c_c zTJ{qTGbvLxm2j6=lApWiBN6!xqFBrU&XgkKQ*^8@f#r@lV?75yVz%`*6$axQpjHAr z@3;n?QG+ZsNdsjb&xn&JbS9j}t12LZ1T(#Ph7hMJc1Q^<`M9KctQWPkS~V`eJ;>eC z37)VYxHm&YOM_<7P~;Mr9~%3^U*Efmrs`x?n4X+;Ufzyi$UPqE>UANT7iJx)@&<>3Lwqe0h|CmOvEt{fQG zYSf15)0?Wu*cXH3jn?~F4$>>DbDj>^b)tg5nGnu>{ ztyb()BIa8dYF<5JJ8!s0*s0=o52RZ7nKym#*&+c3@-k*!m|+Cbf2VV#qE&x;UcIbb zz+B_5G5*$#Kmx5P7XTU9p(|Nbo1dV@dOFv(_ahl&^eo$E1i3 zV{N9U;}WHE8EC+$mvytwyrxtW0Yf%Bh2AKq0h#n{;|(=6%zU{XoJ)zB3*1 zSWa#q>HLcJaXfU+O#1?K_0EPC7E5$}Kzk2uhBjY{*ez->Vf>!$`qqn_e6@2_7=?SC z9pv6WFw`9QWC*Jx56Yh@#+_&3EUQ>*ik#y+$=R;|i?U34_Z6TJi$6?{1*$^qz_T+J z5s2TAu$3JOE*Xy069P7ADzU;^%FW^1m2X_Gvo`_7i;m}HabHSElo}5XJYdH7jSRUs zg_s!^6t{SJoD zjc)W$6myT#rkzr^tvxxbp3HeX2t4?`-99Dxn7TSgK;d*Z%~l&Z|9dS=neJqOXJZ=k zuXi@?!w8%k3E@6-VTv{9hg%%3IXU+uTiS^?^A86d8r zrKKWWrph%3jLuj{y{&Qtnl;hG*b;NP#vEIGORfD*!84;=tOuA8Z+pjO+5jZ{=BpWa zN4)9kW)Y5d^o%(a&+u(WZJp!NZq}xbbcA4h*NV(mcovoXaehMNE_Rf6iQqo`b=WQK zf=vFa!|eUT<+>HkjW|K-r{k@yI66+9U*_*c(ww2mG-tramo!;bZdseeuzds$E!hlW z98Yb!sh=m}X(JIG@D>{!Wmjtx1g5I2psGOHoaxPHoH?U=T(J^r(_A{4EBPc!()_y$ zH3c`4(N4KmTxnzi%U+d^jP(PoVrkL;h3_b1H#*&|6W!gtf#*vA_Z}pE>@dsBvvPY; zG(1~EPUbp|_%5-M<-9%G6p@v<9{RgUR(855??xKU+=H7lFi9lczMcRvVp<%&;#y3u z_8W-Dp2GIkaRJr7orO={YLCjo!F5ZF->LA)^eVi=^i2Foi3H4`-%8XdgoD+)7xn9s_$Qv zQ4rD@88SZiAcQTIa@Qn){97?7Ps9r^CvGv?1~v`qV`Dorrcx&=*VD5?=K5BfIya~K zQ7HA5cy<pHR1rrQ(cYIln3k?^24oZM51dAg z!O5mf{Oj?-+iGl-&&&4R*jLEuN$Z>;?4`dRUUE; zG#%Fu*z&_S73j(+yQ)MeWePZyN zx|2uWKoQ2T^U{IkLGRI#*A?~vNhh9Aba}LMh}8x1rkNgL9QO_V=lUt^+vy7SfO+0K|RDOvOZ;3gx1jkdDarQts^xvTLtxj!xLdLEBH;YxXC-EcmXjBo61940cl`;X_Qrsgk>G z>QgHwWCB*)yLyHEeADxO!dSbH9tWDCK9eD7^93bFI~X=sKGAmbD!7TGkGhFHHC`BW z2Rj=h2fs}RpCsYL^x1$<%=CNVNfIqs4IV65swK2r5VUUraydO#(3j6L*CxL zh5%?~ds$}pJAqQ-VA}Sexnfk7fNo%xN__%^g~6~T5C0R7DpIn{Aa9RYEoz(3ya6Re z=WT*@s}Fh}vBr15e1I9>s)xWrXKQhbYSEj9Mx$|ZSQh|{8)I5g^%Yoz@Sw0?yPu#(+#Hyn_7C)aITRiBLVOl41Z)J~#DfVJ*Ncr|1^sd@+Z#HC) z+6vL>@!fEhK4PLPiQnXN2I}#npkr!D8__(ne(cp$7NjGDZ;-Zwu$fN9>m>Cu`R;ML z7l^An;Q3f1q7>TkyDo+p{I=}&oY8Dh1xygCm z!?9V#nO4Qw&NqW2aoGX7g7_(5h~F*8o>ho53g*mG_H5>iw5rb}v`j(uGY!@ib|D=H zLh$2PhE3#@n2|~{TSiYjd#=E-!q_;yKF1wA!=RyJ%_V|thB>>ChUp1Vg7}&&4#z1| zVq{jH&W?po?RT#HPPgNIoU@L{*3y^{Bcqa^^g+(XWlZ;u^=3>2%*Bh*iZEN^Z?3ye zWWYl*@otgjypF~92!GD%sr9!F0GJPfGJK8sFa~f-Lgv9qea|wgUeTF)`HXH5JVDy< zXve%v_fv0uTbY|cVik$nDiFv}zrdB(Y6?-S37 z7&&@cmWEob$c>ojx;{-bG|{$cT8^g;!mj2ihVOQd%lrMyA;BRgn%TMjX*4sVZevIl zMq|~(Q!o^zZD^bi7a!bq$fHArJ>lAGrZ*V_n?1N<9!vW$>HWHSK|hULm(lhta7_g( z2uPH}s(b24qV5^6WfhM7+0goT z5AyWRmdyl!6DI;R9{8#%xLbh4`30aMNU79_`OrQ&8Ja=Sg}Z!S7jLYoA0!6iN-4W#<-%A8WR#_C$liT^lhqk{6$*0*be095EaZ_|2*^~M1^JIszR_AIH* zWUp27X9M!OB!@o)`5cwkQ#Q+vzKQ(Bw#1p8ENrpj?jJ9EO#W1HSaTz0i9UPDs&St^ zT-${-&eNP?>FAnM%S*%H9`6g2%&i%%P!c7}XE>|SlWoB&i`Ez?6pOmj_Y*uHSgw6& zPu4|#vW~c`XC+iq5MEZWHhG@^z%=D>K z@IUtmAp^V)m}wuw8s}vQ{HA&W;6-t`iz!8tY5RZp50EZ(fgePvtDr@4B%X}B|2w4n zx0LJG>F*=--sU9ux{3n>lZzICJR8CQ9}QaAslK|?T_okG2UBW*I*2}H#Z zX2@n&db>sZf=a+QgZ&*(M)+j`I=m+flf?PS@c6c-9v@3V%En`8M!9ZMR^|SsJ+Gc- zg;)#YXOpEIEGHI6Y)n9X08jFtN>$5J)H+fzse>?Xy~*l+5z^^G!aHM$6G71N(mY6M zOiPTMa1OlQ6V&@#5kcaGwzwk=%N3G8P&6wwN@^&(oV^e!If>t?DL68$x|`d8ux%tK zd!#$C5s@Hkq-m)i`xp1HrIaQp$X2gh$>TYtL2|*WDJ*ma?s&pL7=tZ!h;N*NTbmoF|~yroJ*6PkKsD-8>c7tdShkC&#hXXMnB%p<9|=}Gk!r1Pw8chIQ> zCkRy<-r?RRhzii?0O(wTEMG2%HwsF$p{N}sz3r19&<2kJBJQE80u-56^4BW}h47ZK zlYqD*>VX`PSTY>uZCI%Z>+aGCF%Cd zDrkSi!hcWThHt4_ZQTx7FpFuU_>{M?mDgUP0(J4zTr!1)jV^pe`c$%jUDZiCE`F{- zp+0T#ws-Z>l>bg|)w!M$CPTvsdZ7;4zfFfHs>@c8vgfY$zyUo6HON}qFz7j%O74za8UT2s#Mt*B2X@Qg63JecPu*PqvMg4@4%17J=_Y!g zrOU(*MU589#2ad;qX8&#FaNqhovm30kkuA__Ju;#~bkjrY2%fwZ6IMw9Tp1 zoNciMG7S(R6*hBUJWq9#x`(?s%8cj&0NyM}alI~9)qyUS|4;c_3Fm+ExBujC|2%(N zwFSW z5@YMqQk-8&+JGgsG2;rJ$a-mXb^_~;WbmDC(T~g^gY~Pbo=ph+!>U^jR}wO@*ltw$ zkKbIs_$yR9I@kz8VwF;p;ntC6eq$WBdJatnEsV|4Fe?b{lRto zTtgaAOoFQ!zAu)`v2d%|OPUH<`jnAK)#x3LlnhaGQHR*r$S3Ii5>P}|L~jjmo1@Wb z@bijCy4ZrE;m{(OVcMW^0XzbB)+~P7-Ok07YZD`$9SG2GSd2{2=lRjiZa8>a=$iGT z7(}dPplJCM=AZ-atjZLmd9vn;JJ!@R%}WbNj^4Fo`5 zbM|0;YLvBj(e%6-G*egnqx3OG;8luyUk-`cwth)U1@XB6*a4I%5LwtUV; zE1L0c0eC|A#2HTf!pqv{DQk9}eRi|q3EU>QCU!1x*W(e$H)<26i67i9m)09o+oaDY zWy|OV`;soLC(Inr6UELZ%Z4I9x8^I;h*PPx{uglv@NY2%sa^<<6Jv9rpOE8r{pEtE__NI$t%XJUyBD=3fH`#I zxwO{S~G&h0Y(iF7?QXa*Ch^yf`3Dpruq%`TmfTEPqsRmG}3V>Mdg$ECzS`v(PGlWb1> zC2LV%!pkCMaZ|X(N!htwmbo{$_S^!T^d#}{pKi#4=}F9-L)QoUt%19-O!oCOz=@!V zPP-1K_rh@tuCo-m!>38ADFT}{2ZSPbFQF-U{l1r_<(lL5<_@}S?VNz#!Ap0r6#L|E zW68<~s8{$zso>~Y4}%)EQk!b}2fsL!Jn9sW;T@KmXTVAkwC zc5CBdTsv;D2V5fatc*(}P z=<7ApzGQ>tU2)2m-Czn&Rn+r&DG^o1 z@>PpuZNxyKXc&bmlhiifp(MuJ;?T>wIkw8+dlzTF`AGIT*yoUp2ku=xFHAbJuiMv> z-?T#qZ(6$UzUv2O2Ib6gH&9{QtXC2eJY>Z~i@c)K_A6Z|%#jiWq#vm?MoBdCAxc{7w zaNYgkPx|FI26mH}vrxam1^psnC#t^9B`erFZC_FTFPI8OrM72&2%RG8Q|I`zYaZXxGLu2PO2lr)04ExE?AnT=3~# z^{{LL9E^A@K8Dn#ggC4Qd$4lKKd6(f=Diys)D$$9p3*{E}cu z@mH@8D+a=3iM+NW4m2H%s0l(U@oT7uaAywu1&gXu%Tj|2Zl&8e-MabhTFWYBwZ3w1 zGEPc-3Jhl2v01b1wm4uair&Z|d7cw7t>;9C{g_+5iwCj6!DSsjtdLG^SFLYqJycVm zq-gAWS(xu;CubD?#Q>(R{)(-Ui-ZwnO>f4a+cr9(d}zvEsT&!?xIGN~snR9=7aNlT zts}wr;MzX7v{|_xaP3rLR>PU4$Cz`+aGb?4nZ1+TqU2CiRED5;>PDZ;kie8>g;Tte2{N{+*ppoM7P8D zeksbsr3ypBe;+5h4NH_KERW?k=!3~M$ESE&)Q3r#qW+0HG3(!=4lu0a&+Ttw->^_F zwNQ>;9_852n_57GbNtZ=uhZ|cK2^}B_MiKuo2=Yw6^25%q(%6^`%YEDS7X}|l?SF4 z`?p!9xo9(8Ge!Pc6L5g7$P%U!lGs~8%+0xK+$koQ5z&>5CW$VS9^kU|RQkOT%K3fW z9$_1Fpv(I<60r!7fGPksmM=PTSZ;4|CqRf%AQVZ=(Fo_ADD1&Q*NtFxM_{Pv|HLT# zFT5F~Qh52^F(68t6Tu~Qp}96s5*kf*MjrrsYdG-tKJ&#$YQ#qtrS+VlT z7`R`@hOMm0x1A341_-{!HqERJxzl6r*VSWp-Dxr78cLYL*8_tkhRYUihYA(GdyQk< z;wxAY9ywoD=d(NY9nxX`b6Nwha>$v1>mcL{<3kH;KHv~Sv*(Ms5MgV#d_9IntK#%| zRd`7eCh{+?-nh_MdB`z7LL0hdY|oc%dbM%ru$bzSRX^wxTSl@h2$G_zBPVK6cLc1r z#fj=2382f|7{;8_W_`>aJ#rE0a+cdfHaI%z!zhQnt)QB`@QTYRCT5Ev;RFklj>Kpl|yPwwhirEYNfQF6X7h!;^Rs3GI4kAUik!%M2yDdCJXvWSn zleokYN~S4*c^9>No#pFHpx(gR`&0kzmV;8CFP{~wH* zTYJ25Rj}Hyy(NT;cg}^axS6|IZ#MtJxqvj0m@$8ol@pe}ZnnQ>dnhOl79N_gb1)~! z=tMsU?Rj1XrW6x~zvOPZG+;#z>cXydTO{n26|~QK%3?4Wq=sO7X9*tWp6<+}4yZn~ zhDKUquOZ5NX31ifCKHQ|fS0PgX`?1St76#?dXZ*p1?Z5NaN;mj9OE}$@S&94XFsWj z^yjR^$8%hg0`6VRgH5O|`ja|isIbNWY8 zu-Q4NoO5CzKe93n*;+uBj2IZWegne=z-%R z|AA%TrflWsyBB}hWdZ|at#6eE)FN=nj`8*KpWgm4jRAif1$J{ZhC%iOxsTF?&%y(2 zop6?>@S$^*08_L2N~5FR`*+Ko9i+>2M_NWS>4zF+Zl_yI&7`Bs3j6ri4{j~Z&2bGt zSFkSk{Fid&ZG2;yY%n1JZVmO2r5GRRSk86J2$=vKcUaKVR0z8LqEo>5-?HdV<&L0| zV^9G*p3Ddi-0T5iXui+hBL$5X;<65DJcbe&HS6AIX4*^7cN7gu zWDPay$PP-N{6BLBawM6XzOY%Rrr?G5*cw(UAw2Kcxel%P+z4d@|AYRY=gXGP$S%p` zg|61JJ>P&Je_;_U>i4_AEJU3=z6}5#b`0YB=MNAmKG+K>){!UH)VKWJfFFtvr-Vev z{764|0iasQ^f5l@N3#4P%5ndzyA#b;PI0rn2{Tlho1`!EReqT;t-Q3OP4$**4b>Xn z5ZQX{1;Su>IR_7}XfTS#GZxqVPmRBt&|kHwB=$7mNyPH>Y5Gurb@XDI6^wyDr;A`; zl3ntYm2p5bBle{jH4m8S&L9<^EDRiRa31|1ti5+slkd_68fv1H1Pet6_wC*u{p8{V&atKX#?*>f$IrA0f$Z|vG@OCg8uZQN6c{NO_zv6m<* zf2|Lw#-m-!Re_~!vMNq19kyJSmy5a5*2>o+7JC+u-Vx!P(a2?!hVk!~Q;+fG4=0D*O%@O(qxSuUK6@8lwkola!pM2%fl za^w0KtGKddI~1j8NrFKY_nG(JhXR{aSR6NcH~IPH+_G(>CVv1!u;u7Uu>3}jEu7P} zPr}bXy}^HNW>=)3U}{fW|5vHgS<0)NF8EV5e3|c)zd(i2=!cFERo*25j!=NdH^@yg zKmtX)fvv~$=p!4)h^6hoCrA43xc@i+d1+AB)8GSsHXMFwz-kl-I#YWB(zTPF1iFj@ z#v4sbo`9;I+Y8tk3ygT*n*x9+8);`Ky5N#U{PG!F+S^dB)I$ug`Kg5g@~SXIoumK0 z0Ab{bv6S|j($+ApXl2(o%V;;C5drfwNC8A7$A zUe&seEt|dh6c+DUozabccI@sbjdH6zOzLFqezclDX&7&QfgbiyfuyXl(eynC*hL~$ z6!Jt9_eJLD*YRP);Ke6CkF7n@T00a_f%Pc(Cxu?H|54&C=#`%^ z0jwadv)`n4$;e*v_?!$@Qvb+LGh@-!lD_sbhgZpMbVWjdc_#H>aZIDTq4fL5My@7i zxMOSN$?D+VuL|qtkxDsYY-@=$)x}9vX-92tk9r#Rjym1q8s5AX!^kqWeGQCPO>@JY zYGrX%`xW@Xvz~nV$M(d*M3R5xwR)*&M`zCRX^Wn)m|lL+$jZxbj?>a@Vl`s-_Lcp< zaf$V%WKjf4Q>ob!?hAfvWU4;OEo zjLlwc@Kc*Ig?Rz!6u;m*x&QrSPxG%C$b7{A_qYD9z*NsdZFWNZ05{Gs0$}CKh8ahZ zDkg^7>15F%Oh;D-SXA|W+oh$czyGVB=rS2GtzhNYNGGhQu|lTV#lxhoEla0HfXeSdU^pb4^#w5uuI&RC{1uVDsmvo{Y+hia8w7M)G*b?ttHl=<8m_@*MAjnnU=#+Y$~ z+PT9GeC;DY^^IQll(XQpwYl;MA1>#$Yhl0Acgw|;IK~7<0=-WF|G4dY2g7ia4}=S< zB_d5&KO^17-ptW3FVFZ|GF}XRSp4GE?1PbTc>GqaCPWsx&$9&Xm^D$b6 z%uU?ZT8XDp>Md20{yaW7Dr>8L57>niwPI!K*PAV}@91|pwy>sUD{;IA%vFt#e#ePw z(^>SX{e1b#P#5oRQHWr{Dt&+qOt~Yf$?g?@vDJ z5j_bUj{wf-zkmPO#b16q?^i{7j;Fv%UIn(7c0;wNI^zolA#QcRUS41+ofa=8AdU-a z1hn7Ba9>+Wf%|vT)<(Z{Z$_+yRnSYEeM!OaP~RnzM>(5M*wuz9C%fMcCDtbOFqYai zT#&!b&QIMO70J&R@`}~Uk?zF2uv1&|ma_Sg0x`UaPR-dX$(UZPhUgW)#zKUR&xy9(}1rw)M3t2u?C$ z+hW^=9rYuT#OrsFXlHA?F4`($amfT-Y^5Plr8`SAu`CWda@*9u%!rrG*?If>{o&RM z)EYJIfRkA`3#^DH!8+!VT7&`Fe3)4icSW%x2U!tAuB`HZ^Fl1_LOR(&g0_<|F;Hku z;m{L{wdNiXjH8$0dtcPrJ8x&@e=Jx$TS<WB^|<&NBCYsv&Go(U}|`T zLAwGG*pNe|LfNHM7X?B;C#NZrrvl#-m_-^PtQ5TF)Dbu)QA+jy@C#H86S?7dzhRE$ zQxk!ow@-*#`q6g|HW<%_GBrnp8i*1Pwjn7eP;eh4o>I^})~4a0S5G^O%nqaqY<<>$ zz5wj+`22m&)YUiUcsqWy3kUIK1l)7!oaxBSUB|gOt2C2>0;2j0qQqy8gLlCE2zl%- z2_+e?y_BPFR_BIP*c3&J_iH)t#W)c4=Z;IfNlB$uol$Ksb(LxFPsC-7U^?|wi@Lsl zCyW?zCVqYGK;N49F|S;0;FaNRfAn$SH;26hlMD>0j}!VArijlt!K zm>qG838!@Ms-ne7n_VF*kO;);&F!THAG@5J+x^_%NI{`Qd*_)hq>nXx+(sWEj(GjO z8vEt^0k>gcHwF+se+q(8fDiif8v`NgI9*bcmoAzS=AI({AHV#684RC(tpgdX5rCif*e(rtEKzzMw)CT%M}YNQtq&#IrU$ zs(>lCq4G{GEu6j{x)}ynmD(qjm2OQf2=4>$-C@n%Do}Q;1KZSpapBQ8)X)el$33p1 zQ~$NbZ1%d>4cgiw>{98(Xnlf%(5t-8alTCutrXqROe@ro$C`CCe`~sFkQNZTbAB6Q z!9}Q2qCM}Ng~d=^K}zxMFXo^~tnI=IKNQMvV%BAEWM}jpwIjrI_v6hX+x0Faa?Y`- zG7b>j_DME$-koP~WuBuYrit+2vQxK4+i9saDhDC7Y*1lNkV_zZH~4HT zAO_A>;@Y}b?sw?J|1tt~7e->qD`|X~^Pe95f4zMQ-o6~jSZRrdQqslh*Wy%^FQE_= zVqcjJBPyvz8*pU zyjZg$b)}?evL9%<&FOw-rOwFSCG~-uRL!WBYBG9b8OAjVM!>q;t)ts{26ax%;+M#&0N*XiPfnfbZs&cR)s_2>#pdn9zn zX~;Cqu^FxoZMk8+*)G99R8%57e4JPubBE}sz z8aC|}7p=71`hvL}tYd5yYM{D&A2y+3k3W7+lP|qpO_el(7-wA6zK9Cz2A2<+$5L2` zpH`-`iaj*vp@g;ZkZ`V)OdL4Sv;2qLQzAFMseJd0{J-Ade;9o-S(wVurXqg-+=Syy%)ee`RfG+C^wU+9yEsBp?ky!32EG{c*lNtz-RF{DerLPyrz z8yA_MaW!V=m)&~?NpI|<&rWt^*G#Jx})AFW$*jJTlE z5a!zHU|Io1TgBx-?Y|9;C8m;l_Fi+>MAuty(KVCT1s$s&O%h_2CO(X)DD1@>#DZ-Q zDhDAo$GoBL z`+-TqM9~j%1PlXH211P{8;q8RPKBB$7XhSCwag~ery#vLt*%~g@vmv~uN39vd<@OK zte(HmFH>VhuhdT|2{qSp{qrIr^g~V*l27R;hS1gr)D1N7-0KFIstu{W&#MyXAk!sf zon;hql-uv;lM;{2aMz_5S2pqjy-D2L7mbq(#CoooJ??n+vDdYu{o>VSqYzugEIcCI zqI{q=;GUqGaj+kOLMYXH*QAq|?v!$){=zSUv&AVlBjO4}GE0_tR zKqpNwR`#$ZFlH1JX_c{+4VE3DFGO$OFpZ#tlaoVrHtnNE{xR*gqW8AGt1kPvJ&NPS@=;@)at$8@Qj~6pHNn zJWZbz+m;1~+fR@U7HE*OWZl`f44tLP7t-fqm6?^C)?%5in>`+y5et>ByFJ*3tc%GL ziR*nLTv~M_aioi5j(h2rka0JDs31S{EPDk@&l$4|$`#SCM>;r`ltXGOGJfI9W#iBF zcw0&<(`AnkD@7x@OFWSYHC6VVx2UdwAoN}pyym%gfzwjm_R^Sh&?gqpSDfrh>|hoj zpnw9`6|Ulwn?(ZJ3NPkVZ{D>TvgMGkfM!S^9A>|c0tH2Op5e_d(-Nh;P0JIrg^;mU zO1knE9>ZjTQ4mLH(Qrj*_&ezWuK$Z3641ZZ%nO7Ry69S={~w3@*YCr9=#((<34k!S zBO^Xfm4XW_LWay4(=dvk(qBA#8`Q6%{&)z62{URsy~#G3MBZ#wz3Q1|B7*6h7mu@|CyY>_`Q*uw zH?LY%&YvyW9S|}ly-YMf=1b33<_Y|A)LzVDu;)@B>KXAr?@6rm5`tg{iW%mxvV9Al zMhsVT zjM+G20xPQ(2J!AU3;bjsf7=PG)%f+b){VD`X6e`S=NBadAflORlrT$aJh(D8E$lV; z5{O%z8x|A;xb=s23dkw><3%pYqwFEY73cB)9y9ttDfWlAzS~xuyIbkKLA12?%B4rK zUV019rH255FAVCG`IPdy?dLDPX<6WB=W{MYP-AC;=^^C128fT33$WyMApr66URH8S zJ-Q#zt=AH0XOLtdXY>mQ8+DR!-#DuXBzwGxq@&zR=)7C5t(^Cp>)ZXYUv9%?-Dekc z(#~3~OWA7Od)4Om!aA^4DE@inYeb5m>4X-6X>AO`ZbR>l|15)bRyXGnkzIlq#&ylJ zb$MLsK!9QC?sm=*H=~`1+m&2cnW4A>=IfXvAJ^kl%Y}FiZ0x-}ei2okQ-=5~olz~wCLFZbJI`cef4kd&{j#ggc z=`;w}P1!xSYaHs$xYlVgQDxd5}ZWU`w1Pm zGJbJ{iL`9toA&0J=<05a-uhy(R$mk@@HquHG3GE+n5y~bx7Ixdc9l1s5O*+zzy1%# zpVbckUEOm6T|PX;9scmyaJ%nNTx5e{<@zV&6f#T;TtyE7axv@SD;|>hC+%eOAkd}5 z+*l^Rp38Sj_<$ax;1gYjY4Vi?e_8d}6zweNytCJg1pnlkVt>Lf={*Edx#M})#Fqp{ zYe`1kqc0Vm3KIht{mSBWh-KbRpO6Zj8gDYVEvkMt2@|p&%b3I1z)(ErrsG_EFh0Doo(ijHz`&&GFdC zg*|&=Er1p)NNeUls-fvhLO!TvnhZq8onYh`@MN8I}=MW9R@*> zW&FdQ@}1`t=gLI|z1j`uilzsvozvFRL`39fQi&tz8RB;l0Wh9HiY73S zj^8Ok)zzsL(!jJ}7h^`hA(hkWWJzdfcZCg*8{ct%+Ag%91e3+{eZ&Dhq@Mtuxr=L@cX< zG$-^3+~fg@3`zT4H0KOrz~CAZb4gibV~FX`lfO z;-8W`a4x%QYSb^*l(iUwmqx1(zNPU^A&zbta8lW92d=&1W#z8m((3@iJ7VR#!RyH> zddMlY7b#JK<{J)5ummFwrkN76@MV2u5wVl|LTiQ(t8A}KUs>_^ul z`NViGYismug$Ud5X+CpP(v9}j4^{5=5d`9`oD3sO)x52+U)YdKQ^-hxD^Y(P+n?w+ z$7Z0EeBEq6N6EIi5p!Lx(u?_1J|eQ5RMhf8x+pmkp{i710>*51(OO+7NZ`c2>Ue5* zlRu;79l2JazKEmZwf=VASpreKN$OF9H=#P6bB?OsYOL zdQegsLVY=g!NRhl8z;)OD#lT4MGtngMRn-A`(`mM28-M{;QZ<_YI@C@<@&fX^98Ce z62Eadew(L}p||Kx@w3D2FCsMjm3QA)vHiz|Qs!I8W&qmM_KDr*`FKHVOU;l)IZq~qgC?jF_r*h4FeJ^H#vD7V4)J^_#MY;6TwzP| z94-L?O~K5!-fctUojd zTh2T_Dq}Ul>uhZuf5;2&^c%nI?;yN=3U%+jReMwyo8_5jYNwHcZ+U|#C}BK{sFzSy zT_7p6g_p0DTPplGhXb4;+P#1|yvMNKEB2c2rr%_3ta46&357fd? zK`xKeZ-ixLS-MNw0O^7CiLTiEg7%vL$4ZWE``H$4^wCg9p~&Q>`Nc#BlVY}<2m0@G zM4_^K-8K;yvLn&&oCbSWB|>W>ax@-~#T>sUibhM*$ZlGqA6LL%OX@ImJ~G|l3q`h_ z%fw?l_2{DQ_$|3G=ZO_M!vpNEN5W{T0&_L!)CIyrUbWse#yAii2yN^=!})Ay^%jFA z(T8!yN8L(xGI!Yai~^C?PMQS{<7%N3uTKpe)R%tfAZ!OkxQpM#j>LA|0J@v}vn2Zh zP>|_+PiMY&2>p8qBqX*_ChMGwD6Aj2N)F~O%A_-LiB6@PEj%;u>C^JtvzS$S$i;}G zaYgF7t!qysz+)wcLLN{`W9dJR!N}XF{kaJYPZj5JAA3H`{vSJqdFN7a^uKlie22Jq zl|KAVR}*k8xRI!x@+{V-YoIB^T8Wj5OY1)D7Ks8VaGT9>=77MfF|;;e7oi8ZO+m~R z!-x_YUaza_<6JZpG;~wvA|)iTm{+aQ4|w+UmP9|?W#&x2?C)s3HfT5n+FJ(&E%FbT z$kj%DB}g~DgK#b5LSMJNlH%ti-3#Bo_|kmX+CB$5FcBLV%HaW z`71eh8`QdO6_W+ze{^wSCVmu$h;UYPvdT@X{%}kKV&z_hzJ$hprigsMmfTWlM8$*l zsMW;PVElC4a|>s9_s`uVVV-`3Wa_-b++W8Pxono-A~6re@~AKg8(Q0bwcSf#Otl z4Q6-U(%PEu+Uk-@?NsAf=ARVNeVPK>&c@Du6aRwg)k{iIc5Qz4X6{gq0lQbl^+pLr z&DRxu3bbu{YeGVc!h~nWt)Jy z-~Fe~n+U;`Dmn)aJp0omFlU5Z30dytsCLxN-(QT?Q(*Ou=TlQA)w1`5^9ywEz zjmCCtXsECz&=Z)Q8C2Ir>acV928|_-1elHI<(D=q+^B-T{+Ni|bK^hPn>YpuH=mBd z^*v~{rJ8^|PEIVPVC!rdW!>8fZ+z$8B)}Prd}YVK-vL|{zPYGsAsl4oPk7jgfM%&y zClxn>-l(ou^uF`z5KZ*1Kz~bFS=hD~$RA!A{Jd+_UNi--#qMuk-nB}NP`cF}zmJoX zE$+`}&z%Z%4S+Vk)MoUNsh-Zgij2xhr-I$6Ja}sixw6TUXZ+|xRaiq7wz{iTY+(P~ zWy9BFw%xx?0Tgy3)Sf@T-d`Cj=fzGImSE;Ty=eXL)1&mC_m{DRl-S5;mVa6Y_#+J* z_|ZA8k}dJwy}_=GsL=-}@FIzwlCa&)Aae7M?=~KsnD&U(DDdym;l%sZ9szq3(=Gm% zLgqfy%oC*#_lCXP3wg?(f`SSgsR)TnF4axS0gNHf@LpGM^Z|Z~2w-xt;FnOjp64&& zOcXY*UXksuM}8_1q$g6)R?fFXmR`N_io2>nA$QQEGb}XKeWoB1UQHAWQNXO|@rH}Y zNym2W4n#6S*xm#q-Pi_wUP7BRgclZ;8%qu*-R{p-CD@IOM9~L(8yQHR?Ii5IrntXm zpL2J+aN*j-T>bNpa~vG*<$8i>(WnihvNkE*6iZ+iX4i#FxL`)qd6DEoA;lSq#A(p!9-1g9N<_q!6)F5a;L2|Lb-X}EyAmTK~E$zQ)>>Ug-<@BZ6dEcpsB>>hjG}Rc0MP88j?MC606kPSOciymc zj%Ju0+^*;U?Ro!h9tH}uFEJ!B?+;s^sR-Fz-zrd)uVnt0=WRi*?t8{E{Vyze~XB{Q9DtJJo}6w@Ozeg!gM1+#Mo}{O04BpvIN` zbo#S9QBc`!?nryaDoy95Mq$T-klR*wH>#xHTz89YPjD}*u8x%!LkAm4`q-&DAtqC; zi}0YCx6F8IU42ecKNScA8j83&zyM{_XG~rxO8EZuK?zHyo9Tei`=MQvJ(yc=3Q~OF zA}8r$jv_!Rgc-TT1SZ`CQGO)bJ+GP;bzxJc@i-TEiHt}(t%C~L{s=VKk|NGfoSN-7 zqzx+X2r9GP`Dxh_!r)Q#Rg9AEX`>4EcOVVVI6heLFy>uu^4nic6prwq`uPW3G-fN~ zUh6*j<}r#Khiy;#AJ4?7GTtX)*AFA;8TK)W#-tbj3b^iP@P(nait!9hqZvAW6C=(i zzO%?cjagla>}@Lk-AKIxEPP(Qe*g*Imk4)@sg zi#?Yvgwi5|861T+tNQKo#oU{zG$94p@y>-VS1Bf z;8fAeFsEGNZ+ zfhqY1?KiPMc;#9!Xwn~Y(od7w>{B&BOsF^~{4%G83*K|jTA7IY6Y~J}hpVLZ6xULg z@e@Nmqphuil*KRAC*L!-IEjuHYt>SJ+$)Twi12Hz6#w^g6nL}RBX^5sY5PC1@+Lh# zm{e?R8RPR_2vK$&Ap6X5y%#CKs{Q9%v zH8gai9UK9`PijqwmX7Kp-z-));Umng6^1N!wI?UbCP(W^ zBb(PlSHwady4z`O+nhD7bUSwO>adEgO%~ytY1iW+cPncMN2jhxwACTj+_>Z_rQIvF z1T#eJEfxow?>%Q0X0PQ4FF^Fl1j~{hYwR!Pi#a&oJ0aD;dx*vsE;*Y(IrLrk!KAkS zE}8qZl4!?AhM{)fe9BLC3Og_Lj#9xb=?R+>kM2MJinO|rD7<$$2WWUZ0}b!~5mXk_ z^VD$_2k`)gq^P&1K&2_QdJZGXd>_VhwmDsfAqf}s4WNUXeQZ&hpgoPdu*FT5i>c1l z55Fb*9akxf!#P|UDHxG3M9J?kcN0WG0DtpdNb`6JBO^VA^fiRStOU28tc>aVp^YiM ze8c~EkRDHCS6_dBf5|sr^4{#E+V225pxQW^p11STxBcWl;UDr&IqKFZQGB_2azL(V zQ`cb+?~})Sqr;Ng}2Z5{AR!=?7HVx=iMk zF9m>QP^IJ!abYfLyPJt~0WXMswj3%UAezGfJ1#kUfJupjc}nIJkk*|y8r-i(C5wfL zg(ZV%Rwj8rCA*ltSLnsS>NBT4YNfpjk9!J{M1Ap+sn=Go4qPj|0s(l0a-fSX&MgDT zNBWfNf=~qwg5QAPxiqwl@db0b>*Z1nWH=#be!CFxk{?jF@qjjLmG);L@ zT9fM^Ct!U|MNI^p?iKuTr%irJ>iTQ{^p{-uJeu*Z7CgS>#9*UJlz((7WpgmVAv>{i z-^)%ulqmqzj9Uc)AQI1CDB924XWvkF4Vrm%jG0>c8mPHqI@VH@5~|+30FVG>SNAD^ zE~Vnsd$!xOT)Bp))ikv@l3UKQ9}~SE`512gHlHS8TvK_Id)GU@6?HV<(bt|dH(wg5 z;7tCfU(4-@M%sS3RUq;s$I{&lqwQE54wXj)Gk47>v2m7+ z|6HF2JPtW-!3A`DbyHN>v(vtSG`$9twfjY4wz+$)dlJ)N+I6ulv~Jvc-Tgi`8Dd27 z5QcGEh0!c&DYfGa{AgIUZpWxEi>NFBm9i$qat3&a{#a?u&M*+TI%G^Z|Age@S z$SxZqRca!bWFOT?4LP1yU{|q@R#F_hdW{=Ikzp^pFl!|QcW^izl>PM*9Q^~MwGoS- zD-~j!>(`DHk$yb1cuk$KS|M`$u%~w+lgdG|4WsEdvsoTndbh5Od%vSIe?(KrIHFv` z!7EuKZMk^DHnIb?>oY8@K_nZTUXXdCV@_-ZgY3e%f%>16M5Rn zMS{gZ4DoRikaDD#bGLYh7XBO$Icu$)1ZXGp-6%!z5MNIXP;bj&FQoAVyV3cTK z@;{3~;OkedNC1|gxxYDmto>%I6Q1rpb4?<4&drp*1K|J6OfM@ykn2W{$WV`IbQC?` zesZz*rakYZ_;vfP)A{@kVgv2XcHyPSD(QA2Kn*a!@NFj2iGew?6Ovd>&&MedPcwq@ z{W_37H>BDbMOYv#Def{#NJSdC0N9jHO#Ie44%|?1K z=I^i8pvx^=pFMOMl>Q6gLt$gJZnmzYrcZ_q)o>HQl32$>Pif4ayL^A8@NZY~=PipV zC zyS#{3U-sFE6s@$)i75@FHcg z;hP&f%V{55fSMrN@!N@U@JARU-txC?8%~m2gMWZo!*9DPG2IJW*7fI^z4NCy zM=A04U23TFYy0Sk_BxSLp6C$5yTO3`;j{`sSmJc~DNa!Z#{R;Af=Kaf9m}5{$3|1- z>O!}*^*z;^l#D-bk#88xg}(7DJG1&UW4-VJBXZ=NtS+wz(s|e3V4-d<=d;Pgxut82 zmRfFhs*CE3z7>HF^*@IS9Cp}6l5BKm$70Rq1e4=yq(nmE8Hrs;=S{oAel4rbJUXuD zrFnDR(*hyHn~Rxqbo%JM`!bB%6P40!@1*m9->0i{fa_#+i#`8thy)699WT(v-fWml?Zi@FVX55xz7o!Ap88L0sSzzRrpMDge zN@zdNWFT5)FgBlXJ_wahbtVah0X^cWfJf*?6(C;%f-k2B0dSL>k;>S{!1@ zlmGcHhdkcvXZVHvCA0%){x3x(h|(H`xTo#jrwl$1=JLv{b1pnZ?sl%cR`}vi;fF%= zHeyc+1iHsz4wv}q{#J8JC)Hd-Z};WjROqHWK%;E#3oQPPqi6BK?~XPF#LcSy_}r!h zW!if2vaMGAcCd!|Mn2Gxc6!IE(*)+dv;oMno*&`>9t?6tuZ=2zUPc!y8gS-}cCCy- zlTo?lX1CpU*5I>>7PAZtg&_h;YhN3T%?4$TXVDD(3H1l9^Ibh(O`w=P9%5nHy>Z)m zxo9!#*ui^}j(by`Xb$;~a%p0JK|+I<-P#Y?2T-iO4&>) zz-8?;+PZ!G}A@DTcWJ2p@P;^WDg4lJKGWY5>%0@qbu|nidv> zFsglQ<67$b?dG@Yq4%DvH=5F&^&kAJS{8)e3v(wCj;=gIpMTVR5(xXG0Sno)KR5i_ zMtiFU_}YC+o8Nc@$7FYzlFs$eemUUHUltRfHDQa-(ci9U8GnQf!N%&n-2h2$C!mp4 z_kG8V)1&2zImP`ovt>he2B7M^Ghd%l4?E6I+|<_6Vg`Jh4>TPjD6=}n8#yUO6Kabo z9FBglP7@kU896JNRfq!jBT^ep}WPtPht(VZdh3z#w!F} zahtm=jID@{SQ$*Q}$ra#z{xv6BM0Xd)5Y+2L10hppw@x>$UH?KIW_;(MAhvp31fLNzF2v!mL* zZxlRkN6$&J$siE34e+O_5gg|k-R>sfX$^?CnWWDFV!aB^vRoq)1s)K_S^%t92Ts&* z<@<*MARekFFTm9^*?${sPI#{-NM*q>>5vE_a=9+BA1N${KPH}htKf|`H_JoEB=n61gB;bpC4;$1Q_e)Lm9s;QCf18N#)o$K(o$|86P+GLi!secSfHyVLsE(T35s50 zqegeYm&a{P+%8^LEQ)o0y53roi{LN!5{fZm?`vLCjl1kS-;1H@n2*}u(~H6Pg89we z8guV%-wyR!4YV>nXMJrqd0Gs52(#K1VbVFqm|sZ5Isn1YAqSkkc`Dk(a5?sh8~3K8 z)^=W1K3IP9dI#)f(5 zc?z$C)t{)axtTV&0FeK;Zf*?by_tCZH$K5AF}f#x1joxWO`FM5jt+;Ol0f-xxNkPX zh#mQx=MJMm&I{P6_-lEvva&*gg(8TX_6*njg}n-@>~ ztdP=e`ArRTinQ}T4+*=(=N`T#p|{o^Iy4+^UyhQQ33GR`doST}cXXNX_j%yImv*(6KJgdil&d;FLhFsTR!s{OawPpqCh z+rQpCTX3nt?V$Rmz~bWs@(^iQgR#M3s~p!WizQcXxXO~i^07`~B8o#7R0}4C{t-0i zN*Q_QBo1$QM9DvQHj0aEAed{k@v)#+#)o?%F7dTP+e?A{I2&PclKor$rJhyl_fi7^ zMk%JBRYIk+X&hpAXDIa9RfGkclaeF31PcT%KOH}iD2??^TTZ?G2FY3KAK<$!S$rz8sQ0QxdL zS{^k;o%Og*h$PVPs(=UOe7i@@sij5?RP=4T<=>kQD3`WA<6!TSPpWT%;32tPspLz) z;xF&sI)eNk7-&v?wBvtV!x-eTJTkns@TGSD=lg}?=8ZqV)0~ONCEE9EPR@IPKh7Z; z)t;CkQv{&93PhBoMSgo--{^^*N8uSPzcJ0CF|{1_uoJ)g=`P_G2AB^5mPhz z;0yk{_7Wiqep4{FA?6Ii%4|d0vK75)ci{ReKy-MoR4@-OTBWW%>C45APWv}fs3W$`bQr8O1oovh3=fLIiiPHFu59 z3ZI>y-`G3NK)ej3_D}Go+e9jdHvUcwEV2`#fFPTv$`Qq$ICTR!g~tGj=qnVtk#-tI zjy@(w2UMyIwZr`}uH@;^QN4(8E9Fe8;0U_keE@(>cBbBw0!Fp}?U!GxYdh!N*Cw@(b#RjaOV&EtaI`g(pYrgAz=n&qJTb}YS*XGscU9QtxM0Mu z{H2MGWSLc4fC#tO*5LFQO5MEe?E2vYG1+n8$*5JdqV(z-a06n=v)VsKm#3CHVrT|Fx{c@j(XR5O7S##XoYqj<0icSHpzH_jk;YIXN& zo}I-lsF2sDL|g#|{`{z!uXFOJ_b&!@zF(tHiw=>`jf1(y6X65*tN5#sEvfV&bZ}-`k0+-OsA%! zfLF<=CJ+7dY%^1&uZ)5O^SSh+3%O2uNp`X{Ub|iB^oN_< zOdYHkrGv3{q#@>qLB>CxD`T;d&$YRpXZZfCZ52715&0=$Xk+3zZqquSh)xeMF1D&? z#dH~ezvW`tYx0yOTEwe~ZXobU&*AFi(dvx7u5WVPANCg;jw(P0RbK{CgkA{fesFVT zxvYgT<&9Tw=Sfu^EA&{m&fl$WKYib;9sv|p#HXkR6JHt9?Dm&O8Cws%m$u%uD?S`q zXZ|C(#|NusqDvIrl!F=re_;_Y(r#=33sTC*oKz&fUQBJrpQ+v8X`5@3{^s;v?&-9uUBwRZ6t{p>^~Qo(Bi z;r2K)CuNUP&yks2QJjp!ahR_aa*u1kX#(11Jg4;+@H7$JfzCZl(MFDz5#AFSn+^&g z1MgN4y{wO8w$r|Z0%Jrs6F@;#0J5)3)m)5&1p?j5X>OBm(hIb5U1YE>!LIZf4% zS5Q}B?c+@3BaGDv`=Z`*NoETOn@`qid$A?c?~+mlJ*R_Nm`}FZv=$YgvLrWxk$NT` z!*@Im9KedN7c8K@_dM(-j#^pJCK#ebMq#`wNQIN*q)ph@4sqYRX7`>Fb_5LS6A;Fq zot|EiIyqCem%qC`_TR7ZH^zO7)!@3Xuw5R#TD#?~{F?{ZMf8b`rjK(Sa9a{lM8c1}lE$|~34^!Ph z6c-N1ds8ZqnlVJS`hBd}78n_)?#?XInFhl2C zfx`TyYww|*Q%6gV=zXI#;OCV!GP?upd@lV^J=zEOLu-2*TCR5}$pwH2;=O*`ZwDnh z1r(RAw=ScP_oBw^3kH@;8wg(GU1kZlk+W>Qf}dpPOBdpPwp9(+Yjbn@E@3q6D0rf&fE`_y`xS`(}v(WI2?I&Xz1E} zN+36Mb+LB+)8+6-ej6$FsYAa0+qV9OukXL*-?H6X1AMQ>YyL9&{*Gm=EF&uElx#Er zEc!%FTt3TwI@osTh6w1Xuqy=(F7N>zOBh z3r`-Htg|$bTW1&^d8x+D{vrbK?N@}`W2bf5?i1jiPMj^?NT{i|Q8xuL?jb-t9{kwj zWGVHxU;=<}1*Exs$4U^W$b&@HrU0R0*cAvhT+fmNO?-Ze0#4M#qm*QCwSV|#-9Zn` zgMFsoP7svOMg-_e^JO?pkd}Z3q{iQQMyG+gLG?rjqH=O5TG}~*Pq88%xLGfnBM9q0 zSRk~&zSV|w9v{WHTf`F%CiBozRt`DF&zH?jq{rdTZ8mUrqeRhIGi&bYTiZqlohrne zSI#Nou4!A8pJP(MXEA6RZU7Xy_ilcbYa301w8)2{0bb4yM^4aX--=R?!BJMJAU~$r zxM2Xt5Zd@O-~)AqkdAHuymf3O6(66Q;vf=$>5m!Jcmo?cjMmz6#5ooRr8 z$Rwrmk#J5BgA<0mfD#HUK>-DQW5ShLU|&hG;eY;y(R56>#+&^o=!M%QcY2=x1~eHe zzfv|gR137TLe?Mr83t=?1`Zkp#DD9q{|gSX@* z<&t;VQ`by%6wHzPD{mbIsy-}U6Zt27>$UAX&!sSY{LP2&rb9j|9c~Wp$bJX{8Ip4; zLcCZ_wQ0I{^vDW=q3H*60xZCufrk#dJAr3=%noK)1oknL^L3XrjKB!3(A0L|)GZ2} zKugrmhT8~co`m3AU0}ncyt^k@Y)WtfiWr7v$CZJK~i#oE0 zT8?9Ze`-8YUdqGAt1n%7xk*5F%juIBVD#_>d~;&c-7dWWd$f^Js@OY|d&CXO`Gf1ucM#8PK#gA)~L6t2a1fij+Ds*qS4fJf{^jE8p76_r7}}-^{+q~ znWhuj9?_VM`kfCbIUZRy!KNmUV`B?}K`^))3>c)oMH__g2mog3FG095cbY9^DWNV{ z;k1iOAu{Nh^&x=W7pR8Y}8ng_3nE57@KftIZ6|KTn5u^n;zD)}stK*qFk z`x?G4qyg7#Q<5)irJO%nwIhIy&dYzWxOL*f9&sAET znOcx;xy9S2fy{)pS%qi~`(Dr5Cb)Dpa>}xb&(wGXjpr%qbr8s|yYNA`1rawkv7sI# ziz>sj+aOPzUOfM>@kjc+Nty~kC0w36 z0BK(>ic)(Ke!MCbZZ$_`1*$fH1?ryEVYYhuJ!pTE(6?YH0$xuXZYrOae$@ngQm{GD zvP7(JvAC1x?&Tiu)q}2vxquhz5DgR=N{R2-ALs`A@+ma=(n)UQ>mZ+DH)Wtt&{-rK z0ra!`zX7X4!eIlxSo8SbL-aqwPyPa~vZ9_8PeBnUvs!LTTE_8_WLwCT1l+I0<(}-z z5|+g%gI3bUYFk!V!Gz$%VRvbF1q3+>s2f`FeKT$ES(x+SPl5dI(rf>k78B%Kqis1p zOx3#AWUaU7-P0uGfdTXaLiRVN&Do;|>|@zmHFL4;dVZ}j~MmjtKmy0zsaOc68r4R$9;r z3={lxp1lvoSl6QGN^Y=lV$1=l&$ZVU@hyrk<>_k|vsw(uKG|hwgt&I4@W)Q#uw&^cro5mS`*4AVmR~qq+x>?>X%hYx-{MbpH zxpQK?)G(XiCJ1s(!tQ~3eVgBL#l24rej~e(y0vGkPEqZygBnIOn=A2(oj&X(F9qF>glM;<^;A z^^HdR7WI6y4}PmHqf8h2>uso(CAI%o04KKl=0T1%_)!m|!z9bgoQjnF@UxR1cQ@=&1Z2 zF%15?Ye+N>07ePfO6R}}z4QDCug574avOG9P4yQZatCMx-$tRw3s~IT$fqP4m zw<1FVYKld6k~V^V+pn5dn!)iKkH)|8tCj$U&jvEjv}Xdc(brC!l!In2kII9XFIE*> zyn$iTFOzN0k}FhLyWB!`1fD#X2mC?7KLNlG+||1kt3SH5$uUJr+2$*cR$iWN3>>}# z04XAZ*@0(O2aCev)@{o9J)izld&pN~%zK`kot6XJ6j)Jwb;SK*#H6|)ytV+nbayQU z!Ejg9crN$xtvNwnu!r%zQ)` zjrG}|mcAH}PQPva_M^Sze0+-#)x7-XB44EQqlcSc%4~Y}R~4lnPUY&jY?ZAge*#py zT!aKT(L^bUDapRCm44Kx4J7lDH)ZI%0?zozUIUHE4s$liSyu6FL7(KMgt+T0A#?0; zh}+H-==CZdQFGZIQ<|0lp2^t1{<+ikQ7YW^4#9W1cw_(W$@FnEfA4ImlXmrtN7cI_ zmQO;bLS8nXrE68sQ=6@(^SYXKWKAh`SEq-datUCQF}A(8?0`A8t{3abCJ4-yyf-Z! zo9O#{von+9A210<3iQD4Q9~XsX_dd&*_WE|2Bd5W09I5?WmkXpo5kw}3>6SL4q<3^ zk@iAFQreYT8!_Gb>0p%{EC^$vz(xKrY3;BGE@r!aIWH=uvA~w6ymRM(nA>BOjZN$W zOiDgapXfB${0aJWK9#=eX+BNuq77|3|24f058g<|^VakP{_$ha73XyA%3B7yYA3Pd z!2`n&_iBfIn8w4G8=@`*dpqF&KO4KpfU#jhNWCJN6;a}P4mx1aFz0A3x2<+q0h0pS z{SjwaRFFm98m_2#C`a~kUPDFUD8hHud}>IlGP;jIOv$`cfKjR3Zas!=#5F9|#ZH26 zT**r2R6GRAb-pVLxz)QocfF1S!qlr^&sxls2J&h1K_S5K%q%D50>}q~aku+NmaIpE zAeY0*2Wgx`#mMRfMywLAc&-(tpvR9TJD;c(s1$IA#ZZpsjTV54;9_KjrvW!|I8X!a z^ix*T6a34H$|P@NmRZ<(K2EPr1&u|zy z1a*|E;OSK@$R_ueZRN*9!oGGR%u#73b?3MHxs(mUV_#rWS^fNf7@`XQCMD!NIG9NN z5uv+}pKRYkPM5|7W&r4>V%L(rS>QoFF&4sik%P zceVFlZ03_3{ug*yhbiDG%N; z@LIgBk>@niWLwHjPL(OAZ)0+iGl{QDnP+^*5_%s?UxJe>IM4QC>Jq1UwLb5-#h+y< z;N&#NKDhG`z-EA29fY5qo^XrO#(fSHbzE9buq4Zjjqq~GMl(mIwpvHlQ>^ZWxuXX* zY$*3H^Nwc~K>4T7fvs-UP9HkUy;{ser8LbY1 zP4Ko6QGe`unCqrNi%9Km$lwwqmFE2 zbrYli?eDWpHim>AqA!Ba)X6c_XPCfxMOq%4*V9l6$GsllQP)n}90b6N%$Gao zRis}lt?cLO`u_ftt~m(4hn z9LVO2qPdjc=J^#IdC}g3^{kw3ywfM$4jeZzY_uDy3Mol2yN-hVB=gezmM{?R8Cw&Z z5vWlq?!v=`=dvs9&JGIq?xgJ5R!w&=AwFVEH05JpV~7AR(cybU(WDu3ExOZIY`m=l zPM_(Xm}TTg$0VQ7$Y6*(jN^S9A12w(uYgH#Zhusg5q0uZO3^tZY9t=O;VV=RBjiNf zwg<)dGyHD^6O#;$7DRsJD>sUa{6=j^nXZ!1F2c%0|L#XH3vVwi5VHh(vUr=5vEi{z zg@i!`4-xGm;I${q3$b2{=$cF({sH%Yvp2}PHgu~2G8(RWlv?kN{xmvB*B7GGEyw%N z2vZUHXT$L@6sX#5UZ%s8dZWl8G=HWfxeSyG<~i$K1e1bYjwTm1JAh;*{kHE*;1_|x zy96*~2ap%f_(5x+eb*-PtL=G>P01JUJ0cvSy*r4n^mI)1vJy`vug>>1#IHP~IwpV) zp5{%zuc0P(TTi~_shJ_eZIE$M$q{s2)NBy)B}$Cg-5g_+s3ci##0H!@g&_T2_CsE6#&f%6*#E^ z!T#reh_2j%a)5rFiQY2T8?b7Mch{;InWxi8m#_l4tePt%UJqH2XZ!Qleyzb?oJ`E@ z7xX{$tgQ@wRTe?x5a+ponUk4!O z{3Iz-;O+xR<4!2;`}+{jMIQ_U+KZEpye`HN{OqQjAs+ps(w9xZMKbtBQ92?DiIdz; z*VY^anK@Gy)h`#-DS`;6_i#lOi4zJyPXgwyk#%PYOEcC&5yD1&ehEPxQnDx_fXF9} zCV=Tcon{n~vO0p9`9TanrEYakJX2iuUL?PP?qhh%@2pVzOCAt3XPW4u=Xg~C3S4Sv zzR%C!Qn*;hZm!R-Ifm3VVllfVvkQH_Qc#%T)0ltE|0b`54<~iIC{OgY?PbXxWU2BTeDg3Y>8^$1?_gNVuh5E3|9ws%`Gcm7u*j@`*BL5z~ zW3F|qa2?YR{_Z-(Hf}z@bYc`0HST=x-lgdY;mxqx4#?KASM&p9GXtym2JnL<_KMy z)JqR%SyUd+B>sLTj;-GRf_Wn5MbUBraC|&8cq|K8P^=+VM;=sYq_^{}w@c>L8i((R zQS}kw=0R$*tr2ynvR`YKUz0lO{|Ra`Zf@sbK50|z=i}YXuuU^d^R8I+5WNu(9q$Uz zcqDqmXM=%PC$2M41juBJPyNp_CX+Jq4{#U{B7mKrb(g@@nipprlV4k5ngTVe!<(FZ zXCb=pt*08up-zTvq9_DG17uR&TK#Jj7;#`lnaQa3Xu*hrH`AhO>(~2%4An9h7Ts;~ z!nf&bV1%P}i;C=UfNOq9wQ0*u-X^O`7Dq7j_V$M3yIAq5LK<+VlUZO1Vj<*?bXU|_ z+4*f`rC2)sJ*%&Cx8si5g0#J+mtuWvH-JN38Wv~|L@sC30(0U45gsHoGXa5d;^$|s zd+nT=?&S?0<{n=4jxYZRh{Imj@><=Hy{7n>Z2zeh_=;(uAQBAyEo`+lPY1%1hdIih z;^I$6=Vr_THYj^8a|U@Nw?r4yDur?X`am8l9;aM8`XeAx>n)df^KUBi7Ld7@5`;aN zlvi+6{sn*w(P6B$ykiRj)KWm&;%W{Rl*T+0SxHbb z4{JAGUkPk^VZ*-a_U#JyMRr3llTD)(S;3@$P!(rm_H(s@MBOK|egGNkdBRdSm|S&e z00Q@vSW%4#$ZcCD0~>m#`+(SQE8)R>5JYWu1!9!!vTF(4UjF=8B+-Q%&CupnFG(He z;5hw=12UyC_Y+fB(7|{ykw>rNn4B54%2c0 zZ;+gkrzCFDcHq#W5(EJ&Ixdd}v|Z*9-fL%yFhR{$o)pK_{G1hI8+lyFarYj&R%BHw z2I=C4**D3PXkrJ+#}QR5+n}zGxGlSFXwN(zaXx}}34sWzt!Dk{h}7y=#C^%Q7WCDP z0`y5w`$>V;v9do+`+nw}XLkzx_qWM4Xl(&P=|?b~Vc^rJEh@Tukq2lbR{%3wVX|aj z{QB-&-yROmVw4B%jJxAiJhXk$#)97SB{?8-e4D$mTb&+=x=+}+^R&`^>4M(Z{p{L; zt~KBIvq#J#D=Dix!o2uoBHU-|fSa_4UkZKMAI|0OLS6m^6LDRU=UX;WO2-S$SgQ#) z;plQ#y?Y7f^mKX5Ewvwp_lZi_Egr>Xx(RL!x7@NFl@K;!PX73Rvx%Tdta+RA`JaMPe! zVw7WX!LE+S2P>t9*M9Vm6FvS}Gdy)=fav368S6>wKlfK{Zpwkcp+1J3vn=r zfQjSHqZIlPjGJ}yvulvc`nn@Bs|f3CK_RNV}XdK z+04wD|Ld(?HizGH>2wcj65{8tC*>mm)WnggXh=6DXUY@$@!>7`>gwexm*muYaFnTC*pCXGT$tDF zwCCoiroYQ#TWG5*B=j(mA~-Q?iU206y6kVzP9`KXBYGqQ)NMT>?G8eOalGwc{y%AF z{P~|l0+0?2JQXpGfts|(?49Bd)S@hedBpJk!BVJa%kg9$Ga=$w(E8yYYdsm*sSmN$ z0)p#uYdJaV8H%BJ>pBXhbvWppZ*bCnbu2TB;;r1S-1tyS4k18LA%P+^SEeB{@`_B3 zg%IvZXGq(IS+U+)deh|cFqvlkDev&Jw_0q9&Wjl&DE(@3YYJ(#JqEjC`>k=iaGC~s zRwOh_LvA^;BLZtiEF@Tk7S0CnC zsxF+znuEZ$qT#{jLOyKnLiJHA;Oq70JO0wuJr3~gq6C1PI?12@B;1(zSG16CTW2XBcxFbX$atZOCr{}|o#7 z1>#BNfxynf9s;yxFCX42#F89Hfvzuk=5^y58yi@+htQiLqg!Ag%a=U(x73aQP3U^; zWTV2)^hH=|;@E5f6EY+CDPy2@B_Y0cd>wkX3&?dQBCPk0^~MUP*?%(AkU;+uVji2U z9j4kGM~`JH+?3@k9#^S#b8PEy6EtsTI0^otQc2!+IH2$iNXQY)r%QNK*IGu_UT+y^ z_}hqxKcZ{hTOR)KHTzdf6uprSGZ@wHw|AoQOp8v}cf%;imo*rx*0Z8ZRUhgPC)is8jX-4lJ z|4?O9deXPZ&T+hOe<b|TN#CrQ89Fp9?52pIj3GcS&O6$gSa`B+QV zb5YETGrqQ=GZLO{F176z<80rZSLJlQt>Dcpv2!~L>|;x+_Mn6%5#{u|or_Cia*+i& zl4tBAz_F&pqN`u*wj8);erN3!9{(|G`w#YFNxn*>$Uubrd(HH6izCS~dU3F)EVHj} zP6C5WiC?+ZrIuB_5Gwv9x1jc6_Oe^{DJdHqHS23u;?a7ZrlL0LJle$cvRo$*7}vp> zrt{Tu`UE(;wYVo!o5gGu;8y`BOJ|q`Kn*{md&8FBbrR z`KI=*`_F#8=ZE0|ozRNJaboh6*1$-yGC6fOlya_r;-b0DzfqD;??3R8RC`;7oB$os z@duvJTM$AKw%VBe3mpJPG=4oDzCh(J_KL}6v*-*`piJ|biSJ^OQ(7!(oum#ZClwY4 zD?a;4YV^y=d1F=i=+JQ|U<}h4ngvgr+191uW^~SouUpz-V`j8=pHObv^t&==K9yeP z4{P_I1d5t|1hRK+BP=nf{qdCYx)0-Y;M~*hGF4ilJ;@zQK5WE}P#d-++)N7u_K&iX zMXObB%u5BDI3Tc@u$)dVhc_!Hab$Pe|BW_h5;5$f2{;P?t?Y{VIu3a}yWtrn6}sDa zUyr6PYRE;4D;}r<8&1>v$uYz7y#(0az0aO3xJJ>Y6|$pZ#V%VpDTCUT9nyb@ka^Sb z5A?-`p1S89$ec(=cq$0WQ3mi>B`VWIvJBPAe7*rIF%m9D7dpAG<)VRV)r%$G;E?l` z3e$l$@SKP8x4!%6oEeWzlGC9YZ14o1cYCdr*IjH;g*TRfiCifr_j9yrxZ@nxRP^2? zx*m;Hh?R$+wEtBS?VBdIRjzreTF+E{bYv%@CpCGEfbk&_@2rqu#B&$Ele0#}YXFq=x(aHzPpHpnEXSiCC3RBNRl9N81Cdi>!>R0V4* za;?*-GvcQEW9y)S0YST`HdcGS%V^;{2_V8iXx;Vi2aO}Kb^=!b;la%p1Wbir0>D}dM2;1qYhJemXa2{#^c8ks3j&W2 zsV(;&5@o6~jjpAd9||m|vXk+%K0v-0h%*m9#e+fjeOK}L0SQH$QO+l(Vw>wQ_%#-_ zd#*<%n77oqhfWb+Na2+^=syGp~M$Z%q%Om#Ci-35fV z0V!wra;6K*kFuA92uJcPnjZpU{Z_1Wy!j~#=F}NF-cGc!l)Qza4Wu~_kHW=dM$Q%D z*li@MQEWkA-f=allg06;;&y{yD*(F#YK8^B#{l3G;^)-nxWE*&tz;k1_O00&s`)Ke z5)=vN3y3Xw5{lkVbes=7vC8Y>is;}jx0tGQRg?dSA4ekBlHqC&ZOWe-EPy>!A2RNN zpM5eW)}J)=#!q|zfnSp+pAKd|R(+df60~sI*nZVz3SjALhUTpm(C`v{ao{2BaX(EY zbH^wsm=)`Q*sk1}cruMT3Kg2)GTyNOgLGUPp8 z?Qft$C2X(pbI1WNI0@+>tNRUHMze8#bDY`( zg_;qc-VL49`Os;dxZ)f_*6R$6eFTB zNw-3Go&Dkqf;Ol(Eah#13M2C>|Q6RT~VEDsLKSEQU%GK}9oIhrNFdb$Ma;V(zfjPF; z&k0DlERA_QklC^LmU2B{WpW6YXjU&BTrYuNf~F*5mezoj4&X)r;8ui9=p=I_F>nn4 zkP!-D4nOg5@Fj$>`f!$#p&Pj9q>Vq2yLI2y3XLR~YrP{67<;m;Lz@-p8r^{`E$4y( z!}saTqUnntc1QePm`k0`W`{{FFWK~a2X6uaDz|^c3uUW@Fr>W!WMbmArP!Vi?1(6AuRlyhEIqxc^5zKtU8Ksum7NqVh9@f7b0MVbeZBC4T!k zuC{UA8z676gUF(~78yPGfC~VD48{~a^3{W&UVGrQze%LIpZ8QC^HN6(I3J=lxz2Bl zErMo2UJ%jfd+@(<8DnpVzp@PpzmTjDS>as9?5>RBy>e~n=+mp8*Am~ZKJ(Kikh9i?fz@j^uEpc%IkCn5PiF*QwcGu zmtorhwrOA)0`81hh$m}BU>EFQBr;PFDxDCHe3~l-_M%)x9xC`!?E`(xca6>J8zsl_+ro-Em5IQ7X9* z3Ci>rkKJED{v%gy73;slFZMqKg6)O)%t?2mkU>ICgrt|tyJ@KGKwjL&J%0AztNR7u6A$P=tI(n zI;Ldu*$u+oq;Nt*N9hEU36M8lbo>gqQtLi~MHQgedKDmx@Zn8lqi}pNH(M_ie#xLk z_&q=JhDiWnj#OwAQr0j!RX$OMiip*!^wh8;IQ;AUf1);#+Om@|tu*F%{W$NP+?uTtBhbN46-b4CYODw&gdpX6Js&Xhg*J^J zk2>-zAY})+K!7_MlDfh3PcB(Q;qg?`y7H7FBI}cdAM&|S_rZH=F^s_n43V1bS;1K2 z1Hc~kAZfbMQOGg>A=HFUZDO!JMIF$bZ#>UcXiPr5J32Hsw zhhroJPXCNfC~4N-HJVfvA&}?5%Z$$IChYahsx{pRn&%Zw$|WG53ehJ0g^s%gPew$* zP1cv~#3r=Gd^_l6;5Ko~T>xegy|E%gHrWF}06ds)x>gqBrP-k(3Egofd*{E{btAjA z{O#~hlyZdtR3+-bA#Iy;=U7|;X4eanP{N0j#W@N3;QafEABlzDs56OL9S&(_g35E4 zP7}WcXn^Gr48{000pM!dM;8AR5moz750l|KAKvcrv*KZ16xRVB?Rl3=!bokMHSPwOE}@gO&!;a zwkpf*D$#IXQfI@=g*a}tIMI+VTIDbYyfR4;ujwy&>PbLi#CbJa2e?zxDOa2?+8t z=v?iQQi^u;$QxcRyk?K%JNOt)N|bm!6JP-_O5+Y*z;M-8S?}_A75K_^cjsy9L~9J# zZOKPI6fSubD?qyO@~D0UmLpn~8-7#YO4#L(w4w~n-)BhDxJ;g!gMKPIlrW@Nz&aeo zlqOS81|?0jA2)k)-;qpw;GKms9wZ?7N8&8z!#KE?AB`06U{ z5Ajwk^_+YAX+)EVldCe5ckmo-uJ$z%3+KMTl1zrX8$QOX)pIv2?}%0q&1abAM@$K1 z;r^v2>G!erS`xs}1q+K5>2fUu7^oiL-AfoUu>)8=D*Uh=nZ%PzVD?w6Pmc4B?P(j} zUm5GYCK9hhAAOpr(E@uF8yJi0kEyleD9TtE@~F-5V)|zlJ3xW~DQ4vh007H!nrr6z z-lfE8BW#mw1|$v+WEF!WyegKX9 z*jh&L`<=ytK$$@rx^LFXXz#uNUeW^OmoNOSv-E*#B$k43yn z?&!zzk<<(yNn_4(dj`sxb1JKHHnLZ;^RaOipRtm-dpI|D%?p=rwr7CL$GTv_+%*+!k|1POi3RYSncY%S(^|vDq1v^&(L^TD}<8J8#hw6lrtsEJt^0@|-n$;w?Qh!lGZ-MJxfp zA%6R}b_-^kek|7l5&`k5?_#xjx-B^(Zlc%nvw+7+Qj(GeR*O`s zEf`$hxH8v7IWEVUC_p4-^^T16?1$vCIb7WjelUMhU-a#fYb1_@;wo@CSEK zKk5=}$N;h6hh(^3jTJO|)a=R43t^3rIcv8LYNm`bI}(ZQB#>V~=2_~fS*~+!%~6g! ziL+J#X@Yl~B@YKR*ub5sTVA_2&Xb>@O&=c`+@wY*?XaDMVwZnoc9Mf|A<02C?6L|x!+86`{H#apN!b^8H*9vFo)+u-);#;a-1a1l|ixA<*bn`uycR= z1dn=iDlks@+ae23wc<5tN|LN?ROH3W!OlZsm=32~U40;K8}H*Qe_qFdEqB`}S2*9= zb-G`7^&$v=;oztnJZl{Ede=j&pkf-(CyGc>b1ONM5_y^-`SN~Onr#XRTfT*K56cyQ z3uF3(rO9?HEG_NLL6$ChJI_=-y|RCPp`S`Y9`KHXUuK>8+O-09#Xsr{?glrQbM0%3 z^4UoccUAcW3HERC2d4Oi#LCIlA5f36wP=huntN}nGSo8}I2*Emj>8E%U$vp4oHq$| zEu+Ntewq<7S^koYdC)@F`9J|`gKabOpZ>gwb7>6QI5-_KDQb1GyD^=w^r!0i^owPo|tcvW+kuTTQPn}u}I zMfS&vTTml}DdEE-%BWXUdtD9s{L}s`+ z6Wwmi`f^}!Ly>rTO<|D+CISwY(RV|L-oYhHap~uJTy3y8{~(3|a?h3422u&3xSr)- zr{#wxfXhj{kie~cTpc626Y5ZHa1b(c9HMOz(X((|P4>|B^uY1wj_&AKkbmND%mMK9 z5YHOaY|5ldzQaqVUKv&pmJP$%QlyRjhg?T}vJ*MH>BE}LhZ+#k?J-!!J|MG|i_-s=(oiAburH`z462vy@3@8gG%A1ZFIPrGTCtzO;C9dp$W=3^R9`Yr7tW`^vE?pD zIe)Uog?}t11)(y7;4}Sug<`XBaOzq1Nsl3Tl78Hru^a28lgZhejHOAP;y|XHYI8m57e(pw}M7=9VV?6wG+;Z-h#n4FOaiUy)M`qhh~Q)?LK=G#cv~4 zGiNn36N5@pDXfz2@VeumI??>?W)~Nx$ZOr~$Z(H#hdi`<6?KO87E3j=dtyMnY zDt~FkR(}!d|2w>}Tds8V#KE$Ng6w7v9oS%Ael<`(|Fy5kKH~75l)S=7_2q)hdU=wB za>b}(&NG6BSTnC}TDj&I1IYOdr&DQj!TCCCIfHzry`5JgQVA9IA4G@yq$GvE8jy;a z1iODMUjFT;HRe^oe8C2XYlr`Gsl9w{5}f3g#4phev*y8hy}jrcC{I;PNTkW#E&GH1 z<1?3Vo2-#zRFoaT^im4CgKWzl!4l9e%~koix|6>exry$0=9v0H^qQW>TG7HI85-8Y zx|#9^ZF0wbG?g6Je#4gzdnzRidmpJ^MVSn^W7Vb8g^zlEuT+Iid~tU$@~jP$ZVfqQ zYmqF2uM$65s1t6fH{NS_bC`D>>?#zAaGb07^(!9Y)5s;L4aqo^HTy;ko3uO8ALUH* z+`%j8EnjDZ?nn8m*^4wMe6RgWFLC+Hec8k|Eu9w_3L>q!PI}9vKm>hA(nqAKWDZ%;7(a~QBMdLos61xkHIzGVm96N zyx$D1{fb^9W*1M#OY#|a7ll{v*3RD@r$n9d0`=qpv(jEVw>${W{9TnokMw!PANcnZ zn{dvW$yI;z$%zAgvntG0N5Of=v6-dxvA4A7rALfNxk%({??i_va8!|n)ZmieS5MA@ zdTT1Lc6{MjA@uvjm&b3z%HKY9FZe?fJ4pj;n_QQ?t{48M!9P<;mE-xDp~^=Kth{+*h`y{@w<9{&nS{WEVThkQl->~E@Ru-@n{}7)`!H<#3f%|^xW@8u*@R}jVc9} z#+9*fXxhbTXFguFUw1UNG|mYD14E&n-Zt2=0tn=?hT|QG^^RQ?C);z{(4N7RjoV1{ z1t5=K<#gZUO!#=^?T(u{9WD>Wus+u3Bw&{WdS+Ew2@PCq4foX=_^V`Qjmhyvjb4mX z#(h#8scXLP3XfJUXRT!}UKb*uh18uLm@Zig5~LQqKLYfy=*}LnG@ud=xm?3sX2)e* z7s22T5Ab??HmN^s9y=4jb?yZ@%^o^>v>qow3CfzUr~JuTaK9k}!WH>b26>$zK1y?{ zu!eDqoxrpH<@AWP`x5b>wyQ-pvloq%)pcyDQrmJ#TfxP60i$bs3_6f?4Vb@TAArl} zS1erOZdu(w#`VLo8o}BC`?!38ligmx7qLHZHQGmg|GLL>GK63a-3IC?ZY)45q&OB#TYVBQ|{F8AcveEQxDK zJ`N5)lf-?BBvCC!`JvA6?}F((`d2&7O)@DvQ*YmG7>l#uAn+XFmEL2M?*BU=4P*=7 zXNhzXIvWkmkM`KXn{s~uF$OahIj*05ribzA9_8#r+;vxggLa(eMf}p|znOsX$-YK8 ze^LDPrQ1*AN4|30)lq|O<`QmjM|Jm_b=C`}2V`LJNBVE9KZ{Q(F2Y5?ChId*OU`wF z&U7fr{n#OqWH%KRxpzI%2)U7{W}DLbwRI@nd;;wct*d;gS54|Ks$PV&NHusA@lQ58 z8~8BU1e3`Z1WTNZvZy79ems07$5gwqN*)xdzUW;0tB8PQK{xhCXZ+bCW*a@px*6zY zh&$FO!hv`68I+dJc{|%LY?9BPGInA3-_Qbia!17k_lVqCWts!7D>Fkst3f zTHueezBy!h>r#OBXA$5@=)sRbwU~94RBv`{nd9|nb(ab5-m5pnFm~+j5=HZw;I>QD zp!Dv(v-;3MV3Gu5(AmQyC!mD6OpxPDYtQF{U&xHEXQxP%9pDAv+E(PzSPp6I7zzEv z7VkOm#LM*mEka)RZ%qEi)}FOe&z|PCogt>fltxrgsL<=y5aXj}7qRI9Wr)XA(r%D)E0m6_uBH!aR^7QEg^zd~e+fw1TQRstRa+Ks#)*+l%Vc)($V-&s<0D{=& z(w&DMF2d3G&`-w<-xC$_NJvC6&6hlmyg26B#R9LBb~?D0{y@AnK^ZlRV?bBbQBJBS zlE~|HEuO9aDm+;L-T*X@8rYAT&C!&zfM&ZOmR722sivY`w0ilZi21B&+K#>s$P}_z zu_JKJFKZ@rAJe;{l^CLQV!U}BJRn;?GCrYsE$-XQ=nb$Wm|f>SZUn!e1kG~{V&1keh%-78}v1B*Q)L0ubwkuVxscu`egiz$NoAR{<=0# z!Wi7f#3c>Gcn_x%T%OaMOkWe-q;(2N5L(SBYPvNKx|sVK_XHB&qYEKs@(}P3V+75E zdrNAgKRLE3wY_iBV;Vjzn3^`Rq)D3o_UkY=&rLeL->$Sv=W4Y78rn#L(&pHI^$>8y z^AN)j8-oYcb;*%97dJ$+?2pKg?NA|pQ&QU24fAM^LVk9ZpF^Y9VY!Emrs=xPyR2eV zc&kUL?wu_yaATR(LI}l@UOReby-U9U2m(1Pzh8Aua`{V~MXGJNv%B4<=8L{J=dTk> zkMr7+v?7?f z_fluo0_vN$l7H>uyWkHD(3P3oQNN?#g5SGcuDD;4B%Au(Q@7s07?wm|zLZF2Z}dlt zr?MkAA$e`rfH#~GtUYD^YyMMa-N?B&MSuYjB>Ah@2~}4f-yDgG*Hh=pmrv_#Tr>$h zaXOoxI63x*6tPXyCpLk5V;tSP$pO5f9Ba-lOBcgzVG{j=zcJ4`{+TGxzLPVfk2`3L zB*>#P6N_WE0(iNV13b>X0H4I-SZLuzjQdHqB0BDbKCRf zW1fDV{qBLaEAPjT<#jvw?r#Yp>!>lQqd@$A1D86UT@}EbJgKs(cAw|+XAj@?F$7y4 zJH)$Np4?-s)CGeHXwls#(RwG*TP5P$Q#*rZk@XipLy?ThjiSn~;Kr_h%h!|b`}_Y! zN{fHvPf}u-{#6)yk!?hCj)hTgUr4Xylht_$2XZz5R0l`T5-#8bc23VIZELY7?pN5W zPiIz$3l?!@c3H|7?UImj9s;{C&*VQQG#~jcMKJfqCg0jEXQ5{C zHg80kk$OLvpm2M)h1YF&H5xE4ek*>5{~BB%zfOZc-JRZ++xiGU-D;%z>R4oms!&YA0sDzmseqdHgrRKXLbh#ZG`2 zwi=b9zH}q7g8|J^qv=a#R3C?pP0h<;*qP!Dgi6{+nXK4qcGu60vU@VlbUwx-VXc98 z_OeLdrN7n1MGRWyN#@2#!8UJtnzamV*-Q6{C&CgXHHcw~F&h`FvbO;X_pf1Y=0O*^ z<#U(L8t{9GgDn&K{U-n15tk>F2r0df?~9%xU&iw@x4jQYaXoGSyofwTRIc{sYBaUV zwZ5`&{9Cj}xEt4*`;Oj#gz-~Fs2+XotlR}tQ741!P3`6{Rnm^9T5$1W?^h$3qJ#Vm zb^5a)hox{s%didVrbhe_sI+S?@btFmqNiZnKx zZgVU>wGl>7z>ThlzPoblaAX_v?J+ro^0nYUuI(?b1CRa!K+2qM-!6stoZ7@2`b6jW z@SQZL8{d=ms+VHn%cFT*qJ)~gA;v7Y^N2;g`8>n&G~+&@NV)en_`gWLkX*()f1p+P zz4{GT`G!&H9u-qEpZ;*AFic|38&TXw96(HjA6<-nQCAHD%oe*W?1r+9ZrdA$97qp- zoN{urGAdZFv0;ToC2~dg>U6}CUNjB@3BL|}%BmL;n|am)AT3k55K&5m#lf5XuaE2a zG*+BtF50#eI@b^vy_IYVUo4bn-A`z?U?XzrBlS|pg6RyK0G{Of-_-Vo0yI!UOw`l^PGKmst zO|ud0xyndl8RA-#8sO9qEx_DHxs?bf*#GQO_2uP1!gyE-*ze$1od&f#_+i7U1orU| zJJmJ5d5BwgRkz$%Xl18#-!x#Rzrb$;qROh0x;@f6^@LjumLsQ3tv;aIv$_4g4RYK~ zZt5MU65}+|;>C;8{aa|5#u5 zD%r<2>WOQf4{+nxt}`(#F$(ua|I~}7I^`YuN1YzT@Qu*B+{cb1<66UBD8z4T2-(1j z1v;}4x5NHc^=@{cd(??Tg1eUTx9Pj{($la^B@h9%vl`>J7Bfz$wYWP=+Z`-r&Dq<ifI-4;v!pl#? z@YyP5Th;?1rJxvu<7JoG2CO4O-%M&BU z;G4Oe$xd@hT^lu~_dhBK>lG;!9<)<(PCuPm7~*-smOOsz6F4<6=9kE?%2x)pd(AK8 z{)QA~C@Q+XFIHyv@Run5d3fpUdKfa4sSaTx$P3K#S|T#UDW%(@-A>a z2z|M6QLv=P9y|$#i*sGdxpo&lo{J zc`o-4QFKD3T=B(U{AE1>)j@9q@1t7KvB!x9=JdtcUPPwoenX2IR%~EgdlTqA2*?qg zr&Gn%q-jdCMGrQHt!hXMi{wC}dvIv=s=EEfA|_}gr6UEsXIgOicK}{UX>yI?Ox|0H z)$4CunQlMh+0=-bRS4kyKs@Pr92v71NY4WH8zq!^ctK-|R%?zi)w>wdt63VTa-MK` z_oF-pk2>s!{r4zqg`^|{KE0{?JN>zBb!!E#Tjq+EPMz8c?#KS_qVvR=y@vpZ5Q_?L z>baQgDNA{=MXqyNIZ~5PB>FKLHlfyQ^{diJ>td{S7<@Y2`*W< zt7pg&-e~Sri(^^EK-I~QizsDdS`WvzYo1wJRv8l4*3ECSOX=qlB^-RQeZZj<0U?QO zu3+{DPG&3<*ni1Zq_*iQO8O+~+M-|%^3??h`v0-^-f>NCZMrZ`5~L)+R_O$33MkTR z=mMe$ZmH4<3Q|Nw5E42_*>sU2Ac!bk2vw0@3`mhCMMQe$h9w~w5$FQGNF0kn;UIkc{0mH~`$8S|a zgK5%qWb4oV8WifnJstAUK3Amu@o%@Yd zmm9}B86c>s7}it@1H}N#Zg1Fm!m#!0@*7n{3&L>MWIqvgor6LvLxqxp_9h6*>9S!# zR#U1Qlv$x>V9y>hL^?CDN-#c&mCJ~e8wur4=c-a@jGkyO4?t89kUulaHtQR@ic}J zo<-x?0qQnTo05?#Mx^O)k|KCWt*-icGd6H~IUFs3K%S1TNu<9hn#=Qp9 zZ2sew{EWH$v`z1W*;89(y^a9r+jaZenTnfANo!`Xs;MIuk7QGbubHcgRPqdot>r)PZsKooR*`uXRHpW0jem?t|{i=Uo0uiQ*wfIuO%A7i4nr z!ILCuBo>;Q+jTqo>Xqp80vncv0TW@iE zPzZTX@r`(hNSIS1|7d0t{gxs?iA&^e8ZlaCiJB^p<#%UgHla;fomo8aaPhhp(%n<* ziaz3Qmks*mQ#Yg=C2`cAtucrcGmH`ms@<8Wl$w_2mt4S@&BEok7aqph93o5FblOJN z*~l@C>1@mtxG3j=68K0(9H1QirAckh1o=|-7Q`BO{+&GwP2q*l%~%QfXNpY_0%1(dwovK(k+ws5ws)?^#e zkbw_>zw5O4wYl$I?P7=cQAf(k3IoLbb5~7C>D@YF9|`DHGWw5Tvcgu6e<-w4L5WlK z8k{G4EheI}I`nnsD&xl)EIPkG_HYcKvhnRig%wF}FgQD!2i3J2ej_(iILO$iT1`RK zp=TH9q50*bH;{nUkytwYsffp#@FWA%UtIpeEhF3%!Dpd7975&0MpG0)c@MByqYwH@ zh#!_YUP|km^w!COBBU36DvN@3&%GSgT|UVLh^R;(#>RQ%Q~n%w#GS3Pt63yGAkB@G z-=4={;*NiCi|W={v^2HR`Px4Yu{R8J$W(lj@_tVDMag=sZDg^Z4CLuvOtpEU+blut zTk+?4Pm!0;A=?!_OTv_{!m{YN&xK9tJRUWL74cu{cDmgZ_d;GSIUxes-C|Kk752NP zpB`^yRE#jt{dM>JqE5w8#(?9<)`R<+3PzkS=yL+F=JBvR3$yn{6hZCrevb)%*k>TF zF%laUm#Ls)m8mW)6u{9->q2=*CzQ+z9VJim#dgHC6=4+^Ae}4UQrfFKIjGxFlk>?X zDsoo1w;u+~A;4;P@RC*T-kK{})}O2g#{KOwN`m-hEYTbMV1Klg<<`vr=kUh&^u*~X z$eGf0dzv=s{mShBrXP5nro3T`4^q!Rn<9Z`5oKCqq_mffVzxEIw7zLKtzoH< zsTlu>rGoWJI;@v9Bn1oYgq~zQ^X)L!&@rcFy*&2QTKQzLM4{5q1MW5b%b_UHVzNEf zA7506?qKGwbLgEfq;(Yd%)C-8g4=xEhmocet_wyfQP7&v4F+aLg*>2J$lm>$e8^X} zuX-}{rB2dlfL}g&X{T+GlNFAJFGVeEHza!ruy|Zu-jR%1@UFZHGq&k=J_o;Q{u#fn z&U@ijFPfJ}57$s%=;P#i`y$y52&=w?|GU8Q{_>v1VXdhT1@Fijd7@se2@_)izLh(= zteI8E6^Qz+?uC&rW}R9eg}(`m)SMH!(abm%xPhAo$uw)%uJz;9kxCcqdGn$0NTU6N z^RNe9pZMwYal_Gnp~tG~gzY5-#puC{OI;2zL_w*QE#^GVYM{2_tP}of)LBgkgr3Jk z^sP0v=sHqNyfoI(J?mMo5gpOsmuY~(y9W=--{b`K91&2+B#OPDGy!b7+C$WMIUBW+ zzrXP(CHU}20Cc(K$d*C!xKqY;wqu?sOrp^xzty3?K^0eG(z*X=5hxpT)~r7lW_zvR zjmCpa+*z=A9sFeCIe~K%c@3&G52I?SDKwRg?%gXipn~4irvfa7^N9lcZwLuNxbt|5on z;ob|bIUg6;nD?u5o3B=U&$ZfubxE`=8*)bds@u9@GW1-d?-^~1;^f#5#m{a1kL7nd z*1K1{bEbUwj^37XH`bfOS(ji->SvN7$dc=X9|kD_Y} z0iw432@zr3L`SQFlUdrEBhxBa;55UD+su~-7QWLt$_(*+%2XA?66H&Z4djsJxu(Q} z7{Tms&V(2a8nn~v!`iHF{JEes+3q-M+7p+9H4lRS&^F$s4)`O-|z0L&;XkyNPOVA`I>A?H>wOl8PaLTXS6>2hA{+0(^h3 z^m%1J*zoPN=?_QvdF(G=IxVtB#gi??=;JBHW0coKGzW5+%qk7sEgJ2~415CU68I~v zBKwrwu$6{k$KpSJ|9a(d+-U@e^o-VnGr^@X zI~{hO`*t^1`5LNtxf~6Y5Vv0i1#wgBulWT9{)JNL-DN~vw1CZ{Rf|uuho9Rw+p?PK z6o_|9JGOkWSG$%Y(mxMJX^VNVcmi?PpN7&R#^%()M;<=a1ttKibuEN=zbo7JL|U;HHb4KKSR>C zOy3@JbM9+Wk4!upkCIzudM)c_zu12*Yaes|C$MuiHV`9Tjh3TZ#Z3zqDPK9kxKUIi@Y z;FgTEv_G1}ZdXUIN!llm`%dO_;o4Y*9|=i)u3_Kn;Ke&S8k`j9EEWd~Jt^#e>x_c9rf5?sc`e&b;XbGZpNX9p9;@sPE~GqrA_bd#EeNy;2+#zeMEs@RT6jh+NL^v&HssP8!_h1+m5%z8gX&W$$V2~vNP6&a z(%gXFP_iSLX*u1~_x$NzPrfVuNS-Et0apR*erk$Jet&-A;nLJ=^Ze$THuY2oEpU5V zVW-(H;`C`iy}!EOF0cGKo8*@VUE)2FE2n1KK->=DLZ}K8To@NH2CBU`A0tiSYF(P$h6aFmyz~xWc1~Cx`nKMG3YAoEw%=3N?}o zJr}5LFuf4@?ee*MYjuM)6C&T76VR+2QIR6HcQhJbs~1TNvP(Ld4E3@0O@tDG7-Z z$qhASJu-#M)Pk|b&%mvCGTMK;q z5Jfe1zDGZtjQt5i;^DL?cRXn;ds85U|v}F+l;V5M;kBK z4_Eak8+$S}w3VbSmMCOcJGzo6X&bs#VbLCo@%BvmX&fb-4+7~3;`fUiQaMP7CRs>#7Ee zyEHK5vTDJ0of^fFYlG>aV$HF`5N^mn8@Vxm|5tR$yvoos?UUAdPBx>KfergzvrmtY zC;atGqXwh~ZpLi#<_uoX4I;-aEjjcDr@afxAdpf)bN#v-5+@?yNwd`NTR1QUygxm} z1rY1gfx5&T1o*Z`6qy82WVvg`#QLpcs0_%zytQjDd`Uo^`h#168yW4=CCIf zGl!>UNeYsr&6LyJ3rcnn31a0zq{rbYNDaL3^4t-B=xKQm!tam{MHaK+$Mm_-qQFR^ zX)SIK^k~T%R{~H$o0s=y_h0)!e|`|%}SVeu^ZeDQ*arh zpk`)_ve+YJ8|o;y?hQR>5-ch}F3m4k7(b2m?@B^G{J48}`ByCK@avs7&uL+kl)r51 zJeBZDt=rT73o=Yk0zPoaiVxyt7V6Y+me$nX4evEza`Varcb$SMa^!B2f@qZS-9Zsd zaFT=0$xZ=xw(suSt4lS$+eX=y*^Cmk9|LANI9||5ezY{aLFvK7K%Zxk>G4&amn9}t zw;v|JWmW!yZXkcNp$+)dq5@Nn*Rt_vq0b%c)S{9^4957I!dww&l4G@P@BZxe)n-c;#%jY&n9OwQ&9wHs*Gzz z-gzNdJWSyDNiGAurV93KV`J!Bf;!=I6+g6;-jFqN z_d~O|vXX}$CZnvgv^gGkO0V9t-xz6CNm9>B)JPxqohma{O_P2MWpCMhwUoZMGRomF zqyk%v1~}C8M!WfPaY$MP+PkIo+5n`6uoHKz^={>y8I(P_qFL)?`Qek3FT?B$PoE7N zmhnloQ_fIP_Ogw3QU}#oUJg7oXqJtnUNVXyF_t5^L<#Yv7tcK_Dp1C+Ps=@^?X5#O zB?~DPMIFaJAIf}3gM4R!*{@+k9V+GzBNK%!e3BN=TpK3yEjWyQWT5cI)+w+JA~BRx z53ar&n7;}8)!(nDbSYHD)vsRM;?hR*0-$al=H2}h9ScLK{JnnC^a$qh5t+Cg2#q=Z z?S=B}saw>s^3T!tT5+cwknwTEweW20%(3fZAH|Zs)3_u~OfFe+a1VZ)rYSYpqr&I6 ziCqU^tCshm9h1jmA4;1~{{v!pyg{@rsRh9;VuRSWE6qtnf?9vVvXTL=DbMr*_W3OI zT-~in~4O*BU&ldH#KgX&n# zLW`Tt!&XGQ5i@!_J|ko~mYqRuL?j}=akK+=qDw@nz*M)RX=Ma$!d^D|76C-SU zB*p6prE${A@qzLV=|r0ATvtt^V)G3a0ZzS(0r7Bw2|vZ*1P|S>(DfS%M){!MpRanc zaVF32vFtfGUq*))CwGE zAEjBMd>j5j-T!cw3KW-+viUsoBffNFYbLkZD8SZ`5S=0B|K$ujHjm>3|9+@!sR&PU zH~r<4%B4W3KxTW7j10gXe8oeV^*}gL2rxx^=PoYNMU}~v_*^%F% zb4wIE278|41Au%sdMNssbemG8?V;4-185E^>h;+7H#T4AYY0^+#PIJWbEHX@an~i_ zjwdF@j^J~JCoB~rHD0(qB?zatkaPvj@qlmfumYB9fm+7X+p%Uz+v6@}<&6_?>r2sS zAzG?TaOO6ZoS$+R<*({PYYCNLH`vOTz&X;M1^>c_Db$FinDM2-G|fp4%YA&zaj{0= zcyW}42VR}0DVrpX$=A_qyXr zB%9x4kTvR3WOzsz6$J%qDGwF+>Gs1<7i2&~p4q471%rWsfkyW2*DSZDZQ)6zWPLsv zYQ41j@WR8+@0>QjphU{p$CPoJD7L>{)-`g9PcV5fNdG(X}0!W-Q$VI zPuBfqM_+t?n^gydOi!>t^sN|X4Wu4kha5H+PHpx`4J3(2YI3!|&5Z=){9o6U|Nah{ zzwwyw1DDyoQ``^)#gO{4sYN=@w=x@#;7kGt-F-g_iabu5uaNL?JtZSH2Kq(0JJyeR z%=2G`c0>MTJm)<*9VV49g6jX~)W)r{>8BxmWfG8b#4{8W;Y|w$R|Lt;MUZCA)|B?_>$@ zt)`co#X^STH?v-__MT^rYoVOsUM2k{?Fx%d>p!!1=3-2`8+xE@NtmjHB(l~)!V%Qw zRh%>9Vgm}uAYq%0Xm1;=aB-H<((?5af{MYxu&d$_N}Ju$Dujc1+Ia1#DXy&j@JGM7 z$HwHBUE>v!EXccI($Y>csQ&(&ihDu=2uD5cb<1*4v;jViJue6L_C*y2xRQvtAgF|% z_lkANixGf~4W^&|@|V`TMF*^7`eeTuc>(oT0!fPebAp?e($av!PGQf=$Fb4UELpzG zh2|~1R91PHT0Bl2pbvaJuzac|dhO=hpXIk-A9R&>f4xV1GCrUJ_ReGpJu7~?m4SXB zC4o!`+>bteX#zWKoS|E1)qZ>DYtGPR4bxxMuVoHiDN^M4Jub7p;`wRL8f3gwRq9@gDj}2s)e4w@7z~^D*3J;riRi!J=$MKOnxfk};HS)Vo zjg>ohC8Hc~*3b@Yf0bb_E%f#JBrMW%wIpVbrqt}%hFj{U;~#Q<*L6^(;#6st9whhs zRnIfy396XK183Ts91_jthLuLWNeYhfYqhVc)L~W@)@H`L?|t_QFSoEg8N=@x-adAB z-RVBiFgNy9Hc~WLsRiJOVh3xU;HXyhENjXui0Vba361r@Do>L3!zBd~1%*z09C{bY zsGy00q!ajDQP#6$rOK9d=9h>#+?BmDMc#ODXWM(&?{u&JLsGQnxCvrLGc=E*KU|(d4=X*B*=bs^09E-Y~z8ebylo z5;3*9ZPpa!GCSnLI^U2;Kweut+I=$b0Fl}C_i|SC;e58LpjEc;(9jrP?$6;B>bgKZ z`i^}d#xSaqr>-T#0>n3rlv~qT6KDyuWd0SH-z605)-lN=wivi8{R)(;Xt2#2QHhQ!)1*-01Sz{+h-$*W`$O&ThlIjSWM( zjpSE!qi8*CbPTEv8lO|I<=5VsIU_;ZOlT%Qer$3ksHE2529%W#p?4-oLI9x$AH7!| zZ=dUjNM5k@ulK3dC3M&-h~-hF2}{p9ef%XU>-j>l=1W6&BZ2~3i^LI)iV@174FMSU9cp@wjf z2-q_B0AO))%7P`o4Ge1t?btf9E&9eJ_xlYv1)5?NoPJ-^ zT@GfOu%?9Qh&>{}9_|pYKU{suVGE@hc?{LeBxkKqnaozXyLBNp)YLSVu)X!Na{mM{Ul`7F6-2SIRq1 zU07UcG%QTK6D6^?N?!Ypa}rnH$$~;P_77H6jAstst(#49!woOYty0MWF4lO4>Q4!) z%Y3Y-9>g`~)BGaMUK?rib78&PpCtNzL+{X>Ca&Jcz^w%O8FX zH!Z+r8>)NTaLukdJ&AG>ltn-)Ki2m8SClUZYd9Z-YweDn&BG*32kbo4`pQ6gor3<_ zBP!^7?MYIU&0zkbG9bBVL3y~!&O-Yc*Apm$C@p+Cp#H|yy6DL;esvviolpY*taE5~ z{3aKr)UAM!S)`v`dteYV1@K+cJkWJQFwTM1d~n^yHeW?sWgQ5`I6MW-joT%*3bu7u zZoE|MvG4dO*VG}ELVIdI0ZOWGyh9Dv*gZanbnebV&b$RFW?Oul!m0lw2d%4VDX!n9 zw!;b%&K=f`J?hh)BZYrDx2jnA;vaUlbJpLuxqqd96g4-X4EC`!bLRaF7pawJj!!p; z(m4G;kNltyJakW9=S~SWbZe-CAxVDHiCB9*B}8p9CD#CCrAexyIuR97;4(yURC?xD zcT*r!UpF(^hoX+2!34tI-6)A!wp*1fQBH4R+p@!z3DuZhMM-q}x7a30msLEn_(6e; zgSA!k$&Fsf=PJI)aeaxx~b#p0u!*oRAktzd{YInZ(05V2JJO5b~@xim_}MX0FYh*h+g0}5pJ)oXTN6| zL2HSXl;P_tm~jT_#@$;2|G?w_wvXRA;D7#NU)|Ec#ceB6%l+dR)HK%*d+px60*LHK z0jT^tCl9Qch|HC+GW29}NC?nHXJ2gMH<>ea#IB}DOqOj&-&*68+3r`SY@`eF#nrI6 zetWND!`A0OEpwPjts{p67gJ*CGKzF&*Ly->3+>WR9oz0^QLW-3>W>nz6Uya-&fTgd zl`?;6Bc%rp!UyVswI{rDuoJQiNdrXMLqh?CFJag?^9s zH|M`E^xc;PH0!{6Ay6gnu20A5JTjrRk_>Hj_&cWalIbBm0IVzat!(t>&*F1L>p6|~ zf7`_W{|hi1+zw`gQ~4!fd}LE+p*O=bd0)UJ1)JmSu(~eo)DlI73^2*2cMhTy3WGY7 z?DT_Po6|Q05c1|LTPZgwR9O$5Eyas}h|lUO2J@#&pjr&=9hW6{5O{=5u#*|H13B~H z1asX79Xyl6O`qaq?WfZ63fnN9eHQa`MNz`jcrc6i6#acfM>t&GwW}#+WM zZt^pkO!GFRY0Pj=2xu2b_tfcQD7igvn z>;yN1c_*Q(clO_ae9cd{+JH2pG5tc`MY7m$8s|Nd&}VM;Rb6H}*H^74su9h>O*+wI zKPQ!VgAMT@McQeyH0=F@2w4=F?7}NKck==lr5XYsIhHa*6(~Y@RF`XWi2PjS{(10B z=L^TuQaXn*G^G`t;B&Gb)9*{$5)>seHPkCfR^yFpEm6e9EbZ()Jt?e$-5*~|ep>B7 z{=U_!CT6ICFC~aT?x8zS110&&vrS|L#A7{b4lVRah z+vng(ceni*_#EOruy;^|@^UTt9G@J&YdjZuNJ-07N>waJ%`fQ(bcMPv^uE{nZv0SR zbuZ;N;Wwb(>temb#nI^)yT{8z#XTESEhZ^lzaAL=!`J`U&E=B<+17c(XGiQBlLl(z z9Uv-X-fX|}!!kENKq-JU3`(tW{$4NXhFr7Y-E*XQ{iIRchGegeWql5tcLy4M^{b2` zud|RQ<8gOc1s~B!cnyS=^0}L;(AA0zM{r^A!L+pKh+>yY7TLBQK*6lpwdix{sB&0G zOmjIs?DBTKiW7H2Q@Xvp66=yG<8C~rWtd(dgL}X^-Nr(pBiB~({MT{!`lIchEnTGa zkvc{pWq=>zKi!Z{L7!G(>Kav8F<%@=6Di_PsPWNm5se^ae&Rd7y<^mOzC_%&cwBXd zpiIdj+3!-fO0R%ILsPyjI2C9Q2S6GWjlot#`PkKn1_U1>^x7>C%GrIMNoh*w)O{Zq zBx~qf(x>&;f;#AL`>D?a8jwzaR>$`RJtaHDY|AZpEA{(V^&G!RMZdGC|DJC`T+4>? z6h68w+`;v8K$kQFU{u?I?|BJYvN;1F0p28yhehdCZ_+c+3#7ghY1Wxc3Nc2NOV7pe z>wqG&*uG28!MdL@)!9+9cpOgJv(6tz5i}~aF&tAvz*);lJ*rCVqZ1`OGdpP;O40Pw z@lYM#i8nVX6fsQXIKXeRvjVXqHQcB1rXw)W_d)T3>k4;Q@)nDvXBTk{IWUFS>652q zTLxlqXwRm;22wtUXuYx4qg}_66dXs5PrGCy#DET0^|SBtZk(_!o|(i+mo(y_8ysvzLJq60M$3%fX3A( zIL%-`C3!fKLhCd8bAzzVqS~fnR^RohNJoJM-B9u<1C4XarZ_!IQyFhgap(FYcVx-@ zko^$;HEXz2glE?v%wat~zUa!{=JF3%$ajvC2;OPL(}$}T%ud$iC%VqjBJbppvO7bD zwZSMETnxI^ai)%H1rG^+lu$N7S!{ceR6ZG^njj$zZ@?G0dJtypNvOGg2I6EtA3kCK zFnb2XUEy~MmTxoDNS4yw7%9+T?!XHZg&RsOeRfoOb)qGFs&Xj&*vz(5OjKPxJ(W{N z^Q6gfFZb#(K+sM=DF`bLVhHAmg9R@_XZ$FFv}CcHq)Q*j8W)G{+??FX47_hDX`Z3r zx}``?v8nQq@=XgEs60&;|B1EkxIz||pYrpjYmOv9ALC(;;neX#0AS@|1fA;6v(Sk5 z85dP}FY3i?Jy51dROi19a^~psQ(Gywrm7d5g49{DT}e!jW^s49=SGI`*5xtwD*48l zws#ZrGeX#0pBiU|Ffm>zbe^s8ecFAWU9N4SY44d^H|mxuT@^qtKr~&#$G9vlUJgMH z-0H5c6U9&7X;PnW_?XeIuu^VP@Qa>xn7TKL6~~tnJU=6spc7q4D0F_mlwr(xX<21a zj`LGf*Re{|tCv=*9M!FR-B~pX#S=+L<;7jsuD8BjK@pNYZr>Ep#`i~r6^ui=KJg-m zv;nIZ)GYCk%|Q5%4n}(_h=zbkXfruz*bEK?3qaqO-n#)vD)}GynE@k#l4;A;9XkEI zcNrT!_s<;V-``16q+l?V@*SMMwmQH3N-T3GQv-B|Km+>W!wh|8ETKW=J`)=k^QpiI zhoQnHtftz0?%xV08yrC4goTWc8vX}RIB~VknHj{=yV^mMYA=SGexv_z3PAjda#T%y2j(`{l6pQ*(-i^YSQt<>@hpxyf<=NIAATV}84+xwjYR2&nnKQ3kByR{AC%@+9Va~Jt zm&8u4@2S4Y!5tk%aCrsjcw_d4yZIf4f?zVw(g}vaG7k8854u@Gu2t#RL!0u0tESQ? z7(+`-PlO<1DDK@gJ!J&571PJF&=evehzC&+b^EpK`!Kw+c{>#bY zzwM4?6uqYDFE)!*)iQvb2nh>+1mG6Dwx#Cqx4gJGsM>+&S~$vm!8wTLG`Euwg+z@X^=l#B4UZOVEQ z!8I4L5v@JIHn=Wevc8=OS{_!^z3yGMW(uff{8Ge(i+ZSQ<%Q+N#I#CU*W*S#`IjFd_8KZmwd8Cu3eNv-%^m2GeaVl+1;gR6+ueq*tUryf$ z)@_ZyF!r3?aUS))PJj7p$@+a%-z3$Cf9475@9*y!9=2zIpUv)eBrg1qNzS$Ze){nb z?{m$97!hj=TdaO{GBXh6Yi_AAy?}$p2OE1X(ZX{4NMa+p$+BDeVZnP32D;_Y`1wGI zL$&go{YJ}-G)$~b+67V@KkzZArwH`@>8~wxF2l`M`7JD)>t-6!Mo+yi4sMl4(n6Vc z8`;bTMuZ752aEeh3hT~?7~$}0Ohc4xYj?M+4uHRX=axy0_aln)uMko$!aVP)YgIxZ zCXRnBO5GZ-W_341!k$N=+slI)>0zsq+-EYt!rJ zvy72j=fMq2y41T3F84I}Ml%A}t-~YN-2^h)(eMkxwSxkXrd&V_MVropa4)JRs30!*~vUJ#O0Q!WT5~3gZ+2GIt%k}?(ZCvkcp6E zA@(LLAF7=J8UzVBK3HQaD=YtyoM%+fX3>w+fs+garf=vEZ*_?2GemJJ9^;Y~%vVe$ zLig-g-r}?v&5r&mf_$=fe+?glto{DXdG&_bG=_B?Ydg*LXy8o>jt&({jt{v@i2&n$ zvKV?Eo6beQXf_h&)Gl;UK5_7O-m>rC5B^^9$}w!p%5<6~v?NH53r@X?X#xTXz91^! zQ1UZUyt8r)SPMrSH_jN|xlyqQ`64dUa2C4c0O%l@_jq{<`aLvNjMzUIh&Hy(v}g8Z z>sZ_uh(lo0iEi8HExX0PaG=+S2YR%qdtzwpH>c|fFG5Ixu zxP>i60iIq7#2G{?x_c6q_R1%y6~3?0S9NgNL_(hVuH%b1+}9z+g^H*Jv%z%9q*B-l z-aQ;SDp(P(pLn#K{P^>QAa<6Nx7r*y?ZH3g-d&(nh$OGNFw0RE>;#miNEk$uIA5Dv zoDB6*qV{4AHm%>bvxv4WgmZZAKG*U6fsc+lW>#I48!W6CNeqL`Bgi?;T8j^!hsYnO zCx}o%cg5Y&=!f=em&B*c0z({ir znWIu%En*)DV_l_Xt>TLq6RH$(tQ3))!EN`n7kjd77W8%d4?>0q%RcmAEHR#KC~^#Z zd;*q2c(b;v-&Zj!>u#Lg=0{lduBufl8WvXIIuaf5spH&(JFJ&SkM`Kt_zsv3p5Kb= zUzK^b3aGQ0?17DMa`Y80z6?4x#Vt#I3M{EcAWGiAAQHP%B{AFg@LD5p74OB&142;Vl{ z0(!avToIY6Ce>oHr+sV0p^XFsJT#ooJ(&d4f)^;kCE=1h7JWKDIcysTLf@vbiDg@< zdU|n%vmfaYa^7c!usOt(tcTjRq@g7oo0E5>j8P{9)N7=tq+3i&+LQHPaG^$ z0FazYYYFz*0@c=-H{-&g=pmb1s%c1-J(teP3&zGP4mV}c1Bd|xn&FT2lk5GfRiJ^a z>OB)UdG1`cxCw(w%DI?$J3mmzD-7k>LmX1{;b3k9&`EIp)MJpAly zt__l;s4}%6N~SwK=fbqTwgCHQ%(PU;fSZ(5RFd^_sEkdjls-*_utsoY@sI>tivzdL zvZQDQi{!8N{$0QhwWQ0)^q#{LG!opPRYyL>8Eg)OM36>f9u%^npx!G@uFkD4w;g+T zKX-6>EcW&Beci*@#HYWkoRFd12_TRcKb(D(CK8fJ(h^QGrrN#hKyoJ9&vzO-=Tn}| zi8s0%C4*u?g}SVfBPJdOrp*e+%w2n>NyS+KpFqj$sm;4W`i_o2JU|k2E~9;YZV2be<3gAAm)Yg=J8D*vopxZz(il> zdj-;rJZ2#w1BY{PO-UvJPI$FfP|~c{Ex%BU)qJj0Kvbjsa-43@gMf=UJysAI!0Gn& zA!xRh_nZIRby(ykXD<3cvpJN-f1Xtay?hbnSalq^W>7cSKv~w$LWpsh?AYj8Gc?)j zR(wKu8jUAdM~d|}-HopOD7BD|yhy%%;3i+Nyq-<@EXO_mlO%!svoV^E_cAr7=KvFR zlB-e(?CX-7v2CHwG+Tan+67f(4_#;0nq%v0yKgh4a+hQeZv+f3*_#+2I>5|!1AR3s zM=3>z?p%-=aL#w{dQN?T)4u)6#2e}R8OJt1Iqf@ffR3lS*+7ViP&ya1o#&-{v?$;W zN}@uFpuTKfF!cBe0Tx-zA9?#`Rn=!b;z}XYLpV)l+^mshm&j z>+&!Ot$%-dT%<-ZnG)VNi!`OUo-Xe)sojsf2eK2RW?fc!=O-jy*0si&fOWE=VD%M_JcQ`=jTn35JQ=Uuzlz z$GO+cG3-0ny<|jVj{EhaWl+=4v{`s`dCsc6LCSVQkcR6obK@fvxeCnsmq?9*QJl_o@~-ERxFK|yWOOhf%ePTy{*Ar>q%^Y}pBobQm?UmlM$F}`so=mwkE zm<7>w`))*i{I|;GKkrEV2Ok5P9H6co8=S)~M^Oa5e?Ma%@27MI^vjJ*^QHqAfj{HD zsJm?$%W;uD!#dG;DXjGYSq7j#v*u$8Sb(ZZL$|k5nX8^1ljtXN^J1JVA8WnXd9$?Q z!H)9x!n3;0eKMk(VH3E2eZoXy&%FCJ2FpQ%N54*%Y~(}N_^!;SSE7!{-=a<7xB{yX zO0KC?w?kJ_-T^$w#92h~!^(!e*~dLiin0;ERB2o4NQRVQ>@ zXdYw+%ai*Q5&Kw4{Z780?$kE$qZVU!t^%C(AIVgHuz<;&d;S08b!B;}ZC6A>Vzj{w zIcWa!{l}vm(pjaK+g(g@ zt98Lnk(CwW%17pu-{^cM=O0k9micghEAPTlVRySZBHUmzpNt}H;fj_e!B!78Xgnp}?-s{>Oz4ncD}}fJ+wT)Y!-Gg`3|d5Nz4^kL5vgLSbng zOP+qbWB<&e+GC<7{w~(@&!MJRZIw5@q-SpBy!cONIfx)@Bj?<|kb&D0Gw^R$Te*IH z`@g0tuz&&$p^i7Q{6hYM#v_fO!pkc@OyiOj=ytdlCe^=Q461lPZEWjSV~$e4VsFP9=Px+h|EqfhbwyOi^I^s z_OGs^dt)O#1QMo_{6)^A{8>s*^+j^!-3s*b42 zkzr}@D1m^RulRZUh2OeexosXjxAurcq@S&I?(0G97wx7Nza*BLK5c}Pp*h9aj_(@-Rgf55C^W5Lx=*s3A+PYQkS1XdHmC_Rn6P_n#8*3t5Sr%9iJe>nx-j-Sr=M-+!0Y{l89m zk|A-OiwtKUue1X;Xr3Roy6ig`0(7|bJdj%>k3c$QKs=X~ijLTZz)n{CYmGXEmlg%`*)cZHt{=@lyZ`3pP&MnjU6MzsGVeyN zvHI*llnP-ZyKfQX>C}8!q~&mbx_4N#Fx$afF2QX~a0tf^*8sudV!&~wW#Lk~`H6%h zYPr5I%>!Sus$u+;Yq=`R*9H%xD?lxI{09Hl>+_5?mROf~HTN05FTK@kB%RvcF1J?& z7l`Q|0gziyX@0!@u{v?FBmAO&{tJtJlepN4i8I|!i-6_==CJH|IfNn-5)uSAEQ`^g zZ@F(-T23;jrRH}_9_xHdC7E78)@8Ce1w_PQnc3^jVXC;-j31E{%CLKz3lnl0QJ?JR zJnGN8?nNB9k?)27(&XGMS6yR~WbgZV&5t9*-7I~caaX%BNMvHjzb;H=sXwkO)oocN zBHj@2iSYO$q0g=LwjF6@KMyYNthUmw+{Sb_218r|AC-*BBhZLx^kzMtjYg)y0LGr| z0K_9KE~2g#Kd&9{%?x43BfJ6McEdmIz>t%eSzCvuXPHQr7M)GdlRK|%dsCId*C2m*gpTk^#7=^~Ic z`J*s{nTwe3ktsa-7xKNU#C*@xJVEtiu9)pNgZ_Y-j7??GvdL4UcmXd6z&^Gq=4BW9 zBVBWjTc0_DEFs^*4yMab?@wYEm<>dFKs!M%lZ?#KI{RT%*eglTdWoq|4!K`k9q9U6 z@tgCEht8>z4y}w3Iv{AN;CjSZ_vss1 zYY|pf^Oib8wJ*U4iCZV;ifd zhs_}QIN7jIFH#>V`${I^SUgVAk$H*pi5jAuY&YOxnOk5oRcHl z7EO{_iCs*b^W&M(XIc^(#t6a&KOvG_-dy}e(I1}GP&v0Dq!ug=;*R@&>aPX6zaP15 z1-Ul=<4sDUMS*%Nb~U5MV_hC0i|m$gawWB4XYe{2j)QlT3#D`PD(=|9p`ZfaYb>JKOl+Oi*4hK>u>QunPB#jdSnD+UXm4*YT*v~%dfpz&@>PyC<0yQwx$o*VX;g3D$z z>&?|-`#H%OdM;0;i_*#Uc9?;%uHX zg6L49(cJ{MowvT;T>0KBm7L4PS#%Xx)o7Z{0x&#rWBC5@vb}IMAm1MpxRdme|GDD# z;{j<9D9}x=fIA!{^J2@e_xfQ2f}~dE3@{^pdM+yH8>ZxQ#8!gf^pq6zpKm456I%&W z`Z8V^U}rruGl0G_9SFv|7#c5zL9PIB1Te9c^0&_mnV~54u3L_hEJ*Yrix5T@2ep+rX#|`a0LgNwJq3x307ILl96}Ii06Uxml zs5luEI=Ogs&$hsKyZE`zEUwOBEKQX(zUAwSRlzO-_yPUBbU0re2YqY-({!Ry9 z0+ccQm(*l7Z@^N<|HX3W;}n0dT|4Cii@==B-`wk`d$LNtKN@_fusY&x8Sb_s5MC?U z9SC!|>YY26{JB*yq~PCJ?(AdO#`6J=!JYQuw8eKqiz7XKNu;98i}K}5{Is$l@?J`< zXk}ymOX=nuC46jl`9__T|0m5I5Bmqry*Q8!6PyYwZ8*O)Np693wANtR6)9tZz|8n-YVE2Nd%b&Q=usNKm>WE9-Ks2(f1W!Uu z5NS0}~Un7JX?0IeKTGy)7He4DNRU6YoDX(d~m*$^_6AoCyw@D8izl(4k*vRzV ziJDZ&=CA9S5FC! z!yiP0Ud@W)>;}_6k7IA0I_lkFwyf8$k(dW%)m~*F*Si9E|Nkke98lf(NA>oQ1}iEO zlV7O3viQ~S@p_2Q@|;uZh`kfV5diB+DX33%8=MwP3~@SCsWIDY+ZJsrrX2IGPsFQ^ ze5x=;Io|q27#=w9g-0(AvXy=_k~gepCyf{-g{Kc7b=-fM}f z^%``K&wLwg8thFnO~H4KWclvmQs0s6Gu<64pdW|{QS^)r@883>RWw8BoJ9 zr~nx1NQ(i^;=V5;_rF+s%djZGtzDRbkuYEY>6oEGN8|sP`@H8p-}UYH`_8-f`GpP_7hF%Q=U(@^*Sc{OpZjF@^M3>T z!ExBH`QbC#7p?&N4Q&r^$NHB^-IoEqF{+A)BY%UImcU4dKi!6}GGZd5)5J7!t-1OB zvfg*D$rqDNg*--i3U<>PFO-oSJ6x&D2qC(an;{H+VDT=ilz(q4kMUuj_}gb-iiaW` z>sIxg-}4~b57d4?vW2+Je@~&9`}iNT09L)MzZpFr?`UJbNXRC01w<<5bAYCf33IMY zs1#|NoUwxWps~XrD=4MsQk70I=R|Mi__Po@od}jH@}1%L)R4o*z?sL>m887ns^9cz z=;0vO^3ARESq9_}w(7Xwo|B!q=R^AE)%3H^GeDYFnI3F70w6VMLoFDc5$kVx33TAy z-v$hF*#i<1AeEwT?XwTS)f@5m{-ba2Ux~|}O1OICOFPnurV`NGN6XJIaOSt)PcTza zRCux6=qdb8G($CvSWT5sh~P3r;jte@xNA1|+rj`H?U$6-p^-tFP$&G$P>xHN0$?x6 zSM?>Zk%`x}r&JK=D#KsRO(#vWANTsdpUkWu^f%1D7k|9bxPRm1v|s$-gV(?VFT)W# zsvx5?OEWe|20Kef$0|E3Y~pT8*?K|2>LG(&v9~sBW&nR-C4+-j*c3-O7%GUkjmGcL z;EnTt>%4VcOA{qhK^u~X=e!kGo7>MBFO_pRI^>{dD&o`O)GH%|k$E`7)le$>Wbx|u| z{v-9YH=5MCI>hgA-tJ;s4xX|f0Xn(Ds9-a7kJH?x38`sZY?cBEW2&o_uyIec4P=R# z3}lR|@!Mt^$KHH0X)i_-M-o9~xIrP@>khth3-MnYUtqcS*WK*@^gjV;#g?aT37)3o zQ~B?C5q-r)_NvIxBvSBi#ram(s;tnCz?_>-@#Of~+sW#z^Y2AnraCSYCwIFq>CyxY zTs}9%smD=O8KxmzNS|<~w1_(EnsTBHB9;-_@$)(qBFon!eD;mjZhr5Z!`2%jLsrXM zJQthn@G-kB?4i8o`6>8wI4Wvf@l z1vBAH)Ote-*nClnAE_AlB*v=SmY3ejU}NS*dD7md@-QN zhvr#Lz%lE(OnfC`XY9Lau|Et={CsC;>JZoZ+yDBihbe(or}T0h zA8i4nn2z^2R{g19CXmEQAIiZ6pohj=K5zn?^7RD3SGmNUI1eye0m_BAy}2{Hg_tAC*_wM) z`mY{)2;0qf#9}3ngkpLhFpTXpNfurc{;g5bdiTMl04SLLlAD*SF$}r&t%Fyql2KlJ zS0w%Y6ny3GL|0U$gJSm!>uDy2kEjkqy&I_y%ICu~g0*Cxj(0>y#0Hkqx?p3~cj*b7 zS9H3&W+n&Y7&#cWcO5Q?Rd?Pb)1(F}8Xq2qtu}s&GGJ{cg>0lGgG4 zZq6pfUAb_Rfr_Y9=8LaSVz5fr7*KQ{qz3yOh?Xd25nFQ;a*1Y#*aR0>y9f%&_${d0d`svR{gGULaO<-vk^Ub(?2H{r55BHA7WyYlTdn*CPHto*fZt=o9utdVbiE*wl6JrQVJekpv z<&F8IJXOWeC-zvFUzp9Ks>?+k;*Y0p_ky_7>8^xQ;!}UMLzQyxR76qs_Nhdif9yAk z(rX2YP1faO2H)M^Brw^6h_Ee4m!!_#!quQWw|}l%J*r|-mpGYs-NLQ&T?Cx&{Kpox{#Q;#l?P{}f9@^Aw{LUo3U+JEgzSr=^DXEy;k7$|-?=*86x}4_HrE<{X=8BTkFbkn3!2wu=d8Dx~oj%0*j- zb%&stZxT3ve^jASr={RIN-vj?7ej!fMOw8DIkUSIboAQU*Q)73XazgM;}TSE<=ItY zF^JXG^y!@c-rM<~Yu-Y9R|;QK_U)m9t14M66l#DRtbQaB4`ZbZuzeNpUsi>W@1|p; z6a>~Dv7B>>d{qBi{~ItX@>*At#@$X&J!iJt4+lCLd%LU%X(m-L6wic0uD!BVA?V@^4Cd}MH1k$>%_%)MsGD*+hF*7P zSuOf8CvyIa;98!5f{D$bTvrIHFi{JY-~Se|x?H`lbpBbZr-!r7SvZ=HmoADXZMQwo z9L)J%!#qc#FTHLfIFbwHTOvsc3M}ZMW(7u1ft{~kcikY)5QeLPkq|pM>~yWXh})LC zvs*0bP$+moH)tm-|BVGF#g8sZ`CwE2My0~$WZ(HL_*(h4oXuX~yLYP(^Hz2z?mwJNb$!vHGpVIWy|%{z;g21)kgxRAGcO_`zvDb>_7@__+tY z)(UmufA!)Vq?UqQ2*t`+S0`HrOtbqdUvjA~2$}JoPN9~_+%4+$WZPF`i8;~Isx~U5 z%6+_)C3qu!&6FTJijl#;Wdf2Ext4!5j#ZBUfw6G`bXE8>HL_ZhWFg*%wv(Ht)}N zz0~iXI6;-8{o#qqq_s@+|NF81KZS{Zf2IY>Hut5D1S$5=(GmOx-?QU*|CSrX?5wfg zWdanWxi)v8Say1C3MkVj;>Rkvw6L4%|CghF+M?)f>D?1w>8vE7+#|G+{-Ro>^r`=NBbvvlAN%$g$0uF zkt&U8FdD(tC`D+?PG;dVIT0q?jB0fdzs!`MPkqrtY^lDslAeBrd@`+@pKg%_)k9OK zesxfcUGQQz0tjkW(0)F%i!vt(Y1$8u^HPuKyMMOIJX`MnNb~I0pNNR-2gN?JYV(i_ zbxMLbSG>moiv$L8s%peL05i6=HBiFvxkfz5Hv@+~wrXDduQ2`J#_MnSpp1s1#@#lb zqU|NYlvG>*cLcAAYgx(raGY}72m)cH%YbT%8p=3!h>nEJ1Ycv&jKRLJnWkj;DBkK{ zXZEUe=4D6b0%dJqvI|PK$C0mUC`W5S2|oNq zNG68hBHVAFqURysWE`mwYQ^cU4nO;avoN7;XI``!CUY&KD#3@2Wa%ntH7$1{5zvkk z7W=L`Yg41p3ZA8HfDSR48$GRsGNv~%rs<;La9hs9iB4TJchUSo-^}5OC7FLK>wR{`Hf-$O29}T9WhOQ^hDM7=R?X);RsR zJxD{HID%H4ICZpe`tjt&z&VO>#((I?i`Y@$zicHsnln%9m&rfnMqQuTw_S8ajvn4oy zf_x2REZ%AsHY0DdBfP62qy%j1ip_*~9M`l%CIcFt$3ut@wf{Kq;gcBKxdHaZ|M~|l zzj2&*ROn!9t|s&Gl7)Na0E*@#N~3zouzHiFF`t?VlgocG8Gr3CehA4D0uI7?T;L!F z1d{0|Qf+gvhS@QQzx+l=_01UBtAa)7C;zf9FkZx31V04@b>@t!{M*uBY;;zSHfEfG z3wQ6`S}Uk>7%s4cRr}EW>&u;u3oL3f@(*piC9AtH6Elp1op)tNXqWJs7#|^ot~yr! z6_M{L8=t?C@Kg7Gjst{MY9z#lgekI)o%(uQ!So8yb-nSEu!7+0vQYvOiNj&eKUuPX zuTE8Y0m+sVNXvD*sU<3Md{3R*X}q~($m^?EY^lgfwptVXR;`HqU}xKTMlbhz(@=x< zj1>v%g!SSEC=G+U$UKL(RRpml>T39>CSiJ4*QAf50RaPDq!0P3K4*cPXEKN=Hulxg z5c+sKMjDe&3T}<-&7mAJIy9PwW1F4^=~jW3k=WK^if@{#;5DI7rXU*x(+}%nvGjsc zi*%wDqiV8Z_8T*e%W+cvmNx5wT~E}65DEFl!F|@Md;%Sy>1pnquDrWBBj{u~ zIov{}V^-7o_S0c1l&7W+ffFq3_)v}3!7{oKjuCS2M%m+A6Ko+H258>V~0 ziox6ab(uKMRko2G-q(GD7%cYpQ*SlZNl6-B1ZoRZt7R|fuHgG>(_dM0cmCH=I%T;3 z0+w^PrMTQ`eUcnx0vybJ#VG~j-(o#rMTl6-n@j+$KS>{h(d!HhMT`CFQYZe#y-cwY z*>4rX3j@uj`4 z-@956+#9gK+)u4~4$DgZS%G*Kl5+1(@Gdh$E_$rA7LufoF`K@JD(% z?ykQTXzUaU{vy`fTqbYw57UXKPc4+T<%A(D*ylT%vX1F1%?t7^WaI z`Hr^|juw*ns6L&q+KTJuH93s+TU^w$$xakJo>Woy7|!b3$DY#xqX*_vY*ebi#aGK@ z=iUxGwvBW`4YXz$I}n#2=U=(`8N!5QHy_VQtM+Eit8*P1X^rKR;+|F(gkPPKSXmi! z8zXDh+^i@;X;5EOgp_mvb@?+4P?yIEJllmcPY>0*uOmxclY;{1f?j{I?R`!E$zBa# zp6$r8JT4O8<_M6lB<}1a#`%|t0tfU*a^GyBU9WK11;75|zk$+&SaB#_`sPEFQ4}<2 zZ>(*|ZImV5pd6J5SMF z&;$B%fc0V*EBPfBE$VhBx-XNxifQP2??y|rwbUcKEoinnlpF0mz@8<|V5B>0X&V!u zLu28hzRoBq=zBlKpZK;bruJ&IYt={<%Mlv6O4&@ze-`JrHg6%a@Cz}@{E->q0B!m|qewm;Hd{j)UaOKuM$gMxa*9Lusyjhqug zWrsmvxsy@sf3sQpn_wT+%=Zt5viS=u`;Itl?zmMg`fp%!6b_qXx*a}60*(2*cYEbZ z`1pW9XKkx{2k7()b{0ie{37P!EF1$cX?H9{j=76)E%tw+em%Jpyzh!PT}eX?7^p<9 z@_aFGu)O1zh{Dqne5sLGAvt z9R1>c1TZq7lc|f3aIP%z2@ZL*&%zXy_lM?V2{Az+g7D1?0|Kg+Dwe6j%B;&xG%L;z zyM<_1>^?eD1D!dhd96prWo!u!%jt$>Xu{nm5w@eb@C!y+a-Z!O0XGp_ZaX5gIPb4A zFAr5h>bhWKzexO{{5L3c5@j5P?)_wZaL|2i()^P}Gm8Pz63mxi z56Yo}h3av#SUF3KOCo+E=HKQ$Gj1n2ieeB=Wn6=IRP&0=S5o0z15)P8^vMh|Y7dM4 zO3m%{Hg9jw>luC!v8&FZb#pDKL<>BF`3z@}S}};9qRFb2-jQkT#|_c`>`gn~Vyo{d zSL2$S)&vt16l$NC*$D@ZzKk7;w zz0L#90oi20IY59z3NORryr5F<#;St(abkQH83SrEP^%gLY>X&|KPIC3ROPc1WvX{u zUbOjmvfpvsz)9eT)Al?#v-_N$xpXxfNRHg(7O(TI^Q?6V@R9^1ks7rG=~K+{cVUUH zoKUN$B*A{!Tnc)vYH4`~3bLckcU|GQ2y?mlv$I5=q2ESFwML2E&Qi>29VSyRvg!e{lI}uK(w!3u^^BjeLLsz$wnNDN^SnczG3)*B0{>5znr2iJ{_@`$Raad9Hkk{mG%gy=_Y#?2|B|Q!)aoi zSCcosE0g)YDgBMk?Rtfjn0kEVaChFptLNaZ7$9a80^6D0KAVhPx;rE8AIFbL58{e- z)wQIQx5y6UobEvg8e?)lNgShwqns-RC+svpDWW>`Ry-qO+F3&+M&C^xHD^IWguP-= zo^vJ_oj}pX$%|mD2M2ve9jML=wz+Pwzzjdd!yFSV@yh1|aFhIR$HPAOYvXOFm9v7{ zM0wle<$t3#VTG$rw2}7EGxY<(h4rPNJ*U0E)%=0mlrTWt76-ws2FZ^YkBG?oq{g__ zltcZ7ZmjSN{3#-p@utL;h5$*9o5cT3xkb2q)LG?o2Tpc=O!B@Tz`_+Bd3D_u<_gp< z8tLY7m{%flHd=nEAllDkS7CeBalPiR?mV0-S^7vt`MjVvW-~nsnS;{J6y%Hj#tz@i z7WBgQo>xBVcKdLkfeChx4$zrs*;&EzMvEBIjP{I7!ng?Ow%o{&+k6-oc#x)fe zbfIE!ln6(V3V`GJ7arkvRtFG-bs z?Gg`3z!)j5uJ92U2MkzL7zr_m-WKaWKtbY1-RG5~7;;)792O_S?mPYKSUlk`7T@bB z{`8awVkKc9Ya}DAM?pTW^pT1*H`jWP0BZ+w|7+G9Q2C4_3n6lR-cC^!J5CB35!7Tl zH0a}yMr`G)BXEhMELW6Cz!3e~$kVLSSz>Fa!cifu!|bg^ zC?D4P&_8hsa_xf%do3WkMK|!Ci9fL*x z%;$)mbtR1;*Y_wd@go0?g!>#ib+e~}KE`(Fby+DAx52Fez9^T-^|yd9Po1??;vJfA z>V(+>1^Pm|VjEz zKWzFDR8F+2BQK~_9p6&b=={T za5LlWleHEL`HaM2$~2L)$=CTB<`p+qRkY4IA_Rms3xqi_-+W*FU~rOcbP}y9%U~M9 zyVE1(Av;RSlB_0q7ah&QRhAP%nsU5Y`A0_aJ#H|5fJPXz`(WUriA^RPzT$K`tfK68 zoLwYg6YSWVdRmkX7eAUX%GU7P7nDB6+|I@1&)x*^yLk!ZnYR8R%B=EKx^&6csOMKH8jKwF3wNvpORi>s$tJ}A*$sx-O;%dU~%59g{ zp>7!a>q=|`g%Yh&d`8fsVa}m(w8VKS`ScJDr=*Qtu}mZtFc28dNh0H3o$mfhq=TUW zGzXkdJD9m{XU81Ef)Kig2cpV*e;|YXZ}H>*kJPB81A#l@;@2O(L;$&SC>6|lDbVPr zr4Kt0qz|ehRRKIa6$&F-n$>M1MMig>TfAIHA z3~T4SPM>+b*_<_x_BVwDlZyw;1q(*ge_U_rZjL9)d|+!AL*a?(_x6}nv=9PuWeU`w zC$C=!NPDb2L~UpJ?qYx<9T)}W2-2ym+GTxi{!~7G!ZD!}w&1G<*<14ul|xq(hJNtC ze=Xv+#q*hGB(Pexov1}&(oWChJT4@Ll-<%PBAJZhY&%R!sEUI?i;JP+w-wZ>c`?ns zT7k)AJLVcDm`f@``XuD4I$?fm1iV+YN5qN8CuyIjejG`7~!H!d5HbJYsDZ~@WNyLTd+h? zi-B%n<*m%v$XO~#RRv)8aukCYRqx&3UCYJj$^WUCEO`*G60`^*Zykav7iFg%qCCVh zH1FQwU{F*`a|JpsI5h3v|C|gDl{o=MS}Yfnqla_o=EEr;Od=Ro1`LqFX!v-|KVUSx zH<~Qx*jCiY4z+#BVj-`TYnXH|yCFLpf~F>*jDdv5d~w$%$ouqBMXTt_6ChC6lHu^F zC`!Ny)Gd5Kg(GddbW4>K>4wP*+I-D-ULJFGUujqEjc*t0#rEsswcgaOKjst z))`bRFdp7Lc8t`KpZ~AIK|8SXGVzHuo0An1Xt*MwK}V`m z>1jAMi+`q*De=|ca;u~RjawCF$KQ=-jmO>Fi5b<2PZveH`KLd!HSNy!PCcRx2&4+& zJzo{*4ffp&@pCqwz6N%PFvLIYBVkAm|KICUCpQNXJns_Pib#8UT2aja5NL5^%f@N{ z1|Ovdu*4Tmt;jrK>?KM1V4u(KG%2rC+ zDF|8}=fv16`H3md!qREkE?L*zmcTQLz;a3J{LZ5(Y*tX2V5UU{ee!9$VcMdj0=+25 zIR}?-y@*ZEd0cX_ChV9jV*Tw$$rq^uO7*iQp(~0a6@rgZcyk zWebve5@Ih9Sbo2``A`UdLC(^MOr127VPLCj0!WmgK{$z0yGjcQaeMb9b0kQ=DidNs zEfxqhX!(I&fR=w|-+hH;&T>s*hf_25sRSD z-a^`zHIaDN)q)?6cThuu-g6pcDU%7&T{lcthJaZ*5HCHOC^4f^Hs;=b6^>^uzU6!X;?|D(kNgcS-NB(`!+_Xx^}Vw|J9(YI4LxEFMSbF_muJ82_p?|*=e@-B~j21 z{x?xUF0;T0p=Chxr2NS@+_K+P$9=9|wfCIzgC zX8O-$XdGvH8m$wyLvQ&S@~lIPvho^F$$N^_#W=Y)VyLY+ay9d3iSrrYjlBU1;U+!9 z)I7f=dmk28K~o zz&jL&mX(2*9o!E-MK50gARq(y6`IvM1fmKN2hmW}xzW_ZA?yi$+hJMF@=sQ9Pkzon z{H=^&n{&vE4E~MFn*)Yez{f*YE?Oa+_@rIP+c8B4h0^%Qy_x)_%HW6#~>x9xG*gcWHko-}bmh>{U_3)Z=n# z(4lz^>b;0(*itasuVR=mYIvY!l5+YGRi$W1L}RBx_kH0s1T!>j#A{fjiMXL7Zg#uY*8FcQL14SadW1P@szOsCOa zIy<5RH^?0bN;5w^$Cq#I_v;F2DPvA#R1|HpaURIRg{Q3U@60NJ{**A~z{*Bi2rf1HgJjVVXt92un&^$Xx;yc;1IhGqXnMM8U9fRR<6WgZg18D znaUXSeb;Ua%&*KCA+DO4RkojBfO2lfCq!9N z)$(asROhe&}g8^A(!rL#4g54Zr4wwZ^Te$KEZ=gb8|P zFIRKMF3x5z^i>$2DjuC>(8v%~_9LDk-yY1`h~odhHa#HlN`O`87?UZtN7aI|<;7*< zk+HtIcg}UiuV6*+;)kHJ#vb%m3}|=f-#bxOOW(P}y2Hhn;9twMy z0pDtgUvF&+f$w*-seTh>!1{EJp`iEAD-kO=7ig@r;lk5LGUSXNe`=QvHoRs}zV0wc z=cT@M)+f7xDJ^g4LSoI|6I=%*nYP)o!~{>8RZabm^&29u-i+V4wrx810O!u4m)`f5 za?Mx{3`=xvu@Nb`)wu99#>@2c^W}al@Hp1m^J+fuaydA% zfu9)d#atZ5*NmCFae$&R*U*-iq-vm0qA5;I`I!Ih;^vGPC`rs37u_Un~jn>C8^;fKLg2 z>BafRg+TK~na!y^FegqMc~L+8qp+P+62*5?^gMmUp|bqyvna8%{ufPpAAR;Qc8@RS z1)_%k`-{A#^P%WsL-f@hZN@YD;f zVXo_&@Zg)lpNnO`^W|-`z*#Y1+UBrSqEJ^d>vL!pVpC1;Gf$b8KXdv^l%~A-Y`Qs$ zqeZkNSE%~jeBg-8cQbJ8HI2EE`FZ2EznJP?I_iyuqx^NO0qUpKRLG6Ic zK3TmG)?uJQCa_I>+V#gjL%}WFFl|16uA7XPruK(O1Abj57XJM;$gtRT&=kTlBX>_l zGW>8o?&dNe7`P8LILMpHU8br)PmMs#`qvx*{4^@dS>jiZIv!G{-DCLb<}p8#H@Q`t z&+E?M1x($AqO8_SdkKZGA$f-`M~X3Zs4#f3H6@cfbJ{kU*0zorHO}#1G0k^t5S{NN zWlZfkH3i2Cmyewh6~UfWC@@(_>oJ>_Dpy>)Mv8Z-m=wZ%+S zYiV8VJ|2qVv;Wz$g7E(YlsRan1{g16tWMRJ9%?mWK+LtZ&3oSw1rezuVzu_@h{AFD z=C5XD%U#^NQ!s&$V3FPY?rjP$B1aQL3y$R;-^nfvM||fkZK$Z5*(;gYyRtL(=>^x8 zq2He2*hJI*XZ<9PpQqrORX(v4c5jvYLlsQ;RU55R^CrE*praj z7IS@gBLDN#zRJm$_lyDC(6b+_nlB#Q+l^hL(F_!$k!TEou`8GL@Z^2aO&#K5n)FTm zXns0RV`y>MMx(yXyyxE07z8i@q39PmC0$L)%#8*3g@@-OZFy5kjNDc&buH&(k9LMP zvPE*3vt+-cWNgDu|L;l00p^;fy-$*FWQ;Bmd73d7)81|SqT+dmefy$f7OJo#bz|7A z!-02V)p@u1;-r}h5;~Z6ag_FgD)h_yb-4qw8<3yCaock*lcq8M$b0J12X-UMpuTX8 zEY6PvA7^4zq?nFQa?$wxYbI2h_N5-m~Ff?6z@`x{G)tfnKUMR^7#DMV*{KGvEh%X z81F?ksxYEKa0kb!0(T7Wh}Z_04|v*lav9^zBcBwR{3u*f6|7&Y2w#*YN0+~-?KK-U zHJ}(hJlWQ)g4Z( zD6Mr*i@cigl=~7SGSn%RURCa8ZlX)BG` zrX2y2K~ctiaxnqV*RDwM^KJ&OmxTXtpy1pXP$vs`Y!{U;z?nd?#_zDFy_X$6oMmwW z(K=C+j=91xnQ%|twv~Z_!CLZHVNpq4I-g#qG%07cK6&B?pjqOxssJ4xCz+bHW#Fq0 zh0#5Lxa^Nb=mMUyfV?Zm_ti>^d;oc$N6s)N&rkB2i}DwuS;@o`M%AdpE4|KOlJgsZyb&F5|VS&qc=odKlQtu)lMB6s@vc_;RwHS!D3t zgL+!5kLN7f3n{Gc+aJ-$uqL*g}brD1%!;wJAwf?6)P?MQG_5?ko{XKNak z`1_2Ww3IxH;UEuRV|pn~gCVil5aM zr@q*cxzHPAB?+>PHMqVJ@pU7m;o#>BP2cvSk=o@{lg4G~4W1^|P38$_)hzFQXrSD@ zY4@nhKTWc;WG#)Jx@FPU`!Grnqhip;qJ71JXhLBpDk#NORmHcd?*YBuaRpW?_3at4 z+|V?hm9t;Euo;7Be=0fCY?#XnlxqdK#k~R#=gx4OyWZ;7B@B?8IwZhG#k#6M;YRrc zt+qmpgvfqZaP%TKCN@vzB*y-yUSW*HKW&>c6|4H+y5=@F6YPE-+!gv>8KB)kXhO(E zc6$dScVw&bf2V0qaT|y7Kh)3)Uj6@Qno}&h&A^Lm-rVokH>s9@WcaVh*!-mh&!9sP zMXmsH96B_&@0qE8vGM-hR%2R%Ed?da;5|u}3e74{X__`)3sPHbyC1=i&3(-fqC-%bTbh}ruH1)89i<-*5mK_mgNf5mx zW?#Q+XF4_n0Z8V3tzcJf}=YZF*9~=2I=(BK3#eT>u%8buK^)Cs_C_hwqbCD49 z{!ma=o|_tRmh3Y+IsuOurn6)0#MAw&aMT4R?abJ1dU|Hx|BP)Yn4JON>`SxhGc<>O zy|FGyh3EGLW!p9u(Q_ee zZ<7|wfIp|G2>{PGwgj&fwWPK>2wuNx@9XK4y4!ZEk}VA+K4wJ1HMhUBRHi*oSD>N( z4GS>G-;lg5{j6L;8j@il`_UgTMBb#UUj4tmt#fhDdG#eX?dDWC6BfM_+6p%a>8Z}& zVQBxG61=sEE;v6fy{Ma!9^P+F^xwoi&2~A8zIjJ`78iRJx^h0B6uzekr zr26kN%?m#5i!!iE5?j8PVs8xjSuy#xu`E(L@G>ByD9)qSl z2Co%6ag3bu`Iz8EyiS4QD{ZIfG>Pq46bo5QwJT4#7Ecp4T$lz_tiM>QEa=I+MD6N) zEm2=w)srl|CytdSk3QzW49?MUOI|97378=G^EvAV=9aCa!&i|x8w=!$o=nc^N;)fO z(|A{`(0pjjY;Hzs+{JxSK>}oc4=>bS!CI50(O*@56{VgCk)^D_sX-BKd1t}(=K zdPMp**egMOJDB$(U+g`tZ>%P#9S_u%k#l8?(uuHJj>EMS6k>UJ0;A?_RfreTk7?-|g$=EPnq{o8op!BY-mF2r3;e0*Wsrk#%) z#g70sH5BwjYkciR89egb41}A0eA-2q;C{J=Y2bmntR<&{{q40k5{(w*Yu}bP`#(x* z$PeLilCZS6W)nVx_>Jpa7;Ve`s7J0@@hEO&4v>cMKp^4<8F)+>Rq!o2mzN4i=-wWQG&FvpGoI+LhGRrN4grAkcQrfjadDq6B6P13Bw=rHE;vvx%#Wc&5l-psRA zGEhBUkU3u#qYu!8;aVF2o~rl`;k*x^gic9x*Kq@Am$N>S; zcVhWu8}ROusRPQ$jh?oZ&!TU?GfKGm%ff5s-dM`h-pFn~!Eb9;P&@$6v`QcO?xYAR zq|oKh95fvyA(Y;H$q%*Q{jdDx4y<_kj_!F3!D)j9Cvk9!TP!u+L^qlC26?7mcV zq}gF3E_obX77j^w4aJBkHE%IA>lBiCO|}=Be4nSbjwxQd?UA^XFoz$y;C?ba>uYPX z)-{BngaKy&Kv`WWO!>aZnPjhK;#B*h%S21|u*UDC1`7hSMK9k3g9wUSc%J<2%U+Y2 ziuFHcPdlkNo}5e09%=3Ya->w^bhDio-@o;|>AmkDfFy+X+?9q`6NyjVZv72Ve21k>IlAUM#h@J=4|O zVI;&2yUPu=yTcm1B{T*^KM!R96h*xo4U>{vfgO<8-x(E$mX0|rtmdVemq;HQW@&C1 zPFgLcg3R!!b5S^TD-!DtNHWMT@yEp10fqHh76BDzr_6p5BKbYT)I?W4+Kb@;W?%4F z#nc4%oQDg@k(=^n9``Cg0jXKo+}G-r}M;D-dHo7tx0NUI{kBkI<}5tq5DU2aLb zn#J0XZSVbe1Kzn(vs(&e1Hs>WjjVFUKC3*VkW+^ZsCbu<=c~d-yo=wfv=N6rWRH^V zV?73&STv9Pc5v@_1JHiOZ_|ygo1D@uy7BBZTBa{U`px>ukh~a`)KZddYo!=HP4OJM z^zKT+0Wqn(&7lq&EjNgLSSTQnG|j7O>@bssq~r8*4dkl zXWvJRhH_1?%Zx3CG7}UB5fK7)`QA-iK=aKwYjz~H?1h?1JN4Asw66EM687S9zx3Xy zUhlG8SN6ol5vHpQ+X$T@d&qY-^|6Br=Arzveo3@xD{8wja^rKc;)_zRA4MOYe<~R{ zK5+Wkc2u~`!FkEiP3B^}rb++w>4tTZruWv_JFnZb1hu6&>0|LANBxcNr!GAQH+wbx z4u)twL`L~8EXOZ9prh;8mOpSA`!6%)kEz>SwsjyBjt@~wT&|4v-#QNW`LL|z(MB20 z|A%RB_T?cGy(}>6X&j~1Y#h&BGZm!TxKfhn-{OD_IFW)sK^gOhZft88J$$Tv5HO#< zuR`1YXSYV#cW12dQt|cf$CWV31^=YfA3wLwl$$wru6ngzqG@?_G)>St zjZW8NS9RGh&k90}oD+FIXDIanamdzk6_r-hhpAm2LIz{(u8#GK$EXz+E}2~`f=o@* zFWw{l=R|5R6@sJcUF zyA?==xzCd}G`1VV$A0#Gyy>fq3o#w0&!sEQjw5SpKF#-V)U)0T)j%teW*H;@GvE}V z_+~puy{+}W?G-TGxW_O7cWCZD(FQS?o}x zjVAJFvCgRSp0<5`P)P0|?8e8YP)^tZNIzZaTG@#Nt_cCb?iE44WkETS2H0W)>tHm; zcQsZ^j!<{OdAI1z?Rd=g7vuw-BASUF@}6$gS;P0>ZSi|4$v@78IOWLk6X>5M-7VuavlTV(dv#r)FT{SN>fvpovRHS@Qm*iTYf-J;!w;OU!afQroIfT`{6y~ z`m(uAV1bk8HG&Q4^&2f@`rCBDwE0u$+`T_=(-iGgxue&D-d58cqCO(9*i6|CgZ&Wn zZ$hrFTlr8ZisxpPS(&s@g6tVmGHx`#W#YI{4tn~;=gA*(F_oK=2l%1O`7h^04d-MnR)#paZC{5-=Wf#r4GstJt`>=9B9M(&H@j-FR;>wuLVsD1jS){0nuqU2jdAKrPt+oCmX~4@H<3~M~z4@xM^~yF#*eDUt)h@OihR_&k#m`x)fE=5IT%FxG zx9hF5d}y>8DDhx;O`lZb+S=(OgOb^LYK*Z~wopqp=DF_{qR}Y3lw>;(_26L*ucPzmIME-;m@}6z2dB?m+!iq?ohqXbuEwyogLcl`$A>>+rODe zg0Gw_=1-~0ZaxENP;W$Gaz?vw4JYqA&e1r-1!6r^JN_7t_C&y8;Q`Rk+NPcy@reBi zq`1@rNavl#x$BkVUVIE6K?It&*LfmkB>&87{-AR%qL*m2y2?IO@a{e$z<8eQ@C``q z_C@Wqd(}xKev04XAzgB_ynw`T&~pLWnM+F6`<7AphdDNkW4F7d?MlIM1+wcMF)1nV z=#q(h>{{p;V~?A`FI^qq=E}lg$Dr>?wiI*(g`DIh&Q#t9b~M##u^a#A1fqi0&_$Es z!V_ClA^Kwlt#`Zpin~zq^bh&r;44xf4Ge zu@?9?74J|cfltZJbTWUx?mc)M4FE(0c>2l}77{lA>Q>wT>V`kDeUt%Yy2g#?;*M(h zDq-gnJhLiqLs9)m>FY-fOo@Vt7mrV{%2t*kMh;iCLlkLRZM`Jy=}(tsQRbGj^kS-X z6;bK$(lyf8+3LX!Qo0i2xgU<+vkXoxrcdiO4K8(Xi<9}Ldv8>9y-$l1(573&kCY>R z_yKM@BfBjGzTPwezG1sm_Rf!2b6Y-`6>O8E`;Ai77hJX%lI6y*e`)8a?NTir`HhDC z1wo|c>!hM)r`f#E`c~@e8ZgLR`4+oB3s3toISh1imIBB`vP3I2hCxlTD_C|cC00{( zNM4Oh7^~Fc2ZnwNAy;K=_`W=~9Q>0(5jQ z+LdMjQJcQLgrha~EmS&LPIFckD>WuH#uF_3BvgJ-IM80gU4llvZIKaZVUfGO+8_{~J%j*^ zF~r-Et(UTO;(1wNRtDhdo!SA1o7(UD^w92CMA_&#(0w^j3p%}CX|wB;0+Q^)J)54g_^z`x1z3>bqpg?+EiO&x7GC|gL7<(Y_j<&3Sn)7ItX8a+X6 z=+<;Wae*~szaML>%ubxI$-RQ#I!ybuI(JHp9a-MXmBTxj4E%~-Kc1Sa%5cn(!O9{< zoP8-|>wRPiOROsNwR2{*3mEK}~;L7Df zJo|pm!aVQ-$57ly0gch}I7EV{>~YrV7XL>_;D>B4%3;l%*G8 z>m6OpunMTi9e;83$Jign&jcx&()Qr@L_h41A~972G5%Suc}0|o%Am{DZS7d>(R-ZA z6p=Ui#boKOF*su1;lB#Fmc)3;zZUTLe+szfz)d^wdpe%ZFz>tu#^tAqg1F2v4Zz=D z5}}fXxgtUn5^wUT1EAyx4!%~ur>S@9-(rkCku z`}KsnE9lSS%w_%#-R0sUy+wb%sc7W9);t_>xyLB-&*%6+r=dc>hiMZb;>x=TP^gn? zW!BMt43I>uMJhlK>7Su)U)}g6F6ivMQZX{wawA|OZ~BhSPpfB|tYC^raF~}#fR~D5 zNap@7Yhn^K;K0U82t=x+41_x=7#iI?O`>mpH~w2yl_ewkW`c!O_ucVCagQWT(}l!_ zlVNc#sg+!zvjcd_*@gi^t#lRXx9rHFp37MaST!!zvf?{5-ujQiauzACo^x?@d#ElN zy?;a}Y`Z|osN5tj)~86$>nat;5^SR+e88?grfm%tPoSAu^yBjl3L{GbrN2<#uz@(% z(vnrJ?>%_05^o}oq*)ds3kkAGzC=CCA|jEU<^U$HcQBA*Bh!4qPxmSl(<1mR4I9r$ zIB`|mzQf*_6+LhU{m<6B=O>1>jWs2NJHN$Acv=p)2#q=2bloO;E$ajBoQnV!3e$4UIrg`yCxa z`i0l2KB}(NFkVnB&CoU3o!SaOIb%?Ngp5O)i_;*k&xNoIPlKc59Z?rjgPO7Q zoQsJzL4XpJ+EM@`mJdu?W*dJ~(z&*LP)r(>bU65OqI8#ZL!L_8r#F8+s_A&o^1X4E zzi7_{9r0c+KL3HTD9@t*C1m=+qYab44h*ptr80SFT@Q=tnwjkg*?0NgFil_B3h>@7 zhIQ)i6Kmgl#O-eA=DyY+?5dGitjbz^2JaN{y~1Xnuq-XXs9e3*Ncjtsb$pbK+=SH6 z07~Guu0O>jRY9KZMkG$Bn7%6;^Yk&P`cwK+`iJ1zjbm?hlWE&|Dp;@2=K-WcK+VQ= z@?fGubQ6?fC!ojo@mYK!?)QcBEXS>*DVft}>kXn1l_N{Qd@H?mBVFAvP;?MI+a@tfSL1a7ZCN!Dxm8x+B`?Zyh zueA--C$F9SpXEslu^M*K1w3n%RHON#&;9OsJ0rIuxPU(Lrqb~@N-NSze^-RTqLkHX z1vzhC#o)a(SR4ynYvI=k^vcOXic~LOd4>89c`v*1#IX;#kF`!m>@Rh{HQ=n@HJD&| zDMXZF_{GNIBxxuN`9Ljj*^D$atp6#m&V!Ag-P(r2up{Qxm)>~7%7e7aI-EI0S7D?T z)uFV^&gd)ol5X?W3yYLI@FPJkIM_(~qggST%j#PAL-=Qf#zYH|!LTqYP@@Iqkp43e2y!Pw@*&ZH zhqG9QZV?o3O*nT5E$Qm4#@2H@1cijCrt`+7HK%(tz0v0%yWwh#rLOYdQ>#Us+9Z%U z+nYyfnaKltSzS`H?k$mG_CX$-AeNEz55ME=I72?Lg+|%2*xztsKH*LG22>oupd45| zvdnn#v0#6*(1$3yJU@w>@RSchIg9xwUD4LUmQs6{S|oq2KgIoet#|t}FcD5>l?d_V zps`A<$6Fu0UBspKoEhGBXR6owTNNdk$*noh%e2(;|9ajNoj5tg= z6-ZyPM4|O#&7&{$<)ULh@onXS72a@|J*AkJf7=WVY5gg)KcSypm7qoxe1lauEm)Z`_x4a$_PgjjQ4TokM{De_6FrnBZeogS4OWTZmR*6q zyGK(uV+)kQ@2Vcq^xQiDgVp_NWd?^`bf=%Nuf!$q_szth0dY7OW1@AfNT@aCJMC+z zE;e5$dDFZgHjE-({#{^OPc)66*COK2YeAzXiv=XccNZ)~T9LXwjRGvlI}$?N5?^%d z)hE2hxMU*T%8pXP594Puur0W5bN?d6YVhzDms}xqlhaWJC7+gvPHrdC^TyoIg6{XCHtdlTw-hGc zJN1@3E$xKq{7!QIyPI%xB1oKVlkp89Qh145o_hMAV06Xd)spSP(r*i2n;)@il>*#g z;~tuBL#roI;4pZcKv;Ou9>20QS-++{i#W%dpmwQ`K(39R=O2Gk=n4~S#WiqWh?X@R zu^Ji=O8;;WpYz8=9Yh`t?mH=-XkUBNaOqFULxBq~KHsw3-xh#y8TO8OM{xlNiV|1IhCmfJj^~X9Y1i)e3Aok5GeXihws;DNH zuU&CjHMEnES{_gkVDjQ#n^@mbpBSRlo(laYmal1O|U3;RpKOYxc%G&W^ethI6WW2 zy77S(n8PJE0-D^*D*lpT>5;?$DjToUb4l+xq!yBS{tHB;ZBc#V9pD|T$t``Hd`V;o zOVUv-J~A)l5-tnMPi6S#VZ}op?9bJ*IE6pfhFPD`W-fOzZ8?k5V_#%{f&XxG;8<_L zO(fVugrcKz6rQ#neMrhrWPDXno*!XCL)$IflFt<-Lh@S5DeFZ@4!XJEr?MSX9Rzt9 zZc4ko7OnWqwNkeC-l60*(zr6g4?c+Q97khYbAZxk)s^Ys*q>9<^yEz`oy14&F?zJy zW|QJ`-w-%qmYLBabsxuv^L#qYyvK|#C{xj24U6u<(J{t%RQVI ztqVD4zMp>X2MnJ8E8_hjQkX-2jJ$?wnW8v4rT!e{BQr z1vh`2U%MyiMU?ZP8?R6TQe@4)sD|l3{tToHtK3yRvFvbpbn?1G5vGMQP2&h-keY5* zODXOmiUG%(*_6O)qGcHhl7CqFULY%H4D{}Rxz$)Wbyn4XY$x(+#Ui3)WbW|7oOf~` zuXX40TdZ}J%LKGU?y^?sva4OSXn*S%02~$Y8*kxON1cegw(FTT8F~Q;lT?=Q^Uh1uo_ioay-&)ez>g$2uOq%_ z7n#aTZMf8-q$-$x45-M$gdgQ_XPKIk0bLi%052Us`nUjC6O@e8t)0F%-UaR%tq+fV z@S2W>+V}b$%fHpM0b{+k$CgLGOu4?rWM%RTpJyw+P%jswroy}W;=l}Q9FQ{Jkf1Ff zs{Ec!;2=>)S@lz{}%9FBwtSpq(}cj%8JhuS3H z3-5LYK5w=GZz}nT+)J6a{hKHpYFUx8;9(Amf6Q% z2bzT-`Vhvos)I@hn2ABmV3sOcsZJA1%Cj_3F$_}Db_G8aaf@PmTx&}I;@6Mq%k=w% zDkQ0-lvXt`Ai_hZt{gJ|WKb!87z_q|FpH*qcGYlhcy(M;a12+)xUlGd0XXu*DIt0q zEtG8rU)8m`5qtt{K2NbKY@om9kKVEwYD4+cBiVF$w}`Z$J|w=Fl7aC>*fYGHJb6R){tUTX59#VT9y=v?2a zMYW<;u}`Wp9;L&QK#Gy6L4!EY3GoXGTbtRF?jR8B7)8URAkX5SiCLM+GWK1n9Tmwb zw%q0^%2&CLBsNetZK-)=?)U>8x8cBXfB;geNBu4`rr~o(4I|P4#qjx~^aWLOgWG1C z?vd$LsZRQDMDcCBbnavf6b5POjy1Coc{-bGh<=RZ$o7C-S7B`KKp+4(HMp z473Ju_!BR)W%s%)Jy{I*o7qN2x@>cvO(rTO$3Kj8TAR* zn9vy@7ngElHM1~V&e zDvEoPR{!qN!=!ah7Wg!($bpZyXvC!^`K9;fZ{=9`r;K;ECvQgMvlvpi0EWjasbCu+ z9*$Uac3X4punepVv#I|(K^A;8dl zm&^RP5>+CuWcOV3>wW)9-oSkucJ{TDz@v7S0}k#h5Z{weqVNei5>79zFX>REC5Uy+0@hpPWlkUYL0CpX!UM&U^ZXlyKi%vc z15%~N$1fZ4 z@#fY4H)Yk+5|j!AQu7C@0UF;;F(5K0Imu2#dxbmDk_pKj9?~4v0q}y^bdD@04=azMY%sdQcviVkZIHT z>Nili1f)yAVEgw1+clh$qx~OcYt~^wn9Z0Kic5N|wm^OI^PO5Pqn}l2)xDm@U&>%u znQ3ngUCmGV<(Wt%=n-bAl+Em6e-1t&OiX-+QnLSKX30}cG5YxaG1Aoj?%WgO7Sj7k zzic=)ge_8K%<;1DXuI0(gMrBZ!xe#d;nY$5_J2t%4_1d$!;fhi<)E9}Wev1ah=$0xo> z)39IF53%mqd-CYdI!I8m!hMz5Yr>dvwX{9t2z#CH=%9~q{pHMoy5cws8kLjo6w{*~ znIeZvXc%#$vJ!IQr5d*%4OG}qR+mitxmNCw^V-hzy1(6ad35D?!VDJSM*1c5yaw4} zUNgBaOy!839d~knutowXLm}jN3t0JDw5jN(6(WAAsnfms#Se5AFtzXd-%Mia^5!gi zPA~qdEReLGhIM9$OMUUwKt;t8ztg}lE04`IZYoa%kX!N-TS8v1^4lbtIm+kW#=APWy_F;I()~~{L0YGZ zF+|rQT{-sL#iOlH5Y2e$Y-YkuYI76Nm-1Vm_mUU>^tdEsrUf_z9sky_!i%q^uVLWs z+y`D`*^3w8WudYtf5|zTXa%T{ms-Yn!N?uu|I;vezsVG{{Wn9U^&s^M2`Hu);z~9> zL&;L;_dd#?9MJy_6&?i0-5CJ5LrZS(6?I$@_C*)kG7i&}VKg8(linWwL1J-#`|KQT zJ4+??tdOSDDC@!7eItiFeW>SFs3x>}e>Idkw`}ZXmCfBo+Oy>sxy5?b|}Nq9%YjQc6CHpH|@MX!^CjcZ6Z&>Gyv!aqlw? zp7wqPv%>*jWEt$RA|aJccNKa{Sm^Dwp}9c_O{YtzuV7zWRNyoLsmU&EJba%6u`iAM z%X#;hx-$52e~^{J^%ZnJ5U4RjAL$q>{mcReEk(1Aydz9AzN2QBAo_a7*98_b@{0U|&r;wNb z8n+IdJLQp24DuQHbRH2N;paZ;HrnzsZ90Z~C0Ct$o&^&lng>i#$0JKm7G{3mkT40J z&bXgyU5E}m-DB2%Cs1ZL)EJ5;5vQ=Q+G2AdxfB8REeG%lFu2n6!zcwjGk_yrLdvyM z?uiZ;oJ_Qy2`0QoA^{3f@NmDX=JOwJXTU<~)dgp_nQGlm<8PAMAN$sd&8;UX?<`B| z`GM3>tR;ugoINHzpIb$N*=|irCvy<-#1V>VV9nLjW&Q8~Xm73s0<~r+Z{twmu_z6- zb>2va&*=i!6iwsuopKTMc!^)vrBiu=+ke%WZ_1=6x&ip};k-9t{=5|HK2VO1%{`aR z{i!xhfPqUS9t(2{W=4lhxu555Qw0Y^gXKrP82`(*awJ!&?aDr%b^H4jg8YQ^nJGrMN$ zcFL%J9>W5MlCA2bfbhhpj`!?OG1!0|^{lr8CBI^y@claSuQ$kYpE=0Hup}KlZzm!m zQTGYZC@LjaW&Mh)24h%U%_$zlGKjfzQrfK~W3Z(e2|hkuG_*=%;@;ld7WUw{3vs~44+;lLJ0k6D9Nu5|b@j|tacdtRdBdEb?@%A#<7!%;U z&sJQ>F8Z5)0qfoIb?$7(y9w|* z)QlII|9I%({&#b!GcNzX2!$#cssT4whV~0nbQhm(wX#2a;uOL@cJ7}d zm6sDwV?#Nm4n9bKmW*JrGo)He83{90L!6Tm`fY^p1W~QUhf`^Rt!2Uf4IPNBU=nE@y{P;^9YX zY2q31$NV36?t~~Iwx$hdCU0o}Y`F3%QmNxOd!z{d(ut1-$IhrCA05o7!sWH5hU?w2 znJG-rAqN@62$7TVy?ifp!l}*#J94)@ww=HTcQ zQQx5(+EC0%KV~ZX?GbIHL!aCl?jS{2h38XJ7(+6yB^+t$;y3(pzy})%@t*P*;y<8F zI2j;BBMH%mvfV_$R_~P?;kVCJoph<)_)*}JDdPD*BXrhEyEaYchryH{cgzka=6AA- zU%KtL&p$8Z3a^Zme@6K8FeYCy4pL!28MK|Y3&DQBWz+hcM;-6DMkRENFbn+CzB+@k z8NFZ0-D6v2kh4h&AhdCFk!EnD8PT`sD>|<>obPW;;p%em7g5_6OMg1c&{yFrFa!Zi zT35@g4W0tNJ7jc`F5Vqk$!%ZQuULvNUx%&T8H+zH!sYEf46+`QmfP7U6(SKCbHVD# zd^n3!*hv$P*mUUr(-bj|&eCAw;lMVkf0EL8KMR6YwSNi8e)i3Z9E2(s&Ryu)5Ln$+ z3`zkVeT?+ap1{x)9(kW`{7sNX3hkWA?dT7WVvIYtardy0HEhdV4k#?m3Q^m5FG|w} ztr}=bynQe+|L`mu=0vU*h}p~WnTpwwb~~&pTxgOd1h9z-|6FQpK{IV3g}3LpTv2EW zE{~h~kKcpBBKiNa=(&MfBVqfW4$VPGkv;~TX!6l{Qo4!RatFU?Y@l>!9!MTS&4ZC~ z@ZXN*?t=umYQjFAB{1#HtIO>e)=c|uKVid}a*5>}yrsM0S?0cD7M`{c=DOBpo1io* zvG3w;J8+mSpcAZ&@;}kjYt;NfHg_ARWI*At12E_Qt>lQ&%au0NRZZP}rgThwNr=bL z2RQR?g`=fgbFUfs@oEzcetS701@cPbF>hflEh7)Cm<=X&C{0=lOE#x`qjcK`v*=;0oWqa*6q9zC>^qfUjpw&1-r9k+7RcR3#akyhq^ICbV{h(8w26FJ;+2!Hq1{+>lI#!FQZ@nVafPG%| zARzcxBzDrfm~3t>^)oUsq?wOSu9UrC;ree*A^8g&-0!=?;;lUP1X*dG21Lv10%`F; z+2iv7-anx$dJT%}Lp#rJ8O$DMlpkfh-23dw=5EL3kL#&LQ2T{l&D%u^OAEe!;wp;5;I z4HJbY$Jbi2g$&P{At%kEPtyPN#tCW%K%Ya7f$lC3Gfo7^rkaDk_2wJ?JCdqzIQg$Phq|Hh##1K6!=~oZ`pc8{+ zbT5>Yj3Flq&bXnqhVFzr4-#B zROGH)fYfuZ;NbC(gJypqv9JzDk5SUghQR4Iqrj_>m8Foa5O zrE#=;U92;*)&V!>Hlwd%jhk6`W7Y3KJ+)`}ZPyud=&W?x*{S7XG%gc}QHT+lE8GkQ zh(Ty}InRh4u^qfLelhb#$M6a2xENLUg`?{#6_IqBE1Zc6w*s(Bhv_#0$Iyt^9za`U zh1W)no`;2-n5`H?(V@P|TX^{^%A$nW$l(jTr=wfS#m;@lSfiUN)}%sTobQlajQ8=s z9(Q(#ZhpBmlC{Leu>M=qT3BWLMIl#-%b!)MM^Vjq!9{3w3gjzwa6s9}tD9-HwDjFB zw+0$FR%kBS$ym)y1vq$$KdLvnd{zF>b+iQs88XwwZvVE2>kP}KKOPy<@lOI*tb3o- zU#pgHnw{LHfegt?`5as8-DL?}3>>b9Eq7O>n6}+p!#B~fT3IYsIfhfUXkvaG%Crlj zI5@ire_wTFN*=qX=wrPkBt0aLZEa$g6brrGoh%WT3xlYyRXdeYX|l`qb4clPGp3(> zzJ1h1AP6?W=-3&#?$dCITBtLL&gI$q`Tp1>fb1TCRXQ8Kc6Ne33&=3*GG5mTn@v-&(%aERivRhx z5JT{8O2JG}?5M+%jeY(eoP&Z6pC6bmD73)OE|>p@VV9J)fEY=Zlxl! z7CZfbU5#y31B%QG(2f=(R1~bEATw%xfr)4Pp-1+IOKzEp2JaDcJJ%L2KC`rHi0~n4 zH{JW$qn;oXzWb+ktYP`i{j+l_(xg8HyeVwC_eHc2Y6mR0(S-L$)d*4@Es0iQ2yqxz zqp)pes~zT>zya$fy=4(Es7QiP7YX2cc=)%<$yO8Q<-D7OKX1Q2jM;B%FyMX|G$>TP zBe;DI_^4rb8uK!N2j0Iz{O-%(c(yBk_C}q7#h`al2^ISt=+jR67O%M*bfl3Q5b&&& z?q*|GUvbqK01<&m0tc%bCttun}>CExHsuw3D;2<$pclHJ3Q>5OBhq(b zJHKJWSm?jkR`QXwciWxzl9s~q4DKA8MO4y~V!(UvH`r@S!2y7q;^mzqpkd~?#N{zf zz9vUW-BoLlZkaF5mDx!gyUB6jP~o+&3Fkh*zpT=zYQ#KeMUevGCr!^!fP^{*_mSJa zl`(8WNSW$q`9k)#B5F@@GTLXViU;eWwbgax`wPu~dTY@x&D;;@-hd8v7V$Quh>Bjh zSW7=Ve$R5=frs+7)xL(+AA|`Eh@)YigI4Os`-iC&~n|G-tA%y$1aG$Vm%aoi7d+@=CPqKdtz zMMz?17YKZ6ImdL-GV)|=)*qxVGmBjk+sQaRTXT74X)#md?sEDAKps?m%>%yEs1MoK zJK-YAI1(`#gASPKM)M%bB(^YAT@^|zcos>KR)hrljGvGw-25m4vHQ51>qUWFOQ0}dyaXdt+RYn=se=Ede#+^B zPX>IGC&{2x?)#Ygl)?D60_qg+X`~1`|l-shQPjq z=VHr-xM6vP-J=j{6k+IdM87!ndAxbKBu700Th+9EF~NT0TD8w2stVyWQatCekv(TK z*)`aC(AU|qtQ8iT!gF=hWi*^t!ab_iRz@Mf!W-g&eO*FDQ9twfbKG|HQ*JBePKT{= zLQoMWOPHk8$smtMCg2=oF;ue;aAF%C{4@rsPL_;I;M}RO*|_#f4o*HxrRdaWGXHT* zXic}+aUsi%lCQQB^!~aPNK2q=NAP8 znqN)}bIL|<$@NG+iHj7J^6eln5YDkmnovpzAAMNiR&sMUV@pmKcVL5{*Y!BUJfoS@G^vgRMTvitbU=uL{H=3fBuw-FY8|Oi1SuWIx?^`Y_OT5Pi@kOqO zLEGoC;Z0o_JXudIa@s89XZjue90pd6y`Wq_CqLjk5Z~9HM?>rr+~01 zYgs-{$bW9d59Q1NUCX}xYdw05$BLly#GRJXK3cp^8x&#&p?q@^d+u=?_MuYxeQ>^@ zc-+ctFd1P6DGyAh*A58x;Sb#1nM?>{#GS#u#h4d@?J+_g*d;jb_XZ6`%0~+kPfU zQsPhUq!m>@PE?xD*$&v3VGnvII6q1GC`I|@XDVhM!=jxnZ&bZtS&mj^kCWOsq5>V_ z{RguiDFS?ix+C8<^j$>Zq4pg}mBqW0pLl&z-Pt(@Ln+#dD?0A{DOlNWnz7?bhh}96 zVYf6hM^!^gQN}(`-H&74PcP)=?0sxn{b*@}FjRX`PRPMrY>?H`TY|ks;-RXU{^f0h zMnD-vMw-hW3%Kq0fACk2Y8OoIZoV{+S9DzVD9MId(bA0%H?Tri>K5=o^&3a~BSSX% zR=&@mHkOK%V~8Z~19&@{@~y$AJ;R`8*n~9BeJhw-T_E@kM7L!OvHuOJcmh~R*kCMN zKh(9hg0JW{UAU5G;3h@sG}M3-e5-L({{b0!lAXgE({7A7b5+J*7C0UTHD41Owd;!x zIS)y*Zt3owW}(WfjGrA+Qb*FLs>dVo$iRxRpF6o>`>vXW?7PCyL=?ycP0UL2CUIps*A_ zmu>0yiw;qC9y2bzDw?DzEc7amYt~QiWg9^{h-VJZEYI=zi}%t-0pFH+r5me8OhVNp z?Np_qWqcvqM^}{nYh{;$uM(MC`yGin7%QgbJ@=2}P~lK?WPa$3|F2Dhg&zZ$(aglo zIxcksWs-+z^RmkUX~pQ4id?_HL4|@y=0O^a8vLIntl6B;^|7y~Lv3Wc-#-2L-#SYq zrR57>$Rcc8J{2M}x2H_YU}Cb~5c(^r2vYxQ>Ogu@6Sa$)G1@RN<^K|M;*`wVTePH; zBHmABzi6OXW|OyhJeK*&Y4Fn#Is5T0+d>t-luI(nruV~VtBo8O%$C|}Wv)w(kmLu0 zlJabw2%X0IdZb*<;m_QTrt`}b{tMEb3G3xHDUxF>&?2keX8BeWSmD-O=%{#m?WwsO zGOF&SY{b-k`CBFnpArn3)gx}!h3G;cDv9h!$;*{v35WY@ylqsM1Gkfi(X~=O-w{vy z;;h=f82EICp;_x^W(eKCarn^eojLxc-P_L_xZS`9 z=TX-CnfD?;1_5-;ugsL&?~cqB`dHoorJ@<531o2JZwxSQ9v$riwtRi$xDq?=Hdd3w zcYJ&74MP+5CLp@G{*mvY6A(;{@?g!~4hM5k`y(ya9K*!nD6D@|q0;l%!VMxZTAf?p zOm5{)9O^ugwkeW->J;Q43DVXQFx=1-cx)uLEgQHeJM6QPWZmv}s5mhPjIcljndRQ_ zQGnt^kk@;5 z{w%24T%qx8h$r}V8wt1ODH5zQd_r@R?fSic&(sn zIo%TBaX$c%By(JbJ1#S65DcsiJm07RU#S6KjPA*n4-gd{OU}R9j%|uU9r(_FFT4ON zA`4C#`8gJWSSv)l+TR~GsM%3H>mz!fs-Eg+V1#D4JH2V?wmvPwdsQi^UjQJP(>cK0 za%@=dFqn*T6zM)W{~I_a^i&D{2WY3N{Q(l|V@VWJ#OPydstLNsu5JX|jQ~_d z(7{IvR`_ZtS2oX4ZnIEWBUt6hZFpX2Q{A!s7OQ_o^_|RL#}!Tcg$BzEj`?ybn1PYa zv9%9e-0d~9D&`d#;`mT5V(4}c4Yk2Ynl}1}9lM<9Ci2=lwMIvx0EhCo<#q~o=vznx zUlGim8}-YNOtWP-)*C#@fhFL zkOSg!8nfnf9R>mju|1YLhu}8tjt@0tbNTbi-H>v}?2>NB7$HfR82MwX28hoMkwUiZ z@5^m4rA$T@pIk0C-}~Il>QuH|HQ1Ls8!33>6+1e)*W|4|CG)A4J|J;zCIM*5%GuF9 zrXM?}3;01tAgROej63JlMz!+m&(EsI59Wn7=Xv4U(f(U-t?vsnk^VVtGiOi*)8|d8 zZvwk;Y6$O;UL#D`p2pK##m_selkg(Fp5c`lT){PG}%-zDpol%^xa{St%=2NrkYTTb$=QtYwYNNJBpKdUvJ^JWMf+Xa}t zr<*Enbm8s$Q0Ht$FhsY@*Ja!AlD^HXi_2S&L;s*on=$&vHr{U~GC*NDyQ=Z-4;F?IrF)H+k-tNjH9}9eV8!T{2DEvaEe5U#rm_d4tpBnZRst2K znvQjK%TYrw1(%kV9!}sIhao2G^(zO5=G;j9W#o|?gIa;A>91$H7E=~%esAg5P#HfY z>g)Xv(vP0g(pi2zoOrdUmEwJ$zcAy;E9@O7-{EbyoXq@HL|UT?4*Y*j}Nb>aQRoL)Ck!&4_gNQ zIwmx3e(C}%-#UOzaa^?BXpQDYO9s)rWv_^Ixof2)GedDlQMO5;69=CwPgr>J)ZgPp z-zx9?L3&tsti~l8P7DE z(OP?Wo`RPCF?p*#5tN}8R_|Ri$@ne9=9C6>QDye~>vvo~1nMYNkcmi5YB6{6RxEwr z#4iw?*(fNCQe{UgEZ;Rs$ozp_r|~=nfEOz>tPk)}f#2ZXnX1uIgH)|00mYBJ^_f>n zk?QOQz0bSk3N%;NZ~_5X+wN_8^iQO)>nrab#U+lNJS&4+uE(?}8HN6*aL7ZQ=?&Hw zE#GQb$RKfFCcj8$vQF;9eqd-qOaCI%^;_iwO6u6+!65m93&r_rdnkyZ45~JN{n1ZD z$jmpgIs4Ku0f&?$w&5IJHouj*B!kAMaZtyDRbHZv%(%6IF$;I!>dvRY<=cDp4ok

    `Q2Sl8M)!OjIuDTa1I;4y_o5(yp*{B}o6KaO26=~wtW zJ$X|jUc9B@mJTzA#LV>c7nyw~!AphQv6D$n0#Q$E-xTa6+tA5bfc4k!iD-K`_;WHk zS5W7Z*;EjOj#qgTff>5(Fki_XeRRH|;LoP*Nx25t1n@P=as~?eCs|yeT5km@* z_H>&E{2*wX$Aj-82%^c;GY;um`F>mOD3)>1r*5R2^tU{Y%YUO{n3fsE3G(gtw$A)5 zQGOr|Qn2|K9fk+^fTld>-EBEF(>*#LGLXf8JsqhOl?sooFh%IFv9E<>Hgcq(CP6t< zUXa~fFx)nIDE5I-)nZ_r9}s(6o6exGTqFiCOo@>bQ6~i zMvceC@>(hH|Jq*tFcU$sG5-CH?K6WJSxUy`um!49aQLXB5K{iliCXN4=@^&1SEnh9 zg~zP4{r%(31tx#k8`V8?hzY@!|JIkrv+pM=K$+T1m^@0%bLNKrCc zjbFT_e~?%wB8+tEvsW5}J&q&$a!vD}-xuqLnWmt`-jIt~8N zP>)6Mh4wIPeC-aRzRRn2pvYlaX&QckiSK;1nAHi3Qa9J{3n99Ur|VF9f83Sd<6aL2nV zyg!Lb8bzt5fIUTYIV zu$}0`?T?uV*N03Ag~+j!oo&SuPs{a4jT?Td=ik2n=m(l#{xhx=)-DrHPwvhhACxNm zu(p*u%F$ObD^~-*rGrx1c>aIvy=PRDYuhbK4@ei4o`5K*NbfB)1zpke(tRA>{Ir)zP;bG)_Z=OGqxi?{FA{L&vR$q z^O|#B*YybO!6>+prM2{0o+bybSQJzd7^%hEe5tKERG*SMJ!H#TN=Jn!FLlB$72*Ct z2&(rO>ht^|T&9MpXkZ0jDzHDT=w!2;2w||o7{fgX9Pr*+B~33Awta!`3L} zb==Unf<{!S*mA|!tXQLKPKBdtqy4zchG<*uvNe%mq)q>R!RCV=;Ww1uS?J1teT!zL z4rsauIXPJwBriRD}y8Kw>_16eUN9u*uT~o{^SVq;amvEzqQ&I#^ zuXBYC*4+K$>}0cu(*@T^@Cs(>nsh!&+~lF8wmq|F+5{#LqGE`Ha3#lMV`B$UM;)k` zDKM11XF*US`X+dP(QV2D025^!h~GUjKU_buVY(&0+d1QFEFw}*m|M0D-nGqJCC=W_ z+yrAT)>e$T7CGfY>X$*OG^Uy7N-SMFnxfPUilaSY?9^kD-pVO5^NEA=dP8 zznIPz=*zcJ<|mG*Ou1npFMn$jvog&%dcTQ|iYQ%VG{k zWI4AOvoJVbfU^{S(n{h>-5|My)`Y>O;~T}3Ml3GPqi?{t7grm1+9Hdlv#Uff5}U`O z=p-yQ$HjLpC&MAp1$o2&^ zZ4d=7uu?_w+{KAP7N(*_itqC+FcFRAeq?^jzYe7S4BrWtvi>M!5s)5fcRf^1&N z&#EIujTwJIm6`c4`$7_{3OJv6u|AWb$v_jJ-}kYqg0k66IbX8Y5>}-kuMTyU8yDx= zqBpNK-5CP;3gy%Zdydw0MSE&SNgE~9Q%b_}k4yW#6@0AYY|DvAZAM+#L4w6wJEU)` zkJ5ZKXG5fumPnSESP8F27HynJVneJ&K_vrH4XvhYo@G+}?W(S4e_Cwu=`X@q&rof4 zb&LYv5ebzNttWOndWf2P-gzt<(noJSNNzSL&8jjVKf^ha`7{J-xsQv-Vl}~bM*(5Q zgZdH@cKOy}4QQQ%T4cuIVDa`@scN@=%}D5c{UKp1Hln`f9FL+w`zgHrITd*h6+M{K z8O3w1n5x#mRqrx&A`8>1WVm5SV<)6`BYA!D+8?7+P*jm=wRlxWgQ_Jd^}L21X|{k3 z@y+}t-u)FX`M<&9bs@6Oe3P*|9z_?VfvMODImhFA(4>bfsYKIII{@G};MOzcDfEn> z4!kJ!U?43C4E?A}%AZVL&Q-&P+;EqCKCs)-*%ztFgr2`YILPB~GnT9yNB2~B5DGov z@m;>Nbx5d-6^lXXjzIbd+mrQhJmoZD6u-YWsy2pmU!UddlEr<;nG{q?Bbt1UI~Fg> zNG4%hJ1AG8BRUbG+jo7!gww0j+It5neMu8KQ0dT=pumJ|+Wt|&d@DW#$29&UB&+mf zh1WXg4)Q2BESM&xrsF|0Ha4Q@1i$3J6{W?AoQ;BV;}Z6;v$qc(omk}8o$PLmi};R_ zYRPoiLApQpX3I@|A|nq^4=FK=UV(91V?{Jie?-tC=zDGP?0p*0lPeG1Po$XBA zuTfKor!T9Dp+-8%-hBq>B6TZ5g`dSc2G>8sXKa1Rdo`MZe_6S?|LLT6Jy+RYeX~=O{?%a8hm5QZVh|3F_Xb7yYkA5XP(3h{0Zhqh z`a^-n>Q;($pI`Bh4DFv&6BEcvQDpU)t$^`cEn)BJj;uGgilV6UT3V*u+PTD0wO@@Q zVLRPI@FyB9^_U>~m_x$ooz@{n|043^si-6P=7iS_ZFSI4n>lP0Y_dx#E!Y1bbg-Hu z*tzMpys*k$BeRu5zkAn4?7E@F^=A=kF;3lw^i{6w{wDYV%KO)pW|+y~GA=g4P~ z_4pjr?*)6*WR2Ha#44wOnV!B%p@`y4?6{7~l}!bM@Df{6wTzIG78+{IYQB?Et@~w4 z>baDYb>@!PAHNWp&;BNk08lCUMt!N+*{`_A@8K_3GPU#2``9M`^RWKnAv;K>zl!ca z)9O2t94eu_>hrK}l8D~6Xx6JL1e=QSp^gOpoGdOo^t}EaJ=}deuk%-Acm9W{Jh=Sw z%P1ij_w7LZ@`61or_+ekT3E64hQ&a1ty09I?~wL;ubN1o|Mq0z7%V21u) zn(?~Y+>^&^BLRW9?ujF1yvJG}ke!EB)6*%ALmc<5%4+IxVOnhIPNjyR#lYL@j9jtdoNIV(EU9AQZ3isS{l71HPzv86- z>E!<9D|mAubbd%^u8TQ7`+v4>y0yfdYk2e@pgEPJVSjeT&yW`g}5<5r0;- zB9eu5^|;xnc;qf4J9327LY%=5bD)79O?TbE7m5JT{@KOFXIqdJ^gDH{h3y9eRJy#H z#*mv~JPVorKJDyH%oiHMGHFrcuiE{y+P8l>A{V7GwbF~{C_CCyb`4{B)L|#< zH-Yv(n4hau!{jj{tPYzaK>5E&;MWMngU1l1Gwbl@xp-O2zrrg{Z)be`&M+OV?xLHgEj5 znuS{aCAXUy-){5c=ojLuVh_ji-ba3lOucLp9H$Z)zy~^Wcqg`mxRY`Rc*F@NQEN8*3}wqX*(tl_0aS=-to0+SP;OOla2_y&{gI4nVDP^Sm!wLv!K!`#ka0-QaF zLc)ZCh`|)A&)NS02EQO;F#dabvDc&msg+lGeI@*%QyvefAsy67)dbZ(Lh|&VshCT6 z{HQbnHqrDds43qt(>qE{d@JAAiZw3)S;pu6=V;?aoOns)hPJx}1Y|hP(pw}#AHwBE zV(eZX;I`Qjx)LIs?0#ct%{&w;b9XG8d=_#Mjxk5c9g6eI$F1NapxDxgJlIZefMdM+ zC}*M^a(z}EEzZcDwf)oXh2}9tp#3tk>h3X~)-$nVMk33s{NMmf_QlFi$}t?aKD&nq zY$R6{dE?)fI%b7}-q@_cEm6Kp%7dT8OrsWh4kYS>zCEi`o@+@OX_uiAPd%KY2p0ev z^Yrw%$67^+{~&_^j81W}(hP0j+7DnD;6&9X1(2;Yjf%{LzUJ_huo3ZrZGuJWAK(KE z5g(Sk4$lQY#sUJ%n-c@NIs~5&M@-Z{W!;W?$(9{6?ei2a)0}gjtb#^ zMW6PKOYpQK7i-DtUy_S@%8>%Flxobll(Y|LFq1cve9M>LvG~w9ci%-9P8J39!ApyR zMHWtJT`f$DenaHmLOu(v5{54+N*k5Bw&FEl`#Xp&F&NI-U>w^&$cV7+(LSDA^!jn= z>c-z$s~4)Lqswvy9j_w3*Gxhc#N#w0Ms*2&R*^K^7P(Ltj2=VSdK8X|dW(F=_od@G zv#L*&HnNRlHH*2jmI16k!o@4q5PY;pJ1`XCBSxgnr;D+pw+d5T=Trr6e9ZL0>14R7 z+#L8VT=;_NGsyM!{`M`eGXwX$So5y0VvYO4_Zh)cs!&Rvc+U5fA(`=iiM0O`<0vU7 zUUqgOJ=G751yx2zpWK81{#e=D3226%0Jk0zyy%a(r6GCdP@p3Wo&WJB+M@1O)5r8h z{Euqa*^89aAowQ7tS_t5EA2NnZ<~0hhs^^$j~tZnS^s7{81BCzM5RJyr4E&z_pK?X zL8Uuw3~XR(KUnK-#Ok7i!*x9;?=%GYE^{Nlg)-H%;ev+Wfbc z14t_*;2w|0@M}+PO+DGy`hd*W&MLpaoi4UIs#NGjJeFIeo(rFQo= zjS}WBsZUl0o zFf!I3CrPXs9OQfajHnpZU_X*hOl1zOwFdJ7`ZXr+r7WgkSoeb}(Ki;^vRYrpt1cGq z)r8sf274*y`AM`u3L$wGPx@@b&=gF!phpjw@U#{w^`%3sNkD?C8PzE7jyYD#~T9DWiTswG$F_U+^H?U@H;VIt=lZB#e#zDe&>J8@ zI^@Cb&#IokSWfgeR)3O@>G@jnlA#QjE`{IzF6r0v?(WEK>Mdcjnj56ecZQq|B-k_G zlI?t7Ieh2G@|$sWpbc%<@_2K?)X}3mpx!OM$;ha_ex|F;R>|>R@Ur-u{;-nw)j?js zeVkLTQ%1)h;6_I=7RMYqpvPz|r_AE$gXhm+S5MO)QM9dD5focboaxML%z0j}B$W9b z#M+b4=8T6$a+#Q$vVQh!vLEfBwWCWOeIn3^)^rY4fn|x^a0J8R6XhIa;O@_5&AIm4 z9>x@Nr3Bc-#EJb<_K(L#{n{$7Y|SH?{RHCvN>S8&T(>X4=<@jPlK=+0+?dE1|CNR5 z&&(|7Xbu!q0gI~Cl7s%eDhD7G0D}&4BxgPs zD=jllLoIS1BB#yJ`Hs&KlnLmKbq6dWnzP4 zLToq3_IyL3=qo$0xlpn0;1MbXv?Olp4iX<@QNW)U)on7OqjbburV>V2?T^-^=d^-M zM+&W#kGPaB@?G#e`wqq$qkDmVpv&ia7Sv?p^``CGhXk5)LA)Coj1#ldCu%JzLsq{z zzIC+r=hcZ}XOpE=$M!t-tdV=+aqv>FUU`2rFH;e*gcjQgVCzp*d&JH?)i@t|z;mD9 zORaFm^8M$CD~j36mOi$&vXnWFXai4>sdH9pqn0DJ3K2UMW*|x&42L)VfyA+(4kV5) zAMIYui^?Jkn3HLh9w0t>u!7>^N_{59W6O$bbcR1ugKA6YFVPhW@tZ=+;N{gmb z1j^D!i;@%5Dq5R3D80%|fa=fyD)5t}*~^Wg0TFp7BsH9*C2HyBk0Rs2WORG6$i?*s zC~vfzvmzlTW4vV~N-SZP1wKFF#bLp{*s)yd2J4R1Z&^&-U$EDms`1*{+iVK)<hX<@L#(GpA#>^vli(d z<&rvpevE>1oc{FBD#gJ7h~9a;q96K0GA}Ks8u;&+3;yxs`A;E!h)V$MNO}y{huHsRwWMeZV`+L3>=b9$GG6t{8ID?CKU+38v^2iufDe8PniW%Jt znzktGdHWE|E6 zLjwnzvd3%sjlq-53Ig@o*?cT%iRE-5GObYG=O5;pVy@FDB7cP__`AW3=y zkN2J2GEucjP5K(sYYM{NI}zzf#}{X|gtU_+twg`h=Ax_|7m99k6ONM$)o}B5z}H6t zB@p)#;g5UPHMYVVU~RWKW|~;Jya#WbZSBzJ8p(-9Ga{bR_ zH5o&+dNrrUS2>~bXQc_awy+7p!3JVCsB|T8WxVR(Vx+f}qx8XJXC!ikyk7n{jna_{ z4z0=948rf!`;RN~0ABALo;yFG`Tm!V@|6#5G@yd3)feDdH^_e)p25L*lNvKn^@6!_ zbBf!n&L0mqN}&iXyFnx%&%Lex0Rj2)Cjn_tTS5f>hqcXV5K{7xk{ahwSONNWnnUFB zpn9exV$g$K7tS5sE|((3C14Aggltt?CsI3^OCj7py50BzKQ2g5x9^~^cPz~r`4AZ! z6<0m6m5dpL%t<5}wMe5`r4R1um~xiRs2_7+ySUUwkgh~GU~D$Zm&qNIa;JC#boKPg z;|33fc0CIThDIjC5;DxVOVrAe7jC9a#zYI>9e>A41&^h#y|Cz99;qFv>q|nD(v8w~ z0lwHum>9Cd%TKKIW@MZ{`mN@)7xN%%8n#pnj<^-DbTE{(_GOEN({lzvE9YIe)o(kw zEdGIHwiB#Kgll3+UbOszw76dt&wlx2EUDMoZvFTDT#`_~^TOq1;qv<-*5MoSG_&7d z3ocwG+S^1f4IJ%%z@^=ZTzcV~@RF0kh>*%hvas0L+oWo-ax_-26Pdsb&6MN6onmBU zZ=T2f$};tt(Bn&Yh>cQUW5;Lje2(hT#V3i>+V$mi)kAHm+d~3*9M;ZpQcBWeiHX|0 zq>8wKo5SsE8x`tC7EptPmj!qvNp||w zh+v{-soVb#z~mkgOy03BrVBYZoD~2)6)NVE)q|Ht6+VnGu_HJT+n)kb{6@z3!fw6Ir zRS&eziH2eN&{yu30nh!Nu;TVFY@QiCC-2~CxKyl*;(S48on09GfRd6CR(G4SAnc$8&!QwLA|~VH^{f%RrelFQ zthD~8pkbL+9G6-Y8Kni!*leO0ec&)Pvu28i$d{UfktBay2agSt66G1trCTB3GFgK+ z4c=D8zIdVkrjR(jC~ACXX^!h>;JOa6FUuJ!m&pm{J>thEY78oz~8)!m_-hhOLK zpOSq)hRoHZbL3qdtun{(wOn8a?k3oIn+(lbhq)JSv3Za+>-#uQ`^8z4ajBn!>WQ_c zl^q+ICkL#OB403j`|N3)gK5z+*?;>#2POca_1yMz&i|?Q@n5hKYO=0pM4=V?IlVy& zSjc}ijBnBc?>OxL(l36?-26ZK#kZ3V2brX0WTuHBd;oUoc8NQkrP5KUnN+hMb-xQF z)g;-W7;Ne*<(DyOnWm1oWo&d@^#)p|!Q^m?3f3PazRtVTn!=K6QC$Db3W}}MM z0l*TkwOtSGi8Bl@^r5Rl<5M4{(ss}BfZ#{1x)@m=&-!pDP@URw1|hCr&oC94H(dwF z{qI#l)JdDsPn^7*%Iiyq&oBd~&%!uHRQ^;#o380onDJ^B!)Yr^m-| z?_LGxkY$3p)AqME(yh*Y4Gmp&$WmaFigunHrUM_vP}yCPZ55dl}WC&B#V}-JWnHq($<;=(ApAFF@x#GYI#8NUau(xaVii$DF z+8GjqS9%fD4r>NTy+B|bs8Q%B8Rtd;GkM~XjZ(rdt&5%+AzNA?b(c#*dXc?G_nCJb z4ZSA+NSEO7Pqa0;@8a7oiM`b7`j|GZ)j)YoO}N|yp)E;T$`Lzz)uY=#c6Jo6kcE%1 z@RdZ2l(g}kX5bO|=Ja`pJvzp5c%*cZt+cST=0yM;r6oaS!uLZ`)VsOM?j~+hPF8cS zH8mD}{ba|7v>s_6L19xAq~SdF?UYtAbjp&{+)EwL`zT+P*ZO~IFp-E(c41Q$)fRdagvcSvrvP)0wK*CXzlaqCIo?J&c`5dnn z$hqmJJPm(6B)pou7;CA_+eabK z=}bH+lc3NL9vL`-!v;kcxUn*%9?8gYGQ%e`V8O2Vut9hc*h2Bh_YgxBdYs5hs!o8`k-BVcRu-@DsBNET4M8C=Ea)J#q$26yho{ zve)2z{4~nHk~46rErntD{hhSUg4wPiSyEEzU;Xh)iaV``N6uv*Zl4G=a99`A z@6Ro|BgPLy`%IgA(blmjaK&A7K(As#5KFXxCe~GN3mWG*99W*DzS{L zuqOXMS`mcQEOkOjTc1Oueb2$@ZUTGY3CTiM#6_TtL^Nm3{B7XiDX}3MGo8X6a%R25 z!-nA14FI+JAqHc$@k)m03!kL9kwDx1hSNnA)*XS>)93-&4y5#Wi3w#hoFz zNi3J$c99+EM7Xo@EmFvZ1J3X&QF0QMGFXxub^Tr=tVYu2z?KdLBq2WA7?BPj#_>kQ zD0lzfR{>*yIX&9&wn)#IzERn^CawVgz#j;a3(LDUbiQM2x({FtUzKplGwtuEqSC-L z0y9~$c{wUkRX4ufEvM!Dc631Y<0Z6FJE2bG2=A7j?|@>6l~cN*7)_GQCvidSk|z$~ z7$~}@_FJF@g2YIST*$g`O)q3?`ZLLFL{7iu+1|J>ITxduWH&-CYezF)xdBum1%r@A zko6dttR2tIH!7B{Jz}A_5K63LLjA4(0cd<7)-jLj#Fre*F7Ol#(@=A+trap^6{7#l zw&%e_odFMV1gt*(OwVcI*_;ybhH5GhZ+D$-rle(Ze)H=8v+?$k_x~aGjWvFLpjjJG z`@REvIeFyfr>ErT+FFI7$jrClvpA5+0Q>MD7Ll}S0HA5f;8y=Y?7K=7`|g>)@%Z|& zuy76JJ0q?s8gmyGyWF2`dWb&u@}q_1x7f@0k9XZ(0QoO_zW^eLtYT(ezIfP1 z{+3g%SU^Ur58cn=xKWaGRbtWc=w8ax=OXI>s1=SZA?)K)yaH6-MHT^`TzrGWVh)kX zz-HX-7?7xU7`WgEvrw3q94UW*5dfRX9S(teeUs`2+ZpE1)3aMI>#j+H`dCN#k4*=v95kRhrbXA-D#IKon**BqGf#VfY zVje+#j@S20^Xm79g7U^f@RVLbFLAZY*Nqy+pxHXSWHkN!x<cw^PxcFnyS{a|hGIu<~5DTHoMooz`-uP9$8IS)qMT8t;A15uS zluXMZ2DbKr5CBlaQS_Hex)<=QG}U4Qno-sATgcL!TGHH(K=v%Z%_y<@7!+e*3k&0h zX&MrPX(ue3f20Bl1&oaIly9cY+;w^Z*nQro0=)N|NL|JZef8R?x30oRKY;=rlfyLY z3^;-mXkJxI*=Hx-krEUNIe*J@{PV?Ft`Gs`hs9fu(#Ewy&?n0Hxq>Ww2n;m*FXPsk z|38Xbdw~{`CD{Q>o}byX6ydW>;d4WlU(YanrmzB#oe>GrWwQI0KIL_FW;+?H?YV+R zMRda3E=G=_$PIuiV1!YZ;=s8$HAvgAm>#T8JI7Q@c_cR?a6fek1re8#9`Dxho2i&>s80qSpT_ zYW+WqT7#WyZ&QMpiB~4`M}f!xKw=dnO02_z9`(agL{S7{fGja@gWy2v_z8kL$6cUv zhRMF)J=Fx;M0bA~=-3Hl;kqFC1nQcz2b~FzwcuXUGkgNUsp(D~-|YRt=BF@WztQc1 zgr7zzbEtF-_EBFlfuNRDZPV*hy!jBn;9sf=@=tZ8C86nqgIl-hFhi~(Nva9h0k7E6 zWeB%p?DQt-uY}v0n$qiZrc8Bd9#-G=d?vaMO4AIJpq8X6qBHE8mN>zNkw*nw;}25S zZbI&XW=3hWnkH6H^O$cHgCo&f7Wx}lFm8AFB5%Sq@iyvy zy=RS|AZ@d_usXo5b#9FQ0(T>S1Vlj!<}yMz?QGUcXTmTwG*<2=C6kBe&)ldPb=(C(QOzPPxQ8EsU-;)?M6r2sE>xUQ zL|$*hwT;Hd#+1saLgL8IP zn#y$hBbKcJa?{WcUyLO+Ce|53Qt;(*`mHQH|%1lWWV?wI-K;O5KZE{i` zpA7~g+y<<-oQ3K0v<|6Si}307e{)czvQmR{jgu&-x*n)1kcI+Xk?{#7oni-aF$gKb z?*9lR_s)W}Br&b9oo~lvANT`~^ymsuLNBLAY5!2ZBTA>F_)LsGjd$Q+iYp+{PFE2h zFJ_Ba9dcb|3HbPRpf3z(mWag;w0p)u>pMO2Hfd6-7du*;GYMrjbdF2>8QmM%5tYc3C;9eAgu-hoAHP54n9^-j)@ppnnpd9$It7-G>8O4j zWE_qp3pWhcW7NrG3jOwY@tsp~LBVjt&`2jlh>v5`zRJ&TCxxTVI2KH1%ei`i$6`#4 z%>DC1imr~cbd7A3Em;N9y@-AA5`JYt0-gETTv~j)JQk$`gDGuPs6v_xPM6Pj${ zwNLPP45dxWw*4rz@@UIu`#}iA*ZeyEg;YfgRO#82*GeDlEnqtyu{XfF(txgV?8_Vw z+!`fPi~?e{dR&3(#HN{Q4e(5YMptD4~{3e3zijD`;8X6K<=Ki*x{ zxDr3sKqr5(7{nmEK+o_e`>eEQw~*5N)2&b3%j~*yg6MSN;vVf^9UOm4pYW{nct$>& z0P;=wf7#g%{PftFT6c2esB#*ciJxR?Bh>L6a69Oq@d%iekm|AG(1)gL--+c1_afYzrfM) z?g7>{K?_Cd+ysxr&?RrZNXKE?=P=}#TOX%GIB)*GNpcIV*T73S2+<8AIj1a%c-iPu z@dtgHR($^+nY}G?@q78&2xVW@viNWob|n^cHqGE|=={OCChZFp-=%C~YtDkN3{bit zO+W6=$8ySKy0pKl!dRNSe(g1%u}M ze`{3XYo!M3u*}2KCV!tZWRzeGKtWMKJ^5c`czuQZ(& zde?HOaqJJ_7WLBvof)K%^Yaf96@+sj(_BvIcqQ+aryw6ms4}7F#4p<|^KD{AJX3dy z=%C^7cOu8t&bw{NA9VM!V{6`v_eivhY#%$uKJONTKflZy)@`!s1?fybUG>%3c^t|3 zkWr_hKeLZ2mWC%@kx<67%33cTh{zZ5Kl<37eB*ek{)0X@I)tto?idiBB-vonzFNAA44*5&4NM40WHh{H;TNG6{)g>jI;@CacS}L(!_1w9t~7u!?iGE8 z4)#Nd=`POF`{PVB16#JBLupEAe=NRkchOow#-(;-kWn6OSOWKfnk`#wU)>g&M-zQg}#?P$j znjvsV(0sS#N7mf7tx4J}r7I`Or1ULQcb4=f^*KS%4ElQtG`i}&{kQ3kQVB|npPmGTSCIkB<@4zqw7+c|@$7IB`4Vj8=$3HN( z9ukeM@}xymp%^j>9e7D$p&_%{c|JWYpsMf-@QA*NWMTfyl=CuO0CMpPhm&(93zPXZ z^b)_;&bJk(cN%FWeaT$Ti;McXOA`|~>xx(Q_wo}4%0AW(m8hfSDm#{W(en|UX?`#m zr(*&}Q^`8{w20n2#%_5wiLlDvV63gfnDVtK!=Ir3IFt%Il*5YRkZxwEr#Bh4E1tIQ z(Y(HV>6WrETh?`;5^frUtjL()bl*;WrI;p!Hh17p`Wt%G~-QP|wfvfSmObM;m4AH8Q;FN3GTHhfPg?7|`AY zNzkU>y}hny)PBX}gUq$h1enF-PS#9ru<2c@os$*{8f3S*w%ZLmD9c4h70 zQsM|{+t7j}5huIAEsey)Wl4}l3u63N&X{m!iP0~iNuVR2)$47w46neg3WSNIxL z%!s(yB7p3uUX!es?@ky%VBpD|d67K=AWD|`&1-FOb2^L^tCAUFshiO3dWNixx}_>3 zMD!}~$lsG#5gWZ;2>LBHxRm$+^8OsVCbxW-rQl;DdQu(;WI>T4} zXFr)d_Uu_}nDoy+$QQNb6s)&|ipe`K^^KMCaJ8DT}nIM&Cw9!* z^Ix2fg1vSYGd)#CF87)}c1e{YAV(t~WIw(o_fQDNL%;8U<iU?|Mzp%xtg<@(`XM)-_Dzk0iAtspl@S(X z{Zo^B<3e|2<|Q6f_KiPydHDL-vbXVe5Lp@p&AE`BSW~GNooA}mDb5$XXq4HA=uVdl zc8{ghn6cJ*MDt4JfB0#fWqx8dIUAU`U9(hrTMu_!hV29Mg!lyX(&K0kx-gc=|FmQGYv9%JrYI`vkj$J=K-4zC>_9|D#;{LIiz8su%V zWA&9gKb(usUJ3mhA9aELni};}wLT1Tq}YSJdH(?iQ`}%kqpx_T+m5O{ow3InX%8j! z&Lb}6_H$2#;~;Ar=(Z}53FRJZLVVFwD6wI(H){LY#t*Ea8ZTHizey&hY-;q(?+ zkBN_8Z7)|=9=K-;(B2NF^Eh?@R}8^_&AB+a-nE+)-b>RZ*PPENKaDI7x;K7mw`Xf|_J^95ba z7Y+WfRHitH`VmwmdulaVQ9vM7e-Kj2ADK&OZOf}EB>~e_!tp0#gJ+Lw| zyFH4nOv!uE7UjXaYRfIA$SIb2o#NCKYuUPO$@M)f4N-~NQXDPo3uCOQ?uU1kwlC8v zd>+hXYgG@?gj=VExxtOzAo>F5zVr!^9|Y_M%b;<&J1<$pL_9EkORA`ns3`&=V<}~) zY^lD~*kWP-0HD0`Hp-he;$CXo zGqSM|JJ~Ji@b{~7Yd^(AWOyC((>3cP;3DSV2p&u)LX7m(KX2+QXouE$XmI~R^tPn? zuln`XI2`{{zw&k}qim5ka(BM@jqKudPeS2r6nDV0%H@x?0+~T63|4&v&LQcB{m~_@ z`ZV|`i>?ALlN*LfwWxJ;q71;~-`IPg*4TI6JSL0}>dIQ+7j8LlOh+4xDD9haHl6E+ zJ(EH;CSz=od(ZNrCc8rkVb!JO(e{Lr$FQbID#~D093Q_2bX|^54Z3G~m{1{AUs{f^ zVYFhjdZ!wCbegb~2L5d>r7^yZzQNKr5H4y+nxaAeb~0~&M(iv1gp0GPv9pS?NGx?V zO^yr?UC42%0KgDC-I=sXia)adpMPd}Xv&Lz^C)+fDg0cME7%g{5{BC)h^eulu@e|R=# z2b$e~cMB{HP%OrFhrt5IN+0*Oa9P2ZNG{1EM7IgF^8uq;*$sZy^417V1|;(^!Pk7J zEJ`F`UR3$egKjCNb^e&S??s%P3=i_~Wb$y+j-N+V4MWPUeuUvVy>o7O%0DFYad=b| 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

    MBk7o5!l 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\T$iYHb!K8$d=R+>x--7 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∓OOq$m=+U1XX5?nG7 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
    N<4j8(3^qps^F)3L6Qdc8Pma_A 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
    r%Dg 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

    ebgq!%!E$+fBDl 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

    99|e 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/.github/hrms-pwa.png b/apps/erpnext/src/hrms/.github/hrms-pwa.png new file mode 100644 index 0000000000000000000000000000000000000000..f7c4c31382d6c4ea650ffb0870b45d9f0688157c GIT binary patch literal 1832501 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

    aSM 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 z

    -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

    3IlL+4nS<~*7IQda({w++u?$@69)!WW` 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

    X@ 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 z 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∾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�`AI*|p<8WDf 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

    Th@Mr7yy2dZNp?m35)W~n3RWTPUnz% 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 z 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

    -LL9Z7 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

    Q*NZqP(Mqf?xdY!r` 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 z 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 z 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℞)dAc?`Ysbx}FEexineP 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%0D7_~=fFL5t_UP<4kjB*IA5U=X$5A&}x?E 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/.github/hrms-requisition.png b/apps/erpnext/src/hrms/.github/hrms-requisition.png new file mode 100644 index 0000000000000000000000000000000000000000..78c151b4328403cf1b682d8bea34d579fbfde992 GIT binary patch literal 1009132 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

    f~`;N%Sz6JD-`A$(2|=K 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%0D>qz?eIk&YL37 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ξ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 +uLw_%Mgs1CF&_E50D_ZSMY1k993h-rOKC@@ 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

    UR8R^3vQ2smYxJF2gdt+@Mk;YVo^?A*1$@DKb> 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�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 QesDaAk^Q(K+UCt&^39OZTXBPxv%&v#Sns-j4 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

    Y3fOh?_p4a88hX-gypE+-RZ$bh$ZD05Q5m3vg zey$gYGM+BqfZ9B1jFGzQ!;pJ>XFVfHgx%1X-y^0=PjLMP>94c59xU?#I2h~ z$%r;jo2~%80nIDL0C^uyUD+@o@3(f0iwDGew|SVS_>%sJ@2keaw6u~I2=abBuk^v5 zFp(*zrgdjRUZOKdtra^fLK9pZhk|JjeHk%wbY?FtBU5{>r46a;J4qd`oKX-LP(xw5 z0^m!rpLAST5ba0F$#6kezu^*1BD%@Acq)ys#=9vafn)6YZ^p;R;w6hI# zK)(eVm(>JVWpEA*1N%(~kg6=B{v&a&g?i`sqHpd0dVjcGVarsz?H$y zyJ^r>&_57QaGh3|3yiZvtwaDGtK+tZ%k&>wT~(Maxt7~2GS*y)fjKmYtrZnSF*n~H zpDTUvZ-KST?T~H$PwfDwl_4;jxTMKf6ZOfN+M>)l<5)bBrBEAC@aVz2weGbW_i^K$ z$WrfBik!D*5qfiJ;=yTZMhVld1^CG1pFU6Itbiz_C@6?RLJB4%d+XWNgBkVz2&yfD ze+#NrQT(rwZSbvAo-y-D5HF;@thnC8)~ zj7tX+5KHgqVC%3Y&9(@&qX_rpswlA^=G1a9=q1+Hfv3LC@0pnBMr1nDm)I&>O5L@P z#!k&fw+{0X-mR^TCJ2C(;i|6Wo_+gd2iQl9&j=CK2hyBd?W`HuA)oQYwUTq>m1&(S z9*D2qm_NAQQ681?_BWy*$jb^em92$ z{1_Qg2|InStZdFCIr5r71Akw_KU&Jb6;KzvU1H$rR`v!O3Uad0pnZ-PGjsQcY(jIA zIE&i7v8p?r9?jLnFm3L%RMEHi4k9Tl14uJ}rswC|jVE9R<_||x3*0Z)v08=JRx56% zA_JDK4m5^%IXO3GXi$YqgVP_yoGy7hHc(D&a*k7(W|e5dUFnOQa*bmMoz9i9HPeoI z8SBMZYVt%vXK7^C|Baw!J5i#vvw?{HX_uibX>HX@g3AuJI5G_|Fh5W`93He9@ecm@ zl+}}1N?5Dg0`b7`m3RWD*ROGme&+6_MtH?{7A7satJ6QKx+(GV<)7M zp!CZPbxG+5sZNh3FO;QA!W{}kznr+C4tF^mtp2F&P8<8n8nSFn(8T^NE$u0_VqklT zS5rMsTh{H56y=32h7SBe3Q>0DO%Mh{1`5kVO#U8j5lRfeB-d=Ue+s-2A0mFr@UydQ zX3plI(8=vlCA*<=FwBQ?UXWZ8&`9o~RugU3l69WpRR!Y#Bp>u0@UtNsrQt4_}%~VOYotfn0 z(CMWgT|U2z%0LEaia&AHG$zLwnp@wr$vvXs^SVZe0WrNCM z5i7H*Eemn!+gGN(nj-yAQtYt>E4Xgr!KoSCKG}f1-EAWmZpf16LUj3{RaftuTx{J; zcnQ=gTu1qB{thIFVV8y zJv+6$c}KkFSl+@r21o-)!128lmv#t+oz2^bO-QuqGZGL#(l-dD88$5G`gz&e8&vu) zFi%W;^rz1(d6J|gei*#=&sSNP|3RH8YO`eXUcCUl9Rhw4SAU5J6Jea-)W+w2@A=6x z_TqT$4g2$XV(rf};z3?6M3Q{4v*m7{xWXzJTlF_fNhmN)OT%O&Z!j;H250j6pXKL@ zBkZ2bpOu!LeR3}0jIIqqJXly~eYhWm<(iLgsSI>0o-;FkafvXF8!;Xp@zC4wtga4Q z8oJ7R@(L`>)R#lGr$!(=i~eEAI_t770o|P5P+OvY4HlOx+7m3RB9YU^_t%-{^0z`& z8l4XqdpM9@GpxRik^M8cQkJqNFC>%Wd z^7}XOe}4)Bgt3dx@V6=o;8kv#2n5>4w^tn2(Fj=*5%zBj$3rM#?GgCii+UwRoQ=<4 zKQUwn!}8df?-ueuO00()-fkUV#2pTQ*DZ0E+PE-V@?6G6a;vKK5bfye#SBk+TQ;fI zz4vn=ZqgNEMgQy>m9{TjeDhJe2p81*v=ZfdM69 zZ<`W))_ZzT0gMFwzr$z>Gm1;(Lo+iyIfc2>{>gw!ZFac6yG8KH`*(oK#yp|*Py~o9Wue4o>FxF4b zaIziZA15H3>%V8}k5IuWKRMmX&r%Y!)p~8OI-|(puQofsGJX~qni_<52hYEZ!j=7O zU@HZYAX{|8?y~MbMZ+~B1(j*KD+3LIVg5ft>e0>`*o|&)vkwNNt?%GBF6_+o^k|(t z6Y5#*ev)~yP0{3sCr+hXrDBU>QF*<@eC);;M%-*?)g6u%hFP!@3YlAW8_T(8m(#sA zd?W(yh@KQHTU(FO5SFGbm7!Gi^`g7R!gJz98eY`hiP9Apo+r|uP+!^Y+}~%mGaMPE ze+!e>i^7hG!M~uGQ=f9Leo17^J3tzs*pYqESFx7|tL$byaoZef*i#jm%kQfgS?ja- z>jkLiIz<8y|GkbJe&bLv$8W1bJzn84_GaDcb%ojZHnT$I!(ad8nEtPIU%hDRfa8l$ zfqU(VD1w8HZBeuiDjvFmak}oLSA^ed`Lpw>MMFP^Ql?~4Ha?k!3&|hJYq3Y7AV0DE zpME5!@PbE9VSl@H4{$!uxHu_rZ*%8#9fIU53 zLz7No_Y>sK<|^Fo$47~N41X0Tp5pN2O|E_2f=8cj}$2+JAdnFxbqd4L{Y3>ADS zek2xr%lDG0Y%jgL==A6H=uG-K_dpklx*w$_4xT^L>yP|>aCA|h^;>DtaC>NfU#XdO z)#pNcfyY#woBywhv=WMe?~O-u#dqOHij;L{#?0)7`iZvWk?R@1g>ERY2qWS_ z!Hf%4-MyIs)fxV@BSmtXe_?sQc=C|By0z%$97E?j1s@hwkMKJj4}r|Q9Q5xuI&^K! zZ(??B-}MRi1``irguU&pPuXT~JeTUt56O~Qm-b?U{oLWaRw4bF?ub*QF9T8|M#vD` zigqUp>rK-`JX!xxN-4=;>*YmAe^r)Xn{IeFSYbmD%l)jpR5#LViZ61LzriY$Z)$O| zp!UAk!py+Z2#5c^!!fb{z%F;-@Hdn{bsYq02X}4#g{h60oBl?(iJW23t3v966R`}_Fr;#&%6>6D2j;x`O>mBQ zwC9kU;e;WDbma%-KC$C-h z$3#x{%l7#<&iD&UX=0_~R&+uk^{aOJ!^aQy-t+=xqQm5M75mBJsMrq|swPd4MWHt? zVA!n>8N*p)+ik1QDxiPcwB=>XVT0#bxbi4CcVy6m@_TdGC3!>kS1IVm-cQoRXTFjF7slzQIn;%osZX3TBJ;>zjf0fh9M0Y#}LFj(t_WHjGQc#H z2u_(3|6Z-?d$*{tu+hVqRg9LqP5b1W+kQ`0y71D0mX$=eQ*mW#!{q{m(THBHkkuy# z{AgwQ@XsgCHNr{ z+R@i6#1#&{`HvKOLi|8eY&9$Fw}7_rfoggl6nEg>Rp5_;R$kl>o59UxOlX?e>r~+= zx)2G2-=zTi5~kHJaq{+~(0-WQHF0TWmd#VshsPdkJ%IQJGySY@9@5*d-%jp9ZPmC- zoq4?diE?Qq=d*c{*}}~AP} zd*d;j!mSN6tDRLvUbe{B%#hpXn+ex7KO4n6*ZdRuvxxNCylUeWa zk8_LWiEj#9X<(WX>|NrYZXyKwvZtm)Cc3?MF-mm+#50veb!ve=G78W2Ns%~iklIy=Z>Gy15kFmV=;U>q(&#}Z?GN4JBih|F9 z^kC4Sy#6ze>f;_GuICmr#+eiszi z+nCHd=CZ@R#I1?^sIn-P5trJnLD>4|mtmK08q`)j_TE8$T>n|G?Y;kp&P~ikwE$wD zJ6T)n(}-h4X~wgdmJ!KeBbYp`TX6y^l_y|0!+FVj@^kg@EsDYB_MWjY5(OU0HQqe_ zJKX-mJ_FrNE&GBg>rk4an*;n6!A9b4#W_2e?z3MNH$GXLSZeH)e4cjkJ8&oGHS(r8uKpkdW{(~y|r+xmOhCF2FAnolwr~z97 z92~ZT2!F-t3@_%d)x@;lXdGPI9$Tg*Cdi>^Vqqv#OmT#Dud&ep^Pz{@a4i28%wT&A zeif;|(Qou(bKGSK-mB81xRBw$f!QjHNvq8}4z=>Un3=!geh6~AyITD#`-{-UCtaJ_ zj*wLK{WSS-PqbhaenfAty)5}}z*LECi6Og=(Ubsx=$sT7lMdF{6Q;{*c zL3N6IYwur6_9jnqYs3|QOKubfUSk=Eq|YA5=|tjx;t=Tr-QS)D0gIykdi+P)9zGys z5HDvG!Mxa$elt2=Ue|AbK$dcnPj}z?5ZCpaEfGgCjoEtiG2?9vuUF#a{l%s8J%s6A z@+m3IJCj4k@%meD%N^xU>bng`LteUOCG4 z1#+hB+)kgP*$$Z&Li_6vi=ipF&IRkzGDh;Yc~s&1&o)0dck}jZR&u>NMy_$#UxR6i zy066at`5P^t?s#Wt^fD<_dc7Zuv&vDxwlbrtHC}_)|1Wlsh-N^BjMb++{p@A zy5lmk{+zML*xj*^J36HwaVwMF2%T6J5jN8Z8l#HEAO|I?UyV(gNtuglOapa{_*FCN0D9eqeo44};0{xxRP1AIWZmHYLVIEt-@l}~(aWUsVIOpz z@3;jU{ADp9wn2y$KTCTc7tFeYQLPWbDwF8R)VhP)#Btt+6i~0>zGh*O`YRPbhX$HK^q-bVm#k+v z-wd&!QoRiN&@}jknN-!_IU2%~4;^+r`7Dc(r7W{8?=gwb2{&yF^ zf2pDWKN0|wdU9wwjcB->q8^Z3@#wp};m{0BDYbjL3iy>gy0OA>_=~TjkXump$o!&l zAZB=sA2x%%^zux%%JbIMIiVs+Mt9_ zEY0RM!{uuB_Wd2pTVY`(Xn9=XYZnP~01q<|l{$FibO|vG7^?3AL|sSs*GoS6zf;uA z( zm>W)EZhvW4N*3C1fZg5Mm?x*%}@j_3I%s}B)(ne}z zfQYNfVLGutXLyh0ny$Dw^!?`K+$?&FUR|x>x zZ?OLhcv3bZ{R7q{>L(4k#nGAahQ|yHjy={u?Q9<;oZHc!9F(c7qQ^Z{W#jR@uYXeN z@l*$(AsUDc6cZnx-kcT96DzEJmn^Fs@yDu@oT;;<+cfPHvL4tH!mMJ1JZo(Hve$rf zxCLFwfrBCo7$r;&zQ>r?g_If}XbXo1k&8X}Y$7#WTPaA5!+YYQ7dZOV9oVnu!)y(L zIgRPK04@ruFmvP*Qe&Jhx$FC;AAN`HyFuv4vz&ToC4-(jA@g0-x;p*pOhg$2rM(!E z4YodEuIUL^Q^zE`6S2IFb*fH#`t42> zN{1b*kh)P@VBY;WU(4Jwu1wnnu~+x{{EYUT$Aqh@>n(R58l3a@TkXsY^yxK~Nr>F* zNqrf{qO_`0z?%}qabXYdktO|8>P;RtHnrXiu--jKm|3$<4jhWLbM<{`WViAHs&wpI zotkcMZpGE01Iob`YCfspQ1{cw;T4Z_nI*vD4`v!f&DLaoQ|(aG-ZR>!zt^?%3L#hu zjQR}v+0leTb~Cmq`KiRUED~b#*Ehl+O**gPU;ZX~i}AQ<{V(gDW0?|bV|3mzr&1!4 z$|jDGbTkr<|KES{YgYjan|O39vL7p!6hL^y`G`c@D!{Caiv~*RUgQmVqdj{}lho1o zdT%7hGi<)}thO8HLsckjRm|Kqk#%`69Z}xj{b_J%Z<{M8fR^WGvp~Z8@Gqm#n$jMHIGeYpl*U|T2<+5C z1w#+`008<L`^4aVI$7Y>I8FhUh-;}Y#37zC*K6h6;2vhsovr_u3t?-ebRPty$H z`_8+^8Rn-L66R8rG0@Yq=ub#As}LW^$tRS1nMKX9F55ORUDX3PL-)nRbc6xBQ45ov z#!-5wAH(iLXho>_%6NYNSmA%~A_lu%pDJ%AW~hF`3Ac%U{ugiGs@xj?wuHfIiR*7o z{wMk7AL(>ay(-K%?hBTpn4pUBP54Qe4^it%{G2wR4-?^t`+;NUibpj))nf2t1)1H+N%!sFdW z=P*pQliPpbb8mL%-h67WykM-L@ZE&9=RtB%ncQ3y&9bW?Tc8@T(IwepJt{YJ<60db z+uoB&zeV|$2IC<|9Oj~R^JNUE^eK$BPp5C*R%dC?!b&ee>>5tX_|wSeW^lTBs~$LQ zP6jE;5dpt_6?Shwe%1OVqFYd{u6TaDGH64^F_<0LR8c@WK?`JLiLuZ>uD~1WXStp0@MclMG7GM<1_} zdq--2OCY~6S{`|-uJS_^FKX1Xn4e%bL(|T9K`(|h3)ywCJ&k9}ZwDDX4J7Ljc+&Lw z9&{)_C`(XLiq5@G`Gk}8ARc8&8>Y7b+?)Q9CZ=}O_6xO0L4B(?si?xQmp!|=3!~fK z1I`DPG~tlw3RgM(StU4MAU`2>E@n)Q4_Lmg6sYVtjZ>1lGdg#5a>IJfhabJK*gQ5; z$W1Mbj=@lx?Wb@zI&hN5(QsBXHW?+ z?n1_X&rOv-KlH*sHM=g}e;>7^=Tifa_~d`@Lk5M1b#JHYkP^0!4F# z>mITa>WJ1udM8r$_W7_LhHqFUuRCCTd|RLoXtW9!+)-5CJ71V(f`UcWzL^=53Rji! zT-U-^8zFug`co*@Gsj86FDB{M6tOEQGb9Lr)>c&n|!_zZ&c zS%O+% zctNY)9s5&GyH1qnYWE^nywIhzIuTl?y(r40gQB~5o2Naf72VrhElo+#c79j3>#l-> z-R%Iu>ZxO2hvhc^-l@V;EPb#4)JlI_e>=K+JBI^{4yxeHQS!3fVC81L(6N(BMz*U8r*rR6nFIPd{^4lYeg@lN2WBk4}616nBBx-XJOA>|3hF9Fi-Z=W(mWL zcaK`s(hi~J&&k9Cn$T`A-SO$wNL)%%6dG`|Xi$seWj>~_bR2FAd4;VjKMZZrhzDf! z3nyRpsjw|7HIKK4Vn-iQcnQmnSv`gKNA9>a9vN-EG7utuSSY7yyR8=dOf%u3q~NMy z%>}CwQZX0S8eOr*7M>{)2HGtFWzsmDWa_Tb)GnvP4eTk3+fOwfSII zqv8AY{FEEA5oUu>xIpRON8tMueT({E9`XBmsP50!l4{H=>^rO4jTgA}`}M(e#ulkP zLR5G}{_g8w9h{3$AMw^G1!hf<@6V5EQ(5B+9TF4sz8W{>_pNXSo1aza1MQd)s2eYg zZw{EiSBxq!c+KWRY)=E5I6?KmN5=39^h0hybXt-oS;Kb;$h435b5NRTY};d2ntI*e zhDx_kptes(#4P>vM)?yEmC@}cSBPII5A9s5aHa|_=WEH}B8uGi{cLKa-#}+paWy{d z`f-j?P3@iLCTiM&Wr?VLxWr}TcVEjDCdls}-6Sfoh0B9U$>)J%(nF{ei*d73br!h2 zyAu=eQZuyz9F8i=!tmtLEeL``2}~>|r&)|GBB11wieY8UG6h&@@~&XxNy3#%KTR5| z^pOY+BdIHE=y|z+sOpGK$L?q#(f7W8RC~D?s);u?D$KrrekI!USmfhxpOFdDa>NHPETl;{`7mYJ}?Q1uo0?(D-BGvVbM zi?Uq>zvazQwXLo`3Ns0f*mxihJS!YN-}@rC3|bNT{tg?=m=CX}y&`W0RKe@JUuI!* zK?=ViIQdT&dBx3@yJngzb~N)#-8PI)agYn>dcNKaBa2)V^}ycgS$SU*-~j?S#Nsp56kN7$`g&Faz3Hf-A{Q3YShQ99Aq$ zE|b?)Y`(dgHyVP7MJ|6%QjH_+lq#k^sJ($ctT>)wdaD6r1KffD$Pt>w1aiFruHf`y zJxn`qxU9x?wDKA|SX%TxXx)!U5}MT+m4?>gCPd@5$zEJ?@RqwQzsmyCt4cr>C5Q?l z-uTY6A2}%r@EHUa6E=35#MImD?jRSow~{j+%_$Q+BcJ4B&Ec1kZJv%!Z_$uDqw1Qj z0ADPfc+aH#qfJ^_z}TAbOQrm0s@n&$J?wB8J0zA_psdEqyvu1`DS3)G)pL7xp0M~T z$?*GJ*Ct9;(K)F5c$}u^z*5lVN23g36GIrr5EWH$Y2#YEC70w^4H>^^j0jqJ;2Gi} zCo&p$GfJsB?Na)LIU=P3DXj?0hzkWlZ-!SqE%`#xlJa=DvWPN8o;1I|Oo~uqJ;FX{ypcSJjt2_Y5wazIIE9~|pf!@SU(YrtjY==Gs>T&!yddX!OL3*(U^}17b@53WWQ%S*fN~^{w zDdtJFmM=6)<2$f=eUw2t0k4RV4&d>FQA&{+ES z9+!_ZSK?1AVqJXCCx302JE?F&QA_wybM5rPwT@efFM=gpp*u(SoK7f{a?N#r@=>{%ZdJgb6J@J!QzWgca%=smo-*8|ReEo$9 z+M4_|A6`*eN8xjhsK(5^yBJ|M0%ZXcqDVLn+~NPj+x&cZ`02ih*R4A>HiO$#;M3OG z9Wy@h&btP_%X@?&KJKnzMVJwR8U@V@#~ehl9IKFTGfBsG7;n{D;A#UJK4(7gY+^XL zPK-6cRBSIWeXlQj(i$MZS9b9)wJW~?APO01gi99uylplSJuHgUHG9($#-=k_O0}Vf z;hTB>#ZJ5TZQcS^1T1tNbNN|*HCT#SZ7t#BnR z=%rOLNCI_ufRpVsg--ThluQF<7P?c>yHyGl={fuL3@2C%ja%Qn4o=-mAZK zIWM@^1Tp_vt+QmZw~Q4C9QB;KiwNX8TOy_tVvvo$TcSy2i0%E8;YprjA`!vXn{s+b1V|a2g7gSlU#)32OH0Qgh#$?c8~v(aY`H1 zSy3+6bJKnO%G9j0D@IyYq&8otiTd0{&iIPlRNGGH2+aWMKl*Mvc+#%S@2d#Fd3Nel z6~nbll{1m^{KHbdXv&`^7zEfdz=8~v8KS%WUR|2QOua&o>0UH?eK%Fq^3!YTqf4wB zq=&`o4co5teMwS?Jo&b2L&{HD4L0ccGbymZ*(Qs)cm46gd#{fi8@1T_?#4Y`$#hqp zVA7%Rr+);l~>kxaRmgSs#!EG{M_oy|7``-i2UN^kzUD5Uwp} z%JjD>ZAiJ@NDxV+Oj@|k@=HIuDUP8nq-5|gCqrl2*)=Z zTEDsZwQ;@{Xr&jU^LRyZ*IRX^cU<$eCXd$1JANupe(fc4-^H2ai6X*?%kjkJ1oDzI zd5Ij`Vm0GekzIjJ5Op7Z5wk%v!gtBGxz-J_dF_oKiVnY(Ly)YoZ*7Ji^3qd+yr>j| zfi%AwbYV`hdx+tw-zmW#mcDNs#_Ra-f`_JQe#fC?)?cXJ%z%gU7b{y&`iDMLe%hO1 z7@v0x4F7$o{r*QIL&WCV<)@YVAIUP`zdij1vZ#tx!}i@k?Qd&kd9UtR?DzQm?W)Rb zm8~R(s*+>VCPmz%RuFRJO>)`pZ?_yq0i)7ixgQJOB0g2Zdt;Kw1Y0UEdf_PBVuJR5 zr~k*?7qWfW6HTWcemfR}zuhf{o)fnOLvGgd$T!vGSI`VRwH(WH4qg8WyBQEymHH1F zlFybMH)?GL_+RcJ8kMeZc=#934Aw>ww)bqe2F7TZ+Oxyy?|E7ajw8+0#3Ltnf&CNp z)wIz^S8oSzj1vk30q5tXvLsFagP65#`^CEVpae49w zxE- z3oWajUWUEB_nLP*s4bmMAl8QDFlSdHB-2g8+s}$pV^ru$i|G$6mU1-p#|CKMTm$cB z3Q~{>{38V$?TY%;VhczVqf}eIRh+I_@jPmP1_$2lIn#CJmrP1#O4~Q z$>HWxi&K~UW8#;+Pb!LQkKZ%#JAYbOlkPLAAI;k@ZeH|=8%EXIQj$9_Oza3uhXL|E zDlY+!uja(jGvW*q4=@7MI_tFo=Cu<$7sh@DA;xe_PU@@=e+;=OTN3Ec08YEBxcb?=Rb@2fMKBFFO#mus~w9rsjrPzF9>qlLa%*TX_W;%hl`m~3lz5ckd%0*L7 znYp7kex)$r8UoG{MLp0Mc4C91^3>0L?_-;cVm!9)slvpv-8ULAZ6MxIqVei|fdr#a%5x2Nlgwn|`gYrL4$9o|(nQ|2&rSY@72~ zE3U1;W7BEjzY$=d^om^ji6DErF7iSV{1M^cXj{27RzK$AGtsc8bPqDF~zfngLsj=DyUFc+smL9?^XkX|Gb4%C2#B+UkDKMnO~FbbBZDrDk`Vq~@PPP;^>#Vg{I@vpWPM@{X^> zDEHjf0vSS4#LW^V$%zdW;=(Z?QCIs~A9zk(720fBOWbi(6I@DuD2wI4^b0sQbK0)g zf99hh8$SU^5@7}X1Q+RQ*(v^tyOn-0>`nFW(~jlX2K)5 zvvrieQKJIthJI#&z7Rt_JWe4k$wF9M9k+&hDC-}%Sw1IB6t}e>j>s#EduQ>F0*$w4 z;J->qd&2A5gSls5B#OTc6EIc-62V%h4X{1Hg?A33;jo3%FUkJ4^`d4Oz#(yyVdBw|3xFo}%`jMzFOk;VP|bm#BetQ*qtcJH!VWxpj~^`!2!BO33S zh`rChb6WZ7nWD=(H`HTHFQx0c?&v?;v}L<)1CSvBN!@K%NAF|YC_Ls=Am=#I{u=tF z%p(=y=CL2&S+uWSbAly2due@KD3fDxzju0wV8uK5oaXYHrQzS*xErJs8O z_pISPlIKUrVnW2ZaeLc21DKnuy{dx?(K+XmQnTI6*=Nqaer&;eoUvukZQt_B57sW&%R};%*^n0J7_4|U+sUHG- zD7O&t<i*K6eZZ5gWi>1hXU(0?8!VJdD-IL5 zm;->#P%|`9Knk2ofSX&_jS+qaZ=Uwhc6giCqkHLRmy~HuR$>X|hW!`Hj>7D+uTM*( zmTSznPWnhd^I%R9m-O2@xcoQSvx?I>rUdWm#>ii%GsNxg`10s0o$Y6Cgf6&CUX}&q zA%up+2mXT<*0s>9vlGPo{tlppuqs947Nr{S4uNU1f8j>xed#kl;at&KYcKt6e156d z?WrYzQZyGHxo2%u&o6R|Xe7VF{sV+P(OigYs|mo^plYiLjfX-%AfnfWiZO^Y@|3VL z?+qL&la*_yHFQm>hpwp=?~VNzqB1s}XeX9I=0c}u(?4N?L|+DOWgz=!Qi#@?mnyl? zb3krITs2J$R_|*ZKNc1q^%Se|ac?XKr*!B=xJpyH@M+`I3*y$iK<$*!GXsXpwd^PF zQ<~l%wfx5cQIY07i$!~8ZD6c~)PZSpBDCZVEkU#U@yk@z23DTu{qrksSsbYb@A$^} zQi{{PX$8T^$k@6hS2Z*A-jaElv~YB#m8rs*qBed8Z_Vrdm9`|Qd$~}7V$@qWM^O&a z-$m|wiZjsXlAXy{GlAYTz@ard81I>ta{W`2-~V?C&8YilQ&EstxMrg2$-%SS6;sJ8 z=oxL*Aq-G(I1fB)3*TX+zQ#d*?Rd4175m(Ty`S?Hdugo=ZzP zud+l%XKQvmQ`2n;^4yD)!*ipt%h6CR%mjf=v;z`WKIu+{#+f=lv`v#JpR^={-rO8J zzcfjnvzShDJg!q~9M(dd;Ha1NjfE!v2T4v9Jh4?*uU@QM1*#7oNglpsnlQk(P?OZ<{kun#b;=s1Px!i&6 zudwub>%slIz}^>c#XWC;nkJ-Kqh>#$S(I%*O`+Icj6Tf~;&c)SUtXwVkB!qHW^E4L?4IM}2~%+kxK484=%J*o=(xE`aogPByBlti)Z?7Q z;ijv$3v_vKd!*Sl@^F%w(9SI1sEt6`c3a`rTV5vfosSB*`t`3*^Rd4H&-7?r%HeVC1^$#V+j$lfzHSd)jkw zy@7w=ar8t2YSSHaUrtoqoiag1N8ULd;f$4BAhyV3N~yFcC|pq5f!p?!1YBHH61d2g zKk|g~Hy$sXQL>2NvYd^tF)lQhk0}C^ET#I@Tes_eKB)J2AW$_%CAP&S0%w}42BCg7nH)Z;`j^;n)%LuilO$$E;(5`I$_r`A zCkA0w)=~V&P!F$BwF)g{^+cJUL}}leR_Jo)MKgH!r9qqMcxU+tGl~I^5_bR07L=Ci zE0}iqiDYJOH0x^8qi$uw^MZ;J+Vqy;+;8&?Q#_qTje-psw)eDVF;`kDj4zN5cv5Cv zdrf%;_?iyV(qhorSz|sI_cj=*$q$YIsL~vNy>b!dJV`!7G#%Js2zCUgk*vyLPu6k? z4Vxoj) z=0}^LkW#(b8i3ghD{<~}U7eK^Q$7Xt1R;zZw7`lXVcc?>bhm+~h9=Bc{uU-IdnZ_F zLD_5NWz~;<@QRHGv>=bseuBtgK4ah@eC%R*QcZ+&_f3xoMmgpRt^Z_$Jq%+nZO*eUzMg5eh%{ zKfGAa=srZl>4?xcn-7JVXW*AV#AdR25BNTKGe403he39>A|-uDOiUDx0*et)m$#_H zTZF=k=vG+#!Et6KJO78;63#nlw(EtNV9?Fsha$Z(6NUGkF^j4}#TD)^Me7@-MH4Qn zEfLJS`}&McD;`DR&O!6*y0kg@H3q}i z?enj@KW@@qYXgroQunB0tk)VoKK^+Bz21CwyK{(cdR&f4{D$7RoVi+&(s`hrYqYYW z1Q_%4k4-D*8-FQ6RCx3rm(&YrHS)JZLNOVeH?$3+=IBJt)B{U+PuQ4yG+;;q!sK3cFLb8IjH&HjUI z8&B!s4Qm8#o&#SSL~X)VwgQhFNit@KQIq<%pJ`GV4A7N)dj$qv$kB4i=(I-^qCWIBBJZR4kC1v9-pD>_@@VNBysWsDz$*?qXXlLZlKzS`^=3A8T?y;wMniFa$poD#$o zgk*tPs&lUF$R~b_Ht4yJq3&wJ<4aMwzOxrQ!-Kah;xEH?s_k7fe&4gZplSn|g2jyGZrHZx{QYWUY-i2Y;<0(tPR_M%6_GJ{YinV$*e-~NQn4pGN2O}=}- z7xhOHd<@gub1LJvpgqz0_h?55W{HOeF3T#gX34vo*Ek^zcj2Mb-d{Mbg#y?geJ(Lr zzU4{ela}X;xOiP|kh)w^uq`)DswDp`o?dCcoQM_u znb+g$V6F7J`^Ur+2t&e-Z!Ux`WTlDeis|oVROBC-y`E1=7SBpB#zCanK{CPh!PTD$ zrkJVdBA33Bvx`bXON&I0Si6R?WH%BQ0S%h*Ew>fBb(PH-A))Re>0izjVgV*h%v8c+ zyTBQkqxte`!*C(qAA}ZrrP%M{!%dMh(MNc}Kp}N5wL7saHt#m_n>4ctc-6PMv;Te1 zbm+(xSt!_8i}|wt^`G}WH)UbS7Z%I&3d$-zl2__zdOvgVy0bEFo;-eH?%xaIC)Jx_ zEyHh5A;RJJxA+0A=!HpX5+O_Hr^cwo^H}+hcE`KnJL6y(3?>r%k0q6LYiXgA=boGv z!pJQ*AS=rCA$o;zi~C{s@6Sj{$<_H!@onZub|D4qli6X ze@YB1Ut#ZhxU!vMSquOXIU5uaM6JfanwhBKWovC@HBnp&+$^e>?#MT({4ERmAN0P) z@YpNfR2{O9DO{=Y7dE`YLYH5Ymr*HNZXHC}IR=0Y5m=B%6D$*j&*BeKR!}@DwkMg*IL(C3kn)-4LT64Ci)|A%#P5)8sQJTn#^R-V@g+p2M zq_veAx|LyMNAVkrtvtt#kRmuNnhY97;$CPjpX;^4kb7H*thc4W%)Ab~ndD;8&C#i! zIY=9e(+EFRCmbnFN~4>;qTb|f!ZSaX^j__r020u5F^f}&LqhcEV6z;H*M?o!F@i_0 z;9b)%+-EamJM^TB6tN= z9594#LZ<`!k;)Fvs-BzaL;%H}8kLME3jYndp7O2uplQMONEO;|(dU)7N;h zEw4Wvk-p|oH=T1KZ>>}^-;($Ovoi+Aw96>B`@ zxV@~VA!7z*8kHKPuW>0pn=1PE|2@iy9+)T!m*#j&!TNZpl1KjzWKx6c8<;InYuNIJ z+iZAjgQ7U&^y?5C6Lvx18@QTy|4y?8+NCSc{F_^pDTiOfToeZvwoxpr7o3QK4Ld46 z+0W{C&M=;sbkf#HB&TY@%&0_U89)&P>zr3ZnFc8{Ff8y17bP<}SrGRFxn0Ar^M@}y zIe#}-M%8M6GdS8;)a)k0155-|2eG&i$PoQe7yZGCe#ulY$NyQ5E)miz4_=}_?aw=l zuJHd-F357k92TU+*Vmgf6?t@2EvwFNHp-h=pxK*t<~r1wGMaRsQwp&8xVL3he3OKJt!%@>l0f18o{DmyVd^2oI#ujf`qhW=EJ~oFYo1nc@^n@5 z;7Z4ZF2MGFH0k|l z)IP#s=}Q-EhsFy^y2|G}BDNU7dpJm6gVv^Xx!VFA9Xk$fKR~y6K6>vL{I#!FuzA+Y zY9)Pte8i^yprPxL(C@rTNcE}2TK~)z+q(ujRhWJ;Mt%K zgT`i{mbtL{X(E_znPmld-UqCJ#~+sOLhv1n#-e9swyAIv`-=LK*_~JSav~ zqRs{TY>M0x2jI_rXXN!cPFi5ui)|M0c3XI<6}u4w4a0qQ9MNawmAVjQKwz37+*twi zdR3zEZkP#hO(q!GJyx4^_u`ViNoq__m(&G|BvH%JxU$^&3{&`D=q>59id5;6v5q#P ze@;|RI4p*hawCwr?ZZU#c%MPb z^;FR`>(5ugBt(jmU2JeQ1n3Sgmk+O$3#sLl8P${M@JgyyUo(yNt@kdvoVVDw=jr*Z zVRv;$o9`Ca{VC2N0bF;Rs9?XZ*ztqPjtOQtVWGZmQZqSqp8=M?KRiCnPs_rN&ylpF ztjpGf6c_dc^yc=1xwSHnALB3y*NAteOsi&*6^u1zvLr6jVPXZ7Yrq_SFq=5Nc`v^$}!&3t*3dvl`9zQE$7OQiM} z*-K`n2L^l)c{QX7oJ{4mHeD9{&>oM$HJ}4J!Jci!=g7xi16y-W?oyA>7aXFzaHow*h@` zAClVJcH4pr#&$?@1~0*mjc(jF17B+V-MlpL9NkCROV%}nyfmilj4i+^1k5U-Fi%x8 zaMsY$1sy^<0xuTy}Xdxie51z#edb|3Y>iiEfS70Mwm2Vvs7$ItCgT4=$q z|FG=+q(twAB`ZTsF-x=?eAoQM;-$UQ-=1^AveiC2iEBOWBnA-u%C)lLnO|5@r~c(1 za3k^~}Y4|-tC!d3b)vViKoz{WY> z9J*62EtK4^9G+)r1wU-KLM*n$35+}r41*M&-i2v}aBHs$ij6pwJgda40T=^oaVNOGN!$w6eXN!m2ISu1l9H zMvs9?ghu=5pf%FI^io%rG`~Im&+Wbxbyw%0EwXBYbeEhL26QIrfUq18E$S}h2l|(? zTA$Bi;Y|yHf3#WQj;yF@*W@gvu0bV!eM&r_{0dgo3_&A ziXc|OE0TM>*)PB+h>3?MSpBG}(iNqEPobU8Oh#2WA;5^KD6(|NWKgb}zhLjWf1@!sw;8TYo|N+xDh}Z-9j0 zl#(ME-tVERj!{^vH*$Ia6lfi2UlLN=wmCF+VAT4eLqxWxAxi-Um z)W5~ze&KRh01^6IGI9(s1|Te8Oh!}_)zOgZzcz^fbR7-c6V||OQ9MU=f78K=-9*l0 zfZC6vx#AXMhT$4O;rk1?Y2q4#ma?upA%o7aDUS+ zp+mED3@o@3`(>_M1Fp?DvCLHr9hzyzmU2|tt>y|qcY|LMkKA_%ob)!S;~}ttU>{on zI_=UJCIl%0!3@5%`vEGu@Klb8FhgFm`^k4>YaNbDoJa4+B=9FLZbNDQ**}Jwz2p1W zQ+w3uEx{#ri$C&BL<2(QG&`4%DQE({jtPGxs$tF)7QdM>lx z|FYK_XOel(xoE_($A2(;9em$T;2-0XF6p&Lb`|Z_ zUadNb)_|6`gQ!017-J1=D9;5oA5q1oLMo0x(F|WG>bRsKXz_VMDmC1;0ZRWrM9V(`m~8nyRT9T+OPm; z^S#3}KS)2oa;)WZKVgqK^&%;o6O;4Af^{o7OZ#BTq{=yesCzn}Ymulqpz2XL?j~ZC z@aA}Jre=L_$9v)ei|x}52n9D~?RwWuV}L@13J(33i6pi&>aHcRrexGR*n2O%NuBU9 z#^rlhO}MX|yS4PN|K<#f62xOokGk0{g2xdk7bAZIpYE1maQS|I7>46Q!X~*Mi0VN4 z*-EqcU1;6HI$hudZ_;$2^1r(PT&B26*|Sq=9x*xg{`nHbvWoE;vONK|Zl)Uw7pLd-(+T?Bho5VFMlQ?*WVHi8a=MLIu#se-I*<2kv^^ z#Akml1CCZa{Jqj`LJSeA1pk_;{^O+jD{uen#}t4>c#y!;vXhpzQ%qL)H$@A$Yh#j| zxQP-0?DC|5P7JWni4k^&#(@*Dc5L-U!2|WO7GcnD`)15i&ITt8Z2;@noi?}>HR&O0 z6J=(i2``s6sTwbBl1t1dWzW?bIvDsqoYUe2oLzZ5ttd=WCbt|@nAx3))Xy#l`d%q; z7B6Jo;NKW@mF28?9X~WG@E=?aE)ZRFrfq>?N%QU}G?1MB@4XA}M zn!6+CJ4&M>0lsPnc5kljn1Au>pontw%`X^nQ)UQT#n}UUchQD%d#@`X#GQ z7z7;sW2ugkr3x^Se#Y$p7biDtLZN4}$1k90&9_^SYm-1%Z*GVbVXP)BcWD+u=<5_& zsw0^NCSSwmfoAm_W2WnVKWVQytoDzg={moQfu2y!b=O-6VMcI!{O4&zDZB!WAgXF3 zleM&mdfb*p-rFq4N`Szd62BtKDz8$fj0-pTiXKAk4P972e`pDZAHe1=DcA{4K4QRy zfh+?5x-qMkBkn7YHp?r^LvWe5a(Q4kL41Yao)ovKugDYZpR{V?gZUL9)wInL6B}yl z|J!0%(8yxl!W*{H0PIIc8Q3Cjr!Vw|tKJyp3q3rh2Ae4hIhO{|_6D(B3tuRPYoWg} zng#A<5Z@hz9anu5A!R^=psoz~E$I5s9|KF8VGtXcz72CDMlkCj8D7u?(wI%zEUU<|CR5Nn%CgueogzFzt@`> z-5qCwPbtlGp~$)O@Ww7LYM;hY~4{f^q=c> z7+;>hfgm(2i8Rs+V6-0=@9I;x5Ty2+n3mEnbP@c}vVx$2N6>{dbyjawu!5O?>HwKT zkNTrM?qAVe)g|K9T^G8O0p?_O?|ffB;0yBKwXyqExq2W$2*Ws-OGb^Zh*|a?iR3YS z8sRy#s^@wtY=-C?tW$^$Q)1n!E>urUZLWG!O|<#YVc(R5NE7QDEHF?|caFI3BIW*= z8w85g?f+Q+Cw=01{v$(W#=S5Y#r>UIgKy}EM&B8&*9qSRe(*U)j?^vuPv5~@zSqx` zg?kU*!~Xzfnxm-6=(tfX7d`sOBVdpQ=o6`P46JrEW0G91;9|lo&v!gsKKfYy;>iAo zQ~NoEC()cnrF@B`6W8@v`4;=Ursxt1b8sw-pZaa(CH*L;@-~psr-X|7)Hn0pRnEV> zY;ZEL;u7K&7KB@ez5kD??~ZHg-2cD5-Yab#w8e_Zh}BB8sHiBLq}D-IB*jH7N<=`k zfK)bQoK{4n2oXUM8L6U1WkiU8tfUfT2}G75tO$WH0)!Ak*2y`)C+O|>_Ybd_VU*AL zJkNW5p3@~yml>x1S*S}0>6;IE=KM5fq?ifG60r9}yxwPG_pkI)VdD$R2Q&#G77mnf z)3fT5)Ri;*vmv`;uD8vvRJ48myW(M2U_zIvyUX8wArD-Ogr`rKeV_KjzooQ*n0IXp zYVP|6=ckU19k^{P|8;iBsZSl?d@L`vuVA_Dc${v3F77AG?v%*X+w;PR+x(>^( zSM<8|y%^Im%*a7$y?D5zEn}G2_b^J%H1Bw$F&0u#5mbe_0u7wquhrs}LLDBBLCQ#P zWbcYwLUTDQHqaf!tK=rA4XSSWjbWd`Nmqe|Vj;+3@cN_C8+g+LDGvJBZmhLFb|t!- z2`(Hk2~x4m4OR?G!L@R!__pk^@6*vby6J&>Gd&@VwbpwQ6L&w_TXpn0cYRta3{(A< z!wJw8zkXL_mwk9Ec;w^PvY6W(T&CZ7hVC}~nEJsIs}mOBd!#WO8CLmK-OJ%@77Y(G zC#}YGqwXZ+_+6;x?l%OvZU5jc-$>&nXo!nsSfH(xK!&>dy` z%r&kof<^_A$8=uIt>LNngS0n`b5{wQFVI%i7M0z8RA9CaP}~V;_>7kLt?I@fW{WA-NU#y|O?c^w5GjVP*)ffD zzgil+XE1W1>}%4fuPX|UYYs0qB;cHb({{$SHUzPszaJ|c2e^hlgkx-a{7nSplOFD*p8mC7(H116|{!Z z8X)=^o_1b#QZG5GTB3>HB982TtV=?}LEjX;9$jOceK@i9rS(@(@Q%l86pOw!fo>vA z(!WU4X$c=DgNz_2!WzQ2K&_arIlBd{8$hc7@UaE(jS%4ud)Il@D@XA%^+!@ds55iw z8Eaz6#%d6;T}6wAr+77x3u*p4O@}nCKfl$|ZiE5_nle{UpGp4OM%A1z?SF`VbxPUQ z;i(HWatK#+PG|B@hOjPw5i#=3$mUM`(b1s|+{b`D%9zhi(915+;Tjb`!?E|#5mmzT zU|}WHd(A>I>~qL`pSk0L2h{9QR#cL29zDLN=L=K#{+s_2NHxi`->SyP_c~1;J85jL zZstmms^H0)#O+j$ANRRG_d@y#eu8-hjW~BYa*c~^xpu?J$gZ@{S6yVx(47^N%Pi;4 zxSOh`ks%2t=6dW!Iyh%y_{z9J%w%aE<0xzcT#~G{C5Q?X51$aHLG@eB(52 z%;B2}1Q&M2^MvfOpd}F`v^mMnady6QdLG%ZWTLO^n-H|n^vWAd-@*3k$juVrLO9wJ z$FvCkJ{RDl)8@SIEN)irEWLk*{I>)d+S34YNl%etQ`Cq!d-V!hoe+k$25itPP&Yv6 zWG8A-PincH2%_@n2WQJg`iHR>`VaWux$?(TP=Ibg$npOlHV6O@?7}_?{QT(kE@jt^ zFHg_vCCVhyItkAhQM%@4=<7U;yV;0E2E|{CjkfEBi8#_Xz~;7|S#n*kNbTM3e&yhY z>qL(*C8K8`wOdWPnsIHYst8I}9z26aGN^ns<91Ltc3{Gp)Y~R27%$tWj1M zrlfJtT#7mn14nkG7sg2u-{@QH_nC|o=jpFKd;e{yZ?Zl?@J(gOkp+y}z2}4{ zu3Ec(`JlDHW2)zSQ-S~!SO4ANXIsprbLpRa5;J$Rnxl#p_Gaaex5* z=f=~@<>XkLcb$71VSK4cy@B9jtB-xj?_n2foBtp+*)Ac!1D z?_%;k8k3R`@qb1C6#=neQJ22A<4W<-58-*vsLpHf!;e;o_RXbva}cN(>+&Q9e4|0r z81$}^7K7S198xCy-y3zOfKL|mjRoncoH^GfOxJ2Lb6O?l_1cGqpP%7q6Qrt;sT+pM zxk$9@SpBxme$5)~`7`GZM!?HB%%w+%(Q zW2-T}sR7!jeMU&>Q`lR)F(U%L_4Um99~++U$6nm!Z)$z_-v`J3wTB)1a25szs%ygi zmFZ=r`=6OlZi+G?hkdix9QWLcw+cnR*Z6W>6zNYBHtp3ktS~8`? zYey~qA*B6`N1f3fJ7BTi&|Geaq4!cZBkdEEyd2f{##AZZfAU8#5Pu^HoE*vF;GIW; zIsVZj_XoW%x0m5wH99*Y=jTdY|EvN3J3izuouw7lKqKv)1b+jMcLs_mIRXE~h@(}| ztT!zlX)s;UA}>!4roeChH?viTu}J~4QN!MIKR*Bc28VbE%z+$*MVIqm*8z`@H40GZxX>@jmtEXN~}F(0k5p zdy^*6)Qg4m%p`xHkRM6qI(OiKwHegiWL{MmqX(3sDd@R{A7pk2T>gpz`&5W%)iRtK z+`g!)ugI&ReK)yFi!jS4{Un*s_*ZUUY;d3QJ7Kr|+UkQ}{O$S!{K-h>camL{=-gq{ ziTyKEW!E>9;dzlkcO&^s-oh@6%Z^laH<4Z>dpu1ZUssJ>j&W8A*6(Go9R_DvIc+4B z-%q19RpbS|4qt*mRkvDp; z!B?TToQ~rO-$NNCJFs_I>6Y>H*uK9?Wnp*A*xA(MMDL);`83|im$xS-$J~M+LcMoi z9y1_1k&-4w3)X%}vn1r$ROsk((|Gfs17g^%zsg-r%kN!x45r8%}C<@_u7eh#1o##zZzq zLQZ8tImmlsiLacHYtMVzinl}iVfmlfKX;^OLD|&HCxc*$=G>sU{_nl$LXLvZv~&pk z@W`)7Sh;LaC$u9+D|JLS0W8=*b$@1+&ac!%HyQ5Sbn>wXeqjiaITGTHhqYY8K=9#&pvxAQ}ijFjDNvIH>iTzWY0UvB}?K86NUC2-5A7! zvKyT*d1c`}twtC{mBr&&)AOURV%1)iu_cp!<9{X6@Ul`Y)%TE{dRCzEZyvWcRngAH zHF>8cGtCuO+%(%Y4G zPfS(d4U8t76yyku_AtY9Ul_^QyE%N$UZdPIr>H;j6zCg7Dg z=k&tYcuFzCdH1@A6G$s3h;s!xrDRN)i|6A+NiL8Qj;No~g-s{bKnuu3%79kcTr;OtM*~ngTVL4PqJuC=E``n`(+Q*Fh?d72K}Qcng73rXg7P<{-BnmVA>>@LUcxkHv}|KL z4%QJ45F@+OT%H;Bc`q&bYkXI3y%X^!RdhdXAWw5HZKXQ#K4y3BA|7k?y~`;-lMLX zxnpJXN1Rlp-D%5+PH>QUL57-djLV!=JW4xLIoY~o!G>HpGRVcstyDv!Nxehn=P{9i z3GJunNoW!W2?-{j*Od=O>T*bU=!I~~np&7ci$c$g>2mQTWJU)FX@F=DKSq(Is#x0d z`pz$mf45gwuW#XC(9}_5d!nYqm@H_%Cis7~%&+p%Kdf7p1tG8$KkAhQg&;L*B^4TX z-X!dmT5EOw9L|(7qb=^-lnyBo5*M^deU~Bd4-hVB`>2ps3M21a5CJUAMFncYwKIN{ zs~a1xcPR#Bve#xm3UA=MSdT2+i<@4>Ha1}Mm^%_c#|a9~5Gz$IYcCB-ac zWLyT9J(fa0YM;!btA6j9 zeS74jgG?dvXO-Kld8mPFUeH`n7dB+_*3+3O;C%2J9%z)sFgjn>%7Y6 z{nHKp!HW4tyOcc5dgE)K@IO!j=5 zbJ}-r7aAk8-RG$)+!<&1RsB@YL?mhtnFOzfO0e<-)*O~tldL5!impFxfG}$_Lb9G@wVu1QTA4r5zP1cD`M~_ro=?b` z71`ZkZ!X>;Q{ciEAB52YkiLkehaG7}R`^C>=U{3Kn~EqH(#G^h918DiB_ z?|HFzTRFImr;h7Vm?6D(j|acW=`}JE#-$HoO*uPH**0F|_xzd`;5!HjmUpV85zd4K z+T^nMb0aCuL67_F=i_O7xZ6e3?xhNlUfckN zRG$t+_x!rtRS}Pu$;N&z{c^A_VA(*h9I8H4lDv1o=-N@?3m1Rj{cNcqKeV8hHNL76 zvGzYc>SDgJgJ1Qm_2hr7;mL{fNkJ;v3vOYTCp0?DM5Dk$-GVE@M53~~gE5K)p(LoLgjVyC?RU!gyl*rI&=wUJ_A#17Q20Nr*hg#2op>osSu z3zNIHkzxAY;XbtchaEt@HmI`GhoEa zGOgMcGm_BT$*y#`wF8Q9j^x}B|ITh1hnA0~FC{+JrsNO!Udgr0%3UZRjG3P?TpvfE z7j(Q4RX3Z(KKH)v?b|_zUxYOfGA+zEnxtFc`g@xbh1s1aZXLu?L_6r>Rc)_gO`>dP z$5TBt4Mwf5i9LIw$j**Nc(;vNni*9%0GG`Hat6Vob;ku(H@TDl*mrq%(>I##rYEE> z2DMVth26c>*%2&fmRa43{oULEkqbEbWw17Yak*2r1(`@7x6!)Qt`u-_@P2u|(oxyx z`YwTeunH}b-{m=?`Z|?Ue0k9eU>Rs|9B*@ZX01?>&>3Ce)+t>TpkhQ%=g}E`bwUC} z5B013^QCXaM1IU-$Af-$C@1;KrLCMdER1ozj2G%5JtwDN3Cl-1-gO!5{_2~Ef z*8}z!7jc~q37xsFL&9G#)9NmA@Y70$BrA;+#sSF>?J-nz0{;eI_gI?4nR!x$PV{ro zZ*6$YcRL1eK;w~0^KJtGhGYH46^38->>09Bh)8SmVH;BOtZCTBm?BugOk@Wi-|)lA0a>Xjrv%O_ij?D@F`r|pnq+{CHMKdBXWht} zA*F?awfmrxMUG#(I=mS= z@+vl->2jHITBX3|@AK0==fqsy-S8#NZK12_FO~8rap#bg%a`WMmL1Wp&I%o7xvp%D zwQUmPclIhS=GFi0uIlD~jyd4Gvzs=VS5#-X*MvIfH(Q$5>zBoG)J}N13uYP9vsSFM z<&=jm2eY=olSUkc(gNo~*xBp^zWa-cgFf334X54K}@ zm$;*Md{0W@W0Qffk~;mo%R_XSS%%wbMC=P|;92$~GQi8n&s%%><)?YLHf_;;-zEdFebJLm{f8GGI8kBi&7VNV z{#BpdJzkw%SZF~Ma8n)D8-(@4L-@XIcUR(7`ZhK)()i-%S<_{>U$bi(ql4VZuoI4y zTA6TTCs~omJMY_VOcfoj^ExX9oqM z$7I4@2>KOCf(rSZV&okvLEGM(fyUGbmWK{NRcIud_!x1AOSK_N;S6U0A|X@iDw(vN za}G^L(SGGe!X5ZO=Kb-(BKOv5t@Y!AzwnWa`wA33($7APNdmjtS z&nw&FFcW+IhOAO=QOYbWyn`uEF1J_sz79l2vY?*m5iyKKSn5s?LA|r%0W7@x!UH*I z@U9NK_l}vD4SEqV(6%%D8n{c>gV2w+yulEI85&Rz;s3*)!~f1sy7yyB;jT>e(b=u* ztIaZeOGzcJc<-{|RG&b{yIY=h(L24WZ`W)ok&WBt*8iSygFSn@lM0Xm-mGL(!Nq)> z&WL_w75f%tm#kZa=kn==%2|P75;%_UM@q`6tU}ny-*90sZ|O69e>41mT-N^HE~7p@ zr3@Eq{#}zrfx#mqswj@CbsO?{~4OW&kNxApqRskRp~zFzeTh8156i63{xWPHv>{kFKZ zUf+aFJ#-qB8U~zxuII&z@Hs@Qn?AintGmp>&nO#o$V(xHxBG3)S;8tCk&O0os7A<{ zR`PX-hJYZkTZ9ewkVzFEH{sRkDi)R>bhJUXv$aT)of4C4dn&x4VObuqwM_Cgf-!yhJ==UyLP$SA zUWS~C4xcn{m1bfW>Tn6pRS7(YHw!e4YSQ(Z_XJ`&#|1*6W16IsXX&kq z-b7YtSj;ZG%+ymQh<|zssTYLA&?e*N@566Zvy!|eVZ&(&kNoUTmqdpPt}ufOz~zJ^ z8y@XQelb-1C9X#NlzwEMDe_0X59}No%0P?{+kwe_s+*-djyBKIZt0qn5yHqtvuEB zU|oZ|Z92=Pm{!#Aa^f$|i_Uz)Q;d7)q0rn}wa@Sor^!u}h&dlOQncW+4KW)}5h{)F zsAL)Osd=Pkenxc2)~VORv6VQWstp-zt{P-1F-SI^w5fWkj&zN%IzGgCVqkh#!gE$e zGVMM0AV(>8QcZ2e8Rkk3#y}x5l^!I4F0EJ!kZ@ZY(FIk)HRP8{de(Ue;m zuV+!i#Opayn1~Q~RwT8G>{n?u7AO0EqvgGDa{A5=efjRK7_+{$6+ff3r1#hWQXSAZ zi02E6LEqySxB)1_Qc6n`7LbTefU%U)ilu*wyo~-)Rz_!l)LqQ|c$KId#6&vSQ}y&} zE)!0h@)UB0Df2AYplHo|6WqYuwTokC@l$O*_sLgIFErkt$}VKBV5*L}z*B#hqOd9l zcQ3MQ;_7Xe&?oBrH2;93bAr2bzsWj}J?QOjddPg}`gjMp4TOcP(Kz7!Xg~y9E~cAD zav!JF z&-OTY)O=<|66n^rxTZ2_)zu@RI~^R`2Oclf5omC_f1EC;xbJ5xiRbx*Y$(U5I5E97 zJ}BKHtJQ-Z(^_#A${=i`+E3kQ)(4c!OgqgvJJPaxk`F@~Ac%DKYC0xr+)?2uP?rUh z_njKnrd)O>ZUof%#)>0qCpIEx<`z!kxgp3r`zy}nEr^<0V29fyrxc;g-Bl8)BU*S{ zDA1#$h|)1$E`Fgs7ZBhnot0*>qE={+o`9HGEl_+!ykvl6R5CU^uFR-l==+xRLEuoy zoCox8i}Ab!$LLxwiI^B(QZlEA)7i@LS+IMvaCDRk)@I=cj0DVzEC^mh(Bq|s8@KhC zDo^Nk2~mguc;+j`MCx(GT*4DpLy>6GmqJIh?e?rlN*BB!Gy_5P8SO~*FrgYjaxeLF z&|||U%hqFLG^)R?pkeQjr!AxY@}V4C?#8TSm}yRR1gzp^uaSmZ2%Ez}SGl-?pn7Z+ z9SY;}39GH|RSwTU0jeo~o1ik1Yj{Z#`e@Z`##-}w@yPR1 z#)g1_Z_`3fJJ<%enL1cnD44=fYo_-0miV!%kv6Z}l&5 zVCw+zAcR1ulsaO&7GMYIO`!`)V9uyX_^>Ke2E;6R6i+CB*l4Jyo{|}Xb}XVF2*rU? zq2zRC)J%aCG+c<%eN<10r+|FDD0;R0>;p=PBJbNq@(#(;DV=9xj}yTc+aZM*(DVx8&YsJ z%r?AZAYkOx2_bG%>$Ke)wq+|JI8OJ2QJV81SBK4{R?cN57rmI|9sCFj*Jrv#*3t-U zoWCmB+6nwJV{C7Ey0h86EP_jOWUxO%S50Cvq398h>FrWm3G?CJJExI`ES2Avx!4#s z-_;O*=zv#^@)7QG=Y)Al=S$io-{X5?fUG3F^X#ry*&TJ(6P>4eHRJ0y<|s#+{5{Qg zGlSxJiSh)w;SdVDeoyQ0ux@O4V~N{Y))ZI}?IJj|l8r`Py-1+TOfwua>%U?nLEkd1 z2Z1zh;!RK`A0f5jD`o`;T`?~6LDk8r{R1c%+Fc$iM(0_^IQ2zW(~U%o1x$Wq?p@aL z83yXe#%BguDO}PB*K)+neMUqVC+UzKD*YR6gpESy%Els84pYi< zBhhI@^oI+|K@fe7iNyka2^+z35Yc(sFC+-Qtnt-L)OM(ovR2F?%5?#tkrx;0kKNk? z+#{Zq@^~K{1_F)9Z!?LDy7PjTTVV`-P@ykOos%+pH=O)D^WC3i(yiBXHUB4812;m4 z%wba|=$5JMC8%i+laGvJv3gRgwwKb8J0B$rSbM|S8 zwFe}fT9&T4aX80KL?EDNsDnxkeTd*Suj76q#X!BsLU6jgxac6EO!DR$RdcB8=NDPa z1P)N>gw+^qdf1kA*dRWt%-yMJINk&?b^-ALk?4 zd0uOd{K6^T)oy!mdg^`N2rEaY`NeOdxbsz7aP&~;GCaVUJ^9!QVRqPLUC{Bsy8Y2O%_eovh?Ykg-*SP z5d<;>2^=WgGTggMuQRS7hF_Zlukc+!&eJJ?1Kx0XIw|nP=>XRN$p^XxR&$_q-RO=H zm;ga?G%Fd;bn0>xsI-6D*dj9{J$k1)ka#+O*wLxd3)w7FR*Tk#_-0c$p$L!jN;$p0 zFAVuj;o1~l^x|>Js~Kmg$@Q46g*v>cBOaBCHY2aH!ZSjUrt3MP&0q(9K(pjr9+Wku zVkH-EgdwtYzn&-FG0(l>IdErN`K6VD#~7Rmthr}pl749ptE_Esy)ED#lj>N@mW13| zm^v2HHZo_U)!dAY9l|*xos5-->FR(Da8=tkbJ{vpRBECS+wYgIti0@&YfEYS>47E; zhn=8JD*w&kN_8VWcMn>6Ycw4JR%Cd4Cm+)-#eDHr>1U;lHlkB0%}?_#Q4gh49HZc% zH4=0Bwg-8{gM+7Yha`Lb6jm&J#N7V5=5QcT-*M~^0wAbKwyqHKESqukCp@JmB+5G+ zqOqoop22&E&H7#NThx`nS@ zNmdTH4%4YdhX-{%ce}K%|JMApqf|H*2@NX7PS--4P**x7ay((btCMy>FeFJDpU?7% z6&%8AM}~O9hT+}pL<07nZ>}c!{tgCyj8|_1*FPx`+B=IKW!-`n<7B9fma>qIwv&Hy zP8RQ!NkU+yJY@1XHfb%Y(@B)$JfwyiUNcD;o56yznR?>TaX#@;}2 zl=to_qlkzRti}ZNeL69o)R=HTTQwrtz#RC2OHZGkD(*CUZ@1dfZ|u!Gf-U@8dURNu zAX}AuDyAX8cNj~0j`1@SCK^gjkZdSy*U7n7`~bNq$9mjP^aMAb9xWJ>2f3l5)V)(6 z#xhU9CkS7T$1_vL*DaLT$fS~xVc{6Mno71OCWoXXJDF|F7Guz}Talr-!Ed116`F3a zZ7(9Ue%BnEMK$W9+)=!L?7_QwNUv_h%q&9(RNDF1VvMJSEE8lnm~TP`08?5N|Mkp= z9u=s6H+U2R;zJ+bT`%-B1EsC7hAFZD29Q737@73H$eEpB^i@GGIDqmitB0Q)8$_ogammbtfDF z0PIWJRC<6XwDUDNd3rqdZC%L9}XX%7FvMF6BhiMc!(V~ho zYrdnYVG(Cq3gLs##-1SCfpcS_ns?sh zr5GyxRO0y{{JdZdAra$0%rd$5)j)$!(0B^r(lEH02HF&Wb=lZ5TblOzO{6M%qAk`@ zapJt_CsJ{KN{?kmP8G^nA;oO$dpTPoFUVH;VN+cN%h3^b?pPfkL-i$}9OOfhR-Aux zinky%$ypHin0|LkQnVA17NBP!e328i6ceSJ)@Wz60eTs^EsIp4XUQZadn_(&&fOHv zwh*YKH~7?zsOXip!i&Tc>gBEhc{vG)BYcZSYdxJ3k(vfMV~!Ux=8y1^Xo=QFFq}-P z_>kudg4Yr+P1pC9!aBfh*H1*-%d(gfs3^VD|QGofr6 zJEvjA94Ai7xMQO2O|1@BG2(2mvfC4z`glXn9sEUh*tzzBJHXu@+e)uh1npZwM z0f>Jh@1)$5ZYy}2b0gAu&O_9Ust@DUK@$nIxf8nRZs}+pHVQjObYH4Fvx~^C{H#`< zr!sqZ>70XSRs8J&BsW~g)Rv!3nT#u8?pgWBn7z|f)3Ybs1(nn1HhI_ITj5-3%SWAZ z0sr0*$*^FTIZOm1MnpWk`dv2qiaO5dv*+g1-D73x^jFd|Z=2Y~_koQDH`dspFn;uG zn_99A!$~-U@CeD$vo!_Q5o;zcq{XF%IIdeeW@5s?~HU{jBz zP5KrH zIY|A0u3c0!^ee1$2gq=(w3`y*+f+Z@7*RjtpqD;)epw&lTpxoUADEMp!+A+Vk0TNa zG=gB2-pGB-W?kzS19ID7`8^I)Ba+aCP>T4C^dvWcArvIS~4pmPpTa%5}Nkb}UWrB-HGfa1v zzkSEMgxCq4s8YIFPOg|4gt#g^c#*-89=@&D=H5L01gaR~o-JEJcKmg2=+_3(NOqCo zgm0Y4KHy!`gL!GCCiZf3xUBojfvIo3=sUA!87mZ;4yJRZ_a?Ww>uzC3-Qn5B{hIc= zkR|Vrb(cDmWVk2W6KEj_d|{KgV$s34H+%FkC5=$6M!aHc~Eu1haU zTv^}pB2_HIK9WqiiGrR#pjwww{_7*I8EYX!R$f6tU_igPK6Xs zAuKOo^;@WF9rt|Pnt2?2x#tWCFerembDSiFw`(AbXKN>CQ62$;B?+}R$j)hVJ5HXQ znu5RW%)Hm4&yKV?MS(9Xr1ut@|0AX>zWWkD-~4*|g9jW_2%H@~Up@>eKhc=rGEKtT zDog9ySSlOsA(<;DCs#r%Oe8#BbCRg*tS{)?Xtdj6dRCkBylgC!GPem1zr8(O{MJw@ zSVw9ADc9RR-{teDj_u~0ip|`hEk^i$ZGX>3I}vAgZCs>t87tyA5ys29N%Yx{Z!l~} zhpz0~n+m|RLzHQlGb7#_4vAC$kY@e(-rdC57e|VW`B#3u;vk>-*R)?rUh;Rcuw7I| z&?DoeHHidp2V1`as>%Y#){uJ+_)O-5Z4q9b;#j4#vap?RKW00a2tCJ;ZLw6cqryMI z>=}W>4p1eZF!5)wr`*WS`|f13C!<_~!;VtB&=Ik7Ev|>D@)`EzNa8^Xv2~AAjo7bX zNE9=pl6AW5^Paj{NYnw(Uhr4kY6u9>(*Ce8jNtHv8Ro)DszSigNAg@CJcw)nwF>-# znNkzwb%R#zBPRon28hAH;Kc+yD?LkWLVwv{3IO$aIo;RC?1fUQuabAb!?0H|6MJ%U zR09>N?f{NP|18*xX8^^~2XW<7_~#)CNJGhKZzBPMg+8oH3dm z`;3R^*JEHiEr#=^lm=0+K58SQe-@%l3baE=tA;|A_D4-OzrM#qko(fi!Dti zfH85s?52&0$9nd`OQ`~&jW@rFit z@}n}UKYH`~#M){RuOchdN;ZoOD$>ML=N4Q2|qDEDaR%-a&%K~ z^Og|lk*4;2&G27(r}wX^Tj2QGmF~zl3=9W#x>KLiT5pUuxBW>qwa#BvDyzk!%Y`rR zVQUh{*yRoXI|~4>#&a1}s;@Z8IZKv+RxN1-OzZSp2WRVN7d6!Hzby zh{3g}6p4ym4PUWEo!vrv1}fMqSjWJVCfs21e#4137$Z(G{wgqm|DZf-ttvFD-*eG%7Mgg*o$3cHzk zhO-I$e7wZR>_^P!oJw0Kk23C`%o`aYgWQBZn$Fb7bf`1fZ8F(+IBPFZ_tt~Vwrx5H zYV2jGg+jE>(=|LV$j%kkn0oo&4cjsz$dTf6zj_4n^b6E$_#FW`y4U);R$a+ixcb#J z;>3I50<|gLs@Y@G3cG$lUr)(PNp3f<6mk}{!jEJqHz$Xd zla&QcDN(f@?Ns?W+eOK1kqqm#FP_b{@AzHcrTpm$)ax-sm*1nwh01Kd3uxIb8T*yw zg#1W!;L{^1Q?H^DHjuk|zGHn!T}WS`j6tD6S5uETYc@GdC#G(xI%er0x&dUQs{t!> z@Ibm?WVuwjL<>&Td#+8}nF)vnl8BN1L>UioHJxx3+}#K$N38mMb1U%C=_qaT&FOB| z-j(sppi4@H>$aL%?yi;l?7(sQo+#rJsB|D;;htNXr461#)Es(oO*j{6q#^tfn1PIPO*X1JA+?gfoHh z+p>`8QX*?m>pOiiVxzX07H?kIm z&T|`gj3Bxg6scA#zqSkhfYa93+mz3c_7?k112tUTXx^Li3q{UEb?OY4pO!0FN~TbL z5}xjhN3=T8B{qsQ_1@E353r$ddU=2;RvWar(5$KBJ3)T~B- z{XV5gO{g9L*NE>*Yp-Mm5}@+yv4Ixa>*&6Gx*3}xhsqc?kVM`A+x&p2=35mUNVKbA zzGnq7$DQIQdvW`Tt%I)VJAp3p-x|iI0?P&u%eK!n&Xb*+UFEMlZz*5!(=0vV6p=*Z)mNz5y{CJAC!DS(2t@Op-W;c-6BMBUi!h^-7880%Id5ox*e zCt(|1xt<42XTE!_@8&@{^B+HH$A0C$9gDG#vekcX-1nC$DxgW0_wdKvJhBc*AOGgu z?)#v4Q@5hu;dJA=!$_f=kDJPE^ShHcv?XEbK?4`20cNS_j95 z)XZHGGDbCfHF!tpW40MRIlR=x&jlea?Enc*oWJ#f#FEbH9_6^9T~3^$&ky~noF<#t*4tdC#*Bf10x^KCDDk_K42;D znK)kW*%q^#?SR%ltm7@+;yfK)Kf4?~i?6?vZTss=L5^y2YIEvNhuA1`$p_jbLhxnv zGaRk~pv98EW4{M6SPH6#Ws4>vP_+iX{s5u)U+=wys2x!uOw!Lc0O#n#42%8!m+Bi9 zN^M#+m~fa@VkPT(^?U7fAqV7hKIC?o_U9G@k@|Gx&Bb)2gVE@!Tpd#OarR|#cb-OT zmF1y%U_xU=s6oUD6PkX;@H5yGXvjJwz0d@jXpr|nQ^oO(-}o!%<1WJqWHsJfH9;U( z_FgZX8ro1cUyh0rn9y**5~`d}L%$?1{E1JQ%u;D;pLr*Oz@Dj1%+E@-P}XFJk`Efc z`jt8f%6Ztpz2wj;D%n|K(bJiWgfNyWr@u!(d4E+sd?cFvt*CwBsKn`+^+VyZIcuMu zUttGl?R+Ytc|rP2!`Ozam27l_Rfo{;*TM5=pGfSezWYi$Ly9M9cDmGRs>((6qX{+a z@4%G$?I56O>ZRyB5t1_b1eq25u)TxNUm9|Hq$|xAQ_SxZ18&U&Uf&Rf;Qz_5=JN9!6~eJ(I)%rh7rEL)CO&x4~5{He^-C{Y6O>1V>Gi}jLo zIQ17}65>r-w2|x(dnFgR0B&AzUyMKve1LlTyB{t`jq1BE17PE!uIh6ItsnwBj=b1r zi@sc_|6eC2=shLSe91FcTk$;7&~L9dcyFS<&(ddkwn&Tm^+Rf{9G(q`xW3$7WEQwM z^)hTA0ku9&;_5zTX#suKkH~O^2=bm9iKWbI6G#Jh>7$U`Km`t?VaK2q24iq{>Q2g| z1dF4SKgb(G#B4@Y&u@xQQL)y6cttT&@U*e#F;JvJIV;q>?B5E z%41wj2;+B-`GtS|R@4+@;;vIhs(Gw@E9#1{iRvbTuF&pP!OQ;RWK16A%iO1BN`G)-zyVgs3|FUiU z-jV;}&qRaYldNN-=>gj;FO}aMnhmW{Un7ULH+Tm}@aA8)lV8yYK(`cQEKMiJUC2A> zuk2C+08{RyNzg#rw1%bqu~+euC{1GLakP@-g+SS3oGaAdxrp&AEQ2CXGf#CrH;%IlqBs=>yPEzYv0F zCq#BL+{v8fIG?~g^ zRkD=}Wqy*hjDDIjBKM4(_wQRXGsf%Mv29-pGF7F;XF3?q4Yl(|fBIXXE)JFC6}`c^pUj!$5mGt}(5XekrB!#aUMO8~dNF?I$(ZnXdLRSLvZu zDPIkx(P#-E+_?MQ^%Mg-S$_Q2fUp!S0J!{rJ62>MFBBedVgnMyiN`l|u1Rm55Qy(O z{uV1$?hwjaH=K#kB`295S1;!v7eyOX^W*(8A9y(trRZuBFbCwv9sp=uZd+iW0A?Vt zcO7_eo36PH1-c^e{FHyH%ef*vD zNk1(5)7Ta`y?xa0^?M_zN`>*r7Ykf5-4k~r)h3gY3iO$gaM+=>g;&Mf(g@V zqnAOimvTnmeMpicn1__}QieJKbvMH{uQZCyN+3Eg$@Nh$kapjYHq8?u_xKRH@wwvXX=<)f&_*qA~ zd~WjgRIqHNclcCmVnOPB*D|w?;4?+UDKu=)+SbWZG#CXEB{3dgo@;LS+1s1#P4tS$ z4xa)dI8)hcw?b8)+i`;jY|2s#xB(*yB{=CS0t@U3H>>AleU!OwPo%q)R*eE(@U(aV z{f}I`H9vS2$!s{ z-aoM!Z6;@tZP0qARi)d+jm08XSHS)j6ReYjyzgZzRaqLKMzgN&M`Rs^KkJQWA2{l> z5|VM-Ep;*InKp#arryI-DFQM0+r`;GcrmoJ$;%MRmmEdSIY)1cUMoQ|0LBR&wlQ#n zK6FRct9Cp>pJ&OI#p#W3sSokvFG`2O!5zFCVuFE9VBR3@t;UyLt1B9MmIjTk`n5y3 z3UvQR^S+D@Dq@|7mk-Rp%Dd}ezvI3<^BMQJw%=K-f)Qhu{dAED9lyNr>uc&@T<22N zm$upmMH}*l&&jJZK1MCt3{2AwM)pd6HFGt6RXD_WD_|ECh$QLM5x^4Q#m-;J`hI!_ zXnUny#ss=@0o?e>>GKz^_}D2;q`ds(BV>o*P2IT_uldgjwI*8Molv~i)i_~a>+xl~ zfC0c9urzZzphuTaIi6sRL4wJlvOm^!gQRLoj{xf~mQmVIwBFwk59Ws=Wo7F|#Y)|GKjw)TZj}=A8OK; z8;8f{g^m5q)i64ou(XMDE%#hLvuNx)uDJZV&%KUWFg1$(XG?L$PmIM??MA_~Uq4g|4 z`l1;4%#%?83BjE;)0#EEhVxG$fjzD}Ebg`zef$dY(4V1fA^mSsOZnGxcfiq|-s~x@{qePl$XX zD8z=~&{zE%8Yu+{A2Ueb-JP#=Y1&nTeD)#egD%QU^0t9%~bloj#MYw<=8#W(~ zHOgm0zlI`V@%|-Qx-?&A@=~Wh^;)LO<|A9*AngyHsIsgVb>k?|CCn~x2O)oo)9m2< z-0G=1$|j$fV%dTTBsfHikH7-plhLN=Gy1d8<&iDsN1pgjCYL>U2#xYJK;o;nAsBcX zXn%)M?=+5=QvL3gfDjJmM+MWnd41QVDi%5+T@H89Y%N);>el)4IXZtR^>wA>8lNkaZ`2m{#LoNN8DK-<;Kugni|J`h`8& z*|@%YlY5PTY%iIv{XSz749I>ahv3NA9;5 z`jP3A`nq3?rwk%8C)`Y8HHwz~Bj1@V&K>KxxEPRcbZ~IMhjyhxhaPqt7yvPs7Co9< z&*!6#EJA-P+zGW7RLh~5F|B45imY+rE3)X<0YdcSy{Pjahc@$9vC7wS75qqvA-QVG zvDPG9eMHXf4RFbEt7<7CG}~S|*^tz(>odKqF zo0f(|zFkY9`-4(dc?3IAVSvo6BR#pQb5}?>Dta#;h-((9>U2B_%2q$in;)S0ODmN> zEb4HRF+m70#~{Xe+^y_V-v@m2elK~K4o7fsEO?J22z0vLH%ix;-!HB2u|;VbF~JbZ z3u=l#(|Ht-mGd6T!JySp=Z9jJ3xxZ+)J=|gq5F}Xci1XZt$W2<(3I=io8OMlM<$vB zBCF`Q@ZEc`IKV7-EM;!q@F8bKgSZK&u8rBucZ6DQR?Fd-S0{iDPrw%dO0jz(JvQR( zDnk8CU*OUJ7h@*${mbi9?$MSY0n(%7&)em}r0nMV(5X9pNcV#wySdjvpkwF@z2CY) z`~7ndM%f>>647k45fg2`WjQcoV-j^I^-W>cb|2*wcdqfSjNNh*-I-0>X;zdkNZDdG z5)p6dSYx!;Mz~o(syU~<+=aXAo?~Kk$C5_F+EMM6TW7LP>Xf>z+_;_jW0~Chae)LH z@W8nVjkrV6t&ih`xMF>JRM`=S{;8QEAw&2F7u$wLUd`9g#Is|WS8A<@BX0v%1p>_% zI#d#k%$zRp=k_wNO}0YHid7I3OUf8ZO0*q#neNVL`Ed~?h?&iKPiCTmA6PvTS1YXZ z5GH_qG%Ag$j{#=We3YoX0V<6G<co=?qd51Uhv8F96eyduyAM`Z5SWE7Qj+y_jIUuh>GuAm6_>wJaZr~HU^1YC-j}z&3k!W+26!h&H)pRRPlXg2PvVyGw}NS%Iy7W=Y9Jb z+KG>`232``AgSsVJnJ&E)V|)oM~Lu((bVY;LOsV-uyII_9k*A-2f7?YUmz zlAXsH`H1s0$E{0r*W7G;A1%rz{2t`=vi(>faAx>^v*9XlQu2{(lnNNp$b3jXkoH>M zw#Ai=-7_(nnYi;;_w^z{!I*^CI_&Yb+!qPn;CG+S2Av@a%eZ^-r%_dDdWaq^;5ty- zkJ>^3GK!FgSR_6~mlHaw=M3ASWy~-)bvNiEC$$6?s#Dob{xO90d8^Gh*bo%4FslM1 zR0X{2cTnF7=10-dXv)396ZO|~xPMQ32wkGa%avsQo%edYJjYYIkzMX%Dw?lg1K~#= zSp4ziQ!5Gs7v4uUaKF*TS^s+?@_QZERgyxX(4x`wph?z0O0Edo83lW~ek>WFK?xB& zF)7PZJ>lPXlrJVNLPJ`$qL8Kl*;(R=$P>mBupD+dQgEV?_s1myJi@j17}6VQyya>} zi!Qt3qpSpjvVQlzC#^Bq`6Lf-@=<5w**W@Z7Pb17vdq9uIq~+H$8)pN<*>0INpzoi zoAv{xgq37JJ@exf?_oZ{5ZaXY=vANmskR^z*Mj?$@bqoOn})G>`@k7dtrc%F?LD&( zN&T-X;$o1`oUydvT?WwM=0|Mq>fVR>^DYSB+Ta|e!XjA z>gpB=9iTel1&PD;U z9(c$CCWyO+Rxbg7+1cTNN%f9Q$HRVdF)-Mf01E|H`pl| zi2dHF-<+mi#d0v@EhE>(y>dB#pm#|j@<#XX?y554F5t-7gFph%I>RPDk~r=gZAc{D zvpN=9GXJJKtq*}m1Py>(Hji~7FEx}<4m2u+ssMei{=l0U1R;@h;#z!8|ABe4xyGLn z9fJNoZ4Tr;QgEY8Xnk6^^n;sN5Gw?!lK?}4KKdJt@KSs3mz)D6K4A`!k%l!{LXP-r zFi6p)l7MUrd90%?1>8yCXewgcf$R%RRC*URSuq|ChBjDiKJ>;6 z7~m=ue<-??9!CDbSE9u`>6$#yc8q(rP8HF)ERl>7(@a)xNZ{27y5p9y!n*TheSvI2 zO#PTsC1a}b-q$0Edall7lh=t`^C@XwqW5*LK3({scDql9Eg z_G!YMA*Y@$FEIhz7;^x-h1s+aK2a=LUU>bh|7Ss$a5s037lZ=klvz6m?6L6| z;LvrBUY(Z6xrLjLrdYso1f-F^&2ZC)i*@I8@tW{eo!0U7_1Y z{DDQ7K~a3w6s0gOanENKg2zRN)^s&eFTkA|Mb_BW8JmgV^Pesir;+qnX4F*h=@cTt zD+WZGwjDL%a&D&;8@zO|z`nj_{k#g-joT|@O zTkw}k@8dUrCZWRE`U;=hUjt6AVmbefFIYNk4W2sZi?9S=0Nn7o@44lcR3vvkFg$L-}nk0+q3$U`osIU^(tTS1o* zzBLi3|BVb|#0i$Nv=38b{Sa+LHKW#%#}KL*;pr$v!>+m<>5eQy1ypR2_#>1q-s)UF z4$w-Nar1e*Q=SpukE;^B!$gTXL>x32_4@zM{JGoyTe7l+Pq4-C36&7kK!<*r?Qrq~ zTy2&@r_2FcUn#fgAGr=4`fa;Nk%a*Sz(K&;fm#qEqLHl_=%__rLcInmN<>kO2di^e zwG=*;01!2J&>i@7B{;0Y$V4iNdXVj#Ux=|yyU9nrJ&{`?-=&q9DU%+tXGZRQN7bE& z+A`_TAzMO+LoT3wfV~IfOUi>f%#q)&nga$XgKzYlWXig%Dd@S0nZJXc{z9D?tF*tH zRU%4?w=lBPw{Ga?U9WApm{dsbb5*1<7^ZYfYeyh!eLZ=|zG_{!QH*kphs~Q!$?H61 z+|Qh&f9>AG`-QRm@6fbDyjtD3o?qX?JL9xUY(RfAe}fe-e;$eg`3;a`a?4Qby|QctjuM<|1vx(1@sak`bp6X*GVx zrfW~w+ayvC{8qG!^$#;s7bF@Tj}v_-x?eBEhIVy_N&tsf%%fE+#0#^({#X6R=u^zr z6JOUkZU*J5=qusU(Zb2KZ`%H?k6dg09hUGJ*SWReoPHyyC z-uI%hscyM)C6sVL+WtO*j>{<0J78cvE{emG;0!w0hvyMozs|bNT$P5a*1};{xCcT62N4 z-GtXnJ4zk_9lJ}!@|l;!&MjW*mw@|!3kX?*2Cphq8PEk1>P&MmKM9nNiC(RN%;!44 zF(_f8v*agWc(V<0nF&CrMvl`zgE-J45;t?dPqVCi1%DD2;n4VLWB~BK zum((y@|6?;OPAdSmF^Yu4n6>+YwOma|1fGPd*UeLx~YW&4g{CqlqR9gHUiKf|8L~9 z_=0lKp4At+IQA&yA(}zl2bx!6gk`4dG0_K~k45*kelbb($xa#2&dC$_IF-Ce#Ahcv zqOx)%lt~g(N2gsB3fL`f51;?btubDmK+t80wyj~ZYtDH9Ixf%E$6iwDe8uWpf|^uf zoqE!5g+8f4)!nz3_miHPr_65)KHGvI#1Uv^BQ|N(bA{W1&0$f^+x2Cwjod8BI!7Le zK_2Zq(Q=?4%3L>(`!wNSfkwGKv77DpIn9H7U0)s-KQj`b6Ph-pjG5v}m$LL} z>|aN&?4EoYVl)y&91|%gM?E}l|5oM+0f&*EoE_WD>mytK7Iss0qPIr|sJGdGGJg)x zQS8W%h> zVj&@47^9nIlu`jg>1Sp9fsePSRvBhlhYl$P$bU=&f6#4y|EN`jPwAMWpgFu%loZF{ zsCE8X)yILJ{J;GhLT&!HZniYL)Ip=&eH7FwFOu^+36=!if)+k`aB}KCbLI+Vp_64v z9tXYrdtDn>+(O8EW?iVdDvOz7t;U`vrFWH>oDE3mSI8{0v!SMTlLWzYVfB9hcels7 zJ@%?EL%+O4bK+B{OWct{%wulECci+vcFQmglTgq<`e>U|&*w+q!3(YUfO#DWd?2`= znRxysJcD*`r)Q?fi~BHkyZsZw3i^_KDYrg;_ zNK1E_#jkWGp*KRJ53A>&n+b6{=QWhs)BOb*A+_qV98RW3sW%4fgBp^!RdIph^^r)T z2{U{Y+%9RS0(7KfK;x4d1FS&+JkeY!~T!@@#(+Ejt%aAxa;J-x|2 z+~bza^x$Qw2f=`3Pjp)1LBcCGOF(fYCmS*HA0u4J&J`i*=0Bf%+y+pkwM5V*@n7~? zu?8{hE?413#T=OP;xH_O6FPD9_$l!Sg|WS^lWe%FZ{m7=S>o~=%E@QoeC5b8TS*Tk z=b#e6eiT=@23P?IONX35h-%>2sqzM;t_6&4ud$5AyeV+GFBfLNij^U-g8Lpeq2?I? z5rf9J*-IC3_I)4h6%v|G=tdW_2WNPQpdXAEfI4ti!J4j{rDHU$mipgL?o#$*`U^AZ z5PzxBPF4~Y-vTd7kF**-xg=DNb3ycza6%WfIy2L1>t{S*Y6);s&`+ckHXR0k17q4& z#~Z4*L@90usOWQ(LK`63kAV|#(+z9XbZKc}dGu%@`>Yl3B&1$xI2D8NOqVPf&wA8d zYMIi!6C3#h9}?T09~~|6Z7N zXr-AV-qQDcC@N{eH->Hn2Ai_P#=V&{*2o#nHh_bYWZVgmMY|5kNrJ|`$xz9_0#;+9 z4h^cV)V`jEMkBYsaNmwjmxpMfA?RUiuj?%5HK$@xGn%2(jKcq;86|kV*NpnG|D0V< z@0STLmCKP3A(#*XOAX7CV~-`F6iN)>%Icytj9&LEX;B0Ugbg)o99$k|0AVLJTEKNn z(`}jc@}|noHt5XE%zIyl#ec)JylkGqV~HY2CmRK*X`geQq;PfEt7dXvZHrl(+>P?# z>p|HB#vLhLi=xrKaYN?26(fa!fJ>FfjF#3kqrK{L(?ff4o|tHbpTe=QdV&BgdEMVy z6(QtlUCgp+-9NWCua~~eQ~F+c2FuoSKda+01=Ea{zwD<+8vkZV?l}gGUP*!*s7MqW zmQHmhp~hs~zs*>=gECg|w`%Z!s9SG-p8+cuY_H7;NHjlnk^g1vleYc#JB49~IlDN@ zHj5&?CfUE>hBb=wGXN7d0;m^s9E~W4 zTuCbs=w|b@VevvKw_It9ttRUl3gR^T=O?8f`nwN2=RP3x1a}^E^9zc`2rwPCNb48F z8Z98eO^cUm6p7vXoPEN^34Wn2{&ePZdLCO72;j{>?z6y#ZdL(+nThCnrX?U~b?Y~g z3S+hd;0*-KIu_L^u=czhsT1)(Fdi={a=$bQyS9UG z^je?kfDW^q!oDWo(&3%vX+z3sC+jv4aCY3!DSIeFu+qleOr5ZM(J4tcS2i3n%1fRy z1Vf3_%p(9_lf;BAPA43#ZLwIbf`kW-$01?E`U!%m!FTz`dWkknAZ6%V*Jj(M>-|G; zv)VdEsddDnx=gWDqgkT(SGZ{~qS8^ZHaE`2 ziS>HNhywW0fUvCw;{iR=?DAvjdm^-T5fVWDpETv3r59v~p989486aa=W;&+?KgIea zFL%#mxExsPZ$`Hp!42u%pea**IphS+EtOfp!BWYvu=G&LW8>FE4d?;OoM$&KBak;5 zGGEoFo=eS-)a&KnHI>H@!){g2r6kKT?Ms>c75S}q1>?s(zDq0RnB1^D2Fj~#w<$`= zyF-qEzwF=tIdLJtWv8juP!Sj(I&vpSE0|%o zW*+0JzP2!AzhEyT zcOZeP^}TsJC_(?HeDx~6n5nQ^8LFF6*kDcywv(k8!m1N(FlIP6E`N}FRrjTfK3Q@3 z9NBI0QQd!S(Qn!iqC27ABs$m%;~ zZ|&q75^(ARy+U0~TtYWJe6j*9W9VT#WMPE*oW)%R9OwA#*3SU=FViI8W02;q`r*dH zf!Lyq(vlzj(IY)iQHyg^cbyDLmJV#r`8~rYTi*30_8dW`T92p8!ZSxMr>1wC7J!2S z4(x@Nc^jXHJGL$WG;DT%tKdBUPuCTMT*hdjwWQp(o$=N-&}L*ql>bSajX!aHHq`)Q zkC+3Dtqlk~Sh3(qtHnJ_Tqsg@>!(It17qA?Dt#|#{a95f@bWGCJ7Ua7gbrvaj7ZKP z_oh+@xCn+(kO*~vw$pE{m|uY{fKC@g#nw=A3&$7ufZOsuPm%%SMfe{xfBvgn2A7G2 zAPMn*$I5&bk6O^p0@qNYOO7}5b%sX&+;x)hKVUd$;P|0I7e4qtLgXnfzP{K&{=8w_ zU}($L|DPH&pH=8Fk?lCG`t=%sR?0biPF-)zEF%{}`Cq)G3CoA6W{o9strke$UUN8F z^ibe#XiUuU0~TMgXvo*%Qx=YlG<`9>$09giAD&L%OS zLJiUgq_ER2v7hfnJru}>`yZnlK8slXoY7M#v)h(vFmNU=wfEd#a{eCoUrh># ze5LO}D}h&Ua2aFWh9P@wu5~B0FzHdN0F-bnbR_X1Vvet=^AY68LUYy3 zRaht&93iz(BgRy!x@l}d#aG1;i1=`HhzsjRLjX}(A_ep|MB6O^TE6#Vz0ev}KB1IF zcw=aYg(3tNn7c>N0lP`8zGfQDM-&cbFRu13-ON19N3fr*0hLiviMIj5_88r&mY#Il%0UW0t7&haa7Tfrjd5;%u1EFb!t<~H~Hspwo zu)*9}bQf0f#eeYIp?OJT0;&?ei;u#hEGHa8z+nmRH13K|G$#BFA{J|fBLW%k(B_>U zz3hiOgl}MsmInm`PVvqQ3=VwKVZ@d>QR>WMU8dSVNO0FU+}0fP$Om0&A0)D~IMKA{#I@U*}rJyWe?M&VO!p z?$t2}0IJ`&9xEj!{c0QNCok| zyrV?_`9g}UGhTK!B~|zp^)bXI37rx38PeG@+xH>^UP8ZJusu~5C zVP(YE8SWCT*e91Y8P3A}GMY{!%}6D1oMPYO*U^r_$n4fdg5wcnQ3s${8?Q5jq;Pft z-6n_8FS;tq(k*=1_TnW$KNwfy>9*)Eih}7<&8#!Rsq_D}eZ7!i^aMjIYIa%P6*5u7 zpzz9(UChX<;*q|rRHWm$T=NV+5IftYo(!an;%4*>f$u+A`JLA)IGB4x>x)hfN-`dj z9Ss7MO8=C~Fu+MWI5Z}~K*Ge1oOAfB`w0qBg;hqx694wBatwng-0OMsf1dn2udbD0Q$ZQcpG|f7&rC?iz&vzF7ey zLO#Jxy8aNYDL1;k91d58=D|XO))lie%+Hy@9p9*dF)ydd8RGqnz&c9e;%87ZY=f`^ zD_Qm>cOOa_NJT7<@5FMjPHfby;>w#(+i3gBy*az<#(5-rbR~8XDvnr%U4o*p+Jt=w zRnw`o-TEDBjHN+rRyD&MJ#pe2XdCvuz}3$!ek&Ip<&KI)xLW8PdP}pEwp(F2#EQhq zYN8aDIksqs!crO_Bl8Fm-olmG1a|N3^&mA{Rlgcrw=A8MT|U!aafO43Z_tF_4{P+> z+HUd3PN>(mt2ct3XsF8x#@IS{{Pasve2NTG?9Q3& z1*hR+C41<@tn1XL!U*RLu+Y@1m*NP_TY{8Z;HX@7JjY&8x}2RmZao~u(Lfs^CN{=; zO;{ixUG-OAUYQT|9Z`vq0H}zw^^mF}rmA?i1E27cZi$}C^OC9( zKN*gATeP;FQndxnoll`Pua8g@?5+gyw&PO@Q>|Ly**0e}wpMO!bs_Fv5Hh_Lko8(9 zQ5Z$V3DC;WGdWTN*HecEEXr-7`ofLj0sIs*xga*%1$~&FgB;h}WzsBkJm-AjyNwO#K-rR)seRQFHAigx9nV&&oO>e~Qv|*l7W{YugBdqU9 z*vkv^Bu%f%t7<)6 zThfGcM44-#OMdbg*m2?D&=eAdzTGwTX^n8Nao5BPXiehB`agj`od(B*P~fCv{m~n- zy04P3P^0;65{8n9_`%B#NJ=})O@+Auzg>cwSfk`n2>Z70M)Zp+<WD9Ut!mN)-cVc2Om$nr+t7u>0^g6WeR7$0^t*ho-{KxHD+*#QG91}> z;iJzIHufEkGjc6?Zl7j_Zn#j>o5_tY4*luO;h*6IIXv$8nTm6y*Au^k<_723^ie{D zPp)xY;Aw{}^)3}rwy9=~Dy}4`L+f4z7BRVBe51rgWW=_B?cLFBhymM3KK66(69c7i4t^dqs%61x)0dKV~-(esAYt=iKGc z_0w^Uy1!}N1N9Y z<+fM`mI}Q9t0O4|H{KDQjR|bRHIWCqzkyamYe3jiJ>Cw5@S)i!D-WvCCC!f#0{Kwz z_Ez4sc8AuPV2A?Td)Gawav^TIavy^TB3Xq7qCcceZgB82VG7bZ&DwQt_Bnd!=oQ8(^o zQAZ6v#XZ{p`$5A5=2vW} zPef)LEuU*NZtbH=5gtx|7ZbAjWf-0n-kHr_I~9SIMC6kkTje!S{&~8ZBlRZLOt4?N zp31Yp>LD1;T_^=SAMk&eA8z29Gg%L@wi6NBUi?7aAfNfRN%&|265(XIsvaUyegr)USo zX>u!e9BFg7V}Y@XCUJb$j^?no!n3@}>u#FC0>5_xg9ieBuE3#MiOc=nId8l!R6$){ zvvIoZFdBzuT23&DyLVXK!~Tk2O8gC#P68*%SLn zO)<+8G85uDMj9E@&fgFvuSlYw$4uKczseNTdfh*(;kG*AD|pZ~ZmqQyiZD%DJwBU0 zsOp)`(GHJYr^(tobip>N$U5wezApqs(f&%ZTdX1}Tl{_pkf zX(bs?uu$2eL}~#QIR{AIv3K zw(yd)9Q7DL_F)q~r4klZI{q=+ufZN`2^=a%t@j6w^bwYa502&{!Q#9aw7$+psqz+E+a07!(yuYBoJn(Mi#oq{CmK zufO1mWJ~P!zf6ehDSXu>a*Zx-8>MLyu8c8HOneJNNiK#_=|P8M@UuNvNqP1?N7kuN z45*LPSJ=aNLfWPnu%pg*O@MPn-0`y_m$($OBZcsf1G%K^xQZN1Xigp=_!+U$eLbH1 z=&{2Ty{e&fM!f}g-)Ca*IlQ3k5Ejx8F_pL>TLpAYj1qpr2jT0mF$mG(iJi#8)g&c3vhAh>nsn%(qp?$T3nt-;hTMDKU7dIlM|r z)@n6zsiE%rPeWz@u{HTizpZ^PF2TxtML@WkcBTq} zNS^1B@^+5btw~5J;0o`S7zG^hxDX;5xrX?)z1C`S$J&H(v4OovuxgZcjg-(v_&bZT zzEIqc#?gCMk;405zzg>?%rhop6(qhV-fnKabGo>^!Gp;qfckxo1a$Yhpg@I8jEj|6 ze~rcBuwR znlDC5?cobd$oZFx(6+R17GrDX&ELwPfo3K)rLhcdEMj3(?<>PvNa-%d)hBPd5zp05 zkF8}WZFiXP$bJS8Va!nm2U$@<+z{XPv5LP*Rb1cmgYBLxTVcKa)W+Tbqt*uR3=$5@TEc!p5tea0 z(XRPbOW{08wOrg^Jy!SGG;=c~!t!Zy$t8rUl;su^)mv4gdeMqG5{kz_;ogYd9@ekB zj1E;}xm`rL_?RXGy$gMNS&EhNtg!F z*xiVMFtsO2c9U$zE)-cU9jZ}iyzGazVG$(s@%*Osf_jW9o%P!hF-|CP(eTi&iSmB2 zwIi3}Jka5#AvR}{ylWRD0L8#_; z!L!)ozb`%E^KEO^_YwUDE;+NZfcxK;>~RZUaX_$aFL=;&c_IIR^CI>`44E zExhP@k7t%Y58qF|Dwfq;)382Qu6I%4HF2CcY;y$|zt%v#$3aiDS|zk+$f0YcTV;&P z;<~yE7lZJ+wBrAKM`vCl+XqM!7bnz1rK)dhcV`-$qYZhA9T z_EN&O$Fn{0QR6C5hS^U)?hU;XJICLq`kHq3>Alp3xl_d%n(uP`z(EA=HCwIWu#IH% zOQw70j|i8ltk-AQjC*<5_?5O&wq;&<@yDqSPkfMf2DiUzOK2O#yIHy1U6(#?(=;cN zYlPY@?NN;N`bI)@vcOFQ&J1_Pmtz2T$c_@vVxB5dpH>rGEhmiQ7{Bd5wL=0iXcI_| z^hzGG;D)7w(*`EV!cy7NfAQdHL}0BA1szEa*bf3B89~KIEMt}{M7V2r5ur9w@iEXZ z(F!$*N)lp*uELVA7tkm{0)w}fXdR34mthq4gf*}Y_56ITc*NSm%Mzs`T1X;(bxS;_ zIX8;wt|*ga=+cJ^faXg%3uY3MQy*0TtQ;fYaVVwH=0-|PAR<`H?yL>)JJXwuWZ8of zPuvleT|{f|H4xbK6{OK#Wn!l>PDI*tS(^0nZdO#Y9mlzj(-mbfUH*Nd|B$e92tQS_ z$FOx*whL>=q(+{Uhz@;i`O!@)lltG}Z^z&rpIZB543dHJ z3kgLP4?}twAh9*j?xSn?yUWnOvGJwyJKQ=u7+M3>b-NlJ&@(cbFjzB58yK_LpT4SjVRV`){FXDddS@Tfa|G}13zRlxCeNY zTdC4q>QT$2Fw?$TQ+`-V%_cZ1Gwu*`dJAJPYMZQBF;>15?fNLGreuFyTSdnckgM{+ zhkHRmW}lX`_LY1e-j99^FUx>_|Lx8kD*=6Zg(}pW87{!Ub8o3Rx6leopK?~Uk_><` zL+r#!-~97REDhv{WTMi;XOH$cVgS&tA~Vq3c_2ZaB+ieD&}p}&Ta~(wkK%n1v=5J$ z4Pk)7fkYYob>-33d!wb(e9-r;f#TgREmlTZ?6(KM0q@nCZ|83*>y(Dh*J}?0l*Stw z(l(0e*q?_q$56($+@xKHgi1rtJ48vLwtIrJgCZVQ$qYEs2i-z7Q34FF@^+kUtC+a~ za!hFWR@$Fs2`$wJMaC<36q7TcNOHP{vNfplg;NHXc8DqH$dh@EeKhB23J>TDOlV(h zo|vIMt6ZWO_!BNn!QMUW-PZ^0YWzO4Q*by%=Z? zQCuEMhlUAd`&t%MqE-qCUl7p|I>J?N>?O2QwzuvwC#ia`261AA*P#ov{4C*-k~nE2 zxxt!*RfUWX{+TF0ucmS!aHBIoT7MVQ2_8CdK2scOiv*oG-73{iv!Z%>w z)m>|2uIvBz$2ZW{v`+&+tq&uYKDQYf{$WG*!S@1KssAn>_K%1N+JvpF$ z{DQ0XGKDr`!|0G%8CS}Q3V4O@Cbm#I%j+YIv(sGBz273XYu?G6u+o0qqaWE$`sHbv z0Al=T&AoZj#%sfOpd4Z(Dw65VrbGwy8}-%H1O#i)*$!Jy zRQ*9T#`lr4sBBm7hwRd4w|x;senEKqDKL|WobVDl80i|mAC?AAp+N;J7m;MLke_?A zoMqok| zIH9^L!N3*2D&k;fDX_QYp0DSLBh<_1vFM~kEH8sAPM-hth{qSSxQUs*I8k10Nd1Yc zyYJ4A7iG4EF{M{_XUC0$3`tH2&j+Qy8CJJsB*0353%8nC5`cUbAXU5o zz=e_}i9jiuTtwXbLr%o?>!XDK*a5uoAG8UUh(U8uszcmYTdyTPXFN)^UeJ>G*u0kO zuu_@w9^(y>5VfD-&yo1h4E0`sRV^gj{zyG1(@^-dxGX>7pvsLI0E+ zZ=rS5^vQU8fW3B7e3vKD(%kV0c(Z`?9ansLyRMP|#3wVJuAOL$S#F<%W@jeR(q%1# zAMn$#f?<>)#Ugf|2t=%<-Z{C9wa(A6wQ6e%SqdZtPKI+34Sliid;#8FUCoIH$w%nf zf(kKRULYdw`~w^_v^wl9vewY4k+t}oii0Gfa>~H<#l^_MUaxpTs0vAeW(_Up{Yr=_z4L!O2Z{Z?8wNK89}FGI-I>$^-*T^A`Wp| z6bN2`(YE(i&d@?OM0IadwcO@vufXHofdoI5`MI+2&e^)VP|0pohswhXc}2^os$iLy zlwpw-)gpB0f!bdHqSIgBU5@QCC2x;v+vsy$Gk*E!!eGsj`pgFdZrP7FmoFusuiXUO zZ(Myit|D*T@fv2d~BCzT)*-3#fRrEE**MkPbvl6ci)?Qx#mGU;g-)2MW*$7~g?xxoYT z)ZC!S<6Y5UO38IV%Is%_{Is7w@Ff!aoBWR*>9Ri$`?OWznp_Drmfd9sI+h*xJmY6% zk4vAfx#u@wq`pV%`-K_QRT|DC<@~#OUFMmH6;aLVJT{u~^@C@sY8lN-j8SwYU_*jOT@?o)LKBA2x7XfV7YpU0mqf3`&XAJ$n3uK5mB zt?Ju=cB!V3TTA+-Ae#_#t}Nb09oPxL8mj7FHLrGO)5GuSKm;!ZKindG{>S`7#wFeW zy1aX6x9ug?C02z&6ZwCy&>HFPtAKm*zLSl@U&Osl&HWHj7q zna>ux;*xN)1udJqoK<+PCv!SOwzatR#EM6l`7dAlj$6wKY_{+Y8rnj^@O)<#`%#Y4 z8WO>e!9!_1hb>nXw>rj8Xw5JIA5s=Vc`R_RVkDo~>&4Q}W4cbK{Qc9JWoLzz2k%C0 zLG1oa`I!DRPk*vN44tt4zgS+pudB#kEpA!@{+mA*Gcf79aoyB2U!(0RXR&q{)NF%vQALHxiG#PeRN;vgZ(K@QK)XrO3Jy}DQK ziFe0`Kb7Q&p>gv za8UJ1=ulN)WS$gsnOiH(Ymdcm9JlX_n?I!L$>zrP?{6ujUxP|OhRznQ!*_2`rBV0d zgKG5h$MX@20`pNhwG&$@c^>bPso|-o6@=1Uj6;^2Y3dRb+b{wcRS6%?KD*!#Rjmks z^v>ITE%eVf9O%(ch?P^O-Q>b}WY>Z@XdqulUkB33FI%yAi4IHu(03EL zI&DduOzIjR^u5{h?S2Ot!f3>t2q1{s6YLTy8|?U z{`rc?W6f}1)qouN|F!q!VNGP;whq{6(~61$Hbb-lK|v5{fiNU0Dkun!jmQuMG1`C# zkx7AaLS&FIDWX6`1hiEUnM9GGLc$zDWeON%3NnQx5E7D9y;H&8@80+B_rCZ3ec!v5 z`Uw`5s#B--UVE*zPod@al7-R)5s}A0L#CWe#9+Ky((TS4=dgRBpRxwZ%%VBw%9YAS zD*&iQ;dkN?&n3Q#o^mkCznpyEb+3#kk(zmJ^x%ux{YIZ+fMSo43@HH=#VLT8%vuQ^bSoUZkW{ zPbWzLP`z$CEDcyTgrt17>KRXYW5jbC)`^S8dTn}UZp&r=zWJtK0kP#$6KM;*B5%N# zx{|Go~9OqX<+oW?-GnO#UXQKTopVr+^={Jj7xm`n;q@ z;bmUF!7QHHQ!cV?RMBq-?*nxX98G@xAQ}PUN@aDzX?O&5e5e`Cv{(V_g9n$IN%aeP z1=PvYP}=hE>a|c=VGL4>MC!o1QwBHP1-u3ZEkSgV>zrnUhVLhYHVkRW)VmHQM|&`3 zxEI(RzDhe1Hce}MCbtBFrDFaO4(!@)$l}*hDVO-E6`3{mg|EzAnYaluC+#8LXfW95jatbV&T*f2!>tqgz4LSx*c82)~ z3O*+o%m#e}VY-)@%DG=xsY{8ZM?Ma3->w6V>D{{}kKH6uS@DBaCO<+0Pk+?N+_S2# zGuBeqTNh#F6`9l)4DqTHhzJh=H-HcZSdEVgsB^B&=WIyj4-qTM2ISxeh)fU#5ET&9 zmaw#GR}>!6%C$_7f%*V)oWcjz&KTy_ZkioA?=Zox37{(+0Cs9`s?-u;cF7rwBH zH5-a!hT)qIZH&NCeLU0{87y2yD=SjV%(PD-!$@0JC!HBcu zUv%3gZlX+e$$AUv!5c0SLKLQ!`pPeJ^LPiQQt;lz8_4Nk{0w}@K8jF8>Rq|_Z_fMj2F`uBqi?)0;-*3Os zjO@ys(0%Rs;k1fhu4e&pe%rT-0;wHN^?(Rh?t|09RBUYbnk?ppeIuuWP?iE{Nfxe< zdI{AGspAL^yo(bplv0o`whmH^waS<~24~7@&vNT}q$(Hz2ofH(na?$`PL;Yt4vF#1 zvy}Sc&r-jsChgE1YwcLg-t>P-lh^W?b&?=ffK14TS5 z%@|_L_)k!bIbDbekDP17VQa#&)Dk5AEc*DSaz>FTCPD&s8CX|l9_29lC|xXJA)G7p z`f-h`MZB(!%cQdVA#NOUURtphagw4g6?2m;O0G33OL3jh4NR{g>GyXW$}}ni=1VN# zccG8j(Z?4%*zunIRH%%k>{lz8IFuBdBMUp)mPqp@p4|)~`_=ls^|(0A}l>kJ}S(Q&Yl$3irHgoZ907lfX*5jtrYQ)WBMnl@=EDhT@1y<1a65U2a6 zS77Y#PC`L?=du&qCjKHT{Xb7$qAY==jRQR@%nW*a(AKYQ7t)j7D{ zf+jip=6U{a>{bZO-G8bJym3SNN+R{s?YhRwwK@PJ5323Jd^Y-F%}cK%RoYeo?E?>2 zI>SA9pI0j=L@xfON1JUO#1K103a{^&E1&LLE2hVX&Cf~*HbO9f1>a)1-i+>i$xsja z1!+Ns0kJC1xVneUnUFS$;Ki=H7wI3CKrFoV8)TJHkik!Oz4fY))3(@8tL(6w9vxyu zitZqL^!rido@TWTt_Y{S;1Ehx=2QbdGZLBf zmg$%+chr1%+fDA~Wb1GOg}LggAR zqh6OSbp)y8Hrbqo9Ega4j5Mx>s6bbC$=nywMIF=mk^YYew||11`ux0ipB!tb-y#t! zZY*^Eo9swv@|JC7D^x?$8=s+>9No@X9g>v#UNhD;ZQDjI%(ddaQGwp?(apk~f?W76 zqPnV$EMg>Cif>HwX@&PoYDw0~9Naqlu8>pW){E!BYYi!pZ9Vu-WNpj=#P3|y*#^x& z?+mv$mb=&9Z}{zI!5)0X<4yKaN4{a9y|^*p6tuCwzb!N5u8(w`sG$DDtN^md@$ZDR z0J(>{k(Sa!cdjF>?qCfXsegbn$EN+i_pM78aB^CxJ}Duv^6#5y60gkIdhD65;%z`` z??1~kn24>I0QI&!dm{joI}{zd+dz!ef{Pq$2i1$mUDCtA7grPNic6jimzn(Xt{&W| z*2O7ha?(23@MvChrgzc(FaTNO63!B>o#%H!3;h4nE-+5eQQZ7?(7J`>-)me&q_vzD zgJ!tjseeOvX8s8u=7u9uB92&Y{YFD?R>%1r{e5=GKd4Y7h8qO~j z(zy{RY;Fa*rv4j&dWMwqu!gp9XJ!CDBY&1H@b7(TEK zVeq`!{H#KJCImBzb`Bhs{3^LN{Z(um4J;j0VlZKxZOv8T+i|{A`flOo#6Il-(6`)T zL+P-b$d9|`>rFsYx|622R)&FSs_z3GoX z08t$m7aQq>3tVSASq$)V9q~312#9Z4mw6h%g2tF$$8+JQOQF*6!KBC`DgHVV(u=>e z^KXP1DLF8QQa_dm$l8#A0N+C{t3!49Z2S&oyl8#!G30kdoF!q+rhxGai!27oy?D8; zSza^6oBj{Jy%-Sz_cDw}5DgCgD+2@qTVySWuo+kfpg5XgIR?-4yA{W{AcaZ(fYp%O z2o9FYo0@>sVj=#7>N9}_E`K@q6OJ=LEb9j06b$(+8`D`TWCW?1`oRWBtW@4-b(Iam z^^h1TXh7kbqgJ{E z^X0D(lQZtziljeD>^Egjc%1{T>uo;bj~mw9hxQEK^Wj-1CZvyP9)VhNGZlRj&o=|l zuyry+6)9zy@a~9W!$F&gj~MY4k%2>@O^MZNExpVTgKCff?4kZ|o3UEJ4~!R{W7r8o zPA$}Y9Agi&y+jz{8SvdMN_p@v4^pJ>Eh=kuKo*hKiRGvD0VJwNDocxHPxoTZl)w!o z9l7KnLo0>OWs~uhW{WW9YbVH62=-YF42pz7j<&Ed}h#G+c#>aPF zlW+!Dz^*N0IsL zUy!Gv@igK^q`_Q#X!LQ{4&aol2Ya32kCwr|kW8T?5WTK4SNb5=F zAcpL9qIi*=$Vx?gIT*ogAvmNU8E_OrA4SPB2JDTX^TfxcZN7CY2g1xciDljSnFe;s|8}hET>fi>CbkR!eldwm^j=g&NQcv9{aXcg| zf>h~E(}FxqJNG&Q2X)8H1i#C_K7`S5I>WpDwGJT+SYT+xdUlr`qfYlAG9o41z;9xO zG^w-545^1Cg}QPjSTr)6ngY+DfQ1s|VNJ3XV zi0IaJ$hf&8^C2VMJFx+&G=j52Q8*)Fd57@v3egfq5CtG`pdHI7#*WKiEkS6~DE_Ad zNlh*me^+x2OK=;8YAKWlK3OCuJpSV9s87?Ag_>YG2X)$ z5pv*u>LP)P%@p~?^<}?CJvz7Gpf)afDeZ|{!jXy=(v#0-?5$~ozYE^tNW)Z3PjxTJ zDyf@K0}%{vhE1=rASI=a&3A#&N`ymQBUg5>@brpk|C#Ur#`r_iEV=VNk1Z<-7Jjr2P&=+PtX&*j>+PHdJ!xhG(uoq=hk+4N_oez(4$b_#@d&r9W zAHqay5lg>Rmd$IxSc?it>iK>H*z*&VqUW}rR+I|dOxunH>+O-3eSu(Eon`cFf8n)x_8^&0Ww2vfE_z|WX zJK3K%ht?Kk`-+I-Y5D@F&R%or|W?2$2D)qfa>h0j>X z-(K@njlcxO%4MrunX`&x<$J*w&Ju;VmB8ho06D2HP-V+{C**^mL2mExs+bDQDo z2EGkMu7CT+qH>Yga^jx&aikB@q}9r?%1Wys;k-Mxf@>tz+2dC(c+wUmcQ7OUsCl50 zxB9Z!r){lyhb`D==bj2TZ}v--ZY37vhtKUR*mM5=0I;2RUyObJ!(tGp>m~e@7d{%# z#%wf4^k9c+le;~;MctrKjSZ*qL=0{Ka2%&s?T4xFkil8_GvZhN=YmY6u!t&~MY>`w z|0dW_M);uu33%>glSrRmhg{ns8w8<5%$7Y?^X2}=MY7A*hodyM9)d?$c$8R`aeGJf z-}3&wqu*O0C=7jvx$o&0@`OS$v#_56n+l7Eig7XTK0JH!%%))@J8WYXwI6b^#|~EU+N4B1`I+*yyRbM4YRmne?PZ>+mu#Zk9aI3NSs-!h!MOA)`z7j z{m9Tz*=?jng7KKU!)Am|_#zQ2yevjj_bK6rKZiJSMAF%?+oSlED}@Ux$O~>nZvH2> z{^}zK+}dtIj;Jkq8-GKQa`ZK0&D9-w%{cFeQ<}f9(tNORc=jlNTf(*q(i6U-p6~3Z zq~fdyO|Wl(c7)Snole3<}US$7rq1J^QN6Vl9_?Uz`2KV}lInsP26Pnm5 zFcPC~AUbqc;})WES}2b(r7chj&FK+%NWQDKKXjN|At692007aT0c!VkFdSwwJVb+v z7Khu7*hoT{Q9_7IE^_Cx%9c;rwcKP;V_I8}N)(pbZiZRhzvfMhFBvx65U|Y-cL9RV zWDVq(5aWm@xpl5< za>D2C_)NOdNcWzkjD#!)eLF+gXp89cIISUU8u!bcur<(K_6foU7ICW++)kYWE1NiT znm$vfoi2BwQAN?NGx~?k)3Mq7=FqRm-yu!x6F&$b=mgCDG}IEi7KQuHYdJ;TgYjHO z$0T*IcUY-WMoGR4KmXGX2%ap|);yo?6$o3s@=&<#90_^$_~C+{0=v#z;pJNOS{AyE z8K6EMWhl}?Qt$GI^npa7t7DMwTXRo)E?=5++hT&2-9D6p*BSfc$j(ET=&k2nyom+!b*Aitx)nHVeNXAQGY1LBoFQG)wu~Nz7gM}en|4Kw=8qUP~ItkG_llBtinoXeWX+|=A@+@)pfbLtEQ^0 zu$8A4FD$a*n&10k+}U1#Y`xYv*gE;zhiCjp zyw;&JuuIiMd^Q7HU~kE&v1ljMs@S!O9FP=pM&EqEQtj;tiYQn%hkPjV0|#1`66tT$8;f^SC9baGuM&Gar?@wT;}Lp(wfIpp z-@jM7jfNGp-Yn1~Z>xX9^DAdypL+#1W815E@=F(7{L!&;fz8_XJI~{c8tT2TM|*hZ z5_0n#sP#5B=UGRCJ95Yjt2OQQ`=+s3lB96DJ~=4VboNxi_k-Vz2a})cLkZ9^+yM0i zj?qY61DF2?&vL+!+J>M`H<=J`Cbk?f8c^jkVnG%LrNh6_@kOLV%I^4vrvn=AXKMLL zEE6J-=^)@>{9mUNl>&L$uxGy(!mxm44p|j5utQ^t!;zns=1k9aeQprt02u_F11tFblA zi1gB~-Puoitn29^LEqMPn_ZTKk-(E@sPgSW>ukFOF8KR|WU~5Du_p3L3X#bK11Bs- z2ZJR^LEO|tZO-Vuj~K&DlSGsuWLk69fPg}yr z+<>R>dG!Z5+wI^riCL(x0+me-f2x0aaA+er7H^u5qpJa9+XGXaNiEgv_gaiU10CW2 zd84~V9+eb%#gZxm3O>FLV+rD5E*6RL2sAU{vTSa7L2s9|LFT} zY}>sqWVGyir_~M3{h683ZPy!4Xw#B>DSY6%H1|HV5zvXHlsgRmw!7-Q{p+8F&t3#p zHKK@A#ZN{x6bt*lzI66Vm$HZ~icH6UfV7f_p)`ziA1(p3Gm>_N)2A_`2V|6SEc9My zFunVekiBb{Tb?w2{#o}AJBkvolzUIXZC$Lf9@Xm{;U}!>GgC33aZ#0c(#WospdcTR z&d&dtM(yz@0CI>ze+12|KAE@BoLWzrdC=*ALo*G{1=a7PZoF>d^T8Vqg-51$iBGLK zJa?kuu?gat#ecuX>M7m_8V(=2k7=ybrf_qecJ)19O3}{qR+JmQ+JB|V#*>1TZ?1Wr z{@iDL*h2HKz>YT6Z3&Fhu!QZz_JKws1 zVfohvFnd`WzV1OR-Yj}ePCuhr>r)DN3U6SRS)Jjj*Mb}~a!s%umU6iM6XwBPGX%Ox(j^RFcS}yc^ZsDHl^>;olg5?bO)(3IrmtUGcw(wB=GpNmK ztLB;RO)06i>(blt_PDW>P(wkERd-er1L4(guXBl3L>@K0OTl-8MV9f>G0=`)MyUrr z(F=`$J3$lw^^+Q#WMm0y$wkQzv<0TI{put|*|x^)-Y3OLH@jYH5YjGXR{8fifNp>8 z2<*+=fAM& zs-eNH?8=l$cw$Cuw)HbBSsZp6T4#G{EfQvQRw7=@i}*J4MJhciXO&3V{J7TtkLvfl zgJJKhEwh`e!q$%zvy3fNN2gD%d|jF4MIQA&5U5z}J#5ToC6ar5cwx%okr029Q%Qx2 zaaalDeXgfQSUFGXwz$ipLoa-kfU-n1yg;$3WRO1x%y z%1Bz58;dV*UYRp*v??#_->Okdz;D$9X43ghg5#E31%J!EY__1#M7kOA*6?;YBPB@= zFr6Eti&Lvq7q0ndI$~wt`s53rG>>+hCx(X-RF}1B2ZFLJJ!5+~{mb^P1rzrwhKNwg=s(?5bi_iBP=YyWKpdM*n7-om81o8U!W^N-ZlR zHpmcdBE%|E!jOjv)?SdtNA=Z3nm_#Kq}=WR2w5w4aRm}Pbpu|!@SFVJQyy~%%~}(R zs;`{VR^<@e(@oge;j>juy5$E3yj*#O1BxDn{T$1CyWJ{lS+l_k5Y6Ons-$BYFG&No zXz_1B@Lk8#5c+4fYlm(NV4sV*D3-)3GI$)ob}p9dCopf)sO{-8jrgjNUA7!N;UQc) zQ%vtK^uzp=k?`Oi`&-dh1?ox8&MNA+Z-&3&N>I1ITuboBGL-hpdI4C0&az@zf}HQ( z_;^`tLI$0!J>UHk@VAQxzm6=a51ye}M2xl!5$A=P0AeowfyCL?BUuxoV1Zi_I!r3-OUvJ4}uT{u5x6k0v-|l5h?2}y1)Ckh~S&{%3iD8yBDi|oASZ4_d z?Ahbi2=?p&d)5OZRPG(A)O6{{pH;@tE#zlG)c;1@%*S~z`&|AEd=mezhWa46Af z*EKE90FV3={o$;90ECI%zc$D+fJ)&T>2pC~)>^-(17}zUY*0Fk##YRw0@s0~>(2Rl zqW>6>U=?t4ap&}>b^8AlpF!75If#B7m^fbGNPxrwGpO))q?$0*N^o$^Hd>Y6W!8vt zTW>rIa478f{MW$*8Mhw#RVWW%Bg3BEzedEEH&?l!-~O_eG_wijUgjybg#S>}>f0%% zkvnsGcbu%U%wVS{njBc%aGYlDNN-eC;_qw89>3o~)5YBQYqfJ=a_24YdAlPyxc|O& zGi=Cw+Whz~;zAt0Up3-Yz3*KEas@0*)jMT?o(7lfr(4+dS;Bdh+5Ow!U<8bU2fD*r z=?`_e zXZqo#H>y>%7SyK*Mbrf!u5{&HFD3^!gpX*2EN`^^tW$Aw;3=bY-Jn}TyjHVuJ>lN1 z<)JZP*<5Jk8nKSob}!=Q*EDd~nTs4fZP#Vkbx~eecCm7mM!|X=NRBnyx6ryI;?|J2 zaoO@?1Rm8tLf0M6+hPWY8!cS5Tkl4H^J8J176Cn z%vRDK8+DN7KQ!>CVQxbP`1h>(3NV{XuSXPB7t*L@lUMA)n_sphfucaWpHfTBh(d)E z;oh{-1q)U{`*!arY$ zm_8Lcp{0wBe&v@?bbHR%OM{(65wnjsq9z!BidM^#deZJLQ%1bs7oscMf8egP9?oLW zt@Ke3AVtCuXk{oIhKb*+3C68wI`>ADfjj>Vy_IafF(Yt-CI&|o-c;;49|q3jKUAzAf>c&W)++hkL_ZDOa8!7|jKlDsAD=gcFv%AT z?SMgUF;u(z!6~(wuDeL@r4%q9ex4Fa_j2Y>Ddc~5O0IC4$zQ*MG5EN$uMeRPkW5$j zk}PhYTR;Bs{r%(D|LiDocq>N>%CNT<`3EdEIxO^e`=T~;%S~g^vuVXOrXEK^&Z?LN zta&Rd1;m1$3m$g--@?vY*$!rHpq+tseBY9Ak`}FfzF#l+%V%o&Yxf1>tLdt-56ttR zOgv-dT(Z<9pT_?ndg(xB(@5IEUyAW+`T?s=jMtcn>uVE>eqi(}YY&afKE!eqGz0fk z$H|@X)H~mQ4^*XAHY585@@oWP>0m7?#%;FUIM7c(HxZNcF>FJ#$zTOnJ?ZjI)d$jr zQRU{>)?t!g$K-S#azeiK2QM6#|Idf97Z5XlXDF~gZnMr(VtZHsc;duk4iKgoyC!B~ASCi``a7vPTgzh&!pVGee(y|XmBtbhiTY zTu%JEmky4PdQ+t?cDI(Pa$6_w$NBv1!u?zErRHakPDiyN(3)cFzFs$5B~QZHwacOU z7CEw`hja%_AC%MTUi_S1qEhyGFFGHOsnqQoiQ0s`Og!I<$x z)I`Z4bV`0*61e)(sRqPQyGAZv2%7V(oxwhU8v}u-`jW%tQ$R^VBURAVj2j;JcvOXD z#tXG@bM7R@F|ZH1WY~Y49{4fm|9W~e`69y1Ly6Je9UrGuY(BMP);~-*xpLp?IK;9+ z&|1KKOu;2fo4$TOdz?}6cn>yh2@S(cpY3k)gBC&Yyl0Gz4-=gK?}dTtwRxR!%kl14 zNVf;Tu~&Oh2%kter8BKF-{Ifre+f753~EmY2(9WcWuM2-I_+G>yXQl&&t*W8o57C& zoMQ?X>2FBWgAL&dVvRxa8wwR34-Xr7j*3#?+i`WO%qz%pU$YojZGzhz6l5;v`5k-66?y?pab6cxo$zg(!A2C7)>(y%AJiJ1> zjFZc`(<%6>Jh6F3!l2oTH{*u8kBfB^1g&?a?sYOUkMN?V%&6?F^AjRuhU<3b8h6mT z@c|{|vT@F?jWVm*-~axYx3Z6^Fl~opaw1B+A(d@1F3?%OXd-S)_uA1e)@`!jSa?%u zk-$lPB4>;EZQ^`q&50O4f^TcVK?Zz2yri(-tKfDi)PEM^*Tsr*kWJLD`+dcpaluiS z1R(=C5o<9dzvogVTk+XO*zh!JUBx%Umxdc{*30ecV`^Pd%DNG?O>R%}9|549_i^-c zi*{TfEniDObI!g8Gmp2M}fD(VN77_-WGCyZbfM{EcS5OGDi9q{&OLRtS ztc+5LZ-dz8!3o(84X}Z_@PX9j_!G5JdthnK*>XsCI4s+W`NEQ3MEcG9umB_n);QzC zuHJ(LR3!I{u`p&R40WCF#U^BW>7~5FE64-C6MBXqHrB&u?Z3o?dFY|n5HJqb(*n=5 z`IMQs_~k*fFKEM`t?MJlCjPFlGS`pdq~dXrs+>hRsGgFLfT8j5@0 zkkl>d2RC{HDo)Z28yI|9KBEKZtJb?u{_7BMoI5F7UI4VTW2vNe>B$R0y9X@{mNCX3 z4DqcpRlOu>XA?S}Ski+7nF;+v*eCpbFutfF+Etjd(>}V5dV7gZi&A}YuoL;Gasv7h zCv?h`9)vN@4?{aQA#n*cc*B3D_?0zyWle4&J$N3n$&7hUQk`!musd2EhRuk4*Ffie zW2vUfsh`#+TaY;F#^B{4Ap=W-(QNyUlp-BUHPEPs&l~80*{3O@&_QPes#eJQP5r^4 z=1U_luH6N5%I(4gYJ1AGncOaP-jH|i$oD+hvM~Tx-o4~~m0-0aQ!AYVjn~?amSHE){)#9Wp4_$C zZ02^xX$^zV)E7tkvOSWX`SjcMn$k56{9r9p*}5U-!Q5WQS1a!RV6|_WI#^iub$h_$ z^A83R@}@aA6z(O~9Ei};b&+qJ_8(gl`owu~^uGDw^5y{BBXc1imN?k;=T#-8JiqQe zS041M)ffH1pab*gwMlCEebGkkfFrEBeeLhJNtqT)G)LD~yxExW#gEj}nhIxLSg4fz z`lqxFCCCF$E(qo_7oJvXazCVL;lQ# zbls|NXrCWd!`53I&x2g^t8L!>;oMP^^u{m2@_rlj|BcHQ#l!9!XLMyV1x%Lz{{7!0 l@ZTfw|HlZx=jC90&a44H`Of><1>o1dJ&wBzcAdQTKL8-fpP&E$ literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/.github/hrms-salary.png b/apps/erpnext/src/hrms/.github/hrms-salary.png new file mode 100644 index 0000000000000000000000000000000000000000..9451c049fa8d5a520bf3cbcace17a07c980c1fd1 GIT binary patch literal 1049915 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 H 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±Vk^-ARovJUQbp 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

    X%21|80oC6;g+M^Z2nb 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

    @iA9uu2zoN# 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 z

    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�Fl}R=%U!sl& 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

    g&7Hv5bV2K;+WVrq6IdrYtzLD9to=(-t~ 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 z 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

    @7{AK5WlD6wO_X(}f&;CZ=Rfi1U3t4v#zh3h= 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/.github/labeler.yml b/apps/erpnext/src/hrms/.github/labeler.yml new file mode 100644 index 000000000..080e248c8 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/labeler.yml @@ -0,0 +1,4 @@ +# Any python files modifed but no test files modified +needs-tests: +- any: ['hrms/**/*.py'] + all: ['!hrms/**/test*.py'] diff --git a/apps/erpnext/src/hrms/.github/release.yml b/apps/erpnext/src/hrms/.github/release.yml new file mode 100644 index 000000000..c043f44b6 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/release.yml @@ -0,0 +1,4 @@ +changelog: + exclude: + labels: + - skip-release-notes diff --git a/apps/erpnext/src/hrms/.github/try-on-f-cloud-button.svg b/apps/erpnext/src/hrms/.github/try-on-f-cloud-button.svg new file mode 100644 index 000000000..6a7119bde --- /dev/null +++ b/apps/erpnext/src/hrms/.github/try-on-f-cloud-button.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/erpnext/src/hrms/.github/workflows/build_image.yml b/apps/erpnext/src/hrms/.github/workflows/build_image.yml new file mode 100644 index 000000000..76aa8c498 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/workflows/build_image.yml @@ -0,0 +1,66 @@ +name: Build Container Image +on: + release: + types: [published] + workflow_dispatch: + push: + branches: + - version-15 + tags: + - "*" +jobs: + build: + name: Build + runs-on: ubuntu-latest + + strategy: + matrix: + arch: [amd64, arm64] + + permissions: + packages: write + + steps: + - name: Checkout Entire Repository + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + platforms: linux/${{ matrix.arch }} + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set Branch + run: | + export APPS_JSON_PATH='${{ github.workspace }}/.github/helper/apps.json' + echo "APPS_JSON_BASE64=$(cat $APPS_JSON_PATH | base64 -w 0)" >> $GITHUB_ENV + echo "FRAPPE_BRANCH=version-15" >> $GITHUB_ENV + + - name: Set Image Tag + run: | + echo "IMAGE_TAG=stable" >> $GITHUB_ENV + - uses: actions/checkout@v4 + with: + repository: frappe/frappe_docker + path: builds + + - name: Build and push + uses: docker/build-push-action@v6 + with: + push: true + context: builds + file: builds/images/layered/Containerfile + tags: > + ghcr.io/${{ github.repository }}:${{ github.ref_name }}, + ghcr.io/${{ github.repository }}:${{ env.IMAGE_TAG }} + build-args: | + "FRAPPE_BRANCH=${{ env.FRAPPE_BRANCH }}" + "APPS_JSON_BASE64=${{ env.APPS_JSON_BASE64 }}" \ No newline at end of file diff --git a/apps/erpnext/src/hrms/.github/workflows/ci.yml b/apps/erpnext/src/hrms/.github/workflows/ci.yml new file mode 100644 index 000000000..2a6937874 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/workflows/ci.yml @@ -0,0 +1,144 @@ +name: CI + +on: + pull_request: + paths-ignore: + - "**.css" + - "**.js" + - "**.md" + - "**.html" + - "**.csv" + - "**.po" + - "**.pot" + schedule: + # Run everday at midnight UTC / 5:30 IST + - cron: "0 0 * * *" +env: + HR_BRANCH: ${{ github.base_ref || github.ref_name }} + +concurrency: + group: develop-${{ github.event.number }} + cancel-in-progress: true + +jobs: + tests: + runs-on: ubuntu-latest + timeout-minutes: 60 + env: + NODE_ENV: "production" + WITH_COVERAGE: ${{ github.event_name != 'pull_request' }} + + strategy: + fail-fast: false + + matrix: + container: [1, 2] + + name: Python Unit Tests + + services: + mysql: + image: mariadb:11.8 + env: + MARIADB_ROOT_PASSWORD: 'root' + ports: + - 3306:3306 + options: --health-cmd="mariadb-admin ping" --health-interval=5s --health-timeout=2s --health-retries=3 + + steps: + - name: Clone + uses: actions/checkout@v6 + + - name: Setup Python + uses: actions/setup-python@v6 + with: + python-version: '3.14' + + - name: Check for valid Python & Merge Conflicts + run: | + python -m compileall -f "${GITHUB_WORKSPACE}" + if grep -lr --exclude-dir=node_modules "^<<<<<<< " "${GITHUB_WORKSPACE}" + then echo "Found merge conflicts" + exit 1 + fi + + - name: Setup Node + uses: actions/setup-node@v6 + with: + node-version: 24 + check-latest: true + + - name: Add to Hosts + run: echo "127.0.0.1 test_site" | sudo tee -a /etc/hosts + + - name: Cache pip + uses: actions/cache@v4 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml') }} + restore-keys: | + ${{ runner.os }}-pip- + ${{ runner.os }}- + + - name: Cache node modules + uses: actions/cache@v4 + env: + cache-name: cache-node-modules + with: + path: ~/.npm + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + + - uses: actions/cache@v4 + id: yarn-cache + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - name: Install + run: | + bash ${GITHUB_WORKSPACE}/.github/helper/install.sh + env: + FRAPPE_USER: ${{ github.event.inputs.user }} + FRAPPE_BRANCH: ${{ github.event.inputs.branch }} + + - name: Run Tests + run: cd ~/frappe-bench/ && bench --site test_site run-parallel-tests --app hrms --total-builds ${{ strategy.job-total }} --build-number ${{ matrix.container }} + env: + TYPE: server + CAPTURE_COVERAGE: ${{ github.event_name != 'pull_request' }} + + - name: Upload coverage data + uses: actions/upload-artifact@v4 + if: github.event_name != 'pull_request' + with: + name: coverage-${{ matrix.container }} + path: /home/runner/frappe-bench/sites/coverage.xml + + coverage: + name: Coverage Wrap Up + needs: tests + runs-on: ubuntu-latest + if: ${{ github.event_name != 'pull_request' }} + steps: + - name: Clone + uses: actions/checkout@v6 + + - name: Download artifacts + uses: actions/download-artifact@v4 + + - name: Upload coverage data + uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} + fail_ci_if_error: true + verbose: true diff --git a/apps/erpnext/src/hrms/.github/workflows/docs_checker.yml b/apps/erpnext/src/hrms/.github/workflows/docs_checker.yml new file mode 100644 index 000000000..895ecea46 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/workflows/docs_checker.yml @@ -0,0 +1,25 @@ +name: 'Documentation Required' +on: + pull_request: + types: [ opened, synchronize, reopened, edited ] + +jobs: + build: + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - name: 'Setup Environment' + uses: actions/setup-python@v6 + with: + python-version: 3.8 + + - name: 'Clone repo' + uses: actions/checkout@v6 + + - name: Validate Docs + env: + PR_NUMBER: ${{ github.event.number }} + run: | + pip install requests --quiet + python $GITHUB_WORKSPACE/.github/helper/documentation.py $PR_NUMBER \ No newline at end of file diff --git a/apps/erpnext/src/hrms/.github/workflows/generate-pot-file.yml b/apps/erpnext/src/hrms/.github/workflows/generate-pot-file.yml new file mode 100644 index 000000000..8f46aaa15 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/workflows/generate-pot-file.yml @@ -0,0 +1,35 @@ +name: Regenerate POT file (translatable strings) +on: + schedule: + # 9:30 UTC => 3 PM IST Sunday + - cron: "30 9 * * 0" + workflow_dispatch: + +jobs: + regenerate-pot-file: + name: Regenerate POT file + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + branch: ["develop"] + permissions: + contents: write + + steps: + - name: Checkout + uses: actions/checkout@v6 + with: + ref: ${{ matrix.branch }} + + - name: Setup Python + uses: actions/setup-python@v6 + with: + python-version: "3.14" + + - name: Run script to update POT file + run: | + bash ${GITHUB_WORKSPACE}/.github/helper/update_pot_file.sh + env: + GH_TOKEN: ${{ secrets.RELEASE_TOKEN }} + BASE_BRANCH: ${{ matrix.branch }} diff --git a/apps/erpnext/src/hrms/.github/workflows/initiate_release.yml b/apps/erpnext/src/hrms/.github/workflows/initiate_release.yml new file mode 100644 index 000000000..4a6a556d5 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/workflows/initiate_release.yml @@ -0,0 +1,32 @@ +# This workflow is agnostic to branches. Only maintain on develop branch. +# To add/remove versions just modify the matrix. + +name: Create weekly release pull requests +on: + schedule: + # 9:45 UTC => 3:15 PM IST Tuesday + - cron: "45 9 * * 2" + workflow_dispatch: + +jobs: + stable-release: + name: Release + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + version: ["14", "15"] + + steps: + - uses: octokit/request-action@v2.x + with: + route: POST /repos/{owner}/{repo}/pulls + owner: frappe + repo: hrms + title: |- + "chore: release v${{ matrix.version }}" + body: "Automated Release." + base: version-${{ matrix.version }} + head: version-${{ matrix.version }}-hotfix + env: + GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} diff --git a/apps/erpnext/src/hrms/.github/workflows/labeller.yml b/apps/erpnext/src/hrms/.github/workflows/labeller.yml new file mode 100644 index 000000000..97fa4a1a2 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/workflows/labeller.yml @@ -0,0 +1,12 @@ +name: "Pull Request Labeler" +on: + pull_request_target: + types: [opened, reopened] + +jobs: + triage: + runs-on: ubuntu-latest + steps: + - uses: actions/labeler@v4 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/apps/erpnext/src/hrms/.github/workflows/linters.yml b/apps/erpnext/src/hrms/.github/workflows/linters.yml new file mode 100644 index 000000000..35871a6fe --- /dev/null +++ b/apps/erpnext/src/hrms/.github/workflows/linters.yml @@ -0,0 +1,49 @@ +name: Linters + +on: + pull_request: { } + +jobs: + commit-lint: + name: 'Semantic Commits' + runs-on: ubuntu-latest + if: github.event_name == 'pull_request' + + steps: + - uses: actions/checkout@v6 + with: + fetch-depth: 200 + - uses: actions/setup-node@v6 + with: + node-version: 24 + check-latest: true + + - name: Check commit titles + run: | + npm install @commitlint/cli @commitlint/config-conventional + npx commitlint --verbose --from ${{ github.event.pull_request.base.sha }} --to ${{ github.event.pull_request.head.sha }} + + linter: + name: 'Frappe Linter' + runs-on: ubuntu-latest + if: github.event_name == 'pull_request' + + steps: + - uses: actions/checkout@v6 + + - name: Set up Python 3.14 + uses: actions/setup-python@v6 + with: + python-version: '3.14' + + - name: Install and Run Pre-commit + uses: pre-commit/action@v3.0.0 + + - name: Download Semgrep rules + run: git clone --depth 1 https://github.com/frappe/semgrep-rules.git frappe-semgrep-rules + + - name: Download semgrep + run: pip install semgrep + + - name: Run Semgrep rules + run: semgrep ci --config ./frappe-semgrep-rules/rules --config r/python.lang.correctness \ No newline at end of file diff --git a/apps/erpnext/src/hrms/.github/workflows/on_release.yml b/apps/erpnext/src/hrms/.github/workflows/on_release.yml new file mode 100644 index 000000000..b29265a1c --- /dev/null +++ b/apps/erpnext/src/hrms/.github/workflows/on_release.yml @@ -0,0 +1,32 @@ +name: Generate Semantic Release +on: + workflow_dispatch: + push: + branches: + - version-16 +jobs: + release: + name: Release + runs-on: ubuntu-latest + steps: + - name: Checkout Entire Repository + uses: actions/checkout@v6 + with: + fetch-depth: 0 + persist-credentials: false + - name: Setup Node.js + uses: actions/setup-node@v6 + with: + node-version: 20 + - name: Setup dependencies + run: | + npm install @semantic-release/git @semantic-release/exec --no-save + - name: Create Release + env: + GH_TOKEN: ${{ secrets.RELEASE_TOKEN }} + GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} + GIT_AUTHOR_NAME: "Frappe PR Bot" + GIT_AUTHOR_EMAIL: "developers@frappe.io" + GIT_COMMITTER_NAME: "Frappe PR Bot" + GIT_COMMITTER_EMAIL: "developers@frappe.io" + run: npx semantic-release diff --git a/apps/erpnext/src/hrms/.github/workflows/release_notes.yml b/apps/erpnext/src/hrms/.github/workflows/release_notes.yml new file mode 100644 index 000000000..0c730444c --- /dev/null +++ b/apps/erpnext/src/hrms/.github/workflows/release_notes.yml @@ -0,0 +1,42 @@ +# This action: +# +# 1. Generates release notes using github API. +# 2. Strips unnecessary info like chore/style etc from notes. +# 3. Updates release info. + +# This action needs to be maintained on all branches that do releases. + +name: 'Release Notes' + +on: + workflow_dispatch: + inputs: + tag_name: + description: 'Tag of release like v13.0.0' + required: true + type: string + release: + types: [released] + +permissions: + contents: read + +jobs: + regen-notes: + name: 'Regenerate release notes' + runs-on: ubuntu-latest + + steps: + - name: Update notes + run: | + NEW_NOTES=$(gh api --method POST -H "Accept: application/vnd.github+json" /repos/frappe/hrms/releases/generate-notes -f tag_name=$RELEASE_TAG \ + | jq -r '.body' \ + | sed -E '/^\* (chore|ci|test|docs|style)/d' \ + | sed -E 's/by @mergify //' + ) + RELEASE_ID=$(gh api -H "Accept: application/vnd.github+json" /repos/frappe/hrms/releases/tags/$RELEASE_TAG | jq -r '.id') + gh api --method PATCH -H "Accept: application/vnd.github+json" /repos/frappe/hrms/releases/$RELEASE_ID -f body="$NEW_NOTES" + + env: + GH_TOKEN: ${{ secrets.RELEASE_TOKEN }} + RELEASE_TAG: ${{ github.event.inputs.tag_name || github.event.release.tag_name }} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/.github/workflows/stale.yml b/apps/erpnext/src/hrms/.github/workflows/stale.yml new file mode 100644 index 000000000..efe74d739 --- /dev/null +++ b/apps/erpnext/src/hrms/.github/workflows/stale.yml @@ -0,0 +1,37 @@ +# https://github.com/actions/stale + +name: "Close Stale PRs" +on: + schedule: + - cron: 0 0 * * * + workflow_dispatch: + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 + with: + days-before-pr-stale: 15 + days-before-pr-close: 3 + stale-pr-label: 'Inactive' + exempt-draft-pr: true + days-before-issue-stale: 5 + days-before-issue-close: 2 + stale-issue-label: 'Inactive' + any-of-issue-labels: "question,can't replicate" + remove-issue-stale-when-updated: true + labels-to-remove-when-unstale: 'Inactive' + stale-pr-message: | + This pull request is being marked as inactive because of no recent activity. + If your PR hasn't been reviewed, it's likely because it doesn't fullfill the [contribution guidelines](https://github.com/frappe/erpnext/wiki/Contribution-Guidelines). Please read them carefully and fix the pull request. When you are sure all items are checked, please ping relevant codeowner in the comment. Be nice, they have a lot on their plate too. + + It will be closed in 3 days if no further activity occurs. + Thank you for contributing! + stale-issue-message: | + Hi, this is your friendly neighbourhood bot :) + + Thank you for taking time to report the issue, however your description of the issue is insufficient to understand the exact problem and/or to replicate and fix it. Please provide the information requested by the maintainers, so this can be fixed. More the steps/screenshots/videos the better. + + It will be closed in 2 days if no further activity occurs. + Beep Boop! diff --git a/apps/erpnext/src/hrms/.gitignore b/apps/erpnext/src/hrms/.gitignore new file mode 100644 index 000000000..05b33386e --- /dev/null +++ b/apps/erpnext/src/hrms/.gitignore @@ -0,0 +1,22 @@ +.DS_Store +*.pyc +*.egg-info +*.swp +tags +hrms/public/dist +hrms/public/node_modules +hrms/docs/current +node_modules/ +dist/ +__pycache__/ + +# build/ +.vscode +.vs +node_modules +*debug.log +hrms/docs/current +hrms/public/frontend +hrms/www/hrms.html +hrms/public/roster +hrms/www/roster.html diff --git a/apps/erpnext/src/hrms/.gitmodules b/apps/erpnext/src/hrms/.gitmodules new file mode 100644 index 000000000..aac084b17 --- /dev/null +++ b/apps/erpnext/src/hrms/.gitmodules @@ -0,0 +1,3 @@ +[submodule "frappe-ui"] + path = frappe-ui + url = https://github.com/frappe/frappe-ui diff --git a/apps/erpnext/src/hrms/.mergify.yml b/apps/erpnext/src/hrms/.mergify.yml new file mode 100644 index 000000000..875edc4df --- /dev/null +++ b/apps/erpnext/src/hrms/.mergify.yml @@ -0,0 +1,79 @@ +pull_request_rules: + - name: Auto-close PRs on stable branch + conditions: + - and: + - and: + - author!=ruchamahabal + - author!=saurabh6790 + - author!=frappe-pr-bot + - author!=mergify[bot] + - or: + - base=version-16 + - base=version-15 + - base=version-14 + actions: + close: + comment: + message: | + @{{author}}, thanks for the contribution, but we do not accept pull requests on a stable branch. Please raise PR on an appropriate hotfix branch or the develop branch. + + - name: Automatic merge on CI success and review + conditions: + - status-success=linters + - status-success=Sider + - status-success=Semantic Pull Request + - status-success=Python Unit Tests (1) + - status-success=Python Unit Tests (2) + - label!=dont-merge + - label!=squash + - "#approved-reviews-by>=1" + actions: + merge: + method: merge + + - name: Automatic squash on CI success and review + conditions: + - status-success=linters + - status-success=Sider + - status-success=Python Unit Tests (1) + - status-success=Python Unit Tests (2) + - label!=dont-merge + - label=squash + - "#approved-reviews-by>=1" + actions: + merge: + method: squash + commit_message_template: | + {{ title }} (#{{ number }}) + + {{ body }} + + - name: backport to develop + conditions: + - label="backport develop" + actions: + backport: + branches: + - develop + assignees: + - "{{ author }}" + + - name: backport to version-14-hotfix + conditions: + - label="backport version-14-hotfix" + actions: + backport: + branches: + - version-14-hotfix + assignees: + - "{{ author }}" + + - name: backport to version-15-hotfix + conditions: + - label="backport version-15-hotfix" + actions: + backport: + branches: + - version-15-hotfix + assignees: + - "{{ author }}" diff --git a/apps/erpnext/src/hrms/.pre-commit-config.yaml b/apps/erpnext/src/hrms/.pre-commit-config.yaml new file mode 100644 index 000000000..dd4a589d4 --- /dev/null +++ b/apps/erpnext/src/hrms/.pre-commit-config.yaml @@ -0,0 +1,49 @@ +exclude: 'node_modules|.git' +default_stages: [commit] +fail_fast: false + + +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.0.1 + hooks: + - id: trailing-whitespace + files: "hrms.*" + exclude: ".*json$|.*txt$|.*csv|.*md" + - id: check-yaml + - id: no-commit-to-branch + args: ['--branch', 'develop'] + - id: check-merge-conflict + - id: check-ast + + - repo: https://github.com/pre-commit/mirrors-prettier + rev: v3.1.0 + hooks: + - id: prettier + types_or: [javascript, ts, vue, css, scss] + # Ignore frontend folder and any files that might contain jinja / bundles + exclude: | + (?x)^( + frontend/.*| + hrms/public/dist/.*| + .*node_modules.*| + .*boilerplate.*| + hrms/templates/includes/.*| + hrms/hr/doctype/employee_promotion/employee_promotion.js| + hrms/hr/doctype/employee_transfer/employee_transfer.js| + )$ + + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.3.7 + hooks: + - id: ruff + name: "Run ruff linter and apply fixes" + args: ["--fix"] + + - id: ruff-format + name: "Format Python code" + +ci: + autoupdate_schedule: weekly + skip: [] + submodules: false diff --git a/apps/erpnext/src/hrms/.releaserc b/apps/erpnext/src/hrms/.releaserc new file mode 100644 index 000000000..9a9ec64bb --- /dev/null +++ b/apps/erpnext/src/hrms/.releaserc @@ -0,0 +1,24 @@ +{ + "branches": ["version-16"], + "plugins": [ + "@semantic-release/commit-analyzer", { + "preset": "angular", + "releaseRules": [ + {"breaking": true, "release": false} + ] + }, + "@semantic-release/release-notes-generator", + [ + "@semantic-release/exec", { + "prepareCmd": 'sed -ir "s/[0-9]*\.[0-9]*\.[0-9]*/${nextRelease.version}/" hrms/__init__.py' + } + ], + [ + "@semantic-release/git", { + "assets": ["hrms/__init__.py"], + "message": "chore(release): Bumped to Version ${nextRelease.version}\n\n${nextRelease.notes}" + } + ], + "@semantic-release/github" + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/.semgrepignore b/apps/erpnext/src/hrms/.semgrepignore new file mode 100644 index 000000000..5f067190e --- /dev/null +++ b/apps/erpnext/src/hrms/.semgrepignore @@ -0,0 +1 @@ +hrms/patches/post_install/ diff --git a/apps/erpnext/src/hrms/CODE_OF_CONDUCT.md b/apps/erpnext/src/hrms/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..4a97d8bf9 --- /dev/null +++ b/apps/erpnext/src/hrms/CODE_OF_CONDUCT.md @@ -0,0 +1,46 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at hello@frappe.io. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/apps/erpnext/src/hrms/MANIFEST.in b/apps/erpnext/src/hrms/MANIFEST.in new file mode 100644 index 000000000..404db123c --- /dev/null +++ b/apps/erpnext/src/hrms/MANIFEST.in @@ -0,0 +1,17 @@ +include MANIFEST.in +include *.json +include *.md +include *.py +include *.txt +recursive-include hrms *.css +recursive-include hrms *.csv +recursive-include hrms *.html +recursive-include hrms *.ico +recursive-include hrms *.js +recursive-include hrms *.json +recursive-include hrms *.md +recursive-include hrms *.png +recursive-include hrms *.py +recursive-include hrms *.svg +recursive-include hrms *.txt +recursive-exclude hrms *.pyc diff --git a/apps/erpnext/src/hrms/README.md b/apps/erpnext/src/hrms/README.md new file mode 100644 index 000000000..b8f917f5f --- /dev/null +++ b/apps/erpnext/src/hrms/README.md @@ -0,0 +1,138 @@ +

    + + Frappe HR Logo + +

    Frappe HR

    +

    +

    Open Source, modern, and easy-to-use HR and Payroll Software

    +

    + +[![CI](https://github.com/frappe/hrms/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/frappe/hrms/actions/workflows/ci.yml) +[![codecov](https://codecov.io/gh/frappe/hrms/branch/develop/graph/badge.svg?token=0TwvyUg3I5)](https://codecov.io/gh/frappe/hrms) + +frappe%2Fhrms | Trendshift +
    + +
    + +
    + + + +## Frappe HR + +Frappe HR has everything you need to drive excellence within the company. It's a complete HRMS solution with over 13 different modules right from Employee Management, Onboarding, Leaves, to Payroll, Taxation, and more! + +## Motivation +When Frappe team started growing in terms of size, we needed an open-source HR and Payroll software. We didn't find any "true" open-source HR software out there and so decided to build one ourselves. +Initially, it was a set of modules within ERPNext but version 14 onwards, as the modules became more mature, Frappe HR was created as a separate product. + +## Key Features + +- **Employee Lifecycle**: From onboarding employees, managing promotions and transfers, all the way to documenting feedback with exit interviews, make life easier for employees throughout their life cycle. +- **Leave and Attendance**: Configure leave policies, pull regional holidays with a click, check-in and check-out with geolocation capturing, track leave balances and attendance with reports. +- **Expense Claims and Advances**: Manage employee advances, claim expenses, configure multi-level approval workflows, all this with seamless integration with ERPNext accounting. +- **Performance Management**: Track goals, align goals with key result areas (KRAs), enable employees to evaluate themselves, make managing appraisal cycles easy. +- **Payroll & Taxation**: Create salary structures, configure income tax slabs, run standard payroll, accomodate additional salaries and off cycle payments, view income breakup on salary slips and so much more. +- **Frappe HR Mobile App**: Apply for and approve leaves on the go, check-in and check-out, access employee profile right from the mobile app. + +
    + +View Screenshots + + + + + +
    + +### Under the Hood + +- [**Frappe Framework**](https://github.com/frappe/frappe): A full-stack web application framework written in Python and Javascript. The framework provides a robust foundation for building web applications, including a database abstraction layer, user authentication, and a REST API. + +- [**Frappe UI**](https://github.com/frappe/frappe-ui): A Vue-based UI library, to provide a modern user interface. The Frappe UI library provides a variety of components that can be used to build single-page applications on top of the Frappe Framework. + +## Production Setup + +### Managed Hosting + +You can try [Frappe Cloud](https://frappecloud.com), a simple, user-friendly and sophisticated [open-source](https://github.com/frappe/press) platform to host Frappe applications with peace of mind. + +It takes care of installation, setup, upgrades, monitoring, maintenance and support of your Frappe deployments. It is a fully featured developer platform with an ability to manage and control multiple Frappe deployments. + + + + +## Development setup +### Docker +You need Docker, docker-compose and git setup on your machine. Refer [Docker documentation](https://docs.docker.com/). After that, run the following commands: +``` +git clone https://github.com/frappe/hrms +cd hrms/docker +docker-compose up +``` + +Wait for some time until the setup script creates a site. After that you can access `http://localhost:8000` in your browser and the login screen for HR should show up. + +Use the following credentials to log in: + +- Username: `Administrator` +- Password: `admin` + +### Local + +1. Set up bench by following the [Installation Steps](https://frappeframework.com/docs/user/en/installation) and start the server and keep it running + ```sh + $ bench start + ``` +2. In a separate terminal window, run the following commands + ```sh + $ bench new-site hrms.local + $ bench get-app erpnext + $ bench get-app hrms + $ bench --site hrms.local install-app hrms + $ bench --site hrms.local add-to-hosts + ``` +3. You can access the site at `http://hrms.local:8080` + +## Learning and Community + +1. [Frappe School](https://frappe.school) - Learn Frappe Framework and ERPNext from the various courses by the maintainers or from the community. +2. [Documentation](https://docs.frappe.io/hr) - Extensive documentation for Frappe HR. +3. [User Forum](https://discuss.erpnext.com/) - Engage with the community of ERPNext users and service providers. +4. [Telegram Group](https://t.me/frappehr) - Get instant help from the community of users. + + +## Contributing + +1. [Issue Guidelines](https://github.com/frappe/erpnext/wiki/Issue-Guidelines) +1. [Report Security Vulnerabilities](https://erpnext.com/security) +1. [Pull Request Requirements](https://github.com/frappe/erpnext/wiki/Contribution-Guidelines) + + +## Logo and Trademark Policy + +Please read our [Logo and Trademark Policy](TRADEMARK_POLICY.md). + +
    +
    + + diff --git a/apps/erpnext/src/hrms/codecov.yml b/apps/erpnext/src/hrms/codecov.yml new file mode 100644 index 000000000..7dfcec9f3 --- /dev/null +++ b/apps/erpnext/src/hrms/codecov.yml @@ -0,0 +1,24 @@ +codecov: + require_ci_to_pass: yes + +coverage: + status: + project: + default: + target: auto + threshold: 0.5% + + patch: + default: + target: 85% + threshold: 0% + base: auto + branches: + - develop + if_ci_failed: ignore + only_pulls: true + +comment: + layout: "diff, files" + require_changes: true + diff --git a/apps/erpnext/src/hrms/commitlint.config.js b/apps/erpnext/src/hrms/commitlint.config.js new file mode 100644 index 000000000..1971c4d5c --- /dev/null +++ b/apps/erpnext/src/hrms/commitlint.config.js @@ -0,0 +1,26 @@ +module.exports = { + parserPreset: "conventional-changelog-conventionalcommits", + rules: { + "subject-empty": [2, "never"], + "type-case": [2, "always", "lower-case"], + "type-empty": [2, "never"], + "type-enum": [ + 2, + "always", + [ + "build", + "chore", + "ci", + "docs", + "feat", + "fix", + "perf", + "refactor", + "revert", + "style", + "test", + "patch", + ], + ], + }, +}; diff --git a/apps/erpnext/src/hrms/crowdin.yml b/apps/erpnext/src/hrms/crowdin.yml new file mode 100644 index 000000000..49178a202 --- /dev/null +++ b/apps/erpnext/src/hrms/crowdin.yml @@ -0,0 +1,12 @@ +languages_mapping: + two_letters_code: + pt-BR: pt_BR +files: + - source: /hrms/locale/main.pot + translation: /hrms/locale/%two_letters_code%.po +pull_request_title: 'fix: sync translations from crowdin' +pull_request_labels: + - translation + - skip-release-notes +commit_message: 'fix: %language% translations' +append_commit_message: false diff --git a/apps/erpnext/src/hrms/docker/docker-compose.yml b/apps/erpnext/src/hrms/docker/docker-compose.yml new file mode 100644 index 000000000..740fb607b --- /dev/null +++ b/apps/erpnext/src/hrms/docker/docker-compose.yml @@ -0,0 +1,31 @@ +version: "3.8" # Updated version +services: + mariadb: + image: mariadb:10.8 + command: + - --character-set-server=utf8mb4 + - --collation-server=utf8mb4_unicode_ci + - --skip-character-set-client-handshake + - --skip-innodb-read-only-compressed # Temporary fix for MariaDB 10.6 + environment: + MYSQL_ROOT_PASSWORD: 123 + volumes: + - mariadb-data:/var/lib/mysql + + redis: + image: redis:alpine + + frappe: + image: frappe/bench:latest + command: bash /workspace/init.sh + environment: + - SHELL=/bin/bash + working_dir: /home/frappe + volumes: + - .:/workspace + ports: + - 8000:8000 + - 9000:9000 + +volumes: + mariadb-data: diff --git a/apps/erpnext/src/hrms/docker/init.sh b/apps/erpnext/src/hrms/docker/init.sh new file mode 100644 index 000000000..970c9e814 --- /dev/null +++ b/apps/erpnext/src/hrms/docker/init.sh @@ -0,0 +1,42 @@ +#!bin/bash + +if [ -d "/home/frappe/frappe-bench/apps/frappe" ]; then + echo "Bench already exists, skipping init" + cd frappe-bench + bench start +else + echo "Creating new bench..." +fi + +export PATH="${NVM_DIR}/versions/node/v${NODE_VERSION_DEVELOP}/bin/:${PATH}" + +bench init --skip-redis-config-generation frappe-bench + +cd frappe-bench + +# Use containers instead of localhost +bench set-mariadb-host mariadb +bench set-redis-cache-host redis://redis:6379 +bench set-redis-queue-host redis://redis:6379 +bench set-redis-socketio-host redis://redis:6379 + +# Remove redis, watch from Procfile +sed -i '/redis/d' ./Procfile +sed -i '/watch/d' ./Procfile + +bench get-app erpnext +bench get-app hrms + +bench new-site hrms.localhost \ +--force \ +--mariadb-root-password 123 \ +--admin-password admin \ +--no-mariadb-socket + +bench --site hrms.localhost install-app hrms +bench --site hrms.localhost set-config developer_mode 1 +bench --site hrms.localhost enable-scheduler +bench --site hrms.localhost clear-cache +bench use hrms.localhost + +bench start \ No newline at end of file diff --git a/apps/erpnext/src/hrms/frontend/.eslintrc.js b/apps/erpnext/src/hrms/frontend/.eslintrc.js new file mode 100644 index 000000000..121a1110a --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/.eslintrc.js @@ -0,0 +1,22 @@ +module.exports = { + root: true, + env: { + es2021: true, + node: true, + }, + extends: [ + "eslint:recommended", + "plugin:vue/vue3-essential", + "plugin:prettier/recommended", + ], + parserOptions: { + ecmaVersion: 2020, + }, + rules: { + "no-console": process.env.NODE_ENV === "production" ? "warn" : "off", + "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", + "vue/no-deprecated-slot-attribute": "off", + "vue/multi-word-component-names": "off", + }, + plugins: ["vue", "prettier"], +} diff --git a/apps/erpnext/src/hrms/frontend/.gitignore b/apps/erpnext/src/hrms/frontend/.gitignore new file mode 100644 index 000000000..14fd2b38b --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/.gitignore @@ -0,0 +1,6 @@ +node_modules +.DS_Store +dev-dist +dist +dist-ssr +*.local \ No newline at end of file diff --git a/apps/erpnext/src/hrms/frontend/.prettierrc.json b/apps/erpnext/src/hrms/frontend/.prettierrc.json new file mode 100644 index 000000000..131ec81ca --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/.prettierrc.json @@ -0,0 +1,5 @@ +{ + "semi": false, + "tabWidth": 2, + "useTabs": true +} diff --git a/apps/erpnext/src/hrms/frontend/index.html b/apps/erpnext/src/hrms/frontend/index.html new file mode 100644 index 000000000..1e1e86823 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/index.html @@ -0,0 +1,194 @@ + + + + + + Frappe HR + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + + + + + diff --git a/apps/erpnext/src/hrms/frontend/ionic.config.json b/apps/erpnext/src/hrms/frontend/ionic.config.json new file mode 100644 index 000000000..de3b3bd3e --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/ionic.config.json @@ -0,0 +1,8 @@ +{ + "name": "FrappeHR", + "integrations": {}, + "type": "vue", + "server": { + "url": "http://localhost:8080/" + } +} diff --git a/apps/erpnext/src/hrms/frontend/jsconfig.json b/apps/erpnext/src/hrms/frontend/jsconfig.json new file mode 100644 index 000000000..c062724fc --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/jsconfig.json @@ -0,0 +1,5 @@ +{ + "compilerOptions": { + "allowJs": true + } +} diff --git a/apps/erpnext/src/hrms/frontend/package.json b/apps/erpnext/src/hrms/frontend/package.json new file mode 100644 index 000000000..e0ebd4c31 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/package.json @@ -0,0 +1,37 @@ +{ + "name": "frappe-hr-ui", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "serve": "vite preview", + "build": "vite build --base=/assets/hrms/frontend/ && yarn copy-html-entry", + "ionic:build": "npm run build", + "ionic:serve": "vite dev --host", + "copy-html-entry": "cp ../hrms/public/frontend/index.html ../hrms/www/hrms.html" + }, + "dependencies": { + "@ionic/vue": "^7.4.3", + "@ionic/vue-router": "^7.4.3", + "@vitejs/plugin-vue": "^4.4.0", + "autoprefixer": "^10.4.19", + "dayjs": "^1.11.11", + "feather-icons": "^4.29.1", + "firebase": "^10.8.0", + "frappe-ui": "0.1.105", + "postcss": "^8.4.5", + "tailwindcss": "^3.4.3", + "vite": "^5.4.10", + "vite-plugin-pwa": "^0.20.5", + "vue": "^3.5.12", + "vue-router": "^4.3.2", + "workbox-core": "^7.0.0", + "workbox-precaching": "^7.0.0" + }, + "devDependencies": { + "eslint": "^8.39.0", + "eslint-plugin-vue": "^9.11.0", + "prettier": "^2.8.8" + } +} diff --git a/apps/erpnext/src/hrms/frontend/postcss.config.js b/apps/erpnext/src/hrms/frontend/postcss.config.js new file mode 100644 index 000000000..1a5262473 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/apps/erpnext/src/hrms/frontend/public/favicon.png b/apps/erpnext/src/hrms/frontend/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..b51db82f82b906b30609f807f0f663cac40d20b4 GIT binary patch literal 440 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$a>caTa()7Beu2se&-0XOPMVpde#$ zkh>GZx^prwfgF}}M_)$E)e-c@Na=xA}jv*C{Z|`n2ZE+NFc(}bULexYtxXVk! zRa1H)JCmwK`xQRZ9Zdhl)Xnb@xa7e_h#Kc{rb11QMP%$ zyna9bX2;pHxqo~9%j-KE^?Uy3M6(kqS{SBbSa7?V|4TdH>w?cef9;X4JIhPRIT!|D tb@a_URnxz=-&b0D_xf+-FaWXL-%6{zP`s|39McHmdb;|#taD0e0su)Qf|39L literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/frontend/public/frappe-push-notification.js b/apps/erpnext/src/hrms/frontend/public/frappe-push-notification.js new file mode 100644 index 000000000..4b42f06f5 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/public/frappe-push-notification.js @@ -0,0 +1,294 @@ +import { initializeApp } from "firebase/app" +import { + getMessaging, + getToken, + isSupported, + deleteToken, + onMessage as onFCMMessage, +} from "firebase/messaging" + +class FrappePushNotification { + static get relayServerBaseURL() { + return window.frappe?.boot.push_relay_server_url + } + + // Type definitions + /** + * Web Config + * FCM web config to initialize firebase app + * + * @typedef {object} webConfigType + * @property {string} projectId + * @property {string} appId + * @property {string} apiKey + * @property {string} authDomain + * @property {string} messagingSenderId + */ + + /** + * Constructor + * + * @param {string} projectName + */ + constructor(projectName) { + // client info + this.projectName = projectName + /** @type {webConfigType | null} */ + this.webConfig = null + this.vapidPublicKey = "" + this.token = null + + // state + this.initialized = false + this.messaging = null + /** @type {ServiceWorkerRegistration | null} */ + this.serviceWorkerRegistration = null + + // event handlers + this.onMessageHandler = null + } + + /** + * Initialize notification service client + * + * @param {ServiceWorkerRegistration} serviceWorkerRegistration - Service worker registration object + * @returns {Promise} + */ + async initialize(serviceWorkerRegistration) { + if (this.initialized) { + return + } + this.serviceWorkerRegistration = serviceWorkerRegistration + const config = await this.fetchWebConfig() + this.messaging = getMessaging(initializeApp(config)) + this.onMessage(this.onMessageHandler) + this.initialized = true + } + + /** + * Append config to service worker URL + * + * @param {string} url - Service worker URL + * @param {string} parameter_name - Parameter name to add config + * @returns {Promise} - Service worker URL with config + */ + async appendConfigToServiceWorkerURL(url, parameter_name = "config") { + let config = await this.fetchWebConfig() + const encode_config = encodeURIComponent(JSON.stringify(config)) + return `${url}?${parameter_name}=${encode_config}` + } + + /** + * Fetch web config of the project + * + * @returns {Promise} + */ + async fetchWebConfig() { + if (this.webConfig !== null && this.webConfig !== undefined) { + return this.webConfig + } + try { + let url = `${FrappePushNotification.relayServerBaseURL}/api/method/notification_relay.api.get_config?project_name=${this.projectName}` + let response = await fetch(url) + let response_json = await response.json() + this.webConfig = response_json.config + return this.webConfig + } catch (e) { + throw new Error( + "Push Notification Relay is not configured properly on your site." + ) + } + } + + /** + * Fetch VAPID public key + * + * @returns {Promise} + */ + async fetchVapidPublicKey() { + if (this.vapidPublicKey !== "") { + return this.vapidPublicKey + } + try { + let url = `${FrappePushNotification.relayServerBaseURL}/api/method/notification_relay.api.get_config?project_name=${this.projectName}` + let response = await fetch(url) + let response_json = await response.json() + this.vapidPublicKey = response_json.vapid_public_key + return this.vapidPublicKey + } catch (e) { + throw new Error( + "Push Notification Relay is not configured properly on your site." + ) + } + } + + /** + * Register on message handler + * + * @param {function( + * { + * data:{ + * title: string, + * body: string, + * click_action: string|null, + * } + * } + * )} callback - Callback function to handle message + */ + onMessage(callback) { + if (callback == null) return + this.onMessageHandler = callback + if (this.messaging == null) return + onFCMMessage(this.messaging, this.onMessageHandler) + } + + /** + * Check if notification is enabled + * + * @returns {boolean} + */ + isNotificationEnabled() { + return localStorage.getItem(`firebase_token_${this.projectName}`) !== null + } + + /** + * Enable notification + * This will return notification permission status and token + * + * @returns {Promise<{permission_granted: boolean, token: string}>} + */ + async enableNotification() { + if (!(await isSupported())) { + throw new Error("Push notifications are not supported on your device") + } + // Return if token already presence in the instance + if (this.token != null) { + return { + permission_granted: true, + token: this.token, + } + } + // ask for permission + const permission = await Notification.requestPermission() + if (permission !== "granted") { + return { + permission_granted: false, + token: "", + } + } + // check in local storage for old token + let oldToken = localStorage.getItem(`firebase_token_${this.projectName}`) + const vapidKey = await this.fetchVapidPublicKey() + let newToken = await getToken(this.messaging, { + vapidKey: vapidKey, + serviceWorkerRegistration: this.serviceWorkerRegistration, + }) + // register new token if token is changed + if (oldToken !== newToken) { + // unsubscribe old token + if (oldToken) { + await this.unregisterTokenHandler(oldToken) + } + // subscribe push notification and register token + let isSubscriptionSuccessful = await this.registerTokenHandler(newToken) + if (isSubscriptionSuccessful === false) { + throw new Error("Failed to subscribe to push notification") + } + // save token to local storage + localStorage.setItem(`firebase_token_${this.projectName}`, newToken) + } + this.token = newToken + return { + permission_granted: true, + token: newToken, + } + } + + /** + * Disable notification + * This will delete token from firebase and unsubscribe from push notification + * + * @returns {Promise} + */ + async disableNotification() { + if (this.token == null) { + // try to fetch token from local storage + this.token = localStorage.getItem(`firebase_token_${this.projectName}`) + if (this.token == null || this.token === "") { + return + } + } + // delete old token from firebase + try { + await deleteToken(this.messaging) + } catch (e) { + console.error("Failed to delete token from firebase") + console.error(e) + } + try { + await this.unregisterTokenHandler(this.token) + } catch { + console.error("Failed to unsubscribe from push notification") + console.error(e) + } + // remove token + localStorage.removeItem(`firebase_token_${this.projectName}`) + this.token = null + } + + /** + * Register Token Handler + * + * @param {string} token - FCM token returned by {@link enableNotification} method + * @returns {promise} + */ + async registerTokenHandler(token) { + try { + let response = await fetch( + "/api/method/frappe.push_notification.subscribe?fcm_token=" + + token + + "&project_name=" + + this.projectName, + { + method: "GET", + headers: { + "Content-Type": "application/json", + }, + } + ) + return response.status === 200 + } catch (e) { + console.error(e) + return false + } + } + + /** + * Unregister Token Handler + * + * @param {string} token - FCM token returned by `enableNotification` method + * @returns {promise} + */ + async unregisterTokenHandler(token) { + try { + let response = await fetch( + "/api/method/frappe.push_notification.unsubscribe?fcm_token=" + + token + + "&project_name=" + + this.projectName, + { + method: "GET", + headers: { + "Content-Type": "application/json", + }, + } + ) + return response.status === 200 + } catch (e) { + console.error(e) + return false + } + } +} + +export default FrappePushNotification diff --git a/apps/erpnext/src/hrms/frontend/public/sw.js b/apps/erpnext/src/hrms/frontend/public/sw.js new file mode 100644 index 000000000..cb110afeb --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/public/sw.js @@ -0,0 +1,64 @@ +import { cleanupOutdatedCaches, precacheAndRoute } from "workbox-precaching" +import { clientsClaim } from "workbox-core" + +import { initializeApp } from "firebase/app" +import { getMessaging, onBackgroundMessage } from "firebase/messaging/sw" + +// Use the precache manifest generated by Vite +precacheAndRoute(self.__WB_MANIFEST) + +// Clean up old caches +cleanupOutdatedCaches() + +const jsonConfig = new URL(location).searchParams.get("config") + +// Firebase config initialization +try { + const firebaseApp = initializeApp(JSON.parse(jsonConfig)) + const messaging = getMessaging(firebaseApp) + + function isChrome() { + return navigator.userAgent.toLowerCase().includes("chrome") + } + + onBackgroundMessage(messaging, (payload) => { + const notificationTitle = payload.data.title + let notificationOptions = { + body: payload.data.body || "", + } + if (payload.data.notification_icon) { + notificationOptions["icon"] = payload.data.notification_icon + } + if (isChrome()) { + notificationOptions["data"] = { + url: payload.data.click_action, + } + } else { + if (payload.data.click_action) { + notificationOptions["actions"] = [ + { + action: payload.data.click_action, + title: "View Details", + }, + ] + } + } + self.registration.showNotification(notificationTitle, notificationOptions) + }) + + if (isChrome()) { + self.addEventListener("notificationclick", (event) => { + event.stopImmediatePropagation() + event.notification.close() + if (event.notification.data && event.notification.data.url) { + clients.openWindow(event.notification.data.url) + } + }) + } +} catch (error) { + console.log("Failed to initialize Firebase", error) +} + +self.skipWaiting() +clientsClaim() +console.log("Service Worker Initialized") diff --git a/apps/erpnext/src/hrms/frontend/src/App.vue b/apps/erpnext/src/hrms/frontend/src/App.vue new file mode 100644 index 000000000..37dc2b6ef --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/App.vue @@ -0,0 +1,24 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/AttendanceCalendar.vue b/apps/erpnext/src/hrms/frontend/src/components/AttendanceCalendar.vue new file mode 100644 index 000000000..e3c9dad6c --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/AttendanceCalendar.vue @@ -0,0 +1,132 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/AttendanceRequestItem.vue b/apps/erpnext/src/hrms/frontend/src/components/AttendanceRequestItem.vue new file mode 100644 index 000000000..795b56e58 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/AttendanceRequestItem.vue @@ -0,0 +1,56 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/BaseLayout.vue b/apps/erpnext/src/hrms/frontend/src/components/BaseLayout.vue new file mode 100644 index 000000000..89f2bc669 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/BaseLayout.vue @@ -0,0 +1,68 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/BottomTabs.vue b/apps/erpnext/src/hrms/frontend/src/components/BottomTabs.vue new file mode 100644 index 000000000..416dd787f --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/BottomTabs.vue @@ -0,0 +1,67 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/CheckInPanel.vue b/apps/erpnext/src/hrms/frontend/src/components/CheckInPanel.vue new file mode 100644 index 000000000..ab1e9541b --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/CheckInPanel.vue @@ -0,0 +1,210 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/CustomIonModal.vue b/apps/erpnext/src/hrms/frontend/src/components/CustomIonModal.vue new file mode 100644 index 000000000..14de926fb --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/CustomIonModal.vue @@ -0,0 +1,45 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/EmployeeAdvanceBalance.vue b/apps/erpnext/src/hrms/frontend/src/components/EmployeeAdvanceBalance.vue new file mode 100644 index 000000000..ce6a32512 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/EmployeeAdvanceBalance.vue @@ -0,0 +1,39 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/EmployeeAdvanceItem.vue b/apps/erpnext/src/hrms/frontend/src/components/EmployeeAdvanceItem.vue new file mode 100644 index 000000000..5349601c5 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/EmployeeAdvanceItem.vue @@ -0,0 +1,76 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/EmployeeAvatar.vue b/apps/erpnext/src/hrms/frontend/src/components/EmployeeAvatar.vue new file mode 100644 index 000000000..046b1cdc7 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/EmployeeAvatar.vue @@ -0,0 +1,53 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/EmployeeCheckinItem.vue b/apps/erpnext/src/hrms/frontend/src/components/EmployeeCheckinItem.vue new file mode 100644 index 000000000..2f1dfae7e --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/EmployeeCheckinItem.vue @@ -0,0 +1,29 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/EmptyState.vue b/apps/erpnext/src/hrms/frontend/src/components/EmptyState.vue new file mode 100644 index 000000000..132041165 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/EmptyState.vue @@ -0,0 +1,17 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/ExpenseAdvancesTable.vue b/apps/erpnext/src/hrms/frontend/src/components/ExpenseAdvancesTable.vue new file mode 100644 index 000000000..918d89438 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/ExpenseAdvancesTable.vue @@ -0,0 +1,93 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/ExpenseClaimItem.vue b/apps/erpnext/src/hrms/frontend/src/components/ExpenseClaimItem.vue new file mode 100644 index 000000000..cceb4c776 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/ExpenseClaimItem.vue @@ -0,0 +1,107 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/ExpenseClaimSummary.vue b/apps/erpnext/src/hrms/frontend/src/components/ExpenseClaimSummary.vue new file mode 100644 index 000000000..720485b07 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/ExpenseClaimSummary.vue @@ -0,0 +1,89 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/ExpenseItems.vue b/apps/erpnext/src/hrms/frontend/src/components/ExpenseItems.vue new file mode 100644 index 000000000..fbe22fd0c --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/ExpenseItems.vue @@ -0,0 +1,59 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/ExpenseTaxesTable.vue b/apps/erpnext/src/hrms/frontend/src/components/ExpenseTaxesTable.vue new file mode 100644 index 000000000..1bef2bc2a --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/ExpenseTaxesTable.vue @@ -0,0 +1,265 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/ExpensesTable.vue b/apps/erpnext/src/hrms/frontend/src/components/ExpensesTable.vue new file mode 100644 index 000000000..c12746d5c --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/ExpensesTable.vue @@ -0,0 +1,246 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/FilePreviewModal.vue b/apps/erpnext/src/hrms/frontend/src/components/FilePreviewModal.vue new file mode 100644 index 000000000..925dbe505 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/FilePreviewModal.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/FileUploaderView.vue b/apps/erpnext/src/hrms/frontend/src/components/FileUploaderView.vue new file mode 100644 index 000000000..fe9cd394f --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/FileUploaderView.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/FormField.vue b/apps/erpnext/src/hrms/frontend/src/components/FormField.vue new file mode 100644 index 000000000..0655a4405 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/FormField.vue @@ -0,0 +1,231 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/FormView.vue b/apps/erpnext/src/hrms/frontend/src/components/FormView.vue new file mode 100644 index 000000000..d94fc2b91 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/FormView.vue @@ -0,0 +1,787 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/FormattedField.vue b/apps/erpnext/src/hrms/frontend/src/components/FormattedField.vue new file mode 100644 index 000000000..4dadd3f22 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/FormattedField.vue @@ -0,0 +1,84 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/Holidays.vue b/apps/erpnext/src/hrms/frontend/src/components/Holidays.vue new file mode 100644 index 000000000..cf90dcec4 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/Holidays.vue @@ -0,0 +1,105 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/InstallPrompt.vue b/apps/erpnext/src/hrms/frontend/src/components/InstallPrompt.vue new file mode 100644 index 000000000..7c393714a --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/InstallPrompt.vue @@ -0,0 +1,103 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/LeaveBalance.vue b/apps/erpnext/src/hrms/frontend/src/components/LeaveBalance.vue new file mode 100644 index 000000000..b910aab01 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/LeaveBalance.vue @@ -0,0 +1,57 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/LeaveRequestItem.vue b/apps/erpnext/src/hrms/frontend/src/components/LeaveRequestItem.vue new file mode 100644 index 000000000..3330d0725 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/LeaveRequestItem.vue @@ -0,0 +1,58 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/Link.vue b/apps/erpnext/src/hrms/frontend/src/components/Link.vue new file mode 100644 index 000000000..5ccea6c5b --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/Link.vue @@ -0,0 +1,99 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/ListFiltersActionSheet.vue b/apps/erpnext/src/hrms/frontend/src/components/ListFiltersActionSheet.vue new file mode 100644 index 000000000..9b038b8db --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/ListFiltersActionSheet.vue @@ -0,0 +1,135 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/ListItem.vue b/apps/erpnext/src/hrms/frontend/src/components/ListItem.vue new file mode 100644 index 000000000..d6f3d4895 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/ListItem.vue @@ -0,0 +1,37 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/ListView.vue b/apps/erpnext/src/hrms/frontend/src/components/ListView.vue new file mode 100644 index 000000000..77c9179d6 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/ListView.vue @@ -0,0 +1,405 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/ProfileInfoModal.vue b/apps/erpnext/src/hrms/frontend/src/components/ProfileInfoModal.vue new file mode 100644 index 000000000..fb6f728bd --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/ProfileInfoModal.vue @@ -0,0 +1,45 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/QuickLinks.vue b/apps/erpnext/src/hrms/frontend/src/components/QuickLinks.vue new file mode 100644 index 000000000..b09fee953 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/QuickLinks.vue @@ -0,0 +1,38 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/RequestActionSheet.vue b/apps/erpnext/src/hrms/frontend/src/components/RequestActionSheet.vue new file mode 100644 index 000000000..fba2e51c8 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/RequestActionSheet.vue @@ -0,0 +1,346 @@ + + + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/RequestList.vue b/apps/erpnext/src/hrms/frontend/src/components/RequestList.vue new file mode 100644 index 000000000..b27154430 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/RequestList.vue @@ -0,0 +1,103 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/RequestPanel.vue b/apps/erpnext/src/hrms/frontend/src/components/RequestPanel.vue new file mode 100644 index 000000000..2d8f6c3d3 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/RequestPanel.vue @@ -0,0 +1,80 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/SalaryDetailTable.vue b/apps/erpnext/src/hrms/frontend/src/components/SalaryDetailTable.vue new file mode 100644 index 000000000..63b5dbea3 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/SalaryDetailTable.vue @@ -0,0 +1,71 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/SalarySlipItem.vue b/apps/erpnext/src/hrms/frontend/src/components/SalarySlipItem.vue new file mode 100644 index 000000000..5998a537b --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/SalarySlipItem.vue @@ -0,0 +1,59 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/SemicircleChart.vue b/apps/erpnext/src/hrms/frontend/src/components/SemicircleChart.vue new file mode 100644 index 000000000..caf817b98 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/SemicircleChart.vue @@ -0,0 +1,59 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/ShiftAssignmentItem.vue b/apps/erpnext/src/hrms/frontend/src/components/ShiftAssignmentItem.vue new file mode 100644 index 000000000..646dd00e5 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/ShiftAssignmentItem.vue @@ -0,0 +1,49 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/ShiftRequestItem.vue b/apps/erpnext/src/hrms/frontend/src/components/ShiftRequestItem.vue new file mode 100644 index 000000000..5ce732efc --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/ShiftRequestItem.vue @@ -0,0 +1,61 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/TabButtons.vue b/apps/erpnext/src/hrms/frontend/src/components/TabButtons.vue new file mode 100644 index 000000000..3b0bd4b0d --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/TabButtons.vue @@ -0,0 +1,31 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/WorkflowActionSheet.vue b/apps/erpnext/src/hrms/frontend/src/components/WorkflowActionSheet.vue new file mode 100644 index 000000000..5dd5a70a4 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/WorkflowActionSheet.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/apps/erpnext/src/hrms/frontend/src/components/icons/AttendanceIcon.vue b/apps/erpnext/src/hrms/frontend/src/components/icons/AttendanceIcon.vue new file mode 100644 index 000000000..9d62e71ea --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/icons/AttendanceIcon.vue @@ -0,0 +1,18 @@ + diff --git a/apps/erpnext/src/hrms/frontend/src/components/icons/EmployeeAdvanceIcon.vue b/apps/erpnext/src/hrms/frontend/src/components/icons/EmployeeAdvanceIcon.vue new file mode 100644 index 000000000..d932ff3d8 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/icons/EmployeeAdvanceIcon.vue @@ -0,0 +1,28 @@ + diff --git a/apps/erpnext/src/hrms/frontend/src/components/icons/ExpenseIcon.vue b/apps/erpnext/src/hrms/frontend/src/components/icons/ExpenseIcon.vue new file mode 100644 index 000000000..67136dc20 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/icons/ExpenseIcon.vue @@ -0,0 +1,28 @@ + diff --git a/apps/erpnext/src/hrms/frontend/src/components/icons/FrappeHRLogo.vue b/apps/erpnext/src/hrms/frontend/src/components/icons/FrappeHRLogo.vue new file mode 100644 index 000000000..bec12b341 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/icons/FrappeHRLogo.vue @@ -0,0 +1,29 @@ + diff --git a/apps/erpnext/src/hrms/frontend/src/components/icons/FrappeHRLogoType.vue b/apps/erpnext/src/hrms/frontend/src/components/icons/FrappeHRLogoType.vue new file mode 100644 index 000000000..12f884ef0 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/icons/FrappeHRLogoType.vue @@ -0,0 +1,49 @@ + diff --git a/apps/erpnext/src/hrms/frontend/src/components/icons/HomeIcon.vue b/apps/erpnext/src/hrms/frontend/src/components/icons/HomeIcon.vue new file mode 100644 index 000000000..0691b8334 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/icons/HomeIcon.vue @@ -0,0 +1,17 @@ + diff --git a/apps/erpnext/src/hrms/frontend/src/components/icons/LeaveIcon.vue b/apps/erpnext/src/hrms/frontend/src/components/icons/LeaveIcon.vue new file mode 100644 index 000000000..da81ef685 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/icons/LeaveIcon.vue @@ -0,0 +1,19 @@ + diff --git a/apps/erpnext/src/hrms/frontend/src/components/icons/SalaryIcon.vue b/apps/erpnext/src/hrms/frontend/src/components/icons/SalaryIcon.vue new file mode 100644 index 000000000..17b4a114e --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/icons/SalaryIcon.vue @@ -0,0 +1,40 @@ + diff --git a/apps/erpnext/src/hrms/frontend/src/components/icons/ShiftIcon.vue b/apps/erpnext/src/hrms/frontend/src/components/icons/ShiftIcon.vue new file mode 100644 index 000000000..641b8a38d --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/components/icons/ShiftIcon.vue @@ -0,0 +1,21 @@ + diff --git a/apps/erpnext/src/hrms/frontend/src/composables/index.js b/apps/erpnext/src/hrms/frontend/src/composables/index.js new file mode 100644 index 000000000..3fbfd6e32 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/composables/index.js @@ -0,0 +1,125 @@ +import { createResource, toast } from "frappe-ui" + +function getFileReader() { + const fileReader = new FileReader() + const zoneOriginalInstance = fileReader["__zone_symbol__originalInstance"] + return zoneOriginalInstance || fileReader +} + +export class FileAttachment { + constructor(fileObj) { + this.fileObj = fileObj + this.fileName = fileObj.name + } + + async upload(documentType, documentName, fieldName) { + return new Promise(async (resolve, reject) => { + const reader = getFileReader() + const uploader = createResource({ + url: "hrms.api.upload_base64_file", + onSuccess: (fileDoc) => resolve(fileDoc), + onError: (error) => { + toast({ + title: "Error", + text: `File upload failed for ${this.fileName}. ${ + error.messages?.[0] || "" + }`, + icon: "alert-circle", + position: "bottom-center", + iconClasses: "text-red-500", + }) + reject(error) + }, + }) + + reader.onload = () => { + console.log("Loaded successfully ✅") + this.fileContents = reader.result.toString().split(",")[1] + + uploader.submit({ + content: this.fileContents, + dt: documentType, + dn: documentName, + filename: this.fileName, + fieldname: fieldName, + }) + } + reader.readAsDataURL(this.fileObj) + }) + } + + delete() { + return createResource({ + url: "hrms.api.delete_attachment", + onSuccess: () => { + console.log("Deleted successfully ✅") + }, + onError: (error) => { + toast({ + title: "Error", + text: `File deletion failed. ${error.messages?.[0] || ""}`, + icon: "alert-circle", + position: "bottom-center", + iconClasses: "text-red-500", + }) + }, + }).submit({ + filename: this.fileName, + }) + } +} + +const hasWords = (list, status) => list.some((word) => status.includes(word)) + +export async function guessStatusColor(doctype, status) { + const statesResource = createResource({ + url: "hrms.api.get_doctype_states", + params: { doctype: doctype }, + }) + + const stateMap = await statesResource.reload() + + if (Object.keys(stateMap || {})?.length) { + if (stateMap?.[status] === "yellow") return "orange" + if (stateMap?.[status]) return stateMap?.[status] + } + + let color = "gray" + status = status.toLowerCase() + + if ( + hasWords( + ["open", "pending", "unpaid", "review", "medium", "not approved"], + status + ) + ) { + color = "orange" + } else if ( + hasWords(["urgent", "high", "failed", "rejected", "error"], status) + ) { + color = "red" + } else if ( + hasWords( + [ + "closed", + "finished", + "converted", + "completed", + "complete", + "confirmed", + "approved", + "yes", + "active", + "available", + "success", + ], + status + ) + ) { + color = "green" + } else if (status === "submitted") { + color = "blue" + } + + return color +} diff --git a/apps/erpnext/src/hrms/frontend/src/composables/realtime.js b/apps/erpnext/src/hrms/frontend/src/composables/realtime.js new file mode 100644 index 000000000..73835f9cb --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/composables/realtime.js @@ -0,0 +1,19 @@ +import { reactive } from "vue" + +const subscribed = reactive({}) + +export function useListUpdate(socket, doctype, callback) { + subscribe(socket, doctype) + socket.on("list_update", (data) => { + if (data.doctype == doctype) { + callback(data.name) + } + }) +} + +function subscribe(socket, doctype) { + if (subscribed[doctype]) return + + socket.emit("doctype_subscribe", doctype) + subscribed[doctype] = true +} diff --git a/apps/erpnext/src/hrms/frontend/src/composables/workflow.js b/apps/erpnext/src/hrms/frontend/src/composables/workflow.js new file mode 100644 index 000000000..a0d836aff --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/composables/workflow.js @@ -0,0 +1,101 @@ +import { createResource, toast } from "frappe-ui" +import { computed } from "vue" +import { userResource } from "@/data/user" + +export default function useWorkflow(doctype) { + const workflowDoc = createResource({ + url: "hrms.api.get_workflow", + params: { doctype: doctype }, + cache: ["hrms:workflow", doctype], + }) + workflowDoc.reload() + + const hasWorkflow = computed(() => { + const workflowData = workflowDoc?.data + return Boolean(Object.keys(workflowData || {}).length > 0) + }) + + const getWorkflowStateField = () => { + // NOTE: checkbox labelled 'Don't Override Status' is named override_status hence the inverted logic + return !workflowDoc.data?.override_status + ? workflowDoc.data?.workflow_state_field + : "" + } + + const getDefaultState = (docstatus) => { + return workflowDoc.data?.states.find( + (state) => state.doc_status == docstatus + ) + } + + const getTransitions = async (doc) => { + const transitions = createResource({ + url: "frappe.model.workflow.get_transitions", + params: { doc: doc }, + transform: (data) => { + const isSelfApproval = userResource?.data?.name == doc.owner + + return data + .filter( + (transition) => transition.allow_self_approval || !isSelfApproval + ) + .map((transition) => transition.action) + }, + }) + + return await transitions.reload() + } + + const getDocumentStateRoles = (state) => { + return workflowDoc.data?.states + .filter((s) => s.state == state) + .map((s) => s.allow_edit) + } + + const isReadOnly = (doc) => { + const state_fieldname = workflowDoc.data?.workflow_state_field + if (!state_fieldname) return false + + const state = doc[state_fieldname] || getDefaultState(doc.docstatus) + + const roles = getDocumentStateRoles(state) + return !roles.some((role) => userResource.data.roles.includes(role)) + } + + const applyWorkflow = async (doc, action) => { + const applyWorkflow = createResource({ + url: "frappe.model.workflow.apply_workflow", + params: { doc: doc, action: action }, + onSuccess() { + toast({ + title: "Success", + text: `Workflow action '${action}' applied successfully`, + icon: "check-circle", + position: "bottom-center", + iconClasses: "text-green-500", + }) + }, + onError() { + toast({ + title: "Error", + text: `Error applying workflow action: ${action}`, + icon: "alert-circle", + position: "bottom-center", + iconClasses: "text-red-500", + }) + console.log(`Error applying workflow action: ${action}`) + }, + }) + await applyWorkflow.reload() + } + + return { + hasWorkflow, + workflowDoc, + getWorkflowStateField, + getTransitions, + getDocumentStateRoles, + isReadOnly, + applyWorkflow, + } +} diff --git a/apps/erpnext/src/hrms/frontend/src/data/advances.js b/apps/erpnext/src/hrms/frontend/src/data/advances.js new file mode 100644 index 000000000..3aba64116 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/data/advances.js @@ -0,0 +1,17 @@ +import { createResource } from "frappe-ui" + +const transformAdvanceData = (data) => { + return data.map((claim) => { + claim.doctype = "Employee Advance" + return claim + }) +} + +export const advanceBalance = createResource({ + url: "hrms.api.get_employee_advance_balance", + auto: true, + cache: "hrms:employee_advance_balance", + transform(data) { + return transformAdvanceData(data) + }, +}) diff --git a/apps/erpnext/src/hrms/frontend/src/data/attendance.js b/apps/erpnext/src/hrms/frontend/src/data/attendance.js new file mode 100644 index 000000000..3820acd1c --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/data/attendance.js @@ -0,0 +1,108 @@ +import { createResource } from "frappe-ui" +import { employeeResource } from "./employee" + +import dayjs from "@/utils/dayjs" + + +export const getDates = (shift) => { + const fromDate = dayjs(shift.from_date).format("D MMM") + const toDate = shift.to_date ? dayjs(shift.to_date).format("D MMM") : "Ongoing" + return fromDate == toDate ? fromDate : `${fromDate} - ${toDate}` +} + +export const getTotalDays = (shift) => { + if (!shift.to_date) return null + const toDate = dayjs(shift.to_date) + const fromDate = dayjs(shift.from_date) + return toDate.diff(fromDate, "d") + 1 +} + +export const getShiftDates = (shift) => { + const startDate = dayjs(shift.start_date).format("D MMM") + const endDate = shift.end_date ? dayjs(shift.end_date).format("D MMM") : "Ongoing" + return startDate == endDate ? startDate : `${startDate} - ${endDate}` +} + +export const getTotalShiftDays = (shift) => { + if (!shift.end_date) return null + const end_date = dayjs(shift.end_date) + const start_date = dayjs(shift.start_date) + return end_date.diff(start_date, "d") + 1 +} + +export const getShiftTiming = (shift) => { + return ( + shift.start_time.split(":").slice(0, 2).join(":") + + " - " + + shift.end_time.split(":").splice(0, 2).join(":") + ) +} + +const transformShiftRequests = (data) => + data.map((request) => { + request.doctype = "Shift Request" + request.shift_dates = getDates(request) + request.total_shift_days = getTotalDays(request) + return request + }) + +export const myAttendanceRequests = createResource({ + url: "hrms.api.get_attendance_requests", + params: { + employee: employeeResource.data.name, + limit: 10, + }, + auto: true, + cache: "hrms:my_attendance_requests", + transform(data) { + return transformAttendanceRequests(data) + } +}) +const transformAttendanceRequests = (data) => { + return data.map((request) => { + request.doctype = "Attendance Request" + request.attendance_dates = getDates(request) + request.total_attendance_days = getTotalDays(request) + return request + }) +} +export const myShiftRequests = createResource({ + url: "hrms.api.get_shift_requests", + params: { + employee: employeeResource.data.name, + limit: 10, + }, + auto: true, + cache: "hrms:my_shift_requests", + transform(data) { + return transformShiftRequests(data) + }, +}) + +export const teamShiftRequests = createResource({ + url: "hrms.api.get_shift_requests", + params: { + employee: employeeResource.data.name, + approver_id: employeeResource.data.user_id, + for_approval: 1, + limit: 10, + }, + auto: true, + cache: "hrms:team_shift_requests", + transform(data) { + return transformShiftRequests(data) + }, +}) +export const teamAttendanceRequests = createResource({ + url: "hrms.api.get_attendance_requests", + params: { + employee: employeeResource.data.name, + for_approval: 1, + limit: 10, + }, + auto: true, + cache: "hrms:team_attendance_requests", + transform: (data) => { + return transformAttendanceRequests(data) + }, +}) diff --git a/apps/erpnext/src/hrms/frontend/src/data/claims.js b/apps/erpnext/src/hrms/frontend/src/data/claims.js new file mode 100644 index 000000000..c96001fd2 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/data/claims.js @@ -0,0 +1,60 @@ +import { createResource } from "frappe-ui" +import { employeeResource } from "./employee" +import { reactive } from "vue" + +export const expenseClaimSummary = createResource({ + url: "hrms.api.get_expense_claim_summary", + auto: true, + cache: "hrms:expense_claim_summary", +}) + +const transformClaimData = (data) => { + return data.map((claim) => { + claim.doctype = "Expense Claim" + return claim + }) +} + +export const myClaims = createResource({ + url: "hrms.api.get_expense_claims", + params: { + employee: employeeResource.data.name, + limit: 10, + }, + auto: true, + cache: "hrms:my_claims", + transform(data) { + return transformClaimData(data) + }, + onSuccess() { + expenseClaimSummary.reload() + }, +}) + +export const teamClaims = createResource({ + url: "hrms.api.get_expense_claims", + params: { + employee: employeeResource.data.name, + approver_id: employeeResource.data.user_id, + for_approval: 1, + limit: 10, + }, + auto: true, + cache: "hrms:team_claims", + transform(data) { + return transformClaimData(data) + }, +}) + +export let claimTypesByID = reactive({}) + +export const claimTypesResource = createResource({ + url: "hrms.api.get_expense_claim_types", + auto: true, + transform(data) { + return data.map((row) => { + claimTypesByID[row.name] = row + return row + }) + }, +}) diff --git a/apps/erpnext/src/hrms/frontend/src/data/config/requestSummaryFields.js b/apps/erpnext/src/hrms/frontend/src/data/config/requestSummaryFields.js new file mode 100644 index 000000000..258d25770 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/data/config/requestSummaryFields.js @@ -0,0 +1,256 @@ +// This config holds the fields that should be shown in the request summary action sheet +// TODO: This should be config-driven somehow + +export const LEAVE_FIELDS = [ + { + fieldname: "name", + label: "ID", + fieldtype: "Data", + }, + { + fieldname: "leave_type", + label: "Leave Type", + fieldtype: "Link", + }, + { + fieldname: "leave_dates", + label: "Leave Dates", + fieldtype: "Data", + }, + { + fieldname: "half_day", + label: "Half Day", + fieldtype: "Check", + }, + { + fieldname: "half_day_date", + label: "Half Day Date", + fieldtype: "Date", + }, + { + fieldname: "total_leave_days", + label: "Total Leave Days", + fieldtype: "Float", + }, + { + fieldname: "employee", + label: "Employee", + fieldtype: "Link", + }, + { + fieldname: "leave_balance", + label: "Leave Balance", + fieldtype: "Float", + }, + { + fieldname: "status", + label: "Status", + fieldtype: "Select", + }, + { + fieldname: "description", + label: "Reason", + fieldtype: "Small Text", + }, +] + +export const EXPENSE_CLAIM_FIELDS = [ + { + fieldname: "name", + label: "ID", + fieldtype: "Data", + }, + { + fieldname: "posting_date", + label: "Posting Date", + fieldtype: "Date", + }, + { + fieldname: "employee", + label: "Employee", + fieldtype: "Link", + }, + { + fieldname: "expenses", + label: "Expenses", + fieldtype: "Table", + componentName: "ExpenseItems", + }, + { + fieldname: "total_claimed_amount", + label: "Total Claimed Amount", + fieldtype: "Currency", + }, + { + fieldname: "total_sanctioned_amount", + label: "Total Sanctioned Amount", + fieldtype: "Currency", + }, + { + fieldname: "total_taxes_and_charges", + label: "Total Taxes and Charges", + fieldtype: "Currency", + }, + { + fieldname: "total_advance_amount", + label: "Total Advance Amount", + fieldtype: "Currency", + }, + { + fieldname: "grand_total", + label: "Grand Total", + fieldtype: "Currency", + }, + { + fieldname: "status", + label: "Status", + fieldtype: "Select", + }, + { + fieldname: "approval_status", + label: "Approval Status", + fieldtype: "Select", + }, +] + +export const ATTENDANCE_REQUEST_FIELDS = [ + { + fieldname: "name", + label: "ID", + fieldtype: "Data", + }, + { + fieldname: "attendance_dates", + label: "Attendance Dates", + fieldtype: "Data", + }, + { + fieldname: "total_attendance_days", + label: "Total Attendance Days", + fieldtype: "Data", + }, + { + fieldname: "include_holidays", + label: "Include Holidays", + fieldtype: "Check", + }, + { + fieldname: "shift", + label: "Shift", + fieldtype: "Link", + }, + { + fieldname: "reason", + label: "Reason", + fieldtype: "Select", + }, + { + fieldname: "employee", + label: "Employee", + fieldtype: "Link", + }, +] + +export const SHIFT_FIELDS = [ + { + fieldname: "name", + label: "ID", + fieldtype: "Data", + }, + { + fieldname: "shift_type", + label: "Shift Type", + fieldtype: "Link", + }, + { + fieldname: "shift_timing", + label: "Shift Timing", + fieldtype: "Data", + }, + { + fieldname: "shift_dates", + label: "Shift Dates", + fieldtype: "Data", + }, + { + fieldname: "total_shift_days", + label: "Total Shift Days", + fieldtype: "Data", + }, + { + fieldname: "employee", + label: "Employee", + fieldtype: "Link", + }, +] + +export const SHIFT_REQUEST_FIELDS = [ + { + fieldname: "name", + label: "ID", + fieldtype: "Data", + }, + { + fieldname: "shift_type", + label: "Shift Type", + fieldtype: "Link", + }, + { + fieldname: "shift_dates", + label: "Shift Dates", + fieldtype: "Data", + }, + { + fieldname: "total_shift_days", + label: "Total Shift Days", + fieldtype: "Data", + }, + { + fieldname: "employee", + label: "Employee", + fieldtype: "Link", + }, + { + fieldname: "status", + label: "Status", + fieldtype: "Select", + }, +] + +export const EMPLOYEE_CHECKIN_FIELDS = [ + { + fieldname: "name", + label: "ID", + fieldtype: "Data", + }, + { + fieldname: "log_type", + label: "Log Type", + fieldtype: "Data", + }, + { + fieldname: "date", + label: "Date", + fieldtype: "Date", + }, + { + fieldname: "formatted_time", + label: "Time", + fieldtype: "Time", + }, + { + fieldname: "formatted_latitude", + label: "Latitude", + fieldtype: "Data", + }, + { + fieldname: "formatted_longitude", + label: "Longitude", + fieldtype: "Data", + }, + { + fieldname: "geolocation", + label: "Geolocation", + fieldtype: "geolocation", + }, +] diff --git a/apps/erpnext/src/hrms/frontend/src/data/currencies.js b/apps/erpnext/src/hrms/frontend/src/data/currencies.js new file mode 100644 index 000000000..e95d3f99b --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/data/currencies.js @@ -0,0 +1,23 @@ +import { createResource } from "frappe-ui" + +const companyCurrency = createResource({ + url: "hrms.api.get_company_currencies", + auto: true, +}) + +const currencySymbols = createResource({ + url: "hrms.api.get_currency_symbols", + auto: true, +}) + +export function getCompanyCurrency(company) { + return companyCurrency?.data?.[company]?.[0] +} + +export function getCompanyCurrencySymbol(company) { + return companyCurrency?.data?.[company]?.[1] +} + +export function getCurrencySymbol(currency) { + return currencySymbols?.data?.[currency] +} diff --git a/apps/erpnext/src/hrms/frontend/src/data/employee.js b/apps/erpnext/src/hrms/frontend/src/data/employee.js new file mode 100644 index 000000000..82719b2c8 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/data/employee.js @@ -0,0 +1,12 @@ +import router from "@/router" +import { createResource } from "frappe-ui" + +export const employeeResource = createResource({ + url: "hrms.api.get_current_employee_info", + cache: "hrms:employee", + onError(error) { + if (error && error.exc_type === "AuthenticationError") { + router.push("/login") + } + }, +}) diff --git a/apps/erpnext/src/hrms/frontend/src/data/employees.js b/apps/erpnext/src/hrms/frontend/src/data/employees.js new file mode 100644 index 000000000..aca4a1375 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/data/employees.js @@ -0,0 +1,35 @@ +import { createResource } from "frappe-ui" +import { reactive } from "vue" +import { employeeResource } from "./employee" + +let employeesByID = reactive({}) +let employeesByUserID = reactive({}) + +export const employees = createResource({ + url: "hrms.api.get_all_employees", + auto: true, + transform(data) { + return data.map((employee) => { + employee.isActive = employee.status === "Active" + employeesByID[employee.name] = employee + employeesByUserID[employee.user_id] = employee + + return employee + }) + }, + onError(error) { + if (error && error.exc_type === "AuthenticationError") { + router.push({ name: "Login" }) + } + }, +}) + +export function getEmployeeInfo(employeeID) { + if (!employeeID) employeeID = employeeResource.data.name + + return employeesByID[employeeID] +} + +export function getEmployeeInfoByUserID(userID) { + return employeesByUserID[userID] +} diff --git a/apps/erpnext/src/hrms/frontend/src/data/leaves.js b/apps/erpnext/src/hrms/frontend/src/data/leaves.js new file mode 100644 index 000000000..24bd6a514 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/data/leaves.js @@ -0,0 +1,68 @@ +import { createResource } from "frappe-ui" +import { employeeResource } from "./employee" + +import dayjs from "@/utils/dayjs" + +const transformLeaveData = (data) => { + return data.map((leave) => { + leave.leave_dates = getLeaveDates(leave) + leave.doctype = "Leave Application" + return leave + }) +} + +export const getLeaveDates = (leave) => { + if (leave.from_date == leave.to_date) + return dayjs(leave.from_date).format("D MMM") + else + return `${dayjs(leave.from_date).format("D MMM")} - ${dayjs( + leave.to_date + ).format("D MMM")}` +} + +export const myLeaves = createResource({ + url: "hrms.api.get_leave_applications", + params: { + employee: employeeResource.data.name, + limit: 10, + }, + auto: true, + cache: "hrms:my_leaves", + transform(data) { + return transformLeaveData(data) + }, + onSuccess() { + leaveBalance.reload() + }, +}) + +export const teamLeaves = createResource({ + url: "hrms.api.get_leave_applications", + params: { + employee: employeeResource.data.name, + approver_id: employeeResource.data.user_id, + for_approval: 1, + limit: 10, + }, + auto: true, + cache: "hrms:team_leaves", + transform(data) { + return transformLeaveData(data) + }, +}) + +export const leaveBalance = createResource({ + url: "hrms.api.get_leave_balance_map", + auto: true, + cache: "hrms:leave_balance", + transform: (data) => { + // Calculate balance percentage for each leave type + return Object.fromEntries( + Object.entries(data).map(([leave_type, allocation]) => { + allocation.balance_percentage = + (allocation.balance_leaves / allocation.allocated_leaves) * 100 + return [leave_type, allocation] + }) + ) + }, +}) diff --git a/apps/erpnext/src/hrms/frontend/src/data/notifications.js b/apps/erpnext/src/hrms/frontend/src/data/notifications.js new file mode 100644 index 000000000..7bfa88a9b --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/data/notifications.js @@ -0,0 +1,35 @@ +import { createResource, createListResource } from "frappe-ui" +import { userResource } from "./user" + +export const unreadNotificationsCount = createResource({ + url: "hrms.api.get_unread_notifications_count", + cache: "hrms:unread_notifications_count", + initialData: 0, + auto: true, +}) + +export const notifications = createListResource({ + doctype: "PWA Notification", + filters: { to_user: userResource.data.name }, + fields: [ + "name", + "from_user", + "message", + "read", + "creation", + "reference_document_type", + "reference_document_name", + ], + auto: false, + cache: "hrms:notifications", + orderBy: "creation desc", + onSuccess() { + unreadNotificationsCount.reload() + }, +}) + +export const arePushNotificationsEnabled = createResource({ + url: "hrms.api.are_push_notifications_enabled", + cache: "hrms:push_notifications_enabled", + auto: true, +}) diff --git a/apps/erpnext/src/hrms/frontend/src/data/session.js b/apps/erpnext/src/hrms/frontend/src/data/session.js new file mode 100644 index 000000000..97d1f3ed6 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/data/session.js @@ -0,0 +1,50 @@ +import { computed, reactive } from "vue" +import { createResource, call } from "frappe-ui" +import { userResource } from "./user" +import { employeeResource } from "./employee" +import router from "@/router" + +export function sessionUser() { + let cookies = new URLSearchParams(document.cookie.split("; ").join("&")) + let _sessionUser = cookies.get("user_id") + if (_sessionUser === "Guest") { + _sessionUser = null + } + return _sessionUser +} + +function handleLogin(response) { + if (response.message === "Logged In") { + userResource.reload() + employeeResource.reload() + + session.user = sessionUser() + router.replace({ path: "/" }) + } +} + +export const session = reactive({ + login: async (email, password) => { + const response = await call("login", { usr: email, pwd: password }) + handleLogin(response) + return response + }, + otp: async (tmp_id, otp) => { + const response = await call("login", { tmp_id, otp }) + handleLogin(response) + return response + }, + logout: createResource({ + url: "logout", + onSuccess() { + userResource.reset() + employeeResource.reset() + + session.user = sessionUser() + router.replace({ name: "Login" }) + window.location.reload() + }, + }), + user: sessionUser(), + isLoggedIn: computed(() => !!session.user), +}) diff --git a/apps/erpnext/src/hrms/frontend/src/data/user.js b/apps/erpnext/src/hrms/frontend/src/data/user.js new file mode 100644 index 000000000..29a7a5ccf --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/data/user.js @@ -0,0 +1,12 @@ +import router from "@/router" +import { createResource } from "frappe-ui" + +export const userResource = createResource({ + url: "hrms.api.get_current_user_info", + cache: "hrms:user", + onError(error) { + if (error && error.exc_type === "AuthenticationError") { + router.push({ name: "Login" }) + } + }, +}) diff --git a/apps/erpnext/src/hrms/frontend/src/main.css b/apps/erpnext/src/hrms/frontend/src/main.css new file mode 100644 index 000000000..5f40aba92 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/main.css @@ -0,0 +1,30 @@ +@import "frappe-ui/src/style.css"; + +ion-modal { + --height: auto; +} + +input:disabled { + --webkit-text-fill-color: var(--tw-text-color); + opacity: 0.9; /* required on iOS */ + color: var(--tw-text-color); +} + +/* For Webkit-based browsers (Chrome, Safari and Opera) */ +input::-webkit-date-and-time-value { + text-align: left; +} + +body { + -webkit-tap-highlight-color: transparent; +} + +.hide-scrollbar::-webkit-scrollbar { + display: none; +} + +/* For IE, Edge and Firefox */ +.hide-scrollbar { + -ms-overflow-style: none; /* IE and Edge */ + scrollbar-width: none; /* Firefox */ +} diff --git a/apps/erpnext/src/hrms/frontend/src/main.js b/apps/erpnext/src/hrms/frontend/src/main.js new file mode 100644 index 000000000..b7e22ea4c --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/main.js @@ -0,0 +1,146 @@ +import { createApp } from "vue" +import App from "./App.vue" +import router from "./router" +import { initSocket } from "./socket" + +import { + Button, + Input, + setConfig, + frappeRequest, + resourcesPlugin, + FormControl, +} from "frappe-ui" +import { translationsPlugin } from "./plugins/translationsPlugin.js" +import EmptyState from "@/components/EmptyState.vue" + +import { IonicVue } from "@ionic/vue" + +import { session } from "@/data/session" +import { userResource } from "@/data/user" +import { employeeResource } from "@/data/employee" + +import dayjs from "@/utils/dayjs" +import getIonicConfig from "@/utils/ionicConfig" + +import FrappePushNotification from "../public/frappe-push-notification" + +/* Core CSS required for Ionic components to work properly */ +import "@ionic/vue/css/core.css" + +/* Theme variables */ +import "./theme/variables.css" + +import "./main.css" + +const app = createApp(App) +const socket = initSocket() + +setConfig("resourceFetcher", frappeRequest) +app.use(resourcesPlugin) +app.use(translationsPlugin) + +app.component("Button", Button) +app.component("Input", Input) +app.component("FormControl", FormControl) +app.component("EmptyState", EmptyState) + +app.use(router) +app.use(IonicVue, getIonicConfig()) + +if (session?.isLoggedIn && !employeeResource?.data) { + employeeResource.reload() +} + +app.provide("$session", session) +app.provide("$user", userResource) +app.provide("$employee", employeeResource) +app.provide("$socket", socket) +app.provide("$dayjs", dayjs) + +const registerServiceWorker = async () => { + window.frappePushNotification = new FrappePushNotification("hrms") + + if ("serviceWorker" in navigator) { + let serviceWorkerURL = "/assets/hrms/frontend/sw.js" + let config = "" + + try { + config = await window.frappePushNotification.fetchWebConfig() + serviceWorkerURL = `${serviceWorkerURL}?config=${encodeURIComponent( + JSON.stringify(config) + )}` + } catch (err) { + console.error("Failed to fetch FCM config", err) + } + + navigator.serviceWorker + .register(serviceWorkerURL, { + type: "classic", + }) + .then((registration) => { + if (config) { + window.frappePushNotification.initialize(registration).then(() => { + console.log("Frappe Push Notification initialized") + }) + } + }) + .catch((err) => { + console.error("Failed to register service worker", err) + }) + } else { + console.error("Service worker not enabled/supported by the browser") + } +} + +router.isReady().then(async () => { + if (import.meta.env.DEV) { + await frappeRequest({ + url: "/api/method/hrms.www.hrms.get_context_for_dev", + }).then(async (values) => { + if (!window.frappe) window.frappe = {} + window.frappe.boot = values + }) + } + + await translationsPlugin.isReady(); + registerServiceWorker() + app.mount("#app") +}) + +router.beforeEach(async (to, _, next) => { + let isLoggedIn = session.isLoggedIn + + try { + if (isLoggedIn) await userResource.reload() + } catch (error) { + isLoggedIn = false + } + + if (!isLoggedIn) { + // password reset page is outside the PWA scope + if (to.path === "/update-password") { + return next(false) + } else if (to.name !== "Login") { + next({ name: "Login" }) + } + } + + if (isLoggedIn && to.name !== "InvalidEmployee") { + await employeeResource.promise + // user should be an employee to access the app + // since all views are employee specific + if ( + !employeeResource?.data || + employeeResource?.data?.user_id !== userResource.data.name + ) { + next({ name: "InvalidEmployee" }) + } else if (to.name === "Login") { + next({ name: "Home" }) + } else { + next() + } + } else { + next() + } +}) diff --git a/apps/erpnext/src/hrms/frontend/src/plugins/translationsPlugin.js b/apps/erpnext/src/hrms/frontend/src/plugins/translationsPlugin.js new file mode 100644 index 000000000..3bf142bdf --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/plugins/translationsPlugin.js @@ -0,0 +1,79 @@ +function makeTranslationFunction() { + let messages = {}; + return { + translate, + load: () => Promise.allSettled([ + setup(), + // TODO: load dayjs locales + ]), + } + + async function setup() { + if (window.frappe?.boot?.__messages) { + messages = window.frappe?.boot?.__messages; + return; + } + + const url = new URL("/api/method/frappe.translate.load_all_translations", location.origin); + url.searchParams.append("lang", window.frappe?.boot?.lang ?? navigator.language); + url.searchParams.append("hash", window.frappe?.boot?.translations_hash || window._version_number || Math.random()); // for cache busting + // url.searchParams.append("app", "hrms"); + + try { + const response = await fetch(url); + messages = await response.json() || {} + } catch (error) { + console.error("Failed to fetch translations:", error) + } + } + + function translate(txt, replace, context = null) { + if (!txt || typeof txt != "string") return txt; + + let translated_text = ""; + let key = txt; + if (context) { + translated_text = messages[`${key}:${context}`]; + } + if (!translated_text) { + translated_text = messages[key] || txt; + } + if (replace && typeof replace === "object") { + translated_text = format(translated_text, replace); + } + + return translated_text; + } + + function format(str, args) { + if (str == undefined) return str; + + let unkeyed_index = 0; + return str.replace( + /\{(\w*)\}/g, + (match, key) => { + if (key === "") { + key = unkeyed_index; + unkeyed_index++; + } + if (key == +key) { + return args[key] !== undefined ? args[key] : match; + } + } + ); + } +} + +const { translate, load } = makeTranslationFunction(); + +export const translationsPlugin = { + async isReady() { + await load(); + }, + install(/** @type {import('vue').App} */ app, options) { + const __ = translate; + // app.mixin({ methods: { __ } }) + app.config.globalProperties.__ = __; + app.provide("$translate", __); + }, +} diff --git a/apps/erpnext/src/hrms/frontend/src/router/advances.js b/apps/erpnext/src/hrms/frontend/src/router/advances.js new file mode 100644 index 000000000..ac19f3f70 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/router/advances.js @@ -0,0 +1,20 @@ +const routes = [ + { + name: "EmployeeAdvanceListView", + path: "/employee-advances", + component: () => import("@/views/employee_advance/List.vue"), + }, + { + name: "EmployeeAdvanceFormView", + path: "/employee-advances/new", + component: () => import("@/views/employee_advance/Form.vue"), + }, + { + name: "EmployeeAdvanceDetailView", + path: "/employee-advances/:id", + props: true, + component: () => import("@/views/employee_advance/Form.vue"), + }, +] + +export default routes diff --git a/apps/erpnext/src/hrms/frontend/src/router/attendance.js b/apps/erpnext/src/hrms/frontend/src/router/attendance.js new file mode 100644 index 000000000..b96acec18 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/router/attendance.js @@ -0,0 +1,57 @@ +const routes = [ + { + name: "AttendanceRequestListView", + path: "/attendance-requests", + component: () => import("@/views/attendance/AttendanceRequestList.vue"), + }, + { + name: "AttendanceRequestFormView", + path: "/attendance-requests/new", + component: () => import("@/views/attendance/AttendanceRequestForm.vue"), + }, + { + name: "AttendanceRequestDetailView", + path: "/attendance-requests/:id", + props: true, + component: () => import("@/views/attendance/AttendanceRequestForm.vue"), + }, + { + name: "ShiftRequestListView", + path: "/shift-requests", + component: () => import("@/views/attendance/ShiftRequestList.vue"), + }, + { + name: "ShiftRequestFormView", + path: "/shift-requests/new", + component: () => import("@/views/attendance/ShiftRequestForm.vue"), + }, + { + name: "ShiftRequestDetailView", + path: "/shift-requests/:id", + props: true, + component: () => import("@/views/attendance/ShiftRequestForm.vue"), + }, + { + name: "ShiftAssignmentListView", + path: "/shift-assignments", + component: () => import("@/views/attendance/ShiftAssignmentList.vue"), + }, + { + name: "ShiftAssignmentFormView", + path: "/shift-assignments/new", + component: () => import("@/views/attendance/ShiftAssignmentForm.vue"), + }, + { + name: "ShiftAssignmentDetailView", + path: "/shift-assignments/:id", + props: true, + component: () => import("@/views/attendance/ShiftAssignmentForm.vue"), + }, + { + name: "EmployeeCheckinListView", + path: "/employee-checkins", + component: () => import("@/views/attendance/EmployeeCheckinList.vue"), + }, +] + +export default routes diff --git a/apps/erpnext/src/hrms/frontend/src/router/claims.js b/apps/erpnext/src/hrms/frontend/src/router/claims.js new file mode 100644 index 000000000..d440d1d48 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/router/claims.js @@ -0,0 +1,20 @@ +const routes = [ + { + name: "ExpenseClaimListView", + path: "/expense-claims", + component: () => import("@/views/expense_claim/List.vue"), + }, + { + name: "ExpenseClaimFormView", + path: "/expense-claims/new", + component: () => import("@/views/expense_claim/Form.vue"), + }, + { + name: "ExpenseClaimDetailView", + path: "/expense-claims/:id", + props: true, + component: () => import("@/views/expense_claim/Form.vue"), + }, +] + +export default routes diff --git a/apps/erpnext/src/hrms/frontend/src/router/index.js b/apps/erpnext/src/hrms/frontend/src/router/index.js new file mode 100644 index 000000000..57a8ddf73 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/router/index.js @@ -0,0 +1,87 @@ +import { createRouter, createWebHistory } from "@ionic/vue-router" + +import TabbedView from "@/views/TabbedView.vue" +import attendanceRoutes from "./attendance" +import leaveRoutes from "./leaves" +import claimRoutes from "./claims" +import employeeAdvanceRoutes from "./advances" +import salarySlipRoutes from "./salary_slips" + +const routes = [ + { + path: "/", + redirect: "/home", + }, + { + path: "/", + component: TabbedView, + children: [ + { + path: "", + redirect: "/home", + }, + { + path: "/home", + name: "Home", + component: () => import("@/views/Home.vue"), + }, + { + path: "/dashboard/attendance", + name: "AttendanceDashboard", + component: () => import("@/views/attendance/Dashboard.vue"), + }, + { + path: "/dashboard/leaves", + name: "LeavesDashboard", + component: () => import("@/views/leave/Dashboard.vue"), + }, + { + path: "/dashboard/expense-claims", + name: "ExpenseClaimsDashboard", + component: () => import("@/views/expense_claim/Dashboard.vue"), + }, + { + path: "/dashboard/salary-slips", + name: "SalarySlipsDashboard", + component: () => import("@/views/salary_slip/Dashboard.vue"), + }, + ], + }, + { + path: "/login", + name: "Login", + component: () => import("@/views/Login.vue"), + }, + { + path: "/profile", + name: "Profile", + component: () => import("@/views/Profile.vue"), + }, + { + path: "/notifications", + name: "Notifications", + component: () => import("@/views/Notifications.vue"), + }, + { + path: "/settings", + name: "Settings", + component: () => import("@/views/AppSettings.vue"), + }, + { + path: "/invalid-employee", + name: "InvalidEmployee", + component: () => import("@/views/InvalidEmployee.vue"), + }, + ...attendanceRoutes, + ...leaveRoutes, + ...claimRoutes, + ...employeeAdvanceRoutes, + ...salarySlipRoutes, +] + +const router = createRouter({ + history: createWebHistory("/hrms"), + routes, +}) + +export default router diff --git a/apps/erpnext/src/hrms/frontend/src/router/leaves.js b/apps/erpnext/src/hrms/frontend/src/router/leaves.js new file mode 100644 index 000000000..2c3bbf8eb --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/router/leaves.js @@ -0,0 +1,20 @@ +const routes = [ + { + name: "LeaveApplicationListView", + path: "/leave-applications", + component: () => import("@/views/leave/List.vue"), + }, + { + name: "LeaveApplicationFormView", + path: "/leave-applications/new", + component: () => import("@/views/leave/Form.vue"), + }, + { + name: "LeaveApplicationDetailView", + path: "/leave-applications/:id", + props: true, + component: () => import("@/views/leave/Form.vue"), + }, +] + +export default routes diff --git a/apps/erpnext/src/hrms/frontend/src/router/salary_slips.js b/apps/erpnext/src/hrms/frontend/src/router/salary_slips.js new file mode 100644 index 000000000..940cbbee1 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/router/salary_slips.js @@ -0,0 +1,10 @@ +const routes = [ + { + path: "/salary-slips/:id", + name: "SalarySlipDetailView", + props: true, + component: () => import("@/views/salary_slip/Detail.vue"), + }, +] + +export default routes diff --git a/apps/erpnext/src/hrms/frontend/src/socket.js b/apps/erpnext/src/hrms/frontend/src/socket.js new file mode 100644 index 000000000..a942ea6fc --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/socket.js @@ -0,0 +1,31 @@ +import { io } from "socket.io-client" +import { socketio_port } from "../../../../sites/common_site_config.json" + +import { getCachedListResource } from "frappe-ui/src/resources/listResource" +import { getCachedResource } from "frappe-ui/src/resources/resources" + +export function initSocket() { + let host = window.location.hostname + let siteName = window.site_name + let port = window.location.port ? `:${socketio_port}` : "" + let protocol = port ? "http" : "https" + let url = `${protocol}://${host}${port}/${siteName}` + let socket = io(url, { + withCredentials: true, + reconnectionAttempts: 5, + }) + + socket.on("hrms:refetch_resource", (data) => { + if (data.cache_key) { + let resource = + getCachedResource(data.cache_key) || + getCachedListResource(data.cache_key) + + if (resource) { + resource.reload() + } + } + }) + + return socket +} diff --git a/apps/erpnext/src/hrms/frontend/src/theme/variables.css b/apps/erpnext/src/hrms/frontend/src/theme/variables.css new file mode 100644 index 000000000..8362fa8b6 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/theme/variables.css @@ -0,0 +1,83 @@ +/* Ionic Variables and Theming. For more info, please see: +http://ionicframework.com/docs/theming/ */ + +/** Ionic CSS Variables **/ + +:root { + --ion-background-color: #f4f5f6; + --ion-font-family: "InterVar", sans-serif; + --ion-tab-bar-color-selected: #525252; + --ion-tab-bar-background-focused: #e2e2e2; + + /** primary **/ + --ion-color-primary: #3880ff; + --ion-color-primary-rgb: 56, 128, 255; + --ion-color-primary-contrast: #ffffff; + --ion-color-primary-contrast-rgb: 255, 255, 255; + --ion-color-primary-shade: #3171e0; + --ion-color-primary-tint: #4c8dff; + + /** secondary **/ + --ion-color-secondary: #3dc2ff; + --ion-color-secondary-rgb: 61, 194, 255; + --ion-color-secondary-contrast: #ffffff; + --ion-color-secondary-contrast-rgb: 255, 255, 255; + --ion-color-secondary-shade: #36abe0; + --ion-color-secondary-tint: #50c8ff; + + /** tertiary **/ + --ion-color-tertiary: #5260ff; + --ion-color-tertiary-rgb: 82, 96, 255; + --ion-color-tertiary-contrast: #ffffff; + --ion-color-tertiary-contrast-rgb: 255, 255, 255; + --ion-color-tertiary-shade: #4854e0; + --ion-color-tertiary-tint: #6370ff; + + /** success **/ + --ion-color-success: #2dd36f; + --ion-color-success-rgb: 45, 211, 111; + --ion-color-success-contrast: #ffffff; + --ion-color-success-contrast-rgb: 255, 255, 255; + --ion-color-success-shade: #28ba62; + --ion-color-success-tint: #42d77d; + + /** warning **/ + --ion-color-warning: #ffc409; + --ion-color-warning-rgb: 255, 196, 9; + --ion-color-warning-contrast: #000000; + --ion-color-warning-contrast-rgb: 0, 0, 0; + --ion-color-warning-shade: #e0ac08; + --ion-color-warning-tint: #ffca22; + + /** danger **/ + --ion-color-danger: #eb445a; + --ion-color-danger-rgb: 235, 68, 90; + --ion-color-danger-contrast: #ffffff; + --ion-color-danger-contrast-rgb: 255, 255, 255; + --ion-color-danger-shade: #cf3c4f; + --ion-color-danger-tint: #ed576b; + + /** dark **/ + --ion-color-dark: #222428; + --ion-color-dark-rgb: 34, 36, 40; + --ion-color-dark-contrast: #ffffff; + --ion-color-dark-contrast-rgb: 255, 255, 255; + --ion-color-dark-shade: #1e2023; + --ion-color-dark-tint: #383a3e; + + /** medium **/ + --ion-color-medium: #92949c; + --ion-color-medium-rgb: 146, 148, 156; + --ion-color-medium-contrast: #ffffff; + --ion-color-medium-contrast-rgb: 255, 255, 255; + --ion-color-medium-shade: #808289; + --ion-color-medium-tint: #9d9fa6; + + /** light **/ + --ion-color-light: #f4f5f8; + --ion-color-light-rgb: 244, 245, 248; + --ion-color-light-contrast: #000000; + --ion-color-light-contrast-rgb: 0, 0, 0; + --ion-color-light-shade: #d7d8da; + --ion-color-light-tint: #f5f6f9; +} diff --git a/apps/erpnext/src/hrms/frontend/src/utils/commonUtils.js b/apps/erpnext/src/hrms/frontend/src/utils/commonUtils.js new file mode 100644 index 000000000..4754052ec --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/utils/commonUtils.js @@ -0,0 +1,57 @@ +import { toast } from "frappe-ui" + +export function useDownloadPDF() { + async function downloadPDF({ doctype, docname, filename = null }) { + + const headers = { + "X-Frappe-Site-Name": window.location.hostname, + } + if (window.csrf_token) { + headers["X-Frappe-CSRF-Token"] = window.csrf_token + } + + fetch("/api/method/hrms.api._download_pdf", { + method: "POST", + headers, + body: new URLSearchParams({ doctype: doctype, docname: docname }), + responseType: "blob", + }).then((response) => { + if (response.ok) { + return response.blob() + } else { + toast({ + title: "Download Failed", + text: `Error downloading PDF`, + type: "error", + icon: "alert-circle", + position: "bottom-center", + iconClasses: "text-red-500", + }) + } + }) + .then((blob) => { + if (!blob) return + const blobUrl = window.URL.createObjectURL(blob) + const link = document.createElement("a") + link.href = blobUrl + link.download = `${filename || docname}.pdf` + link.click() + setTimeout(() => { + window.URL.revokeObjectURL(blobUrl) + }, 3000) + }) + .catch((error) => { + toast({ + title: __("Error"), + text: __("Error downloading PDF", [__(error)]), + icon: "alert-circle", + position: "bottom-center", + iconClasses: "text-red-500", + }) + }) + } + + return { + downloadPDF, + } +} diff --git a/apps/erpnext/src/hrms/frontend/src/utils/dayjs.js b/apps/erpnext/src/hrms/frontend/src/utils/dayjs.js new file mode 100644 index 000000000..6fb884a67 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/utils/dayjs.js @@ -0,0 +1,16 @@ +import dayjs from "dayjs" +import updateLocale from "dayjs/plugin/updateLocale" +import localizedFormat from "dayjs/plugin/localizedFormat" +import relativeTime from "dayjs/plugin/relativeTime" +import isToday from "dayjs/plugin/isToday" +import isYesterday from "dayjs/plugin/isYesterday" +import isBetween from "dayjs/plugin/isBetween" + +dayjs.extend(updateLocale) +dayjs.extend(localizedFormat) +dayjs.extend(relativeTime) +dayjs.extend(isToday) +dayjs.extend(isYesterday) +dayjs.extend(isBetween) + +export default dayjs diff --git a/apps/erpnext/src/hrms/frontend/src/utils/dialogs.js b/apps/erpnext/src/hrms/frontend/src/utils/dialogs.js new file mode 100644 index 000000000..4123b0062 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/utils/dialogs.js @@ -0,0 +1,11 @@ +export const showErrorAlert = async (message) => { + const alert = await alertController.create({ + header: "Error", + message, + buttons: ["OK"], + }) + + await alert.present() +} + +import { alertController } from "@ionic/vue" diff --git a/apps/erpnext/src/hrms/frontend/src/utils/formatters.js b/apps/erpnext/src/hrms/frontend/src/utils/formatters.js new file mode 100644 index 000000000..526d4edaf --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/utils/formatters.js @@ -0,0 +1,44 @@ +import { createDocumentResource } from "frappe-ui" + +import dayjs from "@/utils/dayjs" + +const settings = createDocumentResource({ + doctype: "System Settings", + name: "System Settings", + auto: false, +}) + +export const formatCurrency = (value, currency) => { + if (!currency) return value + + // hack: if value contains a space, it is already formatted + if (value?.toString().trim().includes(" ")) return value + + const locale = settings.doc?.country == "India" ? "en-IN" : settings.doc?.language + + const formatter = Intl.NumberFormat(locale, { + style: "currency", + currency: currency, + trailingZeroDisplay: "stripIfInteger", + currencyDisplay: "narrowSymbol", + }) + return ( + formatter + .format(value) + // add space between the digits and symbol + .replace(/^(\D+)/, "$1 ") + // remove extra spaces if any (added by some browsers) + .replace(/\s+/, " ") + ) +} + +export const formatTimestamp = (timestamp) => { + const formattedTime = dayjs(timestamp).format("hh:mm a") + + if (dayjs(timestamp).isToday()) return formattedTime + else if (dayjs(timestamp).isYesterday()) return `${formattedTime} yesterday` + else if (dayjs(timestamp).isSame(dayjs(), "year")) + return `${formattedTime} on ${dayjs(timestamp).format("D MMM")}` + + return `${formattedTime} on ${dayjs(timestamp).format("D MMM, YYYY")}` +} diff --git a/apps/erpnext/src/hrms/frontend/src/utils/ionicConfig.js b/apps/erpnext/src/hrms/frontend/src/utils/ionicConfig.js new file mode 100644 index 000000000..9919e63b0 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/utils/ionicConfig.js @@ -0,0 +1,34 @@ +import { isPlatform } from "@ionic/vue" +import { createAnimation, iosTransitionAnimation } from "@ionic/core" +/** + * on iOS, the back swipe gesture triggers the animation twice: + * the safari's default back swipe animation & ionic's animation + * The config here takes care of the same + */ + +export const animationBuilder = (baseEl, opts) => { + if (opts.direction === "back") { + /** + * Even after disabling swipeBackEnabled, when the swipe is completed & we're back on the first screen + * the "pop" animation is triggered, resulting in a double animation + * HACK: return empty animation for back swipe in ios + **/ + return createAnimation() + } + + return iosTransitionAnimation(baseEl, opts) +} + +const getIonicConfig = () => { + const config = { mode: "ios" } + + if (isPlatform("iphone")) { + // disable ionic's swipe back gesture on ios + config.swipeBackEnabled = false + config.navAnimation = animationBuilder + } + + return config +} + +export default getIonicConfig diff --git a/apps/erpnext/src/hrms/frontend/src/utils/pushNotifications.js b/apps/erpnext/src/hrms/frontend/src/utils/pushNotifications.js new file mode 100644 index 000000000..267f68067 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/utils/pushNotifications.js @@ -0,0 +1,31 @@ +export const isChrome = () => + navigator.userAgent.toLowerCase().includes("chrome") + +export const showNotification = (payload) => { + const registration = window.frappePushNotification.serviceWorkerRegistration + if (!registration) return + + const notificationTitle = payload?.data?.title + const notificationOptions = { + body: payload?.data?.body || "", + } + if (payload?.data?.notification_icon) { + notificationOptions["icon"] = payload.data.notification_icon + } + if (isChrome()) { + notificationOptions["data"] = { + url: payload?.data?.click_action, + } + } else { + if (payload?.data?.click_action) { + notificationOptions["actions"] = [ + { + action: payload.data.click_action, + title: "View Details", + }, + ] + } + } + + registration.showNotification(notificationTitle, notificationOptions) +} diff --git a/apps/erpnext/src/hrms/frontend/src/views/AppSettings.vue b/apps/erpnext/src/hrms/frontend/src/views/AppSettings.vue new file mode 100644 index 000000000..15bf90d7a --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/AppSettings.vue @@ -0,0 +1,150 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/Home.vue b/apps/erpnext/src/hrms/frontend/src/views/Home.vue new file mode 100644 index 000000000..4da04dd00 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/Home.vue @@ -0,0 +1,61 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/InvalidEmployee.vue b/apps/erpnext/src/hrms/frontend/src/views/InvalidEmployee.vue new file mode 100644 index 000000000..2afca0f30 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/InvalidEmployee.vue @@ -0,0 +1,38 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/Login.vue b/apps/erpnext/src/hrms/frontend/src/views/Login.vue new file mode 100644 index 000000000..b3621f8c9 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/Login.vue @@ -0,0 +1,178 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/Notifications.vue b/apps/erpnext/src/hrms/frontend/src/views/Notifications.vue new file mode 100644 index 000000000..f6ddb6ccf --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/Notifications.vue @@ -0,0 +1,164 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/Profile.vue b/apps/erpnext/src/hrms/frontend/src/views/Profile.vue new file mode 100644 index 000000000..c9cd14a86 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/Profile.vue @@ -0,0 +1,282 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/TabbedView.vue b/apps/erpnext/src/hrms/frontend/src/views/TabbedView.vue new file mode 100644 index 000000000..d19ad8ffc --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/TabbedView.vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/attendance/AttendanceRequestForm.vue b/apps/erpnext/src/hrms/frontend/src/views/attendance/AttendanceRequestForm.vue new file mode 100644 index 000000000..f39e5f0f0 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/attendance/AttendanceRequestForm.vue @@ -0,0 +1,102 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/attendance/AttendanceRequestList.vue b/apps/erpnext/src/hrms/frontend/src/views/attendance/AttendanceRequestList.vue new file mode 100644 index 000000000..c3bb07e5c --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/attendance/AttendanceRequestList.vue @@ -0,0 +1,30 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/attendance/Dashboard.vue b/apps/erpnext/src/hrms/frontend/src/views/attendance/Dashboard.vue new file mode 100644 index 000000000..31ad6dd9a --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/attendance/Dashboard.vue @@ -0,0 +1,96 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/attendance/EmployeeCheckinList.vue b/apps/erpnext/src/hrms/frontend/src/views/attendance/EmployeeCheckinList.vue new file mode 100644 index 000000000..6b1308648 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/attendance/EmployeeCheckinList.vue @@ -0,0 +1,35 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftAssignmentForm.vue b/apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftAssignmentForm.vue new file mode 100644 index 000000000..71a1a43e3 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftAssignmentForm.vue @@ -0,0 +1,85 @@ + + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftAssignmentList.vue b/apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftAssignmentList.vue new file mode 100644 index 000000000..0141958e3 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftAssignmentList.vue @@ -0,0 +1,30 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftRequestForm.vue b/apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftRequestForm.vue new file mode 100644 index 000000000..3f4dc8ca4 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftRequestForm.vue @@ -0,0 +1,99 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftRequestList.vue b/apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftRequestList.vue new file mode 100644 index 000000000..c8eeed3a0 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/attendance/ShiftRequestList.vue @@ -0,0 +1,60 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/employee_advance/Form.vue b/apps/erpnext/src/hrms/frontend/src/views/employee_advance/Form.vue new file mode 100644 index 000000000..74a5b0729 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/employee_advance/Form.vue @@ -0,0 +1,151 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/employee_advance/List.vue b/apps/erpnext/src/hrms/frontend/src/views/employee_advance/List.vue new file mode 100644 index 000000000..fdb30ce77 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/employee_advance/List.vue @@ -0,0 +1,70 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/expense_claim/Dashboard.vue b/apps/erpnext/src/hrms/frontend/src/views/expense_claim/Dashboard.vue new file mode 100644 index 000000000..2c788d171 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/expense_claim/Dashboard.vue @@ -0,0 +1,63 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/expense_claim/Form.vue b/apps/erpnext/src/hrms/frontend/src/views/expense_claim/Form.vue new file mode 100644 index 000000000..5c1a8b2d5 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/expense_claim/Form.vue @@ -0,0 +1,416 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/expense_claim/List.vue b/apps/erpnext/src/hrms/frontend/src/views/expense_claim/List.vue new file mode 100644 index 000000000..0edc3aa7e --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/expense_claim/List.vue @@ -0,0 +1,61 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/leave/Dashboard.vue b/apps/erpnext/src/hrms/frontend/src/views/leave/Dashboard.vue new file mode 100644 index 000000000..153026c1c --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/leave/Dashboard.vue @@ -0,0 +1,46 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/leave/Form.vue b/apps/erpnext/src/hrms/frontend/src/views/leave/Form.vue new file mode 100644 index 000000000..ec3bf0079 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/leave/Form.vue @@ -0,0 +1,291 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/leave/List.vue b/apps/erpnext/src/hrms/frontend/src/views/leave/List.vue new file mode 100644 index 000000000..d9344fed0 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/leave/List.vue @@ -0,0 +1,59 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/salary_slip/Dashboard.vue b/apps/erpnext/src/hrms/frontend/src/views/salary_slip/Dashboard.vue new file mode 100644 index 000000000..f2fd10f4e --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/salary_slip/Dashboard.vue @@ -0,0 +1,146 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/src/views/salary_slip/Detail.vue b/apps/erpnext/src/hrms/frontend/src/views/salary_slip/Detail.vue new file mode 100644 index 000000000..b5e00cbd0 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/src/views/salary_slip/Detail.vue @@ -0,0 +1,168 @@ + + + diff --git a/apps/erpnext/src/hrms/frontend/tailwind.config.js b/apps/erpnext/src/hrms/frontend/tailwind.config.js new file mode 100644 index 000000000..b06becbb8 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/tailwind.config.js @@ -0,0 +1,26 @@ +import frappeUIPreset from "frappe-ui/src/tailwind/preset" +export default { + presets: [frappeUIPreset], + content: [ + "./index.html", + "./src/**/*.{vue,js,ts,jsx,tsx}", + "./node_modules/frappe-ui/src/components/**/*.{vue,js,ts,jsx,tsx}", + "../node_modules/frappe-ui/src/components/**/*.{vue,js,ts,jsx,tsx}", + ], + theme: { + extend: { + screens: { + standalone: { + raw: "(display-mode: standalone)", + }, + }, + padding: { + "safe-top": "env(safe-area-inset-top)", + "safe-right": "env(safe-area-inset-right)", + "safe-bottom": "env(safe-area-inset-bottom)", + "safe-left": "env(safe-area-inset-left)", + }, + }, + }, + plugins: [], +} diff --git a/apps/erpnext/src/hrms/frontend/vite.config.js b/apps/erpnext/src/hrms/frontend/vite.config.js new file mode 100644 index 000000000..c7ca39504 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/vite.config.js @@ -0,0 +1,128 @@ +import { defineConfig } from "vite" +import vue from "@vitejs/plugin-vue" +import { VitePWA } from "vite-plugin-pwa" +import frappeui from "frappe-ui/vite" + +import path from "path" +import fs from "fs" + +export default defineConfig({ + server: { + port: 8080, + proxy: getProxyOptions(), + allowedHosts: true, + }, + plugins: [ + vue(), + frappeui(), + VitePWA({ + registerType: "autoUpdate", + strategies: "injectManifest", + injectRegister: null, + devOptions: { + enabled: true, + }, + manifest: { + display: "standalone", + name: "Frappe HR", + short_name: "Frappe HR", + start_url: "/hrms", + description: "Everyday HR & Payroll operations at your fingertips", + theme_color: "#ffffff", + icons: [ + { + src: "/assets/hrms/manifest/manifest-icon-192.maskable.png", + sizes: "192x192", + type: "image/png", + purpose: "any", + }, + { + src: "/assets/hrms/manifest/manifest-icon-192.maskable.png", + sizes: "192x192", + type: "image/png", + purpose: "maskable", + }, + { + src: "/assets/hrms/manifest/manifest-icon-512.maskable.png", + sizes: "512x512", + type: "image/png", + purpose: "any", + }, + { + src: "/assets/hrms/manifest/manifest-icon-512.maskable.png", + sizes: "512x512", + type: "image/png", + purpose: "maskable", + }, + ], + }, + }), + ], + resolve: { + alias: { + "@": path.resolve(__dirname, "src"), + }, + }, + build: { + outDir: "../hrms/public/frontend", + emptyOutDir: true, + target: "es2015", + commonjsOptions: { + include: [/tailwind.config.js/, /node_modules/], + }, + sourcemap: true, + rollupOptions: { + output: { + manualChunks: { + "frappe-ui": ["frappe-ui"], + }, + }, + }, + }, + optimizeDeps: { + include: [ + "frappe-ui > feather-icons", + "showdown", + "tailwind.config.js", + "engine.io-client", + ], + }, +}) + +function getProxyOptions() { + const config = getCommonSiteConfig() + const webserver_port = config ? config.webserver_port : 8000 + if (!config) { + console.log("No common_site_config.json found, using default port 8000") + } + return { + "^/(app|login|api|assets|files|private)": { + target: `http://127.0.0.1:${webserver_port}`, + ws: true, + router: function (req) { + const site_name = req.headers.host.split(":")[0] + console.log(`Proxying ${req.url} to ${site_name}:${webserver_port}`) + return `http://${site_name}:${webserver_port}` + }, + }, + } +} + +function getCommonSiteConfig() { + let currentDir = path.resolve(".") + // traverse up till we find frappe-bench with sites directory + while (currentDir !== "/") { + if ( + fs.existsSync(path.join(currentDir, "sites")) && + fs.existsSync(path.join(currentDir, "apps")) + ) { + let configPath = path.join(currentDir, "sites", "common_site_config.json") + if (fs.existsSync(configPath)) { + return JSON.parse(fs.readFileSync(configPath)) + } + return null + } + currentDir = path.resolve(currentDir, "..") + } + return null +} diff --git a/apps/erpnext/src/hrms/frontend/yarn.lock b/apps/erpnext/src/hrms/frontend/yarn.lock new file mode 100644 index 000000000..8fd554d05 --- /dev/null +++ b/apps/erpnext/src/hrms/frontend/yarn.lock @@ -0,0 +1,6042 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@apideck/better-ajv-errors@^0.3.1": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz#957d4c28e886a64a8141f7522783be65733ff097" + integrity sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA== + dependencies: + json-schema "^0.4.0" + jsonpointer "^5.0.0" + leven "^3.1.0" + +"@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" + integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/code-frame@^7.26.2": + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" + integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== + dependencies: + "@babel/helper-validator-identifier" "^7.25.9" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.5": + version "7.21.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.7.tgz#61caffb60776e49a57ba61a88f02bedd8714f6bc" + integrity sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA== + +"@babel/compat-data@^7.26.8": + version "7.26.8" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367" + integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ== + +"@babel/core@^7.20.2": + version "7.21.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.8.tgz#2a8c7f0f53d60100ba4c32470ba0281c92aa9aa4" + integrity sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.5" + "@babel/helper-compilation-targets" "^7.21.5" + "@babel/helper-module-transforms" "^7.21.5" + "@babel/helpers" "^7.21.5" + "@babel/parser" "^7.21.8" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + +"@babel/core@^7.24.4": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9" + integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.26.10" + "@babel/helper-compilation-targets" "^7.26.5" + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helpers" "^7.26.10" + "@babel/parser" "^7.26.10" + "@babel/template" "^7.26.9" + "@babel/traverse" "^7.26.10" + "@babel/types" "^7.26.10" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.20.4", "@babel/generator@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.5.tgz#c0c0e5449504c7b7de8236d99338c3e2a340745f" + integrity sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w== + dependencies: + "@babel/types" "^7.21.5" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/generator@^7.26.10", "@babel/generator@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.0.tgz#764382b5392e5b9aff93cadb190d0745866cbc2c" + integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw== + dependencies: + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz#817f73b6c59726ab39f6ba18c234268a519e5abb" + integrity sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g== + dependencies: + "@babel/types" "^7.21.5" + +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz#631e6cc784c7b660417421349aac304c94115366" + integrity sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w== + dependencies: + "@babel/compat-data" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + +"@babel/helper-compilation-targets@^7.26.5": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz#de0c753b1cd1d9ab55d473c5a5cf7170f0a81880" + integrity sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA== + dependencies: + "@babel/compat-data" "^7.26.8" + "@babel/helper-validator-option" "^7.25.9" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": + version "7.21.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz#205b26330258625ef8869672ebca1e0dee5a0f02" + integrity sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-member-expression-to-functions" "^7.21.5" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.21.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-split-export-declaration" "^7.18.6" + semver "^6.3.0" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": + version "7.21.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz#a7886f61c2e29e21fd4aaeaf1e473deba6b571dc" + integrity sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + regexpu-core "^5.3.1" + semver "^6.3.0" + +"@babel/helper-define-polyfill-provider@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" + integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== + dependencies: + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz#c769afefd41d171836f7cb63e295bedf689d48ba" + integrity sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ== + +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" + integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== + dependencies: + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz#3b1a009af932e586af77c1030fba9ee0bde396c0" + integrity sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg== + dependencies: + "@babel/types" "^7.21.5" + +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" + integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== + dependencies: + "@babel/types" "^7.21.4" + +"@babel/helper-module-imports@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" + integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz#d937c82e9af68d31ab49039136a222b17ac0b420" + integrity sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw== + dependencies: + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-simple-access" "^7.21.5" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + +"@babel/helper-module-transforms@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" + integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== + dependencies: + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" + integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== + +"@babel/helper-remap-async-to-generator@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz#a6ad005ba1c7d9bc2973dfde05a1bba7065dde3c" + integrity sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg== + dependencies: + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-member-expression-to-functions" "^7.21.5" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + +"@babel/helper-simple-access@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" + integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== + dependencies: + "@babel/types" "^7.21.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== + dependencies: + "@babel/types" "^7.20.0" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" + integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== + +"@babel/helper-string-parser@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" + integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== + +"@babel/helper-validator-option@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" + integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== + +"@babel/helper-validator-option@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" + integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== + +"@babel/helper-wrap-function@^7.18.9": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" + integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== + dependencies: + "@babel/helper-function-name" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" + +"@babel/helpers@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.5.tgz#5bac66e084d7a4d2d9696bdf0175a93f7fb63c08" + integrity sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + +"@babel/helpers@^7.26.10": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.0.tgz#53d156098defa8243eab0f32fa17589075a1b808" + integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg== + dependencies: + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8": + version "7.21.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8" + integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA== + +"@babel/parser@^7.25.3", "@babel/parser@^7.26.10", "@babel/parser@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.0.tgz#3d7d6ee268e41d2600091cbd4e145ffee85a44ec" + integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg== + dependencies: + "@babel/types" "^7.27.0" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" + integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" + integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-proposal-optional-chaining" "^7.20.7" + +"@babel/plugin-proposal-async-generator-functions@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" + integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-class-static-block@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" + integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" + integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" + integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" + integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" + +"@babel/plugin-proposal-optional-catch-binding@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" + integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" + integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-private-property-in-object@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" + integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" + integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-arrow-functions@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz#9bb42a53de447936a57ba256fbf537fc312b6929" + integrity sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-async-to-generator@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" + integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" + +"@babel/plugin-transform-block-scoped-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-block-scoping@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" + integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-classes@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" + integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-split-export-declaration" "^7.18.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz#3a2d8bb771cd2ef1cd736435f6552fe502e11b44" + integrity sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/template" "^7.20.7" + +"@babel/plugin-transform-destructuring@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" + integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" + integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-duplicate-keys@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-exponentiation-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" + integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-for-of@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz#e890032b535f5a2e237a18535f56a9fdaa7b83fc" + integrity sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== + dependencies: + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-member-expression-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-modules-amd@^7.20.11": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" + integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== + dependencies: + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-modules-commonjs@^7.19.6", "@babel/plugin-transform-modules-commonjs@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" + integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== + dependencies: + "@babel/helper-module-transforms" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-simple-access" "^7.21.5" + +"@babel/plugin-transform-modules-systemjs@^7.20.11": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" + integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== + dependencies: + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-validator-identifier" "^7.19.1" + +"@babel/plugin-transform-modules-umd@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" + integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" + integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-new-target@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" + integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-object-super@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + +"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" + integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-property-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-regenerator@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz#576c62f9923f94bcb1c855adc53561fd7913724e" + integrity sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + regenerator-transform "^0.15.1" + +"@babel/plugin-transform-reserved-words@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" + integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-shorthand-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-spread@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" + integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + +"@babel/plugin-transform-sticky-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" + integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-template-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typeof-symbol@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-unicode-escapes@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz#1e55ed6195259b0e9061d81f5ef45a9b009fb7f2" + integrity sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-unicode-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" + integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/preset-env@^7.11.0": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.21.5.tgz#db2089d99efd2297716f018aeead815ac3decffb" + integrity sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg== + dependencies: + "@babel/compat-data" "^7.21.5" + "@babel/helper-compilation-targets" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7" + "@babel/plugin-proposal-async-generator-functions" "^7.20.7" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.21.0" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.20.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.21.0" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.21.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.21.5" + "@babel/plugin-transform-async-to-generator" "^7.20.7" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.21.0" + "@babel/plugin-transform-classes" "^7.21.0" + "@babel/plugin-transform-computed-properties" "^7.21.5" + "@babel/plugin-transform-destructuring" "^7.21.3" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.21.5" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.20.11" + "@babel/plugin-transform-modules-commonjs" "^7.21.5" + "@babel/plugin-transform-modules-systemjs" "^7.20.11" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.21.3" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.21.5" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.20.7" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.21.5" + "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.21.5" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" + core-js-compat "^3.25.1" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.11.2", "@babel/runtime@^7.21.0", "@babel/runtime@^7.8.4": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" + integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== + dependencies: + regenerator-runtime "^0.13.11" + +"@babel/template@^7.18.10", "@babel/template@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/template@^7.26.9", "@babel/template@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.0.tgz#b253e5406cc1df1c57dcd18f11760c2dbf40c0b4" + integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" + +"@babel/traverse@^7.20.1", "@babel/traverse@^7.20.5", "@babel/traverse@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.5.tgz#ad22361d352a5154b498299d523cf72998a4b133" + integrity sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw== + dependencies: + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.5" + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.21.5" + "@babel/types" "^7.21.5" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.10": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.0.tgz#11d7e644779e166c0442f9a07274d02cd91d4a70" + integrity sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.27.0" + "@babel/parser" "^7.27.0" + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.4.4": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.5.tgz#18dfbd47c39d3904d5db3d3dc2cc80bedb60e5b6" + integrity sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q== + dependencies: + "@babel/helper-string-parser" "^7.21.5" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" + integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== + dependencies: + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.3.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== + +"@eslint/eslintrc@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" + integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.5.2" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.41.0": + version "8.41.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.41.0.tgz#080321c3b68253522f7646b55b577dd99d2950b3" + integrity sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA== + +"@fastify/busboy@^2.0.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff" + integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA== + +"@firebase/analytics-compat@0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@firebase/analytics-compat/-/analytics-compat-0.2.7.tgz#affad547d6db9c13424950df972019fb0e2ecaeb" + integrity sha512-17VCly4P0VFBDqaaal7m1nhyYQwsygtaTpSsnc51sFPRrr9XIYtnD8ficon9fneEGEoJQ2g7OtASvhwX9EbK8g== + dependencies: + "@firebase/analytics" "0.10.1" + "@firebase/analytics-types" "0.8.0" + "@firebase/component" "0.6.5" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/analytics-types@0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@firebase/analytics-types/-/analytics-types-0.8.0.tgz#551e744a29adbc07f557306530a2ec86add6d410" + integrity sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw== + +"@firebase/analytics@0.10.1": + version "0.10.1" + resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.10.1.tgz#97d750020c5b3b41fd5191074c683a7a8c8900a5" + integrity sha512-5mnH1aQa99J5lZMJwTNzIoRc4yGXHf+fOn+EoEWhCDA3XGPweGHcylCbqq+G1wVJmfILL57fohDMa8ftMZ+44g== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/installations" "0.6.5" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/app-check-compat@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@firebase/app-check-compat/-/app-check-compat-0.3.9.tgz#c67caa1cd5043fecab7f8ba1bc45ab047210ad83" + integrity sha512-7LxyupQ8XeEHRh72mO+tqm69kHT6KbWi2KtFMGedJ6tNbwzFzojcXESMKN8RpADXbYoQgY3loWMJjMx4r2Zt7w== + dependencies: + "@firebase/app-check" "0.8.2" + "@firebase/app-check-types" "0.5.0" + "@firebase/component" "0.6.5" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/app-check-interop-types@0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.0.tgz#b27ea1397cb80427f729e4bbf3a562f2052955c4" + integrity sha512-xAxHPZPIgFXnI+vb4sbBjZcde7ZluzPPaSK7Lx3/nmuVk4TjZvnL8ONnkd4ERQKL8WePQySU+pRcWkh8rDf5Sg== + +"@firebase/app-check-types@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@firebase/app-check-types/-/app-check-types-0.5.0.tgz#1b02826213d7ce6a1cf773c329b46ea1c67064f4" + integrity sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ== + +"@firebase/app-check@0.8.2": + version "0.8.2" + resolved "https://registry.yarnpkg.com/@firebase/app-check/-/app-check-0.8.2.tgz#9ede3558cc7dc1ac8206a772ba692e67daf7e65e" + integrity sha512-A2B5+ldOguYAeqW1quFN5qNdruSNRrg4W59ag1Eq6QzxuHNIkrE+TrapfrW/z5NYFjCxAYqr/unVCgmk80Dwcg== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/app-compat@0.2.27": + version "0.2.27" + resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.2.27.tgz#3dcf08e7c6258ef3b56929060db9d6b1a3c35eb7" + integrity sha512-SYlqocfUDKPHR6MSFC8hree0BTiWFu5o8wbf6zFlYXyG41w7TcHp4wJi4H/EL5V6cM4kxwruXTJtqXX/fRAZtw== + dependencies: + "@firebase/app" "0.9.27" + "@firebase/component" "0.6.5" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/app-types@0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.9.0.tgz#35b5c568341e9e263b29b3d2ba0e9cfc9ec7f01e" + integrity sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q== + +"@firebase/app@0.9.27": + version "0.9.27" + resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.9.27.tgz#d50d1f99b88fb6c1358bed9703d204dc81185eb9" + integrity sha512-p2Dvl1ge4kRsyK5+wWcmdAIE9MSwZ0pDKAYB51LZgZuz6wciUZk4E1yAEdkfQlRxuHehn+Ol9WP5Qk2XQZiHGg== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.4" + idb "7.1.1" + tslib "^2.1.0" + +"@firebase/auth-compat@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.5.2.tgz#c78249fdfa8ef5d7e9c3d8bc3eb8e99d59f0b5dd" + integrity sha512-pRgje5BPCNR1vXyvGOVXwOHtv88A2WooXfklI8sV7/jWi03ExFqNfpJT26GUo/oD39NoKJ3Kt6rD5gVvdV7lMw== + dependencies: + "@firebase/auth" "1.6.0" + "@firebase/auth-types" "0.12.0" + "@firebase/component" "0.6.5" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + undici "5.26.5" + +"@firebase/auth-interop-types@0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz#78884f24fa539e34a06c03612c75f222fcc33742" + integrity sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg== + +"@firebase/auth-types@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.12.0.tgz#f28e1b68ac3b208ad02a15854c585be6da3e8e79" + integrity sha512-pPwaZt+SPOshK8xNoiQlK5XIrS97kFYc3Rc7xmy373QsOJ9MmqXxLaYssP5Kcds4wd2qK//amx/c+A8O2fVeZA== + +"@firebase/auth@1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-1.6.0.tgz#4999c5749922593f2a886d07ec69b453447b0d40" + integrity sha512-Qhl35eJTV6BwvuueTPCY6x8kUlYyzALtjp/Ws0X3fw3AnjVVfuVb7oQ3Xh5VPVfMFhaIuUAd1KXwcAuIklkSDw== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + undici "5.26.5" + +"@firebase/component@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.6.5.tgz#8cc7334f2081d700f2769caaa8dae3ac4c1fe37e" + integrity sha512-2tVDk1ixi12sbDmmfITK8lxSjmcb73BMF6Qwc3U44hN/J1Fi1QY/Hnnb6klFlbB9/G16a3J3d4nXykye2EADTw== + dependencies: + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/database-compat@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-1.0.3.tgz#f7a255af6208d2d4d7af10ec2c9ecd9af4ff52d5" + integrity sha512-7tHEOcMbK5jJzHWyphPux4osogH/adWwncxdMxdBpB9g1DNIyY4dcz1oJdlkXGM/i/AjUBesZsd5CuwTRTBNTw== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/database" "1.0.3" + "@firebase/database-types" "1.0.1" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/database-types@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-1.0.1.tgz#1e7cd9fec03f6ca772c019d839cc72d9b2eda63c" + integrity sha512-Tmcmx5XgiI7UVF/4oGg2P3AOTfq3WKEPsm2yf+uXtN7uG/a4WTWhVMrXGYRY2ZUL1xPxv9V33wQRJ+CcrUhVXw== + dependencies: + "@firebase/app-types" "0.9.0" + "@firebase/util" "1.9.4" + +"@firebase/database@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-1.0.3.tgz#88caee93188d28aca355236e9ad69f373f628804" + integrity sha512-9fjqLt9JzL46gw9+NRqsgQEMjgRwfd8XtzcKqG+UYyhVeFCdVRQ0Wp6Dw/dvYHnbH5vNEKzNv36dcB4p+PIAAA== + dependencies: + "@firebase/app-check-interop-types" "0.3.0" + "@firebase/auth-interop-types" "0.2.1" + "@firebase/component" "0.6.5" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.4" + faye-websocket "0.11.4" + tslib "^2.1.0" + +"@firebase/firestore-compat@0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.3.25.tgz#6f83871314ea7474a084e1840d6b0d4891a1523f" + integrity sha512-+xI7WmsgZCBhMn/+uhDKcg+lsOUJ9FJyt5PGTzkFPbCsozWfeQZ7eVnfPh0rMkUOf0yIQ924RIe04gwvEIbcoQ== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/firestore" "4.4.2" + "@firebase/firestore-types" "3.0.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/firestore-types@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-3.0.0.tgz#f3440d5a1cc2a722d361b24cefb62ca8b3577af3" + integrity sha512-Meg4cIezHo9zLamw0ymFYBD4SMjLb+ZXIbuN7T7ddXN6MGoICmOTq3/ltdCGoDCS2u+H1XJs2u/cYp75jsX9Qw== + +"@firebase/firestore@4.4.2": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-4.4.2.tgz#21c73bf43d008647f16f8247894b3cacc2afaeb1" + integrity sha512-YaX6ypa/RzU6OkxzUQlpSxwhOIWdTraCNz7sMsbaSEjjl/pj/QvX6TqjkdWGzuBYh2S6rz7ErhDO0g39oZZw/g== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.4" + "@firebase/webchannel-wrapper" "0.10.5" + "@grpc/grpc-js" "~1.9.0" + "@grpc/proto-loader" "^0.7.8" + tslib "^2.1.0" + undici "5.26.5" + +"@firebase/functions-compat@0.3.7": + version "0.3.7" + resolved "https://registry.yarnpkg.com/@firebase/functions-compat/-/functions-compat-0.3.7.tgz#a3500b58abe2afcb7a88ca4c07a3a519c9ed5e5f" + integrity sha512-uXe6Kmku5lNogp3OpPBcOJbSvnaCOn+YxS3zlXKNU6Q/NLwcvO3RY1zwYyctCos2RemEw3KEQ7YdzcECXjHWLw== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/functions" "0.11.1" + "@firebase/functions-types" "0.6.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/functions-types@0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.6.0.tgz#ccd7000dc6fc668f5acb4e6a6a042a877a555ef2" + integrity sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw== + +"@firebase/functions@0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.11.1.tgz#fdb129b84a1a44bc705d78220adda2e765b295ee" + integrity sha512-3uUa1hB79Gmy6E1gHTfzoHeZolBeHc/I/n3+lOCDe6BOos9AHmzRjKygcFE/7VA2FJjitCE0K+OHI6+OuoY8fQ== + dependencies: + "@firebase/app-check-interop-types" "0.3.0" + "@firebase/auth-interop-types" "0.2.1" + "@firebase/component" "0.6.5" + "@firebase/messaging-interop-types" "0.2.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + undici "5.26.5" + +"@firebase/installations-compat@0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@firebase/installations-compat/-/installations-compat-0.2.5.tgz#e23ff86dc5a4b856f5f3d3abafeda7362daa38c5" + integrity sha512-usvoIaog5CHEw082HXLrKAZ1qd4hIC3N/LDe2NqBgI3pkGE/7auLVM4Gn5gvyryp0x8z/IP1+d9fkGUj2OaGLQ== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/installations" "0.6.5" + "@firebase/installations-types" "0.5.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/installations-types@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@firebase/installations-types/-/installations-types-0.5.0.tgz#2adad64755cd33648519b573ec7ec30f21fb5354" + integrity sha512-9DP+RGfzoI2jH7gY4SlzqvZ+hr7gYzPODrbzVD82Y12kScZ6ZpRg/i3j6rleto8vTFC8n6Len4560FnV1w2IRg== + +"@firebase/installations@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.6.5.tgz#1d6e0a581747bfaca54f11bf722e1f3da00dcc9c" + integrity sha512-0xxnQWw8rSRzu0ZOCkZaO+MJ0LkDAfwwTB2Z1SxRK6FAz5xkxD1ZUwM0WbCRni49PKubCrZYOJ6yg7tSjU7AKA== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/util" "1.9.4" + idb "7.1.1" + tslib "^2.1.0" + +"@firebase/logger@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.4.0.tgz#15ecc03c452525f9d47318ad9491b81d1810f113" + integrity sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA== + dependencies: + tslib "^2.1.0" + +"@firebase/messaging-compat@0.2.6": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@firebase/messaging-compat/-/messaging-compat-0.2.6.tgz#ea89934bff5f048576dc1c4ce87e0c4c2141829b" + integrity sha512-Q2xC1s4L7Vpss7P7Gy6GuIS+xmJrf/vm9+gX76IK1Bo1TjoKwleCLHt1LHkPz5Rvqg5pTgzzI8qqPhBpZosFCg== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/messaging" "0.12.6" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/messaging-interop-types@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.0.tgz#6056f8904a696bf0f7fdcf5f2ca8f008e8f6b064" + integrity sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ== + +"@firebase/messaging@0.12.6": + version "0.12.6" + resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.12.6.tgz#ac7c59ed39a89e00990e3b6dfd7929e13dd77563" + integrity sha512-IORsPp9IPWq4j4yEhTOZ6GAGi3gQwGc+4yexmTAlya+qeBRSdRnJg2iIU/aj+tcKDQYr9RQuQPgHHOdFIx//vA== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/installations" "0.6.5" + "@firebase/messaging-interop-types" "0.2.0" + "@firebase/util" "1.9.4" + idb "7.1.1" + tslib "^2.1.0" + +"@firebase/performance-compat@0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@firebase/performance-compat/-/performance-compat-0.2.5.tgz#9b827b1801fca19d8c379792326c076877ac5b91" + integrity sha512-jJwJkVyDcIMBaVGrZ6CRGs4m5FCZsWB5QCWYI3FdsHyIa9/TfteNDilxj9wGciF2naFIHDW7TgE69U5dAH9Ktg== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/logger" "0.4.0" + "@firebase/performance" "0.6.5" + "@firebase/performance-types" "0.2.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/performance-types@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@firebase/performance-types/-/performance-types-0.2.0.tgz#400685f7a3455970817136d9b48ce07a4b9562ff" + integrity sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA== + +"@firebase/performance@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.6.5.tgz#5255fb18329719bc1fb2db29262e5ec15cbace06" + integrity sha512-OzAGcWhOqEFH9GdwUuY0oC5FSlnMejcnmSAhR+EjpI7exdDvixyLyCR4txjSHYNTbumrFBG+EP8GO11CNXRaJA== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/installations" "0.6.5" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/remote-config-compat@0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@firebase/remote-config-compat/-/remote-config-compat-0.2.5.tgz#b6850a45567db5372778668c796a8d49723413f3" + integrity sha512-ImkNnLuGrD/bylBHDJigSY6LMwRrwt37wQbsGZhWG4QQ6KLzHzSf0nnFRRFvkOZodEUE57Ib8l74d6Yn/6TDUQ== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/logger" "0.4.0" + "@firebase/remote-config" "0.4.5" + "@firebase/remote-config-types" "0.3.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/remote-config-types@0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@firebase/remote-config-types/-/remote-config-types-0.3.0.tgz#689900dcdb3e5c059e8499b29db393e4e51314b4" + integrity sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA== + +"@firebase/remote-config@0.4.5": + version "0.4.5" + resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.4.5.tgz#1aae1a4639bb0dddc14671c10dcd92c8a83c58c1" + integrity sha512-rGLqc/4OmxrS39RA9kgwa6JmgWytQuMo+B8pFhmGp3d++x2Hf9j+MLQfhOLyyUo64fNw20J19mLXhrXvKHsjZQ== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/installations" "0.6.5" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/storage-compat@0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@firebase/storage-compat/-/storage-compat-0.3.4.tgz#de261a0554747f558584c1465e17e6741da00ec8" + integrity sha512-Y0m5e2gS/wB9Ioth2X/Sgz76vcxvqgQrCmfa9qwhss/N31kxY2Gks6Frv0nrE18AjVfcSmcfDitqUwxcMOTRSg== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/storage" "0.12.1" + "@firebase/storage-types" "0.8.0" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + +"@firebase/storage-types@0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.8.0.tgz#f1e40a5361d59240b6e84fac7fbbbb622bfaf707" + integrity sha512-isRHcGrTs9kITJC0AVehHfpraWFui39MPaU7Eo8QfWlqW7YPymBmRgjDrlOgFdURh6Cdeg07zmkLP5tzTKRSpg== + +"@firebase/storage@0.12.1": + version "0.12.1" + resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.12.1.tgz#df0b914ba388d20ef9967682c9c67d79fed01777" + integrity sha512-KJ5NV7FUh54TeTlEjdkTTX60ciCKOp9EqlbLnpdcXUYRJg0Z4810TXbilPc1z7fTIG4iPjtdi95bGE9n4dBX8A== + dependencies: + "@firebase/component" "0.6.5" + "@firebase/util" "1.9.4" + tslib "^2.1.0" + undici "5.26.5" + +"@firebase/util@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.9.4.tgz#68eee380ab7e7828ec0d8684c46a1abed2d7e334" + integrity sha512-WLonYmS1FGHT97TsUmRN3qnTh5TeeoJp1Gg5fithzuAgdZOUtsYECfy7/noQ3llaguios8r5BuXSEiK82+UrxQ== + dependencies: + tslib "^2.1.0" + +"@firebase/webchannel-wrapper@0.10.5": + version "0.10.5" + resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.10.5.tgz#cd9897680d0a2f1bce8d8c23a590e5874f4617c5" + integrity sha512-eSkJsnhBWv5kCTSU1tSUVl9mpFu+5NXXunZc83le8GMjMlsWwQArSc7cJJ4yl+aDFY0NGLi0AjZWMn1axOrkRg== + +"@floating-ui/core@^1.0.0": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.2.tgz#d37f3e0ac1f1c756c7de45db13303a266226851a" + integrity sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg== + dependencies: + "@floating-ui/utils" "^0.2.0" + +"@floating-ui/dom@^1.6.1", "@floating-ui/dom@^1.6.5": + version "1.6.5" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.5.tgz#323f065c003f1d3ecf0ff16d2c2c4d38979f4cb9" + integrity sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw== + dependencies: + "@floating-ui/core" "^1.0.0" + "@floating-ui/utils" "^0.2.0" + +"@floating-ui/utils@^0.2.0", "@floating-ui/utils@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.2.tgz#d8bae93ac8b815b2bd7a98078cf91e2724ef11e5" + integrity sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw== + +"@floating-ui/vue@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@floating-ui/vue/-/vue-1.0.6.tgz#31860a12f1135d19554c232d99c5bab631c5c576" + integrity sha512-EdrOljjkpkkqZnrpqUcPoz9NvHxuTjUtSInh6GMv3+Mcy+giY2cE2pHh9rpacRcZ2eMSCxel9jWkWXTjLmY55w== + dependencies: + "@floating-ui/dom" "^1.6.1" + "@floating-ui/utils" "^0.2.1" + vue-demi ">=0.13.0" + +"@grpc/grpc-js@~1.9.0": + version "1.9.14" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.14.tgz#236378822876cbf7903f9d61a0330410e8dcc5a1" + integrity sha512-nOpuzZ2G3IuMFN+UPPpKrC6NsLmWsTqSsm66IRfnBt1D4pwTqE27lmbpcPM+l2Ua4gE7PfjRHI6uedAy7hoXUw== + dependencies: + "@grpc/proto-loader" "^0.7.8" + "@types/node" ">=12.12.47" + +"@grpc/proto-loader@^0.7.8": + version "0.7.10" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.10.tgz#6bf26742b1b54d0a473067743da5d3189d06d720" + integrity sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.2.4" + yargs "^17.7.2" + +"@headlessui/vue@^1.7.14": + version "1.7.16" + resolved "https://registry.yarnpkg.com/@headlessui/vue/-/vue-1.7.16.tgz#bdc9d32d329248910325539b99e6abfce0c69f89" + integrity sha512-nKT+nf/q6x198SsyK54mSszaQl/z+QxtASmgMEJtpxSX2Q0OPJX0upS/9daDyiECpeAsvjkoOrm2O/6PyBQ+Qg== + +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@internationalized/date@^3.5.4": + version "3.5.4" + resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.5.4.tgz#49ba11634fd4350b7a9308e297032267b4063c44" + integrity sha512-qoVJVro+O0rBaw+8HPjUB1iH8Ihf8oziEnqMnvhJUSuVIrHOuZ6eNLHNvzXJKUvAtaDiqMnRlg8Z2mgh09BlUw== + dependencies: + "@swc/helpers" "^0.5.0" + +"@internationalized/number@^3.5.3": + version "3.5.3" + resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.5.3.tgz#9fa060c1c4809f23fb3d38dd3f3d1ae4c87e95a8" + integrity sha512-rd1wA3ebzlp0Mehj5YTuTI50AQEx80gWFyHcQu+u91/5NgdwBecO8BH6ipPfE+lmQ9d63vpB3H9SHoIUiupllw== + dependencies: + "@swc/helpers" "^0.5.0" + +"@ionic/core@7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@ionic/core/-/core-7.4.3.tgz#5c980d62e872d936f9449eefc272da1d35e20f39" + integrity sha512-JPQLGojKnI/L0UBVshRv86DOSDj61rJRFYQImU4IcgP/rw5ckxwt3iZ5NtdJl0eEDwu91n68aGJdU+TFJjMJgQ== + dependencies: + "@stencil/core" "^4.4.0" + ionicons "7.1.0" + tslib "^2.1.0" + +"@ionic/vue-router@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@ionic/vue-router/-/vue-router-7.4.3.tgz#35d4448c379ae1ffdb92fa51a84c812cd4d36834" + integrity sha512-17oYicB3Cspx49VloCIM/J4Zf/klfkyDXHoZy9MYWc+p87JgG9yHcn8LTKcBgmbvlyde1H1PR5c3+hwO/SxGvA== + dependencies: + "@ionic/vue" "7.4.3" + +"@ionic/vue@7.4.3", "@ionic/vue@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@ionic/vue/-/vue-7.4.3.tgz#86b62e2eee6f11c17e011cfd1fdf1dd1f4f5e813" + integrity sha512-DV/SExC/e3rcLoowuYb5bwo4N/oP5fWHQo1xLP654I/879hlwPJlCxdWFtaE2OlT3aEix9ssLYeNiWaxuK+9dQ== + dependencies: + "@ionic/core" "7.4.3" + ionicons "^7.0.0" + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.8" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" + integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@1.4.14": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@linaria/core@4.2.9": + version "4.2.9" + resolved "https://registry.yarnpkg.com/@linaria/core/-/core-4.2.9.tgz#4917bde18d064a29cff4fd86aa99621f953a2a2c" + integrity sha512-ELcu37VNVOT/PU0L6WDIN+aLzNFyJrqoBYT0CucGOCAmODbojUMCv8oJYRbWzA3N34w1t199dN4UFdfRWFG2rg== + dependencies: + "@linaria/logger" "^4.0.0" + "@linaria/tags" "^4.3.4" + "@linaria/utils" "^4.3.3" + +"@linaria/logger@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@linaria/logger/-/logger-4.0.0.tgz#6f73eb3cc11d548967a7caf2e7997439e46fca0d" + integrity sha512-YnBq0JlDWMEkTOK+tMo5yEVR0f5V//6qMLToGcLhTyM9g9i+IDFn51Z+5q2hLk7RdG4NBPgbcCXYi2w4RKsPeg== + dependencies: + debug "^4.1.1" + picocolors "^1.0.0" + +"@linaria/tags@^4.3.4": + version "4.3.5" + resolved "https://registry.yarnpkg.com/@linaria/tags/-/tags-4.3.5.tgz#bf2e070d11179addf2f27a66cd29d8192e71ca89" + integrity sha512-PgaIi8Vv89YOjc6rpKL/uPg2w4k0rAwAYxcqeXqzKqsEAste5rgB8xp1/KUOG0oAOkPd3MRL6Duj+m0ZwJ3g+g== + dependencies: + "@babel/generator" "^7.20.4" + "@linaria/logger" "^4.0.0" + "@linaria/utils" "^4.3.4" + +"@linaria/utils@^4.3.3", "@linaria/utils@^4.3.4": + version "4.3.4" + resolved "https://registry.yarnpkg.com/@linaria/utils/-/utils-4.3.4.tgz#860db9131e498b62510e49dc6fd4a8f0ed44bf4d" + integrity sha512-vt6WJG54n+KANaqxOfzIIU7aSfFHEWFbnGLsgxL7nASHqO0zezrNA2y2Rrp80zSeTW+wSpbmDM4uJyC9UW1qoA== + dependencies: + "@babel/core" "^7.20.2" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-modules-commonjs" "^7.19.6" + "@babel/traverse" "^7.20.1" + "@babel/types" "^7.20.2" + "@linaria/logger" "^4.0.0" + babel-merge "^3.0.0" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@popperjs/core@^2.11.2", "@popperjs/core@^2.9.0": + version "2.11.7" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.7.tgz#ccab5c8f7dc557a52ca3288c10075c9ccd37fff7" + integrity sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw== + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@remirror/core-constants@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@remirror/core-constants/-/core-constants-2.0.1.tgz#19b4ae221880762cd98452f44288fcc66baaec0f" + integrity sha512-ZR4aihtnnT9lMbhh5DEbsriJRlukRXmLZe7HmM+6ufJNNUDoazc75UX26xbgQlNUqgAqMcUdGFAnPc1JwgAdLQ== + dependencies: + "@babel/runtime" "^7.21.0" + +"@remirror/core-helpers@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@remirror/core-helpers/-/core-helpers-2.0.3.tgz#fa4a0224a612016b9f16052ed0c5d817c69daa39" + integrity sha512-LqIPF4stGG69l9qu/FFicv9d9B+YaItzgDMC5A0CEvDQfKkGD3BfabLmfpnuWbsc06oKGdTduilgWcALLZoYLg== + dependencies: + "@babel/runtime" "^7.21.0" + "@linaria/core" "4.2.9" + "@remirror/core-constants" "^2.0.1" + "@remirror/types" "^1.0.1" + "@types/object.omit" "^3.0.0" + "@types/object.pick" "^1.3.2" + "@types/throttle-debounce" "^2.1.0" + case-anything "^2.1.10" + dash-get "^1.0.2" + deepmerge "^4.3.1" + fast-deep-equal "^3.1.3" + make-error "^1.3.6" + object.omit "^3.0.0" + object.pick "^1.3.0" + throttle-debounce "^3.0.1" + +"@remirror/types@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@remirror/types/-/types-1.0.1.tgz#768502497a0fbbc23338a1586b893f729310cf70" + integrity sha512-VlZQxwGnt1jtQ18D6JqdIF+uFZo525WEqrfp9BOc3COPpK4+AWCgdnAWL+ho6imWcoINlGjR/+3b6y5C1vBVEA== + dependencies: + type-fest "^2.19.0" + +"@rollup/plugin-babel@^5.2.0": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" + integrity sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@rollup/pluginutils" "^3.1.0" + +"@rollup/plugin-node-resolve@^15.2.3": + version "15.3.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz#66008953c2524be786aa319d49e32f2128296a78" + integrity sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA== + dependencies: + "@rollup/pluginutils" "^5.0.1" + "@types/resolve" "1.20.2" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.22.1" + +"@rollup/plugin-replace@^2.4.1": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" + integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + magic-string "^0.25.7" + +"@rollup/plugin-terser@^0.4.3": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz#15dffdb3f73f121aa4fbb37e7ca6be9aeea91962" + integrity sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A== + dependencies: + serialize-javascript "^6.0.1" + smob "^1.0.0" + terser "^5.17.4" + +"@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@rollup/pluginutils@^5.0.1": + version "5.1.4" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.4.tgz#bb94f1f9eaaac944da237767cdfee6c5b2262d4a" + integrity sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^4.0.2" + +"@rollup/rollup-android-arm-eabi@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.37.0.tgz#9bedc746a97fe707154086365f269ced92ff4aa9" + integrity sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ== + +"@rollup/rollup-android-arm64@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.37.0.tgz#6edc6ffc8af8773e4bc28c72894dd5e846b8ee6c" + integrity sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA== + +"@rollup/rollup-darwin-arm64@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.37.0.tgz#737a7b8be9ff79bd24a7efaae0903e8c66ac0676" + integrity sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA== + +"@rollup/rollup-darwin-x64@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.37.0.tgz#a6a697bb685ca9462a7caeea5f22f6a686acff1f" + integrity sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ== + +"@rollup/rollup-freebsd-arm64@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.37.0.tgz#18113e8e133ccb6de4b9dc9d3e09f7acff344cb7" + integrity sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA== + +"@rollup/rollup-freebsd-x64@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.37.0.tgz#5e56ffd4a0d7ccfcbc86867c40b8f0e6a2c0c81e" + integrity sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA== + +"@rollup/rollup-linux-arm-gnueabihf@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.37.0.tgz#5addf1a51e1495ae7ff28d26442a88adf629c980" + integrity sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w== + +"@rollup/rollup-linux-arm-musleabihf@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.37.0.tgz#00cddb9ab51086c5f2cd33cd4738259e24be4e73" + integrity sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag== + +"@rollup/rollup-linux-arm64-gnu@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.37.0.tgz#c3b4324496236b6fd9f31fda5701c6d6060b1512" + integrity sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA== + +"@rollup/rollup-linux-arm64-musl@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.37.0.tgz#b5222180bb1a50e6e9bc8263efd771c1ce770b6f" + integrity sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ== + +"@rollup/rollup-linux-loongarch64-gnu@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.37.0.tgz#5660181c1c1efb7b19c7a531d496e685236c5ce7" + integrity sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA== + +"@rollup/rollup-linux-powerpc64le-gnu@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.37.0.tgz#8273166495d2f5d3fbc556cf42a5a6e24b78bdab" + integrity sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ== + +"@rollup/rollup-linux-riscv64-gnu@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.37.0.tgz#9677e39288ccc91ebcd707cdd794732d701cd174" + integrity sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw== + +"@rollup/rollup-linux-riscv64-musl@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.37.0.tgz#71cc5ca7be1ed263357618bfe4f8f50c09725a7e" + integrity sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA== + +"@rollup/rollup-linux-s390x-gnu@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.37.0.tgz#6b0b7df33eb32b0ee7423898b183acc1b5fee33e" + integrity sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A== + +"@rollup/rollup-linux-x64-gnu@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.37.0.tgz#52c27717d3c4819d13b5ebc2373ddea099d2e71b" + integrity sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ== + +"@rollup/rollup-linux-x64-musl@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.37.0.tgz#c134a22d30642345de8b799c816345674bf68019" + integrity sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w== + +"@rollup/rollup-win32-arm64-msvc@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.37.0.tgz#8063d5f8195dd1845e056d069366fbe06a424d09" + integrity sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg== + +"@rollup/rollup-win32-ia32-msvc@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.37.0.tgz#891d90e3b5517f9d290bb416afdfe2ebfb12139e" + integrity sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA== + +"@rollup/rollup-win32-x64-msvc@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.37.0.tgz#a54d7304c3bd45573d8bcd1270de89771f8195fe" + integrity sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA== + +"@socket.io/component-emitter@~3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" + integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== + +"@stencil/core@^2.18.0": + version "2.22.3" + resolved "https://registry.yarnpkg.com/@stencil/core/-/core-2.22.3.tgz#83987e20bba855c450f6d6780e3a20192603f13f" + integrity sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng== + +"@stencil/core@^4.4.0": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@stencil/core/-/core-4.4.1.tgz#7f5d4bb7ae3a0cd072c5cd6ad4eb0b879514d006" + integrity sha512-SirGcrb5yKHCn2BwdM7HGVXuvCdmwiXlVczEj8jJxQIm42CAUQCUECxtZidTzp+oZBZnWLnoAvfanchJsgkQzA== + +"@surma/rollup-plugin-off-main-thread@^2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" + integrity sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ== + dependencies: + ejs "^3.1.6" + json5 "^2.2.0" + magic-string "^0.25.0" + string.prototype.matchall "^4.0.6" + +"@swc/helpers@^0.5.0": + version "0.5.11" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.11.tgz#5bab8c660a6e23c13b2d23fcd1ee44a2db1b0cb7" + integrity sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A== + dependencies: + tslib "^2.4.0" + +"@tailwindcss/forms@^0.5.3": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.3.tgz#e4d7989686cbcaf416c53f1523df5225332a86e7" + integrity sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q== + dependencies: + mini-svg-data-uri "^1.2.3" + +"@tailwindcss/typography@^0.5.0": + version "0.5.9" + resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.9.tgz#027e4b0674929daaf7c921c900beee80dbad93e8" + integrity sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg== + dependencies: + lodash.castarray "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + postcss-selector-parser "6.0.10" + +"@tanstack/virtual-core@3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.5.1.tgz#f519149bce9156d0e7954b9531df15f446f2fc12" + integrity sha512-046+AUSiDru/V9pajE1du8WayvBKeCvJ2NmKPy/mR8/SbKKrqmSbj7LJBfXE+nSq4f5TBXvnCzu0kcYebI9WdQ== + +"@tanstack/vue-virtual@^3.5.0": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@tanstack/vue-virtual/-/vue-virtual-3.5.1.tgz#90b4e4afbba663f50a83ad2dc3ac0790625f9cb0" + integrity sha512-6mc4HtDPieDVKD6GqzHiJkdzuqRNdQZuoIbkwE6af939WV+w62YmSF69jN+BOqClqh/ObiW+X1VOQx1Pftrx1A== + dependencies: + "@tanstack/virtual-core" "3.5.1" + +"@tiptap/core@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.1.7.tgz#9823a3712d176849cfd281dd8229ad0719c9eb9e" + integrity sha512-1pqTwlTnwTKQSNQmmTWhs2lwdvd+hFFNFZnrRAfvZhQZA6qPmPmKMNTcYmK38Tn4axKth6mhBamzTJgMZFI7ng== + +"@tiptap/extension-blockquote@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.1.7.tgz#fe25ec1dedd1f7e3eb1a851a6ac8738ca4691a17" + integrity sha512-oAsUU1c0DDZKHwK7/uCtYpnTUQt0o3w+SsJSv4S2vlSHidiFl9gCQGozUQ/Alzc7GO1Y95rOscL28DJXgXESQg== + +"@tiptap/extension-bold@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.1.7.tgz#c5d89284235d75c2e65745b50a5c0681be1cbab6" + integrity sha512-GZV2D91WENkWd1W29vM4kyGWObcxOKQrY8MuCvTdxni1kobEc/LPZzQ1XiQmiNTvXTMcBz5ckLpezdjASV1dNg== + +"@tiptap/extension-bubble-menu@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.1.7.tgz#62616c9ee456c8413ad6c120757978266052a1a0" + integrity sha512-VcwwUgiG17TEDZda1JBbyKCHLIBTu8B2OAzYrnd4ZqeRs5KTVAB279o/TVjsLVgEfC+c7IWwhhaPPMoXn/lJ3g== + dependencies: + tippy.js "^6.3.7" + +"@tiptap/extension-bullet-list@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.7.tgz#3a7356824a931122314a6bd73b5f9d8a8a313791" + integrity sha512-BReix1wkGNH12DSWGnWPKNu4do92Avh98aLkRS1o1V1Y49/+YGMYtfBXB9obq40o0WqKvk4MoM+rhKbfEc44Gg== + +"@tiptap/extension-code-block@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.1.7.tgz#c087c22c305f3c87645228ad32f32595dde7f2a2" + integrity sha512-uiasfWCIQuk34vGoIENqAJOHf9m3hAkcELnb9T6+uNxA3O7PUZQqBVN/27oEipj7j15pqua50D6C1jql9kFe0g== + +"@tiptap/extension-code@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.1.7.tgz#bad3b1aedc23123a2094f8810801edb0c13acbff" + integrity sha512-g0IA6Q6DFZE0AEOMXAV1mktl/XzIO3s1h/haPIKZ8GNes522qhBr9FYc5OUPQCCbgYjL7soTGzxA/W5Jk3f2AQ== + +"@tiptap/extension-color@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-color/-/extension-color-2.1.7.tgz#7f436aed2f41087d8de6af6a4dd4cb7d964354dd" + integrity sha512-NLspH5taSpZP60rXJjDKu8AP9VDd+dlqz4guxvijtuPEePw87Fzidxx9w6X0uYQfx1O0xdPFq3UodlDz591scA== + +"@tiptap/extension-document@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.1.7.tgz#5e1d56e899fdca8ebfad1b7cb358d5ace664b851" + integrity sha512-tZyoPPmvzti7PEnyulXomEtINd/Oi2S84uOt6gw7DTCnDq5bF5sn1IfN8Icqp9t4jDwyLXy2TL0Zg/sR0a2Ibg== + +"@tiptap/extension-dropcursor@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.7.tgz#a3f79b7453579f36f326852b16e421601e881a28" + integrity sha512-hNk2BuLnNSXlGOQphlzdpFKCKo7uHUFjWuBfzF1S9FMAQgcN7eTia+cCClmXABYfVLW4fT14PC1KiuGjxi9MuA== + +"@tiptap/extension-floating-menu@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.1.7.tgz#fe2def740b3136d38101634ae60d2fec5468c57e" + integrity sha512-K0bO7JKHAvgLM5MkhNgoYcD6SB0Z2tNIFhZHs5SCTuhg7dwduMSM3pC6QBrJGUk99DGsKuMPYQn3c2oG7MLbyQ== + dependencies: + tippy.js "^6.3.7" + +"@tiptap/extension-gapcursor@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.7.tgz#5c0303ba37b4c066f3a3c5835fd0b298f0d3e919" + integrity sha512-7eoInzzk1sssoD3RMkwFC86U15Ja4ANve+8wIC+xhN4R3Oe3PY3lFbp1GQxCmaJj8b3rtjNKIQZ2zO0PH58afA== + +"@tiptap/extension-hard-break@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.1.7.tgz#1cd783adfe2788d41614f8851b8d7a52ec027cce" + integrity sha512-6gFXXlCGAdXjy27BW29q4yfCQPAEFd18k7zRTnbd4aE/zIWUtLqdiTfI3kotUMab9Tt9/z1BRmCbEUxRsf1Nww== + +"@tiptap/extension-heading@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.1.7.tgz#26d16227eab95b1f381e977f7aa1685f493c6fb5" + integrity sha512-jMeTqtq3kbMFtMvUb3SeIt4FFM3W+b6TAw5H4Qd6z3gYsAU3GahRK67MtbJfPmznUkZfimrqW9VCaBezScfrsQ== + +"@tiptap/extension-highlight@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-highlight/-/extension-highlight-2.1.7.tgz#0f9434eedfdcb95a22ca5b6f601d13f4343a7e5c" + integrity sha512-3EXrnf1BQSdOe/iqzcTIr5Tf0NOhPQ+y1B9nMi/40v3MD8WzRBLaqj0lvpwO7xMAdgxm6IiL/XFYU41n9yFl/Q== + +"@tiptap/extension-history@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.1.7.tgz#baa566875ef1278c5dd8821970362d85348b266c" + integrity sha512-8SIEKSImrIkqJThym1bPD13sC4/76UrG+piQ30xKQU4B7zUFCbutvrwYuQHSRvaEt8BPdTv2LWIK+wBkIgbWVA== + +"@tiptap/extension-horizontal-rule@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.7.tgz#7c21bc4917e4ced9382e81626e0f0068b224bfbb" + integrity sha512-hJupsDxDVmjmKI/Ewl/gtiyUx52Y3wRUhT8dCXNOA5eldmPXN23E2Fa2BC8XB47dyc5pubyNcLuqaLeaZ5hedw== + +"@tiptap/extension-image@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-image/-/extension-image-2.1.7.tgz#597129fb072f6b0014c980892c367a283077f564" + integrity sha512-aWa/NPMc1U9Z6xuV0gk1O1nk4H7BAwQMwqXWdvUQCJhmW5+LJPdEiKvt3P6j+ClIN7sdyokZCgr6eGr817qTLA== + +"@tiptap/extension-italic@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.1.7.tgz#d077683597d4282ae272c48b313d768d71985b67" + integrity sha512-7e37f+OFqisdY19nWIthbSNHMJy4+4dec06rUICPrkiuFaADj5HjUQr0dyWpL/LkZh92Wf/rWgp4V/lEwon3jA== + +"@tiptap/extension-link@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-link/-/extension-link-2.1.7.tgz#2705c212d105ccf411d505e334ece4a723971ee4" + integrity sha512-NDfoMCkThng1B530pMg5y69+eWoghZXK2uCntrJH7Rs8jNeGMyt9wGIOd7N8ZYz0oJ2ZYKzZjS0RANdBDS17DA== + dependencies: + linkifyjs "^4.1.0" + +"@tiptap/extension-list-item@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.1.7.tgz#dc24045e445d0f91baec9b113f711dc90c6682ac" + integrity sha512-hd/E4qQopBXWa6kdFY19qFVgqj4fzdPgAnzdXJ2XW7bC6O2CusmHphRRZ5FBsuspYTN/6/fv0i0jK9rSGlsEyA== + +"@tiptap/extension-mention@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-mention/-/extension-mention-2.1.7.tgz#09fa03af6f502a9c0343c2d39e2557b74c5ffcfd" + integrity sha512-GPVw8AiGwCozkY2TKLk/eMpo7IYfVuXnFB82yPlG3RQTGREpvf6L5Vv28HdXcgk7KMTo2IcEdH32EJDqjPYlEg== + +"@tiptap/extension-ordered-list@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.7.tgz#72d9ddc432ecf0fd19c8acd3c6b44f5358d8e0d0" + integrity sha512-3XIXqbZmYkNzF+8PQ2jcCOCj0lpC3y9HGM/+joPIunhiUiktrIgpbUDv2E1Gq5lJHYqthIeujniI2dB85tkwJQ== + +"@tiptap/extension-paragraph@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.1.7.tgz#76408706f0037a510a384b86780bd50c6e8ffeea" + integrity sha512-cLqX27hNrXrwZCKrIW8OC3rW2+MT8hhS37+cdqOxZo5hUqQ9EF/puwS0w8uUZ7B3awX9Jm1QZDMjjERLkcmobw== + +"@tiptap/extension-placeholder@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-placeholder/-/extension-placeholder-2.1.7.tgz#8477cf5116c89f0f75e8e2e3b8528e146a7f0f24" + integrity sha512-IiBoItYYNS7hb/zmPitw3w6Cylmp9qX+zW+QKe3lDkCNPeKxyQr86AnVLcQYOuXg62cLV9dp+4azZzHoz9SOcg== + +"@tiptap/extension-strike@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.1.7.tgz#b7b7f49254f1de22416b1415ca88a2a20edd0627" + integrity sha512-ONLXYnuZGM2EoGcxkyvJSDMBeAp7K6l83UXkK9TSj+VpEEDdeV7m8mJs8/vACJjJxD5HMN61+EPgU7VTEukQCA== + +"@tiptap/extension-table-cell@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-table-cell/-/extension-table-cell-2.1.7.tgz#87841144b8368c9611ad46f2134b637e2c33c8bc" + integrity sha512-p3e4FNdbKVIjOLHDcXrRtlP6FYPoN6hBUFjq6QZbf5g4+ao2Uq4bQCL+eKbYMxUVERl8g/Qu9X+jG99fVsBDjA== + +"@tiptap/extension-table-header@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-table-header/-/extension-table-header-2.1.7.tgz#4757834655e2c4edffa65bc6f6807eb59401e0d8" + integrity sha512-rolSUQxFJf/CEj2XBJpeMsLiLHASKrVIzZ2A/AZ9pT6WpFqmECi8r9xyutpJpx21n2Hrk46Y+uGFOKhyvbZ5ug== + +"@tiptap/extension-table-row@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-table-row/-/extension-table-row-2.1.7.tgz#f736a61035b271423ef18f65a25f8d1e240263a1" + integrity sha512-DBCaEMEuCCoOmr4fdDfp2jnmyWPt672rmCZ5WUuenJ47Cy4Ox2dV+qk5vBZ/yDQcq12WvzLMhdSnAo9pMMMa6Q== + +"@tiptap/extension-table@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-table/-/extension-table-2.1.7.tgz#c8a83744f60c76ae1e41438b04d5ac9e984afa66" + integrity sha512-nlKs35vTQOFW9lfw76S7kJvqVJAfHUlz1muQgWT0gNUlKJYINMXjUIg4Wcx8LTaITCCkp0lMGrLETGRNI+RyxA== + +"@tiptap/extension-text-align@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-text-align/-/extension-text-align-2.1.7.tgz#4f8df8296a1cd7be16db99337cdceebdbdff4fd2" + integrity sha512-DiRvGzcFQfXotgU7CpQxgstxgu6ZUUmSVQ7pzAxg9CQHwNgKQ4uYeDabt/R/SLEeb3YfXoEScxFMbyO1ys8ZsQ== + +"@tiptap/extension-text-style@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-text-style/-/extension-text-style-2.1.7.tgz#57f5dc5b223a855e782f24e09dc7fc53d9bd4b00" + integrity sha512-0QhEMDiDqMpyBGRt6o4GvbN9cUibZe4LT9e0ujarT6ElSe2fbtwGPnXSXApUtgHDDwHw95M5ZVxX/H5cjyjw1g== + +"@tiptap/extension-text@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.1.7.tgz#071053ab0a8804a3bce36d1488a603b7446dff4e" + integrity sha512-3xaMMMNydLgoS+o+yOvaZF04ui9spJwJZl8VyYgcJKVGGLGRlWHrireXN5/OqXG2jLb/jWqXVx5idppQjX+PMA== + +"@tiptap/extension-typography@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-typography/-/extension-typography-2.1.7.tgz#fbfe0202fadf6413e1383d6c5fd274a70b3907b5" + integrity sha512-/K07CeIxwJ2t0amjIrxpQkfPJqTlRoA8YIVd6O1iqriINZVS0EK2IJAaE/PNVQNnUYhyU+0Z2/Xie3SlCP7PVQ== + +"@tiptap/pm@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-2.1.7.tgz#91e1b87d4ddbddca3cfe46e3c052b0072e4e1d97" + integrity sha512-RBVb/k9OjmClwdVl7fpekFgUsLAm1U+5I4w1qA2tj7L/hSPOuPzaEHwCqDYe0b2PR5dd8h0nylS9qXuXVlfwfQ== + dependencies: + prosemirror-changeset "^2.2.0" + prosemirror-collab "^1.3.0" + prosemirror-commands "^1.3.1" + prosemirror-dropcursor "^1.5.0" + prosemirror-gapcursor "^1.3.1" + prosemirror-history "^1.3.0" + prosemirror-inputrules "^1.2.0" + prosemirror-keymap "^1.2.0" + prosemirror-markdown "^1.10.1" + prosemirror-menu "^1.2.1" + prosemirror-model "^1.18.1" + prosemirror-schema-basic "^1.2.0" + prosemirror-schema-list "^1.2.2" + prosemirror-state "^1.4.1" + prosemirror-tables "^1.3.0" + prosemirror-trailing-node "^2.0.2" + prosemirror-transform "^1.7.0" + prosemirror-view "^1.28.2" + +"@tiptap/starter-kit@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/starter-kit/-/starter-kit-2.1.7.tgz#a33a7928b7051ac9cd89d1798745f9855b7b72d9" + integrity sha512-z2cmJRSC7ImaTGWrHv+xws9y1wIG0OCPosBYpmpwlEfA3JG3axWFmVRJlWnsQV4eSMi3QY3vaPgBAnrR4IxRhQ== + dependencies: + "@tiptap/core" "^2.1.7" + "@tiptap/extension-blockquote" "^2.1.7" + "@tiptap/extension-bold" "^2.1.7" + "@tiptap/extension-bullet-list" "^2.1.7" + "@tiptap/extension-code" "^2.1.7" + "@tiptap/extension-code-block" "^2.1.7" + "@tiptap/extension-document" "^2.1.7" + "@tiptap/extension-dropcursor" "^2.1.7" + "@tiptap/extension-gapcursor" "^2.1.7" + "@tiptap/extension-hard-break" "^2.1.7" + "@tiptap/extension-heading" "^2.1.7" + "@tiptap/extension-history" "^2.1.7" + "@tiptap/extension-horizontal-rule" "^2.1.7" + "@tiptap/extension-italic" "^2.1.7" + "@tiptap/extension-list-item" "^2.1.7" + "@tiptap/extension-ordered-list" "^2.1.7" + "@tiptap/extension-paragraph" "^2.1.7" + "@tiptap/extension-strike" "^2.1.7" + "@tiptap/extension-text" "^2.1.7" + +"@tiptap/suggestion@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/suggestion/-/suggestion-2.1.7.tgz#ac88deef2ade8d836ca9084c276cc9d64c6e604a" + integrity sha512-FKlXFMWf9rCnNJQsUfeX6WpS2VUs2O98ENkyhfV8ehCB7X5+57mkkxJxl/88SMbjZL+FbWPBKLaiOvsXfIUoww== + +"@tiptap/vue-3@^2.0.3": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@tiptap/vue-3/-/vue-3-2.1.7.tgz#9614045dab75fe6ca7a1ae33a98df6bc09f4fa6d" + integrity sha512-JJRXWKLJ8mopb0uZV4JXyOW6vKQnarYoCj0hsy9ZT2LhSuLlPXY0D40NAbFVMMbQssewUtgPUFgVZ/TusMEysQ== + dependencies: + "@tiptap/extension-bubble-menu" "^2.1.7" + "@tiptap/extension-floating-menu" "^2.1.7" + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/estree@1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + +"@types/estree@^1.0.0": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8" + integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== + +"@types/node@>=12.12.47", "@types/node@>=13.7.0": + version "20.11.20" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.20.tgz#f0a2aee575215149a62784210ad88b3a34843659" + integrity sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg== + dependencies: + undici-types "~5.26.4" + +"@types/object.omit@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/object.omit/-/object.omit-3.0.0.tgz#0d31e1208eac8fe2ad5c9499a1016a8273bbfafc" + integrity sha512-I27IoPpH250TUzc9FzXd0P1BV/BMJuzqD3jOz98ehf9dQqGkxlq+hO1bIqZGWqCg5bVOy0g4AUVJtnxe0klDmw== + +"@types/object.pick@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/object.pick/-/object.pick-1.3.2.tgz#9eb28118240ad8f658b9c9c6caf35359fdb37150" + integrity sha512-sn7L+qQ6RLPdXRoiaE7bZ/Ek+o4uICma/lBFPyJEKDTPTBP1W8u0c4baj3EiS4DiqLs+Hk+KUGvMVJtAw3ePJg== + +"@types/resolve@1.20.2": + version "1.20.2" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" + integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== + +"@types/throttle-debounce@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz#1c3df624bfc4b62f992d3012b84c56d41eab3776" + integrity sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ== + +"@types/trusted-types@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" + integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== + +"@types/web-bluetooth@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.18.tgz#74bd1c8fd3a2058cb6fc76b188fcded50a83d866" + integrity sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw== + +"@types/web-bluetooth@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" + integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== + +"@vitejs/plugin-vue@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz#8ae96573236cdb12de6850a6d929b5537ec85390" + integrity sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg== + +"@vue/compiler-core@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz#b0ae6c4347f60c03e849a05d34e5bf747c9bda05" + integrity sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q== + dependencies: + "@babel/parser" "^7.25.3" + "@vue/shared" "3.5.13" + entities "^4.5.0" + estree-walker "^2.0.2" + source-map-js "^1.2.0" + +"@vue/compiler-dom@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz#bb1b8758dbc542b3658dda973b98a1c9311a8a58" + integrity sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA== + dependencies: + "@vue/compiler-core" "3.5.13" + "@vue/shared" "3.5.13" + +"@vue/compiler-sfc@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz#461f8bd343b5c06fac4189c4fef8af32dea82b46" + integrity sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ== + dependencies: + "@babel/parser" "^7.25.3" + "@vue/compiler-core" "3.5.13" + "@vue/compiler-dom" "3.5.13" + "@vue/compiler-ssr" "3.5.13" + "@vue/shared" "3.5.13" + estree-walker "^2.0.2" + magic-string "^0.30.11" + postcss "^8.4.48" + source-map-js "^1.2.0" + +"@vue/compiler-ssr@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz#e771adcca6d3d000f91a4277c972a996d07f43ba" + integrity sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA== + dependencies: + "@vue/compiler-dom" "3.5.13" + "@vue/shared" "3.5.13" + +"@vue/devtools-api@^6.6.4": + version "6.6.4" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz#cbe97fe0162b365edc1dba80e173f90492535343" + integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g== + +"@vue/reactivity@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.13.tgz#b41ff2bb865e093899a22219f5b25f97b6fe155f" + integrity sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg== + dependencies: + "@vue/shared" "3.5.13" + +"@vue/runtime-core@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.13.tgz#1fafa4bf0b97af0ebdd9dbfe98cd630da363a455" + integrity sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw== + dependencies: + "@vue/reactivity" "3.5.13" + "@vue/shared" "3.5.13" + +"@vue/runtime-dom@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz#610fc795de9246300e8ae8865930d534e1246215" + integrity sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog== + dependencies: + "@vue/reactivity" "3.5.13" + "@vue/runtime-core" "3.5.13" + "@vue/shared" "3.5.13" + csstype "^3.1.3" + +"@vue/server-renderer@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.13.tgz#429ead62ee51de789646c22efe908e489aad46f7" + integrity sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA== + dependencies: + "@vue/compiler-ssr" "3.5.13" + "@vue/shared" "3.5.13" + +"@vue/shared@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.13.tgz#87b309a6379c22b926e696893237826f64339b6f" + integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ== + +"@vueuse/core@^10.4.1": + version "10.5.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.5.0.tgz#04d1e6d26592bb997bb755a4830ea7583c3e8612" + integrity sha512-z/tI2eSvxwLRjOhDm0h/SXAjNm8N5ld6/SC/JQs6o6kpJ6Ya50LnEL8g5hoYu005i28L0zqB5L5yAl8Jl26K3A== + dependencies: + "@types/web-bluetooth" "^0.0.18" + "@vueuse/metadata" "10.5.0" + "@vueuse/shared" "10.5.0" + vue-demi ">=0.14.6" + +"@vueuse/core@^10.5.0": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.10.0.tgz#05a98d3c5674762455a2c552c915d461d83e6490" + integrity sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw== + dependencies: + "@types/web-bluetooth" "^0.0.20" + "@vueuse/metadata" "10.10.0" + "@vueuse/shared" "10.10.0" + vue-demi ">=0.14.7" + +"@vueuse/metadata@10.10.0": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.10.0.tgz#53e61e9380670e342cbe6e03d852f3319308cb5b" + integrity sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug== + +"@vueuse/metadata@10.5.0": + version "10.5.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.5.0.tgz#7501a88cf5cbf7a515a03f0b8bbe3cecf30cad11" + integrity sha512-fEbElR+MaIYyCkeM0SzWkdoMtOpIwO72x8WsZHRE7IggiOlILttqttM69AS13nrDxosnDBYdyy3C5mR1LCxHsw== + +"@vueuse/shared@10.10.0", "@vueuse/shared@^10.5.0": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.10.0.tgz#93f7c2210151ff43c2c7677963f7aa3aef5d9896" + integrity sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og== + dependencies: + vue-demi ">=0.14.7" + +"@vueuse/shared@10.5.0": + version "10.5.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.5.0.tgz#b3ac8c190a5dae41db5e1b60fe304a9b4247393c" + integrity sha512-18iyxbbHYLst9MqU1X1QNdMHIjks6wC7XTVf0KNOv5es/Ms6gjVFCAAWTVP2JStuGqydg3DT+ExpFORUEi9yhg== + dependencies: + vue-demi ">=0.14.6" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^8.8.0: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +acorn@^8.8.2: + version "8.14.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb" + integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.6.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" + integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-hidden@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.4.tgz#b78e383fdbc04d05762c78b4a25a501e736c4522" + integrity sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A== + dependencies: + tslib "^2.0.0" + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +autoprefixer@^10.4.19: + version "10.4.21" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d" + integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ== + dependencies: + browserslist "^4.24.4" + caniuse-lite "^1.0.30001702" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.1.1" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +babel-merge@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/babel-merge/-/babel-merge-3.0.0.tgz#9bd368d48116dab18b8f3e8022835479d80f3b50" + integrity sha512-eBOBtHnzt9xvnjpYNI5HmaPp/b2vMveE5XggzqHnQeHJ8mFIBrBv6WZEVIj5jJ2uwTItkqKo9gWzEEcBxEq0yw== + dependencies: + deepmerge "^2.2.1" + object.omit "^3.0.0" + +babel-plugin-polyfill-corejs2@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" + integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.3" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" + integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.3" + core-js-compat "^3.25.1" + +babel-plugin-polyfill-regenerator@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" + integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.3" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browserslist@^4.21.3, browserslist@^4.21.5: + version "4.21.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" + integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== + dependencies: + caniuse-lite "^1.0.30001449" + electron-to-chromium "^1.4.284" + node-releases "^2.0.8" + update-browserslist-db "^1.0.10" + +browserslist@^4.24.0, browserslist@^4.24.4: + version "4.24.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" + integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== + dependencies: + caniuse-lite "^1.0.30001688" + electron-to-chromium "^1.5.73" + node-releases "^2.0.19" + update-browserslist-db "^1.1.1" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +caniuse-lite@^1.0.30001449: + version "1.0.30001488" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001488.tgz#d19d7b6e913afae3e98f023db97c19e9ddc5e91f" + integrity sha512-NORIQuuL4xGpIy6iCCQGN4iFjlBXtfKWIenlUuyZJumLRIindLb7wXM+GO8erEhb7vXfcnf4BAg2PrSDN5TNLQ== + +caniuse-lite@^1.0.30001688, caniuse-lite@^1.0.30001702: + version "1.0.30001707" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz#c5e104d199e6f4355a898fcd995a066c7eb9bf41" + integrity sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw== + +case-anything@^2.1.10: + version "2.1.11" + resolved "https://registry.yarnpkg.com/case-anything/-/case-anything-2.1.11.tgz#39a00ff733f26e48729f5c6c7f23763ac8fa0467" + integrity sha512-uzKDXzdM/x914cepWPzElU3y50NRKYhjkO4ittOHLq+rF6M0AgRLF/+yPR1tvwLNAh8WHEPTfhuciZGPfX+oyg== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +classnames@^2.2.5: + version "2.3.2" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^9.0.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== + +common-tags@^1.8.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +core-js-compat@^3.25.1: + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.2.tgz#83f136e375babdb8c80ad3c22d67c69098c1dd8b" + integrity sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA== + dependencies: + browserslist "^4.21.5" + +core-js@^3.1.3: + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.30.2.tgz#6528abfda65e5ad728143ea23f7a14f0dcf503fc" + integrity sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg== + +crelt@^1.0.0: + version "1.0.6" + resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.6.tgz#7cc898ea74e190fb6ef9dae57f8f81cf7302df72" + integrity sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g== + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csstype@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +dash-get@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/dash-get/-/dash-get-1.0.2.tgz#4c9e9ad5ef04c4bf9d3c9a451f6f7997298dcc7c" + integrity sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ== + +dayjs@^1.11.11, dayjs@^1.11.13: + version "1.11.13" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== + +debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^4.3.1, debug@^4.3.6: + version "4.4.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== + dependencies: + ms "^2.1.3" + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" + integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== + +deepmerge@^4.2.2, deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +defu@^6.1.4: + version "6.1.4" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" + integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ejs@^3.1.6: + version "3.1.9" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" + integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== + dependencies: + jake "^10.8.5" + +electron-to-chromium@^1.4.284: + version "1.4.402" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.402.tgz#9aa7bbb63081513127870af6d22f829344c5ba57" + integrity sha512-gWYvJSkohOiBE6ecVYXkrDgNaUjo47QEKK0kQzmWyhkH+yoYiG44bwuicTGNSIQRG3WDMsWVZJLRnJnLNkbWvA== + +electron-to-chromium@^1.5.73: + version "1.5.128" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.128.tgz#8ea537b369c32527b3cc47df7973bffe5d3c2980" + integrity sha512-bo1A4HH/NS522Ws0QNFIzyPcyUUNV/yyy70Ho1xqfGYzPUme2F/xr4tlEOuM6/A538U1vDA7a4XfCd1CKRegKQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +engine.io-client@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.4.0.tgz#88cd3082609ca86d7d3c12f0e746d12db4f47c91" + integrity sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + engine.io-parser "~5.0.3" + ws "~8.11.0" + xmlhttprequest-ssl "~2.0.0" + +engine.io-parser@~5.0.3: + version "5.0.6" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.6.tgz#7811244af173e157295dec9b2718dfe42a64ef45" + integrity sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw== + +entities@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +entities@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" + integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.21.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== + dependencies: + array-buffer-byte-length "^1.0.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.0" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== + optionalDependencies: + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-plugin-vue@^9.11.0: + version "9.13.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.13.0.tgz#adb21448e65a7c1502af66103ff5f215632c5319" + integrity sha512-aBz9A8WB4wmpnVv0pYUt86cmH9EkcwWzgEwecBxMoRNhQjTL5i4sqadnwShv/hOdr8Hbl8XANGV7dtX9UQIAyA== + dependencies: + "@eslint-community/eslint-utils" "^4.3.0" + natural-compare "^1.4.0" + nth-check "^2.0.1" + postcss-selector-parser "^6.0.9" + semver "^7.3.5" + vue-eslint-parser "^9.3.0" + xml-name-validator "^4.0.0" + +eslint-scope@^7.1.1, eslint-scope@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== + +eslint@^8.39.0: + version "8.41.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.41.0.tgz#3062ca73363b4714b16dbc1e60f035e6134b6f1c" + integrity sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.3" + "@eslint/js" "8.41.0" + "@humanwhocodes/config-array" "^0.11.8" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.0" + eslint-visitor-keys "^3.4.1" + espree "^9.5.2" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + +espree@^9.3.1, espree@^9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" + integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esquery@^1.4.0, esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +faye-websocket@0.11.4: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fdir@^6.4.3: + version "6.4.3" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.3.tgz#011cdacf837eca9b811c89dbb902df714273db72" + integrity sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw== + +feather-icons@^4.28.0: + version "4.29.0" + resolved "https://registry.yarnpkg.com/feather-icons/-/feather-icons-4.29.0.tgz#4e40e3cbb7bf359ffbbf700edbebdde4e4a74ab6" + integrity sha512-Y7VqN9FYb8KdaSF0qD1081HCkm0v4Eq/fpfQYQnubpqi0hXx14k+gF9iqtRys1SIcTEi97xDi/fmsPFZ8xo0GQ== + dependencies: + classnames "^2.2.5" + core-js "^3.1.3" + +feather-icons@^4.29.1: + version "4.29.2" + resolved "https://registry.yarnpkg.com/feather-icons/-/feather-icons-4.29.2.tgz#b03a47588a1c400f215e884504db1c18860d89f8" + integrity sha512-0TaCFTnBTVCz6U+baY2UJNKne5ifGh7sMG4ZC2LoBWCZdIyPa+y6UiR4lEYGws1JOFWdee8KAsAIvu0VcXqiqA== + dependencies: + classnames "^2.2.5" + core-js "^3.1.3" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +firebase@^10.8.0: + version "10.8.0" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-10.8.0.tgz#764fa98b5699ca40dfb604df21747b836a101fa3" + integrity sha512-UJpC24vw8JFuHEOQyArBGKTUd7+kohLISCzHyn0M/prP0KOTx2io1eyLliEid330QqnWI7FOlPxoU97qecCSfQ== + dependencies: + "@firebase/analytics" "0.10.1" + "@firebase/analytics-compat" "0.2.7" + "@firebase/app" "0.9.27" + "@firebase/app-check" "0.8.2" + "@firebase/app-check-compat" "0.3.9" + "@firebase/app-compat" "0.2.27" + "@firebase/app-types" "0.9.0" + "@firebase/auth" "1.6.0" + "@firebase/auth-compat" "0.5.2" + "@firebase/database" "1.0.3" + "@firebase/database-compat" "1.0.3" + "@firebase/firestore" "4.4.2" + "@firebase/firestore-compat" "0.3.25" + "@firebase/functions" "0.11.1" + "@firebase/functions-compat" "0.3.7" + "@firebase/installations" "0.6.5" + "@firebase/installations-compat" "0.2.5" + "@firebase/messaging" "0.12.6" + "@firebase/messaging-compat" "0.2.6" + "@firebase/performance" "0.6.5" + "@firebase/performance-compat" "0.2.5" + "@firebase/remote-config" "0.4.5" + "@firebase/remote-config-compat" "0.2.5" + "@firebase/storage" "0.12.1" + "@firebase/storage-compat" "0.3.4" + "@firebase/util" "1.9.4" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + dependencies: + cross-spawn "^7.0.6" + signal-exit "^4.0.1" + +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +frappe-ui@0.1.105: + version "0.1.105" + resolved "https://registry.yarnpkg.com/frappe-ui/-/frappe-ui-0.1.105.tgz#3bdf3c458ba27f27ff2f2a28cf7eb6f9ed872367" + integrity sha512-9bZ/hj/HhQ9vp7DxE8aOKS8HqwETZrKT3IhSzjpYOk21efK8QwdbQ9sp0t4m3UII+HaUTSOTHnFzF7y9EhRZxg== + dependencies: + "@headlessui/vue" "^1.7.14" + "@popperjs/core" "^2.11.2" + "@tailwindcss/forms" "^0.5.3" + "@tailwindcss/typography" "^0.5.0" + "@tiptap/extension-color" "^2.0.3" + "@tiptap/extension-highlight" "^2.0.3" + "@tiptap/extension-image" "^2.0.3" + "@tiptap/extension-link" "^2.0.3" + "@tiptap/extension-mention" "^2.0.3" + "@tiptap/extension-placeholder" "^2.0.3" + "@tiptap/extension-table" "^2.0.3" + "@tiptap/extension-table-cell" "^2.0.3" + "@tiptap/extension-table-header" "^2.0.3" + "@tiptap/extension-table-row" "^2.0.3" + "@tiptap/extension-text-align" "^2.0.3" + "@tiptap/extension-text-style" "^2.0.3" + "@tiptap/extension-typography" "^2.0.3" + "@tiptap/pm" "^2.0.3" + "@tiptap/starter-kit" "^2.0.3" + "@tiptap/suggestion" "^2.0.3" + "@tiptap/vue-3" "^2.0.3" + "@vueuse/core" "^10.4.1" + dayjs "^1.11.13" + feather-icons "^4.28.0" + idb-keyval "^6.2.0" + ora "5.4.1" + prettier "^3.3.2" + radix-vue "^1.5.3" + showdown "^2.1.0" + socket.io-client "^4.5.1" + tippy.js "^6.3.7" + typescript "^5.0.2" + +fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2, functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^10.3.10: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +idb-keyval@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.2.1.tgz#94516d625346d16f56f3b33855da11bfded2db33" + integrity sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg== + +idb@7.1.1, idb@^7.0.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b" + integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ== + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.3, internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +ionicons@7.1.0, ionicons@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/ionicons/-/ionicons-7.1.0.tgz#25daa91345acedcb0f4fb7da670f5aff2e1f266a" + integrity sha512-iE4GuEdEHARJpp0sWL7WJZCzNCf5VxpNRhAjW0fLnZPnNL5qZOJUcfup2Z2Ty7Jk8Q5hacrHfGEB1lCwOdXqGg== + dependencies: + "@stencil/core" "^2.18.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.11.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + +is-core-module@^2.16.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== + dependencies: + hasown "^2.0.2" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extendable@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jake@^10.8.5: + version "10.8.6" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.6.tgz#227a96786a1e035214e0ba84b482d6223d41ef04" + integrity sha512-G43Ub9IYEFfu72sua6rzooi8V8Gz2lkfk48rW20vEWCGizeaEPlKB1Kh8JIA84yQbiAEfqlPmSpGgCKKxH3rDA== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +jiti@^1.21.6: + version "1.21.7" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.7.tgz#9dd81043424a3d28458b193d965f0d18a2300ba9" + integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^2.2.0, json5@^2.2.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonpointer@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" + integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lilconfig@^3.0.0, lilconfig@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" + integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +linkify-it@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-4.0.1.tgz#01f1d5e508190d06669982ba31a7d9f56a5751ec" + integrity sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw== + dependencies: + uc.micro "^1.0.1" + +linkifyjs@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-4.1.1.tgz#73d427e3bbaaf4ca8e71c589ad4ffda11a9a5fde" + integrity sha512-zFN/CTVmbcVef+WaDXT63dNzzkfRBKT1j464NJQkV7iSgJU0sLBus9W0HBwnXK13/hf168pbrx/V/bjEHOXNHA== + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.castarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" + integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + +lodash@^4.17.20, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +long@^5.0.0: + version "5.2.3" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" + integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== + +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.25.0, magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +magic-string@^0.30.11: + version "0.30.17" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" + integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + +make-error@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +markdown-it@^13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-13.0.1.tgz#c6ecc431cacf1a5da531423fc6a42807814af430" + integrity sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q== + dependencies: + argparse "^2.0.1" + entities "~3.0.1" + linkify-it "^4.0.1" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mini-svg-data-uri@^1.2.3: + version "1.4.4" + resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" + integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== + +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +nanoid@^3.3.8: + version "3.3.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== + +nanoid@^5.0.6: + version "5.0.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-5.0.7.tgz#6452e8c5a816861fd9d2b898399f7e5fd6944cc6" + integrity sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +node-releases@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== + +node-releases@^2.0.8: + version "2.0.11" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.11.tgz#59d7cef999d13f908e43b5a70001cf3129542f0f" + integrity sha512-+M0PwXeU80kRohZ3aT4J/OnR+l9/KD2nVLNNoRgFtnf+umQVFdGBAO2N8+nCnEi0xlh/Wk3zOGC+vNNx+uM79Q== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +object-assign@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.omit@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-3.0.0.tgz#0e3edc2fce2ba54df5577ff529f6d97bd8a522af" + integrity sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ== + dependencies: + is-extendable "^1.0.0" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +ora@5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +orderedmap@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/orderedmap/-/orderedmap-2.1.1.tgz#61481269c44031c449915497bf5a4ad273c512d2" + integrity sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g== + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pirates@^4.0.1: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + +postcss-load-config@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + +postcss-nested@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131" + integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== + dependencies: + postcss-selector-parser "^6.1.1" + +postcss-selector-parser@6.0.10: + version "6.0.10" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-selector-parser@^6.0.9: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-selector-parser@^6.1.1, postcss-selector-parser@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.4.43, postcss@^8.4.47, postcss@^8.4.48: + version "8.5.3" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" + integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== + dependencies: + nanoid "^3.3.8" + picocolors "^1.1.1" + source-map-js "^1.2.1" + +postcss@^8.4.5: + version "8.4.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab" + integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier@^2.8.8: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +prettier@^3.3.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5" + integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw== + +pretty-bytes@^5.3.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-bytes@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-6.1.1.tgz#38cd6bb46f47afbf667c202cfc754bffd2016a3b" + integrity sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ== + +prosemirror-changeset@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz#dae94b63aec618fac7bb9061648e6e2a79988383" + integrity sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ== + dependencies: + prosemirror-transform "^1.0.0" + +prosemirror-collab@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz#0e8c91e76e009b53457eb3b3051fb68dad029a33" + integrity sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ== + dependencies: + prosemirror-state "^1.0.0" + +prosemirror-commands@^1.0.0, prosemirror-commands@^1.3.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.5.2.tgz#e94aeea52286f658cd984270de9b4c3fff580852" + integrity sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ== + dependencies: + prosemirror-model "^1.0.0" + prosemirror-state "^1.0.0" + prosemirror-transform "^1.0.0" + +prosemirror-dropcursor@^1.5.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz#49b9fb2f583e0d0f4021ff87db825faa2be2832d" + integrity sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw== + dependencies: + prosemirror-state "^1.0.0" + prosemirror-transform "^1.1.0" + prosemirror-view "^1.1.0" + +prosemirror-gapcursor@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz#5fa336b83789c6199a7341c9493587e249215cb4" + integrity sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ== + dependencies: + prosemirror-keymap "^1.0.0" + prosemirror-model "^1.0.0" + prosemirror-state "^1.0.0" + prosemirror-view "^1.0.0" + +prosemirror-history@^1.0.0, prosemirror-history@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.3.2.tgz#ce6ad7ab9db83e761aee716f3040d74738311b15" + integrity sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g== + dependencies: + prosemirror-state "^1.2.2" + prosemirror-transform "^1.0.0" + prosemirror-view "^1.31.0" + rope-sequence "^1.3.0" + +prosemirror-inputrules@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.2.1.tgz#8faf3d78c16150aedac71d326a3e3947417ce557" + integrity sha512-3LrWJX1+ULRh5SZvbIQlwZafOXqp1XuV21MGBu/i5xsztd+9VD15x6OtN6mdqSFI7/8Y77gYUbQ6vwwJ4mr6QQ== + dependencies: + prosemirror-state "^1.0.0" + prosemirror-transform "^1.0.0" + +prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz#14a54763a29c7b2704f561088ccf3384d14eb77e" + integrity sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ== + dependencies: + prosemirror-state "^1.0.0" + w3c-keyname "^2.2.0" + +prosemirror-markdown@^1.10.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.11.0.tgz#75f2d6f14655762b4b8a247436b87ed81e22c7ee" + integrity sha512-yP9mZqPRstjZhhf3yykCQNE3AijxARrHe4e7esV9A+gp4cnGOH4QvrKYPpXLHspNWyvJJ+0URH+iIvV5qP1I2Q== + dependencies: + markdown-it "^13.0.1" + prosemirror-model "^1.0.0" + +prosemirror-menu@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/prosemirror-menu/-/prosemirror-menu-1.2.2.tgz#c545a2de0b8cb79babc07682b1d93de0f273aa33" + integrity sha512-437HIWTq4F9cTX+kPfqZWWm+luJm95Aut/mLUy+9OMrOml0bmWDS26ceC6SNfb2/S94et1sZ186vLO7pDHzxSw== + dependencies: + crelt "^1.0.0" + prosemirror-commands "^1.0.0" + prosemirror-history "^1.0.0" + prosemirror-state "^1.0.0" + +prosemirror-model@^1.0.0, prosemirror-model@^1.16.0, prosemirror-model@^1.18.1, prosemirror-model@^1.19.0, prosemirror-model@^1.8.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.19.1.tgz#7e10cd9584a0a55c87ffbecc68aa9d105b9a0f53" + integrity sha512-RpV0fZfy74DEO9GPRbGcG6xN33KuqEvlLE2V0e5CXUGs3xkZsiJfx1dcYPU57+606NVYCaDN1riFXdXBQRaRcg== + dependencies: + orderedmap "^2.0.0" + +prosemirror-schema-basic@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.2.tgz#6695f5175e4628aab179bf62e5568628b9cfe6c7" + integrity sha512-/dT4JFEGyO7QnNTe9UaKUhjDXbTNkiWTq/N4VpKaF79bBjSExVV2NXmJpcM7z/gD7mbqNjxbmWW5nf1iNSSGnw== + dependencies: + prosemirror-model "^1.19.0" + +prosemirror-schema-list@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.2.3.tgz#12e3d70cb17780980a3c28588ed7c888121d5e8d" + integrity sha512-HD8yjDOusz7JB3oBFCaMOpEN9Z9DZttLr6tcASjnvKMc0qTyX5xgAN8YiMFFEcwyhF7WZrZ2YQkAwzsn8ICVbQ== + dependencies: + prosemirror-model "^1.0.0" + prosemirror-state "^1.0.0" + prosemirror-transform "^1.0.0" + +prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.4.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.4.3.tgz#94aecf3ffd54ec37e87aa7179d13508da181a080" + integrity sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q== + dependencies: + prosemirror-model "^1.0.0" + prosemirror-transform "^1.0.0" + prosemirror-view "^1.27.0" + +prosemirror-tables@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.3.2.tgz#ca208c6a55d510af14b652d23e800e00ba6bebd4" + integrity sha512-/9JTeN6s58Zq66HXaxP6uf8PAmc7XXKZFPlOGVtLvxEd6xBP6WtzaJB9wBjiGUzwbdhdMEy7V62yuHqk/3VrnQ== + dependencies: + prosemirror-keymap "^1.1.2" + prosemirror-model "^1.8.1" + prosemirror-state "^1.3.1" + prosemirror-transform "^1.2.1" + prosemirror-view "^1.13.3" + +prosemirror-trailing-node@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.4.tgz#60febdeb947550ee93a224f2e56dbd5cb2cdd607" + integrity sha512-0Yl9w7IdHkaCdqR+NE3FOucePME4OmiGcybnF1iasarEILP5U8+4xTnl53yafULjmwcg1SrSG65Hg7Zk2H2v3g== + dependencies: + "@babel/runtime" "^7.21.0" + "@remirror/core-constants" "^2.0.1" + "@remirror/core-helpers" "^2.0.2" + escape-string-regexp "^4.0.0" + +prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1, prosemirror-transform@^1.7.0: + version "1.7.2" + resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.7.2.tgz#f3e57d8424afa6ab7c2b2319cc0ac58e75f7160b" + integrity sha512-b94lVUdA9NyaYRb2WuGSgb5YANiITa05dtew9eSK+KkYu64BCnU27WhJPE95gAWAnhV57CM3FabWXM23gri8Kg== + dependencies: + prosemirror-model "^1.0.0" + +prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.27.0, prosemirror-view@^1.28.2, prosemirror-view@^1.31.0: + version "1.31.3" + resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.31.3.tgz#cfe171c4e50a577526d0235d9ec757cdddf6017d" + integrity sha512-UYDa8WxRFZm0xQLXiPJUVTl6H08Fn0IUVDootA7ZlQwzooqVWnBOXLovJyyTKgws1nprfsPhhlvWgt2jo4ZA6g== + dependencies: + prosemirror-model "^1.16.0" + prosemirror-state "^1.0.0" + prosemirror-transform "^1.1.0" + +protobufjs@^7.2.4: + version "7.2.6" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215" + integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + +punycode@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +radix-vue@^1.5.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/radix-vue/-/radix-vue-1.8.3.tgz#d312bb5d76d4cbb8ae2a0ce4a3edcb423d48d705" + integrity sha512-WPgvEz0i5XKjwahhffD2QPLiOTthTfecoVjwq4l3i3EWBX2tUp4Vw3n3OLGf3S18FN/WfEgD3GIxYfsrnDutqw== + dependencies: + "@floating-ui/dom" "^1.6.5" + "@floating-ui/vue" "^1.0.6" + "@internationalized/date" "^3.5.4" + "@internationalized/number" "^3.5.3" + "@tanstack/vue-virtual" "^3.5.0" + "@vueuse/core" "^10.5.0" + "@vueuse/shared" "^10.5.0" + aria-hidden "^1.2.3" + defu "^6.1.4" + fast-deep-equal "^3.1.3" + nanoid "^5.0.6" + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + +readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +regenerate-unicode-properties@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regenerator-transform@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" + integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexp.prototype.flags@^1.4.3: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.1.7, resolve@^1.14.2: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^1.22.1, resolve@^1.22.8: + version "1.22.10" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" + integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== + dependencies: + is-core-module "^2.16.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rollup@^2.43.1: + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + optionalDependencies: + fsevents "~2.3.2" + +rollup@^4.20.0: + version "4.37.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.37.0.tgz#e4172f8bdb6ea7df08a1b0acf99abeccb2250378" + integrity sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg== + dependencies: + "@types/estree" "1.0.6" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.37.0" + "@rollup/rollup-android-arm64" "4.37.0" + "@rollup/rollup-darwin-arm64" "4.37.0" + "@rollup/rollup-darwin-x64" "4.37.0" + "@rollup/rollup-freebsd-arm64" "4.37.0" + "@rollup/rollup-freebsd-x64" "4.37.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.37.0" + "@rollup/rollup-linux-arm-musleabihf" "4.37.0" + "@rollup/rollup-linux-arm64-gnu" "4.37.0" + "@rollup/rollup-linux-arm64-musl" "4.37.0" + "@rollup/rollup-linux-loongarch64-gnu" "4.37.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.37.0" + "@rollup/rollup-linux-riscv64-gnu" "4.37.0" + "@rollup/rollup-linux-riscv64-musl" "4.37.0" + "@rollup/rollup-linux-s390x-gnu" "4.37.0" + "@rollup/rollup-linux-x64-gnu" "4.37.0" + "@rollup/rollup-linux-x64-musl" "4.37.0" + "@rollup/rollup-win32-arm64-msvc" "4.37.0" + "@rollup/rollup-win32-ia32-msvc" "4.37.0" + "@rollup/rollup-win32-x64-msvc" "4.37.0" + fsevents "~2.3.2" + +rope-sequence@^1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.4.tgz#df85711aaecd32f1e756f76e43a415171235d425" + integrity sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.5, semver@^7.3.6: + version "7.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" + integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== + dependencies: + lru-cache "^6.0.0" + +serialize-javascript@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +showdown@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/showdown/-/showdown-2.1.0.tgz#1251f5ed8f773f0c0c7bfc8e6fd23581f9e545c5" + integrity sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ== + dependencies: + commander "^9.0.0" + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +smob@^1.0.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/smob/-/smob-1.5.0.tgz#85d79a1403abf128d24d3ebc1cdc5e1a9548d3ab" + integrity sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig== + +socket.io-client@^4.5.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.6.1.tgz#80d97d5eb0feca448a0fb6d69a7b222d3d547eab" + integrity sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.2" + engine.io-client "~6.4.0" + socket.io-parser "~4.2.1" + +socket.io-parser@~4.2.1: + version "4.2.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.2.tgz#1dd384019e25b7a3d374877f492ab34f2ad0d206" + integrity sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-js@^1.2.0, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string.prototype.matchall@^4.0.6: + version "4.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" + integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b" + integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +sucrase@^3.35.0: + version "3.35.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "^10.3.10" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tailwindcss@^3.4.3: + version "3.4.17" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.17.tgz#ae8406c0f96696a631c790768ff319d46d5e5a63" + integrity sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.6.0" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.3.2" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.21.6" + lilconfig "^3.1.3" + micromatch "^4.0.8" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.1.1" + postcss "^8.4.47" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.2" + postcss-nested "^6.2.0" + postcss-selector-parser "^6.1.2" + resolve "^1.22.8" + sucrase "^3.35.0" + +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +tempy@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3" + integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw== + dependencies: + is-stream "^2.0.0" + temp-dir "^2.0.0" + type-fest "^0.16.0" + unique-string "^2.0.0" + +terser@^5.17.4: + version "5.39.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.39.0.tgz#0e82033ed57b3ddf1f96708d123cca717d86ca3a" + integrity sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +throttle-debounce@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" + integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== + +tinyglobby@^0.2.0: + version "0.2.12" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.12.tgz#ac941a42e0c5773bd0b5d08f32de82e74a1a61b5" + integrity sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww== + dependencies: + fdir "^6.4.3" + picomatch "^4.0.2" + +tippy.js@^6.3.7: + version "6.3.7" + resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-6.3.7.tgz#8ccfb651d642010ed9a32ff29b0e9e19c5b8c61c" + integrity sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ== + dependencies: + "@popperjs/core" "^2.9.0" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + dependencies: + punycode "^2.1.0" + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +tslib@^2.0.0, tslib@^2.4.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + +tslib@^2.1.0: + version "2.5.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.2.tgz#1b6f07185c881557b0ffa84b111a0106989e8338" + integrity sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typescript@^5.0.2: + version "5.8.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.2.tgz#8170b3702f74b79db2e5a96207c15e65807999e4" + integrity sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ== + +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +undici@5.26.5: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.26.5.tgz#f6dc8c565e3cad8c4475b187f51a13e505092838" + integrity sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw== + dependencies: + "@fastify/busboy" "^2.0.0" + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +upath@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-browserslist-db@^1.0.10: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +update-browserslist-db@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +vite-plugin-pwa@^0.20.5: + version "0.20.5" + resolved "https://registry.yarnpkg.com/vite-plugin-pwa/-/vite-plugin-pwa-0.20.5.tgz#437dca4a9bff650dc9c84ea3d7d3ac230b5985e0" + integrity sha512-aweuI/6G6n4C5Inn0vwHumElU/UEpNuO+9iZzwPZGTCH87TeZ6YFMrEY6ZUBQdIHHlhTsbMDryFARcSuOdsz9Q== + dependencies: + debug "^4.3.6" + pretty-bytes "^6.1.1" + tinyglobby "^0.2.0" + workbox-build "^7.1.0" + workbox-window "^7.1.0" + +vite@^5.4.10: + version "5.4.15" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.15.tgz#2941547f10ebb4bf9b0fa0da863c06711eb7e5e5" + integrity sha512-6ANcZRivqL/4WtwPGTKNaosuNJr5tWiftOC7liM7G9+rMb8+oeJeyzymDu4rTN93seySBmbjSfsS3Vzr19KNtA== + dependencies: + esbuild "^0.21.3" + postcss "^8.4.43" + rollup "^4.20.0" + optionalDependencies: + fsevents "~2.3.3" + +vue-demi@>=0.13.0, vue-demi@>=0.14.7: + version "0.14.8" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.8.tgz#00335e9317b45e4a68d3528aaf58e0cec3d5640a" + integrity sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q== + +vue-demi@>=0.14.6: + version "0.14.6" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.6.tgz#dc706582851dc1cdc17a0054f4fec2eb6df74c92" + integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== + +vue-eslint-parser@^9.3.0: + version "9.3.0" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.0.tgz#775a974a0603c9a73d85fed8958ed9e814a4a816" + integrity sha512-48IxT9d0+wArT1+3wNIy0tascRoywqSUe2E1YalIC1L8jsUGe5aJQItWfRok7DVFGz3UYvzEI7n5wiTXsCMAcQ== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" + +vue-router@^4.3.2: + version "4.5.0" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.5.0.tgz#58fc5fe374e10b6018f910328f756c3dae081f14" + integrity sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w== + dependencies: + "@vue/devtools-api" "^6.6.4" + +vue@^3.5.12: + version "3.5.13" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.13.tgz#9f760a1a982b09c0c04a867903fc339c9f29ec0a" + integrity sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ== + dependencies: + "@vue/compiler-dom" "3.5.13" + "@vue/compiler-sfc" "3.5.13" + "@vue/runtime-dom" "3.5.13" + "@vue/server-renderer" "3.5.13" + "@vue/shared" "3.5.13" + +w3c-keyname@^2.2.0: + version "2.2.7" + resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.7.tgz#e29549e9ac97ac5cb2993c8222994e97922ef377" + integrity sha512-XB8aa62d4rrVfoZYQaYNy3fy+z4nrfy2ooea3/0BnBzXW0tSdZ+lRgjzBZhk0La0H6h8fVyYCxx/qkQcAIuvfg== + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +websocket-driver@>=0.5.1: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +workbox-background-sync@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz#b6340731a8d5b42b9e75a8a87c8806928e6e6303" + integrity sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg== + dependencies: + idb "^7.0.1" + workbox-core "7.3.0" + +workbox-broadcast-update@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz#bff86b91795c4b9fa46a758d1a7a151828623280" + integrity sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA== + dependencies: + workbox-core "7.3.0" + +workbox-build@^7.1.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-7.3.0.tgz#ab688f3241b32862236aeeb62b240195f1fe4b62" + integrity sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ== + dependencies: + "@apideck/better-ajv-errors" "^0.3.1" + "@babel/core" "^7.24.4" + "@babel/preset-env" "^7.11.0" + "@babel/runtime" "^7.11.2" + "@rollup/plugin-babel" "^5.2.0" + "@rollup/plugin-node-resolve" "^15.2.3" + "@rollup/plugin-replace" "^2.4.1" + "@rollup/plugin-terser" "^0.4.3" + "@surma/rollup-plugin-off-main-thread" "^2.2.3" + ajv "^8.6.0" + common-tags "^1.8.0" + fast-json-stable-stringify "^2.1.0" + fs-extra "^9.0.1" + glob "^7.1.6" + lodash "^4.17.20" + pretty-bytes "^5.3.0" + rollup "^2.43.1" + source-map "^0.8.0-beta.0" + stringify-object "^3.3.0" + strip-comments "^2.0.1" + tempy "^0.6.0" + upath "^1.2.0" + workbox-background-sync "7.3.0" + workbox-broadcast-update "7.3.0" + workbox-cacheable-response "7.3.0" + workbox-core "7.3.0" + workbox-expiration "7.3.0" + workbox-google-analytics "7.3.0" + workbox-navigation-preload "7.3.0" + workbox-precaching "7.3.0" + workbox-range-requests "7.3.0" + workbox-recipes "7.3.0" + workbox-routing "7.3.0" + workbox-strategies "7.3.0" + workbox-streams "7.3.0" + workbox-sw "7.3.0" + workbox-window "7.3.0" + +workbox-cacheable-response@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz#557b0f5fdfceb22fe243e3f19807c76a0ae646e3" + integrity sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA== + dependencies: + workbox-core "7.3.0" + +workbox-core@7.0.0, workbox-core@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-7.0.0.tgz#dec114ec923cc2adc967dd9be1b8a0bed50a3545" + integrity sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ== + +workbox-core@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-7.3.0.tgz#f24fb92041a0b7482fe2dd856544aaa9fa105248" + integrity sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw== + +workbox-expiration@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-7.3.0.tgz#2c1ee1fdada34aa7e7474f706d5429c914bd10d2" + integrity sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ== + dependencies: + idb "^7.0.1" + workbox-core "7.3.0" + +workbox-google-analytics@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz#3c4d4956c0a9800dfb587d82ec8bc0f9cf963791" + integrity sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg== + dependencies: + workbox-background-sync "7.3.0" + workbox-core "7.3.0" + workbox-routing "7.3.0" + workbox-strategies "7.3.0" + +workbox-navigation-preload@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz#9d54693b9179d5175e66af5ef9a92d1b7cf3e605" + integrity sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg== + dependencies: + workbox-core "7.3.0" + +workbox-precaching@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-7.3.0.tgz#a84663d69efdb334f25c04dba0a72ed3391c4da8" + integrity sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw== + dependencies: + workbox-core "7.3.0" + workbox-routing "7.3.0" + workbox-strategies "7.3.0" + +workbox-precaching@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-7.0.0.tgz#3979ba8033aadf3144b70e9fe631d870d5fbaa03" + integrity sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA== + dependencies: + workbox-core "7.0.0" + workbox-routing "7.0.0" + workbox-strategies "7.0.0" + +workbox-range-requests@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz#1b3d5c235a0ff5271418c3a7183281dc131ccd0d" + integrity sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ== + dependencies: + workbox-core "7.3.0" + +workbox-recipes@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-7.3.0.tgz#fa407101e8ce52850dfba8e17a5afccb733a3942" + integrity sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg== + dependencies: + workbox-cacheable-response "7.3.0" + workbox-core "7.3.0" + workbox-expiration "7.3.0" + workbox-precaching "7.3.0" + workbox-routing "7.3.0" + workbox-strategies "7.3.0" + +workbox-routing@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-7.0.0.tgz#6668438a06554f60645aedc77244a4fe3a91e302" + integrity sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA== + dependencies: + workbox-core "7.0.0" + +workbox-routing@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-7.3.0.tgz#fc86296bc1155c112ee2c16b3180853586c30208" + integrity sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A== + dependencies: + workbox-core "7.3.0" + +workbox-strategies@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-7.0.0.tgz#dcba32b3f3074476019049cc490fe1a60ea73382" + integrity sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA== + dependencies: + workbox-core "7.0.0" + +workbox-strategies@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-7.3.0.tgz#bb1530f205806895aacdea3639e6cf6bfb3a6cb0" + integrity sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg== + dependencies: + workbox-core "7.3.0" + +workbox-streams@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-7.3.0.tgz#a4c0ae51b66121a2aa6f89229e237aca6dc27eb5" + integrity sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw== + dependencies: + workbox-core "7.3.0" + workbox-routing "7.3.0" + +workbox-sw@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-7.3.0.tgz#39215017e868d7cfe6835b2961f55369d89b3e73" + integrity sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA== + +workbox-window@7.3.0, workbox-window@^7.1.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-7.3.0.tgz#e71bb0b4d880d2295c96bf1ccadb6cea0df51c07" + integrity sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA== + dependencies: + "@types/trusted-types" "^2.0.2" + workbox-core "7.3.0" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@~8.11.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" + integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== + +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== + +xmlhttprequest-ssl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" + integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^2.3.4: + version "2.7.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.0.tgz#aef9bb617a64c937a9a748803786ad8d3ffe1e98" + integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/apps/erpnext/src/hrms/hrms.png b/apps/erpnext/src/hrms/hrms.png new file mode 100644 index 0000000000000000000000000000000000000000..5564fe66a33ae1de9738c7cf8c7e0ea0cda21e22 GIT binary patch literal 1180791 zcmeFYbyS>9vo8w4-95Ow2WJTGPVm6s5F7#|Aq?(r!GddW2@)WKTW}Hx5?n)Yf(|wE{r@N}UySkq4Usu%=qpPighfR%*goK2rrmCoqgoJ60 zgoN&ZiH@i_nw2v{Lc(=(R#4DYQ&3>g_4aUZcC|-BQjN(l#xOA$CC@icO-`PEgsF?n}@5NTv4&HxSA=}t!%N8JI>}L4voy-^6OyaSZ;D~ z9c1i!@_M2hG?{m+(;?h(jZ}CW!kw~RWQMdIhf|8R(Hk%5e1JP^5R61!h=fu&xHHO9 z)86icWPb|tf8~#2rqJ=TX8msO9z;g_S#Aggi3-Du&1&dN)QvdOjby$eV(@xJZF%|( zdg~H|hw8v!!gt)Bt;8p~>zb^x($;C|J&`v;NG^ta#yNPwLo$_)q~}eHNkfj&mV<#Q zlt^0a(I^4(eDpR-zqD^}(@5KiZKRy|Lnwz(va;8_9N-B6pXh=w6LfuJUFeFuiY#f{ zUKP-SvfH)P0(SaKAPR;NM}n&EHo=PkZh!ssM+S_?oFTrPNL7(`a4{z$s9x^yWu zEh-7Ggr3yUPe*;vn8J$*{Z6?l;PqUyMZF-K6?;n#*B?jH$goE(^gGg~(j!x+;xUIb zU;WTA3bO)M`)0#CAB%%vtB87x^A)?ySa^bNkKUOrwNhWHVKgV9Ia#c}4a0o!ccsi+ z%CaUZBNn@1+$Gf=tk|1c25rLV{;-UD6JVwY&r^G=RDPOqie(m3FB`)EP>2Ahyea)J z(j+NDz&Khb4`FjE#w*k&!I`j*Q#8h+v6aTXM_%5=v3p^q4B}5a$SYLOHw~}aBN+HC zirRv|D?H1pG>fYs?U|_B9&Tnq^HLiVKP!IhZkH!S7bp>p?n?NGQVw5*Eeq8h@eu=!8HKa}H&TQy++MZ1OERn`WU()V ztYe*X;FbY^rDfdua2M3u1FkJq^`six368k|QXdPybz9xg0LA#g{ zpBj}CHsS}U`|3G;`q)PA>mB5d!*=5F2eCI!yDIQsCm*Jwt}E$z8{`<)1lZpl&y-EX0=Ej%Q^n=xsh9@frP5UW0B@xrpx0>Hh8jcR~HijgFv zCZxqRMounZa(cvI?KvP#!5*1golAoh>z{Cba_Dy7BZWHS0WHskOCiCA?;sF@w{uE# zDAomH(lD(xUq4NxmT$=73j=8yI2n=_UW`2;EUkc9+z`$NR6hZFv30b2IYLad6b5pZ z5D@|7XQr6f9i*Db!aWwcxaz&$4cIkkG`-{vD8JAlPf^5iwS$G%nc8vd!a6;#eM8?B zVsxRr#SBd*q?T8~B@!N>_EKCSWFrm^XPQxclp1Nruoz95!YrJ8tIDY#S)=rXS#(6U z6iXr`Ph}}(c|@TU=T%ssykL6l&tkSpJjqA)#XKU|TJpmsi~Dvhn3lnOO58Ipz7%Fj z`EvZl3p4natV?monzVDnO26~epjP*MXq2p>lHIE|!I)2YI}jsI z>$pDYiJ`JSDo#)kKh^hc{lyt=fJ_iJI2JJQ=CmG_x;JZG^_0~U(-w0voHN`;9t}vd z!LT7Bt?@qGUy(_#z)9mW(orxWOCe9&Lf%4WML}BIm0gzYDpi$5A(eTwfK+2M6+T4Y_W#6W?XX&P8ou)-CM8v5B6BenB zsDD!%i#&Hu6|EID%^?wq6X6yiaC$!bYo6)FqEq9?cC+S|4=p(@?k>Mw=02*p47=>T z;GbEodixyGfv+~K%x)M}-z?`CH>vi1*f-u?&2jG4Uo&+xJ1XbL7AvzV*CxCsJtE{yaHmU1Onlt!ec4TU zNa>}iz!SYQP#51#??@viajYvXD9iVm3+CK65>AEXNOBNELgLT%Sp!?!EYnwPkb?S7Llz(Vn>!kI-B|nP4=>iQV)$2S{g~eZ{H`q^0#7#e^7cz z1^v9aAc<$&))E)e^I`Je48fIGb{U$CpIR|-7i|+uOY7ikjvC&r-R<7SIQw#I`3Uqh zd)+h>^vrbr!WI52W6`ot4j9p3K0sbe);$?BvY2%tEB3_yjXUVM%W8h$$NTtuw#Gzp z<3N|xgVL(BCDz1L8?|A(wb5#}Yt@p{WxHtCu9`+UilDD;V@KP7QF?N8(r08rS*b!h zJ%&eBn^m=QkIQ-UuWC4I_TL@c_^w`NQtb-wP6mjliTYgd*ge~=$z05ArWilYBaw9+ zwisJk=>Sjoyf=PwQh!@@kxP-qlhwR_rn3R~M*f0SBhG{G(!AY^=(B1|rCTFpQ#1~o zd8)ye{wecWdeHMebMKA46o4^o1uXKyd0D95o+gvzUEI4h6QXt-m25v#y~VAJ665)I z!ebg^a5GV_Z@1VA{%A?mePQPZV<*jF-rd@aRImU#ULs zcWr(x2I%7c$U4{99Ljp4k?`&S>s9>0K_Ktj zA8?0J^ZvGF`1wtBnONO*Z|A-L+Y=30%AoIODYs|8D!%GW-IWKjy{)^qftTIB_`2{0 zdJBaT*QHCHat8N?IM^efI!Gb4h#>7Zc$CB&U4^2AazGZ4QDG#{uHsNO(d20FgOW}n zt;EETzju9}?deGE62~x(o^)-u4Vn_yqU_m}IdT z7#O6z?HnZa6_x*HNBojua`N@{l;r34_xI=X7v}TucH|e7kdWXP5aJgS;zdyK`n+=Y z1qSfC`!N3{PH@1ER!{+e zKmS|PzeoBPtC5erw}OWog40*_-;4D(^FJH^E90L&P5<4e;1gl-fA;y0rhl+LOhQuM z-p9lB<%1H9+?{=8g{1layXybSW%_S6*+299!}QPE|H@(V-*Wu3_P=uIcsnB$0el#m ztl;0n`e)tW^wRtfi~kQ}_{-A%)FMnx7F(MCUuG+dU1pzij)WwKq^9`PFaY`2Ta3cz zN;6lhxo_q$vAT^9R5R*ki45f$i$a4j!J&`n1GzY6iAXmL2oIDnkzIp>NtIq}$=Acz5j&?d zm=qt&dRa7p*1tzD3m1?&zm1v#1j16@%#GVpa~3_6H!cVsDARVyMZ;efrK3hZR093B zF9-@iH}}lf<=Mj``tlEDgp4Qd+cInuye^oB@|;+>e=2{CJcvHMRXNrYPI4{{|5HA^ zRq4cQ5J|gtDv6pP2zc)ExzD|NHlv`-EGInM`%7Pn1-`Adr$3a41n)6?>JV=wAu(| z=_-7{M*Og`A7T}OCU|zM6B7lYzi4h8&Ppn)#pHfPMV*A*0Vne%7IM%(27QxVfh#}0 zzivwc?>-)XndwCja?Oje92%lje0$Hx=A3?Zw&04GrVYiY(0JL+eHblz6!PX)eG)i> zcUtKF+9L*`zF4AGYFlS+5lVUx8d?O?QeqO=hC&vmJSXsO^CAgdE)XWzyi4zv_PTMF z>9=k-UyFgQS6F;&`&Z7rVeYKZ@)mSu1;cZ!dNxMKj-cVSBb_(4tNi-Iaf$|JC?$+P zp#+$iY@$8eJlB9@&NcD zKom>j%U@i_pnWxOuDWRa2K2?dR&&!3vK|^fBE>4 z!CA!lZBi1zfk75VNjxhWaDK-AR1dhdRi71!^oXZ8!SH6*V$uZ~$JV&%0 zF3OTR7xOmmj7uw97S7Jq!(?N)q0lN6Vaz6A5K?vxKpBDjf9ba1|ESyXY#4=<<)|J{ zi*7wJ&E#j|w)2>`oLajqYOhVu^!p8U;!@+q7gfU2b0=@Pa=+SY#c@=L2pUvr&9yY- zX%7xFrR?4b>vGMW@zZuQZC&w;tG=5J8Wbit0mUjrsK-Q?J2)cavtI+KILHnjmREMh z@QWv$TRb|gN*eD~S=)@rAWuaGvtyHljt@L7L_g&(+Zyf0hD1WF&ImX4ztzXm)F#J( z14Xs$;@0}c)a={;>?3P628N|cU|HDR&EZ!4>+nduXOYIVwlw;I_h{B`gLw*GAEaND zqKfAQ-aCgz;?jcx@6Qn15B*Dgyps5KLy4G*GR?$vh}B?u-{iDjVjh}4f^t-@N|hcY z`)MnQr)OHiV#n?mN#y99Ve4#as%)g;L6B0ZgoZ&=Wu}1K_7_6lYH{LzU^35pU84Mp%oZrCBssnW;cDT$S6MfF7n_T+$BLstb1Shk7($xb|`ex)3=}PN(O|`9m~x37@oq z9k!f%IbA)Jp$#2S zQ5qc_ZJ+^S<_ZShkA58SKYjXr1(uUgfmYE_#Wb5>PSeD$u7!Id5v@`A!PInw3D zAgZc*dKJ?QB_W-J2pP8tAvay#3okXN)C>iQ>72(M#CnN`7{%f8>z?;Cc>HE1OJtMo zpzuCOfiIPC;#W{{cJK*oxW@~AxRsOy7V63|PLB2tgdqb`?%CfeU((nU(pHz<-7qIB z#dF;U-V>n)$0Z^5;=fHHu@wff>Iw}mioUr=i5{^YO9|Uo1e>A@)nuXCvuLDOovR3* zzP%Up{M#UYx5~nzjR^%viReMW(YS0+K0Q#&!VDF-Ip{%yc8I6-${+-B?w}0+b)rNi zw#vc@>lv&$nCL&=V)*s!qoL2bzQK~#;)`cc#ZK~)wJ_PH7`S*OYBU*PT~>nDNt}gi zwCxzK;*wlG)!`9yG{U%uPuqH)w~-`#qz_u96ABEd3ZX*n37{ zOGv|s%i0%K_%8`j%LSY3SL{O!PxL9(!!e%X_^}F5eHfX-BxnN+_8#fPKXok?NXH}y zCI6*vEo7KdKt$&biVa&XpbY!23gjT7`$r!uFj9;*fFOEfN}n#1G^W|VhXm!scL&+v z+Av2HDFzU>SQ|e|D~i33KlOwdJYInfP!1?#E5w{KIQ7<{vMG?=Qf+KpRfxAkV+5lU zNF#|io=%5aVrfQloeTH%AL)2`LP-AqornVw7ESzY``)u1rdFC04` zYZqM#z6LnVMIY+u5~go@-v59NFm%B?;GEL^+swxxxA3zwl`f7bb9zv7;?@O0=*C6; zP>^1B^b|M{#yY=#!CwF}atFq86o3|e`}eG5;qvd!ZYy3!?<25?8bctA3ZmQ+D}8!f zF$EZ;3xpk9OsxoNA|GAo(73-v{L=BIEC88BMX&bn6`=O*6*PJ%R*#?*fV9E4j^-z& zYH2MvyUAg@#W-q}S{X6AZ?P{N?7v~_Az@)wc0C{XEd^^SF+22xyokXi?t;&FURH`C zPS0ZykWvMx#%E$b;xeWIjCn59-b=Z%nCW=E4b9sbCyM0YsAR^iOIF<$I<_>YQ)1%hw&-T1VXDR zcC52zsH%#2SG5)BxVgx~3pbqvqj6G3bD|HE8i)#UFXIg>AA`aak(*5%42aa)0EZS1 zdaLjic!Q7K+d<6%sK+JsC3}X>sM<9+d}Nru8DEq#&i<`B2`V?U(HOKIVr8c2zcBv}52sJ4`RXy_IAdMIApVR8Wi+nvue_gE*f6Ez#r80`F(|Hn((q$u3DB zq|$>hQxGtW)9F=}7=t*ff)nIbz4@j7|c~7)=`(%CfQ}@V%leEbC=u zuL;iuXAXl2Rh9n3)2$FU;yO4?f5apUQ#5|6qj#I0mzTMv)A@3slI&^IKxnI_fqqk| z1DPgPCjGYp!!jDys%WQI(Q2V(P2`ycK&8$go3MTcqFGN{CoFPFm^&!rEhX!GNc1)M zdp0Vi0{c0oDyZpm_^7**`UiCr*~p1U?jSN*W(3yX?0{;XjE2&(mF^OKp>mPeoTndL>K?r6@?_puTN$Ek>#7OMBu*7bYswr|>kO-^Iy#Nx6h754TFi9v8 z>tQbpXwF`mWhrX?kEs9A)&Cg7|2#PVSL_T-cF4+P-_STeb?BL;5-r#b=;x?U`7F$2 z_!W6>{w(-#DU_sc{3^@r)B;@R%?UhYeg@9ChG3K7*Sa4*k;y=gtOKKd0>1 z*BpGL+7JGT)~3R~1w|U}fWNNi*)}IHz;r9{yPK^oehUP!3WPIR-{#YXSL;-_H4++RpJW-;?dDP%p(J7TPIh0Py%Ql!Xvasg@DJs z*R5@BU#uKeq$1__lQ5#%FEt6F2CGf21EY~Sxi<0}c3U2n&ob)HO9OLgvQu`i0Y3|0 z^j0^JVzUoh?a{pq<}@R7@X3L8L$0KNmoolQDs(~O(zgR78xa&%xE@_+%9O$mnv_!R z7W+p>cwy-Hm;JEBI8A+`c-z8nxl7&X86dC;9vf_Kws!oc#Ne<;7o!9R;Kba)oC^nt)kbdAc!AE zcn+AgKS0Hz%a*1WI%tX=dB-zm%b8~FN~}P)M0;$cv42MkY6JLUpMW9&MQ?~IwqPn= zo^YwRK`7!iz#8wvGdPWb#j}OV{lO;(r40$=0`uEfTtYFadpxZLf zZ$`#Zpy%)@&#C=RpbBN>vS3;SvX`D9h1Fu8t+#5ME%LJymdV_b!9nZyFBk9%7G0_v zezYz}Dp8nAPlA5HDq7)UJUyzOVlVxGr0m^H9SR(&G)xJz#Py?j&EB7i#1%z9dSr7M zm$VGL5ZbHBt5X+JH-KacF77U=f6f_~;I61nji3Gc*awc0 zU$Sbp)}k{9Ui5r1m9S)VPA|XWwQWiSF`E(BBlA1%_(qiK$$mH zXwAut-c_ZA{K|l|Xtl8X@wqTF{FY}y0tTZ$OQtS4MR_UiNIQH+2cdr zL+$UYm4!>h34h)U7kPNAAatH#YBzyU9;TWiLg`iBqUsu5Y(A4?2On5UL_T^@rF}b4 zO3d7@{9e}w(m)cqK= z50){po0(Z8di|#1d+4}d?!AklUtUPwcua~STxoTnE(X|n)Jh6IFc5)_nnHMUT)~Jd++W(p6$#jle zXnw}&@E_G)&?j!5_k(PyjVw%Jl+(30q|G8YqA#cn^2^$x9ncQ=#A{V1k`({{+!O#u z=o89+$QYxkxC)eO+cX%T<@s7;ulXu-6FLP!Y{@lIh#|a+LjDn}BdF1=+ng!5V;cL{ zUeH9BI-1 z_!*TgY?XBFCQd_)CF#eGodnzHEafmHc>T;xu2i6r;wpL?;d5}&=opL+>Ctv#Na254 z>TKl>I?t@V1}qDOuUe|Sde}`S3_LHh7q@i4L2kgF;1J5I4`*#m!uijhH<=mx9kx?(7Vw|ucIT{n{7ge*7E~do`L-ZWYb7!Lr<~BE~kvlkD_j?ig8c} z;}A=o+|d2Ioy$wVlKaGlgYw*{?&~G)8gTC&QPi_`fklKudF*+}nS1lxKqkS+mpjHv zuDYrrE^kSaq+G{U(7>I{dAz=^=TaB+A zO+n~EG{!13dLPbup#%(E!5ElUR!c79OPY;n90%*uv3}i?;>ORfGna~b@&pTWI3sCsnoL0ch znN$GDx0TDXCrdEaelW9k`C-rCoMw^wt=hjk zZ7zWE;8Keu&xpV@!nXi0ovEv-L`0N`t0C3|EvHvKNQq?sXT#A=dOuEW)QCAM&m-pb zF!#9Z4?jzE)Mr;Sx)6)9@RKRY-E zar1bCP|UfASKy?Xc0>;bh`1{8fL#obp#5SYpXV=uxh}+iGL{_ zFtcPM{k%Sa_O?2{E&lg&;j1R6JxlvBIl1#?w4?~Nl7P8vC1E^>MYL0T9I}BWKyUr2 z?qkqLj5hGsmjhf6E-o*)lvEOcL}0gkug3TKENf;9eDHDlHw`f^6xOUYaefvx5=a^Z z{}Fh>yWwN*LBiK=Ev|{Ix(<>eSM~Hl`}~!i!xQ$H4XA>1{5k}U=+joj*ufokU@B@H zzoKO52(93fJp~?6W2V%u7ya73XQqGZo!o{JMLg!RYxB$YgWX(3z+6Be>8WE_#Sp9k zk#<4#{Vp!Nraje^BZfqo&ik2AXngdmy^*%qXpsQ&1p&Z|nYse;5lL3GaKSpt)P8w1 z<4Gb%G;)O57sa+y+PH&S@J>Ju1k}5GPETyaR^jL73CAGy>XbxOA0mSk5+G*O>GAQ88gEd=ncPZ&6@7SJsFag!R?*nnP(0a zyT&gZ>FD|tK3IbI^f&J{e5yX*P%a|&E&>G0;iP|zfIQdPC0=)>XfBJ{hRuiL==Itl@}HG9CL zbds}vk7ZP9k5r<&*W^7l4vEWY*3{&)%?mBPR8);Hv(se7OtGH{&)fKe#7;n`xQ~Ic z%y;PLsb5sXA@m_k{UtqoaUwC>xDPP!2f|$v0rrIFN@%4bf*T%&9K~<#Y@?D*yO6s{ z-H1o29=5Bk2j|r(xh#z3T~+vlcWONQdTl7FfWw?&`Ei^SzGkZNhz*5YUXs_%PzPVD z0KBIIMcg-Q1qp@GtyG-QUWnBc+dY00UD!Uoq-ba6{trM%!!Kd?CHpImHTh~w2OynJ zD^6HIp3FQcC?T?xOlcsleRuz2G7n@#v0M+Y@rLh=lqBIg7QAi!<@dBY?IQ^$1bEC9 z$J%2}adh14sM3%Y!NW78*w$@@;a9hx68P(rg)Z>Istz-GaM)y|ms6ngl?Q=ee%eXu z`jSB_tvxUWeGkxm!-EB{j0v(~B6r2@VUP1$K3d*5WyV)I9@oRn9<1s*c0wq@ClP87 zu=*|+p&pGHILISYI}niSYP7l?n4My5h~JSX@AXadTS^3(juBN~aNf={d7*OLDoUac z=bvEv_c7^P^hbk7Q+KJ?fCI`IzVpI!#=e(`81}-rf@c3PeOOpg5|{|JF=5RAkN14k z;O3tD6T*dF71iUBvn|dn!dV#@-N4}Z>i(L5NUeKpT`x1(5V!|hfO<5MUV~?izw3>^ zYlk~uv104*D2(?~Ivj&?1vUD!5L99^(0X^@8e@%l<~`Dnx=FKrH)~qQBOj?I z6lKyvXmg@az<{zU4`P3z`o-JTD2?@MUn|?Fiz{87d@T7PJ7bw%5&1HN7aXpq9`Se#SFnRHt^@2#B zNlA=2x`t{r3KeVpv8ja1^|YrJo`}`iT>f&)3!n-`BmPxlk;jN5l$`WNz_VAGf?N;t ztBLi~*o(F2fzL}T;yTx?k8!4BI>#$IP|#s7b$&(Sl6x~myz12B^Is~2HBZS3-y_gl zMwdPxM;j=ZfkOy&kX8UQkaolrH$ zhJ1sUiiZL7#)K}$M#^K!6*SGi0*2hUmJzrLahaM8F}q6n-kk%%C(gMm$=HPI^l$=C z&(_A77fC4}U=(tQ9d(QVa}1Cf{KS2nGV^Kqz*u)o9hWFd`^u2wt`YyAKELCMtlz_ySFiye(^oXfHru5I9_s>QquHc7C zBegH!HIBSBmE0S4M+u)+rsXQ@a6qR9LbBb%RB*o(cKiwlX4)y0hBD8L)F;pgN7^TI zHVQEc3~m9I-x-Y=QfX`s#RI9@gTmN>=#g9ePApDLUSIW8B7CM~7Lr4ctgmr+>ejW% zMHF+Glt#BgvC6M6{TNpX>Z-(ieSKr)PD<&beLf1peAsc+4l!+q6Y&stK-En?N-tzG z2s5nBiwMK{@yczeFNQ2|c6m9>j^|{(II%q|?8EhU+a%8$U=%a+g~@~odjj>sCXaDq zk{o=G+Wj}ptcjbyB+Y3Iuunq4D?Y*yYd}Iu95%wh(v?MNJfb%Kdl)ArWcNm+V4To- zDB3{@S+rPPBqvL71r{70ET`B7kFjir>rn>y!E--F1ox#q97>~CvSuKRu{pYvC93{O+>mb1bA&4AP$`9FN)pyBMXhvMMWg6Bdo45&%Pr z4>x9Ep=M@U(8{04mls?E?zA=V_z6t4zx36h8kF9&v75zhoFxGfRz!a^6TPk(b-N%u z1y)5+#(qs~cM8Sf6o+~DMg*CmR;li8V!{reN>ZpbM0pdT zQy5(yI=y=@U^3Q&47EQSyz$!d)k6!AF;VOV@U^c4egbbr>JX3`Sb<}i*Xx3S%5gz= zNI$>6YMR~4d!sE59TzSpVv-V8EriM2(9i7YG@(Qmr@W8R7*K6bIAdALn;uu|BSU6f zUahxrFtla-M_tkA0eG`F|1>H^W@D$#IXoC8K$RW6_Iq*&W&#P8h_|3VRtcBQ2(~Dl z9!TnmJ5W|4l_#F2YjDp4XU(KuI1tEd`QFeX$&l_s$o8d(&xaO8C1{Pu(Ts_zt+c(1 zw$m=lMr`o(_9_2|`KIaJa0l(OCwho;W_Ww}Xbl27$C8-YSESxjYn3RAgxl_#$(Dw#4AKnXsb}v~K0!Rrg&tXHHG3BUe!y)lx1-S* zdw(0RKZIIZBEKrtfDPFYm$(N<)uQJ;)i|v{EHnN%Reg3ED>W8l0bHlx7CtuxCe1W| zjivBO*7x4g9MXAPp4;!fwyITLc^*SF4!FG~3bG0Jv7H3pU=h+;i1+G5dp0Uz_%*M) zlO27Z2`ykc7wP@V(P8(orDX zG2-T?`a2~ZnZ9}lTrIki_Z6I5b5JrXT>2GUSk+-?4eb1R1EvG<2Y#*k(w|q2+FiE_ z=T;V~CZz3~IIZbYMAnbeOSpOb0HgpyPyI+L8etls`xNc>?*n1EJ%urI z(_5Evw_}Eo1#JdLHtqT~&>+f>>_U)38%TQ|fRDqBFLSTkt{-$BhQs+a@diugxy!Nk z%;47*yxm#k`w2ZZLIn<#4GlgP0!rwM%Laz4-D zF2l)X@33GSUsHH(f=R^v)I|6xJmdO0d}hjvmMDko?yQ9O87a=L0pw#)BTV(({L|+* z;%ZVnd`Ep)XdHkspZQ4?l<8PTofW#Fu_#mMI!waK`FyVV_jl|Z(UFU(5vu9Fr5#YB!bf-lo|Ml@c_mV)m~|+g z=saXX6$4Goq7~Ita+c|lxu%g&qJTd3PHO9V`$UJZ{8zHvDJ zHOv*al)C*be};t?8-JScAokVE3aZl4}dEqOq93H=ayhypbj5lclO zT!9aHIgb^Thqf?T4Iz z>Dl~VMzpQIQXzlYb$3^-??*%Khf6CY(sj$`H<~5R==;)tG?BWy`{o{NY^zr%(^qSt z99diwa5&1k5nnjce7dY2ZtcOtu|K-R zts}~n6qwLF{hXW_Cv}iQP|dU~Cr3hkcGT-d_=P#M@o+Yfx z#6jLySU#86bRWjfv<|Bf!5SD37z-b1QxxXuGdYWI5-2k>B^P>%KMW2>6-24m^t?x- zK*1PF8&PC=HW*`rFw~j5EVCxU=5c%ZZS&$o9dRSYVxjbOM-#LC8x_cR1W1HXUh9eW8 zDNK47Q!sA8RP;t>JmDIs4qwiq$QF=O)9Es19KBLg8Kg^iG^-F+#8g|wiX-^Nf=%%= zE0f0`WwXbcnvzcv-PLB0KT9^uljwl@5mnDq+ZUNpPWt`eZK-LKH*X_i$ynFtetoeI!k&T2a#YuSA)X4Wa1dIotVu zEAIFu(Rm}j4|z2|tMF1(O@*tz23e>frI&G-x)9NsWSbP<=9X3(jkzeIm1`M}J#Nl~ zQLN1@HP*U@@Ri9;ka4o9FXQ2~0^l9!xujeDcg(lLhUWnzVsFwl0XL;0q~uBh0%`iC z=`J|@-Mls75^*EHjXR7I56C>O`mC1iot!knF)}}9Ta@gHKrXH>e%}3N$M$Q7qF|lC zNB3sR~7Kf7+a6`gb`Wh4& z4gnmBb_|Z2UDLNj`VBfQAHz{eIp{&ROp!kh+2YdqS4sdTp@j=Y!m zRV#tAupr-E`ep^l#IlLWEj=9S_$=4lRRUfuZP@=2JC@Hg{cnF;7jv`e#VriixYB=X$Wf zb#h0)O&l-zY7pc|!1{Duz`CbL0I7iLU~o@;6?6hU-8J`!I#!eUPG)OEDP$MT(~x|N zcL|)r-HmQvn9~E+EEBr(=g9l zO)>(%x}V94bjcuBEW^1;DrLUf$yCia!rFy+m*Ejm^)em3T+uwZw2ctq%`N^Hg;!a}U_m~APq(~g z!c=czEH7a1^;V==lPh6q#Wu|R6Pz8bBdG7-1_kwT3r8E^Kn+{<3G;6lg%{#I3YkIZ ziK{HEA#Sex=(#l+cJmd>5WPXpuvMl&^%Phok&f1H$v&xJuI^1FiH@w%l1*(>L+e2V z3$t)BG(mK1OIRMnOk4++xBGbtMtJG^dBs+F3dn(0jK$yXHELrEXg8RmuG;rQ3s^R8 zzTDQ@1)m)4FK|lf`PyK_oo%tLr!kZCO&2NjD+a!{+ixfWUjOhXh~w?T^y@QW^0lTw z7@WDtcw0}GN$Ctgvrn6XWJsrHPi3`-U70PiHw@h-DuIqON6PxrhAcAh5vwfNf%Z*< zQ;8nHf3tlj)4b2EZ8cMRv}P4P7`k!AqWN*Y`a{=GY%zll#f#r3l|qV7u?%%3jF2VY zPm6;tI6Tjy;thGmK3Hq6f1Ju`GR7&Bg8TpBpTD`tV-1?UI zDw)`nQoAhlYbIKnfjpmb{iI@7$#WP5yE*5p%=MBYbk# z8AM&OHML6ph6OoA;gu2iH|*V(K4WI&BjChy*ct>-Uv&*1%lQZ2$@yz;d{MC!SSY{e=_Px$ok zWMNHO-T}^VAc}w|o=x6xJP+01ui#pFjhUQcb$fn77h@A5A*-yc@^@AfX| z{>eiCT%vWt5&7Rx{w^Dc3h=&{(z^L7Y3%-DAWeq=EVCn$jdQt~y*e^ef*Ju|bUZP= zyaqTVK6#Zs4FXLbg8@?jP&tBIz8{H7WNvOyfwd#$5lfEKcGJ&DeH~o&fO{hQ z&a=@Jzwso->6od6u8T>jQv)|(1lc1Udduup}fIgmzWHs>U_v!qb6C0Iyer#OQ3#fvz@w=~8AV=naa4gPpvwsiUn!=O#u63bc{M+F% z5(%TegN1HS^m((PM%uK+6I87T9z$zw+vE>U<>Nfinh2PjZJWJPi{<&2f2s= z?+3XfgWRl0eG}dJpv+=D-R`5tkHuPcwb0tjW+5{Y(g6kRxKbgJzUDIfJJytl3)PpR z=+(M2q}ir724VyYR?i8*um&tqJek~txo6>Nh&Q5^!G&qbf@$Zl`X}kPh%>_BF?IrE zjhNsXyz6MYAV|+m7umIKFQ@!#1&+;!MJ3F64Hlt%j2?~1v%Rl!4awZtLcH~q1Q^6L zNDyoxqmEAkgoer!xglNwYea-;N}RJavMu-MMG=t0?Nw*%87wzPmZs*KUP-&S&=amj zAVf+^1BwV6e+(LM--H5`?KJhh6gMZ^i+d4{ej8qwXEp#4TziE;R~{l@x(%_1eczra0MmRjKO1~b0i}zCV;m5 zbK@{2{0h^J>$MTRl70^z8JS;@u-L*RjQ)k|83#l1SkE(4N|YlZ#~lEk)|*Y>VJ(2eK>Ad@xnoP^zB{L5SomtD03^~>$^ z1ZViipl3)&d*Xsvnf3uoNw`C4FcZ+I4H=_fj~4iiLV2Bjs#jFN5Kh_>fmdL3c&In# z_RBjhB;YLlt43-;Whe{LP)W41-zLKAfX=S}k@y*&cUKz{o}9Qmh_Ei3nDnT}xf z=L?|*14<~RWcXl4>gG>yvAnS}!y<#^zf}PRG~b;A`x484UUev1_bWpqJ&?8_Y+?X7NhHNhs<2+nBVE_R8vmQDZ}5F9FxQ0 zqrVq2Qmf#gt3{2v`;nAu7B`mjPg>ki{o^P%aOeV3fP(LnUeJf7Db2b4yD99u`mRlN z)Ai}ZLGq^e;jQ>m>ie5GL0sV&fTP|B!n}*rT~@XUB`T33wL&QjUqnKVsmQq0T9=9V z3=z7m;2_h@_Q)d~9>T~88If_ZwLoA|1bN?{%3T!DB)D^-7CCfp97Fpy!v~$z3`?m^h76taBx0Y8>9X>x&dpRZC+%Hc&cP3? zwB=sfYssW5zOVVvGe8=n7={C^z?15`7CXU&zk1h?#ZH~q;A4riY2nmcJ7yig6Jx?7 z#1qbaa)Li>xvZ7=I5n*)8{d-1@Bn;Nh@9-!!^1XgV^cWpn~!$3=TZZ=*2qQRfTFpn zTqCgSG-_b({%^5WY=zx??(wh;lX+O%>T4;4ckbC~`gpLt92^GhMWc`t`S{o=Bp+>= zf1x7+3jRGW1zc%AtCUzKI&*3O0~Pkr*%b7ftdq5c>!9`b5Wway3RAnH(jQzIF8_yD@T`~OBr=%S3QYnA$tOC@AnBNR#{d#_~gJ#JZ-?5rei6jJsU?zKmfnay>LZ0@|95A^gKsMpEHh4ut@T{h@qfjhi*_%06Yi{vtcBJz&mrb zeIiHPcbQg~J-1*+P}CFcq`79mC{lkN-<{B-2Wc0L@Eg3&-5mobMy@ktRAQZPhhq2Y zb0}o5twTL~u3IJ*r+)!6VN~g9mmWmV>?3^odVf@?x1&^Lc*K_0B-@^iZ^CuQ_eXXl zaMk=nOVnF>reE)-Z!omnc_MYpKlFi_;Q$!Ee<$m7`sK4gvLH-T*sLIwwh48kF8324 zD_#L{YwMeFHO-c=V(3TXyadD+fzBIz>UI#f-De@nr4FD9JF{yaW9t4#1SOaJqiSu? z?whc_B*9cg!DK}wWO^Am4g%+x*CT;G^h4hv!_$Yx)57xbt*}|hLrs2e3rpTVV4w6J zBd08Fa%<#H9%ddrSBAYk@dCC=1}|YFw{xAl+q(ZT4@tF)N1`$E7=L%z7m7fh%UhUy zN(FulY|w$(ctfr2gXUHryA@xJC_`n5?Qqzc=cW5W&9UER;R-H5l3a>=KFRC)Q4 zHS28-2T zS9;L-af@`?v20T|P)lW!Kz+6A?$g$Nj{UBE-UYU3mOJ+sY};AiPWr0RhcY$+xf?dD z;BJ!eUwg(K`A?S6);<`Fj5^G!ifcV+;os*p$ilU~9bufqC?!-~O}&Cx*YDcrR+}@nN_A~6KqjO?q!ea2#xdekKfB0e$T1Bc2+hyuLCc<)y+w!%#)c0Ts z{fE~31+ugwIZL5CPe|>8eaT=6f}%~>&Tv!L-4W&FjjGj$P((#FYY2DLf4Fmb#F#h7 zMXNUaCp@XuMk%PPLt4=CY7~sh{6sddz1N$0AN=jFss2@Qril-XWqjGPa?BfM3lyhw zRwl;?VTt(O(~Leuy||pt_=hgd`4X4(Xf?x$+zVR4wcrTu_sI^%6C(y`ujgytUz~X) zfR1$>fW3%_f4K)THML`lZ5ZrqE_&7gEqO%yXf;N&c2-mK-@0odADLY|M@LF-0-J$|IO`uCGWMVa-=ixe1McA=e99=O71+3q^xAvX@_&9Ua*Zv`;k1L^=jw^guug@okSEUtGA(2X;m zxKc!z$S3dL7`st5sbvim>?B#fOSYfP_}-o0T)b1EtnneAXW`;?bZr6KQceE8t{& zxttY1kyjCzpZuPe{2WgHK~f%Ec<_)0{jXJ?bUu!H(L4&JVY!rT=9^Hx{Yx_Lwmka6 z)>XUV?+(6{R0{qOMOIk|-q|}GzWeH6cat^G^KcMb>;X-TDp#&Z%nCn8S85d~$%=fu z$Su?N_4VDgS-bg>-1wLhgsBy!=|}gIrbSv6)6Z}U8k~{$M1JvRxX=7Zsq$m~i;Y0l zsNa=i|DY#tSZ_T1;OKGcvN?M>^rlqWisN3ROg8>c>p|y@NWs39Ft5DGP%+XBDJoMe zxA^g#^sO5uGH!B|V!q;+>yH>DexTr5q3+}0q zynFz*rlIdd=p^sKmriS!T8|IHI1H!PQ$3wmLD>(Yb?8oU`-HoGd$w*PUQQq>8Z*I!vGYUsR zTLmRwLaC7bm4zdojK&tp*s1~5V}zYp@IK0m_kp7f-kk-Y5KrZ|4bGseMcFQ~fMiu0 zUm*Fjmg}Sx|4nRX5!6#7Nv8>X0qO zxHtB{t)B*%lY{MTX19vg=lFl}D05|Cf?Ff6!(z*Q64LOw+EU?@epPJw%@ngiioMhG zAC1`4`GdIDn$c1}+tRjy!B`ecY{xo_WzsbLcY2TXt%^5Y=Qd%Rspo~eX>W7xw4Oia zr1_g52+@$x?Pd8q?_MKkT^|GVi86;=<8Dz6K8V0m{>TLG&dAib*>6&pTr}fwEKjfv z%Odt%YBgHcVfjeuD=QK^xWRg*hW*PIhl{Q;2689DOzqiGvxL<#z3`=b04V(+%|Gtl< z&auPDHMRuy!%kV>gP%v!xQe3lub-H``5*u>%Ug^wj^FF2Tw7RAm|dw?`0&;EHtkoD zM89CO(pqx0#O}vhmPmZ*qWT+J3BPj1qsp^{h7Y$_N^iR68pgrUgy-7Q!o5E(t0ZoJ zg}LrRA=dMq?+5c`Pvu*8rgx%uGOhSM3`59v+V3Q-G8JVm)&jSG4n)~mEhyN-beLGc zN&Hu=gK_KLLxNwr?~WkZPv>`9XPg)$3+@VP)D8r{wj7xp5gPVx$TDHpgS0feD{?{H zw*421wRiXu`%(p_2!ZAIDJ18n_wr%pvuJTvLQsl8J^_|b`DbV`HLvT?rPxr#GKN5GngsV|;Qdzml4B!Bg?9#wq9WP8E?koiF5!j6ujR2=v*; zlA4f|EYnx9KrD=;*X(e-Sxve#WM8}?@s<2#A1QAcL>{iq$54M{l=%g|g<=oge^aoY z^IYZXsB)9qNOSew<29zERQzf&rZPPU?qs-_=6oFS-FcVEE=LeUua)kimm|6butZv> z^)iZ@(pU|hax-tR5toXN;dYtw+VhHql|TGm z3&kIvLG(t~@H^4a2RNXO1I7wc#(K}NwOWLSO?$l)H~2k_YM8cE38#a#QE#EKJPD)( zw@Ss~W4*8yazE7C*F|A<7Y%Qzncp(b^WvWBj6eWw1lQ(`C1UsOro{w7*#c$>A(*8p zyH}>ckJAl8h}a|8rT?@C^)9|#d!j=5UDhOie1=k9%kp*GhiPPBKpZVlx%Nt!%^t9E zA|Gc%CNxnO5!`O*_I;pg4*iQl7>C}*1(6@}-R$UKn4STgtw=vqKN~r<1ps0HW}Uk| z#B``rG%p-GJh;q_n_%;!VL>;7dy@f77+>u*- zE9d1v4M-q0r{uEgX20E!+wxj$GqBQpAin^Agdt>^SS3~*GsPv}H;0tB_wl_|vRsh! zeTna9laJ8>!$bul@FIs@*}=q3;J!I5+Ivh3#tduS{#d(3=Uf^Qy4v9GE*yDE_bBNL^G*Bw+IFn&$?F#w$X9so&%HNbPGwG*OMSa!MU+G({2TjpSNc+F)ov#jVXyO^tNxL6iR$lmZQ6YGh)%vgn+-$TFNR(47IO&^OtnOjAFtRNjU^QC}Il4>~T1Jf3``7;Gx} zcx})5l2Nt5Txr+sI`PaGRp?84PT$`R6bxfaZ$C^bR*A5NHCE7N97f5RBZuTs9N8B8 z4v$j52?rllG%z@5yW`a>biYR!c!wZO?vr$VN#h1uu4(2zW$G+s_nepR_v@hahOViS@PB1ba3qmA zFo%7COCY&a4K-!dQCdIQ0wLckd%flUZ2;1^DT?u%cXyHFQ8h5JJIne})vii9+5S;o zz5F8`y+RO^oA$cmyzg5xSb9Gx#OUS$EL+b_t4&dzm!F!QlwSSEyt(CX7iGV9Ugse7 z8b9ptd0p05)hGfK`RiA)=YV&V_o3NFOkPcN@1;#cw+ft(cgUCo8n6k*T{l~39ml)c3c z)Nydze@apgvf~&m>2SUk{=SDa!U7@lC+h8AmXt=h&up}Y4K!Lyd3T>o#TB3v3zDHN z>ZY8nAhI5AUoOq5`K>hDth(DFp%nDRfm^g)hW)XyE|1m zZg(5@GTL4$wy&{QEyHIDpVR_{{N0emYhb06~k$TZ&kKWSK2viGO|F7qb*?|EFume+6x zw&gZXmd~B^Q5Cn$%$*0d}pZ}irwxN36epk4?|>61?0m z@hscwRT;Jw{ppRM6w~|LduYLv*0n>)?!nT6YnAQ$Ke4ylUf;VthuE2(Yw|>W6$^32 znfy*yT59WuCyxt<-6oeW+#~Wkas0U6w=qhdkS^ z0gJ<11=n4h@#0IB2-Dx}r1ckSSBOd0;h%PJsORkh?c^Gr?Pdi7`&OG)JSQvl7LC zO@&3Ixj-4jLFY9tue&jqr3N-#`}eP=MVwL(Hf{^|6bA0quCRl~!IjJVQ8gWOESM{6 zSFquBvN3p8X6|9u9#J+`uV7HCgT4Tiqt(UVLG}s6niT=XPT&@1qX;+jdr}^mPELUm z?*wZVd$u`#E0P*qJ~@D&%g^-^G+6h>jaBf=(U`jk3|*4(G{S_>#c%WEK*sszUPcC8 z=PUl3ib@6*;-XEm&wtSbF6VJDr(JmIIB4WZt*yplZc1S^5&BBEKLu#V1T?I!q?<0r zirvr>y<^|;RBYHO{iLP9LA&dK~Ho8d>n!a zxf_NphI5eM8kr) z^ZBnd3#W+C=#!ezqZaI>;Ydt_aesF03x7Xi#+MAyIjmw@>sLjka7>-g^O)@6gMz*4 zMdxmuME-vWU?xC?%*MuVRvQPB*?xkYDekGIt2@R#Fi@X_t<6z17 zI;rW@p}%zYPEC)Js1p9t7M-L!M3YL>oHCX#GTRC_fX}mUXy3oPEyXKOs{{sc|FUmCQF&^POw&hyx zYAc)m#}&y-CWKk-grLcwIG@!%xQDl2=<;Xv@`NwGQ*O0j~p+e{p#4 zZ0Uf*l$CL78FqHz=KjNfq0$z6hB{V6n;t#-R270kU{bi!@4E-ehxZSZyW=itPf==` zU0@R2BuL%y3p=v~o>0CpmN65@;0^VRh@6V% zdFlBmrh};12K30wnV3=>noH}p9dQzk&mTp3wi%tzpb9P;sGj(nI%Q>b=}Jmf$&kgCyB<?bxKG#5Qg-K5DQj2k#);cV)Wc}?q9~cPsAnp-Z2F57gy0NgM;ihhtvjqtcYv$=tmxY5X za5nav89N8PXY1he>5Q57^|I<;zuL5i)GvZOpGjA-Sv=VlqV21~sQ!DE=OKC~2ks$1 zLgu$}2YOi9`?S66rw=Iz!^C2RtND`{blbQa-KsIb&0ir5>+Wy!1^PN7sq3r|`(T@x z&|m`6ldAb(Y0!8uyHNlF6$(UJ$DQ$STt-h_mm(D8I#q=}QN8JEw4=NL~a-C>P?y^uO}VBd&M@WEB@ z?RMiiL_HgU751O!BtS<%FRMqdPqZphRPgnCg>bN>7Z@PLcRvg2z0(h?kTV8_!Ga9T zzWPv`oXlbSNd6@a1iL5ds1nN?e(B_h;LSoT#B%I>PM#cz#8F>uu=3hLJD|?XmKV%H zb~V8pN=L4C-nW}T;|-hRl&?!g5jQrQ?(2|QFGL473hQyd&#|_M{&w#v?|X}| zFy*_+4jKB{`wy)2%UpKm5g-qw?yk7vex-&p6bEAU|iTa&9^J?fDm+ zvV;E&JFd?`_c$@dGW}{1+ppQ=CzHWz_iyyQ(>Ea()x}1>{B$dTu+=LRc|7LLvTt`( zXYJOp;odM?vgu|d*7J(507&jS;!0^iFCHmjLh!pgUdU^!2Vr)r1|H%R#2J!5^#R#c zVN!T=Tan59(%8?n-S2_lwO0Rkj7r{VARxk59#87AtmDNH!XiSOVwU(0EAhD+e3X*o zC{JBM;3xunS3INoQW1+Ud5##XuE`iHg0By^u+ZVX?{6B6E9SwGc4Mo@btUzd&j01| z92EvR;bv_IY8K{Y53VKTXa4J>t5=U^f{Wmf!+5w|S$l#dTk~u^Cs1`Lsr_Yz+3p90 z(!Osx_w|APk(Bx`e~w{`R`@mW_Hd6x0Y2y5ij+gQ{x;y7y#6&DeL$TNnHSOdw_0OrVjig!ySdnG#e?7zQuzXA>xICQGp8BM% z9(Q@lGV)~u;^Y-yEbp>-GEK!1%c~qNy_H9!95=3S6gjzBKd$&?moBBtNu{?!FnF^s|kqt>;A{@T&AQXTSc2X6Pe7b z!8bI*??rW7zrkII6ps9Gdc-*;SOSQ%jxW@#(YQn9iu>Vz4MHfhxi4)_VH9j)^_{bi z)rY#0ae_f}a&3v=Onc}}M<4DHBgO_+qVs%=RMV9aXWSX-#b9R zTf0Pb1O)#mpEO}oVJ-J8Vck!gNrtf9X6?K`tl14rUeIdB; zGhaxbxKmEnwB=tAj7A(`h6SI#<~wPcl*w#AZ%&$}VZ0xco2+mL= z?2=oY&FN=|E`QO+(LiGyt%}8pX*CkT5f8cLq@wvbN)Wkb{lz(EoIjpy3>|)pTzY6~ z`}Vw$Ngl$N;*?`9`Wp(+;iYk6w5Tf+MzCd!juyv%?5ogd}&E(E^ zCAOq8St@F%2h;ZL8N8yqr2Xo@CE#M*Fzk*k=l>#bsfJ`c^9OZR;ECW@P}c_4cdP#c zm*X{QblOjZ-g_jcN+$EHzT`b89A3GGzy2vQ{Hy-*PSxs>H#qi6tei=c*3}n3|EO3j z0AG5VaH9n*GW%gviseR-m*bdWq0J#CsBUq4B`->fN3)(N%ogM|9cQR4fIYZa> zfFm0SXaj^&Na~EX$v;_EzqJ$yP?i9Qd)+$sz_SJf2%6IGEa%yF?F>G!0h>f!SwEtT z1tQ2vFW=3y;|La*Z#Dv{26mBLXGTk1&eC4&>*y{$T11DY>E$929o!-E1ZKL7jr&@o z@0rj(A&=xl9_?8VO~zW9;LU6m;_{Xan@GaDh;&*Mw8 zoiS(`9)4N`BrqI|@@SfM)qC`E8mJwrx=3Xs^h{Y<3@)RZEA^h+12dO*TRXp(WK>PlqbXsTo9<4V9F$BMSK?Gf@WNLDd8`Lt7x zz`A#*j_MZ-Ew=oUdb?GB=Ijl9&CwRG3xCyKP~f8C?(s=gEJ7$yoO@(}N6$6G>Qaj8 z?sE0%TyTQK3Xp@cerxao&7IvXVNPv?8+0)pz}VO6166GmZF(!2bYjPXzI=+GUl#F; zMbrtjv1T^G@C>kvJmhoEnjG<@an)4S!!P8s45pJy=A%1_MAL9Lyfa)dx&qTWPVWC} zVj(9Gwr2O%OQ=rZyAyH)r?xA>1m>{r6lKJ`9oBl*FW__YJ?4O>#PZ6oyMIjGotJ>z z+_Qt`XR-6`KNuT;^s|M;eDNjbc`u^bESrX2SMIta-s^4e<5X3Of?3CB6K-w6fZw=5 zV4N}wGVT@SlkWIT(WABss2m4#qIBaUJQ@t>3ys#KwC*P58SnOe;{l!tKUEO_Ms0#P zi)LJ*xF5h@qp~YbVPv+Z0s1Z#WSt)GgOO*3mYWA1^uMBEhbRmr$5O;ANPc^xsK^3) zXF{?H`CTclTJ`1ok5O?oRxh@6wLF1{WaxWHH|jZR&52mX*n6bheNq?l81>S=Rw7z+ zKH9A!YvizZ>SdJK$M<&+&v>A>$Ak5s0+Gbs*paja51x_%Yq>-dw<#~!^K;%ZFIZce zyDeD92{0l;@wWOiJ{yaUw6`LJc|dJpb7po{yQkrOgA%bJH8h!UTX>Dmu@0k+hB7&+ zu3J~KlJ|5Lfd6d0H~v&*RbW@6J-GQem8V22xQvx^+~O64gb1UAxF`jcY>o(qEej79 ztksEc>Mz7bu?W4kmJTAS>H0eQ)lGB)~EMy2$JgTnmS~UiRCuG=^q#v zCyz_ot)lYtstG)GIp)4)SlW$eA7BLmQ)YH2e~npyx&vgenV)^|DOK50Hv*MNgyNYw zr4N@Y=fj^)G77fy?kGUkOPx0_wdB$`*ObfSBoM8R|MR6j@Jk_bBKnupL_|Jj%G4UR zlbz@y(&DDeL&+ys#NE{#R%t5_(`>CX9NpdjR)3tjD=UnmFC6vn%k04~flf1exh*_u%$h+g{CN5u z@$iXV>cQJb_l_2`h86&4TLoUry@!Zc3OQU|?{fqCiWkjqu=IgZ2l77lCJHPpvc?_T z{?hMxBQd=>p!5=qv zh6a0f55KL7*kZ92)jC|cKyF%;eX)|aa#sM>va7pR_@4AA)}>H(@cSPt`^~_A2ruie z&)gaa|2^+hUL}$8Hi1L6 zfn&qBWv1b{*lv0d@|Gm*{PumMU3a)-#nqE%7MjGIj#Tr=qS#t`rsEv1RouVXU&itk zg#~7c0(#4PABebrz4#CP$9482DD0iU{bsT9RDKOfOy7_s5Mm@NQ^-huVf%y_iw=HA z7_4-IX@Gps@rGAd2`8bWuB;FHp(i3AKjgaF$tN|FuRr?jA8#CM@{pPaMV%jUE6eBG zUNaB?NZwbcPv}#>6Uu#t;^H2h<-@F|ilpnqU+3=ONhAF>TPlWfz-K|+G-4t5O5XT> zUsus=FCs2;EpOE^@#O7iHeV(GYj_7?%NxtoX*fln^#y<%K|ty(z7J0iQjO6M9vyJ_ zeq5Jr4vqU^m-FWwE4&gab=CAzB7jPPpDn0ApPSSndi`8)^qzCsuoW3}#YifJ)1G-} zvyCX9X;2;IeqBEO2wrZBV2)i%i>@n>&}`t}J>0ZXc>dGQVz=n$9nVp8vej+roV_S!Hs&XRSrL_cAd^g zsJgeD-PR}O}fwtUOe(me4m9Zqtr zJ%xI9DU_{dj3`G7at1OZ=3aMWF9*W$64nbpw?D#c$2!L_YXH$`8z#RHOwH}j7gM_9 zo|>;|Vil5w?Vxr*^{Uz)2*BMQCY}2xV<2Zx@6OALhrCit=X}4=YJsM_DPi#&Hr~&h z$(7GLP+|g+*tau-_C8XKKW~w?AUUyDo{|JrMc#&m+TV4RZ^ObnrGu7mKWaYpV?z+o zn4>rw-k~j4IC)piy(z_)5@LwIyKhv0&CBSHKl(#++RUF=OYvDe!B39H*0%PiR1Y@T z%0q0=lA$)CimJ0=f~p>^mNOWZ`NLW_0Dj(f_{$A{uk#wFpJ|tWs;7tr`Au^^ax-10 z>j0j5k+@G*sd2eUwRWVBbao^mW@j9x^Xbv$8}mKWBr?GpKLQhJ#jtj_8`hLD5>4Ft z%o0XbYM2^NLQMn9idVltTxn__ZICUOE@p(8{}z3-`VbM{jok>u5$!s&eg5S+3oVQ& z^D8wi@%_;N&+LSunfYP9Vj*uNu9*ebw|1xEweUUWb5-2tU$;%3$8Hy`s2)$B+ZcQ5 z&Uu}%o84?bc+1oyWE|z?K-?w+;w_EPIe=;WlQ#KS5-uC#{=Ql`ST z=SJS|5zhWb-v6|vynTFEwpg?8^@F4QRxpmozBlNu=~Zj6%h#Aj zaaqS1{y<-Hb^))P9cTx8YC9lV5NX*t*`>y?rFWo0=!mxdI^+)915pz>NDxX`#QYW{3QcP&e0tzbnJtY?mhtpXzuu1^!$=v}BO4(w<)GQ&D(v3F zceUD|WwN{Oz>X(0yM6ivV)M~W>5E8(gIN&E39@N~f+;%s^E7g>cB%o84xfr=$y*~B zas3Uvw>*+lCErme5Oyp7#P#=kn)p5EHVE0>(gu&B5Zr3rVx*C3c9vS5p^q0|Qni}Z zJWgR@GI#CyNHRm~qHMD+bY?9wMf|Oa6%AA7cIjF?eJR)~coX){QHB9jaKF<8bXggz zHaq-!AWh``DNR9ddBS2zw%IE)y(^`-Wk#oSrF0xp75aVX`?0+k5%>4+Sl|aq4WW1UpVv!e_s{njTbjE-|gBQ_#WjF zgZeKINtlp$^!2p7x#7S251cWz-)ZO`OJ9+sas0Y|&n&S{hWW$a8jr`9%37B7$4CAf zc$>fjYxC)+*XU|t*wGccGB13$3UXI#cTER8_vow>z9mq85}%8I*R1NqBX~G&s*}5W}36RQ1KkwG3t! z!L&aRl;a$|&+>Hem1M`^g1-9!lLJtdm$2l{WJ zS#o<#Zr^Br?3*e{3Cyqzdf){H%j`i+SU>UX4_p9xdF1Ee!AF=Sn7a>TH)j)I+k4IU zV+0qJX8a^I!Dbl`it4pAbf{5?#JOl5cjSKx<#un~;$i@lJS{cW>Wcg0DYQ9EuOIGN;sZM8I>@Cjn zE(>Q{hY?^KpDoA(Jj-BT8xWw%-iAJJ#L`*8P?@T0xd zQM1{FsNEF~XSmmXtuy`xlC22g!v`972?h`=ba z;>p5KLMo%K8u?n2S0#t?I9|wZ=hWD9E)rTT214#xfd62OZS#x$PTgN8ZPM?KA?T>iyXpgnHO7z7J;+8+1W*^BNOx9GIMcl z$s#v@mO6zj0*wr*>*@V>ZZ5>6JX)`bprvj9TRz&Tw5^|Bo3fX5`Mrklln2D)bw`WG z=ZWZm65YZv(7-j^ju$b7xAf6dMoPi!JO*XS7Jjc*O(gI6z7V?BJ;J;0C3D2E=Wi5y z^@Bj0chf+J!9SbOx^Jy5fYU=w)*>M-%!gAr&bc=bL~~zufRvVbV{9B(6`(@nnX4-P z{+HxMo^)m4*+q5bgm+M6Fmm^7V_S$WrcFW>YewaW7OCRXcd60^T89 z1ra{ey&%fnn;JaEwvWQGOcbb?q_uNz+c>vfJczx=U%cmAi|XOQ9hcWE{d8j_=c%}5 zx2+vaS5@)H=N#W6LvB3v4KNiqD_x?f)>AlEh)x7`q;x{)d5^}ZB&1}> zuA%3Re0XZlQn&2gro~_@{9K6erg8$0E2-!-@i9UZ96Er{Ij3vj8aZQ+_N30oeu4d+ zI=mDHs00y{^U(f>)MVq=b0tM&80(b$kR4WpxBa9%y4I>vQ}I!QtY^ zhP*Vprxp1$$=RBzCf%wFyK~fJfws?I_t{f-fyWnomh`$x5fM^ERDSE2%sYYTH!+uR z!oSZ`A80z>2Oj&}0lpFpIKvCIN9wJzcchM8($u5DE@`45oK?`Q&}uli@Ygxh>j)PA zCsOjjrFStDKLzgBza|Im0Ad~F#!vHLj*#U}xEffX@Hy#YsKu^iPTcr8;CC#xxKUU2 zkds=PUJ!~&LA}p)*X&8n21sK{@v-5#UbyO}8>kQ0zm@Sja|eihZ1done{y6YP$8Dx zwSjUjh-PB>?>mFtvy<$isSazk@5~eiCR!c|zWI$?&#MotMRJaTUK!*vd>Y@Q$UF1M=Ms1>{t?R{pvS8}P$Q8pn2*Vb5=}lMLM-yNF<`s}TOA6i=x}f=(&jWk0f=75-&e-P4`Ql;@_EB#` z7Gu%4fjg@PeF|ThYpk=^z4QZHe%rLpFFKEMJnX?!)9U!wlF2eRo{}uL2d`&2i^5I| z89{I6i_)MjB~LDuaeoDYc&|EWls$SrWGbz$RY-8FsICo`|8zq^P&=FMlgYCwnVF6) z`x5ZSe_Zdx{`w8a4QUGAjgh!HR+!i5%j8uEN?wB(#>8qX<{{{V{36%gJM0C7qOkR% zHmMo5VuYSu3;W~t_qF0|HwJx&4`q-D&kDfJimPo{k2iSfgxum?S>?C8p|FFtQ8NwtLGG6<=+7F|X>~UUnXWd12 z6y+{)^P0Z^ZZc7-QM>OXoj4T=w0W=Fsjoq-=)-wBXWlH>n`gDtS@htA^-bcst`Jak zU7wLYw6$sk3(uC8danWPXk2tBO8AUM$(?%P|Fg4zH&E?7|7^PX!9aWzr4ode5TGM;+H_5IVYK7PGK(jTHQvi$mF2#| z7(hNfFXXjt!;cSnh5^N$e)ymE!br}U=d5?=_$J*to?nKhRcTlUV~pfFgaOCieIaGv ze%2??0ey;4xi|j<$D4g4k}@3%SNVltG`|>qHmFX7A}Kj{RrRQs)jawB8o(H8rg#jY{kKQ%~ee zjA}HJ!!g&D#lx?2pZ!iebpFm89JfoYPa@wtwP2ioOd?KBz-}ORLF7X#D(i=)LL^tNGEO|9}}0 zxxMBPy4){MqpLJ2ZgWTOx*}U!xtRigjviieStJ^sy(4j!y)5+Wk z$7inp$RXM-$PQ14IxS> zWIsab%{Gp_>M^){kc z*ZndPnhrhsSOnqXBwH{+rd(KY0}ckuUmC=0cRN2`7E-AJpZ}FgPvlfD*#xiAzd49- zHgFUcKMrZ@8*W;{ECsLbsR6gQ=FQLA4?9&naDq z`Vv~{zOXM5@FG@JAZwl4PO993F@SRfYD2Uyd*0;Yi`lTGd$rn@4pX z-&eU-u16b9TR7jIZm`Jt3=>D4zv6GT@Fceq9lLmfAIGd(r0EdKpMdy2+H1G->!#iu zunDR-iNeL60ROO_8W3@1ZFrnO&s|<22)^G|;TDjEeSrXfZHI2tyU4SY!OAC*5n=K( z6E$62K5YlCSly$2A~@b6C{*GVk@_`m^S+ik2%OLD<6%{c0oEd_4)$)@#ODbNpavwy zpk*u9D7#048Y%s)G_hSPx-qq-43ysBD8-|1zyfiqlKxd~Ld-C9oYAt851BQ}^R6qp zG3q#1e)@bm75b<2_)R$xolci3f2ZI(hSsUoqw(Fb3UHs2tcqINpKkIBw|x2!KrQ*V z=H0n=DEb0QnGbp`(LW)RdPkz*@}^#iYP4+s^dKq|d7Nb{!cmk!fL0xrigQau+=q_Z zOhv+~0i%|Ik_)F1tRKx^olArbui4OuK#<;5t3$v|aV-)4!3Um30N1h+um99!JvYcI z!}jwHf`KUsjQsoWkamxV{r-@iRsF(mjwU3mn53v9!4O5VP};l6$O}Q8X7k#bwkuG= z#fm++?EOWwd4qK{&HKTLK_S;kHms1toK?Y_P<<$^POYrecM3u_f-xoSJ9j^i>l)3R z%*S;BeWQvuZ|OJCp{i>lqZgw`Ozi7Bk?BE20Qd`d;fXAcm~ zVz#_Wfx9|b`>Ec5&B@M)O9nHaAZ~8X-L@4uZ4#Sr8!~mqD;np7r|Cx&@@<2a0_Ltx zbBw%h4?XpD=u1v_e%zQ2^J^<)C|B?Cu6k<|UJD)*$-=*}YB&ri1LMg*aiKR~7?Rp(QI*hUDW5uO;tqT5}xfcOqx|66&@mFk= zSGKeC?d7`j!6VAtmhg~9_5Q45JaMZA`kZo0m7~y79CycZAMy6CM6rZ@Bi7*B(I>TZ zxd3g3?d1w7aWcgtwqo(JxM=Ze(WM|;6r9Z{YH_k@*FQ{!JRgw-ou#~#Ye}`9glqp_a_Vm&(g_cSN2!HSA zms2r%x?QNK$gGQVlnTM70I|p*Mr2B}4x3Ec8DC@)w!Dn~bdev@_2c;$+A9HqNlHtB z?Kr32vQmV|-s#Bp+{4^s!N`lr?`waWcc7SqKSks7CPr9?3#A7QJaf1UKwT* zknBu2V32I^{JDp)cl@Go;o4*t;e`lPTB3t3EAv{ba0_mfZBZ49m*&=SZT>&@&ib#( z@NNGf-6;*DMNtNbfYg*u5d{H}kPwhYlxCE4h?EF28WAJ}r5j0Qgp_obz+eN`_jjM? z^LqY;?@!O~_g>q*UAwRII?v;HA3t2SEkas1(^Zy~sCw!VuD7piwkgaMAteqy<5N?a z5EKi_2r_>gHi#8fM$ro!R*`T#lVC@2JBQ45P)zpC?u*HXB2OBk z?I*Gip$7*<-Ya;&3mNWB7PSS8 zNnR0zkn@)-DEU9yg-|J7eG|%z;Ze%Gb8y;SGv2xY3`Q&+Qb!+5T<<|sYXI-Peo^52 zER_oLqJ%@D=(1nM)pQW87FZ^{XeQE?&n>#;h zmp@P(HmlY?6Hhx0qXU)bhf1-7f;j1v4u?_%PpB_WKy{gN0gzMQV}pRn}0SuzPa27-F%w zeC-8xN>h8efm!}=at@v+*U#YJ1QF{j>4)K`KXZMXb{&e(yW>Hr9;GfxWKV&L(09B#@MwTvh+O!@7gxE_ z!K_j`pP=KFMQQWqbY5t$J8Chr`899rrO z-V3@vb70c`m^eH0mABXEeh2#cI;?iuU|`F%PLfejb^WKx;cYSy<|mEO`v0;3D%WW_ z0xD(D!!QuA^tepsR4VsWS#ziJa)qM~Ecka*Owc|3N8#!54zD8XL#*_3)3Z;3dh4Yn z*0oGa&G5mo+DY_55Kllw0KU3aKcL&xTg|lmrQJI84-Vh;^2D@cu?>_uQ#6^<;z`# z7LU4iIy;Y{*2mD`_s#~nPKB%=y8sj5gYiCck84~4ep}h*&@Z&lyRCjnsab*BD4y_{QPFV^i7~mk~rt|*z#`|3cnyaXEwFp}P ztbp~bMr9~|Jj%Sdef_IT(qE2O}o5QQvO}cwB+2#%yGDoturqFw`UF$rG1e z^a@lb9TRhJZblHx*GF_HCEc@mrwZpLo=~_~;H}d)fuVTNmC_#dNE^AK_Qx^5mfalO zhChWdj%@x=T5z;+#;M$V!5Os)#IWclM^WiTrtxs{eTG35c@_VBYZ84F_F|80v#Qyl z#ey-TtK|MuQKsXZ?hV0f8d;qv!;UenA6;Y9)RV}cEE!Ak-ugZmz;)9%rA7t)v7wpuQsa>I7E(t?q^;B*93E2U zbQtKP)2SS&Tc}>JjY7>P>J)X%kM-sCHTTD^3LaoseqNz-|6r~eH531^lK+)J_ac^RGv<5B{dNz#f6xkR zlN{m1VDa~$L$N>&lsy*IGWYbA3EpA<#E?$0)J(;)2{Qd4Y#*3{3+gCn{p?RICUqNY+ZOP;v12?; zZT&HZFLKCu>D37#C_-mUTR@a&y_*5$v-8WkxQqRE*U|VAJK^!Y9mBlIxqnvhEmP$K zmYAi7UnNjJ*(;rhnV`O{yl6~C3Ez(lBFd`g7cTL06p%N#^TWl@K#a2?+VZZ-+z%6eB}!fL zboJAlT!5c)Wlh$U4Ai5nHETriT0?g0ycVn#rhmS6!>H{WvDA^%!f4p!x(P zK&F*i7j4V?q_uKL@E8lo>rOLE$T_>e)Pdhd^gH~yi|%`FTB4n!R5{}HW&D0=@J zKV_%NnuB!^o3^mhjdIX|G3fXTo{%n#6PQpX4(2L+Ysr-i_4pOD=!7AhK<|jcy1SU-vh`9=5$3*P^1;bzilp>rParC$1cEdZDm$4Pp^vrJ-Y!CrP=Nb^R2B#z9=g z@o)XMIM#U!=4zdin64i~Z_z9udHCENInH2->5z!f*cq~^e%f^XdEN-rw~io(AVjeqr{enR7xo;~G^WxVknF4O6W~b=_&H>r0sUI# zRhyL__2KarBn{$TU1@51GpzNTs!KNa1|4Dh^v>-|U?tcm%f{pDod6*H8@n~!7SQ3# za^g61g&shX7+VZ?Kwb=GkdWtZ@|7}}1j>mySWiGN6-C3bj&Ufkjt~p7Z z+1nAHmdgQZ%tZynTz)_^MJ*V+eGZ+R%2jMI(0Ewq1hS4=p7cLU)(~MCZPg6T(dJ6( zL$Ef?G`H{Q5c6j12PV1goZ7i*02N$S7?&hL7NBq6#+u?_x1K|IDLc;)o4v^KyN_o< zp+L{+wKnFkYUVAy9_@d-P{(_Z^f4G$HMKi6(U%k-tLKBwr*C$^*KgBmy~1>3LL%IV zVs~G}YVXYy7J_9uH%w)_dNR(Go(cY~OJzlQUKRDsUd{u5buL>#o&U_5NxoF{dWm38 zKB<&d>J`@1_;Rro@M+@I)QO%iH!+IW<|l>~?(ct-F5o?N#_g!e6Z&xH#EfH56}NY=2{Y+wpFV0h;z|;q4dj+N(Y$DM)4P#~*h-+kjV^ zUXYnma4E>Ok=^?7HfrVWOS5!ck#o1uTj`Rg@K8=miL>i>&ev=oL`c%~=Aab?lRj2m+Qs_*LYi4N?^EXxzzsj_r zGVaj}D$`VX$CROC1X8iR&LUn`C(`u$gO=i3BO_gZ$D?bj;Iyhha9V98(WvWLF9byE zd^~Z3=h25Owd4S6@aTX7adeW!YeEuJy;Fhun%DvUjNd10D{_Uu zkgLUkarFv?kRhSh3S8$Py@StO2ocBg-PDL0 zmxe5;AaFsE!!O8H%QQ;IJAD{nHVbuq~K=J zyj_uh?~>hZweVfcw}-z%^xrBxmxuz3JZ)z8;c*&Fv)H04i=_Cchra*d((dc21jRm5 z8uszy8)ZGF*Nh(WfbTNeZOLkmZ78P6d&cmi`SKU0y+34gR>Aj5vb%&?&M`AnR(r2h zi~9{dZD@GF85*Get<$Th1?@=+1#iZ#7bQyRPkP`zbx+Xe)Tc`!i;(#+x{gCjFyaAn z^ib9j$9O!5Z5RBp@K=lSf#y>&(a*w=Vh@y`k2jzs0c3r7bVKB1+v)r^p$urmHxd`Z zvVTG3qd)U2X0bM$idh#hmdR?@B+cj_C;dFwJxy|+~9&0p`(Nz=28gVkMFxXjTlJt(6c8oXMX&tqS22Xuu~ zUc6@*&tNg0r~J8#<3b%NFSL#TNf5$1}+^fQaxIeBLa? zi=REAUg9s`s9E6eWRw?>c*I7*FuRG~^%2%hoSXJ}1hD_D84u~!I1iMUOjG{nAkh9T zm8V*&i~bTl4R5;}gvm{ViijOan2~t#orc}!K#qL`RZ6?!x7^1MfP=_?w0tKJ>6aR0=oSGf>gsy>~cfYpPceQ zk~qtSJ_FtwpQJ~V(=Pq{2R8w!;bb-!CBRyzz@|v*rx;P#kdQ3>s;;b-f8|Eq5-EcG?g_Pgq$R2Ko90h zitDg?yjH*V{w}MD?8&L#XnK7bwIv92Fswu(SgBV=K$0Um`Y}HKjrm)CD3Tg_f*~-F%ZoJ(6bAU~j4-O>rF&U^lVIu>t zj2*03ZM7e}1a*Ftb853;j+0f}h^6KvU@y6SjH_$D(a)a0IsTpKlOQKEgm4ysHw_+C zC-)ALEWI*AalW@U*d)|)%G%nlrYJsb4dHPf@6|&zb+0K$b~Bu|iRcQa38_v9{Sf5- zkv!<8z_YHZo(UUPSchbXyi2EFvA;8SkiT@)Rdi<0i8{Y~_jywC^?}&#VR;e{KEFbI z%%1VR;GjdG3Hi#dk;yYdIjitKFdgdk=`MR}&N}2@D63vl2Ls6rvSnlQmGH|6-*)X_ zX(oNH)uZt9>p3;M!`htCPwn)WIkhL(@Q(s;l`R` z%MJC^s!vkDPje#HR=0|lsPZ1&FeBc)ImIoAjJ}NtCrN8tXQ-J2($z0oLg`t4@;!u8 z&{98Ble8B~lJE-uxO1b!4%~$@#2iHW%awAL`h@sgV#>h;a6Sz=g=p7IDi#)!=%~=Q z_tzGq`<#~;epSTb=vwp;EMjn)zEv}Livdjgsqa+uifE^J(ComegqN@R05URFWC|LG z(XVayR;UqPdcn`aacLGv*tJt)Kjt6mw_s0|zghnkui|8Tvj*I6BK7s>bkB=FPP5#B zsR@|?eao|_G|7aqIx@TQqBC|%`HjuK9!T8q^-(obcbWBYuO$TuYog=1$uVhkEHDUf zLl@%;R4?{Go1Suay54U6$Sb{4Z{5MZvHTgSm>3<@_F0=?xOne9Dx_ht zR+VmCm3Z#6HSpwmO`RM!QF{GLmJzfFe0ECeA zZ|o26#wQ)l)q%#vN-J3?i_`fGBoa5K*il9}Xg|~JYmQ3eer}4BYp6TedaBozyHgVb%u~xovJHZk+cKKA(K4D{Hgqmo={M2p>HmoLDEp%|Z)SUSK+Pl22q+;_B zYoaxveftb;v;)bet>Xb}*y}ROl#30c^ok_zCw!_U}0X|HR=@LOH0{) zL9|<4eXL<#)hkCY01TM0WJNdK1fGgJlHVLb(7v1fdP7iMBP$cIIq5hQ3O(Re!c{Ls zb?IMy9i00PQP(PU-N+tkJt+3d0LY%R2TKE%zB_7{kl7wRNCV0KKrxeD(_MK6vjN69 zdq$&+K0{T#n!n~Jatkb}h9ffKe@b90@|myFXLMbVciMC$mg>|9>cYJHf}Q)m%#SG$ zY1UiJ&oCc@KT8$Y**9Jx!71>0rdV({UL|dLZ|}i?(RudsuwDn0-lh}tA<%jX=k}nm z*0$~(TH1aE9h%2BdbjmAKs3Wf;D^Ou5K<5@-w{&B|TJRV-Z8dlAzg| zyyHeX6p$X*)7aoI9n=sw(cEFczBYUAnla-#?T?2hOZRFQ&E{|%-+!|?$mQta& zrmJUi9SvCJcMR3{?>I96PvN!H?g2-&+sJ#MtGhT1cj_APc7NEk-ZG{Fv?nu93~k(x zv5)b3L{xcxU$}uL-n)q{?n!xvR%s1S4Uvl5ekV=!)H%3z@>$kex1ojK2O-MV)pK0iRK3%3Sl$ekgx>~XmUNrrX#)qTemI%|2%-5&K$(yi~ww52BjpvFR zzoYe{CRBOcjep{3Yu&%ga&5~6PM_i*(HYT)g!0Myk}=+VT3YiY<>re`G!LKG#66$y z_p8@~HzasK8$4_iU-~8^Q6b`R5M6kOd*(%gAnnJWmwqjYH*;yiGhxmK(dBZM4&mUN zhL}cmMuyBT9tSC2iE_`)FXnHNwNfgSUDGS;_6+ z>m}&u!U85~Wk=czug86um{VNO(~nk|Y0hnam*byg#b9kgR304`B?dJ=?2W%^P+zaV zO2(}Spn@7$)a>7BeC*ZGfQ~ zHzmR^Fx@l^S*jwPcs3_eo5YMS3H4oJ$2JTDT9&XRn%RAUk&y=3EW*9D;)ZOZ>M)f1 zpp3|r>l8Y-g@%o`F8PrTJ>4(;5~wjfa3l5+<}n}?`j76e>r^u1RX&6T-s3o~dnLND zB&5w^{dtdO6~5Ymt@#{rYl#DW`Whz~7$Un31HXfkcz|c+zz)C9OR24KWYxudxaFl{ z%{Oq{mVX}pGLpfVDFZnAvHbLzoL!uTgZ?)3IGDS=H{Ua{(F`>6vcy0SHfLC z`Xf!r%irC)=pKg*Kh|YfiA6AQmnUD=*ttIYGV6(bI0zR}y}r_iJs)STEGIW~4%|Pe>VFp5SE?CK$KBTJct=j`BmFQNMo)=gLT3mfBD9rh)^_NV?^GR$DX^N* zRumJjMkG3Y$|8<|I}d8#HZ#UiT&_0j>{a5RF;4{dx;~((E^NIAtFm_YcL8?e~fonrC0_(xND*~5;bw&<0r;gsv9m9 zSPF0K^dT&+W?06N$a1A2-+(xc*EsXD_uhdouXk+3A${|T(+3AI|;h^ z@&>Twrx^iduY1FM;>eiO2-r!cF4!6zWGrJq@5Flp#*FY?TwJBKmyauRx3}6JA;dju;?`s6 z;RC{v_4}byC0ZOa$~zo|7f`Q@mW4g*i~Py_}lJuOGk5X|mS^5u4> zDet;QMXu|x=rBWg*fy;0&E?Xo?x2s>(9ZK{yaANiPGic~-DS^>O2h61HDuz`3mz&*2@h0-3;Jd>&|w*e36OEKLV^(=xkPmqP)H zY`W}(9*f$GU$ga*~hcKUXISTwS zcCVOIB({`;2g={x>!)eU{eU(_g}H86qarDHD}h zOwr#w>)EjNYVSNyUAZS8#3dSTDnF$cw^bEAJZAb# zdx1<`rz;Ji{U+?GYBsYq8JL2Cip-IdT5DY-(qd0DjfKkG++efhjAdB#=>~FCrkqV% zn!8rga$9OG%^+&0RZs0{49cfZdjOeks3qPgjLL@k$bNWN|3;J{c3v$}{8^?3piI~B zDT?ZasAv1RuM#EXSz(L>v6~p4z8F5|BQi(&kYBkoA1U=2TurxO8_RoWX?K07K>*5_ z?qtnM3~$dbGNlH$pdVSm0}%zGJ7qcuo`(HFS*v*+Qq)YWs>W_b@0Z~$+fisRX~X@o z5MmTKoSyy$M?~P1;~ef7e*=@CmtnM!g2k3@{Q4u~DMgp8Tma(=i>kXe*kTX6unB~R z1FvnoTJttp@S&g}*8D55_U>nXyyM4Dt1|GHOHP58mEF&zsTpm&yQ&TsUSXo~BY#C` zj!stk*ywX@PxbH<&;_qMVGLVOS}I||TwKd6>tQ{`-eb3vSRN%Hpl`s#>Fd8`cP;zA z;jGu)8`;sV=iMSqj<==(?%wbjms}vq%^B}0FlbtZ-(3MTDYz}t^)tL2NF$MAAK9)* zveYZkKgsFyZymQP5|sbDyiSWO)pKfmKtI!o#{rbUg9Z z116-8HXq_CxIUqb>WA)Aa$X@;|Go| z<#LUKy&9wqyqO}%tg#{0jFVAqU+J{;2W{xj$Ah3#CcS#Hq2WHJ3zXL&9xP9785NI* zR_MexW^F(T|Zq5CG+Sj?WF;w z<)nw89f@R37Fr|3$D+_p*h|Z_2zQ`)uF&4Z+LcawtTYbO@U?yx<=F9m~p3>pzzL z8Rov~DP0co`?LZYXx0n*wL8z%(mX|0(bC&6b;mPcT&TURc_kda>^HZJxFI|1)iLt$ za=U5&cyg#Pi_q=LmiI;m#xiYefAY-nd(TZ1~t4 z;8lPoNJ-b2IIx}EL6oDx?X^4tBzjXc*NC~}9HPd(vVnx#qS`u1YIbipQ2YJq>N^jJ z=d{fW_0MGoK2U7FwH(m;?eBXvT~~^5#Y-~jjC*k2PT2I^XSK77)AM1H{fZM#-v97C4>HyRC;G zB;d;)FTo#ZQ0ZL;yyo|6AxD_EC>4i-(u9uMUhf|~P~CRED=C}}#6>VpAYyU$)yzD5 z7e$59&_z#)=A)e{;Me=GBj9|kID!Aok8Y(pB%l}szE@gW zUEA7w6gu%-9_&r2l}sn=Uuv0G^|-Q?oPcd-7+0qlBK~m;RU=qVf*XA~dkWi6xKL2L zeWgHxdlK}3f!}4*=XApI$i=9vSs5&DGKR^a)lP5-Z`0-$B9y3oll5ZTQ_ee2l*r5Px2fHp7XRG1RT0C!Ll%!6ElH*u^|} zW5<6?9;AUjH9k?79K_zm%U->;1x+)_Q{Y?6i-vd8_V}%aU$#1>t1>6jTT+zv)ghuh zXlm?VA^w@gi2bhYqeXlQT+JxGpVQyY7qW4%*bK{OQjW8}?MmO3A*M&q{9tzKB_DN3 z|K9IJFBjqPkTnM4ezV^TZo}wp0gs6zrXi1ElnEg}#p@uX1(axv9cK^AGY& zc$<_}7a11jb92l%pNgJIkwO{VbLbx&ezqcyNvn6b<2b%i3fEcr+yB9z?&o?+B=E7~ z8=`=JvuE|~HF&~IB1yzk%B+v z-YHdNy-bl~`qcZi0B?;D3@VwYhfI-rccMxZnO=8pMkw_y6hVlSy}o{}DrQ&F+%cZN zvpwROkCyL1yZSy|;*6F!Ow~4pLblB2=yU$W%&qnic5<(^e*IB089QaV4e?zgYrc5u zu|e~j|2R~3@F9;~GAUy!Pi)}zR6lxjBc&0}(PHuBc=KZUkY-}B)Y%Wgl=ZCjy(P|W?h9lB82w<1N}pMW{#4il(74MwSmTCS)SJdmzn+jqB4jUDLXq0r5y`^ za>dDv(d4juQua&0eHYYrJQ=&;>Qioynl!NC>@zQm%fZEy4IWsAH`2smfnhJJ>swJr z85XQiqy<`|S)u`jQt+B6pB~Q0o-H`f>&ku!9+(uP0LeQtu<3Yt ze~|-E(D2S$e0oGD=YD^b(s5z4ffD!TdTvf+@vd;G-5yHZOwHCI{k@ zabDMo^!Zbe^9hg-A5Ts+&crk;J3VC)uh)=ueDk{m90(?i z9h%xfojZG`iXqoUSny9W2udq?*YkfDs4B;t4GAN8hS2LL_K8M@2kc$F7po6nlzLKh z>@BiF=QgU5hd@YUd+&1Ww+$l0B#5$(o94KiJ59KC!ItKv=o%hxd0c{g9@`L!T3|m0 z5c(614*(`L-j#LYo1t!BZxywq_cZu_M`^jGi$0A^c07VqIs)y(N-dz%W%D>an0bJ>&{S98M^x=lgCve^6Ce zPZuOW8X-nmrSG}MuiTZ^rB;r3KT%iZemD-nH6IHE*%09BEG@e^(8+L{6!A#e$!@_P zi+o2xedovD-`jYk-nrM-K+NdkvA`cIC~f>gE@dMw3}jmC>S^o>LBZ%^qRXo-C>dIf z2GP89!E#yGe)7t`#AmUO%;o6&+?)7fA54jD`D_#MB<&)CN@-(mjbW?W=OGx3pE!)& zOp9xdom;lzad-&upoI2~AQESg(^yzbt!>ULQ+1@8MiRF1Pq8$zpLqp-)UK4`rM;s< zoWE$CyvX(lby%WmKL-r_(76&zjfR^uJifw(+2r1A*`}j{RajwY<#xU zdLn$9Yi-MQRfsSDet*6D>D(spn2Ng{y7~%)O?4sz-SsEYWpvNxh$OeqmTA+kISuj0 zQ!?)4L-dPu<{iR0Q`}eGsDY_8Z9pFi3NzOykOCHu15VPh_tM0Q^;m^$x;8I7RF3Ha z`{vflQJ|P8jv)!io2RVU(bQ3>AELVll^A(nCBE~whNWOG-j^-%ouhVf6Z7MLelu68 z8u_j(rslukp0$phE|9KtB}C$S5{l)ngMHvI zIj;4(vSg@ahxV&fnV)~!+Oj7m@+2-GyY1tjRN6fNe~FI2#_@7noXw-7(h>opH7+-f z^`Qon5D(aQ@BNwHkBVyhrw>#{mHaP+zjsEFQ8-JM@iBGiQxlBORiojQ7DEAWpP-(2gvcVrYa zx1+L3FC;r}5SyFG>NR=sq)%)}z@6fWhFlwKKP#l$(jl$fggV%nYP=QIV#Z?1bJ)|9 zS1bS|g|3q%0bM-%{nukOR;;w5#T~^tvvrN#KKewTJ$$Pv-r~Ow2@v@dNdAn>_`L+C ze1Lz(lNXy0BV6Sh*4;3DvM9RVWRU`D3;wQ33H4N-$uLB2=-Dj}gQo;;oV|r^-PQU@}VIDL}mCw^~4u9M*k6^l2w>9q%m<+>M+B%;+>zyI# zVn6BDmAqFIql{%6W4TnNokjb!yTZa~5nf~>Nvy&~Vog0ecRx1md8ZLg3)Fb^?))0a zrI42VEE+z-IKpb+kUS}>J=^Wmht7|q;h!pqC;ewMDf>9=H#Ya2 zg`GC$hW2Qh`U@_RkA+Ywc{tP>I753}Aoce5ZYa?r(H<*E`$A~Z^x7??;s+0vJF>mV>0>6=Qe(=$CV6jW%&^iNuGxp@Rwa!Nc&_=BIy{ZXW`h+c4o^{f8mMm(C}$X^d(yr-$@ zmc-!pW0mAQNdTqtGH68>9?<_if#hsL51OjH1-jn+n`z9oseN@VJ8I1lcjuiQUsoDY z50O$Y(7_)t=rfPW=styjQM-R;+x<3&TC<;{%o0;0;;6Ercd?n0CWG-hU$^@iv*`kU z9fCR=iJU|80{#;b-q0X|lpfF?dKB*@tkQOfXkfR|$C&2HGaVg&{bqUr9h=-W6DuwE zvHZg=w)d*khu|Yg=b>oUIjhqY2vsf76Lv4{vqL8+i-ec3*u`O=KEI^ zo88CBNKJ(lr5k_3rd+p4qoxEple(Y3%ODK)SD>_YGPXr?V_;a9f+xvg-f%HFFIO8n zcf285XyWt%b{aU5p5|YP-*6?lP2)CoC>6+0K!!t*bO9`?k#1u9BB)`Z+!{M{VLZT7 zq{q|NU~hhQ&6c5SH_U%!3*xjBaJjH+-}60!B`9#PJzEkBAii40>n|4E7_otrs3_>d?EzLs7|4Qvdq6~2Rxcq<)i+f7Kirt0=toWi648e5si+N`?q%vED znQo&ljMnh;=|*y;$W$3r>q0upp~5GY;|$w%hi{bkoE?O3t#v)Bc^RoObj=AunpPksOx8sDyrbtrR`(gVMB`^1kZ%YJ z)AG=%3J?`kE`pp%0nQ&de#P(Xt&$m|YT&{_#@!jSawT)S>o?Me1}6+#E4*xqzet!| zLX~dz%%`$04OAd>hg=zKvx@5(6lL5-hFF7d{Q0IUv28N#!weW2?ZZ=n3DMPp`7Yzt z7moWaTi=woV0_vNxe=jHXY$AI6a(c1QxEf*y`4+QGEDw+p~0WZMxq~n_cVV0YaTXt z7i2^K5kjPwCI$AY?fgg7_dngE-PI1_-YDOkrHxcrn(5$K2l1u>95}7wbGrM6{oA?w zr|tJ%%QyBrh|Tj@)7D2lw7qXTfo-rmXT_Oo-P)&8&nwCN&SYjVH&)g(N=f-HUQwY? z4c(A%9`l;+mA_|>m-m8sDL%-f_L*YVse}5J$%iuVLWQ!!;Qr_dSKE+xZavIzSUUb4 zMdiNT-t(x))$4;O_2bU>wHTA=)GQQxA>H_6XQ2n=pN^rkF?kO2kK%xey}EDyJ`N@L z*BlXc+dia}B0|!Ep@3ieH^kzjGq4^k)WH1eOOxw>(uPyT!4nJbp`#zC_}ocIi1@qF zFH)jFnrv9cuew}FchFJy=#8^Ss9##jsv@WC*{?;nRP}S#`VFdK%Ttjuy z(VF}_uo7|Stp?k76dJ78?Ug_4{W>VYK?r2bPot_x5R`n~)Iy_x&FGxStU@#y|a{%vA=uTH0N@*|(gVTeKlFaELazkYut z)Wjro&eer44LuP{1W1u>OG&a0i`zD;*NYNqtLic#(h54=cMnN#;c=a~o8FbwQ)`4n zvZM?0a;aGi*HmedF`h}WrICWEX~wWVhp=DOWG>68@ja>mBj{2#8rL2a4|{L~Rl&ph zU4}^}!$+)Zc4a4z-$Q)h-6T8$C)cg;&CIMjP2%A;a|yxjbC4rU1rD|nqWIUXKJ*x~ ztHbR+?|{7)cl8z8llJaJI~6@2{#3{@G|E*s#H_UVh0awq%bvCO7-rCu)sVwm$6NM9 z!?dgJETyVK-2u3x=2qU@FWN@X`gwXYX30Ti1~3ij_H9JXV=5o<$Ln8XSESLCw_y-; zj_Ls&a$LW8&KW z9htWY)g69S5}@|P{#&)0sIFxGNVnt6-{|{p88@ht@mkh&;aW1{YJ!m=*p}ZE;j>eA z4vZh7NFc>+P&`)21dwx~2fnaP(Coo(B)TWvur)da!3*(wr47ED!I_7%oz=Jnx*>fI zuB(I^AQ-=k0srUNhkH>6Z3SKdP*Qr;H=-*6js<=b2)RR0A;1WW&b3uOw(#R9`9T%VR^Ac}4_OQ#6B8h~*nj->+}rpjEe zB*q*l-_rR!{|z1cf)7?3C*qDN7A8|De4<(kefO>UW??#F&~B1FN~ZK%mZ*rkcvzQn zsg?YedX6|}hwn_7b*T%%wh6w<&my>?*hQ|(>DJt(k&Gf~>sXGzNdu9a1JIkgd|@iW z{T+7x`yju8*;n3DDYw!fJ42~x%i16+RLKs=JeLcTU$9dSEH-&d52YvQ96hRq{$7W+ zAN>e~YbddYAMApR@11$q(8DVP{AFuC*FNfWhEK0)rqPnCF)8lR#axT>UD;@mkmBr5 z-bd6gciE;2=*^PreEmz{4|NS#DLe_Q}y0;0L0K*YT4zsH?K+|0#v5F-y>m1 z8bUx~^?={Ce@b%n#e!FQ`-ABCdz7d_FXj4xdyRv8a+Ol_Okx z@F3mUDhMCHBQ-6uuR30NJKXvU|471y0ZKe8K7rfm{R8o535r(?Zj&}WrR9)(922P- zfGR;Q%c!1M{quI8?#@5FnT1Y zMImnKEomhF_lNhk;$qnC%W4>?4y>u|@>x}fu=uKuVw-3B&^N7mdR~;wbo`+-J>c5J#FY??f|~umS3M%bUwuIx7(-9? znJ3Y?Oq=T&BHCeg?`I8D>r(GcrBrMKy?b)C;0~@>mr5S%J(Phk1nNY5Sxf{ec^52( zCEtn!XH=&nG1WpbMQv?=XJ&dEWAPLMDFRzww@0m$Phk6mgw&E#Y8cexaHj=1u4u_g7w^y_KM7!Ma&!F8UQtI+Dba~d)MHo7Ods?Du;b9zv(wJ z{u=$jye+bUd>`=HlHHy3Gc*Yh2FSGNI7cWkIxFR$=(4n(Y`Kzu8LidCEtj|WCMwrN zL^82ezjM|%pYD*iB9zf++Kb=0s{HJ`^KBl7VHO7A;zeyyxxXU!=E&|tp@*0glog&L=FqYkLVxkp@$?POds zPv7Un2PIg&71t{HxRWh1ZF%>m$r()cd35MWKg;q<3hK7wWt4Hn#F)s`2e3s0<^%{_ z3AdNLj38hWcFM{$)wD^C^XE-nh6Zng5_kgMi>Z#&4ljEcVqj7hkZ(#o_a z-A&8`dGRmqcDywaWqeKsCREIG3H=8&^Q>}f|9$V?1HCVDIe*O8d{h5>`xO88g8%!L z{%2YKe_R^j@>6^N%L4fCLOjp-f9$<=P~6WJFBpPbaEIXTo&d?eu>zb&WxocPsXHLT?i%N_ykw} zO;3$1u-1>#))xy9weIJ?KIl>wroa9@qXzSj+&7SX>U$ccFF4(41={bSjaG{pk#%O< zJa066RL82y8JKVW{N*26@8XW7pkkSzn2;0#Q^Lx`?o}D-mlI~Dvb9sG_s=1P7jR|9 zhhmsE5`3_5@gd{wgEqk4FdAxSxy%#hMT|)pHni6-1<^{BHj-z&w|kW*^lh-xAoyF5 z^q+kYN@L@qPv)A#Y1=d)gNY5Nd*pRS7CehSq}2(3zvMDFbuyn2+cidi@bMb1=?B}yn+*N}Bqm?R{L zMS`jl@9Q$mSXbrc;FU{aF-|=S78A(MJ8FEE5XwI(T=-5KEc~5*`^kajq&72KZdyV` zt{G{@^uK;+L+HqHt-c1&NE*LmDIgVPozz(;r>%E=1#~`s?Ybq}3Y?7Bxx=L?aUv3m z12~D$+`U{K%Ni(+PZ&}Zmgja3BtR{dL+!wE$?*)85|%kOe^tYs=W`B!4O%J=_}*nX zD#h#Pppj)8hq6Snu*@@konId{@Rmo~e007QhvnIwU)$z^Lsf(3w|zE$LSvip$&NVY z|7e$L4fd^~h#W{D0;njgH_)QpQgj{_kU~sHmU|3#IEuWcm{h-g^O~3z%;Xj^%Yn*J zuH65`!el$mck>+fg*N1%ziLE}qmI*}z*fpDALx%$Smd5n( za>U?=^N+h#5V^hd$BE{Xw7l+7xU|?Lw6~iWm1ITP4AcPm#uhN-k+lv#RwB0@UOQ-v!Hx$bo#ILwSM6B>1p8Vojj6sav$?`gH7JOm)?lG~tbwm* z(fww3@$F}DjRG0*gL})UJ4?+@D(GS5=a&{9y;Dh5aO$qqBPKlUG z8gG59zMAAI%qJ2lC6`Vzw?O##D-b2Z*Xi*D2VGo1SU;GX3O zt!O>V2d4=ZN4h1b$D7yZF{MxQ?qN*ij#Y`&hssAnM!6!Na5MLeUUSo!oW(jQve)2N zSaCf~H;E~=TR0~FIPp~D+Mybg-oa2fqy_VPaMX2=7)fL&ct=5nIV+ft(K3!DNRJTF zh-X#`uft$YVsrL!UgCJs#M&v~@h4|z-FNJkVHuT=QUc!3Q5=wW zRy!lL;9KEEzEvum;iBTxpc%+lR1LoKZ;m5S?sJ~RgG6R!t7AxcLv$w}WGsD24ta)P zrzZz8Q*&yt7wp?I$jFo^%e+j;2XgOX((S@=70Xn2;HJasHsCtKu-jOvom=KQ#nB2# zDKzKxzHlJPbGPOjpJOEyPt%Q`%r|lGBW5)@*UxP?K2f#=v3V02nnrW^FLS_OKn&Q7 zYBFONW~CyhPJENwx-N8}^c^_&G?Z5Q49sf{MzoDs()ZExHuCM`V1ehcz7U;#%0?pP zka_HeQz_NHwry8`CN1K2Z0)Ku^lWkk;5Rrq?EwlG;J1@f6ppdnrO)~nw+}K1Xm#u2 z2^leQrzrz|?8}3WqV-h;Q+U)r--nX}_6-~HVP;|uK0BgbJxl4epdXzTp7S*w47k6j zt-FJRn(R}0x3z!R$%`_mGTKg-oLFp{br6ISlno0#zMb5hWgmzJcOx;S-Ikfbnr&8c z!(}+`b0W%V%=Hbvmc;90UXhN*3CR?(2|pOFZ?ec2eTB zP}ulwa$#juFyh%N+WsI@V^w#gtlbg5J)@Dz7Mv#Y&W^9r6wU{0a*T2P0awUiJCo7n zm)&WvngY!o#NfM&&3(DJYsg58*DCM_%+?)Mr>x4wb7vP>TcypC!Ua=K$V?72C>Sxu za5Vn{RSrxn`iRihyEAsJrjak-hTMha9w>?>aL^o9Nzj=R(2fIHnG=K{h9zKSHEn&C zDmj#ap*9QJ=Iv8KILg7+rOsVF`mrLSRbU#LctHMe7j7CjK#8qbunsrf9p?`sW(epR zy_K%Wxs}GyJI)-nkuO1f)Msgx%p^Yazwvp^aqtSKF(bt*o8TGt$OZaJtbN1|3^17$ zTZF}=Jn8h$8Wo?0j?Z29e@|5~RXTEc5?4UMD!?UzgI5N(MiG~O7k@FFy5Y zv}CnrIiKOfFHL#0Hq^|-%nv*Y{Of#!tIg9%_y~f*%Cx2 z31%KWx6M!oZe1nGp=jcgz~M9TLR>kB{ppX$^1{~?=ZI+qrrq-T(8+UfhDr&F7pS(j zz?uZv2Qx9V;o6*CyYjVG{RC;;XeXXu*IqO1L{_DbBN>)JcqwArPw0rno}zU4*bIB{ z<;@+SIx0!u)xPchgp%Rwk8sY@%(}pp*xQh!c^k_k+vyb}=-4_@S_FNsLaTNYNbH9ISq zTUJ=>GoopfZ(ULI;UuDwF;o&3bjLzuGcu^7=k#=nkUz3z1M%BkT3v*wC6)3agM(2L=Wcz13-&RHt%*o?KjVAf= z-<#!N7tDQX(}u*>*Q4js`d>E?ttw=z-^*$3OPi)vH^ItdYjwzk% z^631(2nUDrCq&JOn6EO$8l;Jhw(aK{9pDs>nQ}DJx%^zT|Q%{%UK7`ixifz(EPm4`B{Zo82B8o9e!POf0A3|y=YJjCikj}%*Z|8_@P9RP1zv`UAP27@HM2F;( zR~}{43w?Miub2bY=TOf-O~N)uve8i7%jW(!Er9ly9_LWM&1f4Nyj$uMoBuMyFeS!} zjdN1meD#G!E@=Jw2vtYIdE)~S^>38*rhl6)mj4s#$NgO@+L&_iR@#C=Jq%CPYihhVU=ywi@ z{4(c2ZD7)6wsGD>8l)tltY|U;vx^)5Iga&Wd+w(`hp4Oh-nxvazo+Pj#<)$7TknuY zf>hprX!?IGY7smOtg}Why>&t6a4b*c5U#Hu%dX9!h4RynM6Y-7Qm{F4wI3 zTV!BEl!M{k%1B3(dm|2|@pZVY=NEw`g5eC(5C%r+vqe+eUir!)!SxqmOI`E+&4NTy ztJ`&%mm*VU&4%2)hWOX7C`oMmvp|(kfg2jIsmQjsQ;)SyS^3^5j8u!MxQixZnGu%% zozN~TJsT_kp1{Kkd)GU?oPzUi5Uo)yC;5kFR7fsfbxxxWb;_DYb(Ee0<`*H>&@tje zOHKp?)0n5-igU0=%X|!c9gzA(ekZH;=P7e}{;-}s^o&*-YakAFAB#}jk&kyMu0rrb zxegYdafT1fSqC|mtAUw9-;$4-*;nAoPEFv0m?l^_9nu57ft3$mfV^R?X#x!Atm)2o z3wq+~RQyqe9652nxsN~{YtK?(uTd2gq#E~84I~QObqp1JiJxQYRL&5tnIq@6j0#*7 zX$^>*+CVFn!epvb1e_wR*5h)RJI}7V?Oyy_> z5mSxs8;HFrGtA5CM;59H4-?+3$b189?b>#uR2c^(mu{ijpkTWksGI8-C>q80kFq>Q z?ZHh=1vQ-yt-xCnrOiI*29^PAy=)ff8n(oCZl#^i$hsLlTP4_Pl^ zgtU?mLO=He2qR66Op;l#iTQu{5dj3b@8KtbmnwQC(=}%!zuhG9$&`p*VkGF~>q>{m z;#jU}x0Kgv=R2>pZi|KD{_dVd`dzu;D&n)XcF&^*OXCmC)*rfqPg7bQT3(@j%?h|f z%%ONR=`?no4fMaJ+yfzU;DG3pY{Mshz)P&ZW@A=Ue_ny2e4SEm5gXYAts|4eDyr^} z#plE@@@lo}Qt`lY)l97%v(TgJXCdPOLEc|Ec-ZMJFhcajvPmJh{7Fd@8|l~ISSDyg zKC)*#9IqH*Eu95W$np0&QsPZCa?FJCS_7dh+=`*eWw(n1+2M?@vaBdFF0Q zA3ON-pnE?>Q@$yFm75q!e@x{eF0V5X@gIF}2R^*Ol9Clx94Z%1Yo37CSwOVrDwCwx z_!d!O%p~Tl4pjSx_dVD%e+wVk0*cP#mrf&sDVgX+!DJel2G!u$KWeiVPyZv*MmmZP zG(5X@#2iT{>WbBm>XRsag3JIWz-q2grmS|{1_dRGLA+}xkJBe zt#1mP6t}TJzj|wwrjoVR&eg8vM1B={rcQvvUyt4Xa%OGVlvMIo(9+A?qtKgoEeVVJ z@S~xznyb|QaHa1%>$ws*-!{XL#F5~K7q&n`$l43jP#|GffQRR|>m#2Hi}zmJ9;Zv) z#-66;#`w``e5R(B`z})jn>9K&bE&A%kA)8daEK%=K8#Xuf6&O{{;->KbN~cD9eZpB zMT=bc!md4Ax(?@EN65ISL{z1&C2;DMuir2;?Wq(}=JGThgdTS@hcj7am1?vAKKWf0c#9gPGRM6x!smN9jBa$zS!gU{!d%vYypfa?9&FU^hK-Cs#*zM#|OB2Ik0S@ zMtlmo*3tzJ2)whOjzB=BYDQDs^}B>+r~a$Hc3#ev~DPV@T)f&8R=y_n^z!LJc-7~&Yj$8qkVetD$+SpG+(p$BWpA^IlC_6PuN#Z}O5{|^E! zpwOltt6Th62*l*W^ds;~H+UGdJxbt)qja|n%p|f> zeJ?}gZV&|y)$h{?(WAzE?_BGUfJdfgy+H>vy&ds?2=l3(B+!J(>4i$}qZ$k>dG+6;k&sRd>k2?*%ff~bUObXENx4(LC zti4VcA3DUS(uBX$a zD2Q>jy$17@I!)}ue8%h>47CjtqwbRp4AE8^aPoElzp)jw&{4SG2Um!mRZ%){F;0#g z+3Ev{epckRsfPAwInEJE`7!1=`Yp0yNUAQZ(d7&v4-OShFIFZPSVCwW;R3Lv)Vq+S z^*#cMCE6bZR9r0}Hf*ZcrQ(msB%7VzOO0_lyytL4WOV3urjBm=jPO`a;riw-jeVZ3 zMIsWvXouCrXRTynMs?+y`=P-)gWa+vj!~ARLNDYWMRgYzU(YfP3PTcmuC{d{jgnxj zp>J6{8@V3f`clT&IgeiRJHHFYF*jF5-g-?lbM*sy%#XN{m}y%s#_u}Aw6DIRHD&~JQb?!#WNI-Q^y|xH(9zstM?9J8d!a`IJ$)rF z%u|PxC!!+7A6ZCrK75c?m3p*VoqW{()&Id*)s%7hM~1m#NOMDje`B*$Pt!+#A5&{< zVqu1$-YdtU6guxZ7P_7jz`J(!xcKIiDRa9TGl z{|~}=6ALa(omUAe7Xbw$>$>@?_DgU4p<ROT*&f14g z*L=wWs4^*Ylo2KRqBUT|8ehIPG`Duvs!s8@L_Hl@lPPmI7a&`dj0!XG)&T1+ty7lv z@#(!pCTFIKYJQ2SC)XWU{>i5-IB{m{^7|M16hu_gq#SN_02jdC5}XUC^!v?{W9u((ydc7oncE%II1JpS;cX0}TY(ihdV0es*IzniQsZN1Gq*2L zM#kTa7umn1PR!8KP5kC#;j_CCVwBeoJS6bw85r38#Fgh6)lHQ8weC-IC`J4Lt293s zPHO*Hwlb66l@-yNTZM49sW3uX)dw-{UuQHK6xj}5vFEb!I$>uNoIF)-$9ckval~aD0gE^(^$;gclBO%^7sV zh8X66bJX{_>f!ZKv#!?F!U%a9C{5b^>+R@=`PyF}guOPixG2KCV|<3uZ_)Ebz6w0P zYQ1>({*z!+i>Q$9q5E{G#WfVXV_PG9b0*xMUxjjg3x0Pe8Z)!oqR3!S&@&Z3Uu(6D zD;@N4D&5^(xb+iL!nX+x>5=4B8l;MpwiyR_4mwoTX-%gdcbx8?=r|v->-0f-;|;&e z7n3pM7-|H?k4)5`>lrHuYb{=}v`EVl&*|<~@%#L}o5i(u;K`*c0X_8y5?$I&VlB#H z-1?_1rkA;AcHUK*aY|W#;*8avC!Xwr??fY7w$k6Urh4m%301=1r%viRtW5?p|C*XO<1 zr3Aw&Za$nCY!tg6&OM@`)J*;f#?<5#{&H*kC_v`+&UYEuFYx7hp|s7w7D4l4n?6^? z&+tMhZz{xgm_g{?BZRtznN{CblA~FupJO+U&+vnb5%$A9?r(RW`K*HNz}=g141zt6 z0cJ&bvvGSw}t3#xniutrq2fTtiaSAe8D7@OV(C}Te^KThJ#$GyWPfiSlYVQ=phT47s9)9+CucpDg>_(TA z14z5B-WciR@~0`QUP%1KSEG)yLY{#qL?%q5wC2Uh2jS&M38n%Px1`6>tLm(+ipTLZ&auU z)@iKGwnfP>bMzm(J}RbacmW8AXd4Zb6WGnhJ$ak}YsEH13TtpM`hfDx{}e<>xZUpR zJlOpFy>;O9FYsRb#DzYSaHDw{92BKj&LR|W>bU58Byu9AG{pzrz34+FWkN|_ZYUiN zzdTl(fBq}n$AVF~=44cg+FqcV`MR80)ALGhROYc{TUS@)d&grIXxen*u`c-csBV>` zTDl`_P(k3G#lYPZhSU1Y-FA{>Uhl5oUjmnKK{4;Ai+c-2bLQ_-TRuHs{=Ind&i489 zXM^LmCCJ&3PpqFVs)Z*nLE~0rZ)|XC2hRC&ptD%xKF^AXQd7(@jfK2DM|a>4Uq#9` zgxJ}=s5466n)RxG`(7|(FOI)xK89wx{v!IstYe+67)FlFgsSpeTPsTCu}|s%3^1P< zsev6LBxvqpG0V$1#c{)b!;fNynD8WRm74H>b;6RGfb4Oh*irxYil})Hi#wb*^A%fc z6w4xN1%=1y$GY4&TvT7X+MV*n0~9YuoiRx_h^Qif?}gZ>b$27urLVq_Kk=pf9Qrs>HYj*zrcWi+ZN-YDJu_#!=0?n zgLexnm1z&>zBc%Hd75v-tz=$vU`l86BfTN_%3{FDnq<_;-`h6KHg|c!A)isVhoIZ9 z)72rLw~O8F!&pCEH`*54qz#f=8L8ke53TK_mC892zP`u&F!Se!KQ;ny%(QEtlnlA5 zURF^F^n}i3mBa+X51>ly1sIRBU9m_`;|8 zwwD%5%luABebtG@PEm=W+~kAWD%lb`Z^rWFy^eRkXe%G5Je@2RUM$X`^Y&QxbF((X zHELEBtL+pkiv5vBgG|fW5!Oo8ia(K6s8^Ky*S}rk3Qt2At594-T-9&|LF2$xU_jXPg;YKE_zs#C00dE33g4Z^KVAR%xp3mq7lI1q*7IG`8 z1*iKB($dm$4|9jmI3P1#9xF;OorVWqP5bxRpxo)>Ekh7*&KS?W!GNn<{0|6GUr<(w zXCdpgpj2sNgvGNzAJ&U)F5tEq-k(lJ-JMAu^Ewfx8Fr)Q|Ev`XK4Fwi(@jh{4es)? zjOf+PdcElt@ci;vNA2FD%*%}|cHOWs!});Ho39ri_a6x}$%URWw)@zDs=&oaIJdgl zf_Xhgb8ux@>&9k8<-yMgFOzpA!CyQY_Y%gIDP0UsFa!T$m{H&q97Ab;7zyKCY#Kv7 zX$kh$Ym}Fa%{M}nUn#+Ix4_GIgUm@FO7Oqx@FDdO`sH4Vr0?*S0=iwHHY zu_K6(N%!gBfFhoY^(RH`IH)A2%8ZbfJ|~g>A~rD0m+WtK8p_01yEE+(Ma+Blxx0tS z$vZw#>l1LSXMzrG9mT|W0rYZ{e+jxUaQp~!u>Y7rO+&Nsljl{~Jc4Ee7bkcf=oMS`?G)GYO{0;SZQ(g9VEF3I(2&$R+BgGwPHMv87-i-2V9CArlcx z#b6c++nK(89r)KY-jJn z9!;=fyRt5CSCcUU;1GF{9RLKf;=I*~0gwcV3?zT9{K`{EtWFQ1(hKvdx#9tciP5VE zkQ&oLWK9|URe?s#P=*pbp@Kt|1mbz{d6JSDO@9_z^cu($xfK3gjsry(&0#7E@J1}V zPWw#8yDh?EpJYuZvhG<^mvpU(qR3?aPMubjSYBJhwG5Ba4SbXdM-oT*jB;a(g!$Xz zo#{ISl7&&cd{y92aUJq21a^nEgozizm66Jqt~rj=TxOT1mox&BYw=(6QD7smf_kD!t>TqBmlUO)Y9VBTxTF}UKaM^c=yOm6t*gp%!q45h8foU z7S+4l`r{T1N)IV)LnC$MGknj;Or$|JUHIQX2v z&k5)6a^4UcvfZpDDT{XUWTPNJ@rq81GeP+Mgbic;I^`dV!4gcPl8Csc?wUXSz*=0O z9euaJW^f)$z&58)==H^XPyERek(S42 zJq6`esRw1n&X2bPC*M@<5mG5vMN6%{emmh>)J&JN5MCaY(C+0cFFPJSbXZ`oF-gOh zppNVH&ip_7bYI(u2+o10%uDuX76==WLhh|TefvN3`K}k^j*1rj9&kN*r5jU~bLE~PU9m|_-BD`KE>CNI3R+N8ir9Skqp0EXTT`(R5p{pKGsJ%m9xJ4CboH4}-pkJj#HzyV3u(2|dyO6*l$-~gX z02xm@ii!#B>``uR<^8A0Gte0b-Q*6~>ie+WN;WLs)V|6swS1SH9aFkSpR67L#Kv&Eu_{cuLt7IrOs<(x zXKn3L#az;3lR1xK_B2PCNfvnH6&5Evy6z6qVX0>Z0_2BxGLk0(xgDi_Kn=X@8^f}b zj$O$+PgSKVgKuzMnP~0FtO%SrS_wIfg&}KLKEpnyc|bC+IgTV{c#4q-i7Y(U#jd%_ zabvm5&ZC4&HwZP)C(4trH5Or`YO8|P9t%5TS|-FmSf#Zq*$f83ZBXOKQDTSks+ZFI zSr`-tJ7Qcly5(BvW#FP*oG6Hi`6|-XmibT;`30dwjXep9sR2%JjyrJ(VPniWyC||b z$atO=Co&|4WpTo(lLV8az3Ks#lGD$$Qy6JULg`deJ0mGkbs2Z}k4#?WX*qV9qFL{% zSV>w<1>L|!PQ!$fFjb)kmEY6}Jw>vkN)8&dYDgcQr&#%_et=MavE#vhG;5rz&H8MQ zu4^MDm|gI7uO7j(ibkP)#fu4X|6aNiRSUD|a>@&3Q){u22#)T{==V;r+fd^gg_cKHs|>=%>NJpedhf9f%0nPB6uwzVI!Z2uWoHdO zTAY^x8Av*UWn&}8mXv~v^gBV8EL6{E>cugn4@(v7$z!Z@s-o;ShVLGh{+~^u{{Pg} znhNTenD+NmtgcO|HeMyK!tGCXjwWAB7ARaimd4^fZ1Ov?rnF4fqfL`p$b20)VkJlY zqOTooo8DIh=6Ea2EHf3XXcHVzJf+GdiBeU9{Qu)Yw50%D^8R_!37pW=ydmKx86GPT z1M7GQ=)Hf-Tl^+_H-V(A4<=GyiEUX4S#L10EF_%3&VS1!S9@G}Yu%Hd7AwBe|9+Br zr$5u_B+PxNn}r*VcRQrq~#*7JgIL;QACCQu1seW9>}*o_DfE zcL^^~%eP|g&`R4^Yjp*JDPH!We2~?(H@S(p zYkT(gk-lhyi@B2}@Qc2!A<%&9;os{?7BuQQFjEYi2c)VEQ(ZceELp{pvPg7lODQ{QvwvLMNTP(4bV8%XxT?# zyc<+VrFH=j=0~7?{!E21V069whimpGxofK54~|LO9IWVQ`Kbh=uR)2xoO+wtKX ztL2or!WmAt(V-$}4Ivuy4B5xG+5G?Jz=o$DD=6lf^$0>y73CrR*1lz9>i$0i5y2TJ z^xv%x_J2E?Ig#`i4s9jW@RVAf$Vx?$_K455K820x;VMl=`9B85QS~viNNr$u>p*s< zIn=NB+sMf8>ZJr)d+ZKwjO7`x^6sBInz7wtCJ={4dK+@wiqArjT~A|T?ohH@=URk` zc8a;Y3Lb+aXmbF=gaf8c*&3w=N;|L$EX2UddS_65soKPbs5!;Fx)|LX=Nu?vIfCXu zN@Wg2!E{(UuBwhFFFF@g|B5D>-_gXqwrD!tKJkL&UqiZ>R#y9e&ydKkh#-D-S`QDU%EcnA z638Pei7BeYwa*ETG_Sg+y>qwrZXTc<4HE@HNLSX0Vvl{;DMT0-cPc)*IDzq1hm?@q zPFx1KT>g=U7}`iRpy1+B67yCebffW!)Pf%Jw9vtsqad&h6n=i<0-#E57~RSGYZXFU zh9m{uj1^#NF!~4;m>O|cgw`aj6vPxkCPq=eMY5VL&%RSdkWqqqAcb9iH|N+VI`P=Y zn8_pSSa?$N`<=g?2XYy}nF%z?$ovhka3pO^9}t`mzJZ!Wka16u7rcEKujPq3E-?L& z&Y0^+F{EZ>nJ%Lj+?IZ(@O#E?g7cx}(c;TNHq26r&Gjv^q)cP(0Rn*<9>A)}?4)ox z+@#ULTh7y^e7TgOIjDxLb(meXJTNe2y;*ZNaM}UyfawrhphZB%OI4L*0xEL2dVV_g z8C1M{uOg4ERjOnjjkkzY*=CN2L@ltd*uLjltcfYx$t-I6-3FyfHd$xUvX0$af0D_@ z4p`2kTrJC&LV5{jdtZ2{<9Jgf;;$ zR`Kh`FkzoRQ+1b#(SQmV>!9DIl+5;9W(~K{n3er@JZ>OMejlwJZYoE4A3>oGb25pm|Z5Xk7 zJjjD4)dw_6Ja%H#PLyCLr5_qB+$gP;3>0zLY5O1pp)Zxixr4*qf6l;U7WQ3BB zj3V`NAFAXJAwf1mkECvYpm^oGgf2;W!TQ58j?0^Y)h-WLJdR`%^5xG6ks+^hU8pR8gExLy1V* zaX(k>-)3-I_&OW!8MHBf>ASz=%Kd^&x1t3m;z zAd{aak55+R=PkQ{aflUEPohTy znf_oD*%|KiVUE){E`d@S5PBI(+hs%-nwP^IgU7_qWOL&t~cF)4Upr zC*uX&lx-j(yp|wY&01V!oM-rdYenwpCwhHNf> zgE9HsiVK@VDW8;IW;ojMCP4yh8ZizBMClc_nrXNpR zt0bLh4YwC8U-1$03wI|Mttd=M1feY+NJAb&A+Yu0~IGa1XF7!b|JU<>6we# z#?sj6$+dw3ytFEL1HzoZdzDU-hKv8xO^2%<>sm+5CIto9z7EY3{y0xH&l%fAZnxSy zKeOk|3%p3`l%qd?s|nT-ysANPNJ2OT(t z?Q_&k=8*i!5_`MN!6S8laTkx$%)ChXL{=hF4TF!O56ZID#sNQ4=A@i3_*n(UNCXzn zXGGCc`L#f{I&!!iUyeX8KLf>^&?zvA3alU}aN!L(17Rcr+f4U=XSD;rQ&2JqlZ^JK zfh4@+Gpf{6K1Lr|0*7AZ(+z?XHgnxRIM2d6bLz3Q^HV7X(_m^VIEAYtc9@t_5ss~* z{!L$Lrc;y?n+eBg5{o#Ohmck;H=yZ^B4bw3K2FL;{69b6DIk|##Ko4fP=V!zh{&Vt zzZe2OPTfIN4PiN{r~^JzLI*(tB08Hi@PB( z7_V&4q4$N|k&lK`6Y3<9b63eOZQAN?2xB()ewA(ARHzb20!13EcrIK3hAG4y4eg4c z+B(}ioxG>G2<*Q0&sdV~kco}C{l4AvXLRQ)HI2`kVGsSP5IZ<$QZnt3^3F4=AzW@c zOZNzWx>u&OP46ZRQ``jcD71$F| z4vQbMr3ZT;PFgEc*(6XK7y&8Va!wm5uco(m->g!kLIL~emE}1}0eBXXyjOaGm_CUp zL3OFkAlNHaC!sd(=Pk*}$w;cqwjbFfTw#?kS3-`cJtglM6Hka36=pb3dm`>VF(Rgb zQj^{Q93`Pi?n{5Lz20L_ITn>y#kqoEuWZplUX&os_?_wOsS9NwNJQxsdh`%fM_KO{ z!4+^wE}HTo&)mduv#6DLknMPVm4LyR+C=Olk&y&aWOjs4iLkF}m9k$0R=cH}goSiR zkgz;0=?hYZ#c#`F>!V$*bMi_UOnzN}6IQv+)EH5HH6Ex0b9IZ|@}Zv)$xnj5t;S+0 zvlG^NQgm^pcy5a(juMUB=eetXznLqg?H2AIR{?(R?xTzaA3_KOCf=?tEnI55$wtAF{-cG(gl}S#Fc0LM4z3{}5fl3d^w$E<6b}FMADF>&bAA zRKl5ruHb2%uczelkfK+GaHr=R7jeuUfE7!?vrdn%a>k#PRFk3obM&a6grQkYy-*h z{CM9P(LuD*_u@IWzmw5T-+C2aRo{U688;9MQNFkXURHnm3XSIgxPgulsJ@zKr7e!PgK!NF^6CX>f>Te_IE>)>A4||&s+8+lPzYP|9&h0$J#7| zC!rq56&$Jp@X|T%Bk;_5JmGVsh=t|;U7~Bs1~LK72_w6+w3aum#w}*eizJ3c>!!c* zKn;)r{hG`N>@VMy>gIVFueK)IXRi*B7GC1~4c$?ov0^&jj098>HNe5m3ZTJc_1?Qw z$-lbAO-~^1?JzEJ>1)L^S zBOu$iumH7yXxW2GqNb_L(bJ-^irOm;4~~64335m3oTpz9f3o%^o<&sdF;9CTUs=6N zJsFgDF{ktKjY}ddpP!0pVN~*HQym-Tkur1adKLPk!>Om0$b$Cc@{qL0)x%@p;`>9& z`3I4!`^ouuu|DpT% z1nZ~jq0;+GZiv(bg>#ZTmmWr9_Bcj)ccjX>u!{gIz{+>Y|8AVg%01hsR`qb)Zq3qw z4V!b}wAek{@B{@$M#!gm!%5+eoAV_q{kv}R0LO%zHo0{0#yT7LvJNuixq$u z5siDcWSs8kZyzS0LLUz&Lq0m=wyZH&a!lG{_?pCl8H38QA@5EQ&U6#1GoLVng*k=$ zeLf3fwxgyc#N-m9pSzy>k6(2G=r9+d|F8<&25Qej1cYVWR;QO?LQt#(2*M>^6obKL zWb76Rdi3Rl$o1`~*JR?1%UuPbUCv)~c#tNDrmMoSav&&I`h){zb)OPEuQn6OgXBU# zU4JE8)rUzqxSj+>iyj1Ycm=(lBEylzg&Mhp z`O?SrRP_FK1JqT8mW)mR4kUIA4&ne}i6OUyOmUD4G2}Qyt^X%PdY38OHl2@$0dDQ% zELVHgZxlbWTyr(u>rez6x4+oS?(GpVxJ}zWitDAtG&YTD7biASN6ix|d zxR0KdtD*hNn0Jcjr7mLqcBJ>$B#^$063DWgo^-dr=MeLrv;-hH0BI{X_9hnh^p(`Y zslHmXAGG&bDo6qukzm!lE!_DCPt()1%KChZmhn)0+FX8_pa#I4oO3sr<29bbCK#|q z+M-pCt0(k$-khID%+YEYC72Hx98d;RYfVQJ9KW_6CM^&>v@Vfe0GA9+;K~5DO#(_QG}*-kttV#0uY^s!MUA!`B3Fwy#L({+W~+_8{|$ z+guqRQjGGAAzDT&5e=@>gV8jnX}^P`uuUSPhCXq2c;=)To~;SRXX?*Zz5a5w24fYV z2LxghO!{@y(E5s-e|tIXeR&TlW`#mQ-oKU%-A*-Z|CJ2VrgJ+@8X6nTasKQxUTjxe znDy_J@C|q8Fk9OEKS>1@bBv9~o#LX%jd8m1O#KrEwv(w=G9+2P22$~p3}@5`3$qHO z!suGf3@_nWH|)7OJ9A{(F-Tb%iOX_Pm`K3BAt#n|ODw*|OD3=MIEhWA{#e+al?Cn2 z1=5?{;vHt7B9lf?cVb?O>qAhH1$XctP{7xH-xiZa&ivCfGWQKBDO!7cO`G~MCJ=x| zfYTg95t?5IeAJ2f8?KcQS*W{i>cvadYiFDU>gz{CK}b-IAyfJjDsYb#53+7g!jOv( z9hYSVkPrG1d(AW&mmr+%*}|KW-r84mmUL5Zxp3L5Xp6-Lhd6(gspSb06!uj*%r=tk zjK|l#z|2XYE$J(5Q?SoOSXO@5XV821oI7iP-sF(IPw|6Xk~iK?NP6HP&%X z1z7E7*}oCb4yo1lFIqoOq!Jo!;(N^?vi3^R(!EyhEjhdUB*^~deLFYgBvb6T3Uy`? z@CjS_+{a#00=1*=h8*?%SN)xHT~CI>P+jbWsDj?z0;@+3v$5RaJMIdm_$tMVX&4Ds zy9|4h;%w<>AFujIwnxu36b9*vw&07OH#rcTz&!&8zOO&gy6l|eO#Ic}cdX~=B^hKk zmj0^8(sHE*bA6Ya(>X|VQ-AegYjc}n$Gi$H{dfpTjO< zJ`DlfhGwJp#3gnN5-7WEb+kOtIM;n>^JaiOE`d3`Z4ej05t~;8SEOu{AnTxWT}NAW z{bE;9Mrsp1K9LLB-BMM(Xi{JJ78PUu?hvC79+^Q&7NNM=P9ZdinX}q+EV^KE9sP| z70gu}pshCb?O#2r+diq#axxeZN6`;Jejkx0m8^E|v*aV}ud{RL?_ny-hJ@&6?J-ND>fmbgSb0D&hzGJYg~Oc@ zW(#0cVM$a2+!PHb78QpA3c-M+0|3Ne?QUCitYC*I9FCmm#(rh z%VD*9pl_;f$X>x}^c2egL2f%3e3Y3R8Ux;csKC|S2G5O^ z{n@!KSba`wchiokUzRAZqfgp^k1-bXy6vuGt2HfE_|m}iHm(zn@LTNc6Tj~S(@(jL zZm<-AIaGmN9!%uSC;;ZJhp%oW*X{sOuLt~X&#~{HLDS;V(u-QHyLW=1;wmeT2N}nh zXGPh1>X%AqkP6oJ0giHC9;6g;Wb+kP{+3S&HyRxDOUctpAWuWrF7C>rPkWZT|Jr_( zy_j)D9*BAvw=xEc8{+Wg+yeVTjLI|Q2t-=ySQ3z6%ivVdZ^V)23#7Eg`m%4awBN9& zxPwe)H5bZ8)p2y`+&t|P1DoRGSav|+c?#D1I8f=QoUBR9 z_C|x7KHD=~FSG%nN9vz@MQFVy79(j(7kqbaVE(>3|6hqLoC@+1Iicv0qF%aMJ9cyw zc5E)s_CzY6wVX5fBc9lQFsSq-)EzmyUyR11e?RM-`xJoZ5$rf~R*~OQYP}e}bbm^s zBz%ygGljF5{`~{ zBxNT-Zomuy+5C4~{oQ79_=s%;rXzRqeYxPW(5tfO!TV27suGPIs0a=2ja@ZC^=*D` zwG=wCrf=k^{nAd^6KxKiSR?RQpmXMb)Dw4J|6(}#jY@_UmB`3Ap-A?MtWzW{RLTk`lu{%~;4;XKddab4GaT#qY0@LM|~SLigDuH{5)D!z&5eDraf zMJv1=CgkV@B%E)2=73(YmwUW?JuvS87612A5(n$-M$bWRomo0Ns|hh2(+79Yy^w** zo%R_vnW6;(+UIb4jX_Uhz;PXevBUr%zJ1BRsPa{vxc~2xB#tMKJGRCwo%@p(`3u$_ ziL?*`n;JvudGu5Vk?^N8iYI^*NBP)udA@l)yUNxEDMbHaolB?Gc+Zw}fzU$xA9yx_ z{v2$H?|@n2Zi;W8;T5fsIl*~w)x#^fP-&1rH zT{l0nN-KlCM+r9i(r~LopHEYL#pm|1vz)A_uT>Z;unE4Bq_MND6*G2U%{j^=?UF!a zKG}NhfTV%YkL&c?e~|4TU^}3bAfyImyMH@jke0p#yM%a07*+vqDyTqF6m>jgX{P6F z+S1HlT1Z*9A21Izkt&CXd5yYQh+8tm!sHhy;<(_F5Z^AXE1S2@1(aO1`KAZIjfW1> zI<$kcQ>kVZG)0LgNi+Hzqtl;jGF7bSLMSFGPWwUv?MmRhp<*GV(Ecmz zM;R%ItDFZl8$^N&o3xX$E!|G17QnP{qV+f=4>N`WHv} z`oJX7@B^d|Wrl;SaF-bOo3RhW$kd0S@^DN3moi3KGf8Ws0Gp@^A1dQ0thnuhRe0 z+GEs;)|8mf)Be`(1=Os)v-~2e&wh-<=b#kLA^*2Vw%A{0o<>>JHFlZAz(r4-M&X;% zmS6#wOxdAGGrtrfk#G%q5C4z4bK_D4@4a#+v&0>wzq2afW3JHkGhzqC#s4ZSN%HG? zr5jGblMx#C-MO(^Hg#cTCjPJEO;?$p{d8-tF76f=32|?VC@7tMuK?5>*U}n6={4EA zv$2-MH1>MLhb-!lB}0cTPad`rxgwcMiu~|j{pY0d7}fi+rb{LLt#Ezanmk($&Dg7G z2jeEigG%}NNG0e0!jd|9KIPRh78{il4#HY2ux=Kka{hyD2|*=K{r`I>={oViAn9e= z*#pOB=mGE#yL^RcoQ9gOzKO*^+t!{*8+;snHRjQGD8a+scOvbdO0Z=K7^lDV*|?C2 zI_>J>ws!kabSiuB?8g)QE=g*MJFP-JTLk@uuY&IuKQft^ofmKNh>!P`_-GJ4@;O?o zQ}m75{?%}w6DRa~yqWb32EHG4?BQO6a)bfbd*J6Qp6PhHBDd&1YpoQB?-$qPsu4V> z6cZ2s!;dw-GK#9FT0+-d6w@zjrM&q5uTDIO!mqAmi-oOcFSh1xvpgCgw+OqCa(TE8 ze)Ca?Cw*?I+4YDt4=R2N$A8;ZUfS0$vk(Kw2G}v6;VnQP3k#S-# zPBd-Z+}?9k0YoPEkcL-8GoH_iY?KBIfcp2PcEyUy>OIom+E;KRba?7S)EpOC(u)qg z2x6@)I40E67{41kq1G80?s{3D{7{`s=?OWdc=yFwN@(N1ez!%`l**E?Gz6t`ppFz) zp|F7mVR|{(JG4co^MJ}^YG1^S$a&)!lvd@%vbh~w#=%Lhwwe2UF(_4FlxA>DwioJf zQRz7*a{#CB)22Jvmy{3K!O&~>4vLvaB2&6|&ZPWDZSXPQyviGS?*!5OH0tEZfAB?F zsB^ItIJAn`Ipe!lh_&Ht7CWyZoAqJ7;nl!J0;%Q%*?kG0jH=#>CX}D8lTtbY4Z{)V zWXY!7y5fb)Cb6^388dv!7&F>2`1TG;>M5SjhdYlms=7x=@2>{kgd7KE+brzi^YYg? zMYQ;Z-ohbhMHZa+f26qUm*Yg9l-Z9V*@WL@XiGs^5_Xia;=d#a5wCv_rTepPP@bC; z^c(D=aCvL2Z(OPunLZ%4dl9wD01LcDF zGUDkUuG-2@=Yt*f7IQOY{Cv!c!MDpskcPq8t%uW9k@@jovl_H9UY#C`|f-j62+W+ ze}+$^v<5n0<~HH%99cTJ>yt!7-o7Jv+CS!8hEi5pZ9r%xOZsSfn zNxSb*>WS3nJqGbH*u^FiBzR($F3&2^Ff`-pd;i|Rl;LxvUsK~C+cjL(C40lS@DK=` z@EtkW@;$)s2M}9Kx`w-&nSkwYupCFm$JRDQoJJB@UPctx*W>oF}!Il!o%<>cgRrnuI_(G0BPlf$? z9@qE-Zr1ns(8(zMvW5e1!9h`c3K$ACG@?mEySncv^zVOeG{nopDlDx84x4vEI8qKa z^^7+6h2w36$v=_^;x103l)f*u2UZ)$U_zj*YAEO8*p&NEe}X8Dn2`1vhm#>;?K2{( zW7QWJk3ugqGaUGo<~nG*onvA~BKt$^gY)UxCe@nTZNgK}a%BrywI z9BX=id+5nin)AUM-R0wfo?Dc?O>hc4%&Ks^>)YC!53)uga~DTHJTv7e>`JlrCJA5V zY>(2q)bZ;?()hJ~2Am2*NSD?K;dGI~_|dw@KkoV!-rMI*JqB&1AIcfr$xxi@1a!H` z2q?UbvSt6HlKyFZX0a)kivNpb2UVs1LGm1eL<&Tp-z8(EXMhE9(+_A=u)reLLJ}sK zKiiJ?Y*I!a`-{6mhXbsyua~z}C;!OU`Z8PwM@d^Fk1iiEJxU>JqcqgprSi~lb*zuA zRDq0qHgk5Rb@TQpX~bb-YV7vIhigKh9l+_lM^iLIs{&=xB5S$(m_~j(XGK{&(%p9Z zeLo!O>X!GnFGgjqz8uCf=hfc?+L2IUf(_Nx?~-_vhxnaE3Ds;^2I(%>x&v>eG({suI{pP`#%_b2QtwrvzB5utgG`d@4!!PW8m@VyF1Y4 zriY5@AVw^h9J>Kv?ii&d=LT)H)hZlzDUZd$<$OBWB~+;VEOQ(PBDD_l_BLQ+r2y--0)H z>w7)+wgU+jt<$>ba~r3R(1ORQlMNbq~VGEo^<-%0cZ}6g3HB6J~uTx9xIiw^jfJG zztulENv;3~yYJO_%~Uu$ry}2;nGD}UBWu+?{=A%MY@sUhF|SQR>+~jk{X%Yy=7V1( zDcC$c6?!#&P}0Y|p-au=5m%>xjNf>cOWxvQ&dWa4(RooFYGi_q6Rj#-?Q(`rxPN5T zSs9sVclkXF7~gg!G$@&(=i;{RX>p}2{ktF!Td7y}2h~$1dnW@ICUrR0X3)IPWl1B> zR&C+!;N-h;lVw8g-=Qa7o82OHT%tWL8^#_toVeGm7XW{FRf#$y>y>$%`98K$tB0F8 zqOsGIe(?75`otI$NuzPyw3a**YNKSwiZRS+B?K>(IlkrJRai-8$(1?RY`x$4fq?LN z)bF^|J4p_G_Tnd{ZGq1X3lu1K*+u28D7cLyCevIR@LB9Ujt zIq9G1r^U^yFQ7rUS$2NFRbc8^SyJwfKs0GXef@L%r|w~QJqrRx!)of?jZO`wAFd}O?)jG6SA$7dMORvj;vTsms%DDJ?vVr5*hcG0%l@E1EhYukRWG}M`sl?Q?m>OfM4 zBC#r%PjS>y*H7GHN<-D};rxftK?|IN{tNZikz3A(#*S(D zY6X&p&}lZ*&&j!bbz8*2p)BfsvL}=J#p?lft?=ld7q@-ia!VR#AJb`ZpPdaUhjDhU zE{$4{NZFMmr`ycs;J-JX(Y{)aEIril=sm9yxvJql|M>Kr$6*$ZM_lcUI*uic)rTg1 zwLl^>Cv?a~mkD%~{)81%F$xUvbN13%OCt|S(?3I|&cEP7SHeo`Huv(RE_BQcCeX48 zCWfvB@hyQtY4hs+70P9CvW>Etwkdacu29;RQB${qVjshKC1qsiY<6trHYBjf+9ROv zw!9hJbN8+rGB?MX?6|vEfy1Hx&eo^BzV=m>D;ig9=JcD92+u)dyStr{+#RlSC!e?o z&|m)ScFp<%aL2{;c_vr{9bYyBUnb(V9m!Ki(D1GM>dvXCeyU?0>3i>05xnk-+xnN- zK)2la&h~AM*^W`%356&v+!lDd zA2s(-PxHx#IBO1#N7o;9q_cF5&$0MyZ6xMI-kb};Ax8ovLRs1o|I)@?(F3eBLJswNgnt3E zq^Lu(uXoC6)PxTt$GXG0W3(h6sj z$0zYIDi)SESlsGF>C;GZX#zzNw4B46bZXWngiBbbi9a8FOO;4p<4x z1Ph0aqxr)jf;#Xy%N1!nxNR@_3%mXj-=~)SVNshf)quEFR>j(}A-0ENr)&9<6(nr= z2CwXTaIqSaZ-jdYpz!gM)annhFnE&0@@k*jbYha3>GJ`vlI!w9U@pN(=QV(w~bl^y>GQ87PD;-Rxv zUbP+n^70q8i*QF!xICconq&mu<7Ju;FCuMaX?mqr)g?r* z*|=(5sbRgEb6{|UD_0+ITyh%k>3u-BNXvC^F#*Uj{||8VIu0tG2X?=vnI{Sy;w;ua zANMhRc%dnmoNj(d@c?%GBDbu)ZigKdC-DXXY2eOf2Dy7gRCGR#E8pbE+wt2=2Z$oO z^bRi%s`j-LfG&L(E_THF=h4Um*!XzyWHg3D*zY{O0}ZC`&ed+*juU~-<(R@`T)Q>7 z!i`o>6j3jYHJd5Qe#Tchg0nZQaA!?P;4X2I8jNF#sJZ>oFPpyG>t;w`h^PL7oi~V6`A$PM36ppKHQ9_QAJ8wDDN{vgFLJJ3hwz z@hjsW8LonrNSa3>27gYRRc53ot~if>%|+S!nfb@9^CDC7vmR$zI7L)C$+I{k4M!jx z{cYCkRbZ>6saxIL>vBi=%|%KTQnIB6@k*-pT&OjDOqsh};{P1x4#_l+pSYGb8blXz1B2xcUlrvWpgNV+H3k8Ll zH`MI!HsZRTY5<*nmWUanhf($cI*+6?#~C+| zsO5~-lhQ@@0HUnxs?UiaM)WOpCp3Nw8{6B0o_KgsVcXWHa`!yxOG;%c^zdj4y}(dy|LOS!2xtSy)f zqS!7P{lOMq)Rw15+A$Pf7FWY8Hedy$9cB5L^NR`vE{@t%!G-HC>S(^F+(k((V&%eW ziOXQ5Np*6EyS%8kwE65p)a%nU79cLl*$EtRhf5s>H__2UnqYHQSh2nfUB2Uxa;XfK*kL!71Lmk{%J9%d$uLJ z?NKryr~%E%NCXHb<{eOJ+8*-xD35bZDz%yY`52ANRJm1={39?QDgZ|k#ho`=)y z&+z!^3*-M>NtXRlp^!Q;+arv|30VJ}3T&g7 zV3c*GM7l!@-?m1jmp%9d+~1c6C81fGpUEty12RSP@S{wDdgMr5DImlpV;W3ft*~AV zeDfJ1-H-zkaoZ}u%X0@Jdpwv!ctE?t10CRVQtVAwIE4SrxCR>)0DIPG@2Rq_4V+)FG}mBz^tn ztO>4DqrP-|5?}u&cYM%_J!eu#eEm7+Q72{m1MPRKfK2dsW8Ov5`uH=$$=>~pZN98) z_yF;Mi$~~TGxc3m-?{Y;eVac((W5Jj`#&R%UDu{-N7Gg9R}`v9ae>)1^i>$eWlkbs zDff{}m6*M=qpu4Y(F<(a!pyMQvNHE3681Z>4%LUQ=JUwz2(W4<3`*^Kur&J<*)1Fj zsdAGp8CWAupYF^Ym5IaXnfO(BqfRQcuU43ju_J{3Og(|m?Gp!ppQ9u+k zKQbuFGf_7I9aTJ2;wyYX>dp13l#-FBulk60d8BSy^I8OVeEwu*sExI^sE~&&Br!Ud zR%%4)>5i!CvH9MSwEDkdx9?Tlb@04%yXiYgviAg6?q7ikSe1oa?d`LHsh>{$_AnE_ z7E~7T^Xrb4^*U0L)-wAferD&z{U=~qbj42cC&h2^VEPD#E&5z3DtJzY)UnNY&-T68 z;wQ34*blmNfY-+@Z-K+maZ$I$CNk~6knL?~cS{%#8md3v`*-SO_&acbW^ge&CXj9Q z(d&CaRZYTef%|X4GZL2>`^#esG({OLI}Pq;J9z3gAE?Nsk5qQJ2BAjYC-L+?(<%vx z3#FJl+-J6#DlwcoyO;gOlQCzf>1KPgL#KR3n@L{Od3nnGZm%O;TzjW8bfqzb?(@7i z;>!U9XM*`VT4}jF-Wx%oL6 zf~?H-xpa%d73!PrjfTe#yx4MhMUdJbh^!KfN+Mr6DR++_ACV+5Fr_7@gMjz^bmwYW zQO8GslK?#?w0olhlBclBj;2HYIyyID{!BD7 zEZx4RC$;aud(Fgq0@sdC z@eW2IXv|(~AI^d=O<{GbEjauXNZ&6qln-bk4vgL^0)LnXC^kKmcj;LdTrizoH^CVm zo(HyUhEfKk`W3pp%A`P{r ze)FF{9n!0vHDt4jpV#)oooKef3RK9n3$;kV93&q}75>`p2;4(m2y9Ucve1acM!C%M zQ4{+5UOs&$PVdjepxu0TVpeun`d*Uf5}Z8(xjE|%R=U(SZxjWLM-AP|@^qcBgr|yF zWoGwf=Il04qO-CBu`MgV5Lq{(Cdsxl?XR_IOGUt?qMwo21ffg7SJ{PGJb@3hKpcwL zq_*sq=fQ=KA};Lrq^mWjvuwS#oodz&SbbgPP&uR2A}n{VG6hHKRJ_?WyECg;;rM0b zp8xWV;{om`-=|8UMF~f44C%nl+>fITMPElnnTK5&Q37>@LF8xjlxb3O3ARA%H3@&m z#@EXKlDrYBgo-IGjjpmh+c}duS~Gc*Dk#p!oV@ik5&+0_$l~#9yEYaU@MaibWK;SrK$>Cxmo=m z=|K#Y4=zK)>H$G?VN84w4FTR(=M8GPlZh?x4z5E(2B;aO?a>}KMiO+AQPonRZz=Mk34zjOtBKEKD zcl2>jCII{1~9uKm5- zJ=8LOg_JjwL6R?oi2B9y%3?lDW4j{@?_SQifc`Xif4WRl=xj2LrV7t$pD*C=arU== z&uhjzv@>|N{?D@p6?*?Zcmmm6-M}Qurv}W@4(Wuyf@$3IO8%+9pw9)4&wee>IHof+ z>!C3z=#Opx7{C4HTvK>}p5NiXyImohR+EV4zdPjt+(+lccY5IA`aPB*Bs5Ad_o0Mce%k58uKLe9xdEc=bwd}Yw8 zBlXTka7sS|}ut$V3aq|F$U^)%VeR9 ze?=anb{Q9(@MRPsavsq+eyP3KKX!t}sM+*R-meBYm_?^`=`^)A@}y%?_imP~D}fOg zGSb%fiIRw4T(2G(Jemb3@87^;;UjBhA5+vWeQFP}NcH8FMS2hOZlK-;cGsz;{ z{(l0GG_f<+VJPV2yG&cy1?CU4j)CL4u|7t>m?HDoxBm*Uo_Ef-ZN7G6)_9%oP4pp& zIA+kB)?Q1P2XTATsitOT;h=9fjD6z{VEx|kt*crW$I|zAsNKKH1E?cPf@DVy#gFo& zh;|mR44-e-S!Mc2n#8jA;yJid+hyNj-a$Jo;U#nv50nLknce(Ge_P1FvUVO6)U;ac zK?&T-ZmT{;yQ|bV!*SH6mM^yC)VOu(2)w8Thdeov42trah0`O`jYNOZ)gHW~-2!vK zQdB7@;{N++8>7b2*X`(|b-iZifk9d*D!6yLYew9pp(a%bwj#H>aH%)gLJgUt14uj#8iv^2UH~t@Mhr*6)25UBv`E>tIr|p z*L-=Zz82!qy>^^mGdXZtcPCrnHZX#d2Vn?MM>U6Vmf;tC9qimxuoAb4E{byd&3H7crS0&{0$e~La^;_`w4;b(09h(gnXXUut$WCY#(ZqGW*%r|B z(#kt_gtJQaa_LB~VrAV^*cqwhQT2)~Cc5+A^CidplVN2;a@Tel-TSv3z_Yf|{Pm__j4Z5sAVq8sF9ZiAbd()OMq z!J-wM@pR^hQBlsem`Jek)@nfSB@y-K>^g@_Ua7H155}m8+{Ols47v6vqa$XE$Y{?= z*OhPk9Jxr^j{I%(-g~}07GsxeIM8}{MI5$&zh;{%IOyrWb%agkw>bh))h3vj;ToW8 z@9HV*nqP{YFEF7OPBpqaBXL_AA_Kg@X^V+V63cS8w?ih&#)yuYsp1$tKZme zhs&)rPgW6NBjUR!>1A@3dtyVo=v5V$C;(0(jekV1pX`BabffC#%e28*0t`1AVC=hm zA9U|iN7jSOx0ruJBYyU#bo`x1n~3f`^dchoGx$`cHEz9%iYg@6Uj7Ikxgw5YxRJzv zlOyU65l*Ohdi>M{R-jW$WZga$t!8PHWX~z7XS?&DDdks|xfF9dV8T=yHlARtl;Y&8 z&HP51oX;lRlJW}6#IhJrpTJ& z_oI;Z9}PRwP2x1HK45j$pMqJhd^nWg*1+{3@qymxSTA^S2eX&<>~0WqH|E=U1zXUt zLl_cPM|MHGRZzlAW9UT5v2`d^QL)K$ykcj;(3HeQ9w3VTxQO0!$;QQPd0yR;|IZjNN&r(6 z5-yT~I>OFZu3~e0W?y^8k?<3`esbgFQ5=sgcYv3o6MVA%Jyq3DcAD|?)iEZUcO6l_ z9Fy&N*_XUyp7uK@RJx{=7H5K9g;q~JDQAC*#UdvM!ow-1@cJ%(6o=Wrx{8CG{L&yGA)#t!*4T@Dc1tP7x5*~F7`Ezzh#EAPG~YO z(Hs^09(hUMaSYZoU^p4`2yEjIb@G5BUAZi}WB7uxH0$7TK)4$zAe>K`1y66 zkRO}y7r&oKkog?@{#a9sNYf3MUNcF*dogu%bMaTL!zn zh8Fn{csOkhqRSpbv6O%2myJ~oIXV7!KG}>4H46j(`koh|4hI3r|BNS|Kte)U@*YhP zpAMs!z;67ItlXB^G+9Zj-{10j>ltv`Hjy{kOh!&5r?0%BBD~5x1Dd9i{h=QJQW;`o zJsiY^FTD^V5_?wkP&Bg@SJW0^MPPI$v0+(X{<^X6Qo_*W%$~n9JF7FB778)x4a_FgcS_s~MDY`3|k&2>0A)H@qZ>jFET%GZET@_Mear4{$F z2ArLBN8Y}x5JN$x$GOElvG#bYj(c0@afWrEoQFmKk7Fc${p4L9=W-m@J#z5uSug|#+jReJm!CL z;G_ib;zM2O}Nse&=1=+c=iI32%9i`{*nT-P}vGkm7MDDb)t^104i!k3ca|2qqy z!;1*dzv6ibUc}9|{%u@P{@yQb(p?B1nY#XsjXe1KONzB$@R=aWgDzv%j%Hs#;w zYie&CL*dVEg5$2ZH@z>ZYGaTP@dcKytv(KshLcM-f8}lr%SZ=bQoxLjB`(rKa z{QPmX<5zckA}92|qHh|_thZ4V-AC=MB`Kh{#9i5NLmbgJgy^xl+x(XwBE z89Flyti#?wIK9rw{7dQ*+5^o{>#piEC9j4IAyw0c_@}7-Z|opMM-5J*=%elp#yQGI zzh~`dIOY%n`w7{}4GXNL>T?;Sc(u=w>;zc%OuRu{_KY8Pe=u-w1}ze_Y%8NMj&`g4 zo3uNa+;BE4Go2X^ZK?9H`&xW$=$K>SX>`q|l?7Yia zadbrkz1f=m&GpGh3rDq-o#xw}u$StrY*A%>m3})v?{D+}(Re9P$M)4+`C7v=YU?}w z8t6w8COFeELTljg2KXENp$QDoN9k%%pGBOaD-2aVkoQmvBpZ-0VS*ebj@nDbC);7~ z;axB$J*xMEe)#qOLd9b!Tom-=5$jlj7U0{L#v$}#Es2#__hz)A!?kyypbEF}YrMB!Z#wJtPtDg?T&uKW`^wD|}q37e~5+`X3 zTFim@-Ch-W?yj@XHr^6mj2{9W=@r-tkLR|`xY1W0#ME$ALf)CePVNXy48}NUS3IsB zbShat%;&T9;+ymc@|Jr&rhpiZocJm z`Cf&keb5A*SQUIcs$=Yq9ox+R604MOH1RUO=n09sx|LbNYV!FtiI*xeD(XDXv!c_v zWOh3;78cz(Wb_3e+6LKGprm;Pw&v@=Wo?cAhRGs&J&PgezP@ZXiXug!9Ku=XlHyte zp%EPCkSqa@>#vi+jZM^vqB)HX$#9Fa0D}59IS)fgGs{5$i(qroSc)}HGYD_}grU8T zgxV;;KyrUcTrIw}9yLcqCpYl2D&V{cn{%pS_In()~hx8s<0 zXTp({APue_-3nSTKxIVu!Q*LA&`jHHLy+fpCy}mjfD8@*fUK+mOyVVgGKL z>`f;Fs-{{EtJ9cB=FJ%^U&&;zUX0_m5&^q2)Qi{tB z)CIrAKLDG7kMAx#n^@bG*>~JINAbuwZvL;Or;Hss3=LyOA)6hT!PBm^Aw2%)GUN6l3(gH^~a8-0{ceP+);X< zzd1I-y5UeumfOdXxSB1J`|H6AzskXv4`!0e%|1-B_^>)x&7{Y7-nS(bt+fcOw~v3^${ zaEO`{(8eU_9F=KU`8$&o#29t2VHHL%DjT=VPdBP=r7#l#4}2D}$VV|6rn*Xz&r6v9 z#1mUAUP4qZcB{@rfb!wAts)MJUk%0^P+B>!BibsM@b^Yq80&s@4z07 zHcDmZs6-6voM*e3J7&SiVq zY>>Sf*6|+$TsGi4kP*1bT2fB2vea&zIA*ad^hq zcOu1?9UVzQAcC7}BUwMCZ2OhQJ_(r*|DuH`D0n2Uc^n$~)%s1Y;qve!yajPWMl(|F z+Ixc1r@&X0(ApuSvs5p#MrVzCmLX!J=9qa&&J$c3=%~v&M+kESgM6@W#Ujc?%YlXx zM#H`dVl|A4Xov=xzzxyLIM|p?FrMU3}Tk?bUM%_2&SU3SG;9j zL~Yg*y$7r609bYvJ|N&(^Bq9vEwk{3cC-JeML_pE@>}oi`xLaPr;_>@AzkMQ}e; znK-?P+k0=e)12FTc5{Cz{Y8IsIMp_ikT9j-QwO*#%|x9d_*K44?V~t@CxXu z1{|ltm%)#qYlGM>>J!LHM-`)9(UaXM6Qhk-kUr{Kb-n(6*H+0`a7n%4j>r3ZD(9tC z$IJ&tnp1<~o9o0}(2Y})ynk7bpM1Y?N{qeledp7J3iD@Qi*OQSaiSHj1@|I<=vOir zxdzsjpHas4cQ(J3Ae=9I$-td1_k5l?uaJ9cDkS0Cv8aph9-j-BjI|$S;k~N4(7uYw zmEvc@2JX=(3$w0{>0UI{s6lcRKi)Zeol(kThoj?YX0$S6P8)Iv&gy6Rl!bFF|t% zwi^hs55R1k;HycvX&0F*ENob4v*))~B8frtXRz%u?e}sTuf#SJUsP?io%i#7+Y!`+JWshl z{c&Hx$1aw)J@aFWI+M_GJg1SMRF0H`V5oqLR+aemmwb^*S*>L^UD|I*!w`j)DN%>k zbAn#w@jn|DZD&f38Q9Df%j3LCJ2iGz@df$Lv`o|9^`N*%W6uRt1H#&4PCL(Nb?FYp z@fXhN2oJ?x&N^N<%&C5gj6>|I&8Zhgi1?n30ezW$z1}iLM=JNLKM+jmn8D#K( z2!n>n-G$ZJw0gALPKI2B2nY7glwlZ)79!$93oRB7tl32J-ufYx%89QEb#(w{F^+?_?=5 z8V!I1f4(lP8-S(vpoY&}LrDbP`}OPB8Fbwr%cL00?x97DRgsV3;7Lq!3?0@BJaPN z`bqPC%Na+1g*hczX9ad*7fI*5d!o`!pQc7znq8(BzpHu+Xyf7Pe=$X<(+m;zAm8%n z$d7AYUr`)q43nRb;DH<9$MbdcD;y?Qo^lf{Cv?Q1 z3F^!v)N4R~7iZxcI7^S>QODFcH0^2-Q?3%l@7U^wn5$)FhX zivI2Jl{}sSiC>XS`w2<<#h4aysNF|i6Misa+mRntDi!uOF3<+__1jjmk{=9%p(aY{3I zk@436!zt_-hZQp}AJv<7dBMb3=NxytvCtuUM`p9qr*fhvLK;d7IW%gSH+Bu(r0sK8V@_SB(EZ zp3X9?$v=Gi79}kp%}D8%k{F?MBa#9NN_R-f6r{UT5CK8y4v`VU=x&f6oujs~?SA-c`p^K+gTwUR+V+lAt~wa2oj*Y!~|q2Bcxek!prs%81Sd|HE! zMeq6RzfvcA@>tB9Y8l0%Oc+;9LOYHd+cMba-zohpvrhqIPhEwQ5aN5o0O(j{e=9{3 zu)Jz#G48rxv06QK{znnVFLmZEuc<=a5mx#8F=j(%dH_)qRalu8l3~k|RTUz&h zrd9YEpQedE&g7ENVfI?0^7Wcbll#dtl+l>(Vlo^~u*Q{QCT8!FAICTMniA2MAQ=!~ z6x$bs;no#O@|zx+a<_>$6))W^kX5jbLDX*z%t-5$eU+2K5T$)If03X~pUkoJYYASW zQ)#&L9G(1ky>t#a4Mw*<(b9hiJ4>J-hhLIc45kctn5&%1c3(!3$E&D?MZ6=dhR3?iE;h3aza5QE66>G}fnH>L|+S0h2g*!D6(nZuH1os*Uwr$r z?aPk2fSr+SE|o}<3})%%PHQ5>u=m)Iq@|YFz0yD*6JYvv$Hq_FXq&zZN3S`^KXz1j z&D&35pY8KPa)K{5O@6Ge63N{bj2gZ&d^7|0yyado{UrWsgJ0(Z%=B$e%f?qi7Wcds zVAUQ}j1fg%CMDCevzkO}1}nduowxKLt$IUiaQEXpTR5%MY8gHiyt=IA`3kUdZns;* z<^{K}y6g6 zcaDNg;CR=*ilbCFy-Qlou=1(*WK6@V)aempB_3wAN4P(;~IdEiQXm0gG z8h`y^cH+maN2q@%I38yY!>9}@QJt16TaK!C*&=?!R%h3lfZ|=XAJQK`rKA#&pjXJN zU=lofYm8~qXzn-=2l!@yoQs>5F*G>WKJWyTbVVMQa91GP>yd{eRq=&h8|Fp0q+x?} z8uNC7d&NKnWK~lAa?*D!g@RXDAoEuQU!HcYasspL?Mc*IWW4a}lTW1st0m_v)qde; zphu)=Q!-po`JVkk8w_*-*#%e`tFWbuAoEQ3b843Ve(hwDsI!ig0C)RAX)S;b6T`5~ z7kcB+hL^VZAZ#IEkbm(3<2Y--3&A4!=RsY#hgbGB;4m!xp&l5ZJv;au99*UT;|Xm&ij_~sxMw3>mnec;UYzLQnC{qlbOv@Nen~#RuuufHAc;sb zCYV7Lq~5L3A=n{rVyww^Pk=OF1QKKknP_XiR8ufQl9KJfh`s9Vo|`E*y%No5;&M~L zZ0$b@@G_>NS_+KipYGNO@Pa#Xi8Xwo?JoXSwKDs}8rS3I*f{{U1fJdO$^|STl@qMik|9Tp4DOaY!`c7cTe*a#~W8B{6PlJags zx$OA~KNdgc>hsQ<)mbPhSkvx>Ap^P`62Egp3zoD|%&&=2|6KdR8f{=Sj=s_g((m>^ zP;Gc*e9FdC;gGJ%r?+i?Cq=wbgLhKoAu}EQ;BkD*Zq&%{PX+BOA8>Os68%Mq^2bQ` zUu;s`Cc3gHPIwan%+KZy#=b;dx<7A0=i#M{a_5J{pInjA{{PxY#SV6h3@`Pv)ypBtV^-ejTeMrw*>X6l z$4sTC8TYN2fW=0}ce97|4{u{|EZw3uBX`v4Rs5pnBw7|je;f0LnLp)*looiUXy-{A z%vQXnUAOiD!g#Jjt|f!Z=#dtVg^cOY^|GuZ_i%gBeXO;#2aFZ ztF0%`v_?P9Eesm3;^M;9o$p*2i+UAT;6XPrtF5-BaWH(6!~zt446r3CU~)(MtRNUY zauOm8_`)C@WY!4){M|bQNa`OCyv^|eD(}GLMvaEiS6y+ z(^dmn6ef3^6&E^E;cUzGM4xc*GWtkJge(c-)zH{>H+sRVUMKd+CM!(w&$ zE zow<@gps%EgIic!5$Z|P1BjWbNu|XTq{n&2++pRVdd!d(k71<x~xk_g}job&&_?fX`SF2h7BlNERYqoHn;pzNuD*g z+*qWWa|`B`v6|qMvv2|)gN|aZOxyCgOYnG|-*%VV<^y_enI_G1>K~bPw^e2L{zk-3 zE;G>^8VX2AziF#1QNhoo>G#J32HU=qmo!xj5uxpENMqMDy6604Ic_5KK((%>YCJl9 z_>c*=A;%W|Tyhp89-~niG6#aOc?0lQ>zo^w@xz!IXFCZK_;IVKE1L{)r!0L*fm!EHbclv$izDQV2S1d%R>tIY;$_20$rp> ze*ya&Y9_sVW_3QilBCVMsQz1`2iO=u*Ub-LX z=~cL8{N(W7DhKq1z#-pMXOEvs&*IKF!Hv4{JzwPf^p!h&{OD&rUxc9izY18-v9}KB z%AA+oliAr-ZoL{dM2!}dPvb&tUZlEpN?-QNwK@|?+0YT)PDM{mAxZUUxt8xr0mG7k z8`Jkte|fnOgSjIJ=$ORY$}&>!s-1qAu3*O4SK}uZHMK|SQl9&=ONq87z#jLVPe7i&1^I$DXRt4jhkY~>BAb5l>RaA+QqaRb&0*AXNotv z8~!P|HY$#;T!yKKTpwf6>~4~uB>r=I52Fco^dno)K3w>_Rerb+N?um4q zS3Co{)L4=;w%-eKe{i8ZI)ja6ZfqzEM(qG*_WAiucf(%%{xHFg+Km)eU8%YpQ+8@m zeo{u3t>Bs?X?RSgBdTaO`S+|2v#_HCUAMPn)~(PVMWRg{zBnZy1MY=wE9qO}60)Qz zPp#B@tWB(o8Vqn&ADQPYYDh+tfy8yf8u*x8xnqTkfV|TKWUEEGW5XMcixHjNimv<5 z^$;NVJ*@oD?I_H%#@9yrT^P;uG4EBE(Fslc(4NSW#%{HzXUbUqyc_A*uU~%bHc7+!^1Ln=1zXtZH=DOna?z_Wdm`*^RXE`*NQ#K0JvPSJ zk4ZCM76`^#1(^Ct9B0_VMlv=+-!7OoYOq*i)283r!op$sw?U6_2uRXh?q)mI>$Vm0 z8yB6cGvC}mB1@ZDj%Vcedwy>{(bK8$Zke5X!i`z2`McM9JQlA}?rc^#@+a7_zimwp-)ZTnP*v@^WjxM%{`vefydqUM zty!mlM-WN*YwhK6qeZipvA43hsCu<~k0|D=>tufHRP>VfyU7|cdik<1HZ?>=8WH5Y zDF*Q}hG7TVe9nvwu9WtE>~Bh~*7zQc+BktKyit~Foj*wOvbxGOpFK;R&zgwv%_x34 z{lP{dq+X}=coUg6lSh{6)iPyV&~JLn;GUZHGdi#g@nDAf0qNTMT~e_w(&j);J%d4Zntw^g`d z8Z?J(IWYVPc3}N^qcGi#NPPdcZ?Fpfo~$MR)Pmv37CO^{c^p+h9qE5t{1WRElnj1* z?#7DJGdGqb3I?6YI)_P=GI6?Ow261%Hs_#ppTR%4uxFQ2?;cMkUj`R%L!LfZeQ11+ z2?_XZhMbBx?tXfxZv*ldaMq`*SYA_%Qbh~943$He7~rSz$mGQpnGC!?*rl_~Hkut%3K}@jc+L_)^XzdICzuU5sW1$1 z)hZ9hCK^wE!7>Q!`MI?DyIRCz5R-*o@V$44J)mm(BKVLPYlWL`x+?&44R_4*l2FEm zwaHU&TN{XTGHw;F`yfo#{15IiQxo*+rn6fx;t@hzZ0sTiNt{(I80l?;UJggL>(X5^ zMqjehe1F4ot6w=$JYb4KHXqKj#j=DfPmr^xhqRm8!N?7jgzw8^kz#>QzqE^?=Xsv~ z>9hEiXc>(AGzmHRca*QR-g~Vu~?Df(ubFi;<|S=aM5Xw z>5Mr`74-6~DQDdW?UrZ}(ScwLDX-@s1GDej;!(cbWh z8NH!;M(ZSUoBQFJ(AlfU0iHveTO-OjGCbUpC)2O)9apy5-eBh|JTJ-|>jHQ115Rhu zJX88?TNp)oX_;=0ttP53%jV}LwU6b2u1BYPYg0fwpRh4tBjli;^DXxK)yaOrMXJ+a z0!q6=JCuTIm%zP~USzZxEJ6(kehU6ha$O9$53p$|;goNTz77)L%6vj`L};o1k=6JJ zuLuNdZ6Fh)53jggFKr-^XKJ?-@XX}D$A>J4^!$!>hER|WA~vR^@sHACeGO~$*@;NS zi@cBf1CuK)#N5V&RgX0WN5AS!E>C>gyvQwSW8sfnXmR4?=Z(hrWs9|I_mR+Zz6;k7 z@O!^Wz0UO0*|i&EPZTmf%cFr&uP1eW6P;Ha$1JM(YyVdXi%Gza-8%O+a&>;5{m6A0 zd3USQlu((;Mk01z<@2asW)&^B#Vcm06Rv)OX9E85)+P z&pjrPGqr+?Rl?U) z>PrxhGW$deQ=zzZwd~}Aal*b?%U!9Qv=Fx{rJ(BrVSyLV!RNf#;NOnV`qc0uBST1S zgeqvn*gh?z9pW)(tKxcL6SLK>66ku8 zupjuPP{4>UB_+2%1uWp+ndl?YpCd46Iy26u*FM2%uPvO^{=kQ2V`{$uzRQ7~l~lhw zSj`yZf{n-62axrm0M6`USdQZB@l88LJf-mXbQiBT-8)%IN`;x8gJK?ua^4$1Yg)d2 zXH$1jLqFe-&TiF}tQ0&4=6Y^2Wad|*YMl=p3gH4zu!sRY%lAHxUys6Z zQM7jmg4;NVzA=}k88}`XkVW}p@82b@is}5^=D)woexkP>Q3*wjURTk@Cfdq*W4NuyANPS2$P~k_Y_e`!M9YicYWu zdQJ+rDr8zrvDXp6uf(hwUf%GH-D`}=HvwuJDlj~`E_(sT(xX9Xel`v^FHHhBUBhZW zugl5f-FHZfjL@6d=xUgyl;-=i|02)FV0D>uvo`tr_q5VQy8%zz#Pm$5KYUuV3b*2) zf&%GncL5;2=F?A*AfuO1@KoNU%`P^dA6a@1{iPFWf?wgvX$|Co)j zM=H)j=Wd~`pT`RRHz3L6G)#8Ikq+)YHZlWCxexA#H~{0@i@*b{{Vj=O+*S(-#gU@{ zeFjM6tp)i%WP$ZAAgUWdN{xn;lBZMlQ3PT!YX89oREMB_B3ITd3)@xC-4O_vES2FO z+e{z3W}EsKh6pbNeA#=nt9mV`n8v$C12bPsc^!3F^($q2`&FL00k?{0uR4LG?O|WA zeTWi^pTm}hpVjBIo$Yls50#RRMsst*~Bb+3}lfZLaa8-r3pK6YNM{X9E=~Wztul&CAhB zUnB3FOgj^8bY-xmk3JT4HJkl*mu@ghLzP?f^_yGx!t(LEU$2N$LJuy5KOYi7-_9ho z^M_OcHac_(2VhH(Xdu0qK9V%!-h<%YPvoq4Sgp*>hmTvkyTu)L#Y4iCZ|(V{%5NATzpOd^4Jj@ z7Jxwrp{%DGjQnH+E1ibyib`e@_-xY1i$w%T$zuk|FpJhf+jLISW`mH)k)(HnpOF} z3tfQXu#gm*(v4ncWyLc4PhJbV4XWF8?q|4xJPfR26vn`Ie$h*(Dn>YxvOEnu8L#kU zDS>?3fb7t7%P#7N*d`)i5~7!>$|Ztmu~4NS+i=>VdDEX?n27&Yf!MJ3djP2X#kU4T znV|0{jl7Nrqk1^TkPI?il)JC)y_45IP|I~Go0{>Q+a$1>@WA^xLO92V-i+x*T2@KY0tC@6aM|u%iBxtG6Eb1;1?Oi z)Z{*PU<%m`PiH731Ha)H!FSBUlO8pr4$vsz+SLSa$YCF5NsA-(g7M8bF2mlj^^ZZ$ zoDtVBmV;2pR{y%!GNx6`chW9fKIq4C^X}c&^W#;&UT6VwEG5N_V@VnoTKcgFqg}s? zi`*J>x8^*Nxe*9X7Ws1Z8_OR=odBy&-=dpm#R~+RivE05 ze8@c|{j$yMbIo>q0W%(p?6CuCrtV97t!?E?$-|Vc@UUb~Ehmfp%L}4zg}{r8vi_G8 z+}h7{0YcdXu=0a1ET!vnDbD5__KvjLS^SUy`nmWu>bPhXm}s`#eelw1H_`mzXLrMP zzn#F!qBFRyK|Zr$6kS@h0KK?Fn#=qjBKS&ts+7K4Vgqpqzr8h5?_N{^oV5-&2i`kU z1!`(kA6mtP6V9A0S$Bf|2a$k&yB$rW*s;&DxVjLFkw@ZB*>CQ%TWbUxCwVe6HBE$hu0`Rc6HpV#cA0Gv*+XB=yk2O$hY<1pq?**1sfc2A>=8@!_ zc>ZD$f*W>^!QQKXGm}wNf{$9R0*A}ikw><_UrKEJrYDY=mrf2VaM_Ifmy$><Pj3 zD!72?j(E0UH5XN0c5Y`vEcwBvi;X<@X-sVFyA{l)-BAST56zjfW?#pyJ zwkagCIzPD>(+d;OxZ@zXU9Y7zDxtB6`ETPLaT3dDV06$5pJY8g8BBKG{d+mdoLXFuU&8^)f)C9p97@yk$1+~0?Y&q<(Z0MLX!;OM745}&4&8=jyHD$KSh<(nYg%z8Aj2lC@AbEV!SHflk8T(# zvS>@lRAlb!u`-Skn*p`Qn0x6#wMN@740n>$oniTI9a9GdZ2L)hxZ@@0=35u+i!O1F z)8@AyCcPOgJh}s8m!tVrs)9bW=E;{U;&4t>A!|$D=^lE$=!ZspG7aK$eJ<3tB={&AuZ6cR=6P3eUkh$vpPBeOL%RwXAqWO&cZ!3 zX1G@99{d3Y%$ZbX%(z#iYp7{2dt>W!zHS^=;XZEKh`mrH$4%~oR{u>_YZ!DtMXA_W z;;2PHX?0}uqHm?kBxMj61s{%o$KgLJ-;-!X(a-9kRCEQ+pJCGi6U#mz#>6i3ak^$u zzc4xUuI->+T?BGyXb9eStBHB;i)+gC z-JqL7f()_U4XfzU5AYTl*q}!qrmh+>_OEZb-{vTBZ33rW?$vq9%klPtAEXa(p?VGH zUY^L{u_qDlX(Buu$)>zFzlEhgfjoRn`7H;@Xu$}FkMN(3*k(JyJ4{$!VK74c0_k5H zf7^-bc1hcBXOndIMM%*cXLS|X9A^4;RhN{K9pQt|sl-uQm=y;Jl&y3%U3MfX9eF<@ ze(ZpTUC^}>@u*69Ky=jbM<-=52YgZ+f8)CLj`UK0 z?4Be8U*fkM5p!c#Y89CJ(niQVg_k!4J%0ew3((4yNg1FIEY9^FLB9bi0Iiu4Mcg<* za0Anc`l+M4M1v^w`wk*}a3emynuhm`%)J{~w1fglGJJ)ubE;$k_r?E{$%GriZElNa zL=Q|Z>9?)hash?3SuojitdtYRf1%Bn3SAwXXO+x9RjSh?!Ad$g8^y1Y5^k6n|M+0F zBJHtD0-ap3Ha>E%6_`>yI*Y z?2R$?{rAd}KP9{&z|hi^#}*csOm9>=kg}7p_UyVcFvlZEP1amV*5)mhn(Pzj3F{|R zSwyfOi7^H=v%2{GxZ*$Edyb1jdt_}ypMToS%+{W~bkfHD zEtcz`$X?WMcc6qIEupj1$enxsVPvH-$CF>j&RUp*%mqgCd0Z8eOGr zWVxPiG+%-gV_sgbi!rZK$ z6vdw2-1*`gR={oM@bHsmR2}SJaNb(2-QJ@=s!#B^w4|K;F~kYp2<_A1L#nHLP~imF zSb6+zoJDX7@zKL6t#4{~&;PVk%T#1Dgy9PZSxTIGw*v5E!EM3i`W4CFDQ zM!pe~>PREgtwU|Z?*(6>Wh|6RPJD;|=YY?%m#W>m-M-mne&+q#zWtd?Yfg_C4KRHi zgn<;SA6k1V$POv^4?YZGbv(Bv+=Ap0dq%txPy$L4l1?#&QzwDe(( zr^LQ%of@Fhk1NgdNs*L$*e;e+r-Q2x?L-=j7YVgo8jUIB5>343Tb?LsxOtkY!_1T=f( z?n#2XbEK|KTaT_}X}}hI@ROgtv99+cda5t@6_anPdCff2(=#qn7z+ahJ;FZ?d{hDdRrNFZ7F)~pI)LDO3YMUmP-^mFLIX(JR(Y#P2cawWMnr7$(K8`b(dpW zjB!DIU?jTeOEJoLndp8&?3_TRcfvE39%64|8f#+}2|s5QD{2t~(;KZhXq?aK+CgZ6 zr@FGG_JCo60R0b>#ELE=+Jg^ne`|xJW60IEM|$^|@T9#G9lia1to^E<`Zo0w>~zpx z2N#C*fv3PR$@6xWC?2_J$k>ImvYcEs7! zid7VwCOq@HH#wtetCqX9#+O`6gV&ND5Lpr8*c?|*$5%Qm_sArTBptC~_~(b+VAepL zt4ZZyMVA3)-flwQx_T~4J2$XcAn^3AV^5wVca`+|N1N0O8(==KOvIBnO`24*3Q|7kxgzM|1T%Znh!V~YS>E;y&x~RJpwaBoH*P)Be z6uj+K)eUdivh~_IYF>L870`tH9-SOXHBUwmHhDXa__6QBj~cPE3cM_0{+~`$M`OWW zt&?L1Qpfm}`SO%Hg!(CRe?I&4op-MN+3$Tt%u!O$JYeLL8CIXASsC>3 zA8~Bt$eOtqNs#J?&Y7-=QhB0t*FWyMhEQPbIZh5RYSoTorgtp23E`5K$#{_l%?j zodhW=T!#yb=WY~kwCr|Y4}u{_&Vp}5nLCv^Zy(@Xqw z_SEmrtcJ#$+B`YO!n`4m?e+V6y9dh9+Bn_|AL1V}oBgTp`ucxnkgp4sE~B>~L$ixV z^Ge7cag1`heHkV;J$m;_-KPiozPf*(Vvapjg}nCuQ*q0E#MEfm4xVZ_BBNt{cmVkj z_CoK=y*=wFXLbKx!fKXe+3_q8KvFN!wv2;2Fat6o{2_r2jDM^!&(R1YM@ ztn4*UXUuNiDphwKnFx3JAfMKDxdrqL^MK;9D7Aa8;#UI~+sc4SM*yy#1;vcEhKGuA z^n=W;93Vs(T9Jm|F9|vt0BiS4i!I5mb z+q1QzG{Kp3nP+p|t*{|yVR^2l=D7ipJbeYXEeFT$?3>oCa@St`xb4wb3vJ%CBuT|2 zea5V|swBxNU0f*^7Q$Sv0b&7`;V!0^Ia}}G8d|Tzwl<4nDUIH*ZN)L{xh!yP!pJh= z{BySV``&*AZw_?n_}&6-PpUHe#@1wWMZ;p8@79S%E=3olcu%AgC(E>qK9_QNDlz!8 zG+)x=+}&+G?L055!`SzGC;hiD)4+DA$4L);k{_4qWyVeY`mlPY)k>HvoFULm`mlZU zGdBV2!>Lu4{1D2w(9?r<3F0A?edshgl3M|{{Z}%SPDd&U8F17ed9j%6GA^k`dlDUX z!LJOgs9`LFO$hu|OK+Z7j(Q$oEMi7GHn>3p;`t;>*Qo{nDo!M-JHDO#k#8B;W^d}u zO8nn0fYVQ`{*U?}xvY#gK6t;+j~%{U5^VC?2~!Pz!G$HcCVC4Jb+1N31SN^g?$Q|i zszA11?d!EFCJs_~g=yr(vc(4k{RK6zQr{OhdcWQvggo+B6J8<)A9dXc>0JN1510X% zP!55I4?lTgV{@5O95(;ckMf8D5W~-`2vW=;Kk4$4&J%gx-d@}IHRLeNzOG{51!y4} z3x@HH%7S0|YpJ|0zYr&a&4Ih4g3?^J@E@;a0-QRg?~gnQhPE}%guSGwc6Co3Y$I#k zLb97RHJSNsJRpPOp0*3HfmGD9FdukadH2=qaW&~V1V<}1EvRz+D?H4>wjEDYOngw zh##xV`mHOV{~CE=Q$)LJJvu|7*&d`S&H}CVx55n*r(o8s z;N*=DNil}4zndv!<7dUHpu3B8DL!&Rdj0!T=-(~&2*}lZ5qz(42)^e#)<556JJI#z z-CzxeU2oGI+`t9bV%JZ{b>9YlY>#6dnw952$@9$7hU1g8gyseJLK#~aau{phd{^WZ zL8;v1hG=U&qf_{RS=y2s!%=>{sNc0@Oe$4R_?5NYVsoKKFZ1G+n}uLvWr%qKvy{an zr+=}B73FCld5kx`rKwQCGnClBZ?)X$pdN@I6)}N*qfN*v?xGxYsV8HUX#fm9I9(0Y zgi#exC#!z^g>`<}S&a@C;DVUyd1A}OBKrMrh%wj7csi7apmb8#6u#$$SUhY`vgSC{ zg=|sif*D;f4%8VxxZ#+Gym$U7^55OEV3%{+Csgsl|C@Bf;Go~4aZu5|S6IS>cfK0_UXj?E#*cvxU#>>Z>-rlauD=3g$vH!JAs4t$9bY#TP>@~;8f)4V{`{bva zzrVXA4Tsz~{gIirG{RKXzSPtwreL zR=ga;knr}puecOuxXv>txGOl1dcBT4+ItHkM-f6!W)*+7`U^rN(}XMM_2G}`j!oGZ zQkf9})>m2nD8~|XpM3rsmTlGZu^32T-;J*8Gc?PJgscynCl*NYfnp4LfZ}WuADUQFS~qxGDTbU*xbsL^ zsqP`WxaB)hR^QQtp{?>9uLz8lJ-&qlW2 zQynJ|1}EP?%)88Ih__c3n=S3~y*uCalh-(EE&PBVka7z#%7>iM48?H|4SY3qhurL$ zSN%CF$Q9OA@GM*gIyqDedTvP$NNQ2d-5yP+{qTeO>`T33OO?ro+?LG1wXARKTZ#LuUOi6m@Ftn(2fA#-zK%ksz^}$a=7gZ^XbIY(jFd(p41vvT zIc!YXJh=?`)EtZ1>=1SNwI*sf<$-wN7$RDKClZc8CNe@ubO%g@v}$WNKEgT}MW_(9 z;h?k=%n=MBEeUq{waB@Nf2+WI+?x8oMhvq|IJwt3$-={7N#DD~8vJ?uK*wqB!f3W< z8@G!tsT3*@y-)49CF0XrQtn{5K8e~+`z%v7-ScGjx<$%-$0_E(_IlvgvxlbKx8xez zD&~OPZnn(PFqTT%Y8mls`mGf5Z{cRi{Oim*ZnVZvHx|QfpD{?r(3bcNE?s3dtzo$k zc=P8ojfWMkpN05Y`;E2N=ad)367_&6ileB(Q!L$fapm@+3O?m+0MpQlvF{fAX9qNH zQ=mZ&c)NZ7-B&s0t*43pOB`_jWu0GrgGrVI-eOheP~iPI5!~Vu#+nZDD@tE~?Z0Co zI0%em5`SOu^lg!f7L{&Q865|Ti^#FcHHC@pP;h|BvC6SNpg!TjhT59isx-aIqTSRs zAHC;a>V>u~F2}N!aDMGNyWHu)n3;ojU83BYej3Tshbw%{^W&oSqeOLqTJ;rH^~&Zs zOT~?UG|cOB-c4@(tiz4W75^cXOwI*6!oEIQ_^RRP;xcKJKjcw~`WsEPj4ZrC0k}rU z)GrrNpO9c>Eb*}!YeDi{kl}f?K)l|X?Z=zV0a{v5s=hk-e9fuo@X(S5-GiU4No?t| z@DrL4sg`ZD-b?eqnOf|P;R42ff2dSZ9egTmrfDu@gd2waWNB~e{;iG1BEhee3mWt; zmN3vuh$V!z)D-+h3;kz#9(~`S_yC%JT5silNjN3=;`M?f9j_BLSC?wODfT{q34pDW z=L)S={fXgzA&rxzkYBe~_)+WQ&taW;Dg2VB_Q$ThP)7fbW_m)>2D+LXlW$1=(*&{O zKVgFT`_4Bq&+@IoFJuFllnpz9CRWa4MO}hkLww%^SwOsAq`hM_hsQ$y31+fb3lKkn z?}5%5l{{vT9cD<$6QKzQ$qja$@z1d5#L{0Q$_ZkT{ULPQJPYkO|`BCME~Fu(y=_i?03=Yjsz;96{%+R(R^dp-TOsKfZuY7f$Tays_BS!t*Bx8UuvzbDX>sP;5Dq=b^?=v3ct zQso(s_&)bnO(<<2k8IH6=k%GprrN-IEZ|wNcMJaC?^Ng7*55qHTBx^sAo<}U0yqhV zWg|Mn5-CFO*c0IOTX1-~QG!$ii1zVmAwGfF?z^!B;cuUa-P#|-bic&YueV+QIq zwa(2_Y@_glpiLLSxVnd|boipS7;rH)=8lOD#Foqt<5kP?LC=R}P#_hm&yNwZC=MWI60zOOaU<^5x4>)-N%6O6&I*td{ zA~zfZpZt?He)~CieaL#|spDm061E#+Lhyx@8mB~V>V_E`7)d_4HFx1yT5I-7*HK0M zv#~#?-U{w4wn8Mi6$^lPgiI8 zl*P!;138B=Z=R+&W$=VU`uZIW(@c0ITDL|eX&JOngMiVVq#7@oY_=tl zwuJ>EYN8PnDB6M3l)?waaE^+xJg;ob#+j_0(THT8eyx#Eo_BuQU3})V^D)ovKeAg$ zqVug@o%t+0c3LK-uvn5Qz`XlG!tU>lVlDWGF|5Wbmk^!DmBDmg8A;J$upxRQy|fQ+ z!|+j?j<;amZDwPhFcOonK3B(zQJet=7wE8iXzmrWep9pR1h#4{AMf2BVQLUKj0NZv+^5Sj-p@(&jwosx$IqPZGJ6pt=Q=`^JKD$j3*+Avi{?&3r((>a@S~c$G@W3DK2aLP0f^l z2MjeWnS$vOGh!$GwUf(M&| zToXCG#_;T-i!4Vc?`-7c6q``nmX}$b%TFQ1Ip3oQe#zpw^@6aqLi7izsMi#RB9uv< zh4OqYJ$ef7Z9V?I8E!y*=v`;KZSc61KKe|!GX~p^U9#o2rtp!v5EnF#2oj;Ov_319 z?naxe^zJr?B-ng>U5s31#1MPLM9##n{XH+(RD%uqP(_eWv6sqQ2J{DE&R{jfX4S=@ zJ=2bcz#}~Dm-#6)DE1qI9Lc-m_?~m~CUVt_ep>p1I=@9Y|GO}tpLFQ(<`4A^`err+ z7FzBzcKMJl*ib>Q0L78ZiPcTc7_h?9C+B1DPk-)n8#fS>JxC!iS^Jek;7ke@W8>+z zj@4n<`PZUCOanWC7r;3L`6ZhNrGV0h{&jYTNiLSwlb`EY2|Q&nKbuChu_d6>{+EI! zXKHUe6Oa^*K#K0kX9su_E-P*6do8@GmaWq_3Ycb^FaI08oEBjAUnUIS|+49~$LXXNZ zl#ZIXN}JbvYImo0^)ewD1A{BXXlCnMP?i&VbM)1#N6$Uwwj8KX9al!pt@BLzHcqPH zHDa$I2zmX5l!p(pX7Li>8N+RW9Yj%j0|npNKU3lavPD1svOJ3(f|p8RBWHFH^@$MVTu#UslZm>hL z5`=UiR_rDU(${|&I(`>Egjv9~l-v|j7(#~X?9skzB|T6zoH)xVNz6K!?gCg}0d8m4 zku@VBi_5GPz_fp*_n-UO0T3hHnFx=-ySE*{8JG}P!TgGg& zd)u@{i-!L9C3qeTWL~Y_tUwBvJvI|L2>=h6SpGtaktvU$v~f1Kiiyc4?Z$5Vk_hm- z-YfHI>w)r$>2IYci7b37k?^6bUjmNKI{kfvd}h{-mYNX>>8)za!aXp(%x*-oVMDoU z0-cmn%)?Jb_kYWZWXiiPK0P4yWqW)8k_LBt`=-e7Ns0hR=92{ab67+{=93we4V)Zd zO1s~b#^S@Q=0n2Wv7$>h4H4h|JWV#w+nypJ@jCB0oorpsStw~Dr1ie8cI)lNjfep) zGLGvQ5fUr-b{1rqSyPLs;B8Ls_Jsn3Y8^OKH>jD*6+8H00F*g4C9aDjYTwW`*A z&G#ldUMI;RJ?`~08BM~-=zAr0N{u*F6Uv>~=jrE=40*h4)N*D=U}OQe>8WONtjAjo zCk&oGWr)AnzO|IK$lZtIAk47ZsU>7Rf}_oC4yw*NXPuO@CodFq4T1_^;!+^|WtV5> z9!=mK!z*Ejjkih9)Ij?SkPp9cUjo0`R{d#$;Kg2AQ_M$^K5}ldB~3*oeLVvI!?A;~ zXvP(uwYI@mCP4plTs@A`%~@i2H3*|xD4(pexc(X%n>%v4+7q{a;)X4+Mw%(AXAH#E z350`tA#330+n~A{XZ?XI{i7HYy*#1-q^@3!x*TH?>$xT z600=QZnOC*BZ1#>pB!jnmTeStv^C+AD|xA`3f^pchOa6s^7PpYutHZx4CTC8G-Q@D zuHZAUmJ)s6zrh`0Vq_F)3zHo1%d<<#&E&V`<12oHQ%Oa0QEr)3Uw;|egTXP3oP%Ivr{NoLGKd|l!M4-tpA<~IJD24z2zYt1=bVt4h;1lmjzvjhy^a$D<5oEB ztAU|v_oQ^jl{CE&B-YTV)p*vmDlOrP%+bjqgH2_q3WiSQeuK8;0Fg=VQw}gJnB0Hrm%dwU{k#se{FC#bKzoZn8M?D>Jj9g+;8h?*C!xtK*{Rzi>g2P`Z&= zx;q3BS?Q7nNofQW1r(H$p+mYwx-lqe1(r}+NdZx5q(r)w-I+V9@9*CGAInGHcV_3D z=RD7I&iBj}XH3f;S(NCnsi8yR17+RM)*eCEr+H_HeFzNr+nxMx#FLor?A6TIDqpHI zDl27r+(qiq-dU;;oK-1PoBMWz!e&*4z+{6E=u2Xbt_Tf9((}y*E?@i!AXS#3=uw`;e#N_DX``?rAhf`n9-fMs9ijkk> z&C^_)H^M8CT6u-Q$npH-dMA)HjXDVfexi?zBlPZkDk~e5YV^%h6iTqNO=t17DtS!rO(zmR;nZaURQi_di5UEkvQI-cc(CL)>+BWZRY$15$ zZ|=}Q{nPGwONe>YMTPSVO8-pLYv$fLClP*}T znw(WIa1D^rXu290D9-d6;_?J-mS+`K}98AiQ*Q9yG8qgkB=sb zf#s0tna0!S!Bo9Eclnpsy8o?YTa(?0D#dKNzX5tjgb}YpE zNnPr3FIl6(`z(}d2`=hir&QKIpQY`|b<+G+1u8r77-l8Yq>LlWlV4HiHtfX0 zDADI!_M8qg#A$K}atT$pvM>n+rXj`E_{g)-(5NR68hjrr0;?j^Ca(<14dPgx|S+e%>|LOK4EJ^<-*t>jJ>8|J%0pZq@IH9x3m8 zZ)ab1cphr6_U=QUfEZj zUbbPn4_f~4TyB}IWy;%P_+Gzq-|mC{+R7PI@*d;8W?B|a%&o^2Y@tQ8Vu5+UU5ZOY zYejjw=RRF~XFKwWy7yySW`-MYDv&?jUD}XdHkEVXSa~VF&1^gU@KYQ#_;U*K^Sw~F zF1~T&3w~EYS0Yvo1@BAL>o}w3(vp})Hgd6Hd!@aMCZq@Hb*_c%*p839(Pa1`DPHx^ zc-7GEkonm*0ahm>)$yjy9zBqCh9b}a(dJMJHX(uU&|0+a>kB&6m+bbQA9M71(xn8a0VRmzf@M_xd;BmH zj9f=r4mB2ocR-{Dy`wljz#z`0glngS1`4HQXa-18)T&sWwm4OVhd%pXRL%&=y!5jx zg2VV(%YE)?T=R%0I~`!yk87jERHPH0J$@k4fNEby2yBvJRky8Nsz!?;U&3Q^f8`9&F&}yf6Y)AWho{aQ+1q8rZZ2BSF+tEM-f^7-X45#QwKI zS7_5Nn*I(@fmqOXufN#?gy+ID1-PwOPnm#1B*{UN11LL;oRH{-ts8c@jkn0HF_^t( z!{P6LE#S4fwh?DF*G77=RIZLuGXH~7_xsZ*!Rt?NYd^R{P|f!$<2EbOFgZ&+{PLj7 z%0kg2^dA4fa7j{%9(>YJnqk%}KC)p?h`Rr#uCBCxe}8Xp{M7-S6|MWKHy);~CogjM z>gclc8DV@MG=bfyvc@|d*v~*(3b#=5V`KsfKdVBc^ct->`M7riS|oYP^ELzdq4eyr z@;O33tyGGOhoM@q<>4Cbi}uPca7-5?(yYAk`IOfD!>I|kVSZ@m$Wnk%!}@t_FqZoI zksIZKc(6%areM3hRh#K(s3vfAtCzmE?~H%<+t-$n;=_&8iD~WU77@P@XWZjHGLniL z)VE%{oBgo}ZcL!6Y$#oKcrTBAEe%gggJy)uk?%q{*oetL zqWtRf9t;hLJxp>hfj_;_zt}e+l@3ihY@n0a1bRqP489L+c1#>1Cj7CCyJ>0Ptdy0Z zXfR1H{6VirG;WTLe+HOLcB7_?w1+O9CvC!AjTx>{zJMmEzsl!4X?x(iU2bKedo;Yj zC~8m6but{=#ZZFPt3}Oh7^}_*AEF$xpDWA^0LSVYvsN#8kSWRB8n?9suNwI@G&;76S#Q4HEG3+dh-bfg zD=LFBRl%dXf3Pcq^8vZBg^dVzR8n$tfq(hrl$`GU$I-i5v4C3MXnQvqCSvqtlBaS#PnwIb@hN7YwU-1 zodyT0c@t2R3yb3L0x$}tzr{(20wKObc$S+I3)r0l#~(Ma$UvV&RoKr})yt9qi{Y*q zYyne+OF*5yg`YWR=ABh*QSi{xG1c!Kdw}@-`pi7*HF)9GB&H&v+Jnr&Ni?sQAd8~( zsG!v~*ib=Xw(M1htwA$Wlpd}Bw%drrqbt_dWkI_ff?^{nDfGNjF5_;@R~z7=OR)_2 zt>A;BUEwZErvs0c_V@>1>@AlP`V(i6eahgDOzr;?IS`}An&3M=`Qy2;=1XrOjqqDc zNTWxG_f&TYhv7b48Va*&n~{rE06$97yiK8aNaC%3?n!P||HWDc?BRc$HkJ7@ly76t z?alqT@PdqL0`~~FtIsN@gEHmlHyz&3FoiwI%nDmh+PV3|cH3Zh>oI07QP^%$u%C`E znv>o)WOSZL!57R~j%WXcP-qoMn(Pp(@@4M%D#UgZ)QsO>Mi72{-KU=R=Em~cU7qrW zeYEk8Kejpih@xdXFF6#y)3b$if)$k)qVQ6rl;y&Cgq=&$60z6M4dne;Npul^{|(mO z63_YI;|9=qpVHkZ|MxSj_TF+=gFD*1CuZcJV0-X0AW3`4M`Cegr15xeV;0rKNrQi9 z==p+lLNH@yF|?2i4V4cRO$z#_n@Fg*mus~m+gfz>QN>XoZ-Q$`vm4b;e5gVVlAdc} zrJ-x#hXVB2+8_8x=CWC#U1UGJ_^f>tsm&hQ$cS}P_~g!70dPGlMaSy2!)_u01xoit zZ<^WY+>u?Ucxum=^dIo9RNPS}xs1-^LUgof$y2oEkxebCpQwSmVj@E@KfDW!e-Cf_ z}p!9nb3#G_7yUlQO{2Uk2wkG)Xb{mweV)&bPD*1;`U)0V~W z)98XQ@NOe}V5_!AjT@djK}X9qaZ;Z@#$em641t z`8y>|O&V4&H+>J(RaL9Vn6Ii3apopYODeYe#immVna~>R5o!D;J{x($!t~P0Du(kB z2kDpICxRG~=X;2;*JZM=G|uV@k2W%=q}FMwg`~^*e0q}i982Hl@5;%^J$A8pXC&UC z703ecb^&}Iy|4HPLgyLBjb0a&j=`r351T{u_mQD#76Gpz9)JAn#jULaGp{4-Xvk$C z;#81twEwJG?ZU}n?Ft$g!2(=48(w(^-22RB=yv3(!5{K;%;S3cP+mg=>b$^g;B(Y4 z4OGe1eC?9IJKrX$fC%F>a(Cn&)BNEZwphc?MiM#D*(o+gId|C_eX1I2J=S3J^Sd1} zE%@AV{JC|Z&3W^n&*5^0KGH-g89J*8L}x#L2pl8NpBDt4H6#m>?4or_=qfEX{;;1~ ztXb`-x$Cb+Q0fktugH)uaz?OplVmx}YPHB-LU;`0qaF=j;X3>DQ+M+M1g|1p^m=;7 z4ai3GXD4h&t;Ant%%IyHlw~_9u6CfxN%u4-+lt>nbQd0=4QTI^JeDfieptFRI0+21 z?50`%JV0h=l)zj3=2wzZ8PG@x&MBA&6;uOl`R}f-9vO^6+35KOiWW85p9!E*^-|Y* zAYhp5@2Fz)mOdmsXLzL?}d+yO(~i&&?g zVQYyLIL`hp*nK)AU({Z%box14IZ#3%9w{hy?uo5v398KX*>mMJirLc8Aj?{m|HegH z&hI7FTlmfvG)Wqos>)gE=jPY(x9n(W zlwGRPrg?GlptIZC$)w&^HZ`5kz4}eM<6A*Q;IN0FuxMJAU9dVIyCk*j+sss1lBw%I zZcYOa#eNxc-XfRZ;Qn)K<@YOcDfSJF0<_I-DM3`})S8DK@jODy6OHZ||HhBJxWh@) z%5voj-JOT})nRZg`|RU$)GtSMO1f25Sl~0h3ZH^=+&O{=S|$j6$rJKFq_mZij^XXv z4TWub)7-nb<%*S)xmpPtC|t4J3Y>siwfbZlhbxr&UIZ`ki|UWBo4L-5$w-fvZQREO zelxNB?SK_!5njKRY+0=I$S=o1?fSdhE~{qPBswyav$db1FNti%@PZz36M>pR#)!iA zNBk&v!8u4u^$Nt+PV`;LqB;p%L#KXfjigCdam;3hOED0G~&#R(}I`@1VD)K?diii>Yv* zp3!Dk|C;aOo>bth2&-MP@B>AM;�ny~;|a@GZUFZ$HGov1xyM7tA)LYV9%?c5#1y z(A)*{G4|@&n{vVcqbH?4Ao)&5B5IV^$&wJ&Yry9%s$;wx;1ZyL1>}3?rk*&r)#`Ltv~nU zx$@RLjnDu&;Zick(#gUGNWOHpQ3ysS5yS=$vJdH79&RT&->n7$(V`C$MRFJPJMH<_ zijVjkirD+?7UDeb4OjbC920*R`}INU7nJ_==kENS@?=rxaD*@JLXT?W0iWCJCZppcaaw&&3; zm^!fP&xY<-XmK38fGq;UG4=GLk;gmdun&BT6}EeO0SC;RLFy+optAZsfVvmzrJHt% zIHS~xl;$}#_GE(Y^IxFGS6x~*IEX%@T#aXBSv9Lg3W#_`4`3*@eeV${Ror4`S~q|4 zcgQI^4V#^2%~4@@tlql5T#!LAL-~2;##oq%#0-|5ns08gOB=(OCahkj z%G1n2$uB#pMH~ETelGDdL(89%_Jqq}*IH5uza#v(h#02p>#baRhb{NZYJ!-j6Vpv5 z+RD)U2=h|Id9y!1n0b&Z=enUk<;iV=Do^>x;QRmFnr@MZHVi{K;Vhr_D0$i=k zbF(Jht}#bfaAeoyNVNS~{JvG7|2v}aeWKqcCV;Sc6Y)`jt?bMRT_fEK{AyN8KvV9% z4con)bT;fnb|W%42}O&fPE0X}AKCQ67Ce^Vxe=jLZrzX6J%h9t6Ogib_#iQ_S2 z(j3{cL4`OMMdY5GmEH^B=3`F8jEBw8qWKEulzSM(^z`q!soTHko z>V;h;Ky;|V^EtQYut{snr?C_^pJ>0I%4YPTMbHOABKUR#Uo39QFf3auJlH?k437&Ds~*RiaaJ($H%560N3PSCRDRQ>kT=@iN@Sg z)xcW<6N0a0!;{E+A6^I7-|c4&X3UHJ7^Mwv8Ch@EH;`3ax7k};QcDdZygr6Ia~FMe zaW|!H&f(bZx!k&%4I}OE zBzxfE`Q^`DjWFZ-q+mAtvJ2#4oV@sNgz~aps1VHY;i5QYW^uyYix6b_F8@d(9;u@f zw>n(^CBdU}@jGn1TKFQu%ncC;!hSmikXNOzb2 zg*X_nA&J;aUw2D~H(3l_%(CS)ab=71vW9iSIzKAmJovK91#^XlrpAFkKR@tL^6Rer zTDga02U;v2B3a+n86T=A3v!;gn?clfgmjdx5(3wmk9Np!A-3llj}qSb58YiX_R-cB ztk%aT*BV+u>+4k#UhR5LYt=8UX z&z!cfD5*f6tMqSc22+3P{ZUAe_m-Ta(%`?UTFI35@ZHozlH8bKrU|S5qIvd{Q(4Zq zmE1vOs#P{AKhYsxH`3p$-sWnvrOxxt$Lq1bdHh26UnSa~DN~*$QE6tkXAq97p-bfX znw)Jb1ngvICU&}ZzyE-aPWktaY5=T)ofpHv6SdS-Q%*CX_*`_LG$JLe z2n-!eI7~9RV|zpLSrj-X5M}gdSK0GD*wf6%2d3j>ZpU*n&sB_0d5?Zoq7!&H2P#`a^i<8va2#AY^E7?glt(x&d_> zE*FYziqZ+O1apMgI1L&!;sI}6ISsnN6nVkSLF^E95BAjvmZ)%;=qn9AVH3KjmZM#Z za?FEOY>;O0U6>@|w)A?+#M%QncjI3TLL+lIvX+@F?v61mfoj!_wOR}Vj?HRKR?@0D z?&R~%FH^D)D~Yq+hYyQ^;(NiYXc?XJ;exLeP>q^bTVV9EkgLg6;XJT@C;B zJ3Lc_a%45tRqM2ZPyfvISc2}~=H{l_gz-M3*pzwwqrKctNScp4^>nE=(VO(|gI?eP zpA0;IKkc)$z5C{3=J#flSo6c5sbe3H?oSU1DJ>VPnmQK`8N0l=Il>H9d`ZR{FkKN~ zU0wkHJPUfXTH16Vd1{$d_Xl6`9>LGIy!U?YPBS>GcDS7H{OB<0aK7#!@6Fb$_(nb` z=}9j**g{d|WyZUPY)UyxG)Nq34?MBQgkQD&rXor@a%uk+=&23ye*?cadro)Qh;QmL z>96zG3_195(xfs^Dn=U4SIPlQIh4qa2{g^NO_*8l6ocPwY|U^Z+0~~u`aB$e1e>6% zO1|9rW_Gr!1q%lo9+`fb?7OBtN%`s%ZVVxRXl^wX^a>0~baxTQ56-vyS|r{**dGh; z@``zIP2F;s1=EM|cwCk~_-31tO==_Pe84VZlG}JXDCR+1mJxZ^K{y0p&VtX7;Ae-{ zrgqEfJE(FN39X&l9f$By3Tk58@g*{B^l?3)73m@JeWa2{Xkr{8GqhI`yq!iW_?|X@ z_3N7Z5>nyiQWLiJBen73mrJGBWyH7W5{g@`x;uG$-YsR=(g`>^stsqCU&W^&NM?vC z7I%oZ%QP%UGO7KZ+%sh(ac1kKpj7>Zgy#ayMF0`t2IL1ef}GF3qO*<+w&v^j_Ru|B z;x)+DfUu6=N6jaQHfRaU|DebZ`h1==2d#=5wL_a&^Bv@4CZE99b3nzoh)}XnPsspn zSK@602k4Bhz+h2&&FliE1W}-UO-V`c!-u3n5X7hWW3c-M%d)!J_{N1+j{er}8J!YF z?Fp;nuOtHcs@@g=n;?dE>F0QUMinIPa%g;rbT0HF9!*axT z&lrNbBVEHPGpQ7XJEA9K!SUh>#I^^1D)XDN;E+@po!evNJGC4wZq z^v{YZo<`UL=kp{3{lT$Chi~70c8LlldEJdQc;NY%6b}uyR(tjZ|i# zOrjV|3Upap44>`QV-^qLLFA z=@QtwG~0T|FYaPOuEpIela&^YRhl8U^Y(jv-#^Bvi}ts*U37A#RE%p1#;&(ufP$I~ zR|>^$W0+m|Zd|$T4H^4jib+Aq3gwA-fS|K2QZ%K<_|zthF%Z zdaO;3A9nG`yjr8tr&4%gmr_`?E^fNO!onYW%`0+xeuY@k76_**jv$OaLCAavfIgjz z&jFzpyI|aj9WJP|_}d|syl|^%(93Tm+y#^b7j`RuBmQIw{`mHr&`5r?uj{1V3YwsD zAdRAW({d4hTbbvA1G-lsp4$SS^^1wiyKqgC>G&g`u@%BDE-KD&a}&#)lZlh8Qq=Zc*@ND zlL_xfDgG9X#*H6NaaYBPktUOJ>zes#Lo20CM^sTF(Qa#;@f?0V1KQiVsTZ>yvz3!- zKjjo@B_|c>WbMpB9{dT~Zl=W@KYm0kjz`T#-X4sJiHyd-+4NX4*eB&QsaMvGh`oU> zxCz4BHU-!Vk!yWR=1my}TPCN`nHo2L{`hotrs4V$MvWY1q z-*PA+##fVVGV&pylC77Q@JPNrARCzOfGGz^#P?pDjVzDs6H86)Pah<$*=-@FPz`&X z>NPmrvXJq^8ZjE$nD}E?kN9Vbs@|-Qap~ML&N8tD9=|>Gd950A9cc>$V#&qu!u=p& zx!-NzA^Q84XAPHTzs+5Qp8v|Wvj74G=aCHn);6x*(KGuBox4$tKdLu!?B4@Ev$!kTqY1~5W z9sDnQXA$DOY18;BbF%p04=VU6aAJ)kc5vQs(b-ZL_#r3~PySsHO#BbCXn^D|6?F7CZPuz|oHwD7}Y@JTV%#!e!hP&IUD2&RhQvRF` zmQ70OwsVg!jMt&kSMXdXwIqc%gwEv{gNKr;^Rn4|iQGD7iHi z?ra{ov8WnQ6u(lua6P?CNbwWM|7O!)=k)9CD?1CGY)-E4-o34xSRr&D(V2W+iJb`$drl>3?1^Htv!J7dpSFOMRa1VZ!btjsb&SJ}M3RwjQ!QxR?W>U}4mI3_q zAwxOZh9|q=WjTh|g}+x^{>b`4u{olr2QW?)bdp%vrSP^vER&rx{{aWha_70Y0RTl- z)TX1_n7K?DgF%AyKGx5wHf+5P*pVLe-ofECQn73eqy<*L06~ZMpWIHAd@W&<>oK7l z+^Pi)ZoXj~PCVXBzG8cC@7a05(dqILLoT^LD^l4yrr_axFwdLq%6rddV)oFg4+uG( zeQpNSdTJw`?^?xa%KI9pTsY(j9yi1$I&RQxYHvezqCtj^hm7zREy|$*Acg_-faDg< zuO}BhdmZjl6xvv(dVTD;liB@}gw8q_#T@@@VDj#}j4ISj#vwE9%0gY8OQ7zD9QsiW($7Kod8Vs zl~2PdCwF8;bY;~HU)+li3GBZaBrg(nW3%I_c@*Az#_Tp*21118^RpC6amx)~f3w$n zaW~76@?>NV;K6A4IUHTeiJ4ndwhu!|a^kfI=55)$go))d}2wbsSPYGw7ZLY-Prx&iB%$x4a zYA|F!>+?%ZT(kjd(?3EDE0pKze!Hngq#KD!yd54$%FoQ1N_4r?Xgh4bqAUA8=a5p- zB302caL9uB?NoGE(SETK8^-OQO%|s3>iB?xa%lmflus-3$1iKo^*i)n_YGTr?sE0h z^WzCbvlAZWqV^Mz+S_*qGI#@@yfDQC-agen_yOpl>(gTG7{q?NQsX;(M0sqR7lbdB zVl2_qED|s1Vt>C(L`<4F9LQRDFH+D`Ytvq+{3NV$g;?<0dOLfmJ&+GAVh#y#{pnUxyG+u%zZ3DkUjQtoWfSY6pWzB`8OYM-afDeJ`ozp z3SRp#*t$&b!S(!%4t3Nnhe#~8XIi7)rA2`bo z_UrhHj*Fh$3mGze`UT}pl4Q}3$UJy^X7GUf-ohH^jlF1ZmC5L5Mi*C_iy^Ov&!+}% zhPu9zF}2^?tsp{LW7G7sFk|fdlzQ}zpt)VJ=9zeY6{g}i*45H>mpn)Ng=;H_w;zQh zi!EH8=vF%lDe2%DZms|h8DH@~CUZ^z$--_Uhcv(8=PVOBERqlMV`H%&7AQ|UA(1|) zv+r%!r_=D#F|bm2ik?uD-Kez$NCdN9VLdKGXfPVTms-d)^jbG5Y#(xQwVBZL({#>!g(!Lw}moNU%|F0=pL#%dXk(zGgW@2=F32V6qrk346Z5PSVbt^E_&~L zp8ez-mNB1x-+|?fOoQ1?^b0vHP^yGIs}N(2(2uU%b@}O+9K?JE2yHPt-&J;IX=>e^ zcl|zcd^|GYhWc|*dAds6?cp>ZJhl8`!Cd+SmiUUJTF#iKCDl(?ANU=?I+)M3_nfbEhkKAjC9?mR@QZN|qjI-Y5seKjq{|gRFvq(1ts@>W zqc%MM!ciRzM$2c@Xw9$H#skGo&e$Pzh3PN*=gtXrd{y&_7ErI>;#?FCi*VoV|J2bA zN}0EE#Nz%wSaO1Bht{#0JIDZN&;KV7q2Aq!O~SO@yx@QJf4cxen=VS!8w~}{u6cTI zT{JiIe%_z$Q%pO>ACB~(xwr9ktm`V(jiH0S#Zh@vqCcoTL)kB)ecP@g1)jP9Gfzxd zN*r2K=Fhi8ltej<7{gG@ujSZ0h)6DRy1>Ek(BnwlhqY2K_pA_d_V3zl!Or_)9+Qb} zLbM-IgXadN%f-hP_~!8?s9exVKLEYIBhCy-b&lR8l;Z8UyyTcHck^-$QaO5tZprZ4IS#;|#uz+&9{_coQ&KU` z0d7K(IK2r2!Vc08_sfxGut$(ga@P4%+5AZhI3fP6fF`)wB%cwz{D!seV^H@wrN|%u zG5An}u*a{o0;p%5>vr+{2|Dc&*1Za-)C`0cF=qhN9Yq8ddbU6BML^_MYG?YK&mzL9 zCyGJXY|zwv{7x{r&L7V)t*eMjlw{Klc`DSBjE1j61|spuS_#$a*wUE^zMQ7bmZSc% z&%S**UdNVvz_B;}%*3@eA0Xz1M;4C6aWL5E5W?KEMOlL?mGb*vbX>T$faTvo`9ovp zHKWv;lwotgm!Awf$Ux}Z`H1*FSbusVSOa9Wem}gigZv`ca1eUpo{P+fCwA(80yhBF zk7<1dJ=r^f;6#ELd?-;4+T~l_Il!D967tX26oRd4alBG5rtL~_XhJ5U&Dl%JIPca~ z&Fdlr$bX!PRZR7e>QAb_gKPu46;d)~d|G}*6hJu6oO4bx2gD@M<4|Pa+>_}tE5#B0bXv|bZOC1 zXe^`Elb8&Km`S)W=}6m)KVj6$1lf%^HI2;un5FZmNB_T7{cL9*L7(rsk4; zeWeLh4>OG&^CyxTaK%o*w`mZcmTN7j`>1*qFKix7Op+o)U2g%^f-YFyd&GU=iaj4U zu{A=f*BeWoPlsxKg?AL8qs!9=IUf9$i0?b7IilRMVq^vG#D#DwoEdr(Epi)sQYS*x`t`#2HU8yw|CA( zq*7|_n5T}>5BK(ME}d$N7tw5eTF-pmxtMRj4~f__MS1rH^ja}~&qOn^Dab!3zOMkj zSx$jOBwg1UA~F#A zK~v}^({o`(Ek($Hh?%V3kLQuHz8|kt++NzHaugF`ganjAQX2JVp}ZQ+PNDq?z`3BHVe`iv7h$9IPy z<9gw$@7p?c`W?t0GI?&QbNOGrGnfMoK$dA!TugEw@$8@ips(jOrgYCh=)p-r*8H=R zpYzGiG)4XD+}M`(3u3LYPi5TcH3SsDidR@2N*j~x{c=v1h&Q#=amHKSVr=HDjTF{V zr=d-lKdezyy)6xelCT4M`4*s7)Kw`9u<4tsN&FgO1VzViS`#fqjCG_SdJEeZ#pUi; zlb#FW?}Od~Ch|B3Lo-iWp05qWqizG;RHO)b=c!$=)(sr8rH+Ly_g>SZ#S^1xFye=M(6@)hH{b}(RX z%1(1aaM(=ZOi%v&D;S~bDMXwc;d@t&C!Rf{^CJa2r@E^tk4Y8D{TF1ee37)VdpY1Q z6zdgM9d^JhKZYq2X-}ec>yjSMfmtEYE4;$C{Z%t^{$JSZef~|9(5tC?vmXY*B%8LI z#eDa*TCCvQ!2t+AKl#@D6l#Fjm_z1zgE@je827OXs1Pgr?y^~4_wNs3J9%sVf!IJ% z5eW`%c47aKQvanb;D=RKO1|*5JnjYG?iWFs)OOHsZWtYgI+|Z2}>cnw3P0APFHby)tZ#&`8+_em0EOrkN738oY>He{kk>_J)*@Rs(Z_ zNi%u%&p~i}xnR8<_PmTxY+J87us&KeX~PMf@{OeR{RVP3doLA{ThB+NzY;hf?4Y0;#nR+*x z-c!FXG%Hy|$7A#%nx$bE zY(7;H7tHyO<4n)f5!nK|JYh7pK=f3hubB|l0vv(S8!(0Ujy@dPZU3>gQ?}tzPE9o^ z`*JvxbBp9uJ5=X6ug$Z^Ld)^3O-CKO~B*yv*~Ozo#Pjw#b2&z zNHf9mWN%PjxtSsPSG3!USb+B&XeWp+I_KRL5P9<>{X2~!6eFXIFz!F7F{Ri-*pqJA zafIPqpKDKHMi#Vj6rE0_pPeBNClT*kARO@)u!f@SNg6{hbZ=3PcAf*dB5mOCSf{rU zv4(Fr{B;Cix3R=pm&gbU036Q{FVZ^0)NE2bdR<^rK3!nU(+2(uQjXe1ACy@EI@AmD zSxxbB4JEv+V}^w5ytJ-FDh>kn7s@|>xPJJNhLtlQS?CP^t`VKuePIz_Z;|QbTTi4w z4s$~S&xv`=+Mer~s-;e=`&rHfh>=qxu*2N>4g;?LEB2$n{{;)=dGbuW~7qQ~nx*cucE&Ro!icD5p;E@H6Ww^Q-+5+bo zVojJ?EOK3@Eakpf`k!f^K)i!8ZM|7{^SK{XwvAkDDHu=P@evN~l;z3fSna<4dx|5( zJu8BT`!4t@{P7FW(D()7#wEP9L_Gz7XqDU`f zqVfSn$O;M(z}3hJ^wZ(Am%{CE=3b7cQrktRmAb9$qQ9S0!dE0i9rx|&-heD9* zzA)})IE?V6a1sQD6=l?Ck1*-Ip+mAO57wobMJQ4P7Ba zJ*>Z|)tz*cz9lQV5UJpTiH?*wV=?m$rxeU(K*TzmVegi?t(g7(E>*2e6iw1QuS1F< zWB*3HWjXAp>kGsOc5JGwkJ*7#nM`DQT_!4>Iv>y?7(uN>zEPPq z;g}DHupmb}*zL886RS8vdhx>8xxqLU?h@rB!*JKCmA#Gy3IMNwL$LnIY#VgTOz_Ff z=`rXu+I^lhex(h1ElCaMQ~k+2YWpl)Ntu3-L0vm0O`E=9Qq5g0h2?3T3w2oZ+b6Gu z?}lvQUBoK^GzB>vdToIP{~hZeuAo z$?GzA(Q*5!K!%*WRU5?X-(_wX=~;aZNAS{eZ`u|nDqo|q;p)S&nXQ7<>?!0mf3J?h zKLbb{(N)c<{a+!f)J47B8d-%7cIL64H!uwk-;Z9(y;9%s>&2yO{P!Nk4@t?Wmj@C0 zeUu8*HJQuA2QW3kgfFypnmf7jZw9^az?7p-yWk|z{MLgUB(5w@XUjwuM}8Ct5>zk{ zg_~1uk5(=AVE*=3R`iFRipLiEo6-`mO}@CU#(j~?11^UJGl%u?<>WjH1LzoVX2b$( z7wN}yWa$Oy(dHpqxRs0U^1r$hy`RV3jg}MO?20v~x~P9-YPoq7jT3WTxBOt+m~oW{ z3PZGkg&m(sKWjdcrN>W`sYwjwZZ9+b52&sV*R_$ zQAH9lbVVj+gMQcy3~Xjj-mgKay!j=thZc5@oVHuJh%tMVEPF~=af%t)GT6WHq6bIg z?8c7xUy^%QTBa@G&GG(t(_fqJ`CJFHha`$sc{j}EoDd!OI!F8-10Sa+ffJSb{&T@1 zhZgwV^n;SYhMx|JsfXcv;iMD+B(Csyt4>;hM6$CVm(HRIW0_$iw7Zt`!>;?meewXf zov55o@}w60+8d1nX)3su--H#B^4|JU%`_A)r5>rHlX(Ky)m?OWNf%6FX#HN>j9wbX zwH;wI9#qvL+CiOSD)iFqNeciY&s{L>WL`xHjgec0^|jp*R`W-QcPX3JLs`SnCHSq1 zL8rv~94bUQ@h(<8w@EJD_Tzr_%fvWPlG$2ecEX;=TZ`^8Y}0Z`s=wTe%Po!CpsdCb z0!wh$k0;{os<@idGnpel*d)G>RYlYLR@Nu|lXLB0A?w02E_-YNCmBD8Gotv!PJq50 zGF^kO&mR(Pl<5V>M z+F_i|2p3qA@;sVEUurRnr=#I1#a&?`t2J(mXE=40luYsOdaAeRX~GQhq;Qpnn_heK zn=Rn&;T7+P<<(xqCNa^{(AF{3^ z0E;t&j2uB%QQ+FnI`KxX2ZxB0t%E)6*o6rFYiFh!*1`?V>%U;4sYZ;;aJValE0%k> zpfBW}GAliqS0gp*Irqfr7i*oU%>cL)4}UlW-(y3GR$5lxdg;uxYDRAb^k7>?`18XsM} zRwU^M@d`?eE}P8*FC#cVN%%K}mbhm`gl)E)>h)+N1z1O~w|;tK#}$Wau#YsrPo)Dw z;v}R=Z;C1V)oW0`aSr1cJ5^Vs=4QC@*QTi%pcz68*$vaN-Id9*&g&>}T1#><- zD?wZovCxL&cpwcLfBq%sHL*6x)O`WlJV-YO#4UyvEn?*!TvO5b*wKh{EH|;PpR*Ou z7ZDNVCk1WL3T#;+jesS^4Xm7TH!j#%c2J_I^OGHrZzhZ^j95zbzG1*-+WV(^{cf)c zuh`;^mReU4`mtA+vB=5qisapvdwiiqY&(7IRMnl@9~W6fxqWv0V%;oZf+eB=k1yva zuDIKq<_3Tn9{-8OsIVi?0Rmj$aB*u@RkPP1Wo6nxB9p&Ppx)KLp0y*4ypznuIdb0x zjEuF&ajcBjM|cPM@pKmsC-`&`}&M-jpMEtde z(-x9Nib9$&q~7<=w*JBrN&%1Qs{R)wsFxlzkDcj?on2!rZh}? z(_O@`{=&X_C&k<;+%Q1&U1m?b?DzPV1iUdAmW+%v7o2+jbS(lNC1+HAo@Oes(rgY4v~`EQ&*Mj97w72K7kG58{St3v5I5Yv5>AJA4AU zbQxN$+{_np4dmIOdgoKsL@3h@=Q@N&4&%nh4%6O_8lokA`qbA&q8&Ir552}AsI=5f82ZrIJHjV{ zRp{%f9yG|p>4B>o@Y@cF_6ZRBAB*z8`od^SVrJxudH0`<|DQ2??NS@aLEZ*lKp1-d z_R)0Dum$dg_+e{!iH}wPGTuksxK?l%u^-NSX52wWifv<|*P4&CMBv}RY#&$d|AOuT zm~%2;$+w$y?&*D>?unJkQ;xuokgWoYw3dp9@Eu2E|4wHu5V~hBki|3jwZlrc4J=L$Y1u`~mBVtJhj-Iv^QeL- z`ULn$X$u%t?V~Ttz=8~&Hf?9)>W9@9vY&eUxP01flH(?s!XB;xXW$hkqw5ugqc?## z5sa%jw09#*HjLaZn|Y32in~sUS-$t?6?I->*$fFWA$M3&W_q-Lbo>>M_~@p9=e{1l z&)&2IjGjVT8vcP-AD{D(1|UzU?D{M@g&G@f`(1dzP?KX>A8;RZ8sIq~YbDL?DKv_Lx8`~?Es#a^z^+ChEn z?p~W;xcH})P`B;gxq*b!lv}4?VQ)+{3uR24y`c+*=Iv^oHDPw!B5KM-d)g|AbWx2d zNB1+iK170;zR|j~3h6B-dIh{I$X9%`$uQQ&gfc!1p?V_|n3$G~J z;k2edO&0i@>M(tWZ>f??Iq?L6b5!AQ!v$B85_ELdJOTxt6aNU2jI^nwb!Pqg(Lue@ zv_xv)(^`c2!gRBTOv`L?x#gYD60iI|^+w`tiYK`nCD(;qxq-8W&$Y~CA&0^hJ;{HP zqX;O~>; zHZZk+9scG2bq6x2jH2C{9X&)TDwB!5OwtVnDfu^9MQQ2p*!GdM+Xkhxm8y^YWJ>6shgKuQ zRsdUvwZb-I4v}kT-Fpxiwgl_&=>mEIIt0%{ZhmUSxS)rx(l4NvUf8v(wej~@QBl!r z6eJQ&NGb6ckxI5$LXYA7c<`943ED^>vhD(WylI|Npb6fnF(A`AKXp=Zz)xmC%m&7| z38~`6j35jc{|U0IyxJ95IC&L>L?HTPV>UC}J2~BwiADL4B5A~6M1Ci_1gnBITMEIP zq4tn~g$FM&t+*?JUDaPe>LIw-C$4%$7v|y$b_lM=cHlPF4k7i}PRw5n>0_;Wti#a- z*tfU{PDjdSTdazOO7!hvWikYfW*5(&eLPbQ3}riyR5}qfb~aP3i=&?`-`|L()oRb$ z4tO-uRFLna1Q#ErjK0Z)^z4=c!S6L*W<2J#2s4IE@sOD-zH7XfRsH2APDsqj5oI&l zW{*4Q@k0`7^4`_1`|}VJxM_f_e>o`$Zg?5|-Rljotm~7dDu$IS>fW&r(j8gFWyf4` zK+R&12g$>Aw+hy!JpuVZOk3+)w>`u(IE&Lq_rpd)wfWqY9*?%3z{?v#-a5^bSITTg zY|5@cCAbYHipGGRcKmeV8nTM5s9tY_qgXdJ2(qQ5-8}To4AU6u$!BbD0ub3s|E|eK z?X(kAtt2i^@!mLVrD;&qrD?(qtms+q?AJcJ7pPaBXu{~E5T_X0p~0d!38sx~=CY>` zo%bO-!yvz&DPFroRpZ5t?CL1_Yi_msbeJL25j-xkig6Af^Sy^C{}F;@F%XH!yMF+gMI1 zcdsfYI!Hgcl*3bNECiKIod;o2CiIIjak;fBa0g4m_Fpj^Xas-UVccQgw|`|F86Vht zRv)L6L|P9K6gm_feV7)kZN!e~z~Dz_NpVwnm{;W+R%;AN;DAF#A<`e}tm6(dIwIL9 z!i8(`3PZSVT9ZoW(Zkv<2{HYW487Perg}l=JJR9;~4mH$ioZq&?r|!3{}kt z>645{ZDGJ^eR@VP)=-3r}YB?)aqgsW6x^$J+4HvzIw0w3aVcj_tR+gg8Y@RgnH9eV-Q?BNJh3*ndgG`qNGC3&{Y+m1e^`TgO-L`1ks1?` zY>XOgCL*bGi!su6m;A5%X^s9{k498vN@&QoxIF9gEn)ztAXYK6=SNgvdUh`xl=C%@ zJ^C9)Z>i{vVB_@t(_}W?*;&V-GXRxTt{9W}q>hOnMuR7U;9^pVrTf4k1mD;PM@z^? zy?S(2|8Gk3CKp!vH=z9!4tO2E${+d%2DisL3pxh2V5r_EjAp)!+ST{TM(texxtZ@b z{sp*hHWq5XVk$}$H*NurMP-D|7aZ|U=-+Kx9Wpp!zP&IQV#XIQ)>bqC{}L33Ar~~! zHn@6@b60}_K8i&vUri}LwNy}2!?bN?lGT6C>cu+D1_&p!XTIJx;uV*`AW!Nh-jVLO zzOdSDwpQHOaQ>|u}Yid5LW&{1npLLmXQ==D2 zh`xPXA?u-An2+6a$M+M> z-L00?fXngG6I%b$Jk5k~9p%sS^5gTlwGj^DUWZ<8E@AA?otM??M}=_CO|lPyn2*=j zh|aBT>>ffvwP9XvAwG=WO(}9EIsN@VrBs)Mhnw#-K&y)xUb476%^5d*d-qv+C0xIN z>R13vj8`fK#J0b6oJP1KLwoRyG=9VhQ-7c4o{ErFvQx@rMaAoGnptv3VWS#p`jh6X z=9ryMyRX13eRjxutEpB|L=VNvUQ3JmfQ zqq664ZtMZbw!q$z&3H^`Xz`R{n-p~f3(hhnd%pT6I7DFFuvOTTZ7x>Hk2GA-FE7{E za!jG-*7H?rRN$(J@XwDq0S}mdb+99LI;<_)?e1(4xBofe z|8(j9i-$&292T;xP^+T0yH>}xMVY_XV5AVA(#&3DvSDn4{pAK!s@L`8kr6*Z7N%8r zl8nopCh~}LAcE4Vt!Y2TM?}4cr)+WYfI2Udw!lLY3aC3~4IQx++|k#Y8_?fip|3&R zg6X~x3u@3$vDs)liN#Dx;ovDCY5k{8|0t5=<$A*1H#z43%L;-J8qJqhz5OS+B0Zo+z`!YS5Z>)kod-SpI7WZ8%54*>r?9tBDhv1|e~7r`45@ep{*3mffj&KV=k)@&D1@er8gJnQ ztQhO>w<4e|?$14sc&+i6cHOUnxXY_51D|`<+Agk&9ZKAL)cb=YMO;X=xl`3e!r1s#sJ*x6P3ocB^V=hrqGLn9n$(=`bkanC}|m|8rd5zpe*n7FtGzz&Y%P%hxTm|WOn|H8!m=iE8r#LI~gM9fRq{0kxtBZOwN|Y0neZwnH@R4 z>|qt(6e!;Et}478axXhr+m{J`Q(taAz$ZE@ixwuHfVkwT3%+(QT0aqJ=M4~nus|tG zb`Pr=0!EDv9^puL3AkkJ7FVPxbxAtS+PHTvdtL7wFC@6T+W;AY&%cufHeny*8O98otHM&!M^>uIKCOl}3`+M$x`blZLs{LGmk}FEFximZXy{V8ehKN^Q!R{AApii+IISt_ep?)% zUNf{MD=^22H>v39b`~?*UCG+ z3(&luq(K2^#FS#{m5RQ6>mMlESMS9mTt!!vdh^QAW#s#>tBw-bJ2;6jmKnMbbF*iC zHVi6y*pc4;L&pV94G-;>v8o zeWTiUlHr;sis{hX<`Xb2tK43tmP=A5v90`55zF}Yhy@>}iD-P7fUg4?ioSwAuQKa* zhqq%Cz6rSg3s)nsilq04=HFO6F6_yRBy!(QEAuZY@1L71U6T+H%@c{ld$#;du*xBK zXo0%%l#m@t2Tzx9T`8YK7%DKJRPZL{)p%?KePSfhcLK5Y;9%v1l0k$uU!M-^c5m%& zZ2J2r>?|{X!7T3|Xj&wsXhNu|*gF#Xu_HR+W#XC}JhB^JXpql%) zyf!E*0K&XQowQA{X*z(IFUY{J!Su&p(EMWCn z9+BpwGY$`;@X}9PoJ{@HlxU+LxI%IVx9(zyuhvgSoEyoJYsLCm&q~8Zklaw?hYnQJ zjL!Oe9a*$&G$u%Z?>mZ_!VbS+kGR`W@qRj{(m1?PwXgsk?a2!)X|9k93Cu zjlii#RV!qAZV&V#n{PdF7?Hp~C?NSRnS2d0SflM$*kV1Q7buljzkLGQ(lNKvHO73v=MXOpu=R;qS`#y5WBjZngmgV+ZQ& zXtI3M7;7bx$-N_+&`l!2V0_ZD{)p&--hThkUBYiJ2iVEudIRmL9J5Dm^{Szzqx zmPwAzZ5CS^0EVl(YlI*;ZxSv)4RS1lq(IgYBq;hZviayhO^zH&>_N=yf*!+&ES@U? zOb$5U=@8xZ9l!7DU#d7!bZSn0V|vO+MfywpvAC}ltnwLRED~uSoWlz8-5SLbn7H&4 zNAw7$U{_6b<>fz57xl2VYM6e=o%^BTae$g+aGw<>GiKX!Cfkonx{U=?rs{&MFj{I9 z$BPu)<;G4+7}AUFzVT#%Hd@}nuG*T`Pe7C8OKKzEk#>SP)x*Y=^O5JmSb@y`2gWCh>qWiCK&fSA)7wM65 z^Wdck0u#hPxCYt#6;1(^r0)%FkL)to`aFH^(_A1ixP5MNUx972t`szrz2P8v9i8}% zPj;sKRmkPUTAI8fO_h68Y5vz(}YRe z)7y(|`FzW*P9*VDYQu@CVguvEbRH+ z5DU|d+_{~mCf)Y$gdyKk+x%=w1u&W) z{FU@qgh&myrv5O5rKaa0mJWR75c(eDPB43-=fAUKq_h6~1mS+dMwAFWUI1!{d|0>Q zGjY}~Q7&IO)y zX7fgpb8$gw{+qvLqut}5p{=$JKUso~m@WW%KgiYOn-Wb@O~37EZEj}Lhpp(0D4Wt$ z>Xs&hnam9AL%1lCHy1hA-vjmT44DKLUyakRtxLcKB} zxnajISJFR9jBro{BJ870H@=o8Edm*2DJ2^i;j{)?YvHbdw1gSAB%%F``XEJeZ_2Io zM{8!c3beE7ll47+l9vR|NhQGt!{2adB2jYaC~PfQMA-0ML7H4N4KFUemm$cs%A3>| zLNoc+h=4k!hS1{n0~4RuW#GZyszM^Ggof#Ux*DT5U@*d6kJOD+-eF49-R#=>K$8uNqf) zkzh6{0*}8YuHT&qwz-$eIGv_1VEiHN3M+!ieyKj*|6=tjBagHqiP|?ZWnNRnhgcWb zyj9-R-CYac=nY@|`BS*ihSd#(sdQrj8jmqZ2umy}sI25i4xyEU#w{Jf9`5Q1xIz2? zy7V$d1vxH2--&=)@{G+jgV%LEG(=sBr}ZCt;RL!|?GLwHNkUVGX-`icw3KcP38jeS zImI*+2p8nKu_VHGDOn5$E|g^2r$Jt~LfuM8VX2!DZpzk#yl30?K77;qibOi!fJ{l% z=K`u^0eP5q(Jh=6up1ex^cm!Ptl!V8hz1D(`xt?aSOT0P2>+Qg+q!2k_ZIbhA*3xt zv%}o4)KT%uWy2dV1c|?km>tt1C>Rp)08!cYS&>e4kQ2LQWAF)4QCb~{TpjmEvGP?EhnIO34~9QWV6C|6Uii#h{mTCupYY7+sWlkz!COAgyI=Ewj1m0 z4Y5r8(Bb(K8U8fEe7AOnF5nO3!J;RcUd0LBJUUrq{sCfS0UtgnJUmo*wPQ)KNl81b zrLfb#xMUQF$wirPkOkm5xMMQ}-YOJrn+b8ysK0Vh5afmK(*si8K_3A*x}I9emeiaW z@4e*$xFT<%gEv1Dov`21yK9vfuNd$f@FMrQ0W()OERoFvtUOE^9#EluL=(oC&nZ#3NVP{gxibD5S!p(Q@ z=YZoQ2Z@Gmk1w88i)#~8%I{VWldBa6)WC{Lb*sgNby*rd`n&E7%F$S~#*Q>OmcBd= zd)$XD1$%xwvDACFITxZm{W7_j>zOPG{w39zA`DW;Fxzi%CA|VCR1eKV-`ddc?e$J_ ze?i0&&cFUP+PP+r8)fXi8^N*l=ZSholEbk;TN6dJKW{kK<2Rf&dgl(`!x?Ab?qHp3 z*cMK?1rbUAy=L+CJJYmgCp~1d(#C6e%t0NC4_;nfO5fiz!|-7n?bbe_x343yQCO26 zEQ4SMJ!nPt9@M@h7!zxHf)XD6b+IPVOxe}g!TI(|1_r)kiQ`Su@IiPL zYYvg}NLQ5-9NoxC1?#aNjA4G9*DKE<&ieqmixk)~q_F)1jx(OipnF9G<1HRSF*Im= zty0CzTUeeD2BA3F^O*W#(HuTVb0d1Whjib+!NDCAI^dg}!Px#6~k;Cni~IQIKz zq<=0Ft-8#p?;URTq=i2d8%sl0h@I&>4dFjJfpLX%lcPbZ4M*<(XLCoo~jdR!CZ7=T&hcUDPtepC@z ziqHt8DbIQB=(tb8*@F5K;P29F@P%;e7KbzJ@$Bhh6*NCyIen~LFMSOC>hE|o>EAKv z+AF~C{-#e~5@Bf*=LT62R6Ilw8hRRl6!(Wf_Q!)wlo~z;-(Ec#=R69IuN%J{>Nl#^90i%Lv z3cZh`+O8AT6O|7~Ks|*4QcT3bGIlY(yI;V|F{b|%pIOw@Z0l0k@PmsJ(^U7auJwSC z$26!u-wZQEWY`x&OXn@+s1OSyX+#H?iSK-<7qgcvHIu6LSnKZtttUOOmIbg=5feNp z;3`gJ$6*nMz%rbE*u*#CM2KWGA1Qu^*2VfQXVNez5&zKx4g)a?I-QEmA#y{GvYQDz zixu~wW8n>*Yt;FZaXT{)oU5J(=G7hsky&9`J)|hv=pHBJ!*HAxs4EQ&Y(P#$)un=! zF{f<7J^u4F8tTboJcMB*^0e>U0;2X6wXHFaF#PgX7=FGtQ}11pH@HN(KVY+kN_8ry z)j_&?H)o!ZDXScIpc~l|zr)49QG0s3Q|poTOVmSx5L6}&JA~6;7gOiAK76iFyLG&; zQaGcDp!%Urrd-rZ^Pe|w|`U_Ajd9>y20{YJR{#I{#!a6bHdF|@|? znlbTm;RTn$F)vQIS$Zc`iRCWddxzv~O=BK(2+iHTh@Mh$irB9cF2*`0jt%N2Q(2z) zCFgnxU-S^n{H3SWA4NdH1*Og#@2R|S>1Y{Lr1+9a5iRvcNBcY&#)L2$DAX}Xuy&-b zqQ)Hg0)ENJVv#{2*;9}!vy;jwoY3d4hBwSAN@lD@xeDwxc{3&9{AZm8%DgBH3WJ+{ zdAak%dTUQ3BY&_HxpX(D(>%}7^#r~e-PGDms+IEdwD%Qg{d4ki8*)=k?S7NB1$;3> zc;f5lM;t0Ev5ney7CweQ{J0kSp(9q|=aa}0p$)ag+3F?>xhi9@4_wSBNKwT*HARA{7*2xNehX zFHbMlX@ysik%fg2t*Maj{;d`Lc~q+Heh1+6MLNG7En`n@T$&qK~&X7Et*0SM)csqK$)A%d{jOAaA+v&)CK(p$)uh}=jZ zQ)GTGwG}$de^;=+#*wrEHkb@EmgWcGKIixA!i{EkxekL-H?-%0AM3%@(K>2rys1@k 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

    4o3h@wtR(21Jg@pI@Bfu%+nP8cL=`AVqa| zEG_`bqq)bfufl|AHF2y7??Fcib|$m|unl0ETq)$;s+gSg+t^P@SL3s`e@}(Qh%`@X zC9r=g6589<;@2=u)G>N&lh!4_pMVyBb3B5D+#k{Hyx-%wA(}oo5BfMe#V(tIB72pW zQLz^b=IVI|-;`tEkWBe=Fv*9=G6DP)^A!EWj~82b^z;qxWwX*ePk%86+B7EnV0AI) z4o}FY4L;y+o!h-~S7cNmr8D!->}a#;lysT7t$5X@!8F7A{f`glw<*R0abKS?xlE@~ zRNmJ(pKr=LZu~0))R)c7AEx*h(zijjgzQyXkEx*MzkeaD6Ou_jo-9k?y7k*_U1O@g zF=aKM{>DhT4YMqlkLbMNc!jH`E3>=y%k5K&N<h1UgyC z)L;!-rTWRT^RF+B|0~z2`3XC_8Oxoa&VOJ}E3Awodw;0ACw@Lhz~*0yZJ?`=~M zinD>@1O6lYYyPLdzAY1NNf1_aOFd#VZXTKyjo#UHdIz+DG>q z^mrF1F<@I6no;}bWmc$IgN1Alh5S~Q^%A9>XOm`n+>ZJX`11;?)??PuSW5bq)%t3_ zHCLe935xZsc_+02W}uIKWiv};C617^eEpjH98*(?R7$lVsSGO@oq9&TK%zXkEOT&X z|8jrJi5Mrov!Q{J$}>xzaQ%VANh^6>wA~@uR_30Ou5KWW&de#qYkAq8ca81Y(DrO; z%7Gyid%TxcQ%{#%$kwGc;sOoZznG3uDF^_kndwq`nC^l<#HZF0du|Uq*}Oxvnywf2 z7BS|2FRCH-a;{}Fi*YXoIeH$!UaKa&dn=wX_Qe`!7?+J52TwE3im-m1;c0*^hQAM< zW=UZ|GJ4up)Pd6wg_lpNMC_I3kk9lI?8}ykk8T2errgC8YXEpbZa|;3*NjXZTb9K! z;GLG3#%!D?OFTOcnOyApb2Oo(*9(bTlZ70BArG%qiM{|&t(-jlhifu9Xo-A~TJ}QB zeE7)9z@ZJ5CUyweBRQ>J%RkQ922Jbf+a!y}?^hcVbHlwD!&R6Vq9(ID}{}@0YUjD7D2q9sK9J-9nIrB7XAM&;R65e60K-cdi$jsLYS5C0|U1 zOaZoOiiT++DaucHFF5EpjbSW%6~d<`(OfUt(~tYr-8}Q%DN1H9<|RiAGj(2Mf3J8< zdRJ6)`_#4)QA9R=pXRsiEAi+^Z9+MJyPRy8eGLB8m^y?iPv+FcC#v5Q+?s19Sg5 zPQMx7Kp`HDH7`+Uh)d>({PckV!84RK_I&v#L4fMO;aF`(HRSkXMUlm!vOCtz?D$nC zAkWFC{**@>z9!T~|9dPJiT{BAs4f~s32uxM!Z`8kA;sTEE>Q)p1@8pctkbhl%8XpiYn5l43^VTo53 zIP$Q*(1+_w${+uC9S0$eaoarXeHCGMBD#(7lk~dWK8-lUXkPNKddX~vqHcG7dzo68 z8kik^eRUz@K}oA^Vi_hYBvf7g>({SF9L+?cT!GIXqp7z2?3z#G=CNbWg!X=1zBxvz z*O8ljs>dChLNmZ)*iZ0Auf``-{fV9K`^N7FnV2+of)g=Mlz^<)<}F-vW;OI7-nI4* zj7TY0#0L`xaty1*h+tw$>ebYzRo=t|wdb-*t_2ZON~wt_(0MIks2U)!5&FDa@*@;4 zLx%MB2&8^-@en#?hEQazW?jS;d#-a%@f1h13nz*v3k@9gn$dneBc@>AO*(Z-wT+EY zoyC#kcdS|*u@M#5Qo7~CkJ}|0j#Tzd$Lnhx6a#r<?|fO^&(A;9B(-@tznM6 z_%cl%+V?xJy?G-tt}_b)SNoh)k0lXaf23?H%M#1!C!bSZPIYlI3-3@fnla9f-nK;q z?Ts2-@C>gf)}0+T!U)ef_*)Y)-tt4Ljv#&Di>*2Zt|KVXtvVN$5JF>bW7M4!U({zb z@1jc5n}U@<(c&$oZ<^rq;x?zVCz;^Q&{q5af8li4E+lf8uU5kOHHg)Cfztum!9Xy!G z+M`$@45qfS|M7R*kk0<1_$x_s!45}sE1N53uG`-Ge@EMp^b!A5Vo|>^{wYeDB9zAS zdNT;=Ou;y1bCu~p$nd=?1l$P6Yg^U)ZlQ~+N!vFR(lfoZpj+C+2Yq7VwDWm?MfSzpzBH$=quWx;4I`?Irc@a#_zX8$y!5=JW4dl>2Wr(u;s4tu&; zV0G9Am#(^4Exr#*bf|y}k2nfpGy5WMBX62^WjfRaMg){xEb27i$>Y5h_R+I3%_0e0+LEOxd;_Pt&Z&J6LenXbNpM3+>q zl+QaN+X0F~8DULA!eba;EKZ=k>qRMLZ_k90m{*=rQEoHvNxR?g-Y)~h_+G6&uWD>n zE@y|+7>=yM`(uBPR({JDk8=qN;I|p%E)b*GE+ih^AD^I2#J~ukf;xOAg7emSm)%h-;hJd zb+=(+Vsa6-IKyvyOj=*1(7q=^B!VH0-xpM&*Gh8Q>&sIm-wI|&=ro4MXgO~Txjh6b zOUsj8(_}e*L?u7n$jE6_U;8(PE4X=E_NOBJXlbRzG#(xQ30gY2DM9;q>73%vrJV5s z1(F#halMwSRH0_xcyul6n$Cm2V~g{5q0Dq20tr~niVHPf@YNsW|42-{A|RQNo$o%h zq*2A-%v#?#7Yu=kkgzg8!<^Rl#!iEta!4$Yu{Q|rNDO-=kaEae6Qc;)<$vStB$<~Q zb|);D}hR%sBixEF8tU#S}T>Kec|8RkhVbBHRHfbCot%_fJ7WTR?Wx}_y@ zls;L;5XmN@ETY^aia60l5`~^JVYl_ zelULMW8V-V#s9(!=DM?`D!aU_YY^QhLI&|3H(#5sE~8LmIVK%nhFYxFH>ij0-6H_m$>7BCQM3 zQNK ze2to5y2^yzuWTto&-~0zdL`T{9Ic~412?TMW#ea_nV(-!JX?qp1yJWlz-nnOLa_S< zTLyN%bj-HJ@I}N>W7q1%DZTmc)JdLCP;ojj?C6~etJ#`$`{I=Wf&qMY68!hQIR}^O zKg#H_{j;g6?H6jS0}4<*N-BRH*NuvX0ynI6SYJK)7>9MvS#-*B(DHZiPX+K*&Q_=D zq>#N{`H3&H?heIG1#3MlGFD~Re!WaZ`osEh)G0?j>jk*A>D0W)UhsU#uJE3fbyD<~ zF>x{0u~2Ws@DD6&z$~$~{Bu=|#5al7>ShAK;2&pRb*vM=9Gy9Ed1H68{h;%)Pyg1O z>UxEFp#|DImi(DjvVys2G5|sCGn|Se+)%o}saJA{^I}yRCz@iMJGJ|Y5gH<EI0@Wu;wNk81vB(}1d2c>$u=WPvt&tr8AFL$r-=sNUIO{TX%QOZ?tP zE20U)rEqyU_R zLucB(2rC<@c@|W20Kfu>M{>eNWYKi(B-Dh~Po#p6b&UR?8FPJ!I7dUUCE+M*D$d$x z#g^ase$N3PTKf$Yk1~w~^|w7e=6Nj9rRpQ&kr^Vr|+NM@BZPU@U14$ zobFCmF_+(mzhCVh3>s;4_zfwAYlf6l_mN5d_d0eAipfbqZ1LvgS0j?Y7RJh_kItjO z?la0%H|AfXjpT+i%s*#iRP{vBhv4Ng^rq7y&0JfA93^l?S1RLpC%IvG4ziNzl$rPifju*=fO z;+Gd+{6E*y23V)^5M&yE^-3~~Wvukh`y zZ$Q?H=k&}$Aba%Jy{uA=%MFA0HB`6Q)^AW<3GU58%JviX?^Ih4o}g-{>2|k8n4=)sVFwAZ)x<*yrwN97B3k! z7-qu=U0d~>1_s2J+uCes~)v%k^31TI<{u$dmKjm@pGb_bcE;1*Arqa z9hH~Z{QF?=Q+qA1a4p@3g6!?VsZr&01X`Spy+tyJ7QTI-y!KyFG=g+HCt#QMTgIOG+7SNdc9lRfYu zT;PG>v$kH;5#(c}ELZ-JMeX9b>;yN_YaB-KHu|{`_*^yImI0 zwB-MHfu4<3gH-JIF}CzYvQp4#8K|YO>X+%9TZ@|_^9LBY3zYPARP7Xx9Sl#yi*BDM zm1{exSO+&rPQ%k8h1L1_uAU;9Br7MTZMWcx1C2wofIHrguZrT1rXn~{<|23F#AAGK zaaxjZzbdxmqNb!O=RPYlF$ZDV2IIQ1yW_ek${HduIRLh~ptlvG^S;xcjT6ra;t1H? zt#S(z@8@W}qfUib!Oz)vU}gg$^4v$mah@DG2gIQ-v?!X4jI>B_OlZd#Voskwm`m8A zdW zzc)0TAu>LQe}avk;das>kn%(OO#=O`YF~JWQ8{4MAphwc`k7{-1P-jgfU-b-fckx| zxVIA|?DTSr1{ z)!9`|ojDkJcW*p=S2L0ThXlgEYf>Mi6@hsNw*2=CYGs7>Szuancp&ydX{KlH%kI#R zKIX1q3!2g7?zx6)UpwQo_TMCTI>+6T2pM&x&Pz;9!*a5xETMRI8~j2eMS^r;Y;4O^jk9Q_F5@JhV>ME)jbFEe|P&?y;xITHVO_ z;CFF90f9&=LN~g^DiKS`-iK&sT#+{|{YG{3d=ET#XG|C z1;3UOb^@Ols?bjMY=O&Tea=&<2U4o+trVl2@vY)%S#h4!`&FtTURm5JFHPKUGo6P) ztM4#fmLpXP_kMJXh7GOv6Sq1+gScP8H79&da16d!;nArwGdtrN(xg!TT|qat&unbi z0x5FmE-amNB$=T1$)?Wra}1%UU}W#oG_US2V#S1@1~bwkd7ylB2C=hUk)=~j@J=@c z`H&5vcd}FAtaUx@K!Ou0ia3lHFbd;1d_6B-MO@cd(n^f2$6I_G%pc)xid-H5HrJsz zaiI=2-t7U>6B2P@gFM;dR7NO$k#e-wm-k>!+(2I16dvZ!K+br!fvA!#0{5>o$ANn& zZnUhP)UGh-}J*oD>pCamBBgJ$HVvOw->J2{&m+l~|QE*Y= zIUv`d@2>8wntqWTHk;*NHQU9!eF*q5%4ptVY(WXV0PL zu7BX=gnund`xiknJO>(PkR?qkaLp91{m5MHc0#gIJxkAQMB;wsI_~DAebg%0gH_KU z1Y+5b0g>hdGRXKlq(hd7ybek zpJ|5;8WVID|bOwR6cW3rXsEtt<)o>?=r5^Eiut&ac(#&K1^) zmZV`AH#qq&lYo|lG2?dMLtJ;uoBDe~`TN0L7)oRDz9`dzxrSWL1g4FEnD!?8xtScwV+&hyfXl-YcUR+{z zUYkdJ6I96_*8Vb(J+Qu?8R{u#sk{WBRtQ| zOln`u+Ene)a4#(!FEowOeqrolFfvR^E7gIFOlo_hum98f2#8JbW$Bng)b<@}{tPBM zjD{qCaf_xrm2)Tn5x#(aXQOZVr(ong#?@Q5s$NKiDS_f@o2L~{`%-h~Y6J0h>Yb~r zL`NE|0ZW(6C1TjL{D4`4lc%qg0PoKsPl~Ige3WZF$rRL(@AAcjRAjBNv(+exw|PyZ zh+C4}Sa2+-_Os^6p8fW@q?h{9kLdt1ke1K1y3~7ZGKJHdjR}l9?SQ!DDbAyD%*5?X zyEi7VUqc!sa?Y>5{%RK5w)Ss#akFz5ZS$%h*_cX$pGL7P6+B*+UuQ$Ekej|`F1zLB z0bL6%v7{!F4#Dlg&{iiS@LCYQn>e#~O+3*d)W9L)HpGeX@};G%nlc$N!4Mz0j%PSQ zOFjS@DM(og(YliNN#^QNUr4Ps2fnO`CVb8Jo7|Fl6Pr9;(R1(nPQ@#vI$ax$v*7~* z&|G8V{E9AP=NI(aq9ytoOaLG5>0*G3gc?{Rf>9H+vn#+CY>$iv%8YG<0DEHGteybNID=(v)Z`HxzW;Rz`IrdPy|$pnQ&>U zm9%@<$_1ymX4FQ0zA*?w#&i~aO=(1GJ&0hk9e4j5!Mt{j5bShR? zhkk^#;G&YYTfLCZzy;lM=UHAP4 zFNQ!C0V!J!eqVdNv|5*Q^zwNbBZr8Rl6n4wTzu`I2du+bwLJqF9j%^&*Q2ewa@vZ# zZZsEM>lym5*36a^InPpOz`nonaqHR%6rkh;D-vBCrl zJFZ6ec-kAVS^NA}QW&5ZI$rW$=?R8ykG;if+uUR-}9vRz6~Az z9MI-?J-1hlO^Hj$p5mx@UOW}E$f`;Hwxy`5-{N<13f~0$E;O(>Ag^0TEV(b0Xp$Ts94*r;Sj7rDhE_a$Bp@sP zSSocE$wo(U7WEV+v7P2mbk9>mZTW5&|3e=KOExz!Baz?wZK0hgcHnlQzEzeCDXYh3 zBCd4$8UL*gF}<(#L=GL;KkrnG)LgAHP3HZ|u~0`{)snoITyFvlB>K?X>3{UC-T&xx zZ{gtE=PNvm^Eos3B@-~fOKzFYss4Odbsj#FQ`_=J7jkt~j}Sj>^hDZfmyQGeO- z1e4lGyU&!MU{UCgPrw>elPet0IZTl;b;o3pt|YmvVHf(972lik&kJDHb!ccMi!QJZ z(HSsDP#yi@{8m-zai+YjwCVKsAs{K?3tsAL25b!11IBPru}glS3tU*4ctJFS4=V!N7*QXrA4>r{9K+ z2F}00|Jm`Ju_>fFHXSk2_<42M9&6M$Y)pN&KpPpUg7`fmGW~#q=@sZHxv8m@bWU-l zuULMSU6l3DEC0b7__x&@&{gTx^d21Gl@Ac^eC903GH>y}n@l19Z<7-|LZ#a8JR$w_ z+1RwEir6L%>RvqX_u8-jAw}Exv48si=Wey<_SygL*4=n-BUBe+?thj$2aYi{g*d@8 zX-MbqglIhBrB^uU-%+PSrMwa5mW)ZaWY0<-)jAm_YVr`jGR6?wL%K;~FcszN+c963 zFxn<%qnes;a6L$trLHgr;Q$7<@YaVEFt!dIEXz7oxxIe#fDPv+3=cQQpfe7Ux>C^g zBE6ANwU)@&?nXY4qEd7CW~D3Uh>4{0obL_cTh`Cz;`B6gSi+%C{+x}K>K0G?+D-J+ zElzV(X6@qMSgF`LJ7MvyZ$#DP>Uuo<)MKy?f7>ko_A%>6{H$U2Mo`Rd{Kh~Ml7{wV z0@umY!(*npx_Xb=lI~QV6&OW$N&q9oSAEu>3c11YKiZfmcoj8C%8|HPOzWu8PD-Fw zKbb>?4Z@z8vP%@}+8FZBp;w%_RX6XU=&!V=A(e9ukaBGNg}uSa8Y_8LX*BE-8ONlg zsQ7rW1zw8MoH#=$kqIodMtHmRJ) z7@Ddov%oBf3`31pwvBfEcx$;U>~i7l@$mv`${Oh5G|K-JXf!<5hZPRgc~U`7&;m5Y zaHo_4*1#5&F_uQ`24sP+NR!OAGP6^+VkeHazz};9a7S&!#-y;OF;8qLpCFbXj8+jPr@o9g6%}n6qH-*Bq7qL z<-cAj`36ckDn=qeOCvQJ=fQp+tr)IreHce-%)uB(Zjx9>tk1sl+|hXB?JOja=1T+| z_guZfXfRlvw2)`wq`~HUDrPOYbOUw6JWMy5mJb9j#0}QkAQrz9M$4h2qaYBNvxD!Vm zKVR`E);CdO@_qwkr+18Jnx5 zjPnz+-n;9|BL!SwQ}%OGNZh-&6V&(ZA=p1S@=)n0`Skw*(;j zzG!k#=jd0j*Ml3L70RVyC&ynU4vI+L)j5eO%m1`K>Qj*md46}x*V{C7a)Ohj@gmUI z^KrYVFxztO^i8;RE+LU3sbXl59jGtral;^NFJCM_FMn}JnoWq6-v`AuH=eF)I-~V; zJpA-2fXZ?}Lur+@QESx>f zdQ$hq21vB2MiA9G_v8Jr!O;xlarW;DvIsuHf(*u`O!Tx!z%#}DBRSagdVKY}KMwl{ z^ZARq5)@){Hr!non}RovHnL6r3{-GE9PpO(yK2k@7iTn{#)hpH0p#Hfpt2y_ggh;W zB+3vUd=`1yAtkt9e)=4;y{HPsNK@7z6_tmEeDDNEO^MM7_1Zcb;K_LTggEU+eaX8i zm(EXiO7Wn(YIdvswxoQ!var->hNIBjzStbqDJ1Irx_q@>c_0O!%}!oPG$O=Pigtm^ zQtr)6SuhtJ&~oyAQas&1xoj?0izJotb1FbuW{xdMMMuSolRNDFHwx{M^jbmoXN_v9 z>o`WWa+X5d$B_bFhS_7;1BsGS1LmXs8dQp$?UQe+h&^p0Vu=IszJNX(u8ejAt+;Az zM&dD_#kM{xvm|@HbAgpFJhW}G*nYEG3{OtN9TWd%a6ETxHdG~Nv`a`nsmTJ52t_Q? zG&eN4q!cJOktjdLOW}gOF6O!@qTV!oc3ZErSIr|*jN|3hRVTUtuaHO*N@1Zzf6v+pQP`QZKQhLSR6Y|`S}yB{ z0HVgCtIDwGd+6(1qd}eEi%XX9dl+rrcKnQg3G&Ys=j@U1{YpzHt_j;%ib3*u#F#!_HlQ!=~}~evrtprXYAb-lVMg{9ebYlCP;?EBn;ooQLVd9E(@#VM4{z z&DX!V_gS1Q=G#MV<@&sj&8M5>^2;RIK3uvdgQvUyRd+u9OT0h*dj$0EteeSD>*zj+ zL~Na&o_!O&Q?6>9N2SSx73ADb$Pd?RsPbwxVETsSIp(P3ad!_J1bmxNdRf$>7lb^p z-#oEUel!PGv`LqV01SNPSD`R10c#WDqpUEP=)wN-9XM?4=LaPMxy^FtOun236LR{QvIFwM z1-mxV`ZSMl*&VhJ%r{Kr5@GW@;jh5+_0|YS2OZ>0>Q*){C4Smd8{ctYf8?{XHq zL=2kv^pNc5<`eW$`Bk1BD^WU}VqB~Sk~^C;3i(lCq|GhsA0mbi`iDR=+Dv&3}%JBG(uwz5`DQpKFc zUY%7#;aI4Zsvi(Wr^S9AhDKM0Kcaz2nD+8uefIe3G^}WyYu12;m;{dkwD$I|`%-5x zzJqOZOM@H8ZY$%?sH@%IeQ9uz%d5?u1qrV?&b#@$*qda5tDYL2{R~@xU(lbyY43t=V(X_{6=dsdjyV1usL8affZW@|eKX*^?Ojz#v`Je6Y za|NT=9na&pvc3VRZaDg-s9zX&Wz9yKlt0@zPnv}!{v6I#<=K}`+nEF zGvo5KJB}So<#}>q(6D_Z|HIQ#eQsBAt101?d%gnd@zRx5y+Q3c-S3)Aju6p))}eP! za|00u&TsSDP)-pUjN=6ss$;?GwBID!G1j-bM|H;VTnpGKM- zf)`I_Ki_EIg8|E}c@r!hfsautJ*N>a75Bp*dgX5y3vF@9+1L&3o)C|UK*LBqrc~%B z`|J0!LhOeYw4={`3j6g65W4%l<_A}mD<|JWKh7g<9@SH{X?Q~_#~AVFH&j_gsdu+% zJd}0eTuL;`Z<1aOofn_~!E~qSY>w^CS>IQMoPk~Z@E~=KBUR2g3hmNEw4FVLBK=o% zt5nI!mZWd(NYHyGEfoWu^%UjTxt{=g2Y%v4vmG@{OCOEA-=%%nol9@QNJJdEFkJ85 zIs9cR`t|oU^5{oU0L)S4n%018lJ@EhCKkb3*NmMOLCR$o0HO7&erC|lcTQ+)uQME= zzIQ24%Azs%wei?lyw=nOr$pJ3OLQ+mN_0SAr~rOe@XDbR2haK)2u;yskB*t&xzXsW zu&aC8~c@W;KyHG$GCn)5uz(?HNnB%dzS)_)?E&2nFhTn~3uc|w+d%2qY+ z{JlJZ*|(9^9(KR_d?8W3lo%INsFrH#352Ctv3#Fvl>v7}JQB*9KH$+13Y7(W0LpKa`(sI?p-0c`!*^8#HUuu zG>PBPHi}dMe$sQU49f~uiZ2vkTG3Kl%#3mM#ZLsh&*#rR*X4MTsG_gNjA=31L`t;d z?$-~P#q`B#MXFhOdf|vmQv~*PTE}Ie3I2cs6UA_;jH7`?xmqHo;J;Wst>?1T zBX4laFYRwJOEBAPRwAa#%W0U$KLC~qW)#ehByEjWo&oQp z{U-lDOp+As=_KdmV;#x{`q2%eo93DZ1W{*5%(FYjS*Zr8B$~bB#Z1|?cSU25V|l$8 z{XTtGgV%^GUj0KKL}`*^c%F~ZbYk_nBlr+$`cU^|pFZXO>vT;5g2D?3Y`p*sBX4Gq z^g&LK=szJHZ`_B)*k5RB5y=5{IK4Zcqm$S_i(cX00R5oUi` zs@6z>&_+z(dxw(wCW&MfK21mPxg=J&mq^Fo7-eJrKoxLL3Q*;u2Na^l@8d9=qpmai z;U6^iA3g>)0@aqEkJV=DJWSLNB|eOkzkK}+MkV_6A6TaQU@#YlWR?_6ZM7Nw%4c5w zkA;EadHjZ`5v5(Dg7#=aJL$#~FXR_+%|RZ;QP|=Kh7a4t@NqpIcT(h&v2tqa8d}Jb z*EnuwdP&cux)dy84y1yIgdKjkQq>8t6^N?(k^kA?2EQm#vc7Nq1pCDw&r;B$NjW@R zEAa9AdD)nl+cBKWQ|gt5DWc)d)OnP=Mxs6vDb@KTQ>jmBGy4q;27 zJQrq*x^x9P5_YIHnlTaX2{91HTEb%i_o)&CIQd|5VvsKk-EufsHGz~=C=N{zn3%&v5SO$ zK9K4PbJO1M`h|%#m-G`HQV^GlkWd7GTjkr)i=%xVT_FC${gp?XudR_*^K&xNo)s#* z#4x%f>Mcuf!?kHjErZa_-sHfHT5Rw}NJLAFM295fX4B^B9_0y9wlsD-K5Y%?a$#w) zZv2}b3@c!E&(94D%|=Bw17{-TSOjuS@Gt>*V7Wf)FZYxFwn*g~uU+Dn*(CHyrCyfD z9EP!gr&Y-T1fwX3A$c4+q8iV3uw02gM*bJR_IM|uC`OnFAW<;?yI4Szve>i=uBqgEkEk93JDd!ir+7gKrmZMX#R;9kw zgwv3Lu%ny1;J3qNK;Pe{zZAACketuq#5YGp|GZBeuLx%0x zFe}?M5jE_b`O|Z;z6-T}VQi}4`(GS!*lrK)U_{^NfaN_Ywx{cN#XlF!*a={@`kJQC zW$0CTtq4D*a-9}DnY^SEVevipJ^fucNlk>yK?E!pOskX6C*kxtX9u2AD9Y-xSzYEW zc*^B0#tlr-KEphpOO+w}T?MSF5St?_jgB=aSd!yRLfeq|-KqDM#c3&(#KX(>}7A6r#8=MNfzQN<_zaU%HH??Z&ONtGqvU0`GWEbHf zgxRZ(shXq{jA*hBlEz@N4^j3d0yB8c-vy7866PBpYUt}%Oh76#z6R})kx^5phS4`R z0C!9SU{82Qr*ME}f=*T=ud-4Vw&RP14cPNds-@msqPa6EE?KVGE1O(Xo(QzKuXx=p ztSr}|#+_{C{ei89J#>X${o(kO$lAi%ZPC}vTROfoN1PA(d31YA+V_L_n@;n`N7$GK zt%IzC?Ofa?Dy!qfP&T~!coyy3pPHGXsT`pE+Bd(#dF2p`#3l-bc94-Dte+4cC+S0$Y*D`igJF2OXff;-!#pFSH++k3XNsMWnFpCp$QHl$LkfCCBhu@|N3>^EX{Y&o9w^`Y&)K3D z!XUPzs(0`gAq{qXPRKv+8hUt+0Z6xFK*JT=Ljl9m`zPD13snSx*BWtHs^+279reEVY`y%aBT@7quM4H;G@m0HKtxjxVUrcK|om_S8&$FOZrYu#4T zah#c$seCU|2Fgv4z3<M+;rI_wh;r=jdMj^0prrqHsv6@D@v=HRFk`pSGpyS6+Ufs#^GY{kb!A zx2H4s$KKM+`48c4O9ymRMS|kqEGl8q$j=?ct1;x$Jyf^)aAj z-zJ3*)MSF};`s(B(iAexpd>j`ex9E852P<7an8NOX|LFRn=g<69>bNNvkkbe(`|i$ zZ)ig7{7+VUK_e0H8zh3@lZ3&pLxAt%!O}QGOX^`=UViQ?lKLO-PWe!NxeZfSQj1JI z3zje~wc~PV;9_)0k}IjNp|v#l&dag=_ECt}wW(bGxiaJYRlziG ziJTG7EL~XNeR)Q@LfJC?Q+e(9NFYXo@}je{+nqe+~JWk!7EK_5ArQR6oBZv z8uO@Wdp-*2w||Kz6K2pQsFZbzS)l38J$EFd&g^9*+$7@qFY@gh)jA|$WPDe_7wL6| z5<`OSF5fEM)nC41-)FHdxpAEC2D0`TA_!Yibj2X#e?;O^xXEwGXSl<4*sQ;6H{p$^ z_aCz=*8)^X{2SnyQZ|kyi<&Y&(AV&fl{Ha2LFi?KAl&~4RTcbyODD?=;v#qv;-bmk zz9jYVDJ=Fj=A2|X@i0aM`xv51{N!!wtQ<14=y}86%)ZPH#l3BYFwB=(K_lM^G6V$Z zq8E^T1?i(DUiZ9AH98MQchKH}v#&F&ZY&aEXtcsHIx(zK)zZR$eZyUeF`|4P?bwD% z4JzNiUbd;09Ic`j_c=^RI~Nwy@pqHl-_lmyQ2XiX;7^l65|9+0${H0wQA2niDHV}h z;Je+A$fFwMj*0Z^xo?Y0F;GuO$ju#unFHDKBriGmE)A$7~-q;5O`Mw2n9ALA(_B^KOSZzmKu3r&#PBpPUu~qFx|!7V6??F!dOe-N+Xt( zr{xG*%hi4R3H*CLg;}iGzbA0z?a|3n-jWPkY%MlxRvc|z%zV0DpNFgK+uzjIMvcVx zCK$oGuw;pYul~z{GX-|1kH~Pi;Tp`gd`6r&w@z zC{Q%GySo*4DIO#^h2XRlr$B+?#ocLXvEuGt+#z|=&pBu2`zJiVWhR>?nPK0%d)=?= zy0s18UUv8SrF&xr>Xy{-F%o)2x_q;V)=1q?j>V(h=Cj+fcG_XuzMAOqOrcZ>KF$kH z-o%p%S$AJq_>Oz&rQDj$T$-;7Ocez9ux2Fh*zr@EMnUgIY}X;?7u<{!CPXsYj$Z>( zy3Qm6^7S9Sq7$UdOh!oh-V=>deRps zAK9nHgApdEE4eXaf+Z8T@J2j;d)|PZQM4dWSG|Ozn^c z{){TGc4D;JWG#R6`&Y|V5`KYt{QgN%wH)JS^l4B(R+Rup6nmbWCfM)r zSLv798aHq|kNTMR%`@om2UGkMbgOn_OL(^DldS#pv><7Dc*~r(G-k(Zut~VDvaSCT#XV)hK~|N{@}8ceHY1rj>M1svyj^ZhhDs* z1~36vp~UTC#kn?^`;YKB>@p0gg_8FDlCF*vs}vnm$M1XSGseiLW8(lgKs!D3vj`X_ zi+!8||G}NPf>?kze&Z%;KDXSQREeACH70=m3|G_Q^AhZ) z0Qv(uWBD@9&5RYmX8yEW8)gf-v4mEIK0X+NZ$(PJB&Xzq#Bq4o9Q%sd+k9V zB*pKi%SIIa-@B|zb_UOcJwiKfCBaE8cX%gOK0oI!2J55uV`f>oVuTNxC$P4AgySie{8Iu8dx5kl&}~tyGAjFxVqN3Eey@t zL)3X8`?!H?TCn~{2Tn;&$-bxMxdQKi0PJ>-X;j3$ZGD-{UEzT^G1cP!IH}m!-+LbfDbm?ie7(Tn+ zoB(QsGC!yu^JHg~f|^Q2(x5n$h%XS16&2*-p-k8e3 zwPQiKC0O}OY?fRNpy8%S_X77qu0if22HE`2`#ec;U2Wli(lbkT#x?ZfOGX&%I;azL z;|^ig_2}_=N}r2_2ER4|JRc0ku3Ha0N#5i6QLwFQ@VFFX7hMm}iqcN8R?@KlI(wmK z43NCZ$F})qB|zdER@+Ye*srUURML^guO*(7zzdU0CQ5fSV+Z#Z$~l6F4^mHtlLNMIc>XuF=~9xwA2Ma zpkwfSR?{~}7FltgxL&@27TVUEIspRl^7)8oBQ?o_4953;D4F`2oviwM@Y~Fne31;Kh5`eQ$S||2t}QOexrI z?FsrBi2&#B`?Kd)Q7;&qoM9&xoG}5PjjVDC!ZmZdg#fIhGtuI1*Jz;~p|A{^w?1PF$S^D{b!!!ousp82sUO^{5ZXn20oFba}iAG2;v4%x2gZqrBuB zQwYU_amW5X)ckVGVOL`;8t#j+arLsTNpC&6H8glmZ%=7AZjfy7^b-r~84Efq^n$Kyr)?N7x%=>& zB%gs2dlt0U@)rfZB8Nbi1TT#A%ANG<4S5BM4Ar|*-E0-7?}swYN6#u74oqEu3;#|H zfJUB<@lisu%}eZ&&r5kw7tfC!(XLKH+#nTaJ^J_cf5aLHC?5krXEZ*-B zp^SoldEr&W+2uRj-9V-5V#dJ%o*v`d-H^Cw_ELQkCHOuaHBM}EuTGKn%<_Pgjab

    5J2@X?M2qbpNFW6=1Dg0ZZ4gs;q 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 z%0A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 z�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�o%C#`7i?Jy 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/__init__.py b/apps/erpnext/src/hrms/hrms/__init__.py new file mode 100644 index 000000000..7fa6af1f4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/__init__.py @@ -0,0 +1,12 @@ +import frappe + +__version__ = "16.4.4" + + +def refetch_resource(cache_key: str | list, user=None): + frappe.publish_realtime( + "hrms:refetch_resource", + {"cache_key": cache_key}, + user=user or frappe.session.user, + after_commit=True, + ) diff --git a/apps/erpnext/src/hrms/hrms/api/__init__.py b/apps/erpnext/src/hrms/hrms/api/__init__.py new file mode 100644 index 000000000..0cf553ddb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/api/__init__.py @@ -0,0 +1,826 @@ +import frappe +from frappe import _ +from frappe.model import get_permitted_fields +from frappe.model.workflow import get_workflow_name +from frappe.query_builder import Order +from frappe.utils import add_days, date_diff, getdate, strip_html + +from erpnext.setup.doctype.employee.employee import get_holiday_list_for_employee + +SUPPORTED_FIELD_TYPES = [ + "Link", + "Select", + "Small Text", + "Text", + "Long Text", + "Text Editor", + "Table", + "Check", + "Data", + "Float", + "Int", + "Section Break", + "Date", + "Time", + "Datetime", + "Currency", +] + + +@frappe.whitelist() +def get_current_user_info() -> dict: + current_user = frappe.session.user + user = frappe.db.get_value( + "User", current_user, ["name", "first_name", "full_name", "user_image"], as_dict=True + ) + user["roles"] = frappe.get_roles(current_user) + + return user + + +@frappe.whitelist() +def get_current_employee_info() -> dict: + current_user = frappe.session.user + employee = frappe.db.get_value( + "Employee", + {"user_id": current_user, "status": "Active"}, + [ + "name", + "first_name", + "employee_name", + "designation", + "department", + "company", + "reports_to", + "user_id", + ], + as_dict=True, + ) + return employee + + +@frappe.whitelist() +def get_all_employees() -> list[dict]: + return frappe.get_list( + "Employee", + fields=[ + "name", + "employee_name", + "designation", + "department", + "company", + "reports_to", + "user_id", + "image", + "status", + ], + limit=999999, + ) + + +def get_current_employee() -> str: + employee = get_current_employee_info().get("name") + if not employee: + frappe.throw(_("Employee not found"), frappe.PermissionError) + return employee + + +# HR Settings +@frappe.whitelist() +def get_hr_settings() -> dict: + settings = frappe.db.get_singles_dict("HR Settings", cast=True) + return frappe._dict( + allow_employee_checkin_from_mobile_app=settings.allow_employee_checkin_from_mobile_app, + allow_geolocation_tracking=settings.allow_geolocation_tracking, + ) + + +# Notifications +@frappe.whitelist() +def get_unread_notifications_count() -> int: + return frappe.db.count( + "PWA Notification", + {"to_user": frappe.session.user, "read": 0}, + ) + + +@frappe.whitelist() +def mark_all_notifications_as_read() -> None: + frappe.db.set_value( + "PWA Notification", + {"to_user": frappe.session.user, "read": 0}, + "read", + 1, + update_modified=False, + ) + + +@frappe.whitelist() +def are_push_notifications_enabled() -> bool: + try: + return frappe.db.get_single_value("Push Notification Settings", "enable_push_notification_relay") + except frappe.DoesNotExistError: + # push notifications are not supported in the current framework version + return False + + +# Attendance +@frappe.whitelist() +def get_attendance_calendar_events(from_date: str, to_date: str) -> dict[str, str]: + employee = get_current_employee() + holidays = get_holidays_for_calendar(employee, from_date, to_date) + attendance = get_attendance_for_calendar(employee, from_date, to_date) + events = {} + + date = getdate(from_date) + while date_diff(to_date, date) >= 0: + date_str = date.strftime("%Y-%m-%d") + if date in attendance: + events[date_str] = attendance[date] + elif date in holidays: + events[date_str] = "Holiday" + date = add_days(date, 1) + + return events + + +def get_attendance_for_calendar(employee: str, from_date: str, to_date: str) -> list[dict[str, str]]: + attendance = frappe.get_all( + "Attendance", + {"employee": employee, "attendance_date": ["between", [from_date, to_date]], "docstatus": 1}, + ["attendance_date", "status"], + ) + return {d["attendance_date"]: d["status"] for d in attendance} + + +def get_holidays_for_calendar(employee: str, from_date: str, to_date: str) -> list[str]: + if holiday_list := get_holiday_list_for_employee(employee, raise_exception=False): + return frappe.get_all( + "Holiday", + filters={"parent": holiday_list, "holiday_date": ["between", [from_date, to_date]]}, + pluck="holiday_date", + ) + + return [] + + +@frappe.whitelist() +def get_shift_requests( + employee: str, + approver_id: str | None = None, + for_approval: bool = False, + limit: int | None = None, +) -> list[dict]: + filters = get_filters("Shift Request", employee, approver_id, for_approval) + fields = [ + "name", + "employee", + "employee_name", + "shift_type", + "from_date", + "to_date", + "status", + "approver", + "docstatus", + "creation", + ] + + if workflow_state_field := get_workflow_state_field("Shift Request"): + fields.append(workflow_state_field) + + shift_requests = frappe.get_list( + "Shift Request", + fields=fields, + filters=filters, + order_by="creation desc", + limit=limit, + ) + + if workflow_state_field: + for application in shift_requests: + application["workflow_state_field"] = workflow_state_field + + return shift_requests + + +@frappe.whitelist() +def get_attendance_requests( + employee: str, + for_approval: bool = False, + limit: int | None = None, +) -> list[dict]: + filters = get_filters("Attendance Request", employee, None, for_approval) + fields = [ + "name", + "reason", + "employee", + "employee_name", + "from_date", + "to_date", + "include_holidays", + "shift", + "docstatus", + "creation", + ] + + if workflow_state_field := get_workflow_state_field("Attendance Request"): + fields.append(workflow_state_field) + + attendance_requests = frappe.get_list( + "Attendance Request", + fields=fields, + filters=filters, + order_by="creation desc", + limit=limit, + ) + + if workflow_state_field: + for application in attendance_requests: + application["workflow_state_field"] = workflow_state_field + + return attendance_requests + + +def get_filters( + doctype: str, + employee: str, + approver_id: str | None = None, + for_approval: bool = False, +) -> dict: + filters = frappe._dict() + if for_approval: + filters.docstatus = 0 + filters.employee = ("!=", employee) + + if workflow := get_workflow(doctype): + allowed_states = get_allowed_states_for_workflow(workflow, approver_id) + filters[workflow.workflow_state_field] = ("in", allowed_states) + elif doctype != "Attendance Request": + approver_field_map = { + "Shift Request": "approver", + "Leave Application": "leave_approver", + "Expense Claim": "expense_approver", + } + filters.status = "Open" if doctype == "Leave Application" else "Draft" + if approver_id: + filters[approver_field_map[doctype]] = approver_id + else: + filters.docstatus = ("!=", 2) + filters.employee = employee + + return filters + + +@frappe.whitelist() +def get_shift_request_approvers(employee: str) -> str | list[str]: + shift_request_approver, department = frappe.get_cached_value( + "Employee", + employee, + ["shift_request_approver", "department"], + ) + + department_approvers = [] + if department: + department_approvers = get_department_approvers(department, "shift_request_approver") + if not shift_request_approver: + shift_request_approver = frappe.db.get_value( + "Department Approver", + {"parent": department, "parentfield": "shift_request_approver", "idx": 1}, + "approver", + ) + + shift_request_approver_name = frappe.db.get_value("User", shift_request_approver, "full_name", cache=True) + + if shift_request_approver and shift_request_approver not in [ + approver.name for approver in department_approvers + ]: + department_approvers.insert( + 0, {"name": shift_request_approver, "full_name": shift_request_approver_name} + ) + + return department_approvers + + +@frappe.whitelist() +def get_shifts() -> list[dict[str, str]]: + employee = get_current_employee() + ShiftAssignment = frappe.qb.DocType("Shift Assignment") + ShiftType = frappe.qb.DocType("Shift Type") + return ( + frappe.qb.from_(ShiftAssignment) + .join(ShiftType) + .on(ShiftAssignment.shift_type == ShiftType.name) + .select( + ShiftAssignment.name, + ShiftAssignment.shift_type, + ShiftAssignment.start_date, + ShiftAssignment.end_date, + ShiftType.start_time, + ShiftType.end_time, + ) + .where( + (ShiftAssignment.employee == employee) + & (ShiftAssignment.status == "Active") + & (ShiftAssignment.docstatus == 1) + ) + .orderby(ShiftAssignment.start_date, order=Order.asc) + ).run(as_dict=True) + + +# Leaves and Holidays +@frappe.whitelist() +def get_leave_applications( + employee: str, + approver_id: str | None = None, + for_approval: bool = False, + limit: int | None = None, +) -> list[dict]: + filters = get_filters("Leave Application", employee, approver_id, for_approval) + fields = [ + "name", + "posting_date", + "employee", + "employee_name", + "leave_type", + "status", + "from_date", + "to_date", + "half_day", + "half_day_date", + "description", + "total_leave_days", + "leave_balance", + "leave_approver", + "posting_date", + "creation", + ] + + if workflow_state_field := get_workflow_state_field("Leave Application"): + fields.append(workflow_state_field) + + applications = frappe.get_list( + "Leave Application", + fields=fields, + filters=filters, + order_by="posting_date desc", + limit=limit, + ) + + if workflow_state_field: + for application in applications: + application["workflow_state_field"] = workflow_state_field + + return applications + + +@frappe.whitelist() +def get_leave_balance_map() -> dict[str, dict[str, float]]: + """ + Returns a map of leave type and balance details like: + { + 'Casual Leave': {'allocated_leaves': 10.0, 'balance_leaves': 5.0}, + 'Earned Leave': {'allocated_leaves': 3.0, 'balance_leaves': 3.0}, + } + """ + from hrms.hr.doctype.leave_application.leave_application import get_leave_details + + employee = get_current_employee() + + date = getdate() + leave_map = {} + + leave_details = get_leave_details(employee, date) + allocation = leave_details["leave_allocation"] + + for leave_type, details in allocation.items(): + leave_map[leave_type] = { + "allocated_leaves": details.get("total_leaves"), + "balance_leaves": details.get("remaining_leaves"), + } + + return leave_map + + +@frappe.whitelist() +def get_holidays_for_employee(employee: str) -> list[dict]: + holiday_list = get_holiday_list_for_employee(employee, raise_exception=False) + if not holiday_list: + return [] + + Holiday = frappe.qb.DocType("Holiday") + holidays = ( + frappe.qb.from_(Holiday) + .select(Holiday.name, Holiday.holiday_date, Holiday.description) + .where((Holiday.parent == holiday_list) & (Holiday.weekly_off == 0)) + .orderby(Holiday.holiday_date, order=Order.asc) + ).run(as_dict=True) + + for holiday in holidays: + holiday["description"] = strip_html(holiday["description"] or "").strip() + + return holidays + + +@frappe.whitelist() +def get_leave_approval_details(employee: str) -> dict: + leave_approver, department = frappe.get_cached_value( + "Employee", + employee, + ["leave_approver", "department"], + ) + + if not leave_approver and department: + leave_approver = frappe.db.get_value( + "Department Approver", + {"parent": department, "parentfield": "leave_approvers", "idx": 1}, + "approver", + ) + + leave_approver_name = frappe.db.get_value("User", leave_approver, "full_name", cache=True) + department_approvers = get_department_approvers(department, "leave_approvers") + + if leave_approver and leave_approver not in [approver.name for approver in department_approvers]: + department_approvers.append({"name": leave_approver, "full_name": leave_approver_name}) + + return dict( + leave_approver=leave_approver, + leave_approver_name=leave_approver_name, + department_approvers=department_approvers, + is_mandatory=frappe.db.get_single_value( + "HR Settings", "leave_approver_mandatory_in_leave_application" + ), + ) + + +def get_department_approvers(department: str, parentfield: str) -> list[str]: + if not department: + return [] + + department_details = frappe.db.get_value("Department", department, ["lft", "rgt"], as_dict=True) + departments = frappe.get_all( + "Department", + filters={ + "lft": ("<=", department_details.lft), + "rgt": (">=", department_details.rgt), + "disabled": 0, + }, + pluck="name", + ) + + Approver = frappe.qb.DocType("Department Approver") + User = frappe.qb.DocType("User") + department_approvers = ( + frappe.qb.from_(User) + .join(Approver) + .on(Approver.approver == User.name) + .select(User.name.as_("name"), User.full_name.as_("full_name")) + .where((Approver.parent.isin(departments)) & (Approver.parentfield == parentfield)) + ).run(as_dict=True) + + return department_approvers + + +@frappe.whitelist() +def get_leave_types(employee: str, date: str) -> list: + from hrms.hr.doctype.leave_application.leave_application import get_leave_details + + date = date or getdate() + + leave_details = get_leave_details(employee, date) + leave_types = list(leave_details["leave_allocation"].keys()) + leave_details["lwps"] + + return leave_types + + +# Expense Claims +@frappe.whitelist() +def get_expense_claims( + employee: str, + approver_id: str | None = None, + for_approval: bool = False, + limit: int | None = None, +) -> list[dict]: + filters = get_filters("Expense Claim", employee, approver_id, for_approval) + fields = [ + "`tabExpense Claim`.name", + "`tabExpense Claim`.posting_date", + "`tabExpense Claim`.employee", + "`tabExpense Claim`.employee_name", + "`tabExpense Claim`.approval_status", + "`tabExpense Claim`.status", + "`tabExpense Claim`.expense_approver", + "`tabExpense Claim`.total_claimed_amount", + "`tabExpense Claim`.posting_date", + "`tabExpense Claim`.company", + "`tabExpense Claim`.creation", + "`tabExpense Claim Detail`.expense_type", + {"COUNT": "`tabExpense Claim Detail`.expense_type", "as": "total_expenses"}, + ] + + if workflow_state_field := get_workflow_state_field("Expense Claim"): + fields.append(workflow_state_field) + + claims = frappe.get_list( + "Expense Claim", + fields=fields, + filters=filters, + order_by="`tabExpense Claim`.posting_date desc", + group_by="`tabExpense Claim`.name", + limit=limit, + ) + + if workflow_state_field: + for claim in claims: + claim["workflow_state_field"] = workflow_state_field + + return claims + + +@frappe.whitelist() +def get_expense_claim_summary() -> dict: + employee = get_current_employee() + + from frappe.query_builder.functions import Sum + + Claim = frappe.qb.DocType("Expense Claim") + + pending_claims_case = ( + frappe.qb.terms.Case().when(Claim.approval_status == "Draft", Claim.total_claimed_amount).else_(0) + ) + sum_pending_claims = Sum(pending_claims_case).as_("total_pending_amount") + + approved_claims_case = ( + frappe.qb.terms.Case() + .when(Claim.approval_status == "Approved", Claim.total_sanctioned_amount) + .else_(0) + ) + sum_approved_claims = Sum(approved_claims_case).as_("total_approved_amount") + + approved_total_claimed_case = ( + frappe.qb.terms.Case().when(Claim.approval_status == "Approved", Claim.total_claimed_amount).else_(0) + ) + sum_approved_total_claimed = Sum(approved_total_claimed_case).as_("total_claimed_in_approved") + + rejected_claims_case = ( + frappe.qb.terms.Case().when(Claim.approval_status == "Rejected", Claim.total_claimed_amount).else_(0) + ) + sum_rejected_claims = Sum(rejected_claims_case).as_("total_rejected_amount") + + summary = ( + frappe.qb.from_(Claim) + .select( + sum_pending_claims, + sum_approved_claims, + sum_rejected_claims, + sum_approved_total_claimed, + Claim.company, + ) + .where((Claim.docstatus != 2) & (Claim.employee == employee)) + ).run(as_dict=True)[0] + + currency = frappe.db.get_value("Company", summary.company, "default_currency") + summary["currency"] = currency + + return summary + + +@frappe.whitelist() +def get_expense_type_description(expense_type: str) -> str: + return frappe.db.get_value("Expense Claim Type", expense_type, "description") + + +@frappe.whitelist() +def get_expense_claim_types() -> list[dict]: + ClaimType = frappe.qb.DocType("Expense Claim Type") + + return (frappe.qb.from_(ClaimType).select(ClaimType.name, ClaimType.description)).run(as_dict=True) + + +@frappe.whitelist() +def get_expense_approval_details(employee: str) -> dict: + expense_approver, department = frappe.get_cached_value( + "Employee", + employee, + ["expense_approver", "department"], + ) + + if not expense_approver and department: + expense_approver = frappe.db.get_value( + "Department Approver", + {"parent": department, "parentfield": "expense_approvers", "idx": 1}, + "approver", + ) + + expense_approver_name = frappe.db.get_value("User", expense_approver, "full_name", cache=True) + department_approvers = get_department_approvers(department, "expense_approvers") + + if expense_approver and expense_approver not in [approver.name for approver in department_approvers]: + department_approvers.append({"name": expense_approver, "full_name": expense_approver_name}) + + return dict( + expense_approver=expense_approver, + expense_approver_name=expense_approver_name, + department_approvers=department_approvers, + is_mandatory=frappe.db.get_single_value("HR Settings", "expense_approver_mandatory_in_expense_claim"), + ) + + +# Employee Advance +@frappe.whitelist() +def get_employee_advance_balance() -> list[dict]: + employee = get_current_employee() + Advance = frappe.qb.DocType("Employee Advance") + + advances = ( + frappe.qb.from_(Advance) + .select( + Advance.name, + Advance.employee, + Advance.status, + Advance.purpose, + Advance.paid_amount, + (Advance.paid_amount - (Advance.claimed_amount + Advance.return_amount)).as_("balance_amount"), + Advance.posting_date, + Advance.currency, + ) + .where( + (Advance.docstatus == 1) + & (Advance.paid_amount) + & (Advance.employee == employee) + # don't need claimed & returned advances, only partly or completely paid ones + & (Advance.status.isin(["Paid", "Unpaid"])) + ) + .orderby(Advance.posting_date, order=Order.desc) + ).run(as_dict=True) + + return advances + + +@frappe.whitelist() +def get_advance_account(company: str) -> str | None: + return frappe.db.get_value("Company", company, "default_employee_advance_account", cache=True) + + +# Company +@frappe.whitelist() +def get_company_currencies() -> dict: + Company = frappe.qb.DocType("Company") + Currency = frappe.qb.DocType("Currency") + + query = ( + frappe.qb.from_(Company) + .join(Currency) + .on(Company.default_currency == Currency.name) + .select( + Company.name, + Company.default_currency, + Currency.name.as_("currency"), + Currency.symbol.as_("symbol"), + ) + ) + + companies = query.run(as_dict=True) + return {company.name: (company.default_currency, company.symbol) for company in companies} + + +@frappe.whitelist() +def get_currency_symbols() -> dict: + Currency = frappe.qb.DocType("Currency") + + currencies = (frappe.qb.from_(Currency).select(Currency.name, Currency.symbol)).run(as_dict=True) + + return {currency.name: currency.symbol or currency.name for currency in currencies} + + +@frappe.whitelist() +def get_company_cost_center_and_expense_account(company: str) -> dict: + return frappe.db.get_value( + "Company", company, ["cost_center", "default_expense_claim_payable_account"], as_dict=True + ) + + +# Form View APIs +@frappe.whitelist() +def get_doctype_fields(doctype: str) -> list[dict]: + fields = frappe.get_meta(doctype).fields + return [ + field + for field in fields + if field.fieldtype in SUPPORTED_FIELD_TYPES and field.fieldname != "amended_from" + ] + + +@frappe.whitelist() +def get_doctype_states(doctype: str) -> dict: + states = frappe.get_meta(doctype).states + return {state.title: state.color.lower() for state in states} + + +# File +@frappe.whitelist() +def get_attachments(dt: str, dn: str): + return frappe.get_list( + "File", + fields=["name", "file_name", "file_url", "is_private"], + filters={"attached_to_name": str(dn), "attached_to_doctype": dt}, + ) + + +@frappe.whitelist() +def upload_base64_file(content, filename, dt=None, dn=None, fieldname=None): + import base64 + import io + from mimetypes import guess_type + + from PIL import Image, ImageOps + + from frappe.handler import ALLOWED_MIMETYPES + + decoded_content = base64.b64decode(content) + content_type = guess_type(filename)[0] + if content_type not in ALLOWED_MIMETYPES: + frappe.throw(_("You can only upload JPG, PNG, PDF, TXT or Microsoft documents.")) + + if content_type.startswith("image/jpeg"): + # transpose the image according to the orientation tag, and remove the orientation data + with Image.open(io.BytesIO(decoded_content)) as image: + transpose_img = ImageOps.exif_transpose(image) + # convert the image back to bytes + file_content = io.BytesIO() + transpose_img.save(file_content, format="JPEG") + file_content = file_content.getvalue() + else: + file_content = decoded_content + + return frappe.get_doc( + { + "doctype": "File", + "attached_to_doctype": dt, + "attached_to_name": dn, + "attached_to_field": fieldname, + "folder": "Home", + "file_name": filename, + "content": file_content, + "is_private": 1, + } + ).insert() + + +@frappe.whitelist() +def delete_attachment(filename: str): + frappe.delete_doc("File", filename) + + +@frappe.whitelist() +def _download_pdf(doctype: str, docname: str) -> str: + import base64 + + from frappe.utils.print_format import download_pdf + + default_print_format = frappe.get_meta(doctype).default_print_format or "Standard" + + try: + download_pdf(doctype, docname, format=default_print_format) + except Exception as e: + frappe.throw(_("Failed to download PDF: {0}").format(str(e))) + + base64content = base64.b64encode(frappe.local.response.filecontent) + content_type = frappe.local.response.type + + return f"data:{content_type};base64," + base64content.decode("utf-8") + + +# Workflow +@frappe.whitelist() +def get_workflow(doctype: str) -> dict: + workflow = get_workflow_name(doctype) + if not workflow: + return frappe._dict() + return frappe.get_doc("Workflow", workflow) + + +def get_workflow_state_field(doctype: str) -> str | None: + workflow_name = get_workflow_name(doctype) + if not workflow_name: + return None + + override_status, workflow_state_field = frappe.db.get_value( + "Workflow", + workflow_name, + ["override_status", "workflow_state_field"], + ) + # NOTE: checkbox labelled 'Don't Override Status' is named override_status hence the inverted logic + if not override_status: + return workflow_state_field + return None + + +def get_allowed_states_for_workflow(workflow: dict, user_id: str) -> list[str]: + user_roles = frappe.get_roles(user_id) + return [transition.state for transition in workflow.transitions if transition.allowed in user_roles] + + +# Permissions +@frappe.whitelist() +def get_permitted_fields_for_write(doctype: str) -> list[str]: + return get_permitted_fields(doctype, permission_type="write") diff --git a/apps/erpnext/src/hrms/hrms/api/oauth.py b/apps/erpnext/src/hrms/hrms/api/oauth.py new file mode 100644 index 000000000..d5db2268a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/api/oauth.py @@ -0,0 +1,33 @@ +import frappe + + +@frappe.whitelist(allow_guest=True) +def oauth_providers(): + from frappe.utils.html_utils import get_icon_html + from frappe.utils.oauth import get_oauth2_authorize_url, get_oauth_keys + from frappe.utils.password import get_decrypted_password + + out = [] + providers = frappe.get_all( + "Social Login Key", + filters={"enable_social_login": 1}, + fields=["name", "client_id", "base_url", "provider_name", "icon"], + order_by="name", + ) + + for provider in providers: + client_secret = get_decrypted_password("Social Login Key", provider.name, "client_secret") + if not client_secret: + continue + + if provider.client_id and provider.base_url and get_oauth_keys(provider.name): + out.append( + { + "name": provider.name, + "provider_name": provider.provider_name, + "auth_url": get_oauth2_authorize_url(provider.name, "/hrms"), + "icon": provider.icon, + } + ) + + return out diff --git a/apps/erpnext/src/hrms/hrms/api/roster.py b/apps/erpnext/src/hrms/hrms/api/roster.py new file mode 100644 index 000000000..245a0395c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/api/roster.py @@ -0,0 +1,292 @@ +import frappe +from frappe import _ +from frappe.utils import add_days, date_diff + +from erpnext.setup.doctype.employee.employee import get_holiday_list_for_employee + +from hrms.hr.doctype.shift_assignment.shift_assignment import ShiftAssignment +from hrms.hr.doctype.shift_assignment_tool.shift_assignment_tool import create_shift_assignment +from hrms.hr.doctype.shift_schedule.shift_schedule import get_or_insert_shift_schedule + + +@frappe.whitelist() +def get_default_company() -> str: + return frappe.defaults.get_user_default("Company") + + +@frappe.whitelist() +def get_events( + month_start: str, month_end: str, employee_filters: dict[str, str], shift_filters: dict[str, str] +) -> dict[str, list[dict]]: + holidays = get_holidays(month_start, month_end, employee_filters) + leaves = get_leaves(month_start, month_end, employee_filters) + shifts = get_shifts(month_start, month_end, employee_filters, shift_filters) + + events = {} + for event in [holidays, leaves, shifts]: + for key, value in event.items(): + if key in events: + events[key].extend(value) + else: + events[key] = value + return events + + +@frappe.whitelist() +def get_schedule_from_assignment(shift_schedule_assignment: str): + shift_schedule = frappe.db.get_value( + "Shift Schedule Assignment", shift_schedule_assignment, "shift_schedule" + ) + frequency = frappe.db.get_value("Shift Schedule", shift_schedule, "frequency") + repeat_on_days = frappe.get_all("Assignment Rule Day", filters={"parent": shift_schedule}, pluck="day") + return {"frequency": frequency, "repeat_on_days": repeat_on_days} + + +@frappe.whitelist() +def create_shift_schedule_assignment( + employee: str, + company: str, + shift_type: str, + status: str, + start_date: str, + end_date: str | None, + repeat_on_days: list[str], + frequency: str, + shift_location: str | None = None, +) -> None: + shift_schedule = get_or_insert_shift_schedule(shift_type, frequency, repeat_on_days) + shift_schedule_assignment = frappe.get_doc( + { + "doctype": "Shift Schedule Assignment", + "shift_schedule": shift_schedule, + "employee": employee, + "company": company, + "shift_status": status, + "shift_location": shift_location, + "enabled": 0 if end_date else 1, + } + ).insert() + + if not end_date or date_diff(end_date, start_date) <= 90: + return shift_schedule_assignment.create_shifts(start_date, end_date) + + frappe.enqueue( + shift_schedule_assignment.create_shifts, timeout=4500, start_date=start_date, end_date=end_date + ) + + +@frappe.whitelist() +def delete_shift_schedule_assignment(shift_schedule_assignment: str) -> None: + for shift_assignment in frappe.get_all( + "Shift Assignment", {"shift_schedule_assignment": shift_schedule_assignment}, pluck="name" + ): + doc = frappe.get_doc("Shift Assignment", shift_assignment) + if doc.docstatus == 1: + doc.cancel() + frappe.delete_doc("Shift Assignment", shift_assignment) + frappe.delete_doc("Shift Schedule Assignment", shift_schedule_assignment) + + +@frappe.whitelist() +def swap_shift( + src_shift: str, src_date: str, tgt_employee: str, tgt_date: str, tgt_shift: str | None +) -> None: + if src_shift == tgt_shift: + frappe.throw(_("Source and target shifts cannot be the same")) + + if tgt_shift: + tgt_shift_doc = frappe.get_doc("Shift Assignment", tgt_shift) + tgt_company = tgt_shift_doc.company + break_shift(tgt_shift_doc, tgt_date) + else: + tgt_company = frappe.db.get_value("Employee", tgt_employee, "company") + + src_shift_doc = frappe.get_doc("Shift Assignment", src_shift) + break_shift(src_shift_doc, src_date) + insert_shift( + tgt_employee, + tgt_company, + src_shift_doc.shift_type, + tgt_date, + tgt_date, + src_shift_doc.status, + src_shift_doc.shift_location, + ) + + if tgt_shift: + insert_shift( + src_shift_doc.employee, + src_shift_doc.company, + tgt_shift_doc.shift_type, + src_date, + src_date, + tgt_shift_doc.status, + tgt_shift_doc.shift_location, + ) + + +@frappe.whitelist() +def break_shift(assignment: str | ShiftAssignment, date: str) -> None: + if isinstance(assignment, str): + assignment = frappe.get_doc("Shift Assignment", assignment) + + if assignment.end_date and date_diff(assignment.end_date, date) < 0: + frappe.throw(_("Cannot break shift after end date")) + if date_diff(assignment.start_date, date) > 0: + frappe.throw(_("Cannot break shift before start date")) + + employee = assignment.employee + company = assignment.company + shift_type = assignment.shift_type + status = assignment.status + end_date = assignment.end_date + shift_location = assignment.shift_location + + if date_diff(date, assignment.start_date) == 0: + assignment.cancel() + assignment.delete() + else: + assignment.end_date = add_days(date, -1) + assignment.save() + + if not end_date or date_diff(end_date, date) > 0: + create_shift_assignment( + employee, company, shift_type, add_days(date, 1), end_date, status, shift_location + ) + + +@frappe.whitelist() +def insert_shift( + employee: str, + company: str, + shift_type: str, + start_date: str, + end_date: str | None, + status: str, + shift_location: str | None = None, +) -> None: + filters = { + "doctype": "Shift Assignment", + "employee": employee, + "company": company, + "shift_type": shift_type, + "status": status, + "shift_location": shift_location, + } + prev_shift = frappe.db.exists(dict({"end_date": add_days(start_date, -1)}, **filters)) + next_shift = ( + frappe.db.exists(dict({"start_date": add_days(end_date, 1)}, **filters)) if end_date else None + ) + + if prev_shift: + if next_shift: + end_date = frappe.db.get_value("Shift Assignment", next_shift, "end_date") + frappe.db.set_value("Shift Assignment", next_shift, "docstatus", 2) + frappe.delete_doc("Shift Assignment", next_shift) + frappe.db.set_value("Shift Assignment", prev_shift, "end_date", end_date or None) + + elif next_shift: + frappe.db.set_value("Shift Assignment", next_shift, "start_date", start_date) + + else: + create_shift_assignment(employee, company, shift_type, start_date, end_date, status, shift_location) + + +def get_holidays(month_start: str, month_end: str, employee_filters: dict[str, str]) -> dict[str, list[dict]]: + holidays = {} + holiday_lists = {} + + for employee in frappe.get_list("Employee", filters=employee_filters, pluck="name"): + if not ( + holiday_list := get_holiday_list_for_employee(employee, raise_exception=False, as_on=month_end) + ): + continue + if holiday_list not in holiday_lists: + holiday_lists[holiday_list] = frappe.get_all( + "Holiday", + filters={"parent": holiday_list, "holiday_date": ["between", [month_start, month_end]]}, + fields=["name as holiday", "holiday_date", "description", "weekly_off"], + ) + holidays[employee] = holiday_lists[holiday_list].copy() + + return holidays + + +def get_leaves(month_start: str, month_end: str, employee_filters: dict[str, str]) -> dict[str, list[dict]]: + LeaveApplication = frappe.qb.DocType("Leave Application") + Employee = frappe.qb.DocType("Employee") + + query = ( + frappe.qb.select( + LeaveApplication.name.as_("leave"), + LeaveApplication.employee, + LeaveApplication.leave_type, + LeaveApplication.from_date, + LeaveApplication.to_date, + ) + .from_(LeaveApplication) + .left_join(Employee) + .on(LeaveApplication.employee == Employee.name) + .where( + (LeaveApplication.docstatus == 1) + & (LeaveApplication.status == "Approved") + & (LeaveApplication.from_date <= month_end) + & (LeaveApplication.to_date >= month_start) + ) + ) + + for filter in employee_filters: + query = query.where(Employee[filter] == employee_filters[filter]) + + return group_by_employee(query.run(as_dict=True)) + + +def get_shifts( + month_start: str, month_end: str, employee_filters: dict[str, str], shift_filters: dict[str, str] +) -> dict[str, list[dict]]: + ShiftAssignment = frappe.qb.DocType("Shift Assignment") + ShiftType = frappe.qb.DocType("Shift Type") + Employee = frappe.qb.DocType("Employee") + + query = ( + frappe.qb.select( + ShiftAssignment.name, + ShiftAssignment.employee, + ShiftAssignment.shift_type, + ShiftAssignment.shift_location, + ShiftAssignment.start_date, + ShiftAssignment.end_date, + ShiftAssignment.status, + ShiftAssignment.shift_schedule_assignment, + ShiftType.start_time, + ShiftType.end_time, + ShiftType.color, + ) + .from_(ShiftAssignment) + .left_join(ShiftType) + .on(ShiftAssignment.shift_type == ShiftType.name) + .left_join(Employee) + .on(ShiftAssignment.employee == Employee.name) + .where( + (ShiftAssignment.docstatus == 1) + & (ShiftAssignment.start_date <= month_end) + & ((ShiftAssignment.end_date >= month_start) | (ShiftAssignment.end_date.isnull())) + ) + ) + + for filter in employee_filters: + query = query.where(Employee[filter] == employee_filters[filter]) + + for filter in shift_filters: + query = query.where(ShiftAssignment[filter] == shift_filters[filter]) + + return group_by_employee(query.run(as_dict=True)) + + +def group_by_employee(events: list[dict]) -> dict[str, list[dict]]: + grouped_events = {} + for event in events: + grouped_events.setdefault(event["employee"], []).append( + {k: v for k, v in event.items() if k != "employee"} + ) + return grouped_events diff --git a/apps/erpnext/src/hrms/hrms/api/system_settings.py b/apps/erpnext/src/hrms/hrms/api/system_settings.py new file mode 100644 index 000000000..fc328547b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/api/system_settings.py @@ -0,0 +1,6 @@ +import frappe + + +@frappe.whitelist(allow_guest=True) +def get_user_pass_login_disabled(): + return frappe.get_system_settings("disable_user_pass_login") diff --git a/apps/erpnext/src/hrms/hrms/config/__init__.py b/apps/erpnext/src/hrms/hrms/config/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/config/desktop.py b/apps/erpnext/src/hrms/hrms/config/desktop.py new file mode 100644 index 000000000..c785f058a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/config/desktop.py @@ -0,0 +1,5 @@ +from frappe import _ + + +def get_data(): + return [{"module_name": "HRMS", "type": "module", "label": _("HRMS")}] diff --git a/apps/erpnext/src/hrms/hrms/config/docs.py b/apps/erpnext/src/hrms/hrms/config/docs.py new file mode 100644 index 000000000..7e56ec0dc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/config/docs.py @@ -0,0 +1,11 @@ +""" +Configuration for docs +""" + +# source_link = "https://github.com/[org_name]/hrms" +# headline = "App that does everything" +# sub_heading = "Yes, you got that right the first time, everything" + + +def get_context(context): + context.brand_html = "HRMS" diff --git a/apps/erpnext/src/hrms/hrms/controllers/employee_boarding_controller.py b/apps/erpnext/src/hrms/hrms/controllers/employee_boarding_controller.py new file mode 100644 index 000000000..f3430e93f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/controllers/employee_boarding_controller.py @@ -0,0 +1,198 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe +from frappe import _ +from frappe.desk.form import assign_to +from frappe.model.document import Document +from frappe.utils import add_days, flt, unique + +from erpnext.setup.doctype.employee.employee import get_holiday_list_for_employee +from erpnext.setup.doctype.holiday_list.holiday_list import is_holiday + + +class EmployeeBoardingController(Document): + """ + Create the project and the task for the boarding process + Assign to the concerned person and roles as per the onboarding/separation template + """ + + def validate(self): + # remove the task if linked before submitting the form + if self.amended_from: + for activity in self.activities: + activity.task = "" + + def on_submit(self): + # create the project for the given employee onboarding + project_name = _(self.doctype) + " : " + if self.doctype == "Employee Onboarding": + project_name += self.job_applicant + else: + project_name += self.employee + + project = frappe.get_doc( + { + "doctype": "Project", + "project_name": project_name, + "expected_start_date": self.date_of_joining + if self.doctype == "Employee Onboarding" + else self.resignation_letter_date, + "department": self.department, + "company": self.company, + } + ).insert(ignore_permissions=True, ignore_mandatory=True) + + self.db_set("project", project.name) + self.db_set("boarding_status", "Pending") + self.reload() + self.create_task_and_notify_user() + + def create_task_and_notify_user(self): + # create the task for the given project and assign to the concerned person + holiday_list = self.get_holiday_list() + + for activity in self.activities: + if activity.task: + continue + + dates = self.get_task_dates(activity, holiday_list) + + task = frappe.get_doc( + { + "doctype": "Task", + "project": self.project, + "subject": activity.activity_name + " : " + self.employee_name, + "description": activity.description, + "department": self.department, + "company": self.company, + "task_weight": activity.task_weight, + "exp_start_date": dates[0], + "exp_end_date": dates[1], + } + ).insert(ignore_permissions=True) + activity.db_set("task", task.name) + + users = [activity.user] if activity.user else [] + if activity.role: + user_list = frappe.db.sql_list( + """ + SELECT + DISTINCT(has_role.parent) + FROM + `tabHas Role` has_role + LEFT JOIN `tabUser` user + ON has_role.parent = user.name + WHERE + has_role.parenttype = 'User' + AND user.enabled = 1 + AND has_role.role = %s + """, + activity.role, + ) + users = unique(users + user_list) + + if "Administrator" in users: + users.remove("Administrator") + + # assign the task the users + if users: + self.assign_task_to_users(task, users) + + def get_holiday_list(self): + if self.doctype == "Employee Separation": + return get_holiday_list_for_employee(self.employee) + else: + if self.employee: + return get_holiday_list_for_employee(self.employee) + else: + if not self.holiday_list: + frappe.throw(_("Please set the Holiday List."), frappe.MandatoryError) + else: + return self.holiday_list + + def get_task_dates(self, activity, holiday_list): + start_date = end_date = None + + if activity.begin_on is not None: + start_date = add_days(self.boarding_begins_on, activity.begin_on) + start_date = self.update_if_holiday(start_date, holiday_list) + + if activity.duration is not None: + end_date = add_days(self.boarding_begins_on, activity.begin_on + activity.duration) + end_date = self.update_if_holiday(end_date, holiday_list) + + return [start_date, end_date] + + def update_if_holiday(self, date, holiday_list): + while is_holiday(holiday_list, date): + date = add_days(date, 1) + return date + + def assign_task_to_users(self, task, users): + for user in users: + args = { + "assign_to": [user], + "doctype": task.doctype, + "name": task.name, + "description": task.description or task.subject, + "notify": self.notify_users_by_email, + } + assign_to.add(args) + + def on_cancel(self): + # delete task project + project = self.project + for task in frappe.get_all("Task", filters={"project": project}): + frappe.delete_doc("Task", task.name, force=1) + frappe.delete_doc("Project", project, force=1) + self.db_set("project", "") + for activity in self.activities: + activity.db_set("task", "") + + frappe.msgprint( + _("Linked Project {} and Tasks deleted.").format(project), alert=True, indicator="blue" + ) + + +@frappe.whitelist() +def get_onboarding_details(parent, parenttype): + return frappe.get_all( + "Employee Boarding Activity", + fields=[ + "activity_name", + "role", + "user", + "required_for_employee_creation", + "description", + "task_weight", + "begin_on", + "duration", + ], + filters={"parent": parent, "parenttype": parenttype}, + order_by="idx", + ) + + +def update_employee_boarding_status(project, event=None): + employee_onboarding = frappe.db.exists("Employee Onboarding", {"project": project.name}) + employee_separation = frappe.db.exists("Employee Separation", {"project": project.name}) + + if not (employee_onboarding or employee_separation): + return + + status = "Pending" + if flt(project.percent_complete) > 0.0 and flt(project.percent_complete) < 100.0: + status = "In Process" + elif flt(project.percent_complete) == 100.0: + status = "Completed" + + if employee_onboarding: + frappe.db.set_value("Employee Onboarding", employee_onboarding, "boarding_status", status) + elif employee_separation: + frappe.db.set_value("Employee Separation", employee_separation, "boarding_status", status) + + +def update_task(task, event=None): + if task.project and not task.flags.from_project: + update_employee_boarding_status(frappe.get_cached_doc("Project", task.project)) diff --git a/apps/erpnext/src/hrms/hrms/controllers/employee_reminders.py b/apps/erpnext/src/hrms/hrms/controllers/employee_reminders.py new file mode 100644 index 000000000..158a1a457 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/controllers/employee_reminders.py @@ -0,0 +1,290 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe +from frappe import _ +from frappe.utils import add_days, add_months, comma_sep, getdate, today + +from erpnext.setup.doctype.employee.employee import get_all_employee_emails, get_employee_email + +from hrms.hr.utils import get_holidays_for_employee + + +# ----------------- +# HOLIDAY REMINDERS +# ----------------- +def send_reminders_in_advance_weekly(): + to_send_in_advance = int(frappe.db.get_single_value("HR Settings", "send_holiday_reminders")) + frequency = frappe.db.get_single_value("HR Settings", "frequency") + if not (to_send_in_advance and frequency == "Weekly"): + return + + send_advance_holiday_reminders("Weekly") + + +def send_reminders_in_advance_monthly(): + to_send_in_advance = int(frappe.db.get_single_value("HR Settings", "send_holiday_reminders")) + frequency = frappe.db.get_single_value("HR Settings", "frequency") + if not (to_send_in_advance and frequency == "Monthly"): + return + + send_advance_holiday_reminders("Monthly") + + +def send_advance_holiday_reminders(frequency): + """Send Holiday Reminders in Advance to Employees + `frequency` (str): 'Weekly' or 'Monthly' + """ + if frequency == "Weekly": + start_date = getdate() + end_date = add_days(getdate(), 7) + elif frequency == "Monthly": + # Sent on 1st of every month + start_date = getdate() + end_date = add_months(getdate(), 1) + else: + return + + employees = frappe.db.get_all("Employee", filters={"status": "Active"}, pluck="name") + for employee in employees: + holidays = get_holidays_for_employee( + employee, start_date, end_date, only_non_weekly=True, raise_exception=False + ) + + send_holidays_reminder_in_advance(employee, holidays) + + +def send_holidays_reminder_in_advance(employee, holidays): + if not holidays: + return + + employee_doc = frappe.get_doc("Employee", employee) + employee_email = get_employee_email(employee_doc) + frequency = frappe.db.get_single_value("HR Settings", "frequency") + sender_email = get_sender_email() + email_header = _("Holidays this Month.") if frequency == "Monthly" else _("Holidays this Week.") + frappe.sendmail( + sender=sender_email, + recipients=[employee_email], + subject=_("Upcoming Holidays Reminder"), + template="holiday_reminder", + args=dict( + reminder_text=_("Hey {}! This email is to remind you about the upcoming holidays.").format( + employee_doc.get("first_name") + ), + message=_("Below is the list of upcoming holidays for you:"), + advance_holiday_reminder=True, + holidays=holidays, + frequency=frequency[:-2], + ), + header=email_header, + ) + + +# ------------------ +# BIRTHDAY REMINDERS +# ------------------ +def send_birthday_reminders(): + """Send Employee birthday reminders if no 'Stop Birthday Reminders' is not set.""" + + to_send = int(frappe.db.get_single_value("HR Settings", "send_birthday_reminders")) + if not to_send: + return + + sender = get_sender_email() + employees_born_today = get_employees_who_are_born_today() + + for company, birthday_persons in employees_born_today.items(): + employee_emails = get_all_employee_emails(company) + birthday_person_emails = [get_employee_email(doc) for doc in birthday_persons] + recipients = list(set(employee_emails) - set(birthday_person_emails)) + + reminder_text, message = get_birthday_reminder_text_and_message(birthday_persons) + send_birthday_reminder(recipients, reminder_text, birthday_persons, message, sender) + + if len(birthday_persons) > 1: + # special email for people sharing birthdays + for person in birthday_persons: + person_email = person["user_id"] or person["personal_email"] or person["company_email"] + others = [d for d in birthday_persons if d != person] + reminder_text, message = get_birthday_reminder_text_and_message(others) + send_birthday_reminder(person_email, reminder_text, others, message, sender) + + +def get_birthday_reminder_text_and_message(birthday_persons): + if len(birthday_persons) == 1: + birthday_person_text = birthday_persons[0]["name"] + else: + # converts ["Jim", "Rim", "Dim"] to Jim, Rim & Dim + person_names = [d["name"] for d in birthday_persons] + birthday_person_text = comma_sep(person_names, frappe._("{0} & {1}"), False) + + reminder_text = _("Today is {0}'s birthday 🎉").format(birthday_person_text) + message = _("A friendly reminder of an important date for our team.") + message += "
    " + message += _("Everyone, let’s congratulate {0} on their birthday.").format(birthday_person_text) + + return reminder_text, message + + +def send_birthday_reminder(recipients, reminder_text, birthday_persons, message, sender=None): + frappe.sendmail( + sender=sender, + recipients=recipients, + subject=_("Birthday Reminder"), + template="birthday_reminder", + args=dict( + reminder_text=reminder_text, + birthday_persons=birthday_persons, + message=message, + ), + header=_("Birthday Reminder 🎂"), + ) + + +def get_employees_who_are_born_today(): + """Get all employee born today & group them based on their company""" + return get_employees_having_an_event_today("birthday") + + +def get_employees_having_an_event_today(event_type): + """Get all employee who have `event_type` today + & group them based on their company. `event_type` + can be `birthday` or `work_anniversary`""" + + from collections import defaultdict + + # Set column based on event type + if event_type == "birthday": + condition_column = "date_of_birth" + elif event_type == "work_anniversary": + condition_column = "date_of_joining" + else: + return + + employees_born_today = frappe.db.multisql( + { + "mariadb": f""" + SELECT `personal_email`, `company`, `company_email`, `user_id`, `employee_name` AS 'name', `image`, `date_of_joining` + FROM `tabEmployee` + WHERE + DAY({condition_column}) = DAY(%(today)s) + AND + MONTH({condition_column}) = MONTH(%(today)s) + AND + YEAR({condition_column}) < YEAR(%(today)s) + AND + `status` = 'Active' + """, + "postgres": f""" + SELECT "personal_email", "company", "company_email", "user_id", "employee_name" AS 'name', "image" + FROM "tabEmployee" + WHERE + DATE_PART('day', {condition_column}) = date_part('day', %(today)s) + AND + DATE_PART('month', {condition_column}) = date_part('month', %(today)s) + AND + DATE_PART('year', {condition_column}) < date_part('year', %(today)s) + AND + "status" = 'Active' + """, + }, + dict(today=today(), condition_column=condition_column), + as_dict=1, + ) + + grouped_employees = defaultdict(lambda: []) + + for employee_doc in employees_born_today: + grouped_employees[employee_doc.get("company")].append(employee_doc) + + return grouped_employees + + +# -------------------------- +# WORK ANNIVERSARY REMINDERS +# -------------------------- +def send_work_anniversary_reminders(): + """Send Employee Work Anniversary Reminders if 'Send Work Anniversary Reminders' is checked""" + to_send = int(frappe.db.get_single_value("HR Settings", "send_work_anniversary_reminders")) + if not to_send: + return + + sender = get_sender_email() + employees_joined_today = get_employees_having_an_event_today("work_anniversary") + + message = _("A friendly reminder of an important date for our team.") + message += "
    " + message += _("Everyone, let’s congratulate them on their work anniversary!") + + for company, anniversary_persons in employees_joined_today.items(): + employee_emails = get_all_employee_emails(company) + anniversary_person_emails = [get_employee_email(doc) for doc in anniversary_persons] + recipients = list(set(employee_emails) - set(anniversary_person_emails)) + + reminder_text = get_work_anniversary_reminder_text(anniversary_persons) + send_work_anniversary_reminder(recipients, reminder_text, anniversary_persons, message, sender) + + if len(anniversary_persons) > 1: + # email for people sharing work anniversaries + for person in anniversary_persons: + person_email = person["user_id"] or person["personal_email"] or person["company_email"] + others = [d for d in anniversary_persons if d != person] + reminder_text = get_work_anniversary_reminder_text(others) + send_work_anniversary_reminder(person_email, reminder_text, others, message, sender) + + +def get_work_anniversary_reminder_text(anniversary_persons: list) -> str: + if len(anniversary_persons) == 1: + anniversary_person = anniversary_persons[0]["name"] + completed_years = getdate().year - anniversary_persons[0]["date_of_joining"].year + return _("Today {0} completed {1} {2} at our Company! 🎉").format( + _(anniversary_person), completed_years, get_year_label(completed_years) + ) + + names_grouped_by_years = {} + + for person in anniversary_persons: + # Number of years completed at the company + completed_years = getdate().year - person["date_of_joining"].year + names_grouped_by_years.setdefault(completed_years, []).append(person["name"]) + + person_names_with_years = [ + _("{0} completed {1} {2}").format( + comma_sep(person_names, _("{0} & {1}"), False), years, get_year_label(years) + ) + for years, person_names in names_grouped_by_years.items() + ] + + # converts ["Jim", "Rim", "Dim"] to Jim, Rim & Dim + anniversary_person = comma_sep(person_names_with_years, _("{0} & {1}"), False) + return _("Today {0} at our Company! 🎉").format(_(anniversary_person)) + + +def get_year_label(years: int) -> str: + return _("year") if years == 1 else _("years") + + +def send_work_anniversary_reminder( + recipients, + reminder_text, + anniversary_persons, + message, + sender=None, +): + frappe.sendmail( + sender=sender, + recipients=recipients, + subject=_("Work Anniversary Reminder"), + template="anniversary_reminder", + args=dict( + reminder_text=reminder_text, + anniversary_persons=anniversary_persons, + message=message, + ), + header=_("Work Anniversary Reminder"), + ) + + +def get_sender_email() -> str | None: + return frappe.db.get_single_value("HR Settings", "sender_email") diff --git a/apps/erpnext/src/hrms/hrms/controllers/tests/test_employee_reminders.py b/apps/erpnext/src/hrms/hrms/controllers/tests/test_employee_reminders.py new file mode 100644 index 000000000..1af8a5e38 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/controllers/tests/test_employee_reminders.py @@ -0,0 +1,265 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +from datetime import timedelta + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_months, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.controllers.employee_reminders import send_holidays_reminder_in_advance +from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import ( + create_holiday_list_assignment, +) +from hrms.hr.doctype.hr_settings.hr_settings import set_proceed_with_frequency_change +from hrms.hr.utils import get_holidays_for_employee + + +class TestEmployeeReminders(IntegrationTestCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + from erpnext.setup.doctype.holiday_list.test_holiday_list import make_holiday_list + + # Create a test holiday list + test_holiday_dates = cls.get_test_holiday_dates() + test_holiday_list1 = make_holiday_list( + "TestHolidayRemindersList", + holiday_dates=[ + {"holiday_date": test_holiday_dates[0], "description": "test holiday1"}, + {"holiday_date": test_holiday_dates[1], "description": "test holiday2"}, + {"holiday_date": test_holiday_dates[2], "description": "test holiday3", "weekly_off": 1}, + {"holiday_date": test_holiday_dates[3], "description": "test holiday4"}, + {"holiday_date": test_holiday_dates[4], "description": "test holiday5"}, + {"holiday_date": test_holiday_dates[5], "description": "test holiday6"}, + ], + from_date=getdate() - timedelta(days=10), + to_date=getdate() + timedelta(weeks=5), + ) + + test_employee = frappe.get_doc("Employee", make_employee("test@gopher.io", company="_Test Company")) + + # Attach the holiday list to employee + create_holiday_list_assignment("Employee", test_employee.name, test_holiday_list1.name) + + # Attach to class + cls.test_employee = test_employee + cls.test_holiday_dates = test_holiday_dates + + # Employee without holidays in this month/week + test_employee_2 = make_employee("test@empwithoutholiday.io", company="_Test Company") + test_employee_2 = frappe.get_doc("Employee", test_employee_2) + + test_holiday_list2 = make_holiday_list( + "TestHolidayRemindersList2", + holiday_dates=[ + {"holiday_date": add_months(getdate(), 1), "description": "test holiday1"}, + ], + from_date=add_months(getdate(), -2), + to_date=add_months(getdate(), 2), + ) + create_holiday_list_assignment("Employee", test_employee_2.name, test_holiday_list2.name) + cls.test_employee_2 = test_employee_2 + cls.holiday_list_2 = test_holiday_list2 + + @classmethod + def get_test_holiday_dates(cls): + today_date = getdate() + return [ + today_date, + today_date - timedelta(days=4), + today_date - timedelta(days=3), + today_date + timedelta(days=1), + today_date + timedelta(days=3), + today_date + timedelta(weeks=3), + ] + + def setUp(self): + # Clear Email Queue + frappe.db.sql("delete from `tabEmail Queue`") + frappe.db.sql("delete from `tabEmail Queue Recipient`") + + def test_is_holiday(self): + from erpnext.setup.doctype.employee.employee import is_holiday + + self.assertTrue(is_holiday(self.test_employee.name)) + self.assertTrue(is_holiday(self.test_employee.name, date=self.test_holiday_dates[1])) + self.assertFalse(is_holiday(self.test_employee.name, date=getdate() - timedelta(days=1))) + + # Test weekly_off holidays + self.assertTrue(is_holiday(self.test_employee.name, date=self.test_holiday_dates[2])) + self.assertFalse( + is_holiday(self.test_employee.name, date=self.test_holiday_dates[2], only_non_weekly=True) + ) + + # Test with descriptions + has_holiday, descriptions = is_holiday(self.test_employee.name, with_description=True) + self.assertTrue(has_holiday) + self.assertTrue("test holiday1" in descriptions) + + def test_birthday_reminders(self): + employee = frappe.get_doc("Employee", frappe.db.sql_list("select name from tabEmployee limit 1")[0]) + employee.date_of_birth = "1992" + frappe.utils.nowdate()[4:] + employee.company_email = "test@example.com" + employee.company = "_Test Company" + employee.save() + + from hrms.controllers.employee_reminders import ( + get_employees_who_are_born_today, + send_birthday_reminders, + ) + + employees_born_today = get_employees_who_are_born_today() + self.assertTrue(employees_born_today.get("_Test Company")) + + hr_settings = frappe.get_doc("HR Settings", "HR Settings") + hr_settings.send_birthday_reminders = 1 + hr_settings.save() + + send_birthday_reminders() + + email_queue = frappe.db.sql("""select * from `tabEmail Queue`""", as_dict=True) + self.assertTrue("Subject: Birthday Reminder" in email_queue[0].message) + + def test_work_anniversary_reminders(self): + from hrms.controllers.employee_reminders import ( + get_employees_having_an_event_today, + send_work_anniversary_reminders, + ) + + make_employee( + "test_emp_work_anniversary@gmail.com", + company="_Test Company", + date_of_joining=frappe.utils.add_years(getdate(), -2), + ) + + employees_having_work_anniversary = get_employees_having_an_event_today("work_anniversary") + employees = employees_having_work_anniversary.get("_Test Company") or [] + user_ids = [] + for entry in employees: + user_ids.append(entry.user_id) + + self.assertTrue("test_emp_work_anniversary@gmail.com" in user_ids) + + hr_settings = frappe.get_doc("HR Settings", "HR Settings") + hr_settings.send_work_anniversary_reminders = 1 + hr_settings.save() + + send_work_anniversary_reminders() + + email_queue = frappe.db.sql("""select * from `tabEmail Queue`""", as_dict=True) + self.assertTrue("Subject: Work Anniversary Reminder" in email_queue[0].message) + + def test_work_anniversary_reminder_not_sent_for_0_years(self): + make_employee( + "test_work_anniversary_2@gmail.com", + date_of_joining=getdate(), + company="_Test Company", + ) + + from hrms.controllers.employee_reminders import get_employees_having_an_event_today + + employees_having_work_anniversary = get_employees_having_an_event_today("work_anniversary") + employees = employees_having_work_anniversary.get("_Test Company") or [] + user_ids = [] + for entry in employees: + user_ids.append(entry.user_id) + + self.assertTrue("test_work_anniversary_2@gmail.com" not in user_ids) + + def test_send_holidays_reminder_in_advance(self): + setup_hr_settings("Weekly") + + holidays = get_holidays_for_employee( + self.test_employee.get("name"), + getdate(), + getdate() + timedelta(days=3), + only_non_weekly=True, + raise_exception=False, + ) + + send_holidays_reminder_in_advance(self.test_employee.get("name"), holidays) + + email_queue = frappe.db.sql("""select * from `tabEmail Queue`""", as_dict=True) + self.assertEqual(len(email_queue), 1) + self.assertTrue("Holidays this Week." in email_queue[0].message) + + def test_advance_holiday_reminders_monthly(self): + from hrms.controllers.employee_reminders import send_reminders_in_advance_monthly + + setup_hr_settings("Monthly") + + # disable emp 2, set same holiday list + frappe.db.set_value( + "Employee", + self.test_employee_2.name, + {"status": "Left", "holiday_list": self.test_employee.holiday_list}, + ) + + send_reminders_in_advance_monthly() + email_queue = frappe.db.sql("""select * from `tabEmail Queue`""", as_dict=True) + self.assertTrue(len(email_queue) > 0) + + # even though emp 2 has holiday, non-active employees should not be recipients + recipients = frappe.db.get_all("Email Queue Recipient", pluck="recipient") + self.assertTrue(self.test_employee_2.user_id not in recipients) + + # teardown: enable emp 2 + frappe.db.set_value( + "Employee", + self.test_employee_2.name, + {"status": "Active", "holiday_list": self.holiday_list_2.name}, + ) + + def test_advance_holiday_reminders_weekly(self): + from hrms.controllers.employee_reminders import send_reminders_in_advance_weekly + + setup_hr_settings("Weekly") + + # disable emp 2, set same holiday list + frappe.db.set_value( + "Employee", + self.test_employee_2.name, + {"status": "Left", "holiday_list": self.test_employee.holiday_list}, + ) + + send_reminders_in_advance_weekly() + email_queue = frappe.db.sql("""select * from `tabEmail Queue`""", as_dict=True) + self.assertTrue(len(email_queue) > 0) + + # even though emp 2 has holiday, non-active employees should not be recipients + recipients = frappe.db.get_all("Email Queue Recipient", pluck="recipient") + self.assertTrue(self.test_employee_2.user_id not in recipients) + + # teardown: enable emp 2 + frappe.db.set_value( + "Employee", + self.test_employee_2.name, + {"status": "Active", "holiday_list": self.holiday_list_2.name}, + ) + + def test_reminder_not_sent_if_no_holdays(self): + setup_hr_settings("Monthly") + + # reminder not sent if there are no holidays + holidays = get_holidays_for_employee( + self.test_employee_2.get("name"), + getdate(), + getdate() + timedelta(days=3), + only_non_weekly=True, + raise_exception=False, + ) + send_holidays_reminder_in_advance(self.test_employee_2.get("name"), holidays) + email_queue = frappe.db.sql("""select * from `tabEmail Queue`""", as_dict=True) + self.assertEqual(len(email_queue), 0) + + +def setup_hr_settings(frequency=None): + # Get HR settings and enable advance holiday reminders + hr_settings = frappe.get_doc("HR Settings", "HR Settings") + hr_settings.send_holiday_reminders = 1 + set_proceed_with_frequency_change() + hr_settings.frequency = frequency or "Weekly" + hr_settings.save() diff --git a/apps/erpnext/src/hrms/hrms/desktop_icon/expenses.json b/apps/erpnext/src/hrms/hrms/desktop_icon/expenses.json new file mode 100644 index 000000000..8f5442258 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/desktop_icon/expenses.json @@ -0,0 +1,22 @@ +{ + "app": "hrms", + "creation": "2025-11-17 20:33:43.194261", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "", + "icon_type": "Link", + "idx": 0, + "label": "Expenses", + "link_to": "Expenses", + "link_type": "Workspace Sidebar", + "logo_url": "/assets/hrms/icons/desktop_icons/expense_claim.svg", + "modified": "2026-01-01 20:07:01.300710", + "modified_by": "Administrator", + "name": "Expenses", + "owner": "Administrator", + "parent_icon": "Frappe HR", + "restrict_removal": 0, + "roles": [], + "standard": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/desktop_icon/frappe_hr.json b/apps/erpnext/src/hrms/hrms/desktop_icon/frappe_hr.json new file mode 100644 index 000000000..3bdb5d63a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/desktop_icon/frappe_hr.json @@ -0,0 +1,19 @@ +{ + "app": "hrms", + "creation": "2025-11-17 20:33:43.167514", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon_type": "App", + "idx": 14, + "label": "Frappe HR", + "link": "/desk/people", + "link_type": "External", + "logo_url": "/assets/hrms/images/frappe-hr-logo.svg", + "modified": "2026-01-09 17:29:44.070361", + "modified_by": "Administrator", + "name": "Frappe HR", + "owner": "Administrator", + "roles": [], + "standard": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/desktop_icon/leaves.json b/apps/erpnext/src/hrms/hrms/desktop_icon/leaves.json new file mode 100644 index 000000000..e9cfd3b30 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/desktop_icon/leaves.json @@ -0,0 +1,22 @@ +{ + "app": "hrms", + "creation": "2025-11-17 20:33:43.197925", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "non-profit", + "icon_type": "Link", + "idx": 0, + "label": "Leaves", + "link_to": "Leaves", + "link_type": "Workspace Sidebar", + "logo_url": "/assets/hrms/icons/desktop_icons/leaves.svg", + "modified": "2026-01-01 20:07:01.290307", + "modified_by": "Administrator", + "name": "Leaves", + "owner": "Administrator", + "parent_icon": "Frappe HR", + "restrict_removal": 0, + "roles": [], + "standard": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/desktop_icon/payroll.json b/apps/erpnext/src/hrms/hrms/desktop_icon/payroll.json new file mode 100644 index 000000000..7df9a863b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/desktop_icon/payroll.json @@ -0,0 +1,22 @@ +{ + "app": "hrms", + "creation": "2025-11-17 20:33:43.192437", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "accounting", + "icon_type": "Link", + "idx": 0, + "label": "Payroll", + "link_to": "Payroll", + "link_type": "Workspace Sidebar", + "logo_url": "/assets/hrms/icons/desktop_icons/salary_payout.svg", + "modified": "2026-01-01 20:07:01.308523", + "modified_by": "Administrator", + "name": "Payroll", + "owner": "Administrator", + "parent_icon": "Frappe HR", + "restrict_removal": 0, + "roles": [], + "standard": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/desktop_icon/people.json b/apps/erpnext/src/hrms/hrms/desktop_icon/people.json new file mode 100644 index 000000000..112959edf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/desktop_icon/people.json @@ -0,0 +1,23 @@ +{ + "app": "hrms", + "creation": "2025-11-19 13:17:44.832657", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "square-user-round", + "icon_type": "Link", + "idx": 0, + "label": "People", + "link_to": "People", + "link_type": "Workspace Sidebar", + "logo_url": "/assets/hrms/icons/desktop_icons/people.svg", + "modified": "2026-01-12 15:18:41.611893", + "modified_by": "Administrator", + "name": "People", + "owner": "Administrator", + "parent_icon": "Frappe HR", + "restrict_removal": 0, + "roles": [], + "sidebar": "", + "standard": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/desktop_icon/performance.json b/apps/erpnext/src/hrms/hrms/desktop_icon/performance.json new file mode 100644 index 000000000..f8801c591 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/desktop_icon/performance.json @@ -0,0 +1,22 @@ +{ + "app": "hrms", + "creation": "2025-11-17 20:33:43.196211", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "star", + "icon_type": "Link", + "idx": 0, + "label": "Performance", + "link_to": "Performance", + "link_type": "Workspace Sidebar", + "logo_url": "/assets/hrms/icons/desktop_icons/performance.svg", + "modified": "2026-01-01 20:07:01.295447", + "modified_by": "Administrator", + "name": "Performance", + "owner": "Administrator", + "parent_icon": "Frappe HR", + "restrict_removal": 0, + "roles": [], + "standard": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/desktop_icon/recruitment.json b/apps/erpnext/src/hrms/hrms/desktop_icon/recruitment.json new file mode 100644 index 000000000..52679bf0b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/desktop_icon/recruitment.json @@ -0,0 +1,22 @@ +{ + "app": "hrms", + "creation": "2025-11-17 20:33:43.202873", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "users", + "icon_type": "Link", + "idx": 0, + "label": "Recruitment", + "link_to": "Recruitment", + "link_type": "Workspace Sidebar", + "logo_url": "/assets/hrms/icons/desktop_icons/recruitment.svg", + "modified": "2026-01-01 20:07:01.259701", + "modified_by": "Administrator", + "name": "Recruitment", + "owner": "Administrator", + "parent_icon": "Frappe HR", + "restrict_removal": 0, + "roles": [], + "standard": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/desktop_icon/shift_&_attendance.json b/apps/erpnext/src/hrms/hrms/desktop_icon/shift_&_attendance.json new file mode 100644 index 000000000..b0ccbd6e9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/desktop_icon/shift_&_attendance.json @@ -0,0 +1,22 @@ +{ + "app": "hrms", + "creation": "2025-11-17 20:33:43.199386", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "milestone", + "icon_type": "Link", + "idx": 0, + "label": "Shift & Attendance", + "link_to": "Shift & Attendance", + "link_type": "Workspace Sidebar", + "logo_url": "/assets/hrms/icons/desktop_icons/shift-attendence.svg", + "modified": "2026-01-01 20:07:01.284302", + "modified_by": "Administrator", + "name": "Shift & Attendance", + "owner": "Administrator", + "parent_icon": "Frappe HR", + "restrict_removal": 0, + "roles": [], + "standard": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/desktop_icon/tax_&_benefits.json b/apps/erpnext/src/hrms/hrms/desktop_icon/tax_&_benefits.json new file mode 100644 index 000000000..9163c0534 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/desktop_icon/tax_&_benefits.json @@ -0,0 +1,22 @@ +{ + "app": "hrms", + "creation": "2025-11-17 20:33:43.190559", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "money-coins-1", + "icon_type": "Link", + "idx": 0, + "label": "Tax & Benefits", + "link_to": "Tax & Benefits", + "link_type": "Workspace Sidebar", + "logo_url": "/assets/hrms/icons/desktop_icons/tax-benefits.svg", + "modified": "2026-01-01 20:07:01.316510", + "modified_by": "Administrator", + "name": "Tax & Benefits", + "owner": "Administrator", + "parent_icon": "Frappe HR", + "restrict_removal": 0, + "roles": [], + "standard": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/desktop_icon/tenure.json b/apps/erpnext/src/hrms/hrms/desktop_icon/tenure.json new file mode 100644 index 000000000..a680de6e5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/desktop_icon/tenure.json @@ -0,0 +1,22 @@ +{ + "app": "hrms", + "creation": "2025-11-17 20:33:43.201465", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "customer", + "icon_type": "Link", + "idx": 0, + "label": "Tenure", + "link_to": "Tenure", + "link_type": "Workspace Sidebar", + "logo_url": "/assets/hrms/icons/desktop_icons/employee_lifecycle.svg", + "modified": "2026-01-01 20:07:01.267686", + "modified_by": "Administrator", + "name": "Tenure", + "owner": "Administrator", + "parent_icon": "Frappe HR", + "restrict_removal": 0, + "roles": [], + "standard": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hooks.py b/apps/erpnext/src/hrms/hrms/hooks.py new file mode 100644 index 000000000..d4faa4ff0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hooks.py @@ -0,0 +1,376 @@ +app_name = "hrms" +app_title = "Frappe HR" +app_publisher = "Frappe Technologies Pvt. Ltd." +app_description = "Modern HR and Payroll Software" +app_email = "contact@frappe.io" +app_license = "GNU General Public License (v3)" +required_apps = ["frappe/erpnext"] +source_link = "http://github.com/frappe/hrms" +app_logo_url = "/assets/hrms/images/frappe-hr-logo.svg" +app_home = "/desk/people" + +add_to_apps_screen = [ + { + "name": "hrms", + "logo": "/assets/hrms/images/frappe-hr-logo.svg", + "title": "Frappe HR", + "route": "/desk/people", + "has_permission": "hrms.hr.utils.check_app_permission", + } +] + +# Includes in +# ------------------ + +# include js, css files in header of desk.html +# app_include_css = "/assets/hrms/css/hrms.css" +app_include_js = [ + "hrms.bundle.js", +] +app_include_css = "hrms.bundle.css" + +# website + +# include js, css files in header of web template +# web_include_css = "/assets/hrms/css/hrms.css" +# web_include_js = "/assets/hrms/js/hrms.js" + +# include custom scss in every website theme (without file extension ".scss") +# website_theme_scss = "hrms/public/scss/website" + +# include js, css files in header of web form +# webform_include_js = {"doctype": "public/js/doctype.js"} +# webform_include_css = {"doctype": "public/css/doctype.css"} + +# include js in page +# page_js = {"page" : "public/js/file.js"} + +# include js in doctype views +doctype_js = { + "Employee": "public/js/erpnext/employee.js", + "Company": "public/js/erpnext/company.js", + "Department": "public/js/erpnext/department.js", + "Timesheet": "public/js/erpnext/timesheet.js", + "Payment Entry": "public/js/erpnext/payment_entry.js", + "Journal Entry": "public/js/erpnext/journal_entry.js", + "Delivery Trip": "public/js/erpnext/delivery_trip.js", + "Bank Transaction": "public/js/erpnext/bank_transaction.js", +} +# doctype_list_js = {"doctype" : "public/js/doctype_list.js"} +# doctype_tree_js = {"doctype" : "public/js/doctype_tree.js"} +# doctype_calendar_js = {"doctype" : "public/js/doctype_calendar.js"} + +# Home Pages +# ---------- + +# application home page (will override Website Settings) +# home_page = "login" + +# website user home page (by Role) +# role_home_page = { +# "Role": "home_page" +# } + +calendars = ["Leave Application"] + +# Generators +# ---------- + +# automatically create page for each record of this doctype +website_generators = ["Job Opening"] + +website_route_rules = [ + {"from_route": "/hrms/", "to_route": "hrms"}, + {"from_route": "/hr/", "to_route": "roster"}, +] +# Jinja +# ---------- + +# add methods and filters to jinja environment +jinja = { + "methods": [ + "hrms.utils.get_country", + ], +} + +# Installation +# ------------ + +# before_install = "hrms.install.before_install" +after_install = "hrms.install.after_install" +after_migrate = "hrms.setup.update_select_perm_after_install" + +setup_wizard_complete = "hrms.subscription_utils.update_erpnext_access" + +# Uninstallation +# ------------ + +before_uninstall = "hrms.uninstall.before_uninstall" +# after_uninstall = "hrms.uninstall.after_uninstall" + +# Integration Setup +# ------------------ +# To set up dependencies/integrations with other apps +# Name of the app being installed is passed as an argument + +# before_app_install = "hrms.utils.before_app_install" +after_app_install = "hrms.setup.after_app_install" + +# Integration Cleanup +# ------------------- +# To clean up dependencies/integrations with other apps +# Name of the app being uninstalled is passed as an argument + +before_app_uninstall = "hrms.setup.before_app_uninstall" +# after_app_uninstall = "hrms.utils.after_app_uninstall" + +# Desk Notifications +# ------------------ +# See frappe.core.notifications.get_notification_config + +# notification_config = "hrms.notifications.get_notification_config" + +# Permissions +# ----------- +# Permissions evaluated in scripted ways + +# permission_query_conditions = { +# "Event": "frappe.desk.doctype.event.event.get_permission_query_conditions", +# } +# +# has_permission = { +# "Event": "frappe.desk.doctype.event.event.has_permission", +# } + +has_upload_permission = {"Employee": "erpnext.setup.doctype.employee.employee.has_upload_permission"} + +# DocType Class +# --------------- +# Override standard doctype classes + +override_doctype_class = { + "Employee": "hrms.overrides.employee_master.EmployeeMaster", + "Timesheet": "hrms.overrides.employee_timesheet.EmployeeTimesheet", + "Payment Entry": "hrms.overrides.employee_payment_entry.EmployeePaymentEntry", + "Project": "hrms.overrides.employee_project.EmployeeProject", +} + +# Document Events +# --------------- +# Hook on document methods and events + +doc_events = { + "User": { + "validate": [ + "erpnext.setup.doctype.employee.employee.validate_employee_role", + "hrms.overrides.employee_master.update_approver_user_roles", + ], + }, + "Company": { + "validate": "hrms.overrides.company.validate_default_accounts", + "on_update": [ + "hrms.overrides.company.make_company_fixtures", + "hrms.overrides.company.set_default_hr_accounts", + ], + "on_trash": "hrms.overrides.company.handle_linked_docs", + }, + "Holiday List": { + "on_update": "hrms.utils.holiday_list.invalidate_cache", + "on_trash": "hrms.utils.holiday_list.invalidate_cache", + }, + "Timesheet": {"validate": "hrms.hr.utils.validate_active_employee"}, + "Payment Entry": { + "on_submit": "hrms.hr.doctype.expense_claim.expense_claim.update_payment_for_expense_claim", + "on_cancel": "hrms.hr.doctype.expense_claim.expense_claim.update_payment_for_expense_claim", + "on_update_after_submit": "hrms.hr.doctype.expense_claim.expense_claim.update_payment_for_expense_claim", + }, + "Unreconcile Payment": { + "on_submit": "hrms.hr.doctype.expense_claim.expense_claim.update_payment_for_expense_claim", + }, + "Journal Entry": { + "validate": "hrms.hr.doctype.expense_claim.expense_claim.validate_expense_claim_in_jv", + "on_submit": [ + "hrms.hr.doctype.expense_claim.expense_claim.update_payment_for_expense_claim", + "hrms.hr.doctype.full_and_final_statement.full_and_final_statement.update_full_and_final_statement_status", + "hrms.payroll.doctype.salary_withholding.salary_withholding.update_salary_withholding_payment_status", + ], + "on_update_after_submit": "hrms.hr.doctype.expense_claim.expense_claim.update_payment_for_expense_claim", + "on_cancel": [ + "hrms.hr.doctype.expense_claim.expense_claim.update_payment_for_expense_claim", + "hrms.payroll.doctype.salary_slip.salary_slip.unlink_ref_doc_from_salary_slip", + "hrms.hr.doctype.full_and_final_statement.full_and_final_statement.update_full_and_final_statement_status", + "hrms.payroll.doctype.salary_withholding.salary_withholding.update_salary_withholding_payment_status", + ], + }, + "Loan": {"validate": "hrms.hr.utils.validate_loan_repay_from_salary"}, + "Employee": { + "validate": "hrms.overrides.employee_master.validate_onboarding_process", + "on_update": [ + "hrms.overrides.employee_master.update_approver_role", + "hrms.overrides.employee_master.publish_update", + ], + "after_insert": "hrms.overrides.employee_master.update_job_applicant_and_offer", + "on_trash": "hrms.overrides.employee_master.update_employee_transfer", + "after_delete": "hrms.overrides.employee_master.publish_update", + }, + "Project": {"validate": "hrms.controllers.employee_boarding_controller.update_employee_boarding_status"}, + "Task": {"on_update": "hrms.controllers.employee_boarding_controller.update_task"}, +} + +# Scheduled Tasks +# --------------- + +scheduler_events = { + "all": [ + "hrms.hr.doctype.interview.interview.send_interview_reminder", + ], + "hourly": [ + "hrms.hr.doctype.daily_work_summary_group.daily_work_summary_group.trigger_emails", + ], + "hourly_long": [ + "hrms.hr.doctype.shift_type.shift_type.update_last_sync_of_checkin", + "hrms.hr.doctype.shift_type.shift_type.process_auto_attendance_for_all_shifts", + "hrms.hr.doctype.shift_schedule_assignment.shift_schedule_assignment.process_auto_shift_creation", + ], + "daily": [ + "hrms.controllers.employee_reminders.send_birthday_reminders", + "hrms.controllers.employee_reminders.send_work_anniversary_reminders", + "hrms.hr.doctype.daily_work_summary_group.daily_work_summary_group.send_summary", + "hrms.hr.doctype.interview.interview.send_daily_feedback_reminder", + "hrms.hr.doctype.job_opening.job_opening.close_expired_job_openings", + ], + "daily_long": [ + "hrms.hr.doctype.leave_ledger_entry.leave_ledger_entry.process_expired_allocation", + "hrms.hr.utils.generate_leave_encashment", + "hrms.hr.utils.allocate_earned_leaves", + ], + "weekly": ["hrms.controllers.employee_reminders.send_reminders_in_advance_weekly"], + "monthly": ["hrms.controllers.employee_reminders.send_reminders_in_advance_monthly"], +} + +advance_payment_payable_doctypes = ["Leave Encashment", "Gratuity", "Employee Advance"] + +invoice_doctypes = ["Expense Claim"] + +period_closing_doctypes = ["Payroll Entry"] + +accounting_dimension_doctypes = [ + "Expense Claim", + "Expense Claim Detail", + "Expense Taxes and Charges", + "Payroll Entry", + "Leave Encashment", +] + +bank_reconciliation_doctypes = ["Expense Claim"] + +# Testing +# ------- + +before_tests = "hrms.tests.test_utils.before_tests" + +# Overriding Methods +# ----------------------------- + +# get matching queries for Bank Reconciliation +get_matching_queries = "hrms.hr.utils.get_matching_queries" + +regional_overrides = { + "India": { + "hrms.hr.utils.calculate_annual_eligible_hra_exemption": "hrms.regional.india.utils.calculate_annual_eligible_hra_exemption", + "hrms.hr.utils.calculate_hra_exemption_for_period": "hrms.regional.india.utils.calculate_hra_exemption_for_period", + "hrms.hr.utils.calculate_tax_with_marginal_relief": "hrms.regional.india.utils.calculate_tax_with_marginal_relief", + }, +} + +# ERPNext doctypes for Global Search +global_search_doctypes = { + "Default": [ + {"doctype": "Salary Slip", "index": 19}, + {"doctype": "Leave Application", "index": 20}, + {"doctype": "Expense Claim", "index": 21}, + {"doctype": "Employee Grade", "index": 37}, + {"doctype": "Job Opening", "index": 39}, + {"doctype": "Job Applicant", "index": 40}, + {"doctype": "Job Offer", "index": 41}, + {"doctype": "Salary Structure Assignment", "index": 42}, + {"doctype": "Appraisal", "index": 43}, + ], +} + +# override_whitelisted_methods = { +# "frappe.desk.doctype.event.event.get_events": "hrms.event.get_events" +# } +# +# each overriding function accepts a `data` argument; +# generated from the base implementation of the doctype dashboard, +# along with any modifications made in other Frappe apps +override_doctype_dashboards = { + "Employee": "hrms.overrides.dashboard_overrides.get_dashboard_for_employee", + "Holiday List": "hrms.overrides.dashboard_overrides.get_dashboard_for_holiday_list", + "Task": "hrms.overrides.dashboard_overrides.get_dashboard_for_project", + "Project": "hrms.overrides.dashboard_overrides.get_dashboard_for_project", + "Timesheet": "hrms.overrides.dashboard_overrides.get_dashboard_for_timesheet", + "Bank Account": "hrms.overrides.dashboard_overrides.get_dashboard_for_bank_account", +} + +# exempt linked doctypes from being automatically cancelled +# +# auto_cancel_exempted_doctypes = ["Auto Repeat"] + +ignore_links_on_delete = ["PWA Notification"] + +# User Data Protection +# -------------------- + +# user_data_fields = [ +# { +# "doctype": "{doctype_1}", +# "filter_by": "{filter_by}", +# "redact_fields": ["{field_1}", "{field_2}"], +# "partial": 1, +# }, +# { +# "doctype": "{doctype_2}", +# "filter_by": "{filter_by}", +# "partial": 1, +# }, +# { +# "doctype": "{doctype_3}", +# "strict": False, +# }, +# { +# "doctype": "{doctype_4}" +# } +# ] + +# Authentication and authorization +# -------------------------------- + +# auth_hooks = [ +# "hrms.auth.validate" +# ] + +# Translation +# -------------------------------- + +# Make link fields search translated document names for these DocTypes +# Recommended only for DocTypes which have limited documents with untranslated names +# For example: Role, Gender, etc. +# translated_search_doctypes = [] + +company_data_to_be_ignored = [ + "Salary Component Account", + "Salary Structure", + "Salary Structure Assignment", + "Payroll Period", + "Income Tax Slab", + "Leave Period", + "Leave Policy Assignment", + "Employee Onboarding Template", + "Employee Separation Template", +] + +# List of apps whose translatable strings should be excluded from this app's translations. +ignore_translatable_strings_from = ["frappe", "erpnext"] +employee_holiday_list = ["hrms.utils.holiday_list.get_holiday_list_for_employee"] diff --git a/apps/erpnext/src/hrms/hrms/hr/README.md b/apps/erpnext/src/hrms/hrms/hr/README.md new file mode 100644 index 000000000..5d1ae6e4b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/README.md @@ -0,0 +1,6 @@ +Key features: + +- Leave and Attendance +- Payroll +- Appraisal +- Expense Claim \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/__init__.py b/apps/erpnext/src/hrms/hrms/hr/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/appraisal_overview/appraisal_overview.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/appraisal_overview/appraisal_overview.json new file mode 100644 index 000000000..1914ccc56 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/appraisal_overview/appraisal_overview.json @@ -0,0 +1,32 @@ +{ + "chart_name": "Appraisal Overview", + "chart_type": "Report", + "creation": "2026-01-10 14:50:41.278540", + "currency": "INR", + "docstatus": 0, + "doctype": "Dashboard Chart", + "dynamic_filters_json": "{}", + "filters_json": "{\"company\":\"The Coffee Company\"}", + "group_by_type": "Count", + "idx": 0, + "is_public": 0, + "is_standard": 1, + "modified": "2026-01-10 15:16:33.659637", + "modified_by": "Administrator", + "module": "HR", + "name": "Appraisal Overview", + "number_of_groups": 0, + "owner": "Administrator", + "report_name": "Appraisal Overview", + "roles": [ + {} + ], + "show_values_over_chart": 0, + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Line", + "use_report_chart": 1, + "x_field": "", + "y_axis": [] +} diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/attendance_count/attendance_count.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/attendance_count/attendance_count.json new file mode 100644 index 000000000..7790614c4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/attendance_count/attendance_count.json @@ -0,0 +1,29 @@ +{ + "chart_name": "Attendance Count", + "chart_type": "Report", + "creation": "2020-07-22 11:56:32.730068", + "custom_options": "{\n\t\t\"type\": \"line\",\n\t\t\"axisOptions\": {\n\t\t\t\"shortenYAxisNumbers\": 1\n\t\t},\n\t\t\"tooltipOptions\": {}\n\t}", + "docstatus": 0, + "doctype": "Dashboard Chart", + "dynamic_filters_json": "{\"month\":\"frappe.datetime.str_to_obj(frappe.datetime.get_today()).getMonth() + 1\",\"year\":\"frappe.datetime.str_to_obj(frappe.datetime.get_today()).getFullYear();\",\"company\":\"frappe.defaults.get_user_default(\\\"Company\\\")\"}", + "filters_json": "{\"filter_based_on\":\"Month\",\"summarized_view\":0}", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "modified": "2025-10-24 11:15:18.881068", + "modified_by": "Administrator", + "module": "HR", + "name": "Attendance Count", + "number_of_groups": 0, + "owner": "Administrator", + "report_name": "Monthly Attendance Sheet", + "roles": [], + "show_values_over_chart": 0, + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Line", + "use_report_chart": 1, + "y_axis": [] +} diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/claims_by_type/claims_by_type.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/claims_by_type/claims_by_type.json new file mode 100644 index 000000000..0e815e5ba --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/claims_by_type/claims_by_type.json @@ -0,0 +1,33 @@ +{ + "based_on": "", + "chart_name": "Claims by Type", + "chart_type": "Group By", + "creation": "2022-08-31 23:04:43.377345", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Expense Claim Detail", + "dynamic_filters_json": "[]", + "filters_json": "[]", + "group_by_based_on": "expense_type", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-09-16 11:36:29.484579", + "modified": "2022-09-16 11:39:08.205987", + "modified_by": "Administrator", + "module": "HR", + "name": "Claims by Type", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "Expense Claim", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_employee_count/department_wise_employee_count.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_employee_count/department_wise_employee_count.json new file mode 100644 index 000000000..930bd5e73 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_employee_count/department_wise_employee_count.json @@ -0,0 +1,30 @@ +{ + "chart_name": "Department Wise Employee Count", + "chart_type": "Group By", + "creation": "2020-07-22 11:56:32.760730", + "custom_options": "", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Employee", + "dynamic_filters_json": "[[\"Employee\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee\",\"status\",\"=\",\"Active\"]]", + "group_by_based_on": "department", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-22 14:08:17.017113", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Department Wise Employee Count", + "number_of_groups": 0, + "owner": "Administrator", + "roles": [], + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_expense_claims/department_wise_expense_claims.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_expense_claims/department_wise_expense_claims.json new file mode 100644 index 000000000..4f4098a7d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_expense_claims/department_wise_expense_claims.json @@ -0,0 +1,33 @@ +{ + "based_on": "", + "chart_name": "Department wise Expense Claims", + "chart_type": "Group By", + "creation": "2022-08-31 23:06:51.144716", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Expense Claim", + "dynamic_filters_json": "[[\"Expense Claim\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Expense Claim\",\"docstatus\",\"=\",\"1\"]]", + "group_by_based_on": "department", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-09-16 12:36:29.444007", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Department wise Expense Claims", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Bar", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_openings/department_wise_openings.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_openings/department_wise_openings.json new file mode 100644 index 000000000..42b5385c1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_openings/department_wise_openings.json @@ -0,0 +1,31 @@ +{ + "aggregate_function_based_on": "planned_vacancies", + "chart_name": "Department Wise Openings", + "chart_type": "Group By", + "creation": "2020-07-22 11:56:32.849775", + "custom_options": "", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Job Opening", + "dynamic_filters_json": "[[\"Job Opening\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Job Opening\",\"status\",\"=\",\"Open\"]]", + "group_by_based_on": "department", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-21 23:19:31.637348", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Department Wise Openings", + "number_of_groups": 0, + "owner": "Administrator", + "roles": [], + "time_interval": "Monthly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Bar", + "use_report_chart": 0, + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_timesheet_hours/department_wise_timesheet_hours.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_timesheet_hours/department_wise_timesheet_hours.json new file mode 100644 index 000000000..30e217266 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/department_wise_timesheet_hours/department_wise_timesheet_hours.json @@ -0,0 +1,34 @@ +{ + "aggregate_function_based_on": "total_hours", + "based_on": "", + "chart_name": "Department wise Timesheet Hours", + "chart_type": "Group By", + "creation": "2022-08-21 17:32:09.625319", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Timesheet", + "dynamic_filters_json": "[[\"Timesheet\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Timesheet\",\"start_date\",\"Timespan\",\"this month\"],[\"Timesheet\",\"docstatus\",\"=\",\"1\"]]", + "group_by_based_on": "department", + "group_by_type": "Sum", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-21 17:56:03.184928", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Department wise Timesheet Hours", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Bar", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/designation_wise_employee_count/designation_wise_employee_count.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/designation_wise_employee_count/designation_wise_employee_count.json new file mode 100644 index 000000000..5ffb68c34 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/designation_wise_employee_count/designation_wise_employee_count.json @@ -0,0 +1,30 @@ +{ + "chart_name": "Designation Wise Employee Count", + "chart_type": "Group By", + "creation": "2020-07-22 11:56:32.790337", + "custom_options": "", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Employee", + "dynamic_filters_json": "[[\"Employee\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee\",\"status\",\"=\",\"Active\"]]", + "group_by_based_on": "designation", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-22 12:33:54.631648", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Designation Wise Employee Count", + "number_of_groups": 0, + "owner": "Administrator", + "roles": [], + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/designation_wise_openings/designation_wise_openings.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/designation_wise_openings/designation_wise_openings.json new file mode 100644 index 000000000..e4c4cfe2f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/designation_wise_openings/designation_wise_openings.json @@ -0,0 +1,31 @@ +{ + "aggregate_function_based_on": "planned_vacancies", + "chart_name": "Designation Wise Openings", + "chart_type": "Group By", + "creation": "2020-07-22 11:56:32.820217", + "custom_options": "", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Job Opening", + "dynamic_filters_json": "[[\"Job Opening\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Job Opening\",\"status\",\"=\",\"Open\"]]", + "group_by_based_on": "designation", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-20 23:20:41.683553", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Designation Wise Openings", + "number_of_groups": 0, + "owner": "Administrator", + "roles": [], + "time_interval": "Monthly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Bar", + "use_report_chart": 0, + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employee_advance_status/employee_advance_status.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employee_advance_status/employee_advance_status.json new file mode 100644 index 000000000..0a75b046d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employee_advance_status/employee_advance_status.json @@ -0,0 +1,33 @@ +{ + "based_on": "", + "chart_name": "Employee Advance Status", + "chart_type": "Group By", + "creation": "2022-08-31 23:06:16.063039", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Employee Advance", + "dynamic_filters_json": "[[\"Employee Advance\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee Advance\",\"docstatus\",\"=\",\"1\"]]", + "group_by_based_on": "status", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-09-16 12:36:29.430589", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Advance Status", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_age/employees_by_age.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_age/employees_by_age.json new file mode 100644 index 000000000..d529e61a2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_age/employees_by_age.json @@ -0,0 +1,33 @@ +{ + "based_on": "", + "chart_name": "Employees by Age", + "chart_type": "Custom", + "creation": "2022-08-22 19:07:51.906347", + "custom_options": "{\n\t\"colors\": [\"#7cd6fd\"],\n\t\"barOptions\": {\"spaceRatio\": 0.5}\n}", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "", + "dynamic_filters_json": "{\"company\":\"frappe.defaults.get_user_default(\\\"Company\\\")\"}", + "filters_json": "{}", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-22 19:00:02.464180", + "modified": "2022-08-22 19:11:20.076166", + "modified_by": "Administrator", + "module": "HR", + "name": "Employees by Age", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "Employees by Age", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Bar", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_branch/employees_by_branch.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_branch/employees_by_branch.json new file mode 100644 index 000000000..e1bd7fbb3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_branch/employees_by_branch.json @@ -0,0 +1,30 @@ +{ + "chart_name": "Employees by Branch", + "chart_type": "Group By", + "creation": "2022-08-22 12:33:43.241006", + "custom_options": "", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Employee", + "dynamic_filters_json": "[[\"Employee\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee\",\"status\",\"=\",\"Active\"]]", + "group_by_based_on": "branch", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-22 12:25:47.733581", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Employees by Branch", + "number_of_groups": 0, + "owner": "Administrator", + "roles": [], + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_grade/employees_by_grade.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_grade/employees_by_grade.json new file mode 100644 index 000000000..34561a2e7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_grade/employees_by_grade.json @@ -0,0 +1,30 @@ +{ + "chart_name": "Employees by Grade", + "chart_type": "Group By", + "creation": "2022-08-22 12:33:23.767559", + "custom_options": "", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Employee", + "dynamic_filters_json": "[[\"Employee\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee\",\"status\",\"=\",\"Active\"]]", + "group_by_based_on": "grade", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-22 12:25:47.733581", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Employees by Grade", + "number_of_groups": 0, + "owner": "Administrator", + "roles": [], + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_type/employees_by_type.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_type/employees_by_type.json new file mode 100644 index 000000000..07a650908 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/employees_by_type/employees_by_type.json @@ -0,0 +1,30 @@ +{ + "chart_name": "Employees by Type", + "chart_type": "Group By", + "creation": "2022-08-22 13:49:59.343893", + "custom_options": "", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Employee", + "dynamic_filters_json": "[[\"Employee\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee\",\"status\",\"=\",\"Active\"]]", + "group_by_based_on": "employment_type", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-22 13:45:38.913766", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Employees by Type", + "number_of_groups": 0, + "owner": "Administrator", + "roles": [], + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/expense_claims/expense_claims.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/expense_claims/expense_claims.json new file mode 100644 index 000000000..51e84f721 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/expense_claims/expense_claims.json @@ -0,0 +1,33 @@ +{ + "based_on": "posting_date", + "chart_name": "Expense Claims", + "chart_type": "Sum", + "color": "#449CF0", + "creation": "2022-08-21 14:07:24.120739", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Expense Claim", + "dynamic_filters_json": "[[\"Expense Claim\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Expense Claim\",\"docstatus\",\"=\",\"1\"]]", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-09-16 11:36:29.292891", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Expense Claims", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Monthly", + "timeseries": 1, + "timespan": "Last Year", + "type": "Line", + "use_report_chart": 0, + "value_based_on": "total_sanctioned_amount", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/gender_diversity_ratio/gender_diversity_ratio.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/gender_diversity_ratio/gender_diversity_ratio.json new file mode 100644 index 000000000..3a4615c94 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/gender_diversity_ratio/gender_diversity_ratio.json @@ -0,0 +1,29 @@ +{ + "chart_name": "Gender Diversity Ratio", + "chart_type": "Group By", + "creation": "2020-07-22 11:56:32.667291", + "custom_options": "", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Employee", + "dynamic_filters_json": "[[\"Employee\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee\",\"status\",\"=\",\"Active\"]]", + "group_by_based_on": "gender", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2020-07-22 14:27:40.143783", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Gender Diversity Ratio", + "number_of_groups": 0, + "owner": "Administrator", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/grievance_type/grievance_type.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/grievance_type/grievance_type.json new file mode 100644 index 000000000..9149b9067 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/grievance_type/grievance_type.json @@ -0,0 +1,32 @@ +{ + "based_on": "", + "chart_name": "Grievance Type", + "chart_type": "Group By", + "creation": "2022-08-21 13:02:06.880100", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Employee Grievance", + "filters_json": "[[\"Employee Grievance\",\"docstatus\",\"=\",\"1\"]]", + "group_by_based_on": "grievance_type", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-21 13:08:57.019388", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Grievance Type", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/hiring_vs_attrition_count/hiring_vs_attrition_count.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/hiring_vs_attrition_count/hiring_vs_attrition_count.json new file mode 100644 index 000000000..1e73fa2f6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/hiring_vs_attrition_count/hiring_vs_attrition_count.json @@ -0,0 +1,33 @@ +{ + "based_on": "", + "chart_name": "Hiring vs Attrition Count", + "chart_type": "Custom", + "creation": "2022-08-21 22:58:12.740936", + "custom_options": "{\n\t\"type\": \"axis-mixed\",\n\t\"axisOptions\": {\n\t\t\"xIsSeries\": 1\n\t},\n\t\"lineOptions\": {\n\t \"regionFill\": 1\n\t},\n\t\"colors\": [\"#7cd6fd\", \"#5e64ff\"]\n}", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "", + "dynamic_filters_json": "{\"company\":\"frappe.defaults.get_user_default(\\\"Company\\\")\", \"from_date\":\"frappe.defaults.get_user_default(\\\"year_start_date\\\")\", \"to_date\":\"frappe.defaults.get_user_default(\\\"year_end_date\\\")\"}", + "filters_json": "{\"time_interval\":\"Monthly\"}", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-22 10:57:55.011020", + "modified": "2022-08-22 11:03:30.080835", + "modified_by": "Administrator", + "module": "HR", + "name": "Hiring vs Attrition Count", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "Hiring vs Attrition Count", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Line", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/interview_status/interview_status.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/interview_status/interview_status.json new file mode 100644 index 000000000..6813dc9fb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/interview_status/interview_status.json @@ -0,0 +1,33 @@ +{ + "based_on": "", + "chart_name": "Interview Status", + "chart_type": "Group By", + "creation": "2022-08-20 23:10:33.131622", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Interview", + "dynamic_filters_json": "[]", + "filters_json": "[]", + "group_by_based_on": "status", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-22 12:13:19.640093", + "modified": "2022-08-22 12:16:33.674218", + "modified_by": "Administrator", + "module": "HR", + "name": "Interview Status", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_applicant_pipeline/job_applicant_pipeline.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_applicant_pipeline/job_applicant_pipeline.json new file mode 100644 index 000000000..8538e0a52 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_applicant_pipeline/job_applicant_pipeline.json @@ -0,0 +1,33 @@ +{ + "based_on": "", + "chart_name": "Job Applicant Pipeline", + "chart_type": "Group By", + "creation": "2022-08-20 21:18:45.283444", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Job Applicant", + "dynamic_filters_json": "[]", + "filters_json": "[]", + "group_by_based_on": "job_title", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-20 23:45:11.740188", + "modified": "2022-08-20 23:48:35.499218", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Applicant Pipeline", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Percentage", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_applicant_source/job_applicant_source.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_applicant_source/job_applicant_source.json new file mode 100644 index 000000000..1da6a121b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_applicant_source/job_applicant_source.json @@ -0,0 +1,33 @@ +{ + "based_on": "", + "chart_name": "Job Applicant Source", + "chart_type": "Group By", + "creation": "2022-08-20 22:59:15.210760", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Job Applicant", + "dynamic_filters_json": "[]", + "filters_json": "[]", + "group_by_based_on": "source", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-20 23:45:11.697841", + "modified": "2022-08-20 23:47:52.946872", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Applicant Source", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Percentage", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_applicants_by_country/job_applicants_by_country.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_applicants_by_country/job_applicants_by_country.json new file mode 100644 index 000000000..bd47a0f56 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_applicants_by_country/job_applicants_by_country.json @@ -0,0 +1,32 @@ +{ + "based_on": "", + "chart_name": "Job Applicants by Country", + "chart_type": "Group By", + "creation": "2022-08-22 12:17:53.776473", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Job Applicant", + "dynamic_filters_json": "[]", + "filters_json": "[]", + "group_by_based_on": "country", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "modified": "2022-08-22 12:18:01.288634", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Applicants by Country", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_application_frequency/job_application_frequency.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_application_frequency/job_application_frequency.json new file mode 100644 index 000000000..294cc5294 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_application_frequency/job_application_frequency.json @@ -0,0 +1,32 @@ +{ + "based_on": "creation", + "chart_name": "Job Application Frequency", + "chart_type": "Count", + "creation": "2022-08-20 22:00:12.227849", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Job Applicant", + "dynamic_filters_json": "[]", + "filters_json": "[]", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-20 23:11:18.520971", + "modified": "2022-08-20 23:16:02.076184", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Application Frequency", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Monthly", + "timeseries": 1, + "timespan": "Last Year", + "type": "Line", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_application_status/job_application_status.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_application_status/job_application_status.json new file mode 100644 index 000000000..b77fe4c43 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_application_status/job_application_status.json @@ -0,0 +1,30 @@ +{ + "chart_name": "Job Application Status", + "chart_type": "Group By", + "creation": "2020-07-22 11:56:32.699696", + "custom_options": "", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Job Applicant", + "dynamic_filters_json": "", + "filters_json": "[]", + "group_by_based_on": "status", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-22 12:07:53.129240", + "modified": "2022-08-22 12:10:29.144396", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Application Status", + "number_of_groups": 0, + "owner": "Administrator", + "roles": [], + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_offer_status/job_offer_status.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_offer_status/job_offer_status.json new file mode 100644 index 000000000..c170fb6fd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/job_offer_status/job_offer_status.json @@ -0,0 +1,33 @@ +{ + "based_on": "", + "chart_name": "Job Offer Status", + "chart_type": "Group By", + "creation": "2022-08-20 21:33:17.378147", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Job Offer", + "dynamic_filters_json": "[]", + "filters_json": "[]", + "group_by_based_on": "status", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-22 12:12:19.736710", + "modified": "2022-08-22 12:14:23.044346", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Offer Status", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/shift_assignment_breakup/shift_assignment_breakup.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/shift_assignment_breakup/shift_assignment_breakup.json new file mode 100644 index 000000000..c78d4a425 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/shift_assignment_breakup/shift_assignment_breakup.json @@ -0,0 +1,32 @@ +{ + "based_on": "", + "chart_name": "Shift Assignment Breakup", + "chart_type": "Group By", + "creation": "2022-08-21 18:11:42.510195", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Shift Assignment", + "dynamic_filters_json": "[[\"Shift Assignment\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Shift Assignment\",\"docstatus\",\"=\",\"1\"]]", + "group_by_based_on": "shift_type", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Shift Assignment Breakup", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/timesheet_activity_breakup/timesheet_activity_breakup.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/timesheet_activity_breakup/timesheet_activity_breakup.json new file mode 100644 index 000000000..dd042ad64 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/timesheet_activity_breakup/timesheet_activity_breakup.json @@ -0,0 +1,34 @@ +{ + "aggregate_function_based_on": "hours", + "based_on": "", + "chart_name": "Timesheet Activity Breakup", + "chart_type": "Group By", + "creation": "2022-08-21 14:31:10.401241", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Timesheet Detail", + "dynamic_filters_json": "[]", + "filters_json": "[]", + "group_by_based_on": "activity_type", + "group_by_type": "Sum", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2022-08-21 17:55:44.318686", + "modified": "2022-08-21 17:59:38.576219", + "modified_by": "Administrator", + "module": "HR", + "name": "Timesheet Activity Breakup", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "Timesheet", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Percentage", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/training_type/training_type.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/training_type/training_type.json new file mode 100644 index 000000000..e4aadb114 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/training_type/training_type.json @@ -0,0 +1,32 @@ +{ + "based_on": "", + "chart_name": "Training Type", + "chart_type": "Group By", + "creation": "2022-08-21 13:29:27.202404", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Training Event", + "dynamic_filters_json": "[]", + "filters_json": "[[\"Training Event\",\"docstatus\",\"=\",\"1\"]]", + "group_by_based_on": "type", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Training Type", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Pie", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/y_o_y_promotions/y_o_y_promotions.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/y_o_y_promotions/y_o_y_promotions.json new file mode 100644 index 000000000..3812ca55a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/y_o_y_promotions/y_o_y_promotions.json @@ -0,0 +1,31 @@ +{ + "based_on": "promotion_date", + "chart_name": "Y-O-Y Promotions", + "chart_type": "Count", + "creation": "2022-08-21 13:34:12.830736", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Employee Promotion", + "dynamic_filters_json": "[[\"Employee Promotion\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee Promotion\",\"docstatus\",\"=\",\"1\"]]", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Y-O-Y Promotions", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 1, + "timespan": "Last Year", + "type": "Line", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/y_o_y_transfers/y_o_y_transfers.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/y_o_y_transfers/y_o_y_transfers.json new file mode 100644 index 000000000..5e0c9f07d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart/y_o_y_transfers/y_o_y_transfers.json @@ -0,0 +1,31 @@ +{ + "based_on": "transfer_date", + "chart_name": "Y-O-Y Transfers", + "chart_type": "Count", + "creation": "2022-08-21 13:28:05.162754", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Employee Transfer", + "dynamic_filters_json": "[[\"Employee Transfer\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee Transfer\",\"docstatus\",\"=\",\"1\"]]", + "group_by_type": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Y-O-Y Transfers", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "source": "", + "time_interval": "Yearly", + "timeseries": 1, + "timespan": "Last Year", + "type": "Line", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/__init__.py b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/__init__.py b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/employees_by_age.js b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/employees_by_age.js new file mode 100644 index 000000000..0ef8b3975 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/employees_by_age.js @@ -0,0 +1,14 @@ +frappe.provide("frappe.dashboards.chart_sources"); + +frappe.dashboards.chart_sources["Employees by Age"] = { + method: "hrms.hr.dashboard_chart_source.employees_by_age.employees_by_age.get_data", + filters: [ + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_user_default("Company"), + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/employees_by_age.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/employees_by_age.json new file mode 100644 index 000000000..5d535d512 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/employees_by_age.json @@ -0,0 +1,13 @@ +{ + "creation": "2022-08-22 12:49:07.303139", + "docstatus": 0, + "doctype": "Dashboard Chart Source", + "idx": 0, + "modified": "2022-08-22 12:49:07.303139", + "modified_by": "Administrator", + "module": "HR", + "name": "Employees by Age", + "owner": "Administrator", + "source_name": "Employees by Age", + "timeseries": 0 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/employees_by_age.py b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/employees_by_age.py new file mode 100644 index 000000000..8784fad09 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/employees_by_age/employees_by_age.py @@ -0,0 +1,87 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +from dateutil.relativedelta import relativedelta + +import frappe +from frappe import _ +from frappe.utils import getdate +from frappe.utils.dashboard import cache_source + + +@frappe.whitelist() +@cache_source +def get_data( + chart_name=None, + chart=None, + no_cache=None, + filters=None, + from_date=None, + to_date=None, + timespan=None, + time_interval=None, + heatmap_year=None, +) -> dict[str, list]: + if filters: + filters = frappe.parse_json(filters) + + employees = frappe.db.get_list( + "Employee", + filters={"company": filters.get("company"), "status": "Active"}, + pluck="date_of_birth", + ) + age_list = get_age_list(employees) + ranges = get_ranges() + + age_range, values = get_employees_by_age(age_list, ranges) + + return { + "labels": age_range, + "datasets": [ + {"name": _("Employees"), "values": values}, + ], + } + + +def get_ranges() -> list[tuple[int, int]]: + ranges = [] + + for i in range(15, 80, 5): + ranges.append((i, i + 4)) + + ranges.append(80) + + return ranges + + +def get_age_list(employees) -> list[int]: + age_list = [] + for dob in employees: + if not dob: + continue + age = relativedelta(getdate(), getdate(dob)).years + age_list.append(age) + + return age_list + + +def get_employees_by_age(age_list, ranges) -> tuple[list[str], list[int]]: + age_range = [] + values = [] + for bracket in ranges: + if isinstance(bracket, int): + age_range.append(f"{bracket}+") + else: + age_range.append(f"{bracket[0]}-{bracket[1]}") + + count = 0 + for age in age_list: + if (isinstance(bracket, int) and age >= bracket) or ( + isinstance(bracket, tuple) and bracket[0] <= age <= bracket[1] + ): + count += 1 + + values.append(count) + + return age_range, values diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/__init__.py b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js new file mode 100644 index 000000000..d8e88bcf0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js @@ -0,0 +1,35 @@ +frappe.provide("frappe.dashboards.chart_sources"); + +frappe.dashboards.chart_sources["Hiring vs Attrition Count"] = { + method: "hrms.hr.dashboard_chart_source.hiring_vs_attrition_count.hiring_vs_attrition_count.get_data", + filters: [ + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_user_default("Company"), + }, + { + fieldname: "from_date", + label: __("From Date"), + fieldtype: "Date", + default: frappe.defaults.get_user_default("year_start_date"), + reqd: 1, + }, + { + fieldname: "to_date", + label: __("To Date"), + fieldtype: "Date", + default: frappe.defaults.get_user_default("year_end_date"), + }, + { + fieldname: "time_interval", + label: __("Time Interval"), + fieldtype: "Select", + options: ["Monthly", "Quarterly", "Yearly"], + default: "Monthly", + reqd: 1, + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.json b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.json new file mode 100644 index 000000000..77b8c899d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.json @@ -0,0 +1,13 @@ +{ + "creation": "2022-08-21 21:38:22.271985", + "docstatus": 0, + "doctype": "Dashboard Chart Source", + "idx": 0, + "modified": "2022-08-21 21:38:22.271985", + "modified_by": "Administrator", + "module": "HR", + "name": "Hiring vs Attrition Count", + "owner": "Administrator", + "source_name": "Hiring vs Attrition Count", + "timeseries": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py new file mode 100644 index 000000000..ea85a6d47 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py @@ -0,0 +1,78 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe +from frappe import _ +from frappe.desk.doctype.dashboard_chart.dashboard_chart import get_result +from frappe.utils import getdate +from frappe.utils.dashboard import cache_source +from frappe.utils.dateutils import get_period + + +@frappe.whitelist() +@cache_source +def get_data( + chart_name=None, + chart=None, + no_cache=None, + filters=None, + from_date=None, + to_date=None, + timespan=None, + time_interval=None, + heatmap_year=None, +) -> dict[str, list]: + if filters: + filters = frappe.parse_json(filters) + + from_date = filters.get("from_date") + to_date = filters.get("to_date") + + if not to_date: + to_date = getdate() + + permitted_fields = frappe.model.get_permitted_fields("Employee", user=frappe.session.user) + + hiring = ( + get_records(from_date, to_date, "date_of_joining", filters.get("company")) + if "date_of_joining" in permitted_fields + else [] + ) + + attrition = ( + get_records(from_date, to_date, "relieving_date", filters.get("company")) + if "relieving_date" in permitted_fields + else [] + ) + + hiring_data = get_result(hiring, filters.get("time_interval"), from_date, to_date, "Count") + attrition_data = get_result(attrition, filters.get("time_interval"), from_date, to_date, "Count") + + return { + "labels": [get_period(r[0], filters.get("time_interval")) for r in hiring_data], + "datasets": [ + {"name": _("Hiring Count"), "values": [r[1] for r in hiring_data]}, + {"name": _("Attrition Count"), "values": [r[1] for r in attrition_data]}, + ], + } + + +def get_records(from_date: str, to_date: str, datefield: str, company: str) -> tuple[tuple[str, float, int]]: + filters = [ + ["Employee", "company", "=", company], + ["Employee", datefield, ">=", from_date], + ["Employee", datefield, "<=", to_date], + ] + + data = frappe.db.get_list( + "Employee", + fields=[f"{datefield} as _unit", {"SUM": 1}, {"COUNT": "*"}], + filters=filters, + group_by="_unit", + order_by="_unit asc", + as_list=True, + ignore_ifnull=True, + ) + + return data diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/appointment_letter.js b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/appointment_letter.js new file mode 100644 index 000000000..a3bd3cfc5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/appointment_letter.js @@ -0,0 +1,31 @@ +// Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Appointment Letter", { + appointment_letter_template: function (frm) { + if (frm.doc.appointment_letter_template) { + frappe.call({ + method: "hrms.hr.doctype.appointment_letter.appointment_letter.get_appointment_letter_details", + args: { + template: frm.doc.appointment_letter_template, + }, + callback: function (r) { + if (r.message) { + let message_body = r.message; + frm.set_value("introduction", message_body[0].introduction); + frm.set_value("closing_notes", message_body[0].closing_notes); + frm.doc.terms = []; + for (var i in message_body[1].description) { + frm.add_child("terms"); + frm.fields_dict.terms.get_value()[i].title = + message_body[1].description[i].title; + frm.fields_dict.terms.get_value()[i].description = + message_body[1].description[i].description; + } + frm.refresh(); + } + }, + }); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/appointment_letter.json b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/appointment_letter.json new file mode 100644 index 000000000..f07f648f6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/appointment_letter.json @@ -0,0 +1,127 @@ +{ + "actions": [], + "autoname": "HR-APP-LETTER-.#####", + "creation": "2019-12-26 12:35:49.574828", + "default_print_format": "Standard Appointment Letter", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "job_applicant", + "applicant_name", + "column_break_3", + "company", + "appointment_date", + "appointment_letter_template", + "body_section", + "introduction", + "terms", + "closing_notes" + ], + "fields": [ + { + "fetch_from": "job_applicant.applicant_name", + "fieldname": "applicant_name", + "fieldtype": "Data", + "in_global_search": 1, + "in_list_view": 1, + "label": "Applicant Name", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "appointment_date", + "fieldtype": "Date", + "label": "Appointment Date", + "reqd": 1 + }, + { + "fieldname": "appointment_letter_template", + "fieldtype": "Link", + "label": "Appointment Letter Template", + "options": "Appointment Letter Template", + "reqd": 1 + }, + { + "fetch_from": "appointment_letter_template.introduction", + "fieldname": "introduction", + "fieldtype": "Long Text", + "label": "Introduction", + "reqd": 1 + }, + { + "fieldname": "body_section", + "fieldtype": "Section Break", + "label": "Body" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "job_applicant", + "fieldtype": "Link", + "label": "Job Applicant", + "options": "Job Applicant", + "reqd": 1 + }, + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "closing_notes", + "fieldtype": "Text", + "label": "Closing Notes" + }, + { + "fieldname": "terms", + "fieldtype": "Table", + "label": "Terms", + "options": "Appointment Letter content", + "reqd": 1 + } + ], + "links": [], + "modified": "2024-03-27 13:06:30.680330", + "modified_by": "Administrator", + "module": "HR", + "name": "Appointment Letter", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + } + ], + "search_fields": "applicant_name, company", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "applicant_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/appointment_letter.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/appointment_letter.py new file mode 100644 index 000000000..a58589af2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/appointment_letter.py @@ -0,0 +1,29 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe.model.document import Document + + +class AppointmentLetter(Document): + pass + + +@frappe.whitelist() +def get_appointment_letter_details(template): + body = [] + intro = frappe.get_list( + "Appointment Letter Template", + fields=["introduction", "closing_notes"], + filters={"name": template}, + )[0] + content = frappe.get_all( + "Appointment Letter content", + fields=["title", "description"], + filters={"parent": template}, + order_by="idx", + ) + body.append(intro) + body.append({"description": content}) + return body diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/test_appointment_letter.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/test_appointment_letter.py new file mode 100644 index 000000000..d7328ea3b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter/test_appointment_letter.py @@ -0,0 +1,9 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestAppointmentLetter(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_content/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_content/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json new file mode 100644 index 000000000..e10da0331 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json @@ -0,0 +1,40 @@ +{ + "actions": [], + "creation": "2019-12-26 12:22:16.575767", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "title", + "description" + ], + "fields": [ + { + "fieldname": "title", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Title", + "reqd": 1 + }, + { + "fieldname": "description", + "fieldtype": "Long Text", + "in_list_view": 1, + "label": "Description", + "reqd": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:06:31.009992", + "modified_by": "Administrator", + "module": "HR", + "name": "Appointment Letter content", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_content/appointment_letter_content.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_content/appointment_letter_content.py new file mode 100644 index 000000000..d158013d7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_content/appointment_letter_content.py @@ -0,0 +1,10 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class AppointmentLettercontent(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/appointment_letter_template.js b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/appointment_letter_template.js new file mode 100644 index 000000000..5dc699af1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/appointment_letter_template.js @@ -0,0 +1,7 @@ +// Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Appointment Letter Template", { + // refresh: function(frm) { + // } +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json new file mode 100644 index 000000000..2ba0dd222 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json @@ -0,0 +1,81 @@ +{ + "actions": [], + "autoname": "field:template_name", + "creation": "2019-12-26 12:20:14.219578", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "template_name", + "introduction", + "terms", + "closing_notes" + ], + "fields": [ + { + "fieldname": "introduction", + "fieldtype": "Long Text", + "in_list_view": 1, + "label": "Introduction", + "reqd": 1 + }, + { + "fieldname": "closing_notes", + "fieldtype": "Text", + "label": "Closing Notes" + }, + { + "fieldname": "terms", + "fieldtype": "Table", + "label": "Terms", + "options": "Appointment Letter content", + "reqd": 1 + }, + { + "fieldname": "template_name", + "fieldtype": "Data", + "label": "Template Name", + "reqd": 1, + "unique": 1 + } + ], + "links": [], + "modified": "2024-03-27 13:06:31.135009", + "modified_by": "Administrator", + "module": "HR", + "name": "Appointment Letter Template", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + } + ], + "search_fields": "template_name", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "template_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/appointment_letter_template.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/appointment_letter_template.py new file mode 100644 index 000000000..9ac726e06 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/appointment_letter_template.py @@ -0,0 +1,10 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class AppointmentLetterTemplate(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/test_appointment_letter_template.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/test_appointment_letter_template.py new file mode 100644 index 000000000..e5e895acf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appointment_letter_template/test_appointment_letter_template.py @@ -0,0 +1,9 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestAppointmentLetterTemplate(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/README.md new file mode 100644 index 000000000..7798f188c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/README.md @@ -0,0 +1 @@ +Performance of an Employee in a Time Period against given goals. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/appraisal.js b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/appraisal.js new file mode 100644 index 000000000..e47225968 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/appraisal.js @@ -0,0 +1,155 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.ui.form.on("Appraisal", { + refresh(frm) { + if (!frm.doc.__islocal) { + frm.trigger("add_custom_buttons"); + frm.trigger("show_feedback_history"); + frm.trigger("setup_chart"); + } + + // don't allow removing image (fetched from employee) + frm.sidebar.image_wrapper.find(".sidebar-image-actions").addClass("hide"); + }, + + appraisal_template(frm) { + if (frm.doc.appraisal_template) { + frm.call("set_kras_and_rating_criteria", () => { + frm.refresh_field("appraisal_kra"); + frm.refresh_field("feedback_ratings"); + }); + } + }, + + appraisal_cycle(frm) { + if (frm.doc.appraisal_cycle) { + frappe.run_serially([ + () => { + if (frm.doc.__islocal && frm.doc.appraisal_cycle) { + frappe.db.get_value( + "Appraisal Cycle", + frm.doc.appraisal_cycle, + "kra_evaluation_method", + (r) => { + if (r.kra_evaluation_method) { + frm.set_value( + "rate_goals_manually", + cint(r.kra_evaluation_method === "Manual Rating"), + ); + } + }, + ); + } + }, + () => { + frm.call({ + method: "set_appraisal_template", + doc: frm.doc, + }); + }, + ]); + } + }, + + add_custom_buttons(frm) { + frm.add_custom_button(__("View Goals"), function () { + frappe.route_options = { + company: frm.doc.company, + employee: frm.doc.employee, + appraisal_cycle: frm.doc.appraisal_cycle, + }; + frappe.set_route("Tree", "Goal"); + }); + }, + + show_feedback_history(frm) { + frappe.require("performance.bundle.js", () => { + const feedback_history = new hrms.PerformanceFeedback({ + frm: frm, + wrapper: $(frm.fields_dict.feedback_html.wrapper), + }); + feedback_history.refresh(); + }); + }, + + setup_chart(frm) { + const labels = []; + const maximum_scores = []; + const scores = []; + + frm.doc.appraisal_kra.forEach((d) => { + labels.push(d.kra); + maximum_scores.push(d.per_weightage || 0); + scores.push(d.goal_score || 0); + }); + + if (labels.length && maximum_scores.length && scores.length) { + frm.dashboard.render_graph({ + data: { + labels: labels, + datasets: [ + { + name: "Maximum Score", + chartType: "bar", + values: maximum_scores, + }, + { + name: "Score Obtained", + chartType: "bar", + values: scores, + }, + ], + }, + title: __("Scores"), + height: 250, + type: "bar", + barOptions: { + spaceRatio: 0.7, + }, + colors: ["blue", "green"], + }); + } + }, + + calculate_total(frm) { + let total = 0; + + frm.doc.goals.forEach((d) => { + total += flt(d.score_earned); + }); + + frm.set_value("total_score", total); + }, +}); + +frappe.ui.form.on("Appraisal Goal", { + score(frm, cdt, cdn) { + let d = frappe.get_doc(cdt, cdn); + + if (flt(d.score) > 5) { + frappe.msgprint(__("Score must be less than or equal to 5")); + d.score = 0; + refresh_field("score", d.name, "goals"); + } else { + frm.trigger("set_score_earned", cdt, cdn); + } + }, + + per_weightage(frm, cdt, cdn) { + frm.trigger("set_score_earned", cdt, cdn); + }, + + goals_remove(frm, cdt, cdn) { + frm.trigger("set_score_earned", cdt, cdn); + }, + + set_score_earned(frm, cdt, cdn) { + let d = frappe.get_doc(cdt, cdn); + + let score_earned = (flt(d.score) * flt(d.per_weightage)) / 100; + frappe.model.set_value(cdt, cdn, "score_earned", score_earned); + + frm.trigger("calculate_total"); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/appraisal.json b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/appraisal.json new file mode 100644 index 000000000..41fb406f9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/appraisal.json @@ -0,0 +1,368 @@ +{ + "actions": [], + "autoname": "naming_series:", + "creation": "2022-08-26 05:55:37.571091", + "doctype": "DocType", + "document_type": "Setup", + "engine": "InnoDB", + "field_order": [ + "employee_details_tab", + "naming_series", + "employee", + "employee_name", + "department", + "designation", + "employee_image", + "column_break0", + "company", + "appraisal_cycle", + "start_date", + "end_date", + "section_break_aeb0", + "final_score", + "kra_tab", + "appraisal_template", + "rate_goals_manually", + "section_break_kras", + "appraisal_kra", + "goal_score_percentage", + "section_break_goals", + "goals", + "remarks", + "total_section", + "total_score", + "feedback_tab", + "feedback_html", + "section_break_20", + "avg_feedback_score", + "self_appraisal_tab", + "section_break_23", + "self_ratings", + "self_score", + "reflections_section", + "reflections", + "amended_from" + ], + "fields": [ + { + "fieldname": "naming_series", + "fieldtype": "Select", + "label": "Series", + "no_copy": 1, + "options": "HR-APR-.YYYY.-", + "print_hide": 1, + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_global_search": 1, + "in_standard_filter": 1, + "label": "Employee", + "oldfieldname": "employee", + "oldfieldtype": "Link", + "options": "Employee", + "reqd": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "in_global_search": 1, + "label": "Employee Name", + "oldfieldname": "employee_name", + "oldfieldtype": "Data", + "read_only": 1 + }, + { + "fieldname": "column_break0", + "fieldtype": "Column Break", + "oldfieldtype": "Column Break", + "width": "50%" + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "oldfieldname": "company", + "oldfieldtype": "Link", + "options": "Company", + "remember_last_selected_value": 1, + "reqd": 1 + }, + { + "fetch_from": "employee.designation", + "fieldname": "designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation", + "read_only": 1 + }, + { + "fieldname": "appraisal_cycle", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Appraisal Cycle", + "options": "Appraisal Cycle", + "reqd": 1 + }, + { + "depends_on": "eval: !doc.rate_goals_manually", + "fieldname": "appraisal_kra", + "fieldtype": "Table", + "label": "KRA vs Goals", + "oldfieldname": "appraisal_details", + "oldfieldtype": "Table", + "options": "Appraisal KRA" + }, + { + "fieldname": "total_section", + "fieldtype": "Section Break" + }, + { + "fieldname": "total_score", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Total Goal Score", + "no_copy": 1, + "oldfieldname": "total_score", + "oldfieldtype": "Currency", + "read_only": 1 + }, + { + "fieldname": "feedback_html", + "fieldtype": "HTML", + "label": "Feedback HTML" + }, + { + "fieldname": "self_appraisal_tab", + "fieldtype": "Tab Break", + "label": "Self Appraisal" + }, + { + "fieldname": "reflections_section", + "fieldtype": "Section Break", + "label": "Reflections" + }, + { + "fieldname": "self_score", + "fieldtype": "Float", + "label": "Total Self Score", + "read_only": 1 + }, + { + "fieldname": "avg_feedback_score", + "fieldtype": "Float", + "hidden": 1, + "label": "Average Feedback Score", + "read_only": 1 + }, + { + "fieldname": "section_break_20", + "fieldtype": "Section Break" + }, + { + "allow_on_submit": 1, + "fetch_from": "employee.image", + "fieldname": "employee_image", + "fieldtype": "Attach Image", + "hidden": 1, + "label": "Employee Image" + }, + { + "fieldname": "feedback_tab", + "fieldtype": "Tab Break", + "label": "Feedback" + }, + { + "fieldname": "appraisal_template", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Appraisal Template", + "mandatory_depends_on": "eval:!doc.__islocal", + "oldfieldname": "kra_template", + "oldfieldtype": "Link", + "options": "Appraisal Template" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Appraisal", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "employee_details_tab", + "fieldtype": "Tab Break", + "label": "Overview", + "oldfieldtype": "Section Break" + }, + { + "fieldname": "section_break_23", + "fieldtype": "Section Break", + "label": "Ratings" + }, + { + "fieldname": "reflections", + "fieldtype": "Text Editor" + }, + { + "depends_on": "rate_goals_manually", + "fieldname": "goals", + "fieldtype": "Table", + "label": "Goals", + "options": "Appraisal Goal" + }, + { + "depends_on": "rate_goals_manually", + "description": "Any other remarks, noteworthy effort that should go in the records", + "fieldname": "remarks", + "fieldtype": "Text", + "label": "Remarks" + }, + { + "fieldname": "section_break_kras", + "fieldtype": "Section Break" + }, + { + "fieldname": "section_break_goals", + "fieldtype": "Section Break" + }, + { + "default": "0", + "fieldname": "rate_goals_manually", + "fieldtype": "Check", + "label": "Rate Goals Manually", + "read_only": 1 + }, + { + "fieldname": "start_date", + "fieldtype": "Date", + "label": "Start Date", + "read_only": 1 + }, + { + "fieldname": "end_date", + "fieldtype": "Date", + "label": "End Date", + "read_only": 1 + }, + { + "fieldname": "kra_tab", + "fieldtype": "Tab Break", + "label": "KRAs", + "oldfieldtype": "Section Break", + "show_dashboard": 1 + }, + { + "depends_on": "eval: !doc.rate_goals_manually", + "fieldname": "goal_score_percentage", + "fieldtype": "Float", + "label": "Goal Score (%)", + "read_only": 1 + }, + { + "fieldname": "self_ratings", + "fieldtype": "Table", + "options": "Employee Feedback Rating" + }, + { + "fieldname": "section_break_aeb0", + "fieldtype": "Section Break" + }, + { + "depends_on": "appraisal_cycle", + "description": "Average of Goal Score, Feedback Score, and Self Appraisal Score", + "fieldname": "final_score", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Final Score", + "read_only": 1 + } + ], + "icon": "fa fa-thumbs-up", + "image_field": "employee_image", + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [], + "modified": "2025-09-24 15:40:29.669135", + "modified_by": "Administrator", + "module": "HR", + "name": "Appraisal", + "naming_rule": "By \"Naming Series\" field", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "search_fields": "employee, employee_name, appraisal_cycle", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "timeline_field": "employee", + "title_field": "employee_name", + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/appraisal.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/appraisal.py new file mode 100644 index 000000000..c54abcd2d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/appraisal.py @@ -0,0 +1,341 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.query_builder.functions import Avg +from frappe.utils import flt, get_link_to_form, now + +from hrms.hr.doctype.appraisal_cycle.appraisal_cycle import validate_active_appraisal_cycle +from hrms.hr.utils import validate_active_employee +from hrms.mixins.appraisal import AppraisalMixin +from hrms.payroll.utils import sanitize_expression + + +class Appraisal(Document, AppraisalMixin): + def validate(self): + self.set_kra_evaluation_method() + + validate_active_employee(self.employee) + validate_active_appraisal_cycle(self.appraisal_cycle) + self.validate_duplicate() + self.validate_total_weightage("appraisal_kra", "KRAs") + self.validate_total_weightage("self_ratings", "Self Ratings") + + self.set_goal_score() + self.calculate_self_appraisal_score() + self.calculate_avg_feedback_score() + self.calculate_final_score() + + def validate_duplicate(self): + Appraisal = frappe.qb.DocType("Appraisal") + duplicate = ( + frappe.qb.from_(Appraisal) + .select(Appraisal.name) + .where( + (Appraisal.employee == self.employee) + & (Appraisal.docstatus != 2) + & (Appraisal.name != self.name) + & ( + (Appraisal.appraisal_cycle == self.appraisal_cycle) + | ( + (Appraisal.start_date.between(self.start_date, self.end_date)) + | (Appraisal.end_date.between(self.start_date, self.end_date)) + | ( + (self.start_date >= Appraisal.start_date) + & (self.start_date <= Appraisal.end_date) + ) + | ((self.end_date >= Appraisal.start_date) & (self.end_date <= Appraisal.end_date)) + ) + ) + ) + ).run() + duplicate = duplicate[0][0] if duplicate else 0 + + if duplicate: + frappe.throw( + _( + "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" + ).format(get_link_to_form("Appraisal", duplicate), frappe.bold(self.employee_name)), + exc=frappe.DuplicateEntryError, + title=_("Duplicate Entry"), + ) + + def set_kra_evaluation_method(self): + if ( + self.is_new() + and self.appraisal_cycle + and ( + frappe.db.get_value("Appraisal Cycle", self.appraisal_cycle, "kra_evaluation_method") + == "Manual Rating" + ) + ): + self.rate_goals_manually = 1 + + @frappe.whitelist() + def set_appraisal_template(self): + """Sets appraisal template from Appraisee table in Cycle""" + if not self.appraisal_cycle: + return + + appraisal_template = frappe.db.get_value( + "Appraisee", + { + "employee": self.employee, + "parent": self.appraisal_cycle, + }, + "appraisal_template", + ) + + if appraisal_template: + self.appraisal_template = appraisal_template + self.set_kras_and_rating_criteria() + + @frappe.whitelist() + def set_kras_and_rating_criteria(self): + if not self.appraisal_template: + return + + self.set("appraisal_kra", []) + self.set("self_ratings", []) + self.set("goals", []) + + template = frappe.get_doc("Appraisal Template", self.appraisal_template) + + for entry in template.goals: + table_name = "goals" if self.rate_goals_manually else "appraisal_kra" + + self.append( + table_name, + { + "kra": entry.key_result_area, + "per_weightage": entry.per_weightage, + }, + ) + + for entry in template.rating_criteria: + self.append( + "self_ratings", + { + "criteria": entry.criteria, + "per_weightage": entry.per_weightage, + }, + ) + + return self + + def calculate_total_score(self): + total_weightage, total, goal_score_percentage = 0, 0, 0 + meta = frappe.get_meta("Appraisal Goal") + number_of_stars = meta.get_options("score") or 5 + if self.rate_goals_manually: + table = _("Goals") + for entry in self.goals: + if flt(entry.score) > flt(number_of_stars): + frappe.throw( + _("Row {0}: Goal Score cannot be greater than {1}").format(entry.idx, number_of_stars) + ) + + entry.score_earned = flt(entry.score) * flt(entry.per_weightage) / 100 + total += flt(entry.score_earned) + total_weightage += flt(entry.per_weightage) + + else: + table = _("KRAs") + for entry in self.appraisal_kra: + goal_score_percentage += flt(entry.goal_score) + total_weightage += flt(entry.per_weightage) + + self.goal_score_percentage = flt(goal_score_percentage, self.precision("goal_score_percentage")) + # convert goal score percentage to total score out of 5 + total = flt(goal_score_percentage) / 20 + + if total_weightage and flt(total_weightage, 2) != 100.0: + frappe.throw( + _("Total weightage for all {0} must add up to 100. Currently, it is {1}%").format( + table, total_weightage + ), + title=_("Incorrect Weightage Allocation"), + ) + + self.total_score = flt(total, self.precision("total_score")) + + def calculate_self_appraisal_score(self): + total = 0 + meta = frappe.get_meta("Employee Feedback Rating") + number_of_stars = meta.get_options("rating") or 5 + for entry in self.self_ratings: + score = flt(entry.rating) * flt(number_of_stars) * flt(entry.per_weightage / 100) + total += flt(score) + + self.self_score = flt(total, self.precision("self_score")) + + def calculate_avg_feedback_score(self, update=False): + avg_feedback_score = frappe.qb.avg( + "Employee Performance Feedback", + "total_score", + {"employee": self.employee, "appraisal": self.name, "docstatus": 1}, + ) + + self.avg_feedback_score = flt(avg_feedback_score, self.precision("avg_feedback_score")) + + if update: + self.calculate_final_score() + self.db_update() + + def calculate_final_score(self): + final_score = 0 + appraisal_cycle_doc = frappe.get_cached_doc("Appraisal Cycle", self.appraisal_cycle) + + formula = appraisal_cycle_doc.final_score_formula + based_on_formula = appraisal_cycle_doc.calculate_final_score_based_on_formula + + if based_on_formula: + employee_doc = frappe.get_cached_doc("Employee", self.employee) + data = { + "goal_score": flt(self.total_score), + "average_feedback_score": flt(self.avg_feedback_score), + "self_appraisal_score": flt(self.self_score), + } + data.update(appraisal_cycle_doc.as_dict()) + data.update(employee_doc.as_dict()) + data.update(self.as_dict()) + + sanitized_formula = sanitize_expression(formula) + final_score = frappe.safe_eval(sanitized_formula, data) + else: + final_score = (flt(self.total_score) + flt(self.avg_feedback_score) + flt(self.self_score)) / 3 + + self.final_score = flt(final_score, self.precision("final_score")) + + @frappe.whitelist() + def add_feedback(self, feedback, feedback_ratings): + feedback = frappe.get_doc( + { + "doctype": "Employee Performance Feedback", + "appraisal": self.name, + "employee": self.employee, + "added_on": now(), + "feedback": feedback, + "reviewer": frappe.db.get_value("Employee", {"user_id": frappe.session.user}), + } + ) + + for entry in feedback_ratings: + feedback.append( + "feedback_ratings", + { + "criteria": entry.get("criteria"), + "rating": entry.get("rating"), + "per_weightage": entry.get("per_weightage"), + }, + ) + + feedback.submit() + + return feedback + + def set_goal_score(self, update=False): + for kra in self.appraisal_kra: + # update progress for all goals as KRA linked could be removed or changed + Goal = frappe.qb.DocType("Goal") + avg_goal_completion = ( + frappe.qb.from_(Goal) + .select(Avg(Goal.progress).as_("avg_goal_completion")) + .where( + (Goal.kra == kra.kra) + & (Goal.employee == self.employee) + # archived goals should not contribute to progress + & (Goal.status != "Archived") + & ((Goal.parent_goal == "") | (Goal.parent_goal.isnull())) + & (Goal.appraisal_cycle == self.appraisal_cycle) + ) + ).run()[0][0] + + kra.goal_completion = flt(avg_goal_completion, kra.precision("goal_completion")) + kra.goal_score = flt(kra.goal_completion * kra.per_weightage / 100, kra.precision("goal_score")) + + if update: + kra.db_update() + + self.calculate_total_score() + + if update: + self.calculate_final_score() + self.db_update() + + return self + + +@frappe.whitelist() +def get_feedback_history(employee, appraisal): + data = frappe._dict() + data.feedback_history = frappe.get_list( + "Employee Performance Feedback", + filters={"employee": employee, "appraisal": appraisal, "docstatus": 1}, + fields=[ + "feedback", + "reviewer", + "user", + "owner", + "reviewer_name", + "reviewer_designation", + "added_on", + "employee", + "total_score", + "name", + ], + order_by="added_on desc", + ) + + # get percentage of reviews per rating + reviews_per_rating = [] + + feedback_count = frappe.db.count( + "Employee Performance Feedback", + filters={ + "appraisal": appraisal, + "employee": employee, + "docstatus": 1, + }, + ) + + for i in range(1, 6): + count = frappe.db.count( + "Employee Performance Feedback", + filters={ + "appraisal": appraisal, + "employee": employee, + "total_score": ("between", [i, i + 0.99]), + "docstatus": 1, + }, + ) + + percent = flt((count / feedback_count) * 100, 0) if feedback_count else 0 + reviews_per_rating.append(percent) + + data.reviews_per_rating = reviews_per_rating + data.avg_feedback_score = frappe.db.get_value("Appraisal", appraisal, "avg_feedback_score") + + return data + + +@frappe.whitelist() +@frappe.validate_and_sanitize_search_inputs +def get_kras_for_employee(doctype, txt, searchfield, start, page_len, filters): + appraisal = frappe.db.get_value( + "Appraisal", + { + "appraisal_cycle": filters.get("appraisal_cycle"), + "employee": filters.get("employee"), + }, + "name", + ) + + return frappe.get_all( + "Appraisal KRA", + filters={"parent": appraisal, "kra": ("like", f"{txt}%")}, + fields=["kra"], + as_list=1, + ) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/test_appraisal.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/test_appraisal.py new file mode 100644 index 000000000..562662dde --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal/test_appraisal.py @@ -0,0 +1,330 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase + +from erpnext.setup.doctype.designation.test_designation import create_designation +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.appraisal_cycle.appraisal_cycle import get_appraisal_cycle_summary +from hrms.hr.doctype.appraisal_cycle.test_appraisal_cycle import create_appraisal_cycle +from hrms.hr.doctype.appraisal_template.test_appraisal_template import create_appraisal_template +from hrms.hr.doctype.employee_performance_feedback.test_employee_performance_feedback import ( + create_performance_feedback, +) +from hrms.hr.doctype.goal.test_goal import create_goal +from hrms.tests.test_utils import create_company + + +class TestAppraisal(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Goal") + frappe.db.delete("Appraisal") + frappe.db.delete("Employee Performance Feedback") + + self.company = create_company("_Test Appraisal").name + self.template = create_appraisal_template() + + engineer = create_designation(designation_name="Engineer") + engineer.appraisal_template = self.template.name + engineer.save() + + self.employee1 = make_employee( + "test_appraisal1@example.com", company=self.company, designation="Engineer" + ) + + def test_validate_duplicate(self): + cycle = create_appraisal_cycle(designation="Engineer") + cycle.create_appraisals() + + appraisal = frappe.get_doc( + { + "doctype": "Appraisal", + "employee": self.employee1, + "appraisal_cycle": cycle.name, + } + ) + appraisal.set_appraisal_template() + + self.assertRaises(frappe.DuplicateEntryError, appraisal.insert) + + def test_manual_kra_rating(self): + cycle = create_appraisal_cycle(designation="Engineer", kra_evaluation_method="Manual Rating") + cycle.create_appraisals() + + appraisal = frappe.db.exists("Appraisal", {"appraisal_cycle": cycle.name, "employee": self.employee1}) + appraisal = frappe.get_doc("Appraisal", appraisal) + + # 30% weightage + appraisal.goals[0].score = 5 + # 70% weightage + appraisal.goals[1].score = 3 + appraisal.save() + + self.assertEqual(appraisal.goals[0].score_earned, 1.5) + self.assertEqual(appraisal.goals[1].score_earned, 2.1) + + self.assertEqual(appraisal.total_score, 3.6) + self.assertEqual(appraisal.final_score, 1.2) + + def test_final_score(self): + cycle = create_appraisal_cycle(designation="Engineer", kra_evaluation_method="Manual Rating") + cycle.create_appraisals() + appraisal = self.setup_appraisal(cycle) + + self.assertEqual(appraisal.final_score, 3.767) + + def test_final_score_using_formula(self): + cycle = create_appraisal_cycle(designation="Engineer", kra_evaluation_method="Manual Rating") + cycle.update( + { + "calculate_final_score_based_on_formula": 1, + "final_score_formula": "(goal_score + self_appraisal_score + average_feedback_score)/3 if self_appraisal_score else (goal_score + self_appraisal_score)/2", + } + ) + cycle.save() + cycle.create_appraisals() + + appraisal = self.setup_appraisal(cycle) + + self.assertEqual(appraisal.final_score, 3.767) + + def setup_appraisal(self, cycle): + appraisal = frappe.db.exists("Appraisal", {"appraisal_cycle": cycle.name, "employee": self.employee1}) + appraisal = frappe.get_doc("Appraisal", appraisal) + + # GOAL SCORE + appraisal.goals[0].score = 5 # 30% weightage + appraisal.goals[1].score = 3 # 70% weightage + + # SELF APPRAISAL SCORE + ratings = appraisal.self_ratings + ratings[0].rating = 0.8 # 70% weightage + ratings[1].rating = 0.7 # 30% weightage + + appraisal.save() + + # FEEDBACK SCORE + reviewer = make_employee("reviewer1@example.com", designation="Engineer") + feedback = create_performance_feedback( + self.employee1, + reviewer, + appraisal.name, + ) + ratings = feedback.feedback_ratings + ratings[0].rating = 0.8 # 70% weightage + ratings[1].rating = 0.7 # 30% weightage + feedback.submit() + + appraisal.reload() + + return appraisal + + def test_goal_score(self): + """ + parent1 (12.5%) (Quality) + |_ child1 (12.5%) + |_ child1_1 (25%) + |_ child1_2 + + parent2 (50%) (Development) + |_ child2_1 (100%) + |_ child2_2 + """ + cycle = create_appraisal_cycle(designation="Engineer") + cycle.create_appraisals() + + parent1 = create_goal(self.employee1, "Quality", 1, appraisal_cycle=cycle.name) + child1 = create_goal(self.employee1, is_group=1, parent_goal=parent1.name) + # child1_1 + create_goal(self.employee1, parent_goal=child1.name, progress=25) + # child1_1 + create_goal(self.employee1, parent_goal=child1.name) + + parent2 = create_goal(self.employee1, "Development", 1, appraisal_cycle=cycle.name) + # child2_1 + create_goal(self.employee1, parent_goal=parent2.name, progress=100) + # child2_2 + create_goal(self.employee1, parent_goal=parent2.name) + + appraisal = frappe.db.exists("Appraisal", {"appraisal_cycle": cycle.name, "employee": self.employee1}) + appraisal = frappe.get_doc("Appraisal", appraisal) + + # Quality KRA, 30% weightage + self.assertEqual(appraisal.appraisal_kra[0].goal_completion, 12.5) + self.assertEqual(appraisal.appraisal_kra[0].goal_score, 3.75) + + # Development KRA, 70% weightage + self.assertEqual(appraisal.appraisal_kra[1].goal_completion, 50) + self.assertEqual(appraisal.appraisal_kra[1].goal_score, 35) + + self.assertEqual(appraisal.goal_score_percentage, 38.75) + self.assertEqual(appraisal.total_score, 1.938) + self.assertEqual(appraisal.final_score, 0.646) + + def test_goal_score_after_parent_goal_change(self): + """ + BEFORE + parent1 (50%) (Quality) + |_ child1 (50%) + + parent2 (25%) (Development) + |_ child2_1 (50%) + |_ child2_2 + + AFTER + parent1 (50%) (Quality) + |_ child1 (50%) + |_ child2_1 (50%) + + parent2 (0%) (Development) + |_ child2_2 + """ + cycle = create_appraisal_cycle(designation="Engineer") + cycle.create_appraisals() + + parent1 = create_goal(self.employee1, "Quality", 1, appraisal_cycle=cycle.name) + # child1 + create_goal(self.employee1, parent_goal=parent1.name, progress=50) + + parent2 = create_goal(self.employee1, "Development", 1, appraisal_cycle=cycle.name) + child2_1 = create_goal(self.employee1, parent_goal=parent2.name, progress=50) + # child2_2 + create_goal(self.employee1, parent_goal=parent2.name) + + appraisal = frappe.db.exists("Appraisal", {"appraisal_cycle": cycle.name, "employee": self.employee1}) + appraisal = frappe.get_doc("Appraisal", appraisal) + + # Quality KRA, 30% weightage + self.assertEqual(appraisal.appraisal_kra[0].goal_completion, 50) + self.assertEqual(appraisal.appraisal_kra[0].goal_score, 15) + + # Development KRA, 70% weightage + self.assertEqual(appraisal.appraisal_kra[1].goal_completion, 25) + self.assertEqual(appraisal.appraisal_kra[1].goal_score, 17.5) + + # Parent changed. Old parent's KRA score should be updated + child2_1.parent_goal = parent1.name + child2_1.save() + appraisal.reload() + + # Quality KRA, 30% weightage + self.assertEqual(appraisal.appraisal_kra[0].goal_completion, 50) + self.assertEqual(appraisal.appraisal_kra[0].goal_score, 15) + + # Development KRA, 70% weightage + self.assertEqual(appraisal.appraisal_kra[1].goal_completion, 0) + self.assertEqual(appraisal.appraisal_kra[1].goal_score, 0) + + def test_goal_score_after_kra_change(self): + cycle = create_appraisal_cycle(designation="Engineer") + cycle.create_appraisals() + + goal = create_goal(self.employee1, "Quality", appraisal_cycle=cycle.name, progress=50) + + appraisal = frappe.db.exists("Appraisal", {"appraisal_cycle": cycle.name, "employee": self.employee1}) + appraisal = frappe.get_doc("Appraisal", appraisal) + + # Quality KRA, 30% weightage + self.assertEqual(appraisal.appraisal_kra[0].goal_completion, 50) + self.assertEqual(appraisal.appraisal_kra[0].goal_score, 15) + + goal.kra = "Development" + goal.save() + + # goal completion should now contribute to Development KRA score, instead of Quality (row 1) + appraisal.reload() + self.assertEqual(appraisal.appraisal_kra[0].goal_completion, 0) + self.assertEqual(appraisal.appraisal_kra[0].goal_score, 0) + + self.assertEqual(appraisal.appraisal_kra[1].goal_completion, 50) + self.assertEqual(appraisal.appraisal_kra[1].goal_score, 35) + + def test_goal_score_after_goal_deletion(self): + cycle = create_appraisal_cycle(designation="Engineer") + cycle.create_appraisals() + + goal = create_goal(self.employee1, "Quality", appraisal_cycle=cycle.name, progress=50) + + appraisal = frappe.db.exists("Appraisal", {"appraisal_cycle": cycle.name, "employee": self.employee1}) + appraisal = frappe.get_doc("Appraisal", appraisal) + + # Quality KRA, 30% weightage + self.assertEqual(appraisal.appraisal_kra[0].goal_completion, 50) + self.assertEqual(appraisal.appraisal_kra[0].goal_score, 15) + + goal.delete() + appraisal.reload() + self.assertEqual(appraisal.appraisal_kra[0].goal_completion, 0) + self.assertEqual(appraisal.appraisal_kra[0].goal_score, 0) + + def test_calculate_self_appraisal_score(self): + cycle = create_appraisal_cycle(designation="Engineer") + cycle.create_appraisals() + + appraisal = frappe.db.exists("Appraisal", {"appraisal_cycle": cycle.name, "employee": self.employee1}) + appraisal = frappe.get_doc("Appraisal", appraisal) + + ratings = appraisal.self_ratings + # 70% weightage + ratings[0].rating = 0.8 + # 30% weightage + ratings[1].rating = 0.7 + + appraisal.save() + self.assertEqual(appraisal.self_score, 3.85) + + def test_cycle_completion(self): + cycle = create_appraisal_cycle(designation="Engineer") + cycle.create_appraisals() + + # unsubmitted appraisals + self.assertRaises(frappe.ValidationError, cycle.complete_cycle) + + appraisal = frappe.db.exists("Appraisal", {"appraisal_cycle": cycle.name, "employee": self.employee1}) + appraisal = frappe.get_doc("Appraisal", appraisal) + appraisal.submit() + + cycle.complete_cycle() + appraisal = frappe.get_doc( + { + "doctype": "Appraisal", + "employee": self.employee1, + "appraisal_cycle": cycle.name, + "appraisal_template": self.template.name, + } + ) + + # transaction against a Completed cycle + self.assertRaises(frappe.ValidationError, appraisal.insert) + + def test_cycle_summary(self): + employee2 = make_employee("test_appraisal2@example.com", company=self.company, designation="Engineer") + + cycle = create_appraisal_cycle(designation="Engineer") + cycle.create_appraisals() + + appraisal = frappe.db.exists("Appraisal", {"appraisal_cycle": cycle.name, "employee": self.employee1}) + appraisal = frappe.get_doc("Appraisal", appraisal) + + create_goal(self.employee1, "Quality", appraisal_cycle=cycle.name) + feedback = create_performance_feedback( + self.employee1, + employee2, + appraisal.name, + ) + ratings = feedback.feedback_ratings + ratings[0].rating = 0.8 # 70% weightage + ratings[1].rating = 0.7 # 30% weightage + feedback.submit() + + summary = get_appraisal_cycle_summary(cycle.name) + + expected_data = { + "appraisees": 2, + "self_appraisal_pending": 2, + "goals_missing": 1, + "feedback_missing": 1, + } + self.assertEqual(summary, expected_data) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js new file mode 100644 index 000000000..e6326125a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js @@ -0,0 +1,177 @@ +// Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Appraisal Cycle", { + refresh(frm) { + frm.set_query("department", () => { + return { + filters: { + company: frm.doc.company, + }, + }; + }); + + frm.trigger("show_custom_buttons"); + frm.trigger("show_appraisal_summary"); + frm.trigger("set_autocompletions_for_final_score_formula"); + }, + + show_custom_buttons(frm) { + if (frm.doc.__islocal) return; + + frm.add_custom_button(__("View Goals"), () => { + frappe.route_options = { + company: frm.doc.company, + appraisal_cycle: frm.doc.name, + }; + frappe.set_route("Tree", "Goal"); + }); + + let appraisals_created = frm.doc.__onload?.appraisals_created; + + if (frm.doc.status !== "Completed") { + if (appraisals_created) { + frm.add_custom_button(__("Create Appraisals"), () => { + frm.trigger("create_appraisals"); + }); + } else { + frm.page.set_primary_action(__("Create Appraisals"), () => { + frm.trigger("create_appraisals"); + }); + } + } + + if (frm.doc.status === "Not Started") { + if (appraisals_created) { + frm.page.set_primary_action(__("Start"), () => { + frm.set_value("status", "In Progress"); + frm.save(); + }); + } else { + frm.add_custom_button(__("Start"), () => { + frm.set_value("status", "In Progress"); + frm.save(); + }); + } + } else if (frm.doc.status === "In Progress") { + if (appraisals_created) { + frm.page.set_primary_action(__("Mark as Completed"), () => { + frm.trigger("complete_cycle"); + }); + } else { + frm.add_custom_button(__("Mark as Completed"), () => { + frm.trigger("complete_cycle"); + }); + } + } else if (frm.doc.status === "Completed") { + frm.add_custom_button(__("Mark as In Progress"), () => { + frm.set_value("status", "In Progress"); + frm.save(); + }); + } + }, + + set_autocompletions_for_final_score_formula: async (frm) => { + const autocompletions = [ + { + value: "goal_score", + score: 10, + meta: __("Total Goal Score"), + }, + { + value: "average_feedback_score", + score: 10, + meta: __("Average Feedback Score"), + }, + { + value: "self_appraisal_score", + score: 10, + meta: __("Self Appraisal Score"), + }, + ]; + + await Promise.all( + ["Employee", "Appraisal Cycle", "Appraisal"].map((doctype) => + frappe.model.with_doctype(doctype, () => { + autocompletions.push(...hrms.get_doctype_fields_for_autocompletion(doctype)); + }), + ), + ); + + frm.set_df_property("final_score_formula", "autocompletions", autocompletions); + }, + + get_employees(frm) { + frappe.call({ + method: "set_employees", + doc: frm.doc, + freeze: true, + freeze_message: __("Fetching Employees"), + callback: function () { + refresh_field("appraisees"); + frm.dirty(); + }, + }); + }, + + create_appraisals(frm) { + frm.call({ + method: "create_appraisals", + doc: frm.doc, + freeze: true, + }).then((r) => { + if (!r.exc) { + frm.reload_doc(); + } + }); + }, + + complete_cycle(frm) { + let msg = __( + "This action will prevent making changes to the linked appraisal feedback/goals.", + ); + msg += "
    "; + msg += __("Are you sure you want to proceed?"); + + frappe.confirm(msg, () => { + frm.call({ + method: "complete_cycle", + doc: frm.doc, + freeze: true, + }).then((r) => { + if (!r.exc) { + frm.reload_doc(); + } + }); + }); + }, + + show_appraisal_summary(frm) { + if (frm.doc.__islocal) return; + + frappe + .call("hrms.hr.doctype.appraisal_cycle.appraisal_cycle.get_appraisal_cycle_summary", { + cycle_name: frm.doc.name, + }) + .then((r) => { + if (r.message) { + frm.dashboard.add_indicator( + __("Appraisees: {0}", [r.message.appraisees]), + "blue", + ); + frm.dashboard.add_indicator( + __("Self Appraisal Pending: {0}", [r.message.self_appraisal_pending]), + "orange", + ); + frm.dashboard.add_indicator( + __("Employees without Feedback: {0}", [r.message.feedback_missing]), + "orange", + ); + frm.dashboard.add_indicator( + __("Employees without Goals: {0}", [r.message.goals_missing]), + "orange", + ); + } + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json new file mode 100644 index 000000000..8b7060d16 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json @@ -0,0 +1,274 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:cycle_name", + "creation": "2022-08-24 15:05:29.694466", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "overview_tab", + "cycle_name", + "company", + "status", + "column_break_3", + "start_date", + "end_date", + "section_break_4", + "description", + "settings_section", + "column_break_vhzx", + "kra_evaluation_method", + "section_break_zykh", + "calculate_final_score_based_on_formula", + "final_score_formula", + "applicable_for_tab", + "filters_section", + "branch", + "department", + "column_break_11", + "designation", + "employees_section", + "get_employees", + "appraisees" + ], + "fields": [ + { + "fieldname": "start_date", + "fieldtype": "Date", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Start Date", + "reqd": 1 + }, + { + "allow_in_quick_entry": 1, + "fieldname": "end_date", + "fieldtype": "Date", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "End Date", + "reqd": 1 + }, + { + "collapsible": 1, + "fieldname": "section_break_4", + "fieldtype": "Section Break", + "label": "Description" + }, + { + "allow_in_quick_entry": 1, + "fieldname": "description", + "fieldtype": "Text Editor" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "applicable_for_tab", + "fieldtype": "Tab Break", + "label": "Applicable For" + }, + { + "collapsible": 1, + "collapsible_depends_on": "eval: doc.__islocal", + "description": "Set optional filters to fetch employees in the appraisee list", + "fieldname": "filters_section", + "fieldtype": "Section Break", + "label": "Filters" + }, + { + "fieldname": "branch", + "fieldtype": "Link", + "label": "Branch", + "options": "Branch" + }, + { + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department" + }, + { + "fieldname": "column_break_11", + "fieldtype": "Column Break" + }, + { + "fieldname": "designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation" + }, + { + "fieldname": "get_employees", + "fieldtype": "Button", + "label": "Get Employees" + }, + { + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "employees_section", + "fieldtype": "Section Break", + "label": "Employees" + }, + { + "fieldname": "appraisees", + "fieldtype": "Table", + "options": "Appraisee" + }, + { + "fieldname": "cycle_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Cycle Name", + "reqd": 1, + "unique": 1 + }, + { + "fieldname": "overview_tab", + "fieldtype": "Tab Break", + "label": "Overview" + }, + { + "fieldname": "settings_section", + "fieldtype": "Section Break", + "label": "Settings" + }, + { + "default": "Automated Based on Goal Progress", + "fieldname": "kra_evaluation_method", + "fieldtype": "Select", + "label": "KRA Evaluation Method", + "options": "Automated Based on Goal Progress\nManual Rating" + }, + { + "default": "Not Started", + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Status", + "options": "Not Started\nIn Progress\nCompleted", + "read_only": 1 + }, + { + "depends_on": "calculate_final_score_based_on_formula", + "fieldname": "final_score_formula", + "fieldtype": "Code", + "label": "Final Score Formula", + "mandatory_depends_on": "calculate_final_score_based_on_formula", + "max_height": "5rem", + "options": "PythonExpression" + }, + { + "default": "0", + "description": "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula", + "fieldname": "calculate_final_score_based_on_formula", + "fieldtype": "Check", + "label": "Calculate Final Score based on Formula" + }, + { + "fieldname": "column_break_vhzx", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_zykh", + "fieldtype": "Section Break", + "hide_border": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [ + { + "link_doctype": "Appraisal", + "link_fieldname": "appraisal_cycle" + }, + { + "link_doctype": "Employee Performance Feedback", + "link_fieldname": "appraisal_cycle" + }, + { + "link_doctype": "Goal", + "link_fieldname": "appraisal_cycle" + } + ], + "modified": "2024-05-29 18:15:06.443594", + "modified_by": "Administrator", + "module": "HR", + "name": "Appraisal Cycle", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "select": 1, + "share": 1 + } + ], + "search_fields": "start_date, end_date", + "sort_field": "creation", + "sort_order": "DESC", + "states": [ + { + "color": "Gray", + "title": "Not Started" + }, + { + "color": "Orange", + "title": "In Progress" + }, + { + "color": "Green", + "title": "Completed" + } + ], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py new file mode 100644 index 000000000..582bc1131 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py @@ -0,0 +1,278 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.query_builder.functions import Count +from frappe.query_builder.terms import SubQuery + + +class AppraisalCycle(Document): + def onload(self): + self.set_onload("appraisals_created", self.check_if_appraisals_exist()) + + def validate(self): + self.validate_from_to_dates("start_date", "end_date") + self.validate_evaluation_method_change() + + def validate_evaluation_method_change(self): + if self.is_new(): + return + + if self.has_value_changed("kra_evaluation_method") and self.check_if_appraisals_exist(): + frappe.throw( + _( + "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" + ), + title=_("Not Allowed"), + ) + + def check_if_appraisals_exist(self): + return frappe.db.exists( + "Appraisal", + {"appraisal_cycle": self.name, "docstatus": ["!=", 2]}, + ) + + @frappe.whitelist() + def set_employees(self): + """Pull employees in appraisee list based on selected filters""" + employees = self.get_employees_for_appraisal() + appraisal_templates = self.get_appraisal_template_map() + + if employees: + self.set("appraisees", []) + template_missing = False + + for data in employees: + if not appraisal_templates.get(data.designation): + template_missing = True + + self.append( + "appraisees", + { + "employee": data.name, + "employee_name": data.employee_name, + "branch": data.branch, + "designation": data.designation, + "department": data.department, + "appraisal_template": appraisal_templates.get(data.designation), + }, + ) + + if template_missing: + self.show_missing_template_message() + else: + self.set("appraisees", []) + frappe.msgprint(_("No employees found for the selected criteria")) + + return self + + def get_employees_for_appraisal(self): + filters = { + "status": "Active", + "company": self.company, + } + if self.department: + filters["department"] = self.department + if self.branch: + filters["branch"] = self.branch + if self.designation: + filters["designation"] = self.designation + + employees = frappe.db.get_all( + "Employee", + filters=filters, + fields=[ + "name", + "employee_name", + "branch", + "designation", + "department", + ], + ) + + return employees + + def get_appraisal_template_map(self): + designations = frappe.get_all("Designation", fields=["name", "appraisal_template"]) + appraisal_templates = frappe._dict() + + for entry in designations: + appraisal_templates[entry.name] = entry.appraisal_template + + return appraisal_templates + + @frappe.whitelist() + def create_appraisals(self): + self.check_permission("write") + if not self.appraisees: + frappe.throw( + _("Please select employees to create appraisals for"), title=_("No Employees Selected") + ) + + if not all(appraisee.appraisal_template for appraisee in self.appraisees): + self.show_missing_template_message(raise_exception=True) + + if len(self.appraisees) > 30: + frappe.enqueue( + create_appraisals_for_cycle, + queue="long", + timeout=600, + appraisal_cycle=self, + ) + frappe.msgprint( + _("Appraisal creation is queued. It may take a few minutes."), + alert=True, + indicator="blue", + ) + else: + create_appraisals_for_cycle(self, publish_progress=True) + # since this method is called via frm.call this doc needs to be updated manually + self.reload() + + def show_missing_template_message(self, raise_exception=False): + msg = _("Appraisal Template not found for some designations.") + msg += "

    " + msg += _( + "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." + ).format(f"""
    Designations""") + + frappe.msgprint( + msg, title=_("Appraisal Template Missing"), indicator="yellow", raise_exception=raise_exception + ) + + @frappe.whitelist() + def complete_cycle(self): + self.check_permission("write") + + draft_appraisals = frappe.db.count("Appraisal", {"appraisal_cycle": self.name, "docstatus": 0}) + + if draft_appraisals: + link = frappe.utils.get_url_to_list("Appraisal") + f"?status=Draft&appraisal_cycle={self.name}" + link = f"""documents""" + + msg = _("{0} Appraisal(s) are not submitted yet").format(frappe.bold(draft_appraisals)) + msg += "

    " + msg += _("Please submit the {0} before marking the cycle as Completed").format(link) + frappe.throw(msg, title=_("Unsubmitted Appraisals")) + + self.status = "Completed" + self.save() + + +def create_appraisals_for_cycle(appraisal_cycle: AppraisalCycle, publish_progress: bool = False): + """ + Creates appraisals for employees in the appraisee list of appraisal cycle, + if not already created + """ + count = 0 + + for employee in appraisal_cycle.appraisees: + try: + appraisal = frappe.get_doc( + { + "doctype": "Appraisal", + "company": appraisal_cycle.company, + "appraisal_template": employee.appraisal_template, + "employee": employee.employee, + "appraisal_cycle": appraisal_cycle.name, + } + ) + + appraisal.rate_goals_manually = ( + 1 if appraisal_cycle.kra_evaluation_method == "Manual Rating" else 0 + ) + appraisal.set_kras_and_rating_criteria() + appraisal.insert() + + if publish_progress: + count += 1 + frappe.publish_progress( + count * 100 / len(appraisal_cycle.appraisees), title=_("Creating Appraisals") + "..." + ) + except frappe.DuplicateEntryError: + # already exists + pass + + +def validate_active_appraisal_cycle(appraisal_cycle: str) -> None: + if frappe.db.get_value("Appraisal Cycle", appraisal_cycle, "status") == "Completed": + msg = _("Cannot create or change transactions against an Appraisal Cycle with status {0}.").format( + frappe.bold(_("Completed")) + ) + msg += "

    " + msg += _("Set the status to {0} if required.").format(frappe.bold(_("In Progress"))) + + frappe.throw(msg, title=_("Not Allowed")) + + +@frappe.whitelist() +def get_appraisal_cycle_summary(cycle_name: str) -> dict: + summary = frappe._dict() + + summary["appraisees"] = frappe.db.count( + "Appraisal", {"appraisal_cycle": cycle_name, "docstatus": ("!=", 2)} + ) + summary["self_appraisal_pending"] = frappe.db.count( + "Appraisal", {"appraisal_cycle": cycle_name, "docstatus": 0, "self_score": 0} + ) + summary["goals_missing"] = get_employees_without_goals(cycle_name) + summary["feedback_missing"] = get_employees_without_feedback(cycle_name) + + return summary + + +def get_employees_without_goals(cycle_name: str) -> int: + Goal = frappe.qb.DocType("Goal") + Appraisal = frappe.qb.DocType("Appraisal") + count = Count("*").as_("count") + + filtered_records = SubQuery( + frappe.qb.from_(Goal) + .select(Goal.employee) + .distinct() + .where((Goal.appraisal_cycle == cycle_name) & (Goal.status != "Archived")) + ) + + goals_missing = ( + frappe.qb.from_(Appraisal) + .select(count) + .where( + (Appraisal.appraisal_cycle == cycle_name) + & (Appraisal.docstatus != 2) + & (Appraisal.employee.notin(filtered_records)) + ) + ).run(as_dict=True) + + return goals_missing[0].count + + +@frappe.whitelist() +def get_employees_without_feedback(cycle_name: str | None = None) -> int: + Feedback = frappe.qb.DocType("Employee Performance Feedback") + Appraisal = frappe.qb.DocType("Appraisal") + count = Count("*").as_("count") + if not cycle_name: + cycle_name = frappe.get_value( + "Appraisal Cycle", {"status": "In Progress"}, order_by="start_date desc" + ) + + filtered_records = SubQuery( + frappe.qb.from_(Feedback) + .select(Feedback.employee) + .distinct() + .where((Feedback.appraisal_cycle == cycle_name) & (Feedback.docstatus == 1)) + ) + + feedback_missing = ( + frappe.qb.from_(Appraisal) + .select(count) + .where( + (Appraisal.appraisal_cycle == cycle_name) + & (Appraisal.docstatus != 2) + & (Appraisal.employee.notin(filtered_records)) + ) + ).run(as_dict=True) + + return feedback_missing[0].count diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/test_appraisal_cycle.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/test_appraisal_cycle.py new file mode 100644 index 000000000..f66d8de63 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_cycle/test_appraisal_cycle.py @@ -0,0 +1,84 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase + +from erpnext.setup.doctype.designation.test_designation import create_designation +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.appraisal_template.test_appraisal_template import create_appraisal_template +from hrms.tests.test_utils import create_company + + +class TestAppraisalCycle(IntegrationTestCase): + def setUp(self): + company = create_company("_Test Appraisal").name + self.template = create_appraisal_template() + + engineer = create_designation(designation_name="Engineer") + engineer.appraisal_template = self.template.name + engineer.save() + + create_designation(designation_name="Consultant") + + self.employee1 = make_employee("employee1@example.com", company=company, designation="Engineer") + self.employee2 = make_employee("employee2@example.com", company=company, designation="Consultant") + + def test_set_employees(self): + cycle = create_appraisal_cycle(designation="Engineer") + + self.assertEqual(len(cycle.appraisees), 1) + self.assertEqual(cycle.appraisees[0].employee, self.employee1) + + def test_create_appraisals(self): + cycle = create_appraisal_cycle(designation="Engineer") + cycle.create_appraisals() + + appraisals = frappe.db.get_all("Appraisal", filters={"appraisal_cycle": cycle.name}) + self.assertEqual(len(appraisals), 1) + + appraisal = frappe.get_doc("Appraisal", appraisals[0].name) + + for i in range(2): + # check if KRAs are set + self.assertEqual(appraisal.appraisal_kra[i].kra, self.template.goals[i].key_result_area) + self.assertEqual(appraisal.appraisal_kra[i].per_weightage, self.template.goals[i].per_weightage) + + # check if rating criteria is set + self.assertEqual(appraisal.self_ratings[i].criteria, self.template.rating_criteria[i].criteria) + self.assertEqual( + appraisal.self_ratings[i].per_weightage, self.template.rating_criteria[i].per_weightage + ) + + +def create_appraisal_cycle(**args): + args = frappe._dict(args) + + name = args.name or "Q1" + if frappe.db.exists("Appraisal Cycle", name): + frappe.delete_doc("Appraisal Cycle", name, force=True) + + appraisal_cycle = frappe.get_doc( + { + "doctype": "Appraisal Cycle", + "cycle_name": name, + "company": args.company or "_Test Appraisal", + "start_date": args.start_date or "2022-01-01", + "end_date": args.end_date or "2022-03-31", + } + ) + + if args.kra_evaluation_method: + appraisal_cycle.kra_evaluation_method = args.kra_evaluation_method + + filters = {} + for filter_by in ["department", "designation", "branch"]: + if args.get(filter_by): + filters[filter_by] = args.get(filter_by) + + appraisal_cycle.update(filters) + appraisal_cycle.set_employees() + appraisal_cycle.insert() + + return appraisal_cycle diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/README.md new file mode 100644 index 000000000..851a403bd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/README.md @@ -0,0 +1 @@ +Goal for the parent Appraisal. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/appraisal_goal.json b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/appraisal_goal.json new file mode 100644 index 000000000..9956e8fee --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/appraisal_goal.json @@ -0,0 +1,90 @@ +{ + "actions": [], + "autoname": "hash", + "creation": "2013-02-22 01:27:44", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "kra", + "section_break_2", + "per_weightage", + "column_break_4", + "score", + "section_break_6", + "score_earned" + ], + "fields": [ + { + "description": "Key Responsibility Area", + "fieldname": "kra", + "fieldtype": "Small Text", + "in_list_view": 1, + "label": "Goal", + "oldfieldname": "kra", + "oldfieldtype": "Small Text", + "print_width": "240px", + "reqd": 1, + "width": "240px" + }, + { + "fieldname": "section_break_2", + "fieldtype": "Section Break" + }, + { + "fieldname": "per_weightage", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Weightage (%)", + "oldfieldname": "per_weightage", + "oldfieldtype": "Currency", + "print_width": "70px", + "reqd": 1, + "width": "70px" + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "fieldname": "score", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Score", + "no_copy": 1, + "oldfieldname": "score", + "oldfieldtype": "Select", + "print_width": "70px", + "width": "70px" + }, + { + "fieldname": "section_break_6", + "fieldtype": "Section Break" + }, + { + "fieldname": "score_earned", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Score Earned", + "no_copy": 1, + "oldfieldname": "score_earned", + "oldfieldtype": "Currency", + "print_width": "70px", + "read_only": 1, + "width": "70px" + } + ], + "idx": 1, + "istable": 1, + "links": [], + "modified": "2025-09-24 15:39:16.891078", + "modified_by": "Administrator", + "module": "HR", + "name": "Appraisal Goal", + "owner": "Administrator", + "permissions": [], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/appraisal_goal.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/appraisal_goal.py new file mode 100644 index 000000000..3cbc9188e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_goal/appraisal_goal.py @@ -0,0 +1,9 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +from frappe.model.document import Document + + +class AppraisalGoal(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_kra/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_kra/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_kra/appraisal_kra.json b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_kra/appraisal_kra.json new file mode 100644 index 000000000..8dfaed01f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_kra/appraisal_kra.json @@ -0,0 +1,74 @@ +{ + "actions": [], + "autoname": "hash", + "creation": "2022-08-26 09:38:43.014018", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "kra", + "per_weightage", + "column_break_3", + "goal_completion", + "goal_score" + ], + "fields": [ + { + "columns": 2, + "description": "Key Performance Area", + "fieldname": "kra", + "fieldtype": "Link", + "in_list_view": 1, + "label": "KRA", + "oldfieldname": "kra", + "oldfieldtype": "Small Text", + "options": "KRA", + "print_width": "200px", + "reqd": 1, + "width": "200px" + }, + { + "fieldname": "per_weightage", + "fieldtype": "Percent", + "in_list_view": 1, + "label": "Weightage (%)", + "oldfieldname": "per_weightage", + "oldfieldtype": "Currency", + "print_width": "100px", + "reqd": 1, + "width": "100px" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "goal_completion", + "fieldtype": "Percent", + "in_list_view": 1, + "label": "Goal Completion (%)", + "precision": "2", + "read_only": 1 + }, + { + "fieldname": "goal_score", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Goal Score (weighted)", + "precision": "2", + "read_only": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:06:31.917170", + "modified_by": "Administrator", + "module": "HR", + "name": "Appraisal KRA", + "naming_rule": "Random", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_kra/appraisal_kra.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_kra/appraisal_kra.py new file mode 100644 index 000000000..2a1be93fc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_kra/appraisal_kra.py @@ -0,0 +1,9 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class AppraisalKRA(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/README.md new file mode 100644 index 000000000..d58a74486 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/README.md @@ -0,0 +1 @@ +Standard set of goals for an Employee / Designation / Job Profile. New Appraisal transactions can be created from the Template. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/appraisal_template.js b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/appraisal_template.js new file mode 100644 index 000000000..35f0a50eb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/appraisal_template.js @@ -0,0 +1,11 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Appraisal Template", { + setup(frm) { + frm.get_field("rating_criteria").grid.editable_fields = [ + { fieldname: "criteria", columns: 6 }, + { fieldname: "per_weightage", columns: 5 }, + ]; + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/appraisal_template.json b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/appraisal_template.json new file mode 100644 index 000000000..01e563d0f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/appraisal_template.json @@ -0,0 +1,114 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "field:template_title", + "creation": "2012-07-03 13:30:39", + "doctype": "DocType", + "document_type": "Setup", + "engine": "InnoDB", + "field_order": [ + "template_title", + "section_break_5", + "description", + "section_break_7", + "goals", + "rating_criteria" + ], + "fields": [ + { + "fieldname": "description", + "fieldtype": "Small Text", + "in_list_view": 1, + "oldfieldname": "description", + "oldfieldtype": "Small Text", + "print_width": "300px", + "width": "300px" + }, + { + "fieldname": "goals", + "fieldtype": "Table", + "label": "KRAs", + "oldfieldname": "kra_sheet", + "oldfieldtype": "Table", + "options": "Appraisal Template Goal", + "reqd": 1 + }, + { + "collapsible": 1, + "fieldname": "section_break_5", + "fieldtype": "Section Break", + "label": "Description" + }, + { + "fieldname": "section_break_7", + "fieldtype": "Section Break" + }, + { + "description": "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal", + "fieldname": "rating_criteria", + "fieldtype": "Table", + "label": "Rating Criteria", + "options": "Employee Feedback Rating" + }, + { + "fieldname": "template_title", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Appraisal Template Title", + "oldfieldname": "kra_title", + "oldfieldtype": "Data", + "reqd": 1, + "unique": 1 + } + ], + "icon": "icon-file-text", + "idx": 1, + "links": [ + { + "link_doctype": "Appraisal", + "link_fieldname": "appraisal_template" + }, + { + "link_doctype": "Designation", + "link_fieldname": "appraisal_template" + } + ], + "modified": "2024-03-27 13:06:32.049388", + "modified_by": "Administrator", + "module": "HR", + "name": "Appraisal Template", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "read": 1, + "role": "Employee" + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/appraisal_template.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/appraisal_template.py new file mode 100644 index 000000000..26928f2bd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/appraisal_template.py @@ -0,0 +1,16 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import flt + +from hrms.mixins.appraisal import AppraisalMixin + + +class AppraisalTemplate(Document, AppraisalMixin): + def validate(self): + self.validate_total_weightage("goals", "KRAs") + self.validate_total_weightage("rating_criteria", "Criteria") diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/test_appraisal_template.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/test_appraisal_template.py new file mode 100644 index 000000000..1d86bf965 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template/test_appraisal_template.py @@ -0,0 +1,81 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase + + +class TestAppraisalTemplate(IntegrationTestCase): + def test_incorrect_weightage_allocation(self): + template = create_appraisal_template() + template.goals[1].per_weightage = 69.99 + + self.assertRaises(frappe.ValidationError, template.save) + + template.reload() + template.goals[1].per_weightage = 70.00 + template.save() + + +def create_kras(kras): + for entry in kras: + if not frappe.db.exists("KRA", entry): + frappe.get_doc( + { + "doctype": "KRA", + "title": entry, + } + ).insert() + + +def create_criteria(criteria): + for entry in criteria: + if not frappe.db.exists("Employee Feedback Criteria", entry): + frappe.get_doc( + { + "doctype": "Employee Feedback Criteria", + "criteria": entry, + } + ).insert() + + +def create_appraisal_template(title=None, kras=None, rating_criteria=None): + name = title or "Engineering" + + if frappe.db.exists("Appraisal Template", name): + return frappe.get_doc("Appraisal Template", name) + + if not kras: + kras = [ + { + "key_result_area": "Quality", + "per_weightage": 30, + }, + { + "key_result_area": "Development", + "per_weightage": 70, + }, + ] + + if not rating_criteria: + rating_criteria = [ + { + "criteria": "Problem Solving", + "per_weightage": 70, + }, + { + "criteria": "Excellence", + "per_weightage": 30, + }, + ] + + create_kras([entry["key_result_area"] for entry in kras]) + create_criteria([entry["criteria"] for entry in rating_criteria]) + + appraisal_template = frappe.new_doc("Appraisal Template") + appraisal_template.template_title = name + appraisal_template.update({"goals": kras}) + appraisal_template.update({"rating_criteria": rating_criteria}) + appraisal_template.insert() + + return appraisal_template diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/README.md new file mode 100644 index 000000000..1b81afbfc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/README.md @@ -0,0 +1 @@ +Goal details for the parent Appraisal Template. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json new file mode 100644 index 000000000..0db7ffdaa --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json @@ -0,0 +1,47 @@ +{ + "actions": [], + "autoname": "hash", + "creation": "2013-02-22 01:27:44", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "key_result_area", + "per_weightage" + ], + "fields": [ + { + "fieldname": "per_weightage", + "fieldtype": "Percent", + "in_list_view": 1, + "label": "Weightage (%)", + "oldfieldname": "per_weightage", + "oldfieldtype": "Currency", + "print_width": "100px", + "reqd": 1, + "width": "100px" + }, + { + "description": "Key Result Area", + "fieldname": "key_result_area", + "fieldtype": "Link", + "in_list_view": 1, + "label": "KRA", + "options": "KRA", + "reqd": 1 + } + ], + "idx": 1, + "istable": 1, + "links": [], + "modified": "2024-03-27 13:06:32.229356", + "modified_by": "Administrator", + "module": "HR", + "name": "Appraisal Template Goal", + "naming_rule": "Random", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.py new file mode 100644 index 000000000..e6c5f64e0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.py @@ -0,0 +1,9 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +from frappe.model.document import Document + + +class AppraisalTemplateGoal(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisee/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisee/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisee/appraisee.json b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisee/appraisee.json new file mode 100644 index 000000000..c94393ad9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisee/appraisee.json @@ -0,0 +1,86 @@ +{ + "actions": [], + "creation": "2022-08-24 21:07:51.412787", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "column_break_3", + "appraisal_template", + "department", + "designation", + "branch" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Employee Name", + "read_only": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fetch_from": "employee.designation", + "fieldname": "designation", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Designation", + "read_only": 1 + }, + { + "fetch_from": "employee.branch", + "fieldname": "branch", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Branch", + "options": "Branch", + "read_only": 1 + }, + { + "fieldname": "appraisal_template", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Appraisal Template", + "options": "Appraisal Template" + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:06:32.363365", + "modified_by": "Administrator", + "module": "HR", + "name": "Appraisee", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "read_only": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/appraisee/appraisee.py b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisee/appraisee.py new file mode 100644 index 000000000..6795731f1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/appraisee/appraisee.py @@ -0,0 +1,9 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class Appraisee(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/README.md new file mode 100644 index 000000000..f420b0709 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/README.md @@ -0,0 +1 @@ +Attendance record of an Employee on a particular date. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance.js b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance.js new file mode 100644 index 000000000..17d453117 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance.js @@ -0,0 +1,30 @@ +// Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.ui.form.on("Attendance", { + refresh(frm) { + if (frm.doc.__islocal && !frm.doc.attendance_date) { + frm.set_value("attendance_date", frappe.datetime.get_today()); + } + + frm.set_query("employee", () => { + return { + query: "erpnext.controllers.queries.employee_query", + }; + }); + + if (frm.doc.docstatus === 1 && frm.doc.status === "Absent") { + frm.add_custom_button( + __("Attendance Request"), + () => { + frappe.new_doc("Attendance Request", { + employee: frm.doc.employee, + from_date: frm.doc.attendance_date, + to_date: frm.doc.attendance_date, + }); + }, + __("Create"), + ); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance.json b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance.json new file mode 100644 index 000000000..508f15f4f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance.json @@ -0,0 +1,328 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "naming_series:", + "creation": "2013-01-10 16:34:13", + "doctype": "DocType", + "document_type": "Setup", + "engine": "InnoDB", + "field_order": [ + "attendance_details", + "naming_series", + "employee", + "employee_name", + "working_hours", + "status", + "leave_type", + "leave_application", + "column_break0", + "attendance_date", + "company", + "department", + "attendance_request", + "half_day_status", + "details_section", + "shift", + "in_time", + "out_time", + "column_break_18", + "late_entry", + "early_exit", + "amended_from", + "modify_half_day_status", + "overtime_section", + "overtime_type", + "actual_overtime_duration", + "column_break_idku", + "standard_working_hours" + ], + "fields": [ + { + "fieldname": "attendance_details", + "fieldtype": "Section Break", + "oldfieldtype": "Section Break", + "options": "Simple" + }, + { + "fieldname": "naming_series", + "fieldtype": "Select", + "label": "Series", + "no_copy": 1, + "oldfieldname": "naming_series", + "oldfieldtype": "Select", + "options": "HR-ATT-.YYYY.-", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_global_search": 1, + "in_standard_filter": 1, + "label": "Employee", + "oldfieldname": "employee", + "oldfieldtype": "Link", + "options": "Employee", + "reqd": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "in_global_search": 1, + "label": "Employee Name", + "oldfieldname": "employee_name", + "oldfieldtype": "Data", + "read_only": 1 + }, + { + "depends_on": "working_hours", + "fieldname": "working_hours", + "fieldtype": "Float", + "label": "Working Hours", + "precision": "2", + "read_only": 1 + }, + { + "default": "Present", + "fieldname": "status", + "fieldtype": "Select", + "in_standard_filter": 1, + "label": "Status", + "no_copy": 1, + "oldfieldname": "status", + "oldfieldtype": "Select", + "options": "\nPresent\nAbsent\nOn Leave\nHalf Day\nWork From Home", + "reqd": 1, + "search_index": 1 + }, + { + "depends_on": "eval:in_list([\"On Leave\", \"Half Day\"], doc.status)", + "fieldname": "leave_type", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Leave Type", + "mandatory_depends_on": "eval:in_list([\"On Leave\", \"Half Day\"], doc.status)", + "oldfieldname": "leave_type", + "oldfieldtype": "Link", + "options": "Leave Type" + }, + { + "fieldname": "leave_application", + "fieldtype": "Link", + "label": "Leave Application", + "no_copy": 1, + "options": "Leave Application", + "read_only": 1 + }, + { + "fieldname": "column_break0", + "fieldtype": "Column Break", + "oldfieldtype": "Column Break", + "width": "50%" + }, + { + "fieldname": "attendance_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Attendance Date", + "oldfieldname": "attendance_date", + "oldfieldtype": "Date", + "reqd": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "oldfieldname": "company", + "oldfieldtype": "Link", + "options": "Company", + "read_only": 1, + "remember_last_selected_value": 1, + "reqd": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "shift", + "fieldtype": "Link", + "label": "Shift", + "options": "Shift Type" + }, + { + "fieldname": "attendance_request", + "fieldtype": "Link", + "label": "Attendance Request", + "options": "Attendance Request", + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "label": "Amended From", + "no_copy": 1, + "options": "Attendance", + "print_hide": 1, + "read_only": 1 + }, + { + "default": "0", + "fieldname": "late_entry", + "fieldtype": "Check", + "label": "Late Entry" + }, + { + "default": "0", + "fieldname": "early_exit", + "fieldtype": "Check", + "label": "Early Exit" + }, + { + "fieldname": "details_section", + "fieldtype": "Section Break", + "label": "Details" + }, + { + "depends_on": "shift", + "fieldname": "in_time", + "fieldtype": "Datetime", + "label": "In Time", + "read_only": 1 + }, + { + "depends_on": "shift", + "fieldname": "out_time", + "fieldtype": "Datetime", + "label": "Out Time", + "read_only": 1 + }, + { + "fieldname": "column_break_18", + "fieldtype": "Column Break" + }, + { + "depends_on": "eval:doc.status==\"Half Day\";", + "fieldname": "half_day_status", + "fieldtype": "Select", + "label": "Status for Other Half", + "no_copy": 1, + "options": "\nPresent\nAbsent" + }, + { + "default": "0", + "fieldname": "modify_half_day_status", + "fieldtype": "Check", + "hidden": 1, + "label": "modify_half_day_status" + }, + { + "depends_on": "overtime_type", + "fieldname": "overtime_section", + "fieldtype": "Section Break", + "label": "Overtime" + }, + { + "fieldname": "overtime_type", + "fieldtype": "Link", + "label": "Overtime Type", + "options": "Overtime Type", + "read_only": 1 + }, + { + "fieldname": "column_break_idku", + "fieldtype": "Column Break" + }, + { + "fieldname": "standard_working_hours", + "fieldtype": "Float", + "label": "Standard Working Hours", + "read_only": 1 + }, + { + "fieldname": "actual_overtime_duration", + "fieldtype": "Float", + "label": "Actual Overtime Duration", + "read_only": 1 + } + ], + "icon": "fa fa-ok", + "idx": 1, + "is_submittable": 1, + "links": [], + "modified": "2025-12-16 17:44:13.859387", + "modified_by": "Administrator", + "module": "HR", + "name": "Attendance", + "naming_rule": "By \"Naming Series\" field", + "owner": "Administrator", + "permissions": [ + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "import": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "select": 1, + "share": 1 + } + ], + "row_format": "Dynamic", + "search_fields": "employee,employee_name,attendance_date,status", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance.py b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance.py new file mode 100644 index 000000000..85bd54ea4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance.py @@ -0,0 +1,405 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +from datetime import date + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.query_builder.terms import ValueWrapper +from frappe.utils import ( + add_days, + cint, + cstr, + format_date, + get_datetime, + get_link_to_form, + getdate, + nowdate, +) + +import hrms +from hrms.hr.doctype.shift_assignment.shift_assignment import has_overlapping_timings +from hrms.hr.utils import ( + get_holidays_for_employee, + validate_active_employee, +) +from hrms.utils.holiday_list import get_holiday_dates_between_range + + +class DuplicateAttendanceError(frappe.ValidationError): + pass + + +class OverlappingShiftAttendanceError(frappe.ValidationError): + pass + + +class Attendance(Document): + def before_insert(self): + if self.half_day_status == "": + self.half_day_status = None + + def validate(self): + from erpnext.controllers.status_updater import validate_status + + validate_status(self.status, ["Present", "Absent", "On Leave", "Half Day", "Work From Home"]) + validate_active_employee(self.employee) + self.validate_attendance_date() + self.validate_duplicate_record() + self.validate_overlapping_shift_attendance() + self.validate_employee_status() + self.check_leave_record() + + def on_cancel(self): + self.unlink_attendance_from_checkins() + + def validate_attendance_date(self): + date_of_joining = frappe.db.get_value("Employee", self.employee, "date_of_joining") + + if date_of_joining and getdate(self.attendance_date) < getdate(date_of_joining): + frappe.throw( + _("Attendance date {0} can not be less than employee {1}'s joining date: {2}").format( + frappe.bold(format_date(self.attendance_date)), + frappe.bold(self.employee), + frappe.bold(format_date(date_of_joining)), + ) + ) + + def validate_duplicate_record(self): + duplicate = self.get_duplicate_attendance_record() + + if duplicate: + frappe.throw( + _("Attendance for employee {0} is already marked for the date {1}: {2}").format( + frappe.bold(self.employee), + frappe.bold(format_date(self.attendance_date)), + get_link_to_form("Attendance", duplicate), + ), + title=_("Duplicate Attendance"), + exc=DuplicateAttendanceError, + ) + + def get_duplicate_attendance_record(self) -> str | None: + Attendance = frappe.qb.DocType("Attendance") + query = ( + frappe.qb.from_(Attendance) + .select(Attendance.name) + .where( + (Attendance.employee == self.employee) + & (Attendance.docstatus < 2) + & (Attendance.attendance_date == self.attendance_date) + & (Attendance.name != self.name) + & ( + Attendance.half_day_status.isnull() + | (Attendance.half_day_status == "") + | (Attendance.modify_half_day_status == 0) + ) + ) + .for_update() + ) + + if self.shift: + query = query.where( + ((Attendance.shift.isnull()) | (Attendance.shift == "")) + | ( + ((Attendance.shift.isnotnull()) | (Attendance.shift != "")) + & (Attendance.shift == self.shift) + ) + ) + + duplicate = query.run(pluck=True) + + return duplicate[0] if duplicate else None + + def validate_overlapping_shift_attendance(self): + attendance = self.get_overlapping_shift_attendance() + + if attendance: + frappe.throw( + _("Attendance for employee {0} is already marked for an overlapping shift {1}: {2}").format( + frappe.bold(self.employee), + frappe.bold(attendance.shift), + get_link_to_form("Attendance", attendance.name), + ), + title=_("Overlapping Shift Attendance"), + exc=OverlappingShiftAttendanceError, + ) + + def get_overlapping_shift_attendance(self) -> dict: + if not self.shift: + return {} + + Attendance = frappe.qb.DocType("Attendance") + same_date_attendance = ( + frappe.qb.from_(Attendance) + .select(Attendance.name, Attendance.shift) + .where( + (Attendance.employee == self.employee) + & (Attendance.docstatus < 2) + & (Attendance.attendance_date == self.attendance_date) + & (Attendance.shift != self.shift) + & (Attendance.name != self.name) + ) + ).run(as_dict=True) + + for d in same_date_attendance: + if has_overlapping_timings(self.shift, d.shift): + return d + + return {} + + def validate_employee_status(self): + if frappe.db.get_value("Employee", self.employee, "status") == "Inactive": + frappe.throw(_("Cannot mark attendance for an Inactive employee {0}").format(self.employee)) + + def check_leave_record(self): + LeaveApplication = frappe.qb.DocType("Leave Application") + leave_record = ( + frappe.qb.from_(LeaveApplication) + .select( + LeaveApplication.leave_type, + LeaveApplication.half_day, + LeaveApplication.half_day_date, + LeaveApplication.name, + ) + .where( + (LeaveApplication.employee == self.employee) + & (self.attendance_date >= LeaveApplication.from_date) + & (self.attendance_date <= LeaveApplication.to_date) + & (LeaveApplication.status == "Approved") + & (LeaveApplication.docstatus == 1) + ) + ).run(as_dict=True) + + if leave_record: + for d in leave_record: + self.leave_type = d.leave_type + self.leave_application = d.name + if d.half_day_date == getdate(self.attendance_date): + self.status = "Half Day" + frappe.msgprint( + _("Employee {0} on Half day on {1}").format( + self.employee, format_date(self.attendance_date) + ) + ) + else: + self.status = "On Leave" + frappe.msgprint( + _("Employee {0} is on Leave on {1}").format( + self.employee, format_date(self.attendance_date) + ) + ) + + if self.status in ("On Leave", "Half Day"): + if not leave_record: + self.modify_half_day_status = 0 + self.half_day_status = "Absent" + frappe.msgprint( + _("No leave record found for employee {0} on {1}").format( + self.employee, format_date(self.attendance_date) + ), + alert=1, + ) + elif self.leave_type: + self.leave_type = None + self.leave_application = None + + def validate_employee(self): + emp = frappe.db.sql( + "select name from `tabEmployee` where name = %s and status = 'Active'", self.employee + ) + if not emp: + frappe.throw(_("Employee {0} is not active or does not exist").format(self.employee)) + + def unlink_attendance_from_checkins(self): + EmployeeCheckin = frappe.qb.DocType("Employee Checkin") + linked_logs = ( + frappe.qb.from_(EmployeeCheckin) + .select(EmployeeCheckin.name) + .where(EmployeeCheckin.attendance == self.name) + .for_update() + .run(as_dict=True) + ) + + if linked_logs: + ( + frappe.qb.update(EmployeeCheckin) + .set("attendance", "") + .where(EmployeeCheckin.attendance == self.name) + ).run() + + frappe.msgprint( + msg=_("Unlinked Attendance record from Employee Checkins: {}").format( + ", ".join(get_link_to_form("Employee Checkin", log.name) for log in linked_logs) + ), + title=_("Unlinked logs"), + indicator="blue", + is_minimizable=True, + wide=True, + ) + + def on_update(self): + self.publish_update() + + def after_delete(self): + self.publish_update() + + def publish_update(self): + employee_user = frappe.db.get_value("Employee", self.employee, "user_id", cache=True) + hrms.refetch_resource("hrms:attendance_calendar_events", employee_user) + + +@frappe.whitelist() +def get_events(start: date | str, end: date | str, filters: str | list | None = None) -> list[dict]: + employee = frappe.db.get_value("Employee", {"user_id": frappe.session.user}) + if not employee: + return [] + + if isinstance(filters, str): + import json + + filters = json.loads(filters) + if not filters: + filters = [] + filters.append(["attendance_date", "between", [get_datetime(start).date(), get_datetime(end).date()]]) + attendance_records = add_attendance(filters) + add_holidays(attendance_records, start, end, employee) + return attendance_records + + +def add_attendance(filters): + attendance = frappe.get_list( + "Attendance", + fields=[ + "name", + ValueWrapper("Attendance").as_("doctype"), + "attendance_date", + "employee_name", + "status", + "docstatus", + ], + filters=filters, + ) + for record in attendance: + record["title"] = f"{record['employee_name']} : {record['status']}" + return attendance + + +def add_holidays(events, start, end, employee=None): + holidays = get_holidays_for_employee(employee, start, end) + if not holidays: + return + + for holiday in holidays: + events.append( + { + "doctype": "Holiday", + "attendance_date": holiday.holiday_date, + "title": _("Holiday") + ": " + cstr(holiday.description), + "name": holiday.name, + "allDay": 1, + } + ) + + +def mark_attendance( + employee, + attendance_date, + status, + shift=None, + leave_type=None, + late_entry=False, + early_exit=False, + half_day_status=None, +): + savepoint = "attendance_creation" + + try: + frappe.db.savepoint(savepoint) + attendance = frappe.new_doc("Attendance") + attendance.update( + { + "doctype": "Attendance", + "employee": employee, + "attendance_date": attendance_date, + "status": status, + "shift": shift, + "leave_type": leave_type, + "late_entry": late_entry, + "early_exit": early_exit, + "half_day_status": half_day_status, + } + ) + attendance.insert() + attendance.submit() + except (DuplicateAttendanceError, OverlappingShiftAttendanceError): + frappe.db.rollback(save_point=savepoint) + return + + return attendance.name + + +@frappe.whitelist() +def mark_bulk_attendance(data: str | dict): + import json + + if isinstance(data, str): + data = json.loads(data) + data = frappe._dict(data) + if not data.unmarked_days: + frappe.throw(_("Please select a date.")) + return + + for attendance_date in data.unmarked_days: + doc_dict = { + "doctype": "Attendance", + "employee": data.employee, + "attendance_date": get_datetime(attendance_date), + "status": data.status, + "half_day_status": "Absent" if data.status == "Half Day" else None, + "shift": data.shift, + } + attendance = frappe.get_doc(doc_dict).insert() + attendance.submit() + + +@frappe.whitelist() +def get_unmarked_days(employee, from_date, to_date, exclude_holidays=0): + joining_date, relieving_date = frappe.get_cached_value( + "Employee", employee, ["date_of_joining", "relieving_date"] + ) + + from_date = max(getdate(from_date), joining_date or getdate(from_date)) + to_date = min(getdate(to_date), relieving_date or getdate(to_date)) + + records = frappe.get_all( + "Attendance", + fields=["attendance_date", "employee"], + filters=[ + ["attendance_date", ">=", from_date], + ["attendance_date", "<=", to_date], + ["employee", "=", employee], + ["docstatus", "!=", 2], + ], + ) + + marked_days = [getdate(record.attendance_date) for record in records] + + if cint(exclude_holidays): + holiday_dates = get_holiday_dates_between_range( + employee, from_date, to_date, raise_exception_for_holiday_list=False + ) + holidays = [getdate(record) for record in holiday_dates] + marked_days.extend(holidays) + + unmarked_days = [] + + while from_date <= to_date: + if from_date not in marked_days: + unmarked_days.append(from_date) + + from_date = add_days(from_date, 1) + + return unmarked_days diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance_calendar.js b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance_calendar.js new file mode 100644 index 000000000..fe1082402 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance_calendar.js @@ -0,0 +1,30 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +frappe.views.calendar["Attendance"] = { + field_map: { + start: "attendance_date", + end: "attendance_date", + id: "name", + title: "title", + allDay: "allDay", + color: "color", + }, + get_css_class: function (data) { + if (data.doctype === "Holiday") return "default"; + else if (data.doctype === "Attendance") { + if (data.status === "Absent" || data.status === "On Leave") { + return "danger"; + } + if (data.status === "Half Day") return "warning"; + return "success"; + } + }, + options: { + header: { + left: "prev,next today", + center: "title", + right: "month", + }, + }, + get_events_method: "hrms.hr.doctype.attendance.attendance.get_events", +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance_dashboard.py new file mode 100644 index 000000000..abed78fbb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance_dashboard.py @@ -0,0 +1,2 @@ +def get_data(): + return {"fieldname": "attendance", "transactions": [{"label": "", "items": ["Employee Checkin"]}]} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance_list.js new file mode 100644 index 000000000..3655efa36 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/attendance_list.js @@ -0,0 +1,199 @@ +frappe.listview_settings["Attendance"] = { + add_fields: ["status", "attendance_date"], + + get_indicator: function (doc) { + if (["Present", "Work From Home"].includes(doc.status)) { + return [__(doc.status), "green", "status,=," + doc.status]; + } else if (["Absent", "On Leave"].includes(doc.status)) { + return [__(doc.status), "red", "status,=," + doc.status]; + } else if (doc.status == "Half Day") { + return [__(doc.status), "orange", "status,=," + doc.status]; + } + }, + + onload: function (list_view) { + let me = this; + if (frappe.perm.has_perm("Attendance", 0, "create")) { + list_view.page.add_inner_button(__("Mark Attendance"), function () { + let first_day_of_month = moment().startOf("month"); + + if (moment().toDate().getDate() === 1) { + first_day_of_month = first_day_of_month.subtract(1, "month"); + } + + let dialog = new frappe.ui.Dialog({ + title: __("Mark Attendance"), + fields: [ + { + fieldname: "employee", + label: __("For Employee"), + fieldtype: "Link", + options: "Employee", + get_query: () => { + return { + query: "erpnext.controllers.queries.employee_query", + }; + }, + reqd: 1, + onchange: () => me.reset_dialog(dialog), + }, + { + fieldtype: "Section Break", + fieldname: "time_period_section", + hidden: 1, + }, + { + label: __("Start"), + fieldtype: "Date", + fieldname: "from_date", + reqd: 1, + default: first_day_of_month.toDate(), + onchange: () => me.get_unmarked_days(dialog), + }, + { + label: __("Status"), + fieldtype: "Select", + fieldname: "status", + options: ["Present", "Absent", "Half Day", "Work From Home"], + reqd: 1, + }, + { + fieldtype: "Column Break", + fieldname: "time_period_column", + }, + { + label: __("End"), + fieldtype: "Date", + fieldname: "to_date", + reqd: 1, + default: moment().toDate(), + onchange: () => me.get_unmarked_days(dialog), + }, + { + label: __("Shift"), + fieldtype: "Link", + fieldname: "shift", + options: "Shift Type", + }, + + { + fieldtype: "Section Break", + fieldname: "days_section", + hidden: 1, + }, + { + label: __("Exclude Holidays"), + fieldtype: "Check", + fieldname: "exclude_holidays", + onchange: () => me.get_unmarked_days(dialog), + }, + { + label: __("Unmarked Attendance for days"), + fieldname: "unmarked_days", + fieldtype: "MultiCheck", + options: [], + columns: 2, + select_all: true, + }, + ], + primary_action(data) { + if (cur_dialog.no_unmarked_days_left) { + frappe.msgprint( + __( + "Attendance from {0} to {1} has already been marked for the Employee {2}", + [data.from_date, data.to_date, data.employee], + ), + ); + } else { + frappe.confirm( + __("Mark attendance as {0} for {1} on selected dates?", [ + data.status, + data.employee, + ]), + () => { + frappe.call({ + method: "hrms.hr.doctype.attendance.attendance.mark_bulk_attendance", + args: { + data: data, + }, + callback: function (r) { + if (r.message === 1) { + frappe.show_alert({ + message: __("Attendance Marked"), + indicator: "blue", + }); + cur_dialog.hide(); + } + }, + }); + }, + ); + } + dialog.hide(); + list_view.refresh(); + }, + primary_action_label: __("Mark Attendance"), + }); + dialog.show(); + }); + } + }, + + reset_dialog: function (dialog) { + let fields = dialog.fields_dict; + + dialog.set_df_property("time_period_section", "hidden", fields.employee.value ? 0 : 1); + dialog.set_df_property("days_section", "hidden", 1); + dialog.set_df_property("unmarked_days", "options", []); + dialog.no_unmarked_days_left = false; + fields.exclude_holidays.value = false; + + fields.to_date.datepicker.update({ + maxDate: moment().toDate(), + }); + + this.get_unmarked_days(dialog); + }, + + get_unmarked_days: function (dialog) { + let fields = dialog.fields_dict; + if (fields.employee.value && fields.from_date.value && fields.to_date.value) { + dialog.set_df_property("days_section", "hidden", 0); + dialog.set_df_property("status", "hidden", 0); + dialog.set_df_property("exclude_holidays", "hidden", 0); + dialog.no_unmarked_days_left = false; + + frappe + .call({ + method: "hrms.hr.doctype.attendance.attendance.get_unmarked_days", + async: false, + args: { + employee: fields.employee.value, + from_date: fields.from_date.value, + to_date: fields.to_date.value, + exclude_holidays: fields.exclude_holidays.value, + }, + }) + .then((r) => { + var options = []; + + for (var d in r.message) { + var momentObj = moment(r.message[d], "YYYY-MM-DD"); + var date = momentObj.format("DD-MM-YYYY"); + options.push({ + label: date, + value: r.message[d], + checked: 1, + }); + } + + dialog.set_df_property( + "unmarked_days", + "options", + options.length > 0 ? options : [], + ); + dialog.no_unmarked_days_left = options.length === 0; + }); + } + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/test_attendance.py b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/test_attendance.py new file mode 100644 index 000000000..b4f3d4cb8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance/test_attendance.py @@ -0,0 +1,297 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and Contributors +# See license.txt + +from datetime import datetime + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import ( + add_days, + add_months, + get_first_day, + get_last_day, + get_time, + get_year_ending, + get_year_start, + getdate, + nowdate, +) + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.attendance.attendance import ( + DuplicateAttendanceError, + OverlappingShiftAttendanceError, + get_events, + get_unmarked_days, + mark_attendance, +) +from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import ( + assign_holiday_list, + create_holiday_list_assignment, +) +from hrms.tests.test_utils import get_first_sunday + + +class TestAttendance(IntegrationTestCase): + def setUp(self): + from hrms.payroll.doctype.salary_slip.test_salary_slip import make_holiday_list + + from_date = get_year_start(add_months(getdate(), -1)) + to_date = get_year_ending(getdate()) + self.holiday_list = make_holiday_list(from_date=from_date, to_date=to_date) + frappe.db.delete("Attendance") + frappe.db.delete("Employee Checkin") + + def test_duplicate_attendance(self): + employee = make_employee("test_duplicate_attendance@example.com", company="_Test Company") + date = nowdate() + + mark_attendance(employee, date, "Present") + attendance = frappe.get_doc( + { + "doctype": "Attendance", + "employee": employee, + "attendance_date": date, + "status": "Absent", + "company": "_Test Company", + } + ) + + self.assertRaises(DuplicateAttendanceError, attendance.insert) + + def test_duplicate_attendance_with_shift(self): + from hrms.hr.doctype.shift_type.test_shift_type import setup_shift_type + + employee = make_employee("test_duplicate_attendance@example.com", company="_Test Company") + date = nowdate() + + shift_1 = setup_shift_type(shift_type="Shift 1", start_time="08:00:00", end_time="10:00:00") + mark_attendance(employee, date, "Present", shift=shift_1.name) + + # attendance record with shift + attendance = frappe.get_doc( + { + "doctype": "Attendance", + "employee": employee, + "attendance_date": date, + "status": "Absent", + "company": "_Test Company", + "shift": shift_1.name, + } + ) + + self.assertRaises(DuplicateAttendanceError, attendance.insert) + + # attendance record without any shift + attendance = frappe.get_doc( + { + "doctype": "Attendance", + "employee": employee, + "attendance_date": date, + "status": "Absent", + "company": "_Test Company", + } + ) + + self.assertRaises(DuplicateAttendanceError, attendance.insert) + + def test_overlapping_shift_attendance_validation(self): + from hrms.hr.doctype.shift_type.test_shift_type import setup_shift_type + + employee = make_employee("test_overlap_attendance@example.com", company="_Test Company") + date = nowdate() + + shift_1 = setup_shift_type(shift_type="Shift 1", start_time="08:00:00", end_time="10:00:00") + shift_2 = setup_shift_type(shift_type="Shift 2", start_time="09:30:00", end_time="11:00:00") + + mark_attendance(employee, date, "Present", shift=shift_1.name) + + # attendance record with overlapping shift + attendance = frappe.get_doc( + { + "doctype": "Attendance", + "employee": employee, + "attendance_date": date, + "status": "Absent", + "company": "_Test Company", + "shift": shift_2.name, + } + ) + + self.assertRaises(OverlappingShiftAttendanceError, attendance.insert) + + def test_allow_attendance_with_different_shifts(self): + # allows attendance with 2 different non-overlapping shifts + from hrms.hr.doctype.shift_type.test_shift_type import setup_shift_type + + employee = make_employee("test_duplicate_attendance@example.com", company="_Test Company") + date = nowdate() + + shift_1 = setup_shift_type(shift_type="Shift 1", start_time="08:00:00", end_time="10:00:00") + shift_2 = setup_shift_type(shift_type="Shift 2", start_time="11:00:00", end_time="12:00:00") + + mark_attendance(employee, date, "Present", shift_1.name) + frappe.get_doc( + { + "doctype": "Attendance", + "employee": employee, + "attendance_date": date, + "status": "Absent", + "company": "_Test Company", + "shift": shift_2.name, + } + ).insert() + + def test_mark_absent(self): + employee = make_employee("test_mark_absent@example.com") + date = nowdate() + + attendance = mark_attendance(employee, date, "Absent") + fetch_attendance = frappe.get_value( + "Attendance", {"employee": employee, "attendance_date": date, "status": "Absent"} + ) + self.assertEqual(attendance, fetch_attendance) + + def test_unmarked_days(self): + first_sunday = get_first_sunday(self.holiday_list, for_date=get_last_day(add_months(getdate(), -1))) + attendance_date = add_days(first_sunday, 1) + + employee = make_employee( + "test_unmarked_days@example.com", date_of_joining=add_days(attendance_date, -1) + ) + frappe.db.set_value("Employee", employee, "holiday_list", self.holiday_list) + + mark_attendance(employee, attendance_date, "Present") + + unmarked_days = get_unmarked_days( + employee, get_first_day(attendance_date), get_last_day(attendance_date) + ) + unmarked_days = [getdate(date) for date in unmarked_days] + + # attendance already marked for the day + self.assertNotIn(attendance_date, unmarked_days) + # attendance unmarked + self.assertIn(getdate(add_days(attendance_date, 1)), unmarked_days) + # holiday considered in unmarked days + self.assertIn(first_sunday, unmarked_days) + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_unmarked_days_excluding_holidays(self): + first_sunday = get_first_sunday(self.holiday_list, for_date=get_last_day(add_months(getdate(), -1))) + attendance_date = add_days(first_sunday, 1) + + employee = make_employee( + "test_unmarked_days@example.com", date_of_joining=add_days(attendance_date, -1) + ) + + mark_attendance(employee, attendance_date, "Present") + + unmarked_days = get_unmarked_days( + employee, get_first_day(attendance_date), get_last_day(attendance_date), exclude_holidays=True + ) + unmarked_days = [getdate(date) for date in unmarked_days] + + # attendance already marked for the day + self.assertNotIn(attendance_date, unmarked_days) + # attendance unmarked + self.assertIn(getdate(add_days(attendance_date, 1)), unmarked_days) + # holidays not considered in unmarked days + self.assertNotIn(first_sunday, unmarked_days) + + def test_unmarked_days_excluding_holidays_across_two_holiday_list_assignments(self): + from hrms.payroll.doctype.salary_slip.test_salary_slip import make_holiday_list + + employee = make_employee("test_unmarked_days_exclude_holidays@example.com", company="_Test Company") + start_date = get_first_day(getdate()) + mid_date = add_days(start_date, 15) + end_date = get_last_day(getdate()) + holiday_list_1 = make_holiday_list( + "First Holiday List", from_date=start_date, to_date=add_days(mid_date, -1) + ) + holiday_list_2 = make_holiday_list("Second Holiday List", from_date=mid_date, to_date=end_date) + create_holiday_list_assignment("Employee", employee, holiday_list=holiday_list_1) + create_holiday_list_assignment("Employee", employee, holiday_list=holiday_list_2) + + unmarked_days = get_unmarked_days(employee, start_date, end_date, exclude_holidays=True) + unmarked_days = [getdate(date) for date in unmarked_days] + sunday_in_holiday_list_1 = get_first_sunday(holiday_list=holiday_list_1, for_date=start_date) + sunday_in_holiday_list_2 = get_first_sunday(holiday_list=holiday_list_2, for_date=end_date) + + self.assertNotIn(sunday_in_holiday_list_1, unmarked_days) + self.assertNotIn(sunday_in_holiday_list_2, unmarked_days) + + def test_unmarked_days_as_per_joining_and_relieving_dates(self): + first_sunday = get_first_sunday(self.holiday_list, for_date=get_last_day(add_months(getdate(), -1))) + date = add_days(first_sunday, 1) + + doj = add_days(date, 1) + relieving_date = add_days(date, 5) + employee = make_employee( + "test_unmarked_days_as_per_doj@example.com", date_of_joining=doj, relieving_date=relieving_date + ) + + frappe.db.set_value("Employee", employee, "holiday_list", self.holiday_list) + + attendance_date = add_days(date, 2) + mark_attendance(employee, attendance_date, "Present") + + unmarked_days = get_unmarked_days( + employee, get_first_day(attendance_date), get_last_day(attendance_date) + ) + unmarked_days = [getdate(date) for date in unmarked_days] + + # attendance already marked for the day + self.assertNotIn(attendance_date, unmarked_days) + # date before doj not in unmarked days + self.assertNotIn(add_days(doj, -1), unmarked_days) + # date after relieving not in unmarked days + self.assertNotIn(add_days(relieving_date, 1), unmarked_days) + + def test_duplicate_attendance_when_created_from_checkins_and_tool(self): + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + from hrms.hr.doctype.shift_type.test_shift_type import setup_shift_type + + shift = setup_shift_type(shift_type="Shift 1", start_time="08:00:00", end_time="17:00:00") + employee = make_employee( + "test_duplicate@attendance.com", company="_Test Company", default_shift=shift.name + ) + mark_attendance(employee, getdate(), "Half Day", shift=shift.name, half_day_status="Absent") + make_checkin(employee, datetime.combine(getdate(), get_time("14:00:00"))) + shift.process_auto_attendance() + + attendances = frappe.get_all( + "Attendance", + filters={ + "employee": employee, + "attendance_date": getdate(), + }, + ) + self.assertEqual(len(attendances), 1) + + def test_get_events_returns_attendance(self): + employee = make_employee("calendar.user@example.com", company="_Test Company") + + attendance_name = mark_attendance(employee, getdate(), status="Present") + attendance = frappe.get_value("Attendance", attendance_name, "status") + + self.assertEqual(attendance, "Present") + + frappe.set_user("calendar.user@example.com") + try: + events = get_events(start=getdate(), end=getdate()) + finally: + frappe.set_user("Administrator") + + self.assertTrue(events) + attendance_events = [e for e in events if e.get("doctype") == "Attendance"] + self.assertTrue(attendance_events) + self.assertEqual(attendance_events[0].get("status"), "Present") + self.assertEqual( + attendance_events[0].get("employee_name"), + frappe.db.get_value("Employee", employee, "employee_name"), + ) + self.assertEqual(attendance_events[0].get("attendance_date"), getdate()) + + def tearDown(self): + frappe.db.rollback() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request.js b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request.js new file mode 100644 index 000000000..be67112f9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request.js @@ -0,0 +1,26 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +frappe.ui.form.on("Attendance Request", { + refresh(frm) { + frm.trigger("show_attendance_warnings"); + }, + + show_attendance_warnings(frm) { + if (!frm.is_new() && frm.doc.docstatus === 0) { + frm.dashboard.clear_headline(); + + frm.call("get_attendance_warnings").then((r) => { + if (r.message?.length) { + frm.dashboard.reset(); + frm.dashboard.add_section( + frappe.render_template("attendance_warnings", { + warnings: r.message || [], + }), + __("Attendance Warnings"), + ); + frm.dashboard.show(); + } + }); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request.json b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request.json new file mode 100644 index 000000000..3b5b1f920 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request.json @@ -0,0 +1,209 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "HR-ARQ-.YY.-.MM.-.#####", + "creation": "2018-04-13 15:37:40.918990", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "department", + "company", + "column_break_5", + "from_date", + "to_date", + "half_day", + "half_day_date", + "include_holidays", + "shift", + "reason_section", + "reason", + "column_break_4", + "explanation", + "amended_from" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "remember_last_selected_value": 1, + "reqd": 1 + }, + { + "fieldname": "column_break_5", + "fieldtype": "Column Break" + }, + { + "fieldname": "from_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "From Date", + "reqd": 1 + }, + { + "fieldname": "to_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "To Date", + "reqd": 1 + }, + { + "default": "0", + "fieldname": "half_day", + "fieldtype": "Check", + "label": "Half Day" + }, + { + "depends_on": "half_day", + "fieldname": "half_day_date", + "fieldtype": "Date", + "label": "Half Day Date", + "mandatory_depends_on": "half_day" + }, + { + "fieldname": "reason_section", + "fieldtype": "Section Break", + "label": "Reason" + }, + { + "fieldname": "reason", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Reason", + "options": "Work From Home\nOn Duty", + "reqd": 1 + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "fieldname": "explanation", + "fieldtype": "Small Text", + "label": "Explanation" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Attendance Request", + "print_hide": 1, + "read_only": 1 + }, + { + "description": "Note: Shift will not be overwritten in existing attendance records", + "fieldname": "shift", + "fieldtype": "Link", + "label": "Shift", + "options": "Shift Type" + }, + { + "default": "0", + "fieldname": "include_holidays", + "fieldtype": "Check", + "label": "Include Holidays" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:06:36.343091", + "modified_by": "Administrator", + "module": "HR", + "name": "Attendance Request", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request.py b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request.py new file mode 100644 index 000000000..7c54ac88b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request.py @@ -0,0 +1,234 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import add_days, date_diff, format_date, get_link_to_form, getdate + +from erpnext.setup.doctype.employee.employee import is_holiday + +import hrms +from hrms.hr.utils import validate_active_employee, validate_dates + + +class OverlappingAttendanceRequestError(frappe.ValidationError): + pass + + +class AttendanceRequest(Document): + def validate(self): + validate_active_employee(self.employee) + validate_dates(self, self.from_date, self.to_date, False) + self.validate_half_day() + self.validate_request_overlap() + self.validate_no_attendance_to_create() + + def validate_half_day(self): + if self.half_day: + if not getdate(self.from_date) <= getdate(self.half_day_date) <= getdate(self.to_date): + frappe.throw(_("Half day date should be in between from date and to date")) + + def validate_no_attendance_to_create(self): + attendance_warnings = self.get_attendance_warnings() + attendance_request_days = date_diff(self.to_date, self.from_date) + 1 + if len(attendance_warnings) == attendance_request_days and not any( + warning["action"] == "Overwrite" for warning in attendance_warnings + ): + frappe.throw( + title=_("No attendance records to create"), + msg=_( + "Please check if employee is on leave or attendance with the same status exists for selected day(s)." + ), + ) + + def validate_request_overlap(self): + if not self.name: + self.name = "New Attendance Request" + + Request = frappe.qb.DocType("Attendance Request") + overlapping_request = ( + frappe.qb.from_(Request) + .select(Request.name) + .where( + (Request.employee == self.employee) + & (Request.docstatus < 2) + & (Request.name != self.name) + & (self.to_date >= Request.from_date) + & (self.from_date <= Request.to_date) + ) + ).run(as_dict=True) + + if overlapping_request: + self.throw_overlap_error(overlapping_request[0].name) + + def throw_overlap_error(self, overlapping_request: str): + msg = _("Employee {0} already has an Attendance Request {1} that overlaps with this period").format( + frappe.bold(self.employee), + get_link_to_form("Attendance Request", overlapping_request), + ) + + frappe.throw(msg, title=_("Overlapping Attendance Request"), exc=OverlappingAttendanceRequestError) + + def on_submit(self): + self.create_attendance_records() + + def on_cancel(self): + attendance_list = frappe.get_all( + "Attendance", {"employee": self.employee, "attendance_request": self.name, "docstatus": 1} + ) + if attendance_list: + for attendance in attendance_list: + attendance_obj = frappe.get_doc("Attendance", attendance["name"]) + attendance_obj.cancel() + + def create_attendance_records(self): + request_days = date_diff(self.to_date, self.from_date) + 1 + for day in range(request_days): + attendance_date = add_days(self.from_date, day) + if self.should_mark_attendance(attendance_date): + self.create_or_update_attendance(attendance_date) + + def create_or_update_attendance(self, date: str): + doc = self.get_attendance_doc(date) + status = self.get_attendance_status(date) + + if doc: + # update existing attendance, change the status + old_status = doc.status + + if old_status != status: + doc.db_set({"status": status, "attendance_request": self.name}) + if status == "Half Day": + doc.db_set("half_day_status", "Absent") + text = _( + "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" + ).format(frappe.bold(old_status), frappe.bold(status), frappe.bold("Absent")) + else: + text = _("Changed the status from {0} to {1} via Attendance Request").format( + frappe.bold(old_status), frappe.bold(status) + ) + doc.add_comment(comment_type="Info", text=text) + + frappe.msgprint( + _("Updated status from {0} to {1} for date {2} in the attendance record {3}").format( + frappe.bold(old_status), + frappe.bold(status), + frappe.bold(format_date(date)), + get_link_to_form("Attendance", doc.name), + ), + title=_("Attendance Updated"), + ) + else: + # submit a new attendance record + doc = frappe.new_doc("Attendance") + doc.employee = self.employee + doc.attendance_date = date + doc.shift = self.shift + doc.company = self.company + doc.attendance_request = self.name + doc.status = status + doc.half_day_status = "Absent" if status == "Half Day" else None + doc.insert(ignore_permissions=True) + doc.submit() + + def should_mark_attendance(self, attendance_date: str) -> bool: + # Check if attendance_date is a holiday + if not self.include_holidays and is_holiday(self.employee, attendance_date): + frappe.msgprint( + _("Attendance not submitted for {0} as it is a Holiday.").format( + frappe.bold(format_date(attendance_date)) + ) + ) + return False + + # Check if employee is on leave + if self.has_leave_record(attendance_date): + frappe.msgprint( + _("Attendance not submitted for {0} as {1} is on leave.").format( + frappe.bold(format_date(attendance_date)), frappe.bold(self.employee) + ) + ) + return False + + return True + + def has_leave_record(self, attendance_date: str) -> str | None: + return frappe.db.exists( + "Leave Application", + { + "employee": self.employee, + "docstatus": 1, + "from_date": ("<=", attendance_date), + "to_date": (">=", attendance_date), + "status": "Approved", + }, + ) + + def get_attendance_doc(self, attendance_date: str) -> str | None: + attendance = frappe.db.exists( + "Attendance", + { + "employee": self.employee, + "attendance_date": attendance_date, + "docstatus": ("!=", 2), + }, + ) + return frappe.get_doc("Attendance", attendance) if attendance else None + + def get_attendance_status(self, attendance_date: str) -> str: + if self.half_day and date_diff(getdate(self.half_day_date), getdate(attendance_date)) == 0: + return "Half Day" + elif self.reason == "Work From Home": + return "Work From Home" + else: + return "Present" + + def status_unchanged(self, attendance_date): + new_status = self.get_attendance_status(attendance_date) + attendance_doc = self.get_attendance_doc(attendance_date) + if attendance_doc and attendance_doc.status == new_status: + return True + return False + + def on_update(self): + self.publish_update() + + def after_delete(self): + self.publish_update() + + def publish_update(self): + employee_user = frappe.db.get_value("Employee", self.employee, "user_id", cache=True) + hrms.refetch_resource("hrms:my_attendance_requests", employee_user) + hrms.refetch_resource("hrms:team_attendance_requests") + + @frappe.whitelist() + def get_attendance_warnings(self) -> list: + attendance_warnings = [] + request_days = date_diff(self.to_date, self.from_date) + 1 + + for day in range(request_days): + attendance_date = add_days(self.from_date, day) + + if not self.include_holidays and is_holiday(self.employee, attendance_date): + attendance_warnings.append({"date": attendance_date, "reason": "Holiday", "action": "Skip"}) + elif self.has_leave_record(attendance_date): + attendance_warnings.append({"date": attendance_date, "reason": "On Leave", "action": "Skip"}) + elif self.status_unchanged(attendance_date): + attendance_warnings.append( + {"date": attendance_date, "reason": "Attendance status unchanged", "action": "Skip"} + ) + else: + attendance = self.get_attendance_doc(attendance_date) + if attendance: + attendance_warnings.append( + { + "date": attendance_date, + "reason": "Attendance already marked", + "record": attendance.name, + "action": "Overwrite", + } + ) + + return attendance_warnings diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request_dashboard.py new file mode 100644 index 000000000..059725cb4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_request_dashboard.py @@ -0,0 +1,2 @@ +def get_data(): + return {"fieldname": "attendance_request", "transactions": [{"items": ["Attendance"]}]} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_warnings.html b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_warnings.html new file mode 100644 index 000000000..8944dfbbb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/attendance_warnings.html @@ -0,0 +1,24 @@ +

    +
    {{__("Attendance for the following dates will be skipped/overwritten on submission")}}
    +
    + + + + + + + + + + + + {% for(var i=0; i < warnings.length; i++) { %} + + + + + + + {% } %} + +
    {{ __("Date") }}{{ __("Action on Submission") }}{{ __("Reason") }}{{ __("Existing Record") }}
    {{ frappe.datetime.str_to_user(warnings[i].date) }} {{ __(warnings[i].action) }} {{ __(warnings[i].reason) }} {{ warnings[i].record }}
    diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/test_attendance_request.py b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/test_attendance_request.py new file mode 100644 index 000000000..3d1412e48 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/attendance_request/test_attendance_request.py @@ -0,0 +1,276 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.utils import add_days, add_months, get_year_ending, get_year_start, getdate + +from hrms.hr.doctype.attendance.attendance import mark_attendance +from hrms.hr.doctype.attendance_request.attendance_request import OverlappingAttendanceRequestError +from hrms.hr.doctype.leave_application.test_leave_application import make_allocation_record +from hrms.payroll.doctype.salary_slip.test_salary_slip import ( + make_holiday_list, + make_leave_application, +) +from hrms.tests.test_utils import add_date_to_holiday_list, get_first_sunday +from hrms.tests.utils import HRMSTestSuite + + +class TestAttendanceRequest(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + + def setUp(self): + for doctype in ["Attendance Request", "Attendance"]: + frappe.db.delete(doctype) + + self.from_date = get_year_start(add_months(getdate(), -1)) + self.to_date = get_year_ending(getdate()) + self.holiday_list = make_holiday_list( + from_date=self.from_date, to_date=self.to_date, add_weekly_offs=False + ) + + self.employee = get_employee() + frappe.db.set_value("Employee", self.employee.name, "holiday_list", self.holiday_list) + + def test_attendance_request_overlap(self): + create_attendance_request(employee=self.employee.name, reason="On Duty", company="_Test Company") + + today = getdate() + dateranges = [ + (add_days(today, -2), today), + (today, today), + (today, add_days(today, 1)), + (add_days(today, -2), add_days(today, 2)), + ] + attendance_request = frappe.get_doc( + { + "doctype": "Attendance Request", + "employee": self.employee.name, + "reason": "On Duty", + "company": "_Test Company", + } + ) + + for entry in dateranges: + attendance_request.from_date = entry[0] + attendance_request.to_date = entry[1] + self.assertRaises(OverlappingAttendanceRequestError, attendance_request.save) + + # no overlap + attendance_request.from_date = add_days(today, -3) + attendance_request.to_date = add_days(today, -2) + attendance_request.save() + + def test_on_duty_attendance_request(self): + "Test creation of Attendance from Attendance Request, on duty." + attendance_request = create_attendance_request( + employee=self.employee.name, reason="On Duty", company="_Test Company" + ) + records = self.get_attendance_records(attendance_request.name) + + self.assertEqual(len(records), 2) + self.assertEqual(records[0].status, "Present") + self.assertEqual(records[0].docstatus, 1) + + # cancelling attendance request cancels linked attendances + attendance_request.cancel() + + # cancellation alters docname + # fetch attendance value again to avoid stale docname + records = self.get_attendance_records(attendance_request.name) + self.assertEqual(records[0].docstatus, 2) + + def test_work_from_home_attendance_request(self): + "Test creation of Attendance from Attendance Request, work from home." + attendance_request = create_attendance_request( + employee=self.employee.name, reason="Work From Home", company="_Test Company" + ) + records = self.get_attendance_records(attendance_request.name) + + self.assertEqual(records[0].status, "Work From Home") + + # cancelling attendance request cancels linked attendances + attendance_request.cancel() + records = self.get_attendance_records(attendance_request.name) + self.assertEqual(records[0].docstatus, 2) + + def test_overwrite_attendance(self): + attendance_name = mark_attendance(self.employee.name, getdate(), "Absent") + + attendance_request = create_attendance_request( + employee=self.employee.name, reason="Work From Home", company="_Test Company" + ) + prev_attendance = frappe.get_doc("Attendance", attendance_name) + + # attendance request should overwrite attendance status from Absent to Work From Home + self.assertEqual(prev_attendance.status, "Work From Home") + self.assertEqual(prev_attendance.attendance_request, attendance_request.name) + + def test_skip_attendance_on_holiday(self): + today = getdate() + add_date_to_holiday_list(today, self.holiday_list) + + attendance_request = create_attendance_request( + employee=self.employee.name, reason="On Duty", company="_Test Company" + ) + + records = self.get_attendance_records(attendance_request.name) + # only 1 attendance marked for yesterday + # attendance skipped for today since its a holiday + self.assertEqual(len(records), 1) + self.assertEqual(records[0].status, "Present") + + def test_skip_attendance_on_leave(self): + frappe.delete_doc_if_exists("Leave Type", "Test Skip Attendance", force=1) + leave_type = frappe.get_doc( + dict(leave_type_name="Test Skip Attendance", doctype="Leave Type") + ).insert() + + make_allocation_record(leave_type=leave_type.name, from_date=self.from_date, to_date=self.to_date) + today = getdate() + make_leave_application(self.employee.name, today, today, leave_type.name) + + attendance_request = create_attendance_request( + employee=self.employee.name, reason="On Duty", company="_Test Company" + ) + records = self.get_attendance_records(attendance_request.name) + + # only 1 attendance marked for yesterday + # attendance skipped for today since its a leave + self.assertEqual(len(records), 1) + self.assertEqual(records[0].attendance_date, add_days(today, -1)) + self.assertEqual(records[0].status, "Present") + + def test_include_holidays_check(self): + # Create a holiday on today's date + today = getdate() + add_date_to_holiday_list(today, self.holiday_list) + + # Create an Attendance Request with include_holidays checked + attendance_request = create_attendance_request( + employee=self.employee.name, + reason="On Duty", + company="_Test Company", + include_holidays=1, # Set include_holidays to True + ) + + # Check if the attendance record is created on the holiday + records = self.get_attendance_records(attendance_request.name) + self.assertEqual(len(records), 2) + self.assertEqual(records[0].status, "Present") + self.assertEqual(records[0].attendance_date, today) + + def get_attendance_records(self, attendance_request: str) -> list[dict]: + return frappe.db.get_all( + "Attendance", + { + "attendance_request": attendance_request, + }, + ["status", "docstatus", "attendance_date"], + ) + + def test_validate_no_attendance_to_create(self): + today = getdate() + yesterday = add_days(today, -1) + # marking absent for two days + for day in [yesterday, today]: + mark_attendance(self.employee.name, day, "Present") + # attendance request with the same status for the same days + attendance_request = frappe.get_doc( + { + "doctype": "Attendance Request", + "employee": self.employee.name, + "from_date": yesterday, + "to_date": today, + "reason": "On Duty", + "company": "_Test Company", + } + ) + self.assertRaises(frappe.ValidationError, attendance_request.save) + + # adding an extra day to the attendance request + attendance_request.to_date = add_days(today, 1) + attendance_request.save() + attendance_request.submit() + # attendance created for the third day + records = self.get_attendance_records(attendance_request.name) + self.assertEqual(records[0].status, "Present") + + def test_half_day_status_change(self): + # when new attendance is created via attendance request + attendance_request = frappe.get_doc( + { + "doctype": "Attendance Request", + "employee": self.employee.name, + "from_date": getdate(), + "to_date": getdate(), + "reason": "On Duty", + "half_day": 1, + "half_day_date": getdate(), + "company": "_Test Company", + } + ).save() + attendance_request.submit() + + half_day_status = frappe.get_value( + "Attendance", {"attendance_request": attendance_request.name}, "half_day_status" + ) + self.assertEqual(half_day_status, "Absent") + + def test_half_day_status_change_when_existing_attendance_is_updated(self): + # when existing attendance is updated via attendance request + frappe.get_doc( + { + "doctype": "Attendance", + "employee": self.employee.name, + "attendance_date": getdate(), + "status": "Absent", + "company": "_Test Company", + } + ).insert() + + attendance_request = frappe.get_doc( + { + "doctype": "Attendance Request", + "employee": self.employee.name, + "from_date": getdate(), + "to_date": getdate(), + "reason": "On Duty", + "half_day": 1, + "half_day_date": getdate(), + "company": "_Test Company", + } + ).save() + attendance_request.submit() + + half_day_status = frappe.get_value( + "Attendance", {"attendance_request": attendance_request.name}, "half_day_status" + ) + self.assertEqual(half_day_status, "Absent") + + +def get_employee(): + return frappe.get_doc("Employee", "_T-Employee-00001") + + +def create_attendance_request(**args: dict) -> dict: + args = frappe._dict(args) + today = getdate() + + attendance_request = frappe.get_doc( + { + "doctype": "Attendance Request", + "employee": args.employee or get_employee().name, + "from_date": add_days(today, -1), + "to_date": today, + "reason": "On Duty", + "company": "_Test Company", + } + ) + + if args: + attendance_request.update(args) + + return attendance_request.submit() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.js b/apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.js new file mode 100644 index 000000000..7a3e355fa --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.js @@ -0,0 +1,21 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Compensatory Leave Request", { + refresh: function (frm) { + frm.set_query("leave_type", function () { + return { + filters: { + is_compensatory: true, + }, + }; + }); + }, + half_day: function (frm) { + if (frm.doc.half_day == 1) { + frm.set_df_property("half_day_date", "reqd", true); + } else { + frm.set_df_property("half_day_date", "reqd", false); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json b/apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json new file mode 100644 index 000000000..3d7fc94f7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json @@ -0,0 +1,180 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "HR-CMP-.YY.-.MM.-.#####", + "creation": "2018-04-13 14:51:39.326768", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "department", + "column_break_2", + "leave_type", + "leave_allocation", + "worked_on", + "work_from_date", + "work_end_date", + "half_day", + "half_day_date", + "column_break_4", + "reason", + "amended_from" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "fieldname": "leave_type", + "fieldtype": "Link", + "label": "Leave Type", + "options": "Leave Type" + }, + { + "fieldname": "leave_allocation", + "fieldtype": "Link", + "label": "Leave Allocation", + "options": "Leave Allocation", + "read_only": 1 + }, + { + "fieldname": "worked_on", + "fieldtype": "Section Break", + "label": "Worked On Holiday" + }, + { + "fieldname": "work_from_date", + "fieldtype": "Date", + "label": "Work From Date", + "reqd": 1 + }, + { + "fieldname": "work_end_date", + "fieldtype": "Date", + "label": "Work End Date", + "reqd": 1 + }, + { + "default": "0", + "fieldname": "half_day", + "fieldtype": "Check", + "label": "Half Day" + }, + { + "depends_on": "half_day", + "fieldname": "half_day_date", + "fieldtype": "Date", + "label": "Half Day Date" + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "fieldname": "reason", + "fieldtype": "Small Text", + "label": "Reason", + "reqd": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Compensatory Leave Request", + "print_hide": 1, + "read_only": 1 + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:06:45.747065", + "modified_by": "Administrator", + "module": "HR", + "name": "Compensatory Leave Request", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py b/apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py new file mode 100644 index 000000000..fb035d17a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py @@ -0,0 +1,160 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import datetime + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import add_days, cint, date_diff, format_date, get_url_to_list, getdate + +from hrms.hr.utils import ( + create_additional_leave_ledger_entry, + get_holiday_dates_for_employee, + get_leave_period, + validate_active_employee, + validate_dates, + validate_overlap, +) + + +class CompensatoryLeaveRequest(Document): + def validate(self): + validate_active_employee(self.employee) + validate_dates(self, self.work_from_date, self.work_end_date) + if self.half_day: + if not self.half_day_date: + frappe.throw(_("Half Day Date is mandatory")) + if not getdate(self.work_from_date) <= getdate(self.half_day_date) <= getdate(self.work_end_date): + frappe.throw(_("Half Day Date should be in between Work From Date and Work End Date")) + validate_overlap(self, self.work_from_date, self.work_end_date) + self.validate_holidays() + self.validate_attendance() + if not self.leave_type: + frappe.throw(_("Leave Type is mandatory")) + + def validate_attendance(self): + attendance_records = frappe.get_all( + "Attendance", + filters=[ + ["attendance_date", "between", [self.work_from_date, self.work_end_date]], + ["status", "in", ["Present", "Work From Home", "Half Day"]], + ["docstatus", "=", 1], + ["employee", "=", self.employee], + ], + fields=["attendance_date", "status"], + ) + + half_days = [entry.attendance_date for entry in attendance_records if entry.status == "Half Day"] + + if half_days and (not self.half_day or getdate(self.half_day_date) not in half_days): + frappe.throw( + _( + "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" + ).format(", ".join([frappe.bold(format_date(half_day)) for half_day in half_days])) + ) + + if len(attendance_records) < date_diff(self.work_end_date, self.work_from_date) + 1: + frappe.throw(_("You are not present all day(s) between compensatory leave request days")) + + def validate_holidays(self): + holidays = get_holiday_dates_for_employee(self.employee, self.work_from_date, self.work_end_date) + if len(holidays) < date_diff(self.work_end_date, self.work_from_date) + 1: + if date_diff(self.work_end_date, self.work_from_date): + msg = _("The days between {0} to {1} are not valid holidays.").format( + frappe.bold(format_date(self.work_from_date)), + frappe.bold(format_date(self.work_end_date)), + ) + else: + msg = _("{0} is not a holiday.").format(frappe.bold(format_date(self.work_from_date))) + + frappe.throw(msg) + + def on_submit(self): + company = frappe.db.get_value("Employee", self.employee, "company") + date_difference = date_diff(self.work_end_date, self.work_from_date) + 1 + if self.half_day: + date_difference -= 0.5 + + comp_leave_valid_from = add_days(self.work_end_date, 1) + leave_period = get_leave_period(comp_leave_valid_from, comp_leave_valid_from, company) + if leave_period: + leave_allocation = self.get_existing_allocation(comp_leave_valid_from) + if leave_allocation: + leave_allocation.new_leaves_allocated += date_difference + leave_allocation.validate() + leave_allocation.db_set("new_leaves_allocated", leave_allocation.total_leaves_allocated) + leave_allocation.db_set("total_leaves_allocated", leave_allocation.total_leaves_allocated) + + # generate additional ledger entry for the new compensatory leaves off + create_additional_leave_ledger_entry(leave_allocation, date_difference, comp_leave_valid_from) + + else: + leave_allocation = self.create_leave_allocation(leave_period, date_difference) + self.db_set("leave_allocation", leave_allocation.name) + else: + comp_leave_valid_from = frappe.bold(format_date(comp_leave_valid_from)) + msg = _("This compensatory leave will be applicable from {0}.").format(comp_leave_valid_from) + msg += " " + _( + "Currently, there is no {0} leave period for this date to create/update leave allocation." + ).format(frappe.bold(_("active"))) + msg += "

    " + _("Please create a new {0} for the date {1} first.").format( + f"""Leave Period""", + comp_leave_valid_from, + ) + frappe.throw(msg, title=_("No Leave Period Found")) + + def on_cancel(self): + if self.leave_allocation: + date_difference = date_diff(self.work_end_date, self.work_from_date) + 1 + if self.half_day: + date_difference -= 0.5 + leave_allocation = frappe.get_doc("Leave Allocation", self.leave_allocation) + if leave_allocation: + leave_allocation.new_leaves_allocated -= date_difference + if leave_allocation.new_leaves_allocated < 0: + leave_allocation.new_leaves_allocated = 0 + leave_allocation.validate() + leave_allocation.db_set("new_leaves_allocated", leave_allocation.total_leaves_allocated) + leave_allocation.db_set("total_leaves_allocated", leave_allocation.total_leaves_allocated) + + # create reverse entry on cancelation + create_additional_leave_ledger_entry( + leave_allocation, date_difference * -1, add_days(self.work_end_date, 1) + ) + + def get_existing_allocation(self, comp_leave_valid_from: datetime.date) -> dict | None: + leave_allocation = frappe.db.get_all( + "Leave Allocation", + filters={ + "employee": self.employee, + "leave_type": self.leave_type, + "from_date": ("<=", comp_leave_valid_from), + "to_date": (">=", comp_leave_valid_from), + "docstatus": 1, + }, + limit=1, + ) + + if leave_allocation: + return frappe.get_doc("Leave Allocation", leave_allocation[0].name) + + def create_leave_allocation(self, leave_period, date_difference): + is_carry_forward = frappe.db.get_value("Leave Type", self.leave_type, "is_carry_forward") + allocation = frappe.get_doc( + dict( + doctype="Leave Allocation", + employee=self.employee, + employee_name=self.employee_name, + leave_type=self.leave_type, + from_date=add_days(self.work_end_date, 1), + to_date=leave_period[0].to_date, + carry_forward=cint(is_carry_forward), + new_leaves_allocated=date_difference, + total_leaves_allocated=date_difference, + description=self.reason, + ) + ) + allocation.insert(ignore_permissions=True) + allocation.submit() + return allocation diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/test_compensatory_leave_request.py b/apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/test_compensatory_leave_request.py new file mode 100644 index 000000000..6c4772f10 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/compensatory_leave_request/test_compensatory_leave_request.py @@ -0,0 +1,305 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.utils import add_days, add_months, getdate, today + +from hrms.hr.doctype.attendance_request.test_attendance_request import get_employee +from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import ( + create_holiday_list_assignment, +) +from hrms.hr.doctype.leave_allocation.test_leave_allocation import create_leave_allocation +from hrms.hr.doctype.leave_application.leave_application import get_leave_balance_on +from hrms.hr.doctype.leave_period.test_leave_period import create_leave_period +from hrms.tests.test_utils import add_date_to_holiday_list +from hrms.tests.utils import HRMSTestSuite + + +class TestCompensatoryLeaveRequest(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + + def setUp(self): + frappe.db.delete("Compensatory Leave Request") + frappe.db.delete("Leave Ledger Entry") + frappe.db.delete("Leave Allocation") + frappe.db.delete("Attendance") + frappe.db.delete("Leave Period") + + create_leave_period(add_months(today(), -3), add_months(today(), 3), "_Test Company") + self.holiday_list = "_Test Compensatory Leave" + create_holiday_list() + + employee = get_employee() + create_holiday_list_assignment("Employee", employee.name, self.holiday_list) + + def test_leave_balance_on_submit(self): + """check creation of leave allocation on submission of compensatory leave request""" + employee = get_employee() + mark_attendance(employee) + compensatory_leave_request = get_compensatory_leave_request(employee.name) + + before = get_leave_balance_on(employee.name, compensatory_leave_request.leave_type, today()) + compensatory_leave_request.submit() + + self.assertEqual( + get_leave_balance_on(employee.name, compensatory_leave_request.leave_type, add_days(today(), 1)), + before + 1, + ) + + def test_leave_balance_on_cancel(self): + """check leave balance update on cancellation of compensatory leave request""" + employee = get_employee() + mark_attendance(employee, date=add_days(today(), -1)) + + request_1 = get_compensatory_leave_request(employee.name, leave_date=add_days(today(), -1)) + + request_1.submit() + mark_attendance(employee) + request_2 = get_compensatory_leave_request(employee.name) + + request_2.submit() + # cancel today's compensatory leave request + request_2.cancel() + self.assertEqual( + get_leave_balance_on(employee.name, request_2.leave_type, today()), + 1, + ) + + def test_allocation_update_on_submit(self): + employee = get_employee() + mark_attendance(employee, date=add_days(today(), -1)) + compensatory_leave_request = get_compensatory_leave_request( + employee.name, leave_date=add_days(today(), -1) + ) + compensatory_leave_request.submit() + + # leave allocation creation on submit + leaves_allocated = frappe.db.get_value( + "Leave Allocation", + {"name": compensatory_leave_request.leave_allocation}, + ["total_leaves_allocated"], + ) + self.assertEqual(leaves_allocated, 1) + + mark_attendance(employee) + compensatory_leave_request = get_compensatory_leave_request(employee.name) + compensatory_leave_request.submit() + + # leave allocation updates on submission of second compensatory leave request + leaves_allocated = frappe.db.get_value( + "Leave Allocation", + {"name": compensatory_leave_request.leave_allocation}, + ["total_leaves_allocated"], + ) + self.assertEqual(leaves_allocated, 2) + + def test_allocation_update_on_submit_on_multiple_allocations(self): + """Tests whether the correct allocation is updated when there are multiple allocations in the same leave period""" + employee = get_employee() + today = getdate() + + first_alloc_start = add_months(today, -3) + first_alloc_end = add_days(today, -1) + second_alloc_start = today + second_alloc_end = add_months(today, 1) + + add_date_to_holiday_list(first_alloc_start, self.holiday_list) + allocation_1 = create_leave_allocation( + leave_type="Compensatory Off", + employee=employee.name, + from_date=first_alloc_start, + to_date=first_alloc_end, + ) + allocation_1.new_leaves_allocated = 0 + allocation_1.submit() + + add_date_to_holiday_list(second_alloc_start, self.holiday_list) + allocation_2 = create_leave_allocation( + leave_type="Compensatory Off", + employee=employee.name, + from_date=second_alloc_start, + to_date=second_alloc_end, + ) + allocation_2.new_leaves_allocated = 0 + allocation_2.submit() + + # adds leave balance in first allocation + mark_attendance(employee, date=first_alloc_start) + compensatory_leave_request = get_compensatory_leave_request( + employee.name, leave_date=first_alloc_start + ) + compensatory_leave_request.submit() + allocation_1.reload() + self.assertEqual(allocation_1.total_leaves_allocated, 1) + + # adds leave balance in second allocation + mark_attendance(employee, date=second_alloc_start) + compensatory_leave_request = get_compensatory_leave_request( + employee.name, leave_date=second_alloc_start + ) + compensatory_leave_request.submit() + allocation_2.reload() + self.assertEqual(allocation_2.total_leaves_allocated, 1) + + def test_creation_of_leave_ledger_entry_on_submit(self): + """check creation of leave ledger entry on submission of leave request""" + employee = get_employee() + mark_attendance(employee) + compensatory_leave_request = get_compensatory_leave_request(employee.name) + compensatory_leave_request.submit() + + filters = dict(transaction_name=compensatory_leave_request.leave_allocation) + leave_ledger_entry = frappe.get_all("Leave Ledger Entry", fields="*", filters=filters) + + self.assertEqual(len(leave_ledger_entry), 1) + self.assertEqual(leave_ledger_entry[0].employee, compensatory_leave_request.employee) + self.assertEqual(leave_ledger_entry[0].leave_type, compensatory_leave_request.leave_type) + self.assertEqual(leave_ledger_entry[0].leaves, 1) + + # check reverse leave ledger entry on cancellation + compensatory_leave_request.cancel() + leave_ledger_entry = frappe.get_all( + "Leave Ledger Entry", fields="*", filters=filters, order_by="creation desc" + ) + + self.assertEqual(len(leave_ledger_entry), 2) + self.assertEqual(leave_ledger_entry[0].employee, compensatory_leave_request.employee) + self.assertEqual(leave_ledger_entry[0].leave_type, compensatory_leave_request.leave_type) + self.assertEqual(leave_ledger_entry[0].leaves, -1) + + def test_half_day_compensatory_leave(self): + employee = get_employee() + mark_attendance(employee, status="Half Day", half_day_status="Absent") + date = today() + compensatory_leave_request = frappe.new_doc("Compensatory Leave Request") + compensatory_leave_request.update( + dict( + employee=employee.name, + leave_type="Compensatory Off", + work_from_date=date, + work_end_date=date, + reason="test", + ) + ) + + # cannot apply for full day compensatory leave for a half day attendance + self.assertRaises(frappe.ValidationError, compensatory_leave_request.submit) + + compensatory_leave_request.half_day = 1 + compensatory_leave_request.half_day_date = date + compensatory_leave_request.submit() + + # check creation of leave ledger entry on submission of leave request + leave_ledger_entry = frappe.get_all( + "Leave Ledger Entry", + fields="*", + filters={"transaction_name": compensatory_leave_request.leave_allocation}, + ) + + self.assertEqual(leave_ledger_entry[0].leaves, 0.5) + + def test_request_on_leave_period_boundary(self): + frappe.db.delete("Leave Period") + create_leave_period("2023-01-01", "2023-12-31", "_Test Company") + create_holiday_list("2023-01-01", "2023-12-31") + + employee = get_employee() + boundary_date = "2023-12-31" + add_date_to_holiday_list(boundary_date, self.holiday_list) + mark_attendance(employee, boundary_date, "Present") + + # no leave period found of "2024-01-01" + compensatory_leave_request = frappe.new_doc("Compensatory Leave Request") + compensatory_leave_request.update( + dict( + employee=employee.name, + leave_type="Compensatory Off", + work_from_date=boundary_date, + work_end_date=boundary_date, + reason="test", + ) + ) + compensatory_leave_request.insert() + self.assertRaises(frappe.ValidationError, compensatory_leave_request.submit) + + create_leave_period("2024-01-01", "2024-12-31", "_Test Company") + compensatory_leave_request.reload() + compensatory_leave_request.submit() + + +def get_compensatory_leave_request(employee, leave_date=None): + if not leave_date: + leave_date = today() + + prev_comp_leave_req = frappe.db.get_value( + "Compensatory Leave Request", + dict( + leave_type="Compensatory Off", + work_from_date=leave_date, + work_end_date=leave_date, + employee=employee, + ), + "name", + ) + if prev_comp_leave_req: + return frappe.get_doc("Compensatory Leave Request", prev_comp_leave_req) + + return frappe.get_doc( + dict( + doctype="Compensatory Leave Request", + employee=employee, + leave_type="Compensatory Off", + work_from_date=leave_date, + work_end_date=leave_date, + reason="test", + ) + ).insert() + + +def mark_attendance(employee, date=None, status="Present", half_day_status=None): + if not date: + date = today() + + if not frappe.db.exists( + dict(doctype="Attendance", employee=employee.name, attendance_date=date, status="Present") + ): + attendance = frappe.get_doc( + { + "doctype": "Attendance", + "employee": employee.name, + "attendance_date": date, + "status": status, + "half_day_status": half_day_status, + } + ) + attendance.save() + attendance.submit() + + +def create_holiday_list(from_date=None, to_date=None): + list_name = "_Test Compensatory Leave" + if frappe.db.exists("Holiday List", list_name): + frappe.db.delete("Holiday List", list_name) + frappe.db.delete("Holiday", {"parent": list_name}) + + if from_date: + holiday_date = add_days(from_date, 1) + else: + holiday_date = today() + + holiday_list = frappe.get_doc( + { + "doctype": "Holiday List", + "from_date": from_date or add_months(today(), -3), + "to_date": to_date or add_months(today(), 3), + "holidays": [ + {"description": "Test Holiday", "holiday_date": holiday_date}, + {"description": "Test Holiday 1", "holiday_date": add_days(holiday_date, -1)}, + ], + "holiday_list_name": list_name, + } + ) + holiday_list.save() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/daily_work_summary.js b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/daily_work_summary.js new file mode 100644 index 000000000..b6ecffcae --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/daily_work_summary.js @@ -0,0 +1,6 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Daily Work Summary", { + refresh: function (frm) {}, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/daily_work_summary.json b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/daily_work_summary.json new file mode 100644 index 000000000..3465a61c0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/daily_work_summary.json @@ -0,0 +1,64 @@ +{ + "actions": [], + "creation": "2016-11-08 04:58:20.001780", + "doctype": "DocType", + "document_type": "Document", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "daily_work_summary_group", + "status", + "email_sent_to" + ], + "fields": [ + { + "fieldname": "daily_work_summary_group", + "fieldtype": "Link", + "label": "Daily Work Summary Group", + "options": "Daily Work Summary Group", + "read_only": 1 + }, + { + "default": "Open", + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Status", + "options": "Open\nSent", + "read_only": 1 + }, + { + "fieldname": "email_sent_to", + "fieldtype": "Code", + "label": "Email Sent To", + "read_only": 1 + } + ], + "in_create": 1, + "links": [], + "modified": "2024-09-18 13:30:28.136511", + "modified_by": "Administrator", + "module": "HR", + "name": "Daily Work Summary", + "owner": "Administrator", + "permissions": [ + { + "read": 1, + "role": "Employee" + }, + { + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/daily_work_summary.py b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/daily_work_summary.py new file mode 100644 index 000000000..babbbeb6e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/daily_work_summary.py @@ -0,0 +1,120 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from email_reply_parser import EmailReplyParser + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import global_date_format + + +class DailyWorkSummary(Document): + def send_mails(self, dws_group, emails): + """Send emails to get daily work summary to all users \ + in selected daily work summary group""" + incoming_email_account = frappe.db.get_value( + "Email Account", dict(enable_incoming=1, default_incoming=1), "email_id" + ) + + self.db_set("email_sent_to", "\n".join(emails)) + frappe.sendmail( + recipients=emails, + message=dws_group.message, + subject=dws_group.subject, + reference_doctype=self.doctype, + reference_name=self.name, + reply_to=incoming_email_account, + ) + + def send_summary(self): + """Send summary of all replies. Called at midnight""" + args = self.get_message_details() + emails = get_user_emails_from_group(self.daily_work_summary_group) + frappe.sendmail( + recipients=emails, + template="daily_work_summary", + args=args, + subject=_(self.daily_work_summary_group), + reference_doctype=self.doctype, + reference_name=self.name, + ) + + self.db_set("status", "Sent") + + def get_message_details(self): + """Return args for template""" + dws_group = frappe.get_doc("Daily Work Summary Group", self.daily_work_summary_group) + + replies = frappe.get_all( + "Communication", + fields=["content", "text_content", "sender"], + filters=dict( + reference_doctype=self.doctype, + reference_name=self.name, + communication_type="Communication", + sent_or_received="Received", + ), + order_by="creation asc", + ) + + did_not_reply = self.email_sent_to.split() + + for d in replies: + user = frappe.db.get_values( + "User", {"email": d.sender}, ["full_name", "user_image"], as_dict=True + ) + + d.sender_name = user[0].full_name if user else d.sender + d.image = user[0].image if user and user[0].image else None + + original_image = d.image + # make thumbnail image + try: + if original_image: + file_name = frappe.get_list("File", {"file_url": original_image}) + + if file_name: + file_name = file_name[0].name + file_doc = frappe.get_doc("File", file_name) + thumbnail_image = file_doc.make_thumbnail( + set_as_thumbnail=False, width=100, height=100, crop=True + ) + d.image = thumbnail_image + except Exception: + d.image = original_image + + if d.sender in did_not_reply: + did_not_reply.remove(d.sender) + if d.text_content: + d.content = frappe.utils.md_to_html(EmailReplyParser.parse_reply(d.text_content)) + + did_not_reply = [ + (frappe.db.get_value("User", {"email": email}, "full_name") or email) for email in did_not_reply + ] + + return dict( + replies=replies, + original_message=dws_group.message, + title=_("Work Summary for {0}").format(global_date_format(self.creation)), + did_not_reply=", ".join(did_not_reply) or "", + did_not_reply_title=_("No replies from"), + ) + + +def get_user_emails_from_group(group): + """Returns list of email of enabled users from the given group + + :param group: Daily Work Summary Group `name`""" + group_doc = group + if isinstance(group_doc, str): + group_doc = frappe.get_doc("Daily Work Summary Group", group) + + emails = get_users_email(group_doc) + + return emails + + +def get_users_email(doc): + return [d.email for d in doc.users if frappe.db.get_value("User", d.user, "enabled")] diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/test_daily_work_summary.py b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/test_daily_work_summary.py new file mode 100644 index 000000000..95e0d3aaa --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/test_daily_work_summary.py @@ -0,0 +1,103 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import os + +import frappe +import frappe.utils +from frappe.tests import IntegrationTestCase + +# test_records = frappe.get_test_records('Daily Work Summary') + + +class TestDailyWorkSummary(IntegrationTestCase): + def test_email_trigger(self): + self.setup_and_prepare_test() + for d in self.users: + # check that email is sent to users + if d.message: + self.assertTrue( + d.email in [d.recipient for d in self.emails if self.groups.subject in d.message] + ) + + def test_email_trigger_failed(self): + hour = "00:00" + if frappe.utils.nowtime().split(":")[0] == "00": + hour = "01:00" + + self.setup_and_prepare_test(hour) + + for d in self.users: + # check that email is not sent to users + self.assertFalse( + d.email in [d.recipient for d in self.emails if self.groups.subject in d.message] + ) + + def test_incoming(self): + # get test mail with message-id as in-reply-to + self.setup_and_prepare_test() + with open(os.path.join(os.path.dirname(__file__), "test_data", "test-reply.raw")) as f: + if not self.emails: + return + test_mails = [ + f.read() + .replace("{{ sender }}", self.users[-1].email) + .replace("{{ message_id }}", self.emails[-1].message_id) + ] + + # pull the mail + email_account = frappe.get_doc("Email Account", "_Test Email Account 1") + email_account.db_set("enable_incoming", 1) + email_account.receive(test_mails=test_mails) + + daily_work_summary = frappe.get_doc( + "Daily Work Summary", frappe.get_all("Daily Work Summary")[0].name + ) + + args = daily_work_summary.get_message_details() + + self.assertTrue("I built Daily Work Summary!" in args.get("replies")[0].content) + + def setup_and_prepare_test(self, hour=None): + frappe.db.sql("delete from `tabDaily Work Summary`") + frappe.db.sql("delete from `tabEmail Queue`") + frappe.db.sql("delete from `tabEmail Queue Recipient`") + frappe.db.sql("delete from `tabCommunication`") + frappe.db.sql("delete from `tabDaily Work Summary Group`") + + self.users = frappe.get_all("User", fields=["email"], filters=dict(email=("!=", "test@example.com"))) + self.setup_groups(hour) + + from hrms.hr.doctype.daily_work_summary_group.daily_work_summary_group import trigger_emails + + trigger_emails() + + # check if emails are created + + self.emails = frappe.db.sql( + """select r.recipient, q.message, q.message_id \ + from `tabEmail Queue` as q, `tabEmail Queue Recipient` as r \ + where q.name = r.parent""", + as_dict=1, + ) + + def setup_groups(self, hour=None): + # setup email to trigger at this hour + if not hour: + hour = frappe.utils.nowtime().split(":")[0] + hour = hour + ":00" + + groups = frappe.get_doc( + dict( + doctype="Daily Work Summary Group", + name="Daily Work Summary", + users=self.users, + send_emails_at=hour, + subject="this is a subject for testing summary emails", + message="this is a message for testing summary emails", + ) + ) + groups.insert() + + self.groups = groups + self.groups.save() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/test_data/test-reply.raw b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/test_data/test-reply.raw new file mode 100644 index 000000000..ba01bc282 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary/test_data/test-reply.raw @@ -0,0 +1,75 @@ +From: {{ sender }} +Content-Type: multipart/alternative; + boundary="Apple-Mail=_29597CF7-20DD-4184-B3FA-85582C5C4361" +Message-Id: <07D687F6-10AA-4B9F-82DE-27753096164E@gmail.com> +Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) +X-Smtp-Server: 73CC8281-7E8F-4B47-8324-D5DA86EEDD4F +Subject: Re: What did you work on today? +Date: Thu, 10 Nov 2016 16:04:43 +0530 +X-Universally-Unique-Identifier: A4D9669F-179C-42D8-A3D3-AA6A8C49A6F2 +References: <{{ message_id }}> +To: test_in@iwebnotes.com +In-Reply-To: <{{ message_id }}> + + +--Apple-Mail=_29597CF7-20DD-4184-B3FA-85582C5C4361 +Content-Transfer-Encoding: quoted-printable +Content-Type: text/plain; + charset=us-ascii + +I built Daily Work Summary! + +> On 10-Nov-2016, at 3:20 PM, Frappe wrote: +>=20 +> Please share what did you do today. If you reply by midnight, your = +response will be recorded! +>=20 +> This email was sent to rmehta@gmail.com +> Unsubscribe from this list = + +> Sent via ERPNext + + +--Apple-Mail=_29597CF7-20DD-4184-B3FA-85582C5C4361 +Content-Transfer-Encoding: 7bit +Content-Type: text/html; + charset=us-ascii + +I built Daily Work Summary!

    On 10-Nov-2016, at 3:20 PM, Frappe <test@erpnext.com> wrote:

    + + + + +What did you work on today? + +
    + +

    Please share what did you do today. If you reply by midnight, your response will be recorded!

    + +
    + + + + + + +
    +

    +--Apple-Mail=_29597CF7-20DD-4184-B3FA-85582C5C4361-- diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js new file mode 100644 index 000000000..a602fd59f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js @@ -0,0 +1,12 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Daily Work Summary Group", { + refresh: function (frm) { + if (!frm.is_new()) { + frm.add_custom_button(__("Daily Work Summary"), function () { + frappe.set_route("List", "Daily Work Summary"); + }); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json new file mode 100644 index 000000000..9fc3e1076 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json @@ -0,0 +1,91 @@ +{ + "actions": [], + "autoname": "Prompt", + "creation": "2018-02-12 15:06:18.767239", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "enabled", + "select_users", + "users", + "send_emails_at", + "holiday_list", + "mail_details", + "subject", + "message" + ], + "fields": [ + { + "default": "1", + "fieldname": "enabled", + "fieldtype": "Check", + "label": "Enabled" + }, + { + "fieldname": "select_users", + "fieldtype": "Section Break", + "label": "Select Users" + }, + { + "fieldname": "users", + "fieldtype": "Table", + "label": "Users", + "options": "Daily Work Summary Group User", + "reqd": 1 + }, + { + "fieldname": "send_emails_at", + "fieldtype": "Select", + "label": "Send Emails At", + "options": "00:00\n01:00\n02:00\n03:00\n04:00\n05:00\n06:00\n07:00\n08:00\n09:00\n10:00\n11:00\n12:00\n13:00\n14:00\n15:00\n16:00\n17:00\n18:00\n19:00\n20:00\n21:00\n22:00\n23:00" + }, + { + "fieldname": "holiday_list", + "fieldtype": "Link", + "label": "Holiday List", + "options": "Holiday List" + }, + { + "fieldname": "mail_details", + "fieldtype": "Section Break", + "label": "Reminder" + }, + { + "default": "What did you work on today?", + "fieldname": "subject", + "fieldtype": "Data", + "label": "Subject" + }, + { + "default": "

    Please share what did you do today. If you reply by midnight, your response will be recorded!

    ", + "fieldname": "message", + "fieldtype": "Text Editor", + "label": "Message" + } + ], + "links": [], + "modified": "2024-03-27 13:06:49.230881", + "modified_by": "Administrator", + "module": "HR", + "name": "Daily Work Summary Group", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py new file mode 100644 index 000000000..3cef68d8b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py @@ -0,0 +1,56 @@ +# # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# # For license information, please see license.txt + + +import frappe +import frappe.utils +from frappe import _ +from frappe.model.document import Document + +from erpnext.setup.doctype.holiday_list.holiday_list import is_holiday + +from hrms.hr.doctype.daily_work_summary.daily_work_summary import get_user_emails_from_group + + +class DailyWorkSummaryGroup(Document): + def validate(self): + if self.users: + if not frappe.flags.in_test and not is_incoming_account_enabled(): + frappe.throw( + _("Please enable default incoming account before creating Daily Work Summary Group") + ) + + +def trigger_emails(): + """Send emails to Employees at the given hour asking + them what did they work on today""" + groups = frappe.get_all("Daily Work Summary Group") + for d in groups: + group_doc = frappe.get_doc("Daily Work Summary Group", d) + if ( + is_current_hour(group_doc.send_emails_at) + and not is_holiday(group_doc.holiday_list) + and group_doc.enabled + ): + emails = get_user_emails_from_group(group_doc) + # find emails relating to a company + if emails: + daily_work_summary = frappe.get_doc( + dict(doctype="Daily Work Summary", daily_work_summary_group=group_doc.name) + ).insert() + daily_work_summary.send_mails(group_doc, emails) + + +def is_current_hour(hour): + return frappe.utils.nowtime().split(":")[0] == hour.split(":")[0] + + +def send_summary(): + """Send summary to everyone""" + for d in frappe.get_all("Daily Work Summary", dict(status="Open")): + daily_work_summary = frappe.get_doc("Daily Work Summary", d.name) + daily_work_summary.send_summary() + + +def is_incoming_account_enabled(): + return frappe.db.get_value("Email Account", dict(enable_incoming=1, default_incoming=1)) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group_user/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group_user/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json new file mode 100644 index 000000000..d01480a8f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json @@ -0,0 +1,39 @@ +{ + "actions": [], + "creation": "2018-02-12 14:57:38.332692", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "user", + "email" + ], + "fields": [ + { + "fieldname": "user", + "fieldtype": "Link", + "in_list_view": 1, + "label": "User", + "options": "User" + }, + { + "fetch_from": "user.email", + "fieldname": "email", + "fieldtype": "Read Only", + "label": "email" + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:06:49.385333", + "modified_by": "Administrator", + "module": "HR", + "name": "Daily Work Summary Group User", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.py b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.py new file mode 100644 index 000000000..6e0809af3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class DailyWorkSummaryGroupUser(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/department_approver/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/department_approver/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/department_approver/department_approver.json b/apps/erpnext/src/hrms/hrms/hr/doctype/department_approver/department_approver.json new file mode 100644 index 000000000..f7904fa52 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/department_approver/department_approver.json @@ -0,0 +1,35 @@ +{ + "actions": [], + "autoname": "hash", + "creation": "2018-04-08 16:31:02.433252", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "approver" + ], + "fields": [ + { + "fieldname": "approver", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "in_list_view": 1, + "label": "Approver", + "options": "User", + "print_hide": 1, + "reqd": 1, + "width": "200" + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:06:50.999677", + "modified_by": "Administrator", + "module": "HR", + "name": "Department Approver", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/department_approver/department_approver.py b/apps/erpnext/src/hrms/hrms/hr/doctype/department_approver/department_approver.py new file mode 100644 index 000000000..e0c3427bf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/department_approver/department_approver.py @@ -0,0 +1,94 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import get_link_to_form + + +class DepartmentApprover(Document): + pass + + +@frappe.whitelist() +@frappe.validate_and_sanitize_search_inputs +def get_approvers(doctype, txt, searchfield, start, page_len, filters): + if not filters.get("employee"): + frappe.throw(_("Please select Employee first.")) + + approvers = [] + department_details = {} + department_list = [] + employee = frappe.get_value( + "Employee", + filters.get("employee"), + ["employee_name", "department", "leave_approver", "expense_approver", "shift_request_approver"], + as_dict=True, + ) + + employee_department = filters.get("department") or employee.department + if employee_department: + department_details = frappe.db.get_value( + "Department", {"name": employee_department}, ["lft", "rgt"], as_dict=True + ) + if department_details: + department_list = frappe.db.sql( + """select name from `tabDepartment` where lft <= %s + and rgt >= %s + and disabled=0 + order by lft desc""", + (department_details.lft, department_details.rgt), + as_list=True, + ) + + if filters.get("doctype") == "Leave Application" and employee.leave_approver: + approvers.append( + frappe.db.get_value("User", employee.leave_approver, ["name", "first_name", "last_name"]) + ) + + if filters.get("doctype") == "Expense Claim" and employee.expense_approver: + approvers.append( + frappe.db.get_value("User", employee.expense_approver, ["name", "first_name", "last_name"]) + ) + + if filters.get("doctype") == "Shift Request" and employee.shift_request_approver: + approvers.append( + frappe.db.get_value("User", employee.shift_request_approver, ["name", "first_name", "last_name"]) + ) + + if filters.get("doctype") == "Leave Application": + parentfield = "leave_approvers" + field_name = "Leave Approver" + elif filters.get("doctype") == "Expense Claim": + parentfield = "expense_approvers" + field_name = "Expense Approver" + elif filters.get("doctype") == "Shift Request": + parentfield = "shift_request_approver" + field_name = "Shift Request Approver" + if department_list: + for d in department_list: + approvers += frappe.db.sql( + """select user.name, user.first_name, user.last_name from + tabUser user, `tabDepartment Approver` approver where + approver.parent = %s + and user.name like %s + and approver.parentfield = %s + and approver.approver=user.name""", + (d, "%" + txt + "%", parentfield), + as_list=True, + ) + + if len(approvers) == 0: + error_msg = _("Please set {0} for the Employee: {1}").format( + frappe.bold(_(field_name)), + get_link_to_form("Employee", filters.get("employee"), employee.employee_name), + ) + if department_list: + error_msg += " " + _("or for the Employee's Department: {0}").format( + get_link_to_form("Department", employee_department) + ) + frappe.throw(error_msg, title=_("{0} Missing").format(_(field_name))) + + return set(tuple(approver) for approver in approvers) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/designation_skill/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/designation_skill/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/designation_skill/designation_skill.json b/apps/erpnext/src/hrms/hrms/hr/doctype/designation_skill/designation_skill.json new file mode 100644 index 000000000..1f6b97a86 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/designation_skill/designation_skill.json @@ -0,0 +1,32 @@ +{ + "actions": [], + "creation": "2019-04-16 10:01:05.259881", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "skill" + ], + "fields": [ + { + "fieldname": "skill", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Skill", + "options": "Skill" + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:06:51.497980", + "modified_by": "Administrator", + "module": "HR", + "name": "Designation Skill", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "ASC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/designation_skill/designation_skill.py b/apps/erpnext/src/hrms/hrms/hr/doctype/designation_skill/designation_skill.py new file mode 100644 index 000000000..c35223b3c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/designation_skill/designation_skill.py @@ -0,0 +1,10 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class DesignationSkill(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/earned_leave_schedule/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/earned_leave_schedule/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json b/apps/erpnext/src/hrms/hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json new file mode 100644 index 000000000..22635f1f1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json @@ -0,0 +1,104 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2025-08-25 18:22:43.626487", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "column_break_dmml", + "allocation_date", + "number_of_leaves", + "attempted", + "failed", + "column_break_pzdq", + "is_allocated", + "allocated_via", + "section_break_amtg", + "failure_reason" + ], + "fields": [ + { + "columns": 2, + "fieldname": "allocation_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Allocation Date", + "read_only": 1 + }, + { + "columns": 2, + "fieldname": "number_of_leaves", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Number of Leaves", + "read_only": 1 + }, + { + "columns": 3, + "default": "0", + "fieldname": "is_allocated", + "fieldtype": "Check", + "in_list_view": 1, + "label": "Is Allocated", + "read_only": 1 + }, + { + "fieldname": "column_break_dmml", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_pzdq", + "fieldtype": "Column Break" + }, + { + "fieldname": "failure_reason", + "fieldtype": "Small Text", + "label": "Failure Reason", + "read_only": 1 + }, + { + "columns": 3, + "fieldname": "allocated_via", + "fieldtype": "Select", + "in_list_view": 1, + "in_preview": 1, + "label": "Allocated Via", + "options": "\nScheduler\nLeave Policy Assignment\nManually", + "read_only": 1 + }, + { + "fieldname": "section_break_amtg", + "fieldtype": "Section Break" + }, + { + "default": "0", + "fieldname": "attempted", + "fieldtype": "Check", + "hidden": 1, + "label": "Attempted", + "read_only": 1 + }, + { + "default": "0", + "fieldname": "failed", + "fieldtype": "Check", + "hidden": 1, + "label": "Failed", + "read_only": 1 + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2025-11-14 14:12:01.503330", + "modified_by": "Administrator", + "module": "HR", + "name": "Earned Leave Schedule", + "owner": "Administrator", + "permissions": [], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.py b/apps/erpnext/src/hrms/hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.py new file mode 100644 index 000000000..f378a183a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.py @@ -0,0 +1,9 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class EarnedLeaveSchedule(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance.js new file mode 100644 index 000000000..1113972cc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance.js @@ -0,0 +1,179 @@ +// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Advance", { + setup: function (frm) { + frm.set_query("employee", function () { + return { + filters: { + status: "Active", + }, + }; + }); + + frm.set_query("advance_account", function () { + if (!frm.doc.employee) { + frappe.msgprint(__("Please select employee first")); + } + return { + filters: { + root_type: "Asset", + is_group: 0, + company: frm.doc.company, + account_currency: frm.doc.currency, + account_type: "Receivable", + }, + }; + }); + }, + + refresh: function (frm) { + if ( + frm.doc.docstatus === 1 && + flt(frm.doc.paid_amount) < flt(frm.doc.advance_amount) && + frappe.model.can_create("Payment Entry") && + !( + (frm.doc.repay_unclaimed_amount_from_salary == 1 && frm.doc.paid_amount) || + (frm.doc.__onload && + frm.doc.__onload.make_payment_via_journal_entry == 1 && + frm.doc.paid_amount) + ) + ) { + frm.add_custom_button( + __("Payment"), + function () { + frm.events.make_payment_entry(frm); + }, + __("Create"), + ); + } else if ( + frm.doc.docstatus === 1 && + flt(frm.doc.claimed_amount) < flt(frm.doc.paid_amount) - flt(frm.doc.return_amount) && + frappe.model.can_create("Expense Claim") + ) { + frm.add_custom_button( + __("Expense Claim"), + function () { + frm.events.make_expense_claim(frm); + }, + __("Create"), + ); + } + frm.trigger("update_fields_label"); + + if ( + frm.doc.docstatus === 1 && + flt(frm.doc.claimed_amount) < flt(frm.doc.paid_amount) - flt(frm.doc.return_amount) + ) { + if ( + frm.doc.repay_unclaimed_amount_from_salary == 0 && + frappe.model.can_create("Journal Entry") + ) { + frm.add_custom_button( + __("Return"), + function () { + frm.trigger("make_return_entry"); + }, + __("Create"), + ); + } else if ( + frm.doc.repay_unclaimed_amount_from_salary == 1 && + frappe.model.can_create("Additional Salary") + ) { + frm.add_custom_button( + __("Deduction from Salary"), + function () { + frm.events.make_deduction_via_additional_salary(frm); + }, + __("Create"), + ); + } + } + }, + + make_deduction_via_additional_salary: function (frm) { + frappe.call({ + method: "hrms.hr.doctype.employee_advance.employee_advance.create_return_through_additional_salary", + args: { + doc: frm.doc, + }, + callback: function (r) { + var doclist = frappe.model.sync(r.message); + frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + }, + }); + }, + + make_payment_entry: function (frm) { + let method = "hrms.overrides.employee_payment_entry.get_payment_entry_for_employee"; + if (frm.doc.__onload && frm.doc.__onload.make_payment_via_journal_entry) { + method = "hrms.hr.doctype.employee_advance.employee_advance.make_bank_entry"; + } + return frappe.call({ + method: method, + args: { + dt: frm.doc.doctype, + dn: frm.doc.name, + }, + callback: function (r) { + var doclist = frappe.model.sync(r.message); + frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + }, + }); + }, + + make_expense_claim: function (frm) { + return frappe.call({ + method: "hrms.hr.doctype.expense_claim.expense_claim.get_expense_claim", + args: { + advance_details: { + employee_name: frm.doc.employee, + company: frm.doc.company, + currency: frm.doc.currency, + employee_advance_name: frm.doc.name, + posting_date: frm.doc.posting_date, + paid_amount: frm.doc.paid_amount, + base_paid_amount: frm.doc.base_paid_amount, + claimed_amount: frm.doc.claimed_amount, + return_amount: frm.doc.return_amount, + payment_via_journal_entry: frm.doc.__onload.make_payment_via_journal_entry, + }, + }, + callback: function (r) { + const doclist = frappe.model.sync(r.message); + frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + }, + }); + }, + + make_return_entry: function (frm) { + frappe.call({ + method: "hrms.hr.doctype.employee_advance.employee_advance.make_return_entry", + args: { + employee: frm.doc.employee, + company: frm.doc.company, + employee_advance_name: frm.doc.name, + return_amount: flt(frm.doc.paid_amount - frm.doc.claimed_amount), + advance_account: frm.doc.advance_account, + mode_of_payment: frm.doc.mode_of_payment, + currency: frm.doc.currency, + }, + callback: function (r) { + const doclist = frappe.model.sync(r.message); + frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + }, + }); + }, + + employee: function (frm) { + if (frm.doc.employee) { + frm.trigger("update_fields_label"); + } + }, + + update_fields_label: function (frm) { + frm.set_currency_labels(["paid_amount"], frm.doc.currency); + frm.set_currency_labels(["base_paid_amount"], erpnext.get_currency(frm.doc.company)); + frm.refresh_fields(); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance.json new file mode 100644 index 000000000..504d7bdb9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance.json @@ -0,0 +1,317 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "naming_series:", + "creation": "2022-01-17 18:36:51.450395", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "naming_series", + "employee", + "employee_name", + "column_break_4", + "posting_date", + "company", + "department", + "currency_section", + "currency", + "column_break_crso", + "section_break_8", + "purpose", + "column_break_11", + "advance_amount", + "paid_amount", + "base_paid_amount", + "pending_amount", + "claimed_amount", + "return_amount", + "section_break_7", + "column_break_18", + "advance_account", + "mode_of_payment", + "column_break_nhlv", + "repay_unclaimed_amount_from_salary", + "more_info_section", + "status", + "column_break_kimx", + "amended_from" + ], + "fields": [ + { + "fieldname": "naming_series", + "fieldtype": "Select", + "label": "Series", + "options": "HR-EAD-.YYYY.-" + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Read Only", + "label": "Employee Name" + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "default": "Today", + "fieldname": "posting_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Posting Date", + "reqd": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "section_break_8", + "fieldtype": "Section Break", + "label": "Purpose & Amount" + }, + { + "fieldname": "purpose", + "fieldtype": "Small Text", + "in_list_view": 1, + "label": "Purpose", + "reqd": 1 + }, + { + "fieldname": "column_break_11", + "fieldtype": "Column Break" + }, + { + "description": "Amount of expense", + "fieldname": "advance_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Advance Amount", + "options": "currency", + "reqd": 1 + }, + { + "description": "Amount claimed via Expense Claim", + "fieldname": "claimed_amount", + "fieldtype": "Currency", + "label": "Claimed Amount", + "no_copy": 1, + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "section_break_7", + "fieldtype": "Section Break", + "label": "Accounting" + }, + { + "fieldname": "status", + "fieldtype": "Select", + "label": "Status", + "no_copy": 1, + "options": "Draft\nPaid\nUnpaid\nClaimed\nReturned\nPartly Claimed and Returned\nCancelled", + "read_only": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Employee Advance", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "column_break_18", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.employee_advance_account", + "fetch_if_empty": 1, + "fieldname": "advance_account", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "label": "Advance Account", + "options": "Account" + }, + { + "fieldname": "mode_of_payment", + "fieldtype": "Link", + "label": "Mode of Payment", + "options": "Mode of Payment" + }, + { + "allow_on_submit": 1, + "description": "Amount scheduled for deduction via salary", + "fieldname": "return_amount", + "fieldtype": "Currency", + "label": "Returned Amount", + "no_copy": 1, + "options": "currency", + "read_only": 1 + }, + { + "default": "0", + "fieldname": "repay_unclaimed_amount_from_salary", + "fieldtype": "Check", + "label": "Repay Unclaimed Amount from Salary" + }, + { + "depends_on": "eval:cur_frm.doc.employee", + "description": "Pending (unpaid) amount from previous advances", + "fieldname": "pending_amount", + "fieldtype": "Currency", + "label": "Pending Amount", + "no_copy": 1, + "options": "currency", + "read_only": 1 + }, + { + "depends_on": "eval:(doc.docstatus==1 || doc.employee)", + "fetch_from": "employee.salary_currency", + "fetch_if_empty": 1, + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "reqd": 1 + }, + { + "fieldname": "column_break_nhlv", + "fieldtype": "Column Break" + }, + { + "collapsible": 1, + "fieldname": "more_info_section", + "fieldtype": "Section Break", + "label": "More Info" + }, + { + "fieldname": "column_break_kimx", + "fieldtype": "Column Break" + }, + { + "collapsible": 1, + "fieldname": "currency_section", + "fieldtype": "Section Break", + "label": "Currency " + }, + { + "fieldname": "column_break_crso", + "fieldtype": "Column Break" + }, + { + "description": "Amount that has been paid against this advance", + "fieldname": "base_paid_amount", + "fieldtype": "Currency", + "label": "Paid Amount (Company Currency)", + "no_copy": 1, + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "description": "Amount that has been paid against this advance", + "fieldname": "paid_amount", + "fieldtype": "Currency", + "label": "Paid Amount", + "no_copy": 1, + "options": "currency", + "read_only": 1 + } + ], + "grid_page_length": 50, + "is_submittable": 1, + "links": [], + "modified": "2025-11-10 23:18:24.203679", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Advance", + "naming_rule": "By \"Naming Series\" field", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Expense Approver", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "search_fields": "employee,employee_name", + "sort_field": "creation", + "sort_order": "DESC", + "states": [ + { + "color": "Red", + "title": "Draft" + }, + { + "color": "Green", + "title": "Paid" + }, + { + "color": "Orange", + "title": "Unpaid" + }, + { + "color": "Blue", + "title": "Claimed" + }, + { + "color": "Gray", + "title": "Returned" + }, + { + "color": "Yellow", + "title": "Partly Claimed and Returned" + }, + { + "color": "Red", + "title": "Cancelled" + } + ], + "title_field": "employee_name", + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance.py new file mode 100644 index 000000000..751d6a602 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance.py @@ -0,0 +1,397 @@ +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.query_builder.functions import Abs, Sum +from frappe.utils import flt, get_link_to_form, nowdate + +import erpnext +from erpnext.accounts.doctype.journal_entry.journal_entry import get_default_bank_cash_account + +import hrms +from hrms.hr.utils import validate_active_employee + + +class EmployeeAdvanceOverPayment(frappe.ValidationError): + pass + + +class EmployeeAdvance(Document): + def onload(self): + self.get("__onload").make_payment_via_journal_entry = frappe.db.get_single_value( + "Accounts Settings", "make_payment_via_journal_entry" + ) + + def validate(self): + validate_active_employee(self.employee) + self.validate_advance_account_currency() + self.validate_advance_account_type() + self.set_status() + self.set_pending_amount() + + def before_submit(self): + if not self.get("advance_account"): + default_advance_account = frappe.db.get_value( + "Company", self.company, "default_employee_advance_account" + ) + if default_advance_account: + self.advance_account = default_advance_account + else: + frappe.throw( + _( + 'Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document.' + ).format(self.company), + title=_("Missing Advance Account"), + ) + + def on_cancel(self): + self.ignore_linked_doctypes = ("GL Entry", "Payment Ledger Entry", "Advance Payment Ledger Entry") + self.check_linked_payment_entry() + self.set_status(update=True) + + def on_update(self): + self.publish_update() + + def after_delete(self): + self.publish_update() + + def publish_update(self): + employee_user = frappe.db.get_value("Employee", self.employee, "user_id", cache=True) + hrms.refetch_resource("hrms:employee_advance_balance", employee_user) + + def validate_advance_account_type(self): + if not self.advance_account: + return + + account_type = frappe.db.get_value("Account", self.advance_account, "account_type") + if not account_type or (account_type != "Receivable"): + frappe.throw( + _("Employee advance account {0} should be of type {1}.").format( + get_link_to_form("Account", self.advance_account), frappe.bold(_("Receivable")) + ) + ) + + def validate_advance_account_currency(self): + if self.currency and self.advance_account: + account_currency = frappe.db.get_value("Account", self.advance_account, "account_currency") + if self.currency != account_currency: + frappe.throw( + _( + "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" + ).format(frappe.bold(self.advance_account), frappe.bold(self.employee)) + ) + + def set_status(self, update=False): + precision = self.precision("paid_amount") + total_amount = flt(flt(self.claimed_amount) + flt(self.return_amount), precision) + status = None + + if self.docstatus == 0: + status = "Draft" + elif self.docstatus == 1: + if flt(self.claimed_amount) > 0 and flt(self.claimed_amount, precision) == flt( + self.paid_amount, precision + ): + status = "Claimed" + elif flt(self.return_amount) > 0 and flt(self.return_amount, precision) == flt( + self.paid_amount, precision + ): + status = "Returned" + elif ( + flt(self.claimed_amount) > 0 + and (flt(self.return_amount) > 0) + and total_amount == flt(self.paid_amount, precision) + ): + status = "Partly Claimed and Returned" + elif flt(self.paid_amount) > 0 and ( + flt(self.advance_amount, precision) == flt(self.paid_amount, precision) + or (self.paid_amount and self.repay_unclaimed_amount_from_salary) + ): + status = "Paid" + else: + status = "Unpaid" + elif self.docstatus == 2: + status = "Cancelled" + + if update: + self.db_set("status", status) + self.publish_update() + self.notify_update() + else: + self.status = status + + def on_discard(self): + self.db_set("status", "Cancelled") + + def set_total_advance_paid(self): + aple = frappe.qb.DocType("Advance Payment Ledger Entry") + + account_type = frappe.get_value("Account", self.advance_account, "account_type") + + if account_type == "Receivable": + paid_amount_condition = aple.amount > 0 + returned_amount_condition = aple.amount < 0 + elif account_type == "Payable": + paid_amount_condition = aple.amount < 0 + returned_amount_condition = aple.amount > 0 + else: + frappe.throw( + _("Employee advance account {0} should be of type {1}.").format( + get_link_to_form("Account", self.advance_account), + frappe.bold(_("Receivable")), + ) + ) + + aple_paid_amount = ( + frappe.qb.from_(aple) + .select(Abs(Sum(aple.amount)).as_("paid_amount")) + .select(Abs(Sum(aple.base_amount)).as_("base_paid_amount")) + .where( + (aple.company == self.company) + & (aple.delinked == 0) + & (aple.against_voucher_type == self.doctype) + & (aple.against_voucher_no == self.name) + & (paid_amount_condition) + & (aple.event == "Submit") + ) + ).run(as_dict=True)[0] or {} + paid_amount = aple_paid_amount.get("paid_amount") or 0 + + return_amount = ( + frappe.qb.from_(aple) + .select(Abs(Sum(aple.amount)).as_("return_amount")) + .where( + (aple.company == self.company) + & (aple.delinked == 0) + & (aple.against_voucher_type == self.doctype) + & (aple.against_voucher_no == self.name) + & (aple.voucher_type != "Expense Claim") + & (returned_amount_condition) + ) + ).run(as_dict=True)[0].return_amount or 0 + + precision = self.precision("paid_amount") + paid_amount = flt(paid_amount, precision) + if paid_amount > flt(self.advance_amount, precision): + frappe.throw( + _("Row {0}# Paid Amount cannot be greater than requested advance amount"), + EmployeeAdvanceOverPayment, + ) + + precision = self.precision("return_amount") + return_amount = flt(return_amount, precision) + + if return_amount > 0 and return_amount > flt(paid_amount - self.claimed_amount, precision): + frappe.throw(_("Return amount cannot be greater than unclaimed amount")) + + self.db_set("paid_amount", paid_amount) + self.db_set("return_amount", return_amount) + self.set_status(update=True) + + base_paid_amount = aple_paid_amount.get("base_paid_amount") or 0 + self.db_set("base_paid_amount", base_paid_amount) + + def update_claimed_amount(self): + ec = frappe.qb.DocType("Expense Claim") + eca = frappe.qb.DocType("Expense Claim Advance") + + claimed_amount = ( + frappe.qb.from_(ec) + .join(eca) + .on(ec.name == eca.parent) + .select(Sum(eca.allocated_amount)) + .where( + (eca.employee_advance == self.name) + & (eca.allocated_amount > 0) + & (ec.approval_status == "Approved") + & (ec.docstatus == 1) + ) + ).run()[0][0] or 0 + frappe.db.set_value("Employee Advance", self.name, "claimed_amount", flt(claimed_amount)) + self.reload() + self.set_status(update=True) + + def set_pending_amount(self): + Advance = frappe.qb.DocType("Employee Advance") + self.pending_amount = ( + frappe.qb.from_(Advance) + .select(Sum(Advance.advance_amount - Advance.paid_amount)) + .where( + (Advance.employee == self.employee) + & (Advance.docstatus == 1) + & (Advance.posting_date <= self.posting_date) + & (Advance.status == "Unpaid") + ) + ).run()[0][0] or 0.0 + + def check_linked_payment_entry(self): + from erpnext.accounts.utils import ( + remove_ref_doc_link_from_pe, + update_accounting_ledgers_after_reference_removal, + ) + + if frappe.db.get_single_value("HR Settings", "unlink_payment_on_cancellation_of_employee_advance"): + remove_ref_doc_link_from_pe(self.doctype, self.name) + update_accounting_ledgers_after_reference_removal(self.doctype, self.name) + + +@frappe.whitelist() +def make_bank_entry(dt, dn): + doc = frappe.get_doc(dt, dn) + payment_account = get_same_currency_bank_cash_account(doc.company, doc.currency, doc.mode_of_payment) + + je = frappe.new_doc("Journal Entry") + je.posting_date = nowdate() + je.voucher_type = "Bank Entry" + je.company = doc.company + je.remark = "Payment against Employee Advance: " + dn + "\n" + doc.purpose + je.multi_currency = 1 if doc.currency != erpnext.get_company_currency(doc.company) else 0 + + je.append( + "accounts", + { + "account": doc.advance_account, + "account_currency": doc.currency, + "debit_in_account_currency": flt(doc.advance_amount), + "reference_type": "Employee Advance", + "reference_name": doc.name, + "party_type": "Employee", + "cost_center": erpnext.get_default_cost_center(doc.company), + "party": doc.employee, + "is_advance": "Yes", + }, + ) + + je.append( + "accounts", + { + "account": payment_account.account or payment_account.name, + "cost_center": erpnext.get_default_cost_center(doc.company), + "credit_in_account_currency": flt(doc.advance_amount), + "account_currency": doc.currency, + "account_type": payment_account.account_type, + }, + ) + + return je.as_dict() + + +@frappe.whitelist() +def create_return_through_additional_salary(doc): + import json + + if isinstance(doc, str): + doc = frappe._dict(json.loads(doc)) + + additional_salary = frappe.new_doc("Additional Salary") + additional_salary.employee = doc.employee + additional_salary.currency = doc.currency + additional_salary.overwrite_salary_structure_amount = 0 + additional_salary.amount = doc.paid_amount - doc.claimed_amount + additional_salary.company = doc.company + additional_salary.ref_doctype = doc.doctype + additional_salary.ref_docname = doc.name + + return additional_salary + + +@frappe.whitelist() +def make_return_entry( + employee, + company, + employee_advance_name, + return_amount, + advance_account, + currency, + mode_of_payment=None, +): + bank_cash_account = get_same_currency_bank_cash_account(company, currency, mode_of_payment) + + advance_account_currency = frappe.db.get_value("Account", advance_account, "account_currency") + + je = frappe.new_doc("Journal Entry") + je.posting_date = nowdate() + je.voucher_type = get_voucher_type(mode_of_payment) + je.company = company + je.remark = "Return against Employee Advance: " + employee_advance_name + je.multi_currency = 1 if advance_account_currency != erpnext.get_company_currency(company) else 0 + + advance_account_amount = flt(return_amount) + + je.append( + "accounts", + { + "account": advance_account, + "credit_in_account_currency": advance_account_amount, + "account_currency": advance_account_currency, + "reference_type": "Employee Advance", + "reference_name": employee_advance_name, + "party_type": "Employee", + "party": employee, + "is_advance": "Yes", + "cost_center": erpnext.get_default_cost_center(company), + }, + ) + + bank_amount = flt(return_amount) + je.append( + "accounts", + { + "account": bank_cash_account.account or bank_cash_account.name, + "debit_in_account_currency": bank_amount, + "account_currency": bank_cash_account.account_currency, + "account_type": bank_cash_account.account_type, + "cost_center": erpnext.get_default_cost_center(company), + }, + ) + + return je.as_dict() + + +def get_same_currency_bank_cash_account(company, currency, mode_of_payment=None): + company_currency = erpnext.get_company_currency(company) + if currency == company_currency: + return get_default_bank_cash_account(company, account_type="Cash", mode_of_payment=mode_of_payment) + + account = None + if mode_of_payment: + from erpnext.accounts.doctype.sales_invoice.sales_invoice import get_bank_cash_account + + account = get_bank_cash_account(mode_of_payment, company).get("account") + + if not account: + accounts = frappe.get_all( + "Account", + filters={ + "company": company, + "account_currency": currency, + "account_type": ["in", ["Cash", "Bank"]], + "is_group": 0, + }, + limit=1, + ) + if not accounts: + frappe.throw( + _("No Bank/Cash Account found for currency {0}. Please create one under company {1}.").format( + frappe.bold(currency), company + ), + title=_("Account Not Found"), + ) + account = accounts[0].name + return frappe.get_cached_value( + "Account", account, ["name", "account_currency", "account_type"], as_dict=True + ) + + +def get_voucher_type(mode_of_payment=None): + voucher_type = "Cash Entry" + + if mode_of_payment: + mode_of_payment_type = frappe.get_cached_value("Mode of Payment", mode_of_payment, "type") + if mode_of_payment_type == "Bank": + voucher_type = "Bank Entry" + + return voucher_type diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance_dashboard.py new file mode 100644 index 000000000..73fac5131 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/employee_advance_dashboard.py @@ -0,0 +1,9 @@ +def get_data(): + return { + "fieldname": "employee_advance", + "non_standard_fieldnames": { + "Payment Entry": "reference_name", + "Journal Entry": "reference_name", + }, + "transactions": [{"items": ["Expense Claim"]}, {"items": ["Payment Entry", "Journal Entry"]}], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/test_employee_advance.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/test_employee_advance.py new file mode 100644 index 000000000..58d1831c7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_advance/test_employee_advance.py @@ -0,0 +1,448 @@ +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase, change_settings +from frappe.utils import flt, nowdate + +import erpnext +from erpnext.accounts.doctype.account.test_account import create_account +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.employee_advance.employee_advance import ( + EmployeeAdvanceOverPayment, + create_return_through_additional_salary, + make_bank_entry, + make_return_entry, +) +from hrms.hr.doctype.expense_claim.expense_claim import get_advances +from hrms.hr.doctype.expense_claim.test_expense_claim import ( + get_payable_account, + make_expense_claim, +) +from hrms.payroll.doctype.salary_component.test_salary_component import create_salary_component +from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + +class TestEmployeeAdvance(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Employee Advance") + self.update_company_in_fiscal_year() + frappe.db.set_value("Account", "Employee Advances - _TC", "account_type", "Receivable") + frappe.db.set_value("Account", "_Test Employee Advance - _TC", "account_type", "Receivable") + + def tearDown(self): + frappe.set_value( + "Company", "_Test Company", "default_employee_advance_account", "Employee Advances - _TC" + ) + + def test_paid_amount_and_status(self): + employee_name = make_employee("_T@employee.advance", "_Test Company") + advance = make_employee_advance(employee_name) + + journal_entry = make_journal_entry_for_advance(advance) + journal_entry.submit() + + advance.reload() + + self.assertEqual(advance.paid_amount, 1000) + self.assertEqual(advance.status, "Paid") + + # try making over payment + journal_entry1 = make_journal_entry_for_advance(advance) + self.assertRaises(EmployeeAdvanceOverPayment, journal_entry1.submit) + + def test_paid_amount_on_pe_cancellation(self): + employee_name = make_employee("_T@employee.advance", "_Test Company") + advance = make_employee_advance(employee_name) + + journal_entry = make_journal_entry_for_advance(advance) + journal_entry.submit() + + advance.reload() + + self.assertEqual(advance.paid_amount, 1000) + self.assertEqual(advance.status, "Paid") + + journal_entry.cancel() + advance.reload() + + self.assertEqual(advance.paid_amount, 0) + self.assertEqual(advance.status, "Unpaid") + + advance.cancel() + advance.reload() + self.assertEqual(advance.status, "Cancelled") + + def test_claimed_status(self): + # CLAIMED Status check, full amount claimed + payable_account = get_payable_account("_Test Company") + claim = make_expense_claim( + payable_account, 1000, 1000, "_Test Company", "Travel Expenses - _TC", do_not_submit=True + ) + + advance = make_employee_advance(claim.employee) + journal_entry = make_journal_entry_for_advance(advance) + journal_entry.submit() + + claim = get_advances_for_claim(claim, advance.name) + claim.save() + claim.submit() + + advance.reload() + self.assertEqual(advance.claimed_amount, 1000) + self.assertEqual(advance.status, "Claimed") + + # advance should not be shown in claims + advances = get_advances(claim) + advances = [entry.employee_advance for entry in advances] + self.assertTrue(advance.name not in advances) + + # cancel claim; status should be Paid + claim.reload() + claim.cancel() + advance.reload() + self.assertEqual(advance.claimed_amount, 0) + self.assertEqual(advance.status, "Paid") + + def test_partly_claimed_and_returned_status(self): + payable_account = get_payable_account("_Test Company") + claim = make_expense_claim( + payable_account, 1000, 1000, "_Test Company", "Travel Expenses - _TC", do_not_submit=True + ) + + advance = make_employee_advance(claim.employee) + journal_entry = make_journal_entry_for_advance(advance) + journal_entry.submit() + + # PARTLY CLAIMED AND RETURNED status check + # 500 Claimed, 500 Returned + claim = make_expense_claim( + payable_account, 500, 500, "_Test Company", "Travel Expenses - _TC", do_not_submit=True + ) + + advance = make_employee_advance(claim.employee) + journal_entry = make_journal_entry_for_advance(advance) + journal_entry.submit() + + claim = get_advances_for_claim(claim, advance.name, amount=500) + claim.save() + claim.submit() + + advance.reload() + self.assertEqual(advance.claimed_amount, 500) + self.assertEqual(advance.status, "Paid") + + entry = make_return_entry( + employee=advance.employee, + company=advance.company, + employee_advance_name=advance.name, + return_amount=flt(advance.paid_amount - advance.claimed_amount), + advance_account=advance.advance_account, + mode_of_payment=advance.mode_of_payment, + currency=advance.currency, + ) + + entry = frappe.get_doc(entry) + entry.insert() + entry.submit() + + advance.reload() + self.assertEqual(advance.return_amount, 500) + self.assertEqual(advance.status, "Partly Claimed and Returned") + + # advance should not be shown in claims + advances = get_advances(claim) + advances = [entry.employee_advance for entry in advances] + self.assertTrue(advance.name not in advances) + + # Cancel return entry; status should change to PAID + entry.cancel() + advance.reload() + self.assertEqual(advance.return_amount, 0) + self.assertEqual(advance.status, "Paid") + + # advance should be shown in claims + advances = get_advances(claim) + advances = [entry.employee_advance for entry in advances] + self.assertTrue(advance.name in advances) + + def test_repay_unclaimed_amount_from_salary(self): + employee_name = make_employee("_T@employee.advance", "_Test Company") + advance = make_employee_advance(employee_name, {"repay_unclaimed_amount_from_salary": 1}) + journal_entry = make_journal_entry_for_advance(advance) + journal_entry.submit() + + args = {"type": "Deduction"} + create_salary_component("Advance Salary - Deduction", **args) + make_salary_structure( + "Test Additional Salary for Advance Return", + "Monthly", + employee=employee_name, + company="_Test Company", + ) + + # additional salary for 700 first + advance.reload() + additional_salary = create_return_through_additional_salary(advance) + additional_salary.salary_component = "Advance Salary - Deduction" + additional_salary.payroll_date = nowdate() + additional_salary.amount = 700 + additional_salary.insert() + additional_salary.submit() + + advance.reload() + self.assertEqual(advance.return_amount, 700) + + # additional salary for remaining 300 + additional_salary = create_return_through_additional_salary(advance) + additional_salary.salary_component = "Advance Salary - Deduction" + additional_salary.payroll_date = nowdate() + additional_salary.amount = 300 + additional_salary.insert() + additional_salary.submit() + + advance.reload() + self.assertEqual(advance.return_amount, 1000) + self.assertEqual(advance.status, "Returned") + + # update advance return amount on additional salary cancellation + additional_salary.cancel() + advance.reload() + self.assertEqual(advance.return_amount, 700) + self.assertEqual(advance.status, "Paid") + + def test_payment_entry_against_advance(self): + employee_name = make_employee("_T@employee.advance", "_Test Company") + advance = make_employee_advance(employee_name) + + pe = make_payment_entry(advance, 700) + advance.reload() + self.assertEqual(advance.status, "Unpaid") + self.assertEqual(advance.paid_amount, 700) + + pe = make_payment_entry(advance, 300) + advance.reload() + self.assertEqual(advance.status, "Paid") + self.assertEqual(advance.paid_amount, 1000) + + pe.cancel() + advance.reload() + self.assertEqual(advance.status, "Unpaid") + self.assertEqual(advance.paid_amount, 700) + + def test_precision(self): + employee_name = make_employee("_T@employee.advance", "_Test Company") + advance = make_employee_advance(employee_name) + journal_entry = make_journal_entry_for_advance(advance) + journal_entry.submit() + + # PARTLY CLAIMED AND RETURNED + payable_account = get_payable_account("_Test Company") + claim = make_expense_claim( + payable_account, 650.35, 619.34, "_Test Company", "Travel Expenses - _TC", do_not_submit=True + ) + + claim = get_advances_for_claim(claim, advance.name, amount=619.34) + claim.save() + claim.submit() + + advance.reload() + self.assertEqual(advance.status, "Paid") + + entry = make_return_entry( + employee=advance.employee, + company=advance.company, + employee_advance_name=advance.name, + return_amount=advance.paid_amount - advance.claimed_amount, + advance_account=advance.advance_account, + mode_of_payment=advance.mode_of_payment, + currency=advance.currency, + ) + + entry = frappe.get_doc(entry) + entry.insert() + entry.submit() + + advance.reload() + # precision is respected + self.assertEqual(advance.return_amount, 380.66) + self.assertEqual(advance.status, "Partly Claimed and Returned") + + def test_pending_amount(self): + employee_name = make_employee("_T@employee.advance", "_Test Company") + + advance1 = make_employee_advance(employee_name) + make_payment_entry(advance1, 500) + + advance2 = make_employee_advance(employee_name) + # 1000 - 500 + self.assertEqual(advance2.pending_amount, 500) + make_payment_entry(advance2, 700) + + advance3 = make_employee_advance(employee_name) + # (1000 - 500) + (1000 - 700) + self.assertEqual(advance3.pending_amount, 800) + + @change_settings("HR Settings", {"unlink_payment_on_cancellation_of_employee_advance": True}) + def test_unlink_payment_entries(self): + employee_name = make_employee("_T@employee.advance", "_Test Company") + self.assertTrue(frappe.db.exists("Employee", employee_name)) + + advance = make_employee_advance(employee_name) + self.assertTrue(advance) + + advance_payment = make_payment_entry(advance, 1000) + self.assertTrue(advance_payment) + self.assertEqual(advance_payment.total_allocated_amount, 1000) + + advance.reload() + advance.cancel() + advance_payment.reload() + self.assertEqual(advance_payment.unallocated_amount, 1000) + self.assertEqual(advance_payment.references, []) + + def test_employee_advance_when_different_company_currency(self): + employee = make_employee("test_adv_in_company_currency@example.com", "_Test Company") + + advance_account = create_advance_account("Employee Advance (USD)", "USD") + + advance = make_employee_advance( + employee, {"currency": "USD", "exchange_rate": 80, "advance_account": advance_account} + ) + make_payment_entry(advance, 1000) + advance.reload() + + self.assertEqual(advance.status, "Paid") + self.assertEqual(advance.paid_amount, 1000) + + def test_employee_advance_when_different_account_currency(self): + employee = make_employee("test_adv_in_account_currency@example.com", "_Test Company") + advance_account = create_advance_account("Employee Advance (USD)", "USD") + + frappe.db.set_value("Company", "_Test Company", "default_employee_advance_account", advance_account) + advance = make_employee_advance(employee, {"currency": "INR", "exchange_rate": 1}) + make_payment_entry(advance, 1000) + advance.reload() + + self.assertEqual(advance.status, "Paid") + self.assertEqual(advance.paid_amount, 1000) + + def test_employee_advance_when_different_advance_currency(self): + employee = make_employee("test_adv_in_advance_currency@example.com", "_Test Company") + advance = make_employee_advance( + employee, {"currency": "USD", "exchange_rate": 80}, do_not_submit=True + ) + self.assertRaises(frappe.ValidationError, advance.save) + + def update_company_in_fiscal_year(self): + fy_entries = frappe.get_all("Fiscal Year") + for fy_entry in fy_entries: + fiscal_year = frappe.get_doc("Fiscal Year", fy_entry.name) + company_list = [fy_c.company for fy_c in fiscal_year.companies if fy_c.company] + if "_Test Company" not in company_list: + fiscal_year.append("companies", {"company": "_Test Company"}) + fiscal_year.save() + + def test_multicurrency_advance(self): + advance_account = create_advance_account("Employee Advance (USD)", "USD") + employee = make_employee( + "test_adv_in_multicurrency@example.com", + "_Test Company", + salary_currency="USD", + employee_advance_account=advance_account, + ) + advance = make_employee_advance(employee) + self.assertEqual(advance.status, "Unpaid") + + payment_entry = make_payment_entry(advance, advance.advance_amount) + advance.reload() + self.assertEqual(advance.status, "Paid") + self.assertEqual(payment_entry.received_amount, advance.paid_amount) + + expected_base_paid = flt( + advance.paid_amount * payment_entry.transaction_exchange_rate, + advance.precision("base_paid_amount"), + ) + self.assertEqual(advance.base_paid_amount, expected_base_paid) + self.assertEqual(payment_entry.paid_amount, expected_base_paid) + + def test_status_on_discard(self): + employee_name = make_employee("Test_status@employee.advance", "_Test Company") + advance = make_employee_advance(employee_name, do_not_submit=True) + advance.insert() + advance.reload() + self.assertEqual(advance.status, "Draft") + advance.discard() + advance.reload() + self.assertEqual(advance.status, "Cancelled") + + +def make_journal_entry_for_advance(advance): + frappe.db.set_single_value("Accounts Settings", "make_payment_via_journal_entry", True) + journal_entry = frappe.get_doc(make_bank_entry("Employee Advance", advance.name)) + journal_entry.cheque_no = "123123" + journal_entry.cheque_date = nowdate() + journal_entry.save() + + return journal_entry + + +def make_payment_entry(advance, amount=None): + frappe.db.set_single_value("Accounts Settings", "make_payment_via_journal_entry", False) + from hrms.overrides.employee_payment_entry import get_payment_entry_for_employee + + payment_entry = get_payment_entry_for_employee(advance.doctype, advance.name) + + payment_entry.reference_no = "1" + payment_entry.reference_date = nowdate() + if amount: + payment_entry.references[0].allocated_amount = amount + payment_entry.submit() + return payment_entry + + +def make_employee_advance(employee_name, args=None, do_not_submit=False): + emp_details = frappe.db.get_value( + "Employee", employee_name, ["salary_currency", "employee_advance_account"], as_dict=True + ) + doc = frappe.new_doc("Employee Advance") + doc.employee = employee_name + doc.company = "_Test Company" + doc.purpose = "For site visit" + doc.currency = emp_details.salary_currency or erpnext.get_company_currency("_Test company") + doc.advance_amount = 1000 + doc.posting_date = nowdate() + doc.advance_account = emp_details.employee_advance_account or "_Test Employee Advance - _TC" + account_type = frappe.db.get_value("Account", "_Test Employee Advance - _TC", "account_type") + if not account_type: + frappe.db.set_value("Account", "_Test Employee Advance - _TC", "account_type", "Receivable") + + if args: + doc.update(args) + + if do_not_submit: + return doc + doc.insert() + doc.submit() + return doc + + +def get_advances_for_claim(claim, advance_name, amount=None): + advances = get_advances(claim, advance_name) + claim.advances = [] + for advance in advances: + if amount: + advance.allocated_amount = amount + claim.append("advances", advance) + return claim + + +def create_advance_account(account_name, account_currency): + return create_account( + account_name=account_name, + parent_account="Accounts Receivable - _TC", + company="_Test Company", + account_currency=account_currency, + account_type="Receivable", + ) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.css b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.css new file mode 100644 index 000000000..c48be791b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.css @@ -0,0 +1,33 @@ +.top-toolbar { + padding-bottom: 30px; + margin-left: -17px; +} + +.bottom-toolbar { + margin-left: -17px; + margin-top: 20px; +} + +.btn { + margin-right: 5px; +} + +.marked-employee-label { + font-weight: normal; +} + +.checkbox { + margin-top: 0px; +} +.employee_wrapper { + margin-top: 25px; + margin-bottom: 20px; +} +hr { + margin-top: 30px; + margin-bottom: 30px; +} +h5 { + margin-top: 20px; + margin-bottom: 15px; +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js new file mode 100644 index 000000000..1b2c234e6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js @@ -0,0 +1,298 @@ +frappe.ui.form.on("Employee Attendance Tool", { + refresh(frm) { + frm.trigger("reset_attendance_fields"); + frm.trigger("reset_tool_actions"); + hide_field("select_employees_section"); + hide_field("marked_attendance_section"); + }, + + onload(frm) { + frm.set_value("date", frappe.datetime.get_today()); + }, + + date: function (frm) { + hide_field("select_employees_section"); + hide_field("marked_attendance_section"); + frm.trigger("reset_tool_actions"); + }, + + reset_tool_actions(frm) { + frm.disable_save(); + get_employees_button = this.cur_frm.fields_dict.get_employees.$input; + get_employees_button.removeClass("btn-default").addClass("btn-primary"); + }, + + get_employees: function (frm) { + frm.trigger("load_employees"); + }, + + reset_attendance_fields(frm) { + frm.set_value("status", ""); + frm.set_value("shift", ""); + frm.set_value("late_entry", 0); + frm.set_value("early_exit", 0); + frm.set_value("half_day_status", ""); + }, + + load_employees(frm) { + if (!frm.doc.date) return; + frappe + .call({ + method: "hrms.hr.doctype.employee_attendance_tool.employee_attendance_tool.get_employees", + args: { + date: frm.doc.date, + department: frm.doc.department, + branch: frm.doc.branch, + company: frm.doc.company, + employment_type: frm.doc.employment_type, + designation: frm.doc.designation, + employee_grade: frm.doc.employee_grade, + shift: frm.doc.shift, + filter_by_shift: frm.doc.filter_by_shift, + }, + freeze: true, + freeze_message: __("...Fetching Employees"), + }) + .then((r) => { + unmarked_employees = r.message["unmarked"].length; + half_day_marked_employees = r.message["half_day_marked"].length; + if (r.message["marked"].length > 0) { + unhide_field("marked_attendance_section"); + frm.events.show_marked_employees(frm, r.message["marked"]); + } else { + hide_field("marked_attendance_section"); + } + if (unmarked_employees > 0 || half_day_marked_employees > 0) { + if (unmarked_employees) { + unhide_field("status"); + unhide_field("unmarked_employee_header"); + } else { + hide_field("status"); + hide_field("unmarked_employee_header"); + } + frm.events.show_employees_to_mark( + frm, + "unmarked_employees_html", + "unmarked_employees_multicheck", + r.message["unmarked"], + ); + if (half_day_marked_employees) { + unhide_field("half_day_status"); + unhide_field("half_day_marked_employee_header"); + } else { + hide_field("half_day_status"); + hide_field("half_day_marked_employee_header"); + } + frm.events.show_employees_to_mark( + frm, + "half_marked_employees_html", + "half_marked_employees_multicheck", + r.message["half_day_marked"], + ); + unmarked_employees && half_day_marked_employees + ? unhide_field("horizontal_break") + : hide_field("horizontal_break"); + unhide_field("select_employees_section"); + frm.trigger("set_primary_action"); + } else { + frappe.msgprint({ + message: __( + "Attendance for all the employees under this criteria has been marked already.", + ), + title: __("Attendance Marked"), + indicator: "green", + }); + } + }); + }, + show_employees_to_mark(frm, html_fieldname, multicheck_fieldname, employee_list) { + if (!employee_list.length) return; + const $wrapper = frm.get_field(html_fieldname).$wrapper; + $wrapper.empty(); + const employee_wrapper = $(`
    `).appendTo($wrapper); + frm.fields_dict[multicheck_fieldname] = frappe.ui.form.make_control({ + parent: employee_wrapper, + df: { + fieldname: multicheck_fieldname, + fieldtype: "MultiCheck", + select_all: true, + columns: 3, + get_data: () => { + return employee_list.map((employee) => { + return { + label: `${employee.employee} : ${employee.employee_name}`, + value: employee.employee, + checked: 0, + }; + }); + }, + }, + render_input: true, + }); + + frm.get_field(multicheck_fieldname).refresh_input(); + }, + + show_marked_employees(frm, marked_employees) { + const $wrapper = frm.get_field("marked_attendance_html").$wrapper; + const summary_wrapper = $(`
    `).appendTo($wrapper); + const columns = frm.events.get_columns_for_marked_attendance_table(frm); + const data = marked_employees.map((entry) => { + return [`${entry.employee} : ${entry.employee_name}`, entry.status]; + }); + frm.events.render_marked_employee_datatable(frm, data, summary_wrapper, columns); + }, + + get_columns_for_marked_attendance_table() { + return [ + { + name: "employee", + id: "employee", + content: __("Employee"), + width: 300, + }, + { + name: "status", + id: "status", + content: __("Status"), + width: 100, + format: (value) => { + if (value == "Present" || value == "Work From Home") + return `${__(value)}`; + else if (value == "Absent") + return `${__(value)}`; + else if (value == "Half Day") + return `${__(value)}`; + else if (value == "On Leave") + return `${__(value)}`; + }, + }, + { + name: "shift", + id: "shift", + content: __("Shift"), + width: 200, + }, + { + name: "leave_type", + id: "leave_type", + content: __("Leave Type"), + width: 200, + }, + ].map((x) => ({ + ...x, + editable: false, + sortable: false, + focusable: false, + dropdown: false, + align: "left", + })); + }, + show_marked_employees(frm, marked_employees) { + const $wrapper = frm.get_field("marked_attendance_html").$wrapper; + const summary_wrapper = $(`
    `).appendTo($wrapper); + + const data = marked_employees.map((entry) => { + return [ + `${entry.employee} : ${entry.employee_name}`, + entry.status, + entry.shift, + entry.leave_type, + ]; + }); + + frm.events.render_datatable(frm, data, summary_wrapper); + }, + + render_datatable(frm, data, summary_wrapper) { + const columns = frm.events.get_columns_for_marked_attendance_table(frm); + + if (!frm.marked_emp_datatable) { + const datatable_options = { + columns: columns, + data: data, + dynamicRowHeight: true, + inlineFilters: true, + layout: "fixed", + cellHeight: 35, + noDataMessage: __("No Data"), + disableReorderColumn: true, + }; + frm.marked_emp_datatable = new frappe.DataTable( + summary_wrapper.get(0), + datatable_options, + ); + } else { + frm.marked_emp_datatable.refresh(data, columns); + } + }, + set_primary_action(frm) { + get_employees_button = this.cur_frm.fields_dict.get_employees.$input; + get_employees_button.removeClass("btn-primary").addClass("btn-default"); + frm.page.set_primary_action(__("Mark Attendance"), () => { + const employees_to_mark_full_day = + frm.get_field("unmarked_employees_multicheck")?.get_checked_options() || []; + const employees_to_mark_half_day = + frm.get_field("half_marked_employees_multicheck")?.get_checked_options() || []; + + if ( + employees_to_mark_full_day.length === 0 && + employees_to_mark_half_day.length === 0 + ) { + frappe.throw({ + message: __("Please select the employees you want to mark attendance for."), + title: __("Mandatory"), + }); + } + + if (employees_to_mark_full_day.length > 0 && !frm.doc.status) { + frappe.throw({ + message: __("Please select the attendance status."), + title: __("Mandatory"), + }); + } + if (employees_to_mark_half_day.length > 0 && !frm.doc.half_day_status) { + frappe.throw({ + message: __("Please select half day attendance status."), + title: __("Mandatory"), + }); + } + if (employees_to_mark_full_day.length > 0 || employees_to_mark_half_day.length > 0) { + frm.events.mark_full_day_attendance( + frm, + employees_to_mark_full_day, + employees_to_mark_half_day, + ); + } + }); + }, + + mark_full_day_attendance(frm, employees_to_mark_full_day, employees_to_mark_half_day) { + frappe + .call({ + method: "hrms.hr.doctype.employee_attendance_tool.employee_attendance_tool.mark_employee_attendance", + args: { + employee_list: employees_to_mark_full_day, + status: frm.doc.status, + date: frm.doc.date, + late_entry: frm.doc.late_entry, + early_exit: frm.doc.early_exit, + shift: frm.doc.shift, + mark_half_day: employees_to_mark_half_day.length ? true : false, + half_day_status: frm.doc.half_day_status, + half_day_employee_list: employees_to_mark_half_day, + }, + freeze: true, + freeze_message: __("Marking Attendance"), + }) + .then((r) => { + if (!r.exc) { + frappe.show_alert({ + message: __("Attendance marked successfully"), + indicator: "green", + }); + frm.refresh(); + } + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json new file mode 100644 index 000000000..2357e1445 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json @@ -0,0 +1,206 @@ +{ + "actions": [], + "allow_copy": 1, + "creation": "2016-01-27 14:59:47.849379", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "date", + "shift", + "column_break_gmhs", + "late_entry", + "early_exit", + "section_break_ackd", + "company", + "branch", + "department", + "filter_by_shift", + "column_break_bhny", + "employment_type", + "designation", + "employee_grade", + "get_employees", + "select_employees_section", + "unmarked_employee_header", + "status", + "unmarked_employees_html", + "horizontal_break", + "half_day_marked_employee_header", + "half_day_status", + "half_marked_employees_html", + "marked_attendance_section", + "marked_attendance_html" + ], + "fields": [ + { + "default": "Today", + "fieldname": "date", + "fieldtype": "Date", + "label": "Date" + }, + { + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department" + }, + { + "fieldname": "branch", + "fieldtype": "Link", + "label": "Branch", + "options": "Branch" + }, + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company" + }, + { + "collapsible": 1, + "depends_on": "date", + "fieldname": "marked_attendance_section", + "fieldtype": "Section Break", + "label": "Marked Attendance" + }, + { + "fieldname": "marked_attendance_html", + "fieldtype": "HTML", + "label": "Marked Attendance HTML" + }, + { + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Status", + "options": "\nPresent\nAbsent\nHalf Day\nWork From Home" + }, + { + "collapsible": 1, + "collapsible_depends_on": "eval:true", + "description": "Set filters to fetch employees", + "fieldname": "section_break_ackd", + "fieldtype": "Section Break", + "label": "Get Employees" + }, + { + "fieldname": "column_break_bhny", + "fieldtype": "Column Break" + }, + { + "default": "0", + "fieldname": "late_entry", + "fieldtype": "Check", + "label": "Late Entry" + }, + { + "default": "0", + "fieldname": "early_exit", + "fieldtype": "Check", + "label": "Early Exit" + }, + { + "fieldname": "shift", + "fieldtype": "Link", + "label": "Shift", + "mandatory_depends_on": "filter_by_shift", + "options": "Shift Type" + }, + { + "fieldname": "employment_type", + "fieldtype": "Link", + "label": "Employment Type", + "options": "Employment Type" + }, + { + "fieldname": "designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation" + }, + { + "fieldname": "employee_grade", + "fieldtype": "Link", + "label": "Employee Grade", + "options": "Employee Grade" + }, + { + "fieldname": "unmarked_employees_html", + "fieldtype": "HTML", + "label": "Unmarked Employees HTML", + "read_only": 1 + }, + { + "fieldname": "half_marked_employees_html", + "fieldtype": "HTML", + "label": "Employees on Half Day HTML" + }, + { + "fieldname": "half_day_status", + "fieldtype": "Select", + "label": "Status for Other Half", + "options": "Present\nAbsent" + }, + { + "fieldname": "column_break_gmhs", + "fieldtype": "Column Break" + }, + { + "fieldname": "get_employees", + "fieldtype": "Button", + "label": "Get Employees" + }, + { + "collapsible": 1, + "collapsible_depends_on": "eval:true", + "fieldname": "select_employees_section", + "fieldtype": "Section Break", + "label": "Select Employees" + }, + { + "fieldname": "unmarked_employee_header", + "fieldtype": "HTML", + "label": "Unmarked Employee Header", + "options": "
    Unmarked Employees
    " + }, + { + "fieldname": "half_day_marked_employee_header", + "fieldtype": "HTML", + "label": "Half Day Marked Employee Header", + "options": "
    Employees on Half Day
    " + }, + { + "fieldname": "horizontal_break", + "fieldtype": "HTML", + "label": "Horizontal Break", + "options": "
    " + }, + { + "default": "0", + "fieldname": "filter_by_shift", + "fieldtype": "Check", + "label": "Filter by Shift" + } + ], + "grid_page_length": 50, + "hide_toolbar": 1, + "issingle": 1, + "links": [], + "modified": "2025-08-07 09:26:38.614559", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Attendance Tool", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "read": 1, + "role": "HR Manager", + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.py new file mode 100644 index 000000000..347d474c3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.py @@ -0,0 +1,169 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import datetime +import json + +import frappe +from frappe.model.document import Document +from frappe.utils import getdate + + +class EmployeeAttendanceTool(Document): + pass + + +@frappe.whitelist() +def get_employees( + date: str | datetime.date, + department: str | None = None, + branch: str | None = None, + company: str | None = None, + employment_type: str | None = None, + designation: str | None = None, + employee_grade: str | None = None, + shift: str | None = None, + filter_by_shift: bool | None = None, +) -> dict[str, list]: + filters = {"status": "Active", "date_of_joining": ["<=", date]} + + for field, value in { + "department": department, + "branch": branch, + "company": company, + "employment_type": employment_type, + "designation": designation, + "employee_grade": employee_grade, + }.items(): + if value: + filters[field] = value + # list of all employees + employee_list = frappe.get_list( + "Employee", + fields=["employee", "employee_name"], + filters=filters, + order_by="employee_name", + ) + # marked attendance + attendance_list = frappe.get_list( + "Attendance", + fields=["employee", "employee_name", "status", "shift", "leave_type"], + filters={ + "attendance_date": date, + "docstatus": 1, + "modify_half_day_status": 0, + }, + order_by="employee_name", + ) + half_day_attendance_list = frappe.get_list( + "Attendance", + fields=["employee", "employee_name"], + filters={ + "attendance_date": date, + "docstatus": 1, + "modify_half_day_status": 1, + "leave_type": ("is", "set"), + }, + order_by="employee_name", + ) + unmarked_attendance = _get_unmarked_attendance( + employee_list, [*attendance_list, *half_day_attendance_list] + ) + if filter_by_shift: + unmarked_attendance = _get_unmarked_attendance_with_shift(unmarked_attendance, shift, date) + return { + "marked": attendance_list, + "half_day_marked": half_day_attendance_list, + "unmarked": unmarked_attendance, + } + + +def _get_unmarked_attendance(employee_list: list[dict], attendance_list: list[dict]) -> list[dict]: + marked_employees = [entry.employee for entry in attendance_list] + unmarked_attendance = [] + + for entry in employee_list: + if entry.employee not in marked_employees: + unmarked_attendance.append(entry) + + return unmarked_attendance + + +def _get_unmarked_attendance_with_shift(unmarked_attendance, shift, date): + # Fetch employees based on Shift Assignment + shift_assigned_employees = frappe.get_list( + "Shift Assignment", + filters={ + "shift_type": shift, + "start_date": ["<=", frappe.utils.getdate(date)], + }, + fields=["employee"], + ) + # Fetch employees based on default shifts + default_shift_employees = frappe.get_list( + "Employee", + filters={ + "default_shift": shift, + }, + fields=["employee"], + ) + + all_employees_with_shift = shift_assigned_employees + default_shift_employees + distinct_employees_with_shift = {emp["employee"] for emp in all_employees_with_shift} + + # Filter unmarked attendance based on assigned employees + shiftwise_unmarked_attendance = [] + for emp in unmarked_attendance: + if emp["employee"] in distinct_employees_with_shift: + shiftwise_unmarked_attendance.append(emp) + + return shiftwise_unmarked_attendance + + +@frappe.whitelist() +def mark_employee_attendance( + employee_list: list | str, + status: str, + date: str | datetime.date, + leave_type: str | None = None, + company: str | None = None, + late_entry: int | None = None, + early_exit: int | None = None, + shift: str | None = None, + mark_half_day: bool | None = False, + half_day_status: str | None = None, + half_day_employee_list: list | str | None = None, +) -> None: + if isinstance(employee_list, str): + employee_list = json.loads(employee_list) + + for employee in employee_list: + leave_type = None + if status == "On Leave" and leave_type: + leave_type = leave_type + + attendance = frappe.get_doc( + dict( + doctype="Attendance", + employee=employee, + attendance_date=getdate(date), + status=status, + leave_type=leave_type, + late_entry=late_entry, + early_exit=early_exit, + shift=shift, + ) + ) + attendance.insert() + attendance.submit() + if mark_half_day: + if isinstance(half_day_employee_list, str): + half_day_employee_list = json.loads(half_day_employee_list) + Attendance = frappe.qb.DocType("Attendance") + for employee in half_day_employee_list: + frappe.qb.update(Attendance).where( + (Attendance.employee == employee) & (Attendance.attendance_date == date) + ).set(Attendance.half_day_status, half_day_status).set(Attendance.shift, shift).set( + Attendance.late_entry, late_entry + ).set(Attendance.early_exit, early_exit).set(Attendance.modify_half_day_status, 0).run() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/test_employee_attendance_tool.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/test_employee_attendance_tool.py new file mode 100644 index 000000000..d7aa72516 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_attendance_tool/test_employee_attendance_tool.py @@ -0,0 +1,241 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.attendance.attendance import mark_attendance +from hrms.hr.doctype.employee_attendance_tool.employee_attendance_tool import ( + _get_unmarked_attendance_with_shift, + get_employees, + mark_employee_attendance, +) +from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import ( + create_holiday_list_assignment, +) +from hrms.hr.doctype.leave_type.test_leave_type import create_leave_type +from hrms.hr.doctype.shift_type.test_shift_type import setup_shift_type +from hrms.payroll.doctype.salary_slip.test_salary_slip import make_leave_application + + +class TestEmployeeAttendanceTool(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Attendance") + + self.employee1 = make_employee("test_present@example.com", company="_Test Company") + self.employee2 = make_employee("test_absent@example.com", company="_Test Company") + self.employee3 = make_employee("test_unmarked@example.com", company="_Test Company") + + self.employee4 = make_employee("test_filter@example.com", company="_Test Company 1") + create_holiday_list_assignment("Company", "_Test Company 1") + + def test_get_employee_attendance(self): + date = getdate("28-02-2023") + mark_attendance(self.employee1, date, "Present") + mark_attendance(self.employee2, date, "Absent") + + employees = get_employees(date, company="_Test Company") + + marked_employees = employees["marked"] + unmarked_employees = [entry.employee for entry in employees["unmarked"]] + + # absent + self.assertEqual(marked_employees[0].get("employee"), self.employee2) + # present + self.assertEqual(marked_employees[1].get("employee"), self.employee1) + # unmarked + self.assertIn(self.employee3, unmarked_employees) + # employee from a different company + self.assertNotIn(self.employee4, unmarked_employees) + + def test_mark_employee_attendance(self): + shift = setup_shift_type(shift_type="Shift 1", start_time="08:00:00", end_time="10:00:00") + date = getdate("28-02-2023") + + mark_employee_attendance( + [self.employee1, self.employee2], + "Present", + date, + shift=shift.name, + late_entry=1, + ) + + attendance = frappe.db.get_value( + "Attendance", + {"employee": self.employee1, "attendance_date": date}, + ["status", "shift", "late_entry"], + as_dict=True, + ) + + self.assertEqual(attendance.status, "Present") + self.assertEqual(attendance.shift, shift.name) + self.assertEqual(attendance.late_entry, 1) + + def test_get_employees_for_half_day_attendance(self): + # only half day attendance created from leave type should be fetched to update in the tool + employee = frappe.get_doc("Employee", self.employee1) + leave_type = create_leave_type(leave_type="_Test Employee Attendance Tool", include_holidays=0) + frappe.get_doc( + { + "doctype": "Leave Allocation", + "employee": employee.name, + "employee_name": employee.employee_name, + "leave_type": leave_type.name, + "from_date": add_days(getdate(), -2), + "new_leaves_allocated": 15, + "carry_forward": 0, + "to_date": add_days(getdate(), 30), + } + ).submit() + make_leave_application( + employee=employee.name, + from_date=getdate(), + to_date=getdate(), + leave_type=leave_type.name, + half_day=1, + half_day_date=getdate(), + ) + mark_attendance( + self.employee2, attendance_date=getdate(), status="Half Day", half_day_status="Absent" + ) + total_employees = get_employees(getdate(), company="_Test Company") + half_marked_employees = total_employees.get("half_day_marked") + self.assertEqual(len(half_marked_employees), 1) + self.assertEqual(half_marked_employees[0].get("employee_name"), employee.employee_name) + + def test_update_half_day_attendance(self): + shift = setup_shift_type( + shift_type="Test Attendance Tool", start_time="08:00:00", end_time="12:00:00" + ) + employee4 = frappe.get_doc("Employee", self.employee4) + employee2 = frappe.get_doc("Employee", self.employee2) + leave_type = create_leave_type(leave_type="_Test Employee Attendance Tool", include_holidays=0) + date = add_days(getdate(), -1) + create_leave_allocation(employee2, leave_type) + create_leave_allocation(employee4, leave_type) + make_leave_application( + employee=employee2.name, + from_date=date, + to_date=date, + leave_type=leave_type.name, + half_day=1, + half_day_date=date, + ) + make_leave_application( + employee=employee4.name, + from_date=date, + to_date=date, + leave_type=leave_type.name, + half_day=1, + half_day_date=date, + ) + + mark_employee_attendance( + employee_list=[self.employee1, self.employee3], + status="Present", + date=date, + shift=shift.name, + late_entry=1, + early_exit=0, + mark_half_day=True, + half_day_status="Present", + half_day_employee_list=[employee2.name, employee4.name], + ) + attendances = frappe.get_all( + "Attendance", + filters={"attendance_date": date}, + fields=["employee", "status", "half_day_status", "shift", "late_entry", "early_exit"], + ) + self.assertEqual(len(attendances), 4) + for attendance in attendances: + if attendance.get("employee") in (self.employee1, self.employee3): + self.assertEqual(attendance.status, "Present") + self.assertIsNone(attendance.half_day_status) + if attendance.get("employee") in (self.employee2, self.employee4): + self.assertEqual(attendance.status, "Half Day") + self.assertEqual(attendance.half_day_status, "Present") + self.assertEqual(attendance.shift, shift.name) + + def test_get_unmarked_attendance_with_shift(self): + self.shift = setup_shift_type(shift_type="Shift 1", start_time="08:00:00", end_time="10:00:00") + self.employee1 = frappe.get_doc( + { + "doctype": "Employee", + "first_name": "Morning Shift Assigned", + "employee": "EMP001", + "date_of_birth": "1992-01-01", + "date_of_joining": "2023-01-01", + "default_shift": "", + "gender": "Male", + } + ).insert() + + self.employee2 = frappe.get_doc( + { + "doctype": "Employee", + "first_name": "Test Default Shift", + "employee": "EMP002", + "date_of_birth": "1992-01-01", + "date_of_joining": "2023-01-01", + "default_shift": self.shift.name, + "gender": "Male", + } + ).insert() + + self.employee3 = frappe.get_doc( + { + "doctype": "Employee", + "first_name": "Test Not Assigned", + "employee": "EMP003", + "date_of_birth": "1992-01-01", + "date_of_joining": "2023-01-01", + "default_shift": "", + "gender": "Male", + } + ).insert() + + # Assign a shift to employee1 via Shift Assignment + self.shift_assignment = frappe.get_doc( + { + "doctype": "Shift Assignment", + "employee": self.employee1.name, + "shift_type": self.shift.name, + "start_date": frappe.utils.getdate("2023-02-28"), + "end_date": frappe.utils.getdate("2023-03-10"), + } + ).insert() + # Prepare the unmarked_attendance sample input + unmarked_attendance = [ + {"employee": self.employee1.name}, + {"employee": self.employee2.name}, + {"employee": self.employee3.name}, + ] + + shift = self.shift.name + date = "2023-03-01" + + result = _get_unmarked_attendance_with_shift(unmarked_attendance, shift, date) + + # Only employee1 and employee2 have the shift (assigned/default) + filtered = set([emp["employee"] for emp in result]) + self.assertIn(self.employee1.name, filtered) + self.assertIn(self.employee2.name, filtered) + self.assertNotIn(self.employee3.name, filtered) + + +def create_leave_allocation(employee, leave_type): + frappe.get_doc( + { + "doctype": "Leave Allocation", + "employee": employee.name, + "employee_name": employee.employee_name, + "leave_type": leave_type.name, + "from_date": add_days(getdate(), -2), + "new_leaves_allocated": 15, + "carry_forward": 0, + "to_date": add_days(getdate(), 30), + } + ).submit() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_boarding_activity/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_boarding_activity/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json new file mode 100644 index 000000000..96c8f8d8e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json @@ -0,0 +1,108 @@ +{ + "actions": [], + "creation": "2018-05-09 05:37:18.439763", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "activity_name", + "user", + "role", + "begin_on", + "duration", + "column_break_3", + "task", + "task_weight", + "required_for_employee_creation", + "section_break_6", + "description" + ], + "fields": [ + { + "columns": 3, + "fieldname": "activity_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Activity Name", + "reqd": 1 + }, + { + "columns": 2, + "depends_on": "eval:!doc.role", + "fieldname": "user", + "fieldtype": "Link", + "in_list_view": 1, + "label": "User", + "options": "User" + }, + { + "columns": 1, + "depends_on": "eval:!doc.user", + "fieldname": "role", + "fieldtype": "Link", + "label": "Role", + "options": "Role" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "task", + "fieldtype": "Link", + "label": "Task", + "no_copy": 1, + "options": "Task", + "read_only": 1 + }, + { + "fieldname": "task_weight", + "fieldtype": "Float", + "label": "Task Weight" + }, + { + "default": "0", + "depends_on": "eval:['Employee Onboarding', 'Employee Onboarding Template'].includes(doc.parenttype)", + "description": "Applicable in the case of Employee Onboarding", + "fieldname": "required_for_employee_creation", + "fieldtype": "Check", + "label": "Required for Employee Creation" + }, + { + "fieldname": "section_break_6", + "fieldtype": "Section Break" + }, + { + "fieldname": "description", + "fieldtype": "Text Editor", + "label": "Description" + }, + { + "columns": 2, + "fieldname": "duration", + "fieldtype": "Int", + "in_list_view": 1, + "label": "Duration (Days)" + }, + { + "columns": 2, + "fieldname": "begin_on", + "fieldtype": "Int", + "in_list_view": 1, + "label": "Begin On (Days)" + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:38.088792", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Boarding Activity", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.py new file mode 100644 index 000000000..e82408132 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class EmployeeBoardingActivity(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin.js new file mode 100644 index 000000000..8fe1e57cf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin.js @@ -0,0 +1,61 @@ +// Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Checkin", { + refresh: async (frm) => { + if (frm.doc.offshift) { + frm.dashboard.clear_headline(); + frm.dashboard.set_headline( + __( + "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again.", + ), + ); + } + if (!frm.doc.__islocal) frm.trigger("add_fetch_shift_button"); + + const allow_geolocation_tracking = await frappe.db.get_single_value( + "HR Settings", + "allow_geolocation_tracking", + ); + + if (!allow_geolocation_tracking) { + hide_field(["fetch_geolocation", "latitude", "longitude", "geolocation"]); + return; + } + }, + + fetch_geolocation: (frm) => { + hrms.fetch_geolocation(frm); + }, + + add_fetch_shift_button(frm) { + if (frm.doc.attendance) return; + frm.add_custom_button(__("Fetch Shift"), function () { + frappe.call({ + method: "fetch_shift", + doc: frm.doc, + freeze: true, + freeze_message: __("Fetching Shift"), + callback: function () { + if (frm.doc.shift) { + frappe.show_alert({ + message: __("Shift has been successfully updated to {0}.", [ + frm.doc.shift, + ]), + indicator: "green", + }); + frm.dirty(); + frm.save(); + } else { + frappe.show_alert({ + message: __("No valid shift found for log time"), + indicator: "orange", + }); + frm.dirty(); + frm.save(); + } + }, + }); + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin.json new file mode 100644 index 000000000..21717ed8e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin.json @@ -0,0 +1,289 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "EMP-CKIN-.MM.-.YYYY.-.######", + "creation": "2019-06-10 11:56:34.536413", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "log_type", + "shift", + "overtime_type", + "column_break_4", + "time", + "device_id", + "skip_auto_attendance", + "attendance", + "location_section", + "latitude", + "column_break_yqpi", + "longitude", + "section_break_ksbo", + "fetch_geolocation", + "geolocation", + "shift_timings_section", + "shift_start", + "shift_end", + "offshift", + "column_break_vyyt", + "shift_actual_start", + "shift_actual_end" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Employee Name", + "read_only": 1 + }, + { + "fieldname": "log_type", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Log Type", + "options": "\nIN\nOUT" + }, + { + "fieldname": "shift", + "fieldtype": "Link", + "label": "Shift", + "options": "Shift Type", + "read_only": 1, + "search_index": 1 + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "default": "Now", + "fieldname": "time", + "fieldtype": "Datetime", + "in_list_view": 1, + "label": "Time", + "permlevel": 1, + "read_only_depends_on": "eval:doc.attendance;", + "reqd": 1 + }, + { + "fieldname": "device_id", + "fieldtype": "Data", + "label": "Location / Device ID" + }, + { + "default": "0", + "fieldname": "skip_auto_attendance", + "fieldtype": "Check", + "label": "Skip Auto Attendance" + }, + { + "fieldname": "attendance", + "fieldtype": "Link", + "label": "Attendance Marked", + "options": "Attendance", + "read_only": 1 + }, + { + "fieldname": "shift_start", + "fieldtype": "Datetime", + "hidden": 1, + "label": "Shift Start" + }, + { + "fieldname": "shift_end", + "fieldtype": "Datetime", + "hidden": 1, + "label": "Shift End" + }, + { + "fieldname": "shift_actual_start", + "fieldtype": "Datetime", + "hidden": 1, + "label": "Shift Actual Start" + }, + { + "fieldname": "shift_actual_end", + "fieldtype": "Datetime", + "hidden": 1, + "label": "Shift Actual End" + }, + { + "fieldname": "location_section", + "fieldtype": "Section Break", + "label": "Location" + }, + { + "fieldname": "geolocation", + "fieldtype": "Geolocation", + "label": "Geolocation", + "read_only": 1 + }, + { + "fieldname": "shift_timings_section", + "fieldtype": "Section Break", + "label": "Shift Timings" + }, + { + "fieldname": "column_break_vyyt", + "fieldtype": "Column Break" + }, + { + "fieldname": "latitude", + "fieldtype": "Float", + "label": "Latitude", + "precision": "7", + "read_only": 1 + }, + { + "fieldname": "longitude", + "fieldtype": "Float", + "label": "Longitude", + "precision": "7", + "read_only": 1 + }, + { + "fieldname": "column_break_yqpi", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_ksbo", + "fieldtype": "Section Break", + "hide_border": 1 + }, + { + "fieldname": "fetch_geolocation", + "fieldtype": "Button", + "label": "Fetch Geolocation" + }, + { + "default": "0", + "fieldname": "offshift", + "fieldtype": "Check", + "hidden": 1, + "label": "Off-shift", + "read_only": 1 + }, + { + "fieldname": "overtime_type", + "fieldtype": "Link", + "hidden": 1, + "label": "Overtime Type", + "options": "Overtime Type" + } + ], + "links": [], + "modified": "2025-07-09 10:47:34.591144", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Checkin", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "import": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "import": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "import": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "read": 1, + "role": "Employee", + "write": 1 + }, + { + "delete": 1, + "email": 1, + "export": 1, + "permlevel": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "delete": 1, + "email": 1, + "export": 1, + "permlevel": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "delete": 1, + "email": 1, + "export": 1, + "permlevel": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "permlevel": 1, + "read": 1, + "role": "Employee" + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "ASC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin.py new file mode 100644 index 000000000..5be103a7c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin.py @@ -0,0 +1,482 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from datetime import datetime, timedelta + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import cint, get_datetime + +from hrms.hr.doctype.shift_assignment.shift_assignment import get_actual_start_end_datetime_of_shift +from hrms.hr.utils import ( + get_distance_between_coordinates, + set_geolocation_from_coordinates, + validate_active_employee, +) + + +class CheckinRadiusExceededError(frappe.ValidationError): + pass + + +class EmployeeCheckin(Document): + def before_validate(self): + self.time = get_datetime(self.time).replace(microsecond=0) + + def validate(self): + validate_active_employee(self.employee) + self.validate_duplicate_log() + self.validate_time_change() + self.fetch_shift() + self.set_geolocation() + self.validate_distance_from_shift_location() + + def validate_duplicate_log(self): + doc = frappe.db.exists( + "Employee Checkin", + { + "employee": self.employee, + "time": self.time, + "name": ("!=", self.name), + "log_type": self.log_type, + }, + ) + if doc: + doc_link = frappe.get_desk_link("Employee Checkin", doc) + frappe.throw( + _("This employee already has a log with the same timestamp.{0}").format("
    " + doc_link) + ) + + def validate_time_change(self): + if self.attendance and self.has_value_changed("time"): + frappe.throw( + title=_("Cannot Modify Time"), + msg=_( + "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." + ), + ) + + @frappe.whitelist() + def set_geolocation(self): + set_geolocation_from_coordinates(self) + + @frappe.whitelist() + def fetch_shift(self): + if not ( + shift_actual_timings := get_actual_start_end_datetime_of_shift( + self.employee, get_datetime(self.time), True + ) + ): + self.shift = None + self.offshift = 1 + return + + if ( + shift_actual_timings.shift_type.determine_check_in_and_check_out + == "Strictly based on Log Type in Employee Checkin" + and not self.log_type + and not self.skip_auto_attendance + ): + frappe.throw( + _("Log Type is required for check-ins falling in the shift: {0}.").format( + shift_actual_timings.shift_type.name + ) + ) + if not self.attendance: + self.offshift = 0 + self.shift = shift_actual_timings.shift_type.name + self.shift_actual_start = shift_actual_timings.actual_start + self.shift_actual_end = shift_actual_timings.actual_end + self.shift_start = shift_actual_timings.start_datetime + self.shift_end = shift_actual_timings.end_datetime + self.overtime_type = shift_actual_timings.overtime_type or None + + def validate_distance_from_shift_location(self): + if not frappe.db.get_single_value("HR Settings", "allow_geolocation_tracking"): + return + + if not (self.latitude or self.longitude): + frappe.throw(_("Latitude and longitude values are required for checking in.")) + + assignment_locations = frappe.get_all( + "Shift Assignment", + filters={ + "employee": self.employee, + "shift_type": self.shift, + "start_date": ["<=", self.time], + "shift_location": ["is", "set"], + "docstatus": 1, + "status": "Active", + }, + or_filters=[["end_date", ">=", self.time], ["end_date", "is", "not set"]], + pluck="shift_location", + ) + if not assignment_locations: + return + + checkin_radius, latitude, longitude = frappe.db.get_value( + "Shift Location", assignment_locations[0], ["checkin_radius", "latitude", "longitude"] + ) + if checkin_radius <= 0: + return + + distance = get_distance_between_coordinates(latitude, longitude, self.latitude, self.longitude) + if distance > checkin_radius: + frappe.throw( + _("You must be within {0} meters of your shift location to check in.").format(checkin_radius), + exc=CheckinRadiusExceededError, + ) + + +@frappe.whitelist() +def add_log_based_on_employee_field( + employee_field_value, + timestamp, + device_id=None, + log_type=None, + skip_auto_attendance=0, + employee_fieldname="attendance_device_id", + latitude=None, + longitude=None, +): + """Finds the relevant Employee using the employee field value and creates a Employee Checkin. + + :param employee_field_value: The value to look for in employee field. + :param timestamp: The timestamp of the Log. Currently expected in the following format as string: '2019-05-08 10:48:08.000000' + :param device_id: (optional)Location / Device ID. A short string is expected. + :param log_type: (optional)Direction of the Punch if available (IN/OUT). + :param skip_auto_attendance: (optional)Skip auto attendance field will be set for this log(0/1). + :param employee_fieldname: (Default: attendance_device_id)Name of the field in Employee DocType based on which employee lookup will happen. + :latitude: (optional) Latitude of the shift location. + :longitude: (optional) Longitude of the shift location. + """ + + if not employee_field_value or not timestamp: + frappe.throw(_("'employee_field_value' and 'timestamp' are required.")) + + employee = frappe.db.get_values( + "Employee", + {employee_fieldname: employee_field_value}, + ["name", "employee_name", employee_fieldname], + as_dict=True, + ) + if employee: + employee = employee[0] + else: + frappe.throw( + _("No Employee found for the given employee field value. '{}': {}").format( + employee_fieldname, employee_field_value + ) + ) + + doc = frappe.new_doc("Employee Checkin") + doc.employee = employee.name + doc.employee_name = employee.employee_name + doc.time = timestamp + doc.device_id = device_id + doc.log_type = log_type + doc.latitude = latitude + doc.longitude = longitude + if cint(skip_auto_attendance) == 1: + doc.skip_auto_attendance = "1" + doc.insert() + + return doc + + +@frappe.whitelist() +def bulk_fetch_shift(checkins: list[str] | str) -> None: + if isinstance(checkins, str): + checkins = frappe.json.loads(checkins) + for d in checkins: + doc = frappe.get_doc("Employee Checkin", d) + doc.fetch_shift() + doc.flags.ignore_validate = True + doc.save() + + +def mark_attendance_and_link_log( + logs, + attendance_status, + attendance_date, + working_hours=None, + late_entry=False, + early_exit=False, + in_time=None, + out_time=None, + shift=None, + overtime_type=None, +): + """Creates an attendance and links the attendance to the Employee Checkin. + Note: If attendance is already present for the given date, the logs are marked as skipped and no exception is thrown. + + :param logs: The List of 'Employee Checkin'. + :param attendance_status: Attendance status to be marked. One of: (Present, Absent, Half Day, Skip). Note: 'On Leave' is not supported by this function. + :param attendance_date: Date of the attendance to be created. + :param working_hours: (optional)Number of working hours for the given date. + """ + log_names = [x.name for x in logs] + employee = logs[0].employee + + if attendance_status == "Skip": + skip_attendance_in_checkins(log_names) + return None + + if attendance_status not in ("Present", "Absent", "Half Day"): + frappe.throw(_("{0} is an invalid Attendance Status.").format(attendance_status)) + + try: + frappe.db.savepoint("attendance_creation") + + attendance = create_or_update_attendance( + employee=employee, + attendance_date=attendance_date, + attendance_status=attendance_status, + working_hours=working_hours, + shift=shift, + late_entry=late_entry, + early_exit=early_exit, + in_time=in_time, + out_time=out_time, + overtime_type=overtime_type, + ) + + if attendance_status == "Absent": + attendance.add_comment( + text=_("Employee was marked Absent for not meeting the working hours threshold.") + ) + + update_attendance_in_checkins(log_names, attendance.name) + return attendance + + except frappe.ValidationError as e: + handle_attendance_exception(log_names, e) + return None + + +def create_or_update_attendance( + employee, + attendance_date, + attendance_status, + working_hours=None, + shift=None, + late_entry=False, + early_exit=False, + in_time=None, + out_time=None, + overtime_type=None, +): + """Creates a new attendance or updates an existing half-day attendance.""" + if attendance := get_existing_half_day_attendance(employee, attendance_date): + frappe.db.set_value( + "Attendance", + attendance.name, + { + "working_hours": working_hours, + "shift": shift, + "late_entry": late_entry, + "early_exit": early_exit, + "in_time": in_time, + "out_time": out_time, + "half_day_status": "Absent" if attendance_status == "Absent" else "Present", + "modify_half_day_status": 0, + }, + ) + return frappe.get_doc("Attendance", attendance.name) + else: + attendance = frappe.new_doc("Attendance") + attendance.update( + { + "doctype": "Attendance", + "employee": employee, + "attendance_date": attendance_date, + "status": attendance_status, + "working_hours": working_hours, + "shift": shift, + "late_entry": late_entry, + "early_exit": early_exit, + "in_time": in_time, + "out_time": out_time, + } + ) + + # Set overtime data if applicable + if overtime_type and attendance_status == "Present": + overtime_data = get_overtime_data(shift, working_hours) + if overtime_data: + attendance.update( + { + "overtime_type": overtime_type, + "standard_working_hours": overtime_data.get("standard_working_hours"), + "actual_overtime_duration": overtime_data.get("actual_overtime_duration"), + } + ) + attendance.save() + attendance.submit() + + return attendance + + +def get_overtime_data(shift_name, working_hours): + overtime_data = {} + + shift_type_details = frappe.db.get_value( + doctype="Shift Type", + filters={"name": shift_name}, + fieldname=["allow_overtime", "start_time", "end_time"], + as_dict=True, + ) + + if not shift_type_details or not shift_type_details.allow_overtime: + return overtime_data + + standard_working_hours = calculate_time_difference( + shift_type_details.start_time, shift_type_details.end_time + ) + + if working_hours > standard_working_hours: + actual_overtime_duration = working_hours - standard_working_hours + overtime_data = { + "standard_working_hours": standard_working_hours, + "actual_overtime_duration": actual_overtime_duration, + } + + return overtime_data + + +def get_existing_half_day_attendance(employee, attendance_date): + attendance_name = frappe.db.exists( + "Attendance", + { + "employee": employee, + "attendance_date": attendance_date, + "status": "Half Day", + "modify_half_day_status": 1, + "leave_type": ("is", "set"), + }, + ) + + if attendance_name: + attendance_doc = frappe.get_doc("Attendance", attendance_name) + return attendance_doc + return None + + +def calculate_working_hours(logs, check_in_out_type, working_hours_calc_type): + """Given a set of logs in chronological order calculates the total working hours based on the parameters. + Zero is returned for all invalid cases. + + :param logs: The List of 'Employee Checkin'. + :param check_in_out_type: One of: 'Alternating entries as IN and OUT during the same shift', 'Strictly based on Log Type in Employee Checkin' + :param working_hours_calc_type: One of: 'First Check-in and Last Check-out', 'Every Valid Check-in and Check-out' + """ + total_hours = 0 + in_time = out_time = None + if check_in_out_type == "Alternating entries as IN and OUT during the same shift": + in_time = logs[0].time + if len(logs) >= 2: + out_time = logs[-1].time + if working_hours_calc_type == "First Check-in and Last Check-out": + # assumption in this case: First log always taken as IN, Last log always taken as OUT + total_hours = time_diff_in_hours(in_time, logs[-1].time) + elif working_hours_calc_type == "Every Valid Check-in and Check-out": + logs = logs[:] + while len(logs) >= 2: + total_hours += time_diff_in_hours(logs[0].time, logs[1].time) + del logs[:2] + + elif check_in_out_type == "Strictly based on Log Type in Employee Checkin": + if working_hours_calc_type == "First Check-in and Last Check-out": + first_in_log_index = find_index_in_dict(logs, "log_type", "IN") + first_in_log = logs[first_in_log_index] if first_in_log_index or first_in_log_index == 0 else None + last_out_log_index = find_index_in_dict(reversed(logs), "log_type", "OUT") + last_out_log = ( + logs[len(logs) - 1 - last_out_log_index] + if last_out_log_index or last_out_log_index == 0 + else None + ) + in_time = getattr(first_in_log, "time", None) + out_time = getattr(last_out_log, "time", None) + if first_in_log and last_out_log: + total_hours = time_diff_in_hours(in_time, out_time) + elif working_hours_calc_type == "Every Valid Check-in and Check-out": + in_log = out_log = None + for log in logs: + if in_log and out_log: + if not in_time: + in_time = in_log.time + out_time = out_log.time + total_hours += time_diff_in_hours(in_log.time, out_log.time) + in_log = out_log = None + if not in_log: + in_log = log if log.log_type == "IN" else None + if in_log and not in_time: + in_time = in_log.time + elif not out_log: + out_log = log if log.log_type == "OUT" else None + + if in_log and out_log: + out_time = out_log.time + total_hours += time_diff_in_hours(in_log.time, out_log.time) + + return total_hours, in_time, out_time + + +def time_diff_in_hours(start, end): + return round(float((end - start).total_seconds()) / 3600, 2) + + +def find_index_in_dict(dict_list, key, value): + return next((index for (index, d) in enumerate(dict_list) if d[key] == value), None) + + +def handle_attendance_exception(log_names: list, error_message: str): + frappe.db.rollback(save_point="attendance_creation") + frappe.clear_messages() + skip_attendance_in_checkins(log_names) + add_comment_in_checkins(log_names, error_message) + + +def add_comment_in_checkins(log_names: list, error_message: str): + text = "{prefix}
    {error_message}".format( + prefix=frappe.bold(_("Reason for skipping auto attendance:")), error_message=error_message + ) + + for name in log_names: + frappe.get_doc( + { + "doctype": "Comment", + "comment_type": "Comment", + "reference_doctype": "Employee Checkin", + "reference_name": name, + "content": text, + } + ).insert(ignore_permissions=True) + + +def skip_attendance_in_checkins(log_names: list): + EmployeeCheckin = frappe.qb.DocType("Employee Checkin") + ( + frappe.qb.update(EmployeeCheckin) + .set("skip_auto_attendance", 1) + .where(EmployeeCheckin.name.isin(log_names)) + ).run() + + +def update_attendance_in_checkins(log_names: list, attendance_id: str): + EmployeeCheckin = frappe.qb.DocType("Employee Checkin") + ( + frappe.qb.update(EmployeeCheckin) + .set("attendance", attendance_id) + .where(EmployeeCheckin.name.isin(log_names)) + ).run() + + +def calculate_time_difference(start_time, end_time): + if end_time < start_time: + end_time += timedelta(days=1) + time_difference = abs(start_time - end_time) + + return round(time_difference.total_seconds() / 3600, 2) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin_list.js new file mode 100644 index 000000000..855d5b46b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/employee_checkin_list.js @@ -0,0 +1,20 @@ +frappe.listview_settings["Employee Checkin"] = { + add_fields: ["offshift"], + get_indicator: function (doc) { + if (doc.offshift) { + return [__("Off-Shift"), "yellow", "offshift,=,1"]; + } + }, + onload: function (listview) { + listview.page.add_action_item(__("Fetch Shifts"), () => { + const checkins = listview.get_checked_items().map((checkin) => checkin.name); + frappe.call({ + method: "hrms.hr.doctype.employee_checkin.employee_checkin.bulk_fetch_shift", + freeze: true, + args: { + checkins, + }, + }); + }); + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/test_employee_checkin.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/test_employee_checkin.py new file mode 100644 index 000000000..3f9474a96 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_checkin/test_employee_checkin.py @@ -0,0 +1,925 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from datetime import datetime, timedelta + +import frappe +from frappe.tests import IntegrationTestCase, change_settings +from frappe.utils import ( + add_days, + get_time, + get_year_ending, + get_year_start, + getdate, + now_datetime, + nowdate, +) + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.attendance.attendance import mark_attendance +from hrms.hr.doctype.employee_checkin.employee_checkin import ( + CheckinRadiusExceededError, + add_log_based_on_employee_field, + bulk_fetch_shift, + calculate_working_hours, + mark_attendance_and_link_log, +) +from hrms.hr.doctype.leave_type.test_leave_type import create_leave_type +from hrms.hr.doctype.shift_type.test_shift_type import make_shift_assignment, setup_shift_type +from hrms.payroll.doctype.salary_slip.test_salary_slip import make_holiday_list, make_leave_application + + +class TestEmployeeCheckin(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Shift Type") + frappe.db.delete("Shift Assignment") + frappe.db.delete("Employee Checkin") + frappe.db.set_single_value("HR Settings", "allow_geolocation_tracking", 0) + + def test_geolocation_tracking(self): + employee = make_employee("test_add_log_based_on_employee_field@example.com") + checkin = make_checkin(employee) + checkin.latitude = 23.31773 + checkin.longitude = 66.82876 + checkin.save() + + # geolocation tracking is disabled + self.assertIsNone(checkin.geolocation) + + frappe.db.set_single_value("HR Settings", "allow_geolocation_tracking", 1) + + checkin.save() + self.assertEqual( + checkin.geolocation, + frappe.json.dumps( + { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": {"type": "Point", "coordinates": [66.82876, 23.31773]}, + } + ], + } + ), + ) + + def test_add_log_based_on_employee_field(self): + employee = make_employee("test_add_log_based_on_employee_field@example.com") + employee = frappe.get_doc("Employee", employee) + employee.attendance_device_id = "3344" + employee.save() + + time_now = now_datetime().replace(microsecond=0) + employee_checkin = add_log_based_on_employee_field("3344", time_now, "mumbai_first_floor", "IN") + self.assertEqual(employee_checkin.employee, employee.name) + self.assertEqual(employee_checkin.time, time_now) + self.assertEqual(employee_checkin.device_id, "mumbai_first_floor") + self.assertEqual(employee_checkin.log_type, "IN") + + def test_mark_attendance_and_link_log(self): + employee = make_employee("test_mark_attendance_and_link_log@example.com") + logs = make_n_checkins(employee, 3) + mark_attendance_and_link_log(logs, "Skip", nowdate()) + log_names = [log.name for log in logs] + logs_count = frappe.db.count( + "Employee Checkin", {"name": ["in", log_names], "skip_auto_attendance": 1} + ) + self.assertEqual(logs_count, 3) + + logs = make_n_checkins(employee, 4, 2) + now_date = nowdate() + frappe.db.delete("Attendance", {"employee": employee}) + attendance = mark_attendance_and_link_log(logs, "Present", now_date, 8.2) + log_names = [log.name for log in logs] + logs_count = frappe.db.count( + "Employee Checkin", {"name": ["in", log_names], "attendance": attendance.name} + ) + self.assertEqual(logs_count, 4) + attendance_count = frappe.db.count( + "Attendance", + {"status": "Present", "working_hours": 8.2, "employee": employee, "attendance_date": now_date}, + ) + self.assertEqual(attendance_count, 1) + + def test_unlink_attendance_on_cancellation(self): + employee = make_employee("test_mark_attendance_and_link_log@example.com") + logs = make_n_checkins(employee, 3) + + frappe.db.delete("Attendance", {"employee": employee}) + attendance = mark_attendance_and_link_log(logs, "Present", nowdate(), 8.2) + attendance.cancel() + + linked_logs = frappe.db.get_all("Employee Checkin", {"attendance": attendance.name}) + self.assertEqual(len(linked_logs), 0) + + def test_calculate_working_hours(self): + check_in_out_type = [ + "Alternating entries as IN and OUT during the same shift", + "Strictly based on Log Type in Employee Checkin", + ] + working_hours_calc_type = [ + "First Check-in and Last Check-out", + "Every Valid Check-in and Check-out", + ] + logs_type_1 = [ + {"time": now_datetime() - timedelta(minutes=390)}, + {"time": now_datetime() - timedelta(minutes=300)}, + {"time": now_datetime() - timedelta(minutes=270)}, + {"time": now_datetime() - timedelta(minutes=90)}, + {"time": now_datetime() - timedelta(minutes=0)}, + ] + logs_type_2 = [ + {"time": now_datetime() - timedelta(minutes=390), "log_type": "OUT"}, + {"time": now_datetime() - timedelta(minutes=360), "log_type": "IN"}, + {"time": now_datetime() - timedelta(minutes=300), "log_type": "OUT"}, + {"time": now_datetime() - timedelta(minutes=290), "log_type": "IN"}, + {"time": now_datetime() - timedelta(minutes=260), "log_type": "OUT"}, + {"time": now_datetime() - timedelta(minutes=240), "log_type": "IN"}, + {"time": now_datetime() - timedelta(minutes=150), "log_type": "IN"}, + {"time": now_datetime() - timedelta(minutes=60), "log_type": "OUT"}, + ] + logs_type_1 = [frappe._dict(x) for x in logs_type_1] + logs_type_2 = [frappe._dict(x) for x in logs_type_2] + + working_hours = calculate_working_hours(logs_type_1, check_in_out_type[0], working_hours_calc_type[0]) + self.assertEqual(working_hours, (6.5, logs_type_1[0].time, logs_type_1[-1].time)) + + working_hours = calculate_working_hours(logs_type_1, check_in_out_type[0], working_hours_calc_type[1]) + self.assertEqual(working_hours, (4.5, logs_type_1[0].time, logs_type_1[-1].time)) + + working_hours = calculate_working_hours(logs_type_2, check_in_out_type[1], working_hours_calc_type[0]) + self.assertEqual(working_hours, (5, logs_type_2[1].time, logs_type_2[-1].time)) + + working_hours = calculate_working_hours(logs_type_2, check_in_out_type[1], working_hours_calc_type[1]) + self.assertEqual(working_hours, (4.5, logs_type_2[1].time, logs_type_2[-1].time)) + + working_hours = calculate_working_hours( + [logs_type_2[1], logs_type_2[-1]], check_in_out_type[1], working_hours_calc_type[1] + ) + self.assertEqual(working_hours, (5.0, logs_type_2[1].time, logs_type_2[-1].time)) + + def test_fetch_shift(self): + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + + # shift setup for 8-12 + shift_type = setup_shift_type() + date = getdate() + make_shift_assignment(shift_type.name, employee, date) + + # within shift time + timestamp = datetime.combine(date, get_time("08:45:00")) + log = make_checkin(employee, timestamp) + self.assertEqual(log.shift, shift_type.name) + + # "begin checkin before shift time" = 60 mins, so should work for 7:00:00 + timestamp = datetime.combine(date, get_time("07:00:00")) + log = make_checkin(employee, timestamp) + self.assertEqual(log.shift, shift_type.name) + + # "allow checkout after shift end time" = 60 mins, so should work for 13:00:00 + timestamp = datetime.combine(date, get_time("13:00:00")) + log = make_checkin(employee, timestamp) + self.assertEqual(log.shift, shift_type.name) + + # should not fetch this shift beyond allowed time + timestamp = datetime.combine(date, get_time("13:01:00")) + log = make_checkin(employee, timestamp) + self.assertIsNone(log.shift) + + @change_settings("HR Settings", {"allow_multiple_shift_assignments": 1}) + def test_fetch_shift_for_assignment_with_end_date(self): + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + + # shift setup for 8-12 + shift1 = setup_shift_type() + # 12:30 - 16:30 + shift2 = setup_shift_type(shift_type="Shift 2", start_time="12:30:00", end_time="16:30:00") + + date = getdate() + make_shift_assignment(shift1.name, employee, date, add_days(date, 15)) + make_shift_assignment(shift2.name, employee, date, add_days(date, 15)) + + timestamp = datetime.combine(date, get_time("08:45:00")) + log = make_checkin(employee, timestamp) + self.assertEqual(log.shift, shift1.name) + + timestamp = datetime.combine(date, get_time("12:45:00")) + log = make_checkin(employee, timestamp) + self.assertEqual(log.shift, shift2.name) + + # log after end date + timestamp = datetime.combine(add_days(date, 16), get_time("12:45:00")) + log = make_checkin(employee, timestamp) + self.assertIsNone(log.shift) + + def test_shift_start_and_end_timings(self): + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + + # shift setup for 8-12 + shift_type = setup_shift_type() + date = getdate() + make_shift_assignment(shift_type.name, employee, date) + + timestamp = datetime.combine(date, get_time("08:45:00")) + log = make_checkin(employee, timestamp) + + self.assertEqual(log.shift, shift_type.name) + self.assertEqual(log.shift_start, datetime.combine(date, get_time("08:00:00"))) + self.assertEqual(log.shift_end, datetime.combine(date, get_time("12:00:00"))) + self.assertEqual(log.shift_actual_start, datetime.combine(date, get_time("07:00:00"))) + self.assertEqual(log.shift_actual_end, datetime.combine(date, get_time("13:00:00"))) + + def test_fetch_shift_based_on_default_shift(self): + employee = make_employee("test_default_shift@example.com", company="_Test Company") + default_shift = setup_shift_type( + shift_type="Default Shift", start_time="14:00:00", end_time="16:00:00" + ) + + date = getdate() + frappe.db.set_value("Employee", employee, "default_shift", default_shift.name) + + timestamp = datetime.combine(date, get_time("14:45:00")) + log = make_checkin(employee, timestamp) + + # should consider default shift + self.assertEqual(log.shift, default_shift.name) + + def test_fetch_night_shift_for_assignment_without_end_date(self): + """Tests if shift is correctly fetched in logs when assignment has no end date""" + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + shift_type = setup_shift_type(shift_type="Midnight Shift", start_time="23:00:00", end_time="01:00:00") + date = getdate() + next_day = add_days(date, 1) + make_shift_assignment(shift_type.name, employee, date) + + # log falls in the first day + timestamp = datetime.combine(date, get_time("23:00:00")) + log_in = make_checkin(employee, timestamp) + + # log falls in the second day + timestamp = datetime.combine(next_day, get_time("01:30:00")) + log_out = make_checkin(employee, timestamp) + + for log in [log_in, log_out]: + self.assertEqual(log.shift, shift_type.name) + self.assertEqual(log.shift_start, datetime.combine(date, get_time("23:00:00"))) + self.assertEqual(log.shift_end, datetime.combine(next_day, get_time("01:00:00"))) + self.assertEqual(log.shift_actual_start, datetime.combine(date, get_time("22:00:00"))) + self.assertEqual(log.shift_actual_end, datetime.combine(next_day, get_time("02:00:00"))) + + def test_fetch_night_shift_on_assignment_boundary(self): + """ + Tests if shift is correctly fetched in logs when assignment starts and ends on the same day + """ + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + shift_type = setup_shift_type(shift_type="Midnight Shift", start_time="23:00:00", end_time="07:00:00") + date = getdate() + next_day = add_days(date, 1) + + # shift assigned for a single day + make_shift_assignment(shift_type.name, employee, date, date) + + # IN log falls on the first day + start_timestamp = datetime.combine(date, get_time("23:00:00")) + log_in = make_checkin(employee, start_timestamp) + + # OUT log falls on the second day + end_timestamp = datetime.combine(next_day, get_time("7:00:00")) + log_out = make_checkin(employee, end_timestamp) + + for log in [log_in, log_out]: + self.assertEqual(log.shift, shift_type.name) + self.assertEqual(log.shift_start, start_timestamp) + self.assertEqual(log.shift_end, end_timestamp) + + def test_night_shift_not_fetched_outside_assignment_boundary_for_diff_start_date(self): + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + shift_type = setup_shift_type(shift_type="Midnight Shift", start_time="23:00:00", end_time="07:00:00") + date = getdate() + next_day = add_days(date, 1) + prev_day = add_days(date, -1) + + # shift assigned for a single day + make_shift_assignment(shift_type.name, employee, date, date) + + # shift not applicable on next day's start time + log = make_checkin(employee, datetime.combine(next_day, get_time("23:00:00"))) + self.assertIsNone(log.shift) + + # shift not applicable on current day's end time + log = make_checkin(employee, datetime.combine(date, get_time("07:00:00"))) + self.assertIsNone(log.shift) + + # shift not applicable on prev day's start time + log = make_checkin(employee, datetime.combine(prev_day, get_time("23:00:00"))) + self.assertIsNone(log.shift) + + def test_night_shift_not_fetched_outside_assignment_boundary_for_diff_end_date(self): + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + shift_type = setup_shift_type(shift_type="Midnight Shift", start_time="19:00:00", end_time="00:30:00") + date = getdate() + next_day = add_days(date, 1) + prev_day = add_days(date, -1) + + # shift assigned for a single day + make_shift_assignment(shift_type.name, employee, date, date) + + # shift not applicable on next day's start time + log = make_checkin(employee, datetime.combine(next_day, get_time("19:00:00"))) + self.assertIsNone(log.shift) + + # shift not applicable on current day's end time + log = make_checkin(employee, datetime.combine(date, get_time("00:30:00"))) + self.assertIsNone(log.shift) + + # shift not applicable on prev day's start time + log = make_checkin(employee, datetime.combine(prev_day, get_time("19:00:00"))) + self.assertIsNone(log.shift) + + def test_night_shift_not_fetched_outside_before_shift_margin(self): + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + shift_type = setup_shift_type(shift_type="Midnight Shift", start_time="00:30:00", end_time="10:00:00") + date = getdate() + next_day = add_days(date, 1) + prev_day = add_days(date, -1) + + # shift assigned for a single day + make_shift_assignment(shift_type.name, employee, date, date) + + # shift not fetched in today's shift margin + log = make_checkin(employee, datetime.combine(date, get_time("23:30:00"))) + self.assertIsNone(log.shift) + + # shift not applicable on next day's start time + log = make_checkin(employee, datetime.combine(next_day, get_time("00:30:00"))) + self.assertIsNone(log.shift) + + # shift not applicable on prev day's start time + log = make_checkin(employee, datetime.combine(prev_day, get_time("00:30:00"))) + self.assertIsNone(log.shift) + + def test_night_shift_not_fetched_outside_after_shift_margin(self): + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + shift_type = setup_shift_type(shift_type="Midnight Shift", start_time="15:00:00", end_time="23:30:00") + date = getdate() + next_day = add_days(date, 1) + prev_day = add_days(date, -1) + + # shift assigned for a single day + make_shift_assignment(shift_type.name, employee, date, date) + + # shift not fetched in today's shift margin + log = make_checkin(employee, datetime.combine(date, get_time("00:30:00"))) + self.assertIsNone(log.shift) + + # shift not applicable on next day's start time + log = make_checkin(employee, datetime.combine(next_day, get_time("15:00:00"))) + self.assertIsNone(log.shift) + + # shift not applicable on prev day's start time + log = make_checkin(employee, datetime.combine(prev_day, get_time("15:00:00"))) + self.assertIsNone(log.shift) + + # shift not applicable on prev day's end time + log = make_checkin(employee, datetime.combine(prev_day, get_time("00:30:00"))) + self.assertIsNone(log.shift) + + def test_fetch_night_shift_in_margin_period_after_shift(self): + """ + Tests if shift is correctly fetched in logs if the actual end time exceeds a day + i.e: shift is from 15:00 to 23:00 (starts & ends on the same day) + but shift margin = 2 hours, so the actual shift goes to 1:00 of the next day + """ + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + # shift margin goes to next day (1:00 am) + shift_type = setup_shift_type( + shift_type="Midnight Shift", + start_time="15:00:00", + end_time="23:00:00", + allow_check_out_after_shift_end_time=120, + ) + date = getdate() + next_day = add_days(date, 1) + + # shift assigned for a single day + make_shift_assignment(shift_type.name, employee, date, date) + + # IN log falls on the first day + start_timestamp = datetime.combine(date, get_time("14:00:00")) + log_in = make_checkin(employee, start_timestamp) + + # OUT log falls on the second day in the shift margin period + end_timestamp = datetime.combine(next_day, get_time("01:00:00")) + log_out = make_checkin(employee, end_timestamp) + + for log in [log_in, log_out]: + self.assertEqual(log.shift, shift_type.name) + self.assertEqual(log.shift_actual_start, start_timestamp) + self.assertEqual(log.shift_actual_end, end_timestamp) + + def test_fetch_night_shift_in_margin_period_before_shift(self): + """ + Tests if shift is correctly fetched in logs if the actual end time exceeds a day + i.e: shift is from 00:30 to 10:00 (starts & ends on the same day) + but shift margin = 1 hour, so the actual shift start goes to 23:30:00 of the prev day + """ + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + # shift margin goes to next day (1:00 am) + shift_type = setup_shift_type( + shift_type="Midnight Shift", + start_time="00:30:00", + end_time="10:00:00", + ) + date = getdate() + prev_day = add_days(date, -1) + + # shift assigned for a single day + make_shift_assignment(shift_type.name, employee, date, date) + + # IN log falls on the first day in the shift margin period + start_timestamp = datetime.combine(prev_day, get_time("23:30:00")) + log_in = make_checkin(employee, start_timestamp) + + # OUT log falls on the second day + end_timestamp = datetime.combine(date, get_time("11:00:00")) + log_out = make_checkin(employee, end_timestamp) + + for log in [log_in, log_out]: + self.assertEqual(log.shift, shift_type.name) + self.assertEqual(log.shift_actual_start, start_timestamp) + self.assertEqual(log.shift_actual_end, end_timestamp) + + @change_settings("HR Settings", {"allow_multiple_shift_assignments": 1}) + def test_consecutive_shift_assignments_overlapping_within_grace_period(self): + # test adjustment for start and end times if they are overlapping + # within "begin_check_in_before_shift_start_time" and "allow_check_out_after_shift_end_time" periods + employee = make_employee("test_shift@example.com", company="_Test Company") + + # 8 - 12 + shift1 = setup_shift_type() + # 12:30 - 16:30 + shift2 = setup_shift_type(shift_type="Consecutive Shift", start_time="12:30:00", end_time="16:30:00") + + # the actual start and end times (with grace) for these shifts are 7 - 13 and 11:30 - 17:30 + date = getdate() + make_shift_assignment(shift1.name, employee, date) + make_shift_assignment(shift2.name, employee, date) + + # log at 12:30 should set shift2 and actual start as 12 and not 11:30 + timestamp = datetime.combine(date, get_time("12:30:00")) + log = make_checkin(employee, timestamp) + self.assertEqual(log.shift, shift2.name) + self.assertEqual(log.shift_start, datetime.combine(date, get_time("12:30:00"))) + self.assertEqual(log.shift_actual_start, datetime.combine(date, get_time("12:00:00"))) + + # log at 12:00 should set shift1 and actual end as 12 and not 1 since the next shift's grace starts + timestamp = datetime.combine(date, get_time("12:00:00")) + log = make_checkin(employee, timestamp) + self.assertEqual(log.shift, shift1.name) + self.assertEqual(log.shift_end, datetime.combine(date, get_time("12:00:00"))) + self.assertEqual(log.shift_actual_end, datetime.combine(date, get_time("12:00:00"))) + + # log at 12:01 should set shift2 + timestamp = datetime.combine(date, get_time("12:01:00")) + log = make_checkin(employee, timestamp) + self.assertEqual(log.shift, shift2.name) + + @change_settings("HR Settings", {"allow_multiple_shift_assignments": 1}) + @change_settings("HR Settings", {"allow_geolocation_tracking": 1}) + def test_geofencing(self): + employee = make_employee("test_shift@example.com", company="_Test Company") + + # 8 - 12 + shift1 = setup_shift_type() + # 15 - 19 + shift2 = setup_shift_type(shift_type="Consecutive Shift", start_time="15:00:00", end_time="19:00:00") + + date = getdate() + location1 = make_shift_location("Loc A", 24, 72) + location2 = make_shift_location("Loc B", 25, 75, checkin_radius=2000) + make_shift_assignment(shift1.name, employee, date, shift_location=location1.name) + make_shift_assignment(shift2.name, employee, date, shift_location=location2.name) + + timestamp = datetime.combine(add_days(date, -1), get_time("11:00:00")) + # allowed as it is before the shift start date + make_checkin(employee, timestamp, 20, 65) + + timestamp = datetime.combine(date, get_time("06:00:00")) + # allowed as it is before the shift start time + make_checkin(employee, timestamp, 20, 65) + + timestamp = datetime.combine(date, get_time("10:00:00")) + # allowed as distance (150m) is within checkin radius (500m) + make_checkin(employee, timestamp, 24.001, 72.001) + + timestamp = datetime.combine(date, get_time("10:30:00")) + log = frappe.get_doc( + { + "doctype": "Employee Checkin", + "employee": employee, + "time": timestamp, + "latitude": 24.01, + "longitude": 72.01, + } + ) + # not allowed as distance (1506m) is not within checkin radius + self.assertRaises(CheckinRadiusExceededError, log.insert) + + # to ensure that the correct shift assignment is considered + timestamp = datetime.combine(date, get_time("16:00:00")) + # allowed as distance (1506m) is within checkin radius (2000m) + make_checkin(employee, timestamp, 25.01, 75.01) + + timestamp = datetime.combine(date, get_time("16:30:00")) + log = frappe.get_doc( + { + "doctype": "Employee Checkin", + "employee": employee, + "time": timestamp, + "latitude": 25.1, + "longitude": 75.1, + } + ) + # not allowed as distance (15004m) is not within checkin radius + self.assertRaises(CheckinRadiusExceededError, log.insert) + + def test_bulk_fetch_shift(self): + emp1 = make_employee("emp1@example.com", company="_Test Company") + emp2 = make_employee("emp2@example.com", company="_Test Company") + + # 8 - 12 + shift1 = setup_shift_type(shift_type="Shift 1") + # 12:30 - 16:30 + shift2 = setup_shift_type(shift_type="Shift 2", start_time="12:30:00", end_time="16:30:00") + + frappe.db.set_value("Employee", emp1, "default_shift", shift1.name) + frappe.db.set_value("Employee", emp2, "default_shift", shift1.name) + + date = getdate() + timestamp = datetime.combine(date, get_time("12:30:00")) + + log1 = make_checkin(emp1, timestamp) + self.assertEqual(log1.shift, shift1.name) + log2 = make_checkin(emp2, timestamp) + self.assertEqual(log2.shift, shift1.name) + + mark_attendance_and_link_log([log2], "Present", date) + + make_shift_assignment(shift2.name, emp1, date) + make_shift_assignment(shift2.name, emp2, date) + + bulk_fetch_shift([log1.name, log2.name]) + + log1.reload() + # shift changes according to the new assignment + self.assertEqual(log1.shift, shift2.name) + log2.reload() + # shift does not change since attendance is already marked + self.assertEqual(log2.shift, shift1.name) + + def test_bulk_fetch_shift_if_shift_settings_change_for_the_same_shift(self): + emp1 = make_employee("bulkemp1@example.com", company="_Test Company") + emp2 = make_employee("bulkemp2@example.com", company="_Test Company") + + # 8 - 12, + shift = setup_shift_type(shift_type="Test Bulk Shift") + date = getdate() + make_shift_assignment(shift.name, emp1, date) + make_shift_assignment(shift.name, emp2, date) + + timestamp = datetime.combine(date, get_time("08:00:00")) + # shift actual start is `current date 07:00:00` + log1 = make_checkin(emp1, timestamp) + self.assertEqual(log1.shift_actual_start, datetime.combine(date, get_time("07:00:00"))) + log2 = make_checkin(emp2, timestamp) + self.assertEqual(log2.shift_actual_start, datetime.combine(date, get_time("07:00:00"))) + + # change shift settings like check in buffer from 60 minutes to 120 minutes + # so now shift actual start is `current date 06:00:00` + shift.begin_check_in_before_shift_start_time = 120 + shift.save() + bulk_fetch_shift([log1.name, log2.name]) + # shift changes according to the new assignment + log1.reload() + self.assertEqual(log1.shift_actual_start, datetime.combine(date, get_time("06:00:00"))) + log2.reload() + self.assertEqual(log2.shift_actual_start, datetime.combine(date, get_time("06:00:00"))) + + def test_if_logs_are_marked_invalid(self): + # time window is 7 to 13 + shift = setup_shift_type() + emp = make_employee("emp_invalid_log@example.com", company="_Test Company", default_shift=shift.name) + + # checkin log outside shift time window + timestamp1 = datetime.combine(getdate(), get_time("06:00:00")) + log1 = make_checkin(emp, timestamp1) + self.assertTrue(log1.offshift) + + # checkin log within shift time window + timestamp2 = datetime.combine(getdate(), get_time("07:30:00")) + log2 = make_checkin(emp, timestamp2) + self.assertFalse(log2.offshift) + + def test_if_logs_are_marked_valid_again(self): + # time window is 7 to 13 + shift = setup_shift_type() + emp = make_employee("emp_invalid_log1@example.com", company="_Test Company", default_shift=shift.name) + + # checkin log outside shift time window + timestamp = datetime.combine(getdate(), get_time("06:30:00")) + log = make_checkin(emp, timestamp) + self.assertTrue(log.offshift) + + # time window chnaged to 6 to 13, checkin log within shift time window + shift.begin_check_in_before_shift_start_time = 120 + shift.save() + log.fetch_shift() + self.assertFalse(log.offshift) + + def test_validate_time_change(self): + # 8-12 shift + shift = setup_shift_type() + emp = make_employee( + "emp_test_shift_start@example.com", company="_Test Company", default_shift=shift.name + ) + timestamp = datetime.combine(getdate(), get_time("10:00:00")) + shift_start = datetime.combine(getdate(), get_time("08:00:00")) + log = make_checkin(emp, timestamp) + # when attendance is not linked, shift start changes with time + log.time = add_days(timestamp, 1) + log.save() + log.reload() + self.assertEqual(log.shift_start, add_days(shift_start, 1)) + + # when attendance is linked, don't allow to modify either time or shift parameters + mark_attendance_and_link_log([log], "Absent", add_days(timestamp, 1)) + log.reload() + log.time = timestamp + self.assertRaises(frappe.ValidationError, log.save) + + def test_modifying_half_attendance_created_from_leave(self): + shift = setup_shift_type(working_hours_threshold_for_half_day=3) + emp = make_employee("testhalfday@example.com", company="_Test Company", default_shift=shift.name) + employee = frappe.get_doc("Employee", emp) + # create attendance from leave + leave_type = create_leave_type(leave_type_name="_Test Half Day", include_holidays=0) + create_leave_allocation( + employee=employee, + leave_type=leave_type, + from_date=add_days(nowdate(), -2), + to_date=add_days(nowdate(), 30), + new_leaves_allocated=15, + ) + make_leave_application( + leave_type=leave_type.name, + employee=emp, + from_date=nowdate(), + to_date=nowdate(), + half_day=1, + half_day_date=nowdate(), + ) + + in_time = datetime.combine(getdate(), get_time("08:00:00")) + out_time = datetime.combine(getdate(), get_time("10:00:00")) + in_log = make_checkin(emp, in_time) + out_log = make_checkin(emp, out_time) + + shift.process_auto_attendance() + attendance = frappe.get_all( + "Attendance", + filters={"leave_type": leave_type.name, "employee": emp, "attendance_date": nowdate()}, + fields=[ + "name", + "status", + "half_day_status", + "shift", + "working_hours", + "in_time", + "out_time", + "modify_half_day_status", + ], + ) + self.assertEqual(len(attendance), 1) + self.assertEqual(attendance[0].status, "Half Day") + self.assertEqual(attendance[0].half_day_status, "Present") + self.assertEqual(attendance[0].shift, shift.name) + self.assertEqual(attendance[0].modify_half_day_status, 0) + self.assertEqual(attendance[0].working_hours, 2) + self.assertEqual(attendance[0].in_time, in_log.time) + self.assertEqual(attendance[0].out_time, out_log.time) + + def test_modifying_half_day_attendance_when_checkins_are_absent(self): + shift = setup_shift_type(working_hours_threshold_for_half_day=1) + emp = make_employee("testhalfday2@example.com", company="_Test Company", default_shift=shift.name) + employee = frappe.get_doc("Employee", emp) + # create attendance from leave + leave_type = create_leave_type(leave_type_name="_Test Half Day", include_holidays=0) + create_leave_allocation( + employee=employee, + leave_type=leave_type, + from_date=add_days(nowdate(), -2), + to_date=add_days(nowdate(), 30), + new_leaves_allocated=15, + ) + make_leave_application( + leave_type=leave_type.name, + employee=emp, + from_date=nowdate(), + to_date=nowdate(), + half_day=1, + half_day_date=nowdate(), + ) + + shift.process_auto_attendance() + + attendance = frappe.get_all( + "Attendance", + filters={"leave_type": leave_type.name, "employee": emp, "attendance_date": nowdate()}, + fields=[ + "name", + "status", + "half_day_status", + "shift", + "working_hours", + "in_time", + "out_time", + "modify_half_day_status", + ], + ) + self.assertEqual(len(attendance), 1) + self.assertEqual(attendance[0].status, "Half Day") + self.assertEqual(attendance[0].half_day_status, "Absent") + self.assertEqual(attendance[0].shift, shift.name) + self.assertEqual(attendance[0].modify_half_day_status, 0) + + def test_half_day_attendance_when_checkins_exists_but_threshold_is_unmet(self): + shift = setup_shift_type( + shift_type="_Test Half Day", + start_time="08:00:00", + end_time="15:00:00", + working_hours_threshold_for_half_day=4, + working_hours_threshold_for_absent=2, + ) + emp = make_employee("testhalfday3@example.com", company="_Test Company", default_shift=shift.name) + employee = frappe.get_doc("Employee", emp) + # create attendance from leave + leave_type = create_leave_type(leave_type_name="_Test Half Day", include_holidays=0) + create_leave_allocation( + employee=employee, + leave_type=leave_type, + from_date=add_days(nowdate(), -2), + to_date=add_days(nowdate(), 30), + new_leaves_allocated=15, + ) + make_leave_application( + leave_type=leave_type.name, + employee=emp, + from_date=nowdate(), + to_date=nowdate(), + half_day=1, + half_day_date=nowdate(), + ) + in_time = datetime.combine(getdate(), get_time("08:00:00")) + out_time = datetime.combine(getdate(), get_time("09:00:00")) + in_log = make_checkin(emp, in_time) + out_log = make_checkin(emp, out_time) + shift.process_auto_attendance() + + attendance = frappe.get_all( + "Attendance", + filters={"leave_type": leave_type.name, "employee": emp, "attendance_date": nowdate()}, + fields=[ + "name", + "status", + "half_day_status", + "shift", + "working_hours", + "in_time", + "out_time", + "modify_half_day_status", + ], + ) + self.assertEqual(len(attendance), 1) + self.assertEqual(attendance[0].status, "Half Day") + self.assertEqual(attendance[0].half_day_status, "Absent") + self.assertEqual(attendance[0].shift, shift.name) + self.assertEqual(attendance[0].modify_half_day_status, 0) + self.assertEqual(attendance[0].working_hours, 1) + self.assertEqual(attendance[0].in_time, in_log.time) + self.assertEqual(attendance[0].out_time, out_log.time) + + def test_half_day_attendance_when_employee_checkins_exists_and_attendance_is_full_day(self): + shift = setup_shift_type( + shift_type="_Test Half Day", + start_time="08:00:00", + end_time="15:00:00", + working_hours_threshold_for_half_day=4, + working_hours_threshold_for_absent=2, + ) + emp = make_employee("testhalfday4@example.com", company="_Test Company", default_shift=shift.name) + employee = frappe.get_doc("Employee", emp) + # create attendance from leave + leave_type = create_leave_type(leave_type_name="_Test Half Day", include_holidays=0) + create_leave_allocation( + employee=employee, + leave_type=leave_type, + from_date=add_days(nowdate(), -2), + to_date=add_days(nowdate(), 30), + new_leaves_allocated=15, + ) + make_leave_application( + leave_type=leave_type.name, + employee=emp, + from_date=nowdate(), + to_date=nowdate(), + half_day=1, + half_day_date=nowdate(), + ) + in_time = datetime.combine(getdate(), get_time("08:00:00")) + out_time = datetime.combine(getdate(), get_time("15:00:00")) + in_log = make_checkin(emp, in_time) + out_log = make_checkin(emp, out_time) + shift.process_auto_attendance() + + attendance = frappe.get_all( + "Attendance", + filters={"leave_type": leave_type.name, "employee": emp, "attendance_date": nowdate()}, + fields=[ + "name", + "status", + "half_day_status", + "shift", + "working_hours", + "in_time", + "out_time", + "modify_half_day_status", + ], + ) + # status would remain same for half day but the shift details should be captured as is + self.assertEqual(len(attendance), 1) + self.assertEqual(attendance[0].status, "Half Day") + self.assertEqual(attendance[0].half_day_status, "Present") + self.assertEqual(attendance[0].shift, shift.name) + self.assertEqual(attendance[0].modify_half_day_status, 0) + self.assertEqual(attendance[0].working_hours, 7) + self.assertEqual(attendance[0].in_time, in_log.time) + self.assertEqual(attendance[0].out_time, out_log.time) + + +def make_n_checkins(employee, n, hours_to_reverse=1): + logs = [make_checkin(employee, now_datetime() - timedelta(hours=hours_to_reverse, minutes=n + 1))] + for i in range(n - 1): + logs.append(make_checkin(employee, now_datetime() - timedelta(hours=hours_to_reverse, minutes=n - i))) + return logs + + +def make_checkin(employee, time=None, latitude=None, longitude=None, log_type="IN"): + if not time: + time = now_datetime() + + log = frappe.get_doc( + { + "doctype": "Employee Checkin", + "employee": employee, + "time": time, + "device_id": "device1", + "log_type": log_type, + "latitude": latitude, + "longitude": longitude, + } + ).insert() + return log + + +def make_shift_location(location_name, latitude, longitude, checkin_radius=500): + shift_location = frappe.get_doc( + { + "doctype": "Shift Location", + "location_name": location_name, + "latitude": latitude, + "longitude": longitude, + "checkin_radius": checkin_radius, + } + ).insert() + + return shift_location + + +def create_leave_allocation(employee, leave_type, from_date, to_date, new_leaves_allocated): + leave_allocation = frappe.get_doc( + { + "doctype": "Leave Allocation", + "employee": employee.name, + "employee_name": employee.employee_name, + "leave_type": leave_type.name, + "from_date": from_date or add_days(nowdate(), -2), + "new_leaves_allocated": new_leaves_allocated or 15, + "carry_forward": 0, + "to_date": to_date or add_days(nowdate(), 30), + } + ).submit() + + return leave_allocation diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.js new file mode 100644 index 000000000..7b5bf2724 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.js @@ -0,0 +1,8 @@ +// Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +// frappe.ui.form.on("Employee Feedback Criteria", { +// refresh(frm) { + +// }, +// }); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json new file mode 100644 index 000000000..76e712ffa --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json @@ -0,0 +1,73 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:criteria", + "creation": "2023-03-16 13:24:03.253830", + "default_view": "List", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "criteria" + ], + "fields": [ + { + "fieldname": "criteria", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Criteria", + "reqd": 1, + "unique": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2024-03-27 13:09:38.737816", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Feedback Criteria", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.py new file mode 100644 index 000000000..d18f2472a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.py @@ -0,0 +1,9 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class EmployeeFeedbackCriteria(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/test_employee_feedback_criteria.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/test_employee_feedback_criteria.py new file mode 100644 index 000000000..9cb43c489 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_criteria/test_employee_feedback_criteria.py @@ -0,0 +1,9 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestEmployeeFeedbackCriteria(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_rating/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_rating/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json new file mode 100644 index 000000000..153f10024 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json @@ -0,0 +1,50 @@ +{ + "actions": [], + "autoname": "hash", + "creation": "2022-09-01 01:04:20.661490", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "criteria", + "per_weightage", + "rating" + ], + "fields": [ + { + "depends_on": "eval: doc.parenttype != \"Appraisal Template\"", + "fieldname": "rating", + "fieldtype": "Rating", + "in_list_view": 1, + "label": "Rating" + }, + { + "fieldname": "criteria", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Criteria", + "options": "Employee Feedback Criteria", + "reqd": 1 + }, + { + "fieldname": "per_weightage", + "fieldtype": "Percent", + "in_list_view": 1, + "label": "Weightage (%)", + "reqd": 1 + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:38.859667", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Feedback Rating", + "naming_rule": "Random", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.py new file mode 100644 index 000000000..29eff6904 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.py @@ -0,0 +1,9 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class EmployeeFeedbackRating(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade.js new file mode 100644 index 000000000..0d34062c6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade.js @@ -0,0 +1,24 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Grade", { + refresh: function (frm) {}, + setup: function (frm) { + frm.set_query("default_salary_structure", function () { + return { + filters: { + docstatus: 1, + is_active: "Yes", + }, + }; + }); + + frm.set_query("default_leave_policy", function () { + return { + filters: { + docstatus: 1, + }, + }; + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade.json new file mode 100644 index 000000000..c4d59da86 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade.json @@ -0,0 +1,89 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "Prompt", + "creation": "2018-04-13 16:14:24.174138", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "default_salary_structure", + "currency", + "default_base_pay" + ], + "fields": [ + { + "fieldname": "default_salary_structure", + "fieldtype": "Link", + "label": "Default Salary Structure", + "options": "Salary Structure" + }, + { + "depends_on": "default_salary_structure", + "fieldname": "default_base_pay", + "fieldtype": "Currency", + "label": "Default Base Pay", + "options": "currency" + }, + { + "fetch_from": "default_salary_structure.currency", + "fieldname": "currency", + "fieldtype": "Link", + "hidden": 1, + "label": "Currency", + "options": "Currency", + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2024-03-27 13:09:38.976321", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Grade", + "naming_rule": "Set by user", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade.py new file mode 100644 index 000000000..41b7915c9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class EmployeeGrade(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade_dashboard.py new file mode 100644 index 000000000..efc68ce87 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/employee_grade_dashboard.py @@ -0,0 +1,9 @@ +def get_data(): + return { + "transactions": [ + { + "items": ["Employee", "Leave Period"], + }, + {"items": ["Employee Onboarding Template", "Employee Separation Template"]}, + ] + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/test_employee_grade.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/test_employee_grade.py new file mode 100644 index 000000000..20afd3f11 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grade/test_employee_grade.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestEmployeeGrade(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance.js new file mode 100644 index 000000000..77bb34ce8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance.js @@ -0,0 +1,53 @@ +// Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Grievance", { + setup: function (frm) { + frm.set_query("grievance_against_party", function () { + return { + filters: { + name: [ + "in", + ["Company", "Department", "Employee Group", "Employee Grade", "Employee"], + ], + }, + }; + }); + frm.set_query("associated_document_type", function () { + let ignore_modules = [ + "Setup", + "Core", + "Integrations", + "Automation", + "Website", + "Utilities", + "Event Streaming", + "Social", + "Chat", + "Data Migration", + "Printing", + "Desk", + "Custom", + ]; + return { + filters: { + istable: 0, + issingle: 0, + module: ["Not In", ignore_modules], + }, + }; + }); + }, + + grievance_against_party: function (frm) { + let filters = {}; + if (frm.doc.grievance_against_party == "Employee" && frm.doc.raised_by) { + filters.name = ["!=", frm.doc.raised_by]; + } + frm.set_query("grievance_against", function () { + return { + filters: filters, + }; + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance.json new file mode 100644 index 000000000..461fb949d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance.json @@ -0,0 +1,276 @@ +{ + "actions": [], + "autoname": "HR-GRIEV-.YYYY.-.#####", + "creation": "2021-05-11 13:41:51.485295", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "subject", + "raised_by", + "employee_name", + "designation", + "column_break_3", + "date", + "status", + "reports_to", + "grievance_details_section", + "grievance_against_party", + "grievance_against", + "grievance_type", + "column_break_11", + "associated_document_type", + "associated_document", + "section_break_14", + "description", + "investigation_details_section", + "cause_of_grievance", + "resolution_details_section", + "resolved_by", + "resolution_date", + "employee_responsible", + "column_break_16", + "resolution_detail", + "amended_from" + ], + "fields": [ + { + "fieldname": "grievance_type", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Grievance Type", + "options": "Grievance Type", + "reqd": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Date ", + "reqd": 1 + }, + { + "default": "Open", + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Status", + "options": "Open\nInvestigated\nResolved\nInvalid\nCancelled", + "reqd": 1 + }, + { + "fieldname": "description", + "fieldtype": "Text", + "label": "Description", + "reqd": 1 + }, + { + "fieldname": "cause_of_grievance", + "fieldtype": "Text", + "label": "Cause of Grievance", + "mandatory_depends_on": "eval: doc.status == \"Investigated\" || doc.status == \"Resolved\"" + }, + { + "fieldname": "resolution_details_section", + "fieldtype": "Section Break", + "label": "Resolution Details" + }, + { + "fieldname": "resolved_by", + "fieldtype": "Link", + "label": "Resolved By", + "mandatory_depends_on": "eval: doc.status == \"Resolved\"", + "options": "User" + }, + { + "fieldname": "employee_responsible", + "fieldtype": "Link", + "label": "Employee Responsible ", + "options": "Employee" + }, + { + "fieldname": "resolution_detail", + "fieldtype": "Small Text", + "label": "Resolution Details", + "mandatory_depends_on": "eval: doc.status == \"Resolved\"" + }, + { + "fieldname": "column_break_16", + "fieldtype": "Column Break" + }, + { + "fieldname": "resolution_date", + "fieldtype": "Date", + "label": "Resolution Date", + "mandatory_depends_on": "eval: doc.status == \"Resolved\"" + }, + { + "fieldname": "grievance_against", + "fieldtype": "Dynamic Link", + "label": "Grievance Against", + "options": "grievance_against_party", + "reqd": 1 + }, + { + "fieldname": "raised_by", + "fieldtype": "Link", + "label": "Raised By", + "options": "Employee", + "reqd": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Employee Grievance", + "print_hide": 1, + "read_only": 1 + }, + { + "fetch_from": "raised_by.designation", + "fieldname": "designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation", + "read_only": 1 + }, + { + "fetch_from": "raised_by.reports_to", + "fieldname": "reports_to", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "label": "Reports To", + "options": "Employee", + "read_only": 1 + }, + { + "fieldname": "grievance_details_section", + "fieldtype": "Section Break", + "label": "Grievance Details" + }, + { + "fieldname": "column_break_11", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_14", + "fieldtype": "Section Break" + }, + { + "fieldname": "grievance_against_party", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Grievance Against Party", + "options": "DocType", + "reqd": 1 + }, + { + "fieldname": "associated_document_type", + "fieldtype": "Link", + "label": "Associated Document Type", + "options": "DocType" + }, + { + "fieldname": "associated_document", + "fieldtype": "Dynamic Link", + "label": "Associated Document", + "options": "associated_document_type" + }, + { + "fieldname": "investigation_details_section", + "fieldtype": "Section Break", + "label": "Investigation Details" + }, + { + "fetch_from": "raised_by.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fieldname": "subject", + "fieldtype": "Data", + "label": "Subject", + "reqd": 1 + } + ], + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [], + "modified": "2025-11-21 17:25:40.972515", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Grievance", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "search_fields": "subject,raised_by,grievance_against_party", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "subject", + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance.py new file mode 100644 index 000000000..e3f55f44d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance.py @@ -0,0 +1,19 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _, bold +from frappe.model.document import Document + + +class EmployeeGrievance(Document): + def on_submit(self): + if self.status not in ["Invalid", "Resolved"]: + frappe.throw( + _("Only Employee Grievance with status {0} or {1} can be submitted").format( + bold(_("Invalid")), bold(_("Resolved")) + ) + ) + + def on_discard(self): + self.db_set("status", "Cancelled") diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance_list.js new file mode 100644 index 000000000..b45ba42ea --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/employee_grievance_list.js @@ -0,0 +1,12 @@ +frappe.listview_settings["Employee Grievance"] = { + has_indicator_for_draft: 1, + get_indicator: function (doc) { + var colors = { + Open: "red", + Investigated: "orange", + Resolved: "green", + Invalid: "grey", + }; + return [__(doc.status), colors[doc.status], "status,=," + doc.status]; + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/test_employee_grievance.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/test_employee_grievance.py new file mode 100644 index 000000000..230bc0a9a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_grievance/test_employee_grievance.py @@ -0,0 +1,68 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import today + +from erpnext.setup.doctype.employee.test_employee import make_employee + + +class TestEmployeeGrievance(IntegrationTestCase): + def test_create_employee_grievance(self): + grievance_type = create_grievance_type() + emp_1 = make_employee("test_emp_grievance_@example.com", company="_Test Company") + emp_2 = make_employee("testculprit@example.com", company="_Test Company") + grievance = create_employee_grievance( + raised_by=emp_1, raised_against=emp_2, grievance_type=grievance_type + ) + self.assertEqual(grievance.raised_by, emp_1) + self.assertEqual(grievance.grievance_against, emp_2) + self.assertEqual(grievance.status, "Open") + grievance.status = "Resolved" + grievance.submit() + + def test_status_on_discard(self): + grievance_type = create_grievance_type() + emp_1 = make_employee("test_emp_grievance_@example.com", company="_Test Company") + emp_2 = make_employee("testculprit@example.com", company="_Test Company") + grievance = create_employee_grievance( + raised_by=emp_1, raised_against=emp_2, grievance_type=grievance_type + ) + self.assertEqual(grievance.status, "Open") + grievance.discard() + grievance.reload() + self.assertEqual(grievance.status, "Cancelled") + + +def create_employee_grievance(raised_by, raised_against, grievance_type): + grievance = frappe.new_doc("Employee Grievance") + grievance.subject = "Test Employee Grievance" + grievance.raised_by = raised_by + grievance.date = today() + grievance.grievance_type = grievance_type + grievance.grievance_against_party = "Employee" + grievance.grievance_against = raised_against + grievance.description = "test descrip" + + # set cause + grievance.cause_of_grievance = "test cause" + + # resolution details + grievance.resolution_date = today() + grievance.resolution_detail = "test resolution detail" + grievance.resolved_by = "test_emp_grievance_@example.com" + grievance.employee_responsible = raised_against + grievance.save() + return grievance + + +def create_grievance_type(): + if frappe.db.exists("Grievance Type", "Employee Abuse"): + return frappe.get_doc("Grievance Type", "Employee Abuse").name + grievance_type = frappe.new_doc("Grievance Type") + grievance_type.name = "Employee Abuse" + grievance_type.description = "Test" + grievance_type.save() + + return grievance_type.name diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/employee_health_insurance.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/employee_health_insurance.js new file mode 100644 index 000000000..74e764ce2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/employee_health_insurance.js @@ -0,0 +1,6 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Health Insurance", { + refresh: function (frm) {}, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json new file mode 100644 index 000000000..a0a89661f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json @@ -0,0 +1,58 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:health_insurance_name", + "creation": "2017-03-27 14:32:51.628588", + "doctype": "DocType", + "document_type": "Document", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "health_insurance_name" + ], + "fields": [ + { + "fieldname": "health_insurance_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Health Insurance Name", + "reqd": 1, + "unique": 1 + } + ], + "links": [], + "modified": "2024-03-27 13:09:39.535296", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Health Insurance", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "health_insurance_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/employee_health_insurance.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/employee_health_insurance.py new file mode 100644 index 000000000..4a8c437d6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/employee_health_insurance.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class EmployeeHealthInsurance(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/test_employee_health_insurance.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/test_employee_health_insurance.py new file mode 100644 index 000000000..fcfce7dc7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_health_insurance/test_employee_health_insurance.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestEmployeeHealthInsurance(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding.js new file mode 100644 index 000000000..89d8343ff --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding.js @@ -0,0 +1,123 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Onboarding", { + setup: function (frm) { + frm.set_query("job_applicant", function () { + return { + filters: { + status: "Accepted", + }, + }; + }); + + frm.set_query("job_offer", function () { + return { + filters: { + job_applicant: frm.doc.job_applicant, + docstatus: 1, + }, + }; + }); + }, + + refresh: function (frm) { + if (frm.doc.employee) { + frm.add_custom_button( + __("Employee"), + function () { + frappe.set_route("Form", "Employee", frm.doc.employee); + }, + __("View"), + ); + } + if (frm.doc.project) { + frm.add_custom_button( + __("Project"), + function () { + frappe.set_route("Form", "Project", frm.doc.project); + }, + __("View"), + ); + frm.add_custom_button( + __("Task"), + function () { + frappe.set_route("List", "Task", { project: frm.doc.project }); + }, + __("View"), + ); + } + if (!frm.doc.employee && frm.doc.docstatus === 1) { + frm.add_custom_button( + __("Employee"), + function () { + frappe.model.open_mapped_doc({ + method: "hrms.hr.doctype.employee_onboarding.employee_onboarding.make_employee", + frm: frm, + }); + }, + __("Create"), + ); + frm.page.set_inner_btn_group_as_primary(__("Create")); + } + if ( + frm.doc.docstatus === 1 && + (frm.doc.boarding_status === "Pending" || frm.doc.boarding_status === "In Process") + ) { + frm.add_custom_button(__("Mark as Completed"), function () { + frm.trigger("mark_as_completed"); + }); + } + }, + + employee_onboarding_template: function (frm) { + frm.set_value("activities", ""); + if (frm.doc.employee_onboarding_template) { + frappe.call({ + method: "hrms.controllers.employee_boarding_controller.get_onboarding_details", + args: { + parent: frm.doc.employee_onboarding_template, + parenttype: "Employee Onboarding Template", + }, + callback: function (r) { + if (r.message) { + r.message.forEach((d) => { + frm.add_child("activities", d); + }); + refresh_field("activities"); + } + }, + }); + } + }, + + job_applicant: function (frm) { + if (frm.doc.job_applicant) { + frappe.db.get_value( + "Employee", + { job_applicant: frm.doc.job_applicant }, + "name", + (r) => { + if (r.name) { + frm.set_value("employee", r.name); + } else { + frm.set_value("employee", ""); + } + }, + ); + } else { + frm.set_value("employee", ""); + } + }, + + mark_as_completed(frm) { + frm.call({ + method: "mark_onboarding_as_completed", + doc: frm.doc, + freeze: true, + freeze_message: __("Completing onboarding"), + }).then((r) => { + frm.refresh(); + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding.json new file mode 100644 index 000000000..56546cb5f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding.json @@ -0,0 +1,218 @@ +{ + "actions": [], + "autoname": "HR-EMP-ONB-.YYYY.-.#####", + "creation": "2018-05-09 04:57:20.016220", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "job_applicant", + "job_offer", + "employee_onboarding_template", + "column_break_7", + "company", + "boarding_status", + "project", + "details_section", + "employee", + "employee_name", + "department", + "designation", + "employee_grade", + "holiday_list", + "column_break_13", + "date_of_joining", + "boarding_begins_on", + "table_for_activity", + "activities", + "notify_users_by_email", + "amended_from" + ], + "fields": [ + { + "fieldname": "job_applicant", + "fieldtype": "Link", + "label": "Job Applicant", + "options": "Job Applicant", + "reqd": 1 + }, + { + "fieldname": "job_offer", + "fieldtype": "Link", + "label": "Job Offer", + "options": "Job Offer", + "reqd": 1 + }, + { + "fetch_from": "job_applicant.applicant_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Employee Name", + "reqd": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "label": "Employee", + "options": "Employee", + "read_only": 1 + }, + { + "fieldname": "date_of_joining", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Date of Joining", + "reqd": 1 + }, + { + "allow_on_submit": 1, + "default": "Pending", + "fieldname": "boarding_status", + "fieldtype": "Select", + "label": "Boarding Status", + "options": "Pending\nIn Process\nCompleted", + "read_only": 1 + }, + { + "allow_on_submit": 1, + "default": "0", + "fieldname": "notify_users_by_email", + "fieldtype": "Check", + "label": "Notify users by email" + }, + { + "fieldname": "column_break_7", + "fieldtype": "Column Break" + }, + { + "fieldname": "employee_onboarding_template", + "fieldtype": "Link", + "label": "Employee Onboarding Template", + "options": "Employee Onboarding Template" + }, + { + "fetch_from": "employee_onboarding_template.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fetch_from": "employee_onboarding_template.department", + "fieldname": "department", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Department", + "options": "Department" + }, + { + "fetch_from": "employee_onboarding_template.designation", + "fieldname": "designation", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Designation", + "options": "Designation" + }, + { + "fetch_from": "employee_onboarding_template.employee_grade", + "fieldname": "employee_grade", + "fieldtype": "Link", + "label": "Employee Grade", + "options": "Employee Grade" + }, + { + "fieldname": "project", + "fieldtype": "Link", + "label": "Project", + "options": "Project", + "read_only": 1 + }, + { + "fieldname": "table_for_activity", + "fieldtype": "Section Break", + "label": "Onboarding Activities" + }, + { + "allow_on_submit": 1, + "fieldname": "activities", + "fieldtype": "Table", + "label": "Activities", + "options": "Employee Boarding Activity" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Employee Onboarding", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "details_section", + "fieldtype": "Section Break", + "label": "Employee Details" + }, + { + "fieldname": "column_break_13", + "fieldtype": "Column Break" + }, + { + "fieldname": "boarding_begins_on", + "fieldtype": "Date", + "label": "Onboarding Begins On", + "reqd": 1 + }, + { + "fieldname": "holiday_list", + "fieldtype": "Link", + "label": "Holiday List", + "options": "Holiday List" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2026-02-05 13:46:25.874832", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Onboarding", + "naming_rule": "Expression", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "export": 1, + "print": 1, + "read": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding.py new file mode 100644 index 000000000..6f489a85d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding.py @@ -0,0 +1,94 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.mapper import get_mapped_doc + +from hrms.controllers.employee_boarding_controller import EmployeeBoardingController + + +class IncompleteTaskError(frappe.ValidationError): + pass + + +class EmployeeOnboarding(EmployeeBoardingController): + def validate(self): + super().validate() + self.set_employee() + self.validate_duplicate_employee_onboarding() + + def set_employee(self): + if not self.employee: + self.employee = frappe.db.get_value("Employee", {"job_applicant": self.job_applicant}, "name") + + def validate_duplicate_employee_onboarding(self): + emp_onboarding = frappe.db.exists( + "Employee Onboarding", {"job_applicant": self.job_applicant, "docstatus": ("!=", 2)} + ) + if emp_onboarding and emp_onboarding != self.name: + frappe.throw( + _("Employee Onboarding: {0} already exists for Job Applicant: {1}").format( + frappe.bold(emp_onboarding), frappe.bold(self.job_applicant) + ) + ) + + def validate_employee_creation(self): + if self.docstatus != 1: + frappe.throw(_("Submit this to create the Employee record")) + else: + for activity in self.activities: + if not activity.required_for_employee_creation: + continue + else: + task_status = frappe.db.get_value("Task", activity.task, "status") + if task_status not in ["Completed", "Cancelled"]: + frappe.throw( + _("All the mandatory tasks for employee creation are not completed yet."), + IncompleteTaskError, + ) + + def on_submit(self): + super().on_submit() + + def on_update_after_submit(self): + self.create_task_and_notify_user() + + def on_cancel(self): + super().on_cancel() + + @frappe.whitelist() + def mark_onboarding_as_completed(self): + for activity in self.activities: + frappe.db.set_value("Task", activity.task, "status", "Completed") + frappe.db.set_value("Project", self.project, "status", "Completed") + self.boarding_status = "Completed" + self.save() + + +@frappe.whitelist() +def make_employee(source_name, target_doc=None): + doc = frappe.get_doc("Employee Onboarding", source_name) + doc.validate_employee_creation() + + def set_missing_values(source, target): + target.personal_email = frappe.db.get_value("Job Applicant", source.job_applicant, "email_id") + target.status = "Active" + + doc = get_mapped_doc( + "Employee Onboarding", + source_name, + { + "Employee Onboarding": { + "doctype": "Employee", + "field_map": { + "first_name": "employee_name", + "employee_grade": "grade", + }, + } + }, + target_doc, + set_missing_values, + ) + return doc diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding_list.js new file mode 100644 index 000000000..173a1aeeb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/employee_onboarding_list.js @@ -0,0 +1,11 @@ +frappe.listview_settings["Employee Onboarding"] = { + add_fields: ["boarding_status", "employee_name", "date_of_joining", "department"], + filters: [["boarding_status", "=", "Pending"]], + get_indicator: function (doc) { + return [ + __(doc.boarding_status), + frappe.utils.guess_colour(doc.boarding_status), + "boarding_status,=," + doc.boarding_status, + ]; + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/test_employee_onboarding.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/test_employee_onboarding.py new file mode 100644 index 000000000..1d22865b0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding/test_employee_onboarding.py @@ -0,0 +1,157 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, getdate + +from hrms.hr.doctype.employee_onboarding.employee_onboarding import ( + IncompleteTaskError, + make_employee, +) +from hrms.hr.doctype.job_offer.test_job_offer import create_job_offer +from hrms.payroll.doctype.salary_slip.test_salary_slip import make_holiday_list +from hrms.tests.test_utils import create_company + + +class TestEmployeeOnboarding(IntegrationTestCase): + def setUp(self): + create_company() + if frappe.db.exists("Employee Onboarding", {"employee_name": "Test Researcher"}): + frappe.db.sql("delete from `tabEmployee Onboarding` where employee_name=%s", "Test Researcher") + + project = "Employee Onboarding : test@researcher.com" + frappe.db.sql("delete from tabProject where project_name=%s", project) + frappe.db.sql("delete from tabTask where project=%s", project) + + def test_employee_onboarding_incomplete_task(self): + onboarding = create_employee_onboarding() + + project_name = frappe.db.get_value("Project", onboarding.project, "project_name") + self.assertEqual(project_name, "Employee Onboarding : test@researcher.com") + + # don't allow making employee if onboarding is not complete + self.assertRaises(IncompleteTaskError, make_employee, onboarding.name) + + # boarding status + self.assertEqual(onboarding.boarding_status, "Pending") + + # start and end dates + start_date, end_date = get_task_dates(onboarding.activities[0].task) + self.assertEqual(start_date, onboarding.boarding_begins_on) + self.assertEqual(end_date, add_days(start_date, onboarding.activities[0].duration)) + + start_date, end_date = get_task_dates(onboarding.activities[1].task) + self.assertEqual( + start_date, add_days(onboarding.boarding_begins_on, onboarding.activities[0].duration) + ) + self.assertEqual(end_date, add_days(start_date, onboarding.activities[1].duration)) + + # complete the task + project = frappe.get_doc("Project", onboarding.project) + for task in frappe.get_all("Task", dict(project=project.name)): + task = frappe.get_doc("Task", task.name) + task.status = "Completed" + task.save() + + # boarding status + onboarding.reload() + self.assertEqual(onboarding.boarding_status, "Completed") + + # make employee + onboarding.reload() + employee = make_employee(onboarding.name) + employee.first_name = employee.employee_name + employee.date_of_joining = getdate() + employee.date_of_birth = "1990-05-08" + employee.gender = "Female" + employee.insert() + self.assertEqual(employee.employee_name, "Test Researcher") + + def test_mark_onboarding_as_completed(self): + onboarding = create_employee_onboarding() + + # before marking as completed + self.assertEqual(onboarding.boarding_status, "Pending") + project = frappe.get_doc("Project", onboarding.project) + self.assertEqual(project.status, "Open") + for task_status in frappe.get_all("Task", dict(project=project.name), pluck="status"): + self.assertEqual(task_status, "Open") + + onboarding.reload() + onboarding.mark_onboarding_as_completed() + + # after marking as completed + self.assertEqual(onboarding.boarding_status, "Completed") + project.reload() + self.assertEqual(project.status, "Completed") + for task_status in frappe.get_all("Task", dict(project=project.name), pluck="status"): + self.assertEqual(task_status, "Completed") + + def tearDown(self): + frappe.db.rollback() + + +def get_job_applicant(): + if frappe.db.exists("Job Applicant", "test@researcher.com"): + return frappe.get_doc("Job Applicant", "test@researcher.com") + applicant = frappe.new_doc("Job Applicant") + applicant.applicant_name = "Test Researcher" + applicant.email_id = "test@researcher.com" + applicant.designation = "Researcher" + applicant.status = "Open" + applicant.cover_letter = "I am a great Researcher." + applicant.insert() + return applicant + + +def get_job_offer(applicant_name): + job_offer = frappe.db.exists("Job Offer", {"job_applicant": applicant_name}) + if job_offer: + return frappe.get_doc("Job Offer", job_offer) + + job_offer = create_job_offer(job_applicant=applicant_name) + job_offer.submit() + return job_offer + + +def create_employee_onboarding(): + applicant = get_job_applicant() + job_offer = get_job_offer(applicant.name) + + holiday_list = make_holiday_list("_Test Employee Boarding") + holiday_list = frappe.get_doc("Holiday List", holiday_list) + holiday_list.holidays = [] + holiday_list.save() + + onboarding = frappe.new_doc("Employee Onboarding") + onboarding.job_applicant = applicant.name + onboarding.job_offer = job_offer.name + onboarding.date_of_joining = onboarding.boarding_begins_on = getdate() + onboarding.company = "_Test Company" + onboarding.holiday_list = holiday_list.name + onboarding.designation = "Researcher" + onboarding.append( + "activities", + { + "activity_name": "Assign ID Card", + "role": "HR User", + "required_for_employee_creation": 1, + "begin_on": 0, + "duration": 1, + }, + ) + onboarding.append( + "activities", + {"activity_name": "Assign a laptop", "role": "HR User", "begin_on": 1, "duration": 1}, + ) + onboarding.status = "Pending" + onboarding.insert() + onboarding.submit() + + return onboarding + + +def get_task_dates(task: str) -> tuple[str, str]: + start_date, end_date = frappe.db.get_value("Task", task, ["exp_start_date", "exp_end_date"]) + return getdate(start_date), getdate(end_date) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.js new file mode 100644 index 000000000..7ac10d667 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.js @@ -0,0 +1,14 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Onboarding Template", { + setup: function (frm) { + frm.set_query("department", function () { + return { + filters: { + company: frm.doc.company, + }, + }; + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json new file mode 100644 index 000000000..29cbc9a88 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json @@ -0,0 +1,96 @@ +{ + "actions": [], + "autoname": "HR-EMP-ONT-.#####", + "creation": "2018-05-09 05:27:02.393377", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "title", + "company", + "department", + "column_break_7", + "designation", + "employee_grade", + "section_break_7", + "activities" + ], + "fields": [ + { + "fieldname": "title", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Title", + "reqd": 1, + "translatable": 1 + }, + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company" + }, + { + "fieldname": "department", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Department", + "options": "Department" + }, + { + "fieldname": "column_break_7", + "fieldtype": "Column Break" + }, + { + "fieldname": "designation", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Designation", + "options": "Designation" + }, + { + "fieldname": "employee_grade", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee Grade", + "options": "Employee Grade" + }, + { + "fieldname": "section_break_7", + "fieldtype": "Section Break", + "label": "Activities" + }, + { + "fieldname": "activities", + "fieldtype": "Table", + "label": "Activities", + "options": "Employee Boarding Activity" + } + ], + "links": [], + "modified": "2024-03-27 13:09:40.119200", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Onboarding Template", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "show_title_field_in_link": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "title", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.py new file mode 100644 index 000000000..199013a5a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class EmployeeOnboardingTemplate(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template_dashboard.py new file mode 100644 index 000000000..93237ee37 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template_dashboard.py @@ -0,0 +1,7 @@ +def get_data(): + return { + "fieldname": "employee_onboarding_template", + "transactions": [ + {"items": ["Employee Onboarding"]}, + ], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/test_employee_onboarding_template.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/test_employee_onboarding_template.py new file mode 100644 index 000000000..c3edfd8ff --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_onboarding_template/test_employee_onboarding_template.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestEmployeeOnboardingTemplate(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.js new file mode 100644 index 000000000..687835a45 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.js @@ -0,0 +1,53 @@ +// Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Performance Feedback", { + onload(frm) { + frm.trigger("set_reviewer"); + }, + + refresh(frm) { + frm.trigger("set_filters"); + }, + + employee(frm) { + frm.set_value("appraisal", ""); + }, + + appraisal(frm) { + if (frm.doc.employee) { + frm.call("set_feedback_criteria", () => { + frm.refresh_field("feedback_ratings"); + }); + } + }, + + set_filters(frm) { + frm.set_query("appraisal", () => { + return { + filters: { + employee: frm.doc.employee, + }, + }; + }); + + frm.set_query("reviewer", () => { + return { + filters: { + employee: ["!=", frm.doc.employee], + }, + }; + }); + }, + + set_reviewer(frm) { + if (!frm.doc.reviewer) { + frappe.db + .get_value("Employee", { user_id: frappe.session.user }, "name") + .then((employee_record) => { + const session_employee = employee_record?.message?.name; + if (session_employee) frm.set_value("reviewer", session_employee); + }); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json new file mode 100644 index 000000000..f45f1a720 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json @@ -0,0 +1,249 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "format:HR-PF-{YYYY}-{#####}", + "creation": "2022-09-01 01:05:44.869523", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee_details_tab", + "employee", + "employee_name", + "department", + "designation", + "company", + "column_break_3", + "reviewer", + "reviewer_name", + "reviewer_designation", + "user", + "column_break_f0bz", + "added_on", + "appraisal_cycle", + "section_break_3", + "appraisal", + "feedback_ratings", + "total_score", + "feedback_tab", + "feedback", + "amended_from" + ], + "fields": [ + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "depends_on": "employee", + "fieldname": "section_break_3", + "fieldtype": "Section Break" + }, + { + "fieldname": "total_score", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Total Score", + "read_only": 1 + }, + { + "fieldname": "feedback_tab", + "fieldtype": "Tab Break", + "label": "Feedback", + "options": "Feedback" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "feedback", + "fieldtype": "Text Editor", + "reqd": 1 + }, + { + "default": "Now", + "fieldname": "added_on", + "fieldtype": "Datetime", + "label": "Added On", + "reqd": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "For Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fieldname": "appraisal", + "fieldtype": "Link", + "label": "Appraisal", + "options": "Appraisal", + "reqd": 1 + }, + { + "fetch_from": "reviewer.designation", + "fieldname": "reviewer_designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation", + "read_only": 1 + }, + { + "fieldname": "reviewer", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "in_standard_filter": 1, + "label": "Reviewer", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "reviewer.employee_name", + "fieldname": "reviewer_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Reviewer Name", + "read_only": 1 + }, + { + "fieldname": "employee_details_tab", + "fieldtype": "Tab Break", + "label": "Employee Details" + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fetch_from": "employee.designation", + "fieldname": "designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation", + "read_only": 1 + }, + { + "fieldname": "column_break_f0bz", + "fieldtype": "Column Break" + }, + { + "fetch_from": "appraisal.appraisal_cycle", + "fieldname": "appraisal_cycle", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Appraisal Cycle", + "options": "Appraisal Cycle", + "read_only": 1 + }, + { + "fieldname": "feedback_ratings", + "fieldtype": "Table", + "label": "Feedback Ratings", + "options": "Employee Feedback Rating" + }, + { + "fetch_from": "reviewer.user_id", + "fieldname": "user", + "fieldtype": "Link", + "label": "User", + "options": "User", + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Employee Performance Feedback", + "print_hide": 1, + "read_only": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "read_only": 1, + "reqd": 1 + } + ], + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:09:40.430183", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Performance Feedback", + "naming_rule": "Expression", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1 + } + ], + "search_fields": "employee_name, reviewer_name, appraisal_cycle", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py new file mode 100644 index 000000000..c539685f7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py @@ -0,0 +1,81 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import flt, get_link_to_form + +from hrms.hr.doctype.appraisal_cycle.appraisal_cycle import validate_active_appraisal_cycle +from hrms.hr.utils import validate_active_employee +from hrms.mixins.appraisal import AppraisalMixin + + +class EmployeePerformanceFeedback(Document, AppraisalMixin): + def validate(self): + validate_active_appraisal_cycle(self.appraisal_cycle) + + self.validate_employee() + self.validate_appraisal() + self.validate_total_weightage("feedback_ratings", "Feedback Ratings") + self.set_total_score() + + def on_submit(self): + self.update_avg_feedback_score_in_appraisal() + + def on_cancel(self): + self.update_avg_feedback_score_in_appraisal() + + def validate_employee(self): + if self.employee == self.reviewer: + frappe.throw( + _("Employees cannot give feedback to themselves. Use {0} instead: {1}").format( + frappe.bold(_("Self Appraisal")), get_link_to_form("Appraisal", self.appraisal) + ) + ) + + validate_active_employee(self.employee) + validate_active_employee(self.reviewer) + + def validate_appraisal(self): + employee = frappe.db.get_value("Appraisal", self.appraisal, "employee") + + if employee != self.employee: + frappe.throw( + _("Appraisal {0} does not belong to Employee {1}").format(self.appraisal, self.employee) + ) + + def set_total_score(self): + total = 0 + for entry in self.feedback_ratings: + score = flt(entry.rating) * 5 * flt(entry.per_weightage / 100) + total += flt(score) + + self.total_score = flt(total, self.precision("total_score")) + + def update_avg_feedback_score_in_appraisal(self): + if not self.appraisal: + return + + appraisal = frappe.get_doc("Appraisal", self.appraisal) + appraisal.calculate_avg_feedback_score(update=True) + + @frappe.whitelist() + def set_feedback_criteria(self): + if not self.appraisal: + return + + template = frappe.db.get_value("Appraisal", self.appraisal, "appraisal_template") + template = frappe.get_doc("Appraisal Template", template) + + self.set("feedback_ratings", []) + for entry in template.rating_criteria: + self.append( + "feedback_ratings", + { + "criteria": entry.criteria, + "per_weightage": entry.per_weightage, + }, + ) + + return self diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/test_employee_performance_feedback.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/test_employee_performance_feedback.py new file mode 100644 index 000000000..2720a27ef --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_performance_feedback/test_employee_performance_feedback.py @@ -0,0 +1,146 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase + +from erpnext.setup.doctype.designation.test_designation import create_designation +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.appraisal_cycle.test_appraisal_cycle import create_appraisal_cycle +from hrms.hr.doctype.appraisal_template.test_appraisal_template import create_appraisal_template +from hrms.tests.test_utils import create_company + + +class TestEmployeePerformanceFeedback(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Employee Performance Feedback") + frappe.db.delete("Appraisal") + + company = create_company("_Test Appraisal").name + self.template = create_appraisal_template() + + engineer = create_designation(designation_name="Engineer") + engineer.appraisal_template = self.template.name + engineer.save() + + self.employee = make_employee("employee@example.com", company=company, designation="Engineer") + self.reviewer1 = make_employee("reviewer1@example.com", company=company, designation="Engineer") + self.reviewer2 = make_employee("reviewer2@example.com", company=company, designation="Engineer") + + cycle = create_appraisal_cycle(designation="Engineer") + cycle.create_appraisals() + + self.appraisal = frappe.db.get_all("Appraisal", filters={"appraisal_cycle": cycle.name})[0].name + + def test_validate_employees(self): + feedback = frappe.get_doc( + { + "doctype": "Employee Performance Feedback", + "employee": self.employee, + "reviewer": self.employee, + "appraisal": self.appraisal, + } + ) + + feedback.set_feedback_criteria() + self.assertRaises(frappe.ValidationError, feedback.insert) + + def test_set_feedback_criteria(self): + feedback = create_performance_feedback( + self.employee, + self.reviewer1, + self.appraisal, + ) + self.assertEqual(feedback.feedback_ratings[0].criteria, "Problem Solving") + self.assertEqual(feedback.feedback_ratings[0].per_weightage, 70.0) + self.assertEqual(feedback.feedback_ratings[1].criteria, "Excellence") + self.assertEqual(feedback.feedback_ratings[1].per_weightage, 30.0) + + def test_set_total_score(self): + feedback = create_performance_feedback( + self.employee, + self.reviewer1, + self.appraisal, + ) + + ratings = feedback.feedback_ratings + # 70% weightage + ratings[0].rating = 0.8 + # 30% weightage + ratings[1].rating = 0.7 + + feedback.save() + + self.assertEqual(feedback.total_score, 3.85) + + def test_update_avg_feedback_score_in_appraisal(self): + feedback1 = create_performance_feedback( + self.employee, + self.reviewer1, + self.appraisal, + ) + + ratings = feedback1.feedback_ratings + # 70% weightage + ratings[0].rating = 0.8 + # 30% weightage + ratings[1].rating = 0.7 + + feedback1.submit() + + feedback2 = create_performance_feedback( + self.employee, + self.reviewer2, + self.appraisal, + ) + + ratings = feedback2.feedback_ratings + # 70% weightage + ratings[0].rating = 0.6 + # 30% weightage + ratings[1].rating = 0.8 + + feedback2.submit() + + avg_feedback_score = frappe.db.get_value("Appraisal", self.appraisal, "avg_feedback_score") + self.assertEqual(avg_feedback_score, 3.575) + + def test_update_avg_feedback_score_on_cancel(self): + feedback = create_performance_feedback( + self.employee, + self.reviewer1, + self.appraisal, + ) + + ratings = feedback.feedback_ratings + # 70% weightage + ratings[0].rating = 0.8 + # 30% weightage + ratings[1].rating = 0.7 + feedback.submit() + + avg_feedback_score = frappe.db.get_value("Appraisal", self.appraisal, "avg_feedback_score") + self.assertEqual(avg_feedback_score, 3.85) + + feedback.cancel() + + avg_feedback_score = frappe.db.get_value("Appraisal", self.appraisal, "avg_feedback_score") + self.assertEqual(avg_feedback_score, 0.0) + + +def create_performance_feedback(employee, reviewer, appraisal): + feedback = frappe.get_doc( + { + "doctype": "Employee Performance Feedback", + "employee": employee, + "reviewer": reviewer, + "appraisal": appraisal, + "feedback": "Test Feedback", + } + ) + + feedback.set_feedback_criteria() + feedback.insert() + + return feedback diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/employee_promotion.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/employee_promotion.js new file mode 100644 index 000000000..3b3b12e95 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/employee_promotion.js @@ -0,0 +1,10 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +{% include 'hrms/hr/employee_property_update.js' %} + +frappe.ui.form.on('Employee Promotion', { + refresh: function(frm) { + + } +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/employee_promotion.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/employee_promotion.json new file mode 100644 index 000000000..8decbe2b9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/employee_promotion.json @@ -0,0 +1,171 @@ +{ + "actions": [], + "autoname": "HR-EMP-PRO-.YYYY.-.#####", + "creation": "2018-04-13 18:33:59.476562", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "department", + "salary_currency", + "column_break_3", + "promotion_date", + "company", + "details_section", + "promotion_details", + "salary_details_section", + "current_ctc", + "column_break_12", + "revised_ctc", + "amended_from" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "promotion_date", + "fieldtype": "Date", + "label": "Promotion Date", + "reqd": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company" + }, + { + "description": "Set the properties that should be updated in the Employee master on promotion submission", + "fieldname": "details_section", + "fieldtype": "Section Break", + "label": "Employee Promotion Details" + }, + { + "fieldname": "promotion_details", + "fieldtype": "Table", + "options": "Employee Property History" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Employee Promotion", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "salary_details_section", + "fieldtype": "Section Break", + "label": "Salary Details" + }, + { + "fieldname": "column_break_12", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.salary_currency", + "fieldname": "salary_currency", + "fieldtype": "Link", + "label": "Salary Currency", + "options": "Currency", + "read_only": 1 + }, + { + "fetch_from": "employee.ctc", + "fetch_if_empty": 1, + "fieldname": "current_ctc", + "fieldtype": "Currency", + "label": "Current CTC", + "mandatory_depends_on": "revised_ctc", + "options": "salary_currency" + }, + { + "depends_on": "current_ctc", + "fieldname": "revised_ctc", + "fieldtype": "Currency", + "label": "Revised CTC", + "options": "salary_currency" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:09:40.623819", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Promotion", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/employee_promotion.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/employee_promotion.py new file mode 100644 index 000000000..e40ca5b67 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/employee_promotion.py @@ -0,0 +1,40 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import getdate + +from hrms.hr.utils import update_employee_work_history, validate_active_employee + + +class EmployeePromotion(Document): + def validate(self): + validate_active_employee(self.employee) + + def before_submit(self): + if getdate(self.promotion_date) > getdate(): + frappe.throw( + _("Employee Promotion cannot be submitted before Promotion Date"), + frappe.DocstatusTransitionError, + ) + + def on_submit(self): + employee = frappe.get_doc("Employee", self.employee) + employee = update_employee_work_history(employee, self.promotion_details, date=self.promotion_date) + + if self.revised_ctc: + employee.ctc = self.revised_ctc + + employee.save() + + def on_cancel(self): + employee = frappe.get_doc("Employee", self.employee) + employee = update_employee_work_history(employee, self.promotion_details, cancel=True) + + if self.revised_ctc: + employee.ctc = self.current_ctc + + employee.save() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/test_employee_promotion.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/test_employee_promotion.py new file mode 100644 index 000000000..734f332f8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_promotion/test_employee_promotion.py @@ -0,0 +1,95 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, getdate + +from hrms.payroll.doctype.salary_structure.test_salary_structure import make_employee + + +class TestEmployeePromotion(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Employee Promotion") + + def test_submit_before_promotion_date(self): + employee = make_employee("employee@promotions.com") + promotion = frappe.get_doc( + { + "doctype": "Employee Promotion", + "employee": employee, + "promotion_details": [ + { + "property": "Designation", + "current": "Software Developer", + "new": "Project Manager", + "fieldname": "designation", + } + ], + } + ) + promotion.promotion_date = add_days(getdate(), 1) + self.assertRaises(frappe.DocstatusTransitionError, promotion.submit) + + promotion.promotion_date = getdate() + promotion.submit() + self.assertEqual(promotion.docstatus, 1) + + def test_employee_history(self): + for grade in ["L1", "L2"]: + frappe.get_doc({"doctype": "Employee Grade", "__newname": grade}).insert() + + employee = make_employee( + "test_employee_promotion@example.com", + company="_Test Company", + date_of_birth=getdate("30-09-1980"), + date_of_joining=getdate("01-10-2021"), + designation="Software Developer", + grade="L1", + salary_currency="INR", + ctc="500000", + ) + + promotion = frappe.get_doc( + { + "doctype": "Employee Promotion", + "employee": employee, + "promotion_date": getdate(), + "revised_ctc": "1000000", + "promotion_details": [ + { + "property": "Designation", + "current": "Software Developer", + "new": "Project Manager", + "fieldname": "designation", + }, + {"property": "Grade", "current": "L1", "new": "L2", "fieldname": "grade"}, + ], + } + ).submit() + + # employee fields updated + employee = frappe.get_doc("Employee", employee) + self.assertEqual(employee.grade, "L2") + self.assertEqual(employee.designation, "Project Manager") + self.assertEqual(employee.ctc, 1000000) + + # internal work history updated + self.assertEqual(employee.internal_work_history[0].designation, "Software Developer") + self.assertEqual(employee.internal_work_history[0].from_date, getdate("01-10-2021")) + + self.assertEqual(employee.internal_work_history[1].designation, "Project Manager") + self.assertEqual(employee.internal_work_history[1].from_date, getdate()) + + promotion.cancel() + employee.reload() + + # fields restored + self.assertEqual(employee.grade, "L1") + self.assertEqual(employee.designation, "Software Developer") + self.assertEqual(employee.ctc, 500000) + + # internal work history updated on cancellation + self.assertEqual(len(employee.internal_work_history), 1) + self.assertEqual(employee.internal_work_history[0].designation, "Software Developer") + self.assertEqual(employee.internal_work_history[0].from_date, getdate("01-10-2021")) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_property_history/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_property_history/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_property_history/employee_property_history.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_property_history/employee_property_history.json new file mode 100644 index 000000000..f729d18d2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_property_history/employee_property_history.json @@ -0,0 +1,59 @@ +{ + "actions": [], + "creation": "2018-04-13 18:24:30.579965", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "property", + "current", + "new", + "fieldname" + ], + "fields": [ + { + "columns": 4, + "fieldname": "property", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Property", + "read_only": 1 + }, + { + "columns": 3, + "fieldname": "current", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Current", + "read_only": 1 + }, + { + "columns": 3, + "fieldname": "new", + "fieldtype": "Data", + "in_list_view": 1, + "label": "New", + "read_only": 1 + }, + { + "fieldname": "fieldname", + "fieldtype": "Data", + "hidden": 1, + "label": "Field Name", + "read_only": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:40.798072", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Property History", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_property_history/employee_property_history.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_property_history/employee_property_history.py new file mode 100644 index 000000000..345899e43 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_property_history/employee_property_history.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class EmployeePropertyHistory(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral.js new file mode 100644 index 000000000..f4ff1e53d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral.js @@ -0,0 +1,68 @@ +// Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Referral", { + refresh: function (frm) { + if (frm.doc.docstatus === 1 && frm.doc.status === "Pending") { + frm.add_custom_button(__("Reject Employee Referral"), function () { + frappe.confirm( + __("Are you sure you want to reject the Employee Referral?"), + function () { + frm.doc.status = "Rejected"; + frm.dirty(); + frm.save_or_update(); + }, + function () { + window.close(); + }, + ); + }); + + frm.add_custom_button(__("Create Job Applicant"), function () { + frm.events.create_job_applicant(frm); + }).addClass("btn-primary"); + } + + // To check whether Payment is done or not + if (frm.doc.docstatus === 1 && frm.doc.status === "Accepted") { + frappe.db + .get_list("Additional Salary", { + filters: { + ref_docname: cur_frm.doc.name, + docstatus: 1, + }, + fields: [{ COUNT: "name", as: "additional_salary_count" }], + }) + .then((data) => { + let additional_salary_count = data[0].additional_salary_count; + + if (frm.doc.is_applicable_for_referral_bonus && !additional_salary_count) { + frm.add_custom_button(__("Create Additional Salary"), function () { + frm.events.create_additional_salary(frm); + }).addClass("btn-primary"); + } + }); + } + }, + create_job_applicant: function (frm) { + frappe.call({ + method: "hrms.hr.doctype.employee_referral.employee_referral.create_job_applicant", + args: { + source_name: frm.docname, + }, + }); + }, + + create_additional_salary: function (frm) { + frappe.call({ + method: "hrms.hr.doctype.employee_referral.employee_referral.create_additional_salary", + args: { + doc: frm.doc, + }, + callback: function (r) { + var doclist = frappe.model.sync(r.message); + frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + }, + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral.json new file mode 100644 index 000000000..5da635a4d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral.json @@ -0,0 +1,306 @@ +{ + "actions": [], + "autoname": "format:HR-REF-{####}", + "creation": "2021-03-23 14:54:45.047051", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "first_name", + "last_name", + "full_name", + "column_break_6", + "date", + "status", + "for_designation", + "referral_details_section", + "email", + "contact_no", + "resume_link", + "column_break_12", + "current_employer", + "current_job_title", + "resume", + "referrer_details_section", + "referrer", + "referrer_name", + "column_break_14", + "is_applicable_for_referral_bonus", + "referral_payment_status", + "department", + "additional_information_section", + "qualification_reason", + "work_references", + "amended_from" + ], + "fields": [ + { + "fieldname": "first_name", + "fieldtype": "Data", + "label": "First Name ", + "reqd": 1 + }, + { + "fieldname": "last_name", + "fieldtype": "Data", + "label": "Last Name", + "reqd": 1 + }, + { + "fieldname": "full_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Full Name", + "read_only": 1 + }, + { + "fieldname": "contact_no", + "fieldtype": "Data", + "in_standard_filter": 1, + "label": "Contact No.", + "options": "Phone" + }, + { + "fieldname": "current_employer", + "fieldtype": "Data", + "label": "Current Employer " + }, + { + "fieldname": "column_break_6", + "fieldtype": "Column Break" + }, + { + "fieldname": "date", + "fieldtype": "Date", + "in_standard_filter": 1, + "label": "Date", + "reqd": 1 + }, + { + "allow_on_submit": 1, + "fieldname": "status", + "fieldtype": "Select", + "in_standard_filter": 1, + "label": "Status", + "no_copy": 1, + "options": "Pending\nIn Process\nAccepted\nRejected\nCancelled", + "permlevel": 1, + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "current_job_title", + "fieldtype": "Data", + "label": "Current Job Title" + }, + { + "fieldname": "resume", + "fieldtype": "Attach", + "label": "Resume" + }, + { + "fieldname": "referrer_details_section", + "fieldtype": "Section Break", + "label": "Referrer Details" + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "additional_information_section", + "fieldtype": "Section Break", + "label": "Additional Information " + }, + { + "fieldname": "work_references", + "fieldtype": "Text Editor", + "label": "Work References" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Employee Referral", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "column_break_14", + "fieldtype": "Column Break" + }, + { + "fieldname": "for_designation", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "For Designation ", + "options": "Designation", + "reqd": 1 + }, + { + "fieldname": "email", + "fieldtype": "Data", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Email", + "options": "Email", + "reqd": 1 + }, + { + "default": "1", + "fieldname": "is_applicable_for_referral_bonus", + "fieldtype": "Check", + "label": "Is Applicable for Referral Bonus" + }, + { + "fieldname": "qualification_reason", + "fieldtype": "Text Editor", + "label": "Why is this Candidate Qualified for this Position?" + }, + { + "fieldname": "referrer", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Referrer", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "referrer.employee_name", + "fieldname": "referrer_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Referrer Name", + "read_only": 1 + }, + { + "fieldname": "resume_link", + "fieldtype": "Data", + "label": "Resume Link" + }, + { + "fieldname": "referral_payment_status", + "fieldtype": "Select", + "label": "Referral Bonus Payment Status", + "options": "\nUnpaid\nPaid", + "read_only": 1 + }, + { + "fieldname": "referral_details_section", + "fieldtype": "Section Break", + "label": "Referral Details" + }, + { + "fieldname": "column_break_12", + "fieldtype": "Column Break" + } + ], + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [], + "modified": "2025-12-06 14:32:15.005720", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Referral", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "amend": 1, + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "delete": 1, + "email": 1, + "export": 1, + "permlevel": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "delete": 1, + "email": 1, + "export": 1, + "permlevel": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "email": 1, + "export": 1, + "permlevel": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "full_name" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral.py new file mode 100644 index 000000000..5fd65d10c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral.py @@ -0,0 +1,97 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import get_link_to_form + +from hrms.hr.utils import validate_active_employee + + +class EmployeeReferral(Document): + def validate(self): + validate_active_employee(self.referrer) + self.validate_unique_referral() + self.set_full_name() + self.set_status() + self.set_referral_bonus_payment_status() + + def validate_unique_referral(self): + if referral := frappe.db.exists( + "Employee Referral", {"name": ("!=", self.name), "email": self.email, "docstatus": ("!=", 2)} + ): + frappe.throw( + _("Employee Referral {0} already exists for email: {1}").format( + get_link_to_form("Employee Referral", referral), frappe.bold(self.email) + ), + frappe.DuplicateEntryError, + ) + + def set_full_name(self): + self.full_name = " ".join(filter(None, [self.first_name, self.last_name])) + + def set_status(self): + self.status = "Pending" + + def set_referral_bonus_payment_status(self): + if not self.is_applicable_for_referral_bonus: + self.referral_payment_status = "" + else: + if not self.referral_payment_status: + self.referral_payment_status = "Unpaid" + + def on_discard(self): + self.db_set("status", "Cancelled") + + +@frappe.whitelist() +def create_job_applicant(source_name, target_doc=None): + emp_ref = frappe.get_doc("Employee Referral", source_name) + # just for Api call if some set status apart from default Status + status = emp_ref.status + if emp_ref.status in ["Pending", "In process"]: + status = "Open" + + job_applicant = frappe.new_doc("Job Applicant") + job_applicant.source = "Employee Referral" + job_applicant.employee_referral = emp_ref.name + job_applicant.status = status + job_applicant.designation = emp_ref.for_designation + job_applicant.applicant_name = emp_ref.full_name + job_applicant.email_id = emp_ref.email + job_applicant.phone_number = emp_ref.contact_no + job_applicant.resume_attachment = emp_ref.resume + job_applicant.resume_link = emp_ref.resume_link + job_applicant.save() + + frappe.msgprint( + _("Job Applicant {0} created successfully.").format( + get_link_to_form("Job Applicant", job_applicant.name) + ), + title=_("Success"), + indicator="green", + ) + + emp_ref.db_set("status", "In Process") + + return job_applicant + + +@frappe.whitelist() +def create_additional_salary(doc): + import json + + if isinstance(doc, str): + doc = frappe._dict(json.loads(doc)) + + if not frappe.db.exists("Additional Salary", {"ref_docname": doc.name}): + additional_salary = frappe.new_doc("Additional Salary") + additional_salary.employee = doc.referrer + additional_salary.company = frappe.db.get_value("Employee", doc.referrer, "company") + additional_salary.overwrite_salary_structure_amount = 0 + additional_salary.ref_doctype = doc.doctype + additional_salary.ref_docname = doc.name + + return additional_salary diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral_dashboard.py new file mode 100644 index 000000000..4d683fbfc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral_dashboard.py @@ -0,0 +1,8 @@ +def get_data(): + return { + "fieldname": "employee_referral", + "non_standard_fieldnames": {"Additional Salary": "ref_docname"}, + "transactions": [ + {"items": ["Job Applicant", "Additional Salary"]}, + ], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral_list.js new file mode 100644 index 000000000..7f782adaf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/employee_referral_list.js @@ -0,0 +1,14 @@ +frappe.listview_settings["Employee Referral"] = { + add_fields: ["status"], + get_indicator: function (doc) { + if (doc.status == "Pending") { + return [__(doc.status), "grey", "status,=," + doc.status]; + } else if (doc.status == "In Process") { + return [__(doc.status), "orange", "status,=," + doc.status]; + } else if (doc.status == "Accepted") { + return [__(doc.status), "green", "status,=," + doc.status]; + } else if (doc.status == "Rejected") { + return [__(doc.status), "red", "status,=," + doc.status]; + } + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/test_employee_referral.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/test_employee_referral.py new file mode 100644 index 000000000..45352a94d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_referral/test_employee_referral.py @@ -0,0 +1,81 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import today + +from erpnext.setup.doctype.designation.test_designation import create_designation +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.employee_referral.employee_referral import ( + create_additional_salary, + create_job_applicant, +) + + +class TestEmployeeReferral(IntegrationTestCase): + def setUp(self): + for d in ["Job Applicant", "Employee Referral"]: + frappe.db.delete(d) + + def test_workflow_and_status_sync(self): + emp_ref = create_employee_referral() + + # Check Initial status + self.assertTrue(emp_ref.status, "Pending") + + job_applicant = create_job_applicant(emp_ref.name) + + # Check status sync + emp_ref.reload() + self.assertTrue(emp_ref.status, "In Process") + + job_applicant.reload() + job_applicant.status = "Rejected" + job_applicant.save() + + emp_ref.reload() + self.assertTrue(emp_ref.status, "Rejected") + + job_applicant.reload() + job_applicant.status = "Accepted" + job_applicant.save() + + emp_ref.reload() + self.assertTrue(emp_ref.status, "Accepted") + + # Check for Referral reference in additional salary + + add_sal = create_additional_salary(emp_ref) + self.assertTrue(add_sal.ref_docname, emp_ref.name) + + def test_status_on_discard(self): + refarral = create_employee_referral(do_not_submit=True) + refarral.discard() + refarral.reload() + self.assertEqual(refarral.status, "Cancelled") + + def test_unique_referral(self): + referral_1 = create_employee_referral(email="test_ref@example.com") + self.assertRaises(frappe.DuplicateEntryError, create_employee_referral, email="test_ref@example.com") + referral_1.cancel() + referral_2 = create_employee_referral(email="test_ref@example.com") + self.assertTrue(referral_2) + + +def create_employee_referral(email=None, do_not_submit=False): + emp_ref = frappe.new_doc("Employee Referral") + emp_ref.first_name = "Mahesh" + emp_ref.last_name = "Singh" + emp_ref.email = email or "a@b.c" + emp_ref.date = today() + emp_ref.for_designation = create_designation().name + emp_ref.referrer = make_employee("testassetmovemp@example.com", company="_Test Company") + emp_ref.is_applicable_for_employee_referral_compensation = 1 + emp_ref.save() + if do_not_submit: + return emp_ref + emp_ref.submit() + + return emp_ref diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation.js new file mode 100644 index 000000000..e95ee0694 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation.js @@ -0,0 +1,65 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Separation", { + setup: function (frm) { + frm.add_fetch("employee_separation_template", "company", "company"); + frm.add_fetch("employee_separation_template", "department", "department"); + frm.add_fetch("employee_separation_template", "designation", "designation"); + frm.add_fetch("employee_separation_template", "employee_grade", "employee_grade"); + }, + + refresh: function (frm) { + if (frm.doc.employee) { + frm.add_custom_button( + __("Employee"), + function () { + frappe.set_route("Form", "Employee", frm.doc.employee); + }, + __("View"), + ); + } + if (frm.doc.project) { + frm.add_custom_button( + __("Project"), + function () { + frappe.set_route("Form", "Project", frm.doc.project); + }, + __("View"), + ); + frm.add_custom_button( + __("Task"), + function () { + frappe.set_route("List", "Task", { project: frm.doc.project }); + }, + __("View"), + ); + } + }, + + employee_separation_template: function (frm) { + frm.set_value("activities", ""); + if (frm.doc.employee_separation_template) { + frappe.call({ + method: "hrms.controllers.employee_boarding_controller.get_onboarding_details", + args: { + parent: frm.doc.employee_separation_template, + parenttype: "Employee Separation Template", + }, + callback: function (r) { + if (r.message) { + $.each(r.message, function (i, d) { + var row = frappe.model.add_child( + frm.doc, + "Employee Boarding Activity", + "activities", + ); + $.extend(row, d); + }); + } + refresh_field("activities"); + }, + }); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation.json new file mode 100644 index 000000000..70c8ddcd6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation.json @@ -0,0 +1,186 @@ +{ + "actions": [], + "autoname": "HR-EMP-SEP-.YYYY.-.#####", + "creation": "2018-05-10 02:29:16.740490", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "department", + "designation", + "employee_grade", + "column_break_7", + "company", + "boarding_status", + "resignation_letter_date", + "boarding_begins_on", + "project", + "table_for_activity", + "employee_separation_template", + "activities", + "notify_users_by_email", + "section_break_14", + "exit_interview", + "amended_from" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.resignation_letter_date", + "fieldname": "resignation_letter_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Resignation Letter Date", + "read_only": 1 + }, + { + "allow_on_submit": 1, + "default": "Pending", + "fieldname": "boarding_status", + "fieldtype": "Select", + "label": "Status", + "options": "Pending\nIn Process\nCompleted", + "read_only": 1 + }, + { + "allow_on_submit": 1, + "default": "0", + "fieldname": "notify_users_by_email", + "fieldtype": "Check", + "label": "Notify users by email" + }, + { + "fieldname": "column_break_7", + "fieldtype": "Column Break" + }, + { + "fieldname": "employee_separation_template", + "fieldtype": "Link", + "label": "Employee Separation Template", + "options": "Employee Separation Template" + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "project", + "fieldtype": "Link", + "label": "Project", + "options": "Project", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fetch_from": "employee.designation", + "fieldname": "designation", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Designation", + "options": "Designation", + "read_only": 1 + }, + { + "fetch_from": "employee.grade", + "fieldname": "employee_grade", + "fieldtype": "Link", + "label": "Employee Grade", + "options": "Employee Grade", + "read_only": 1 + }, + { + "fieldname": "table_for_activity", + "fieldtype": "Section Break", + "label": "Separation Activities" + }, + { + "allow_on_submit": 1, + "fieldname": "activities", + "fieldtype": "Table", + "label": "Activities", + "options": "Employee Boarding Activity" + }, + { + "fieldname": "section_break_14", + "fieldtype": "Section Break" + }, + { + "fieldname": "exit_interview", + "fieldtype": "Text Editor", + "label": "Exit Interview Summary" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Employee Separation", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "boarding_begins_on", + "fieldtype": "Date", + "label": "Separation Begins On", + "reqd": 1 + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:09:41.099448", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Separation", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation.py new file mode 100644 index 000000000..6f5bc3ac5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation.py @@ -0,0 +1,19 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from hrms.controllers.employee_boarding_controller import EmployeeBoardingController + + +class EmployeeSeparation(EmployeeBoardingController): + def validate(self): + super().validate() + + def on_submit(self): + super().on_submit() + + def on_update_after_submit(self): + self.create_task_and_notify_user() + + def on_cancel(self): + super().on_cancel() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation_list.js new file mode 100644 index 000000000..849648489 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/employee_separation_list.js @@ -0,0 +1,11 @@ +frappe.listview_settings["Employee Separation"] = { + add_fields: ["boarding_status", "employee_name", "department"], + filters: [["boarding_status", "=", "Pending"]], + get_indicator: function (doc) { + return [ + __(doc.boarding_status), + frappe.utils.guess_colour(doc.boarding_status), + "boarding_status,=," + doc.boarding_status, + ]; + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/test_employee_separation.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/test_employee_separation.py new file mode 100644 index 000000000..b2921ee30 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation/test_employee_separation.py @@ -0,0 +1,53 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.utils import getdate + +from hrms.tests.utils import HRMSTestSuite + +test_dependencies = ["Employee Onboarding"] + + +class TestEmployeeSeparation(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + + def test_employee_separation(self): + separation = create_employee_separation() + + self.assertEqual(separation.docstatus, 1) + self.assertEqual(separation.boarding_status, "Pending") + + project = frappe.get_doc("Project", separation.project) + project.percent_complete_method = "Manual" + project.status = "Completed" + project.save() + + separation.reload() + self.assertEqual(separation.boarding_status, "Completed") + + separation.cancel() + self.assertEqual(separation.project, "") + + def tearDown(self): + for entry in frappe.get_all("Employee Separation"): + doc = frappe.get_doc("Employee Separation", entry.name) + if doc.docstatus == 1: + doc.cancel() + doc.delete() + + +def create_employee_separation(): + employee = frappe.db.get_value("Employee", {"status": "Active", "company": "_Test Company"}) + separation = frappe.new_doc("Employee Separation") + separation.employee = employee + separation.boarding_begins_on = getdate() + separation.company = "_Test Company" + separation.append("activities", {"activity_name": "Deactivate Employee", "role": "HR User"}) + separation.boarding_status = "Pending" + separation.insert() + separation.submit() + return separation diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template.js new file mode 100644 index 000000000..3710c4c84 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template.js @@ -0,0 +1,6 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Separation Template", { + refresh: function (frm) {}, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template.json new file mode 100644 index 000000000..ba0c0ff9d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template.json @@ -0,0 +1,96 @@ +{ + "actions": [], + "autoname": "HR-EMP-STP-.#####", + "creation": "2018-05-09 06:31:44.498557", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "title", + "company", + "department", + "column_break_7", + "designation", + "employee_grade", + "section_break_7", + "activities" + ], + "fields": [ + { + "fieldname": "title", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Title", + "reqd": 1, + "translatable": 1 + }, + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company" + }, + { + "fieldname": "department", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Department", + "options": "Department" + }, + { + "fieldname": "column_break_7", + "fieldtype": "Column Break" + }, + { + "fieldname": "designation", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Designation", + "options": "Designation" + }, + { + "fieldname": "employee_grade", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee Grade", + "options": "Employee Grade" + }, + { + "fieldname": "section_break_7", + "fieldtype": "Section Break", + "label": "Activities" + }, + { + "fieldname": "activities", + "fieldtype": "Table", + "label": "Activities", + "options": "Employee Boarding Activity" + } + ], + "links": [], + "modified": "2024-03-27 13:09:41.257092", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Separation Template", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "show_title_field_in_link": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "title", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template.py new file mode 100644 index 000000000..70b84b175 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class EmployeeSeparationTemplate(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template_dashboard.py new file mode 100644 index 000000000..3ffd8dd6e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/employee_separation_template_dashboard.py @@ -0,0 +1,7 @@ +def get_data(): + return { + "fieldname": "employee_separation_template", + "transactions": [ + {"items": ["Employee Separation"]}, + ], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/test_employee_separation_template.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/test_employee_separation_template.py new file mode 100644 index 000000000..0fed2100d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_separation_template/test_employee_separation_template.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestEmployeeSeparationTemplate(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill/employee_skill.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill/employee_skill.json new file mode 100644 index 000000000..3af1e2aa1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill/employee_skill.json @@ -0,0 +1,49 @@ +{ + "actions": [], + "creation": "2019-04-16 09:57:52.751635", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "skill", + "proficiency", + "evaluation_date" + ], + "fields": [ + { + "fieldname": "skill", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Skill", + "options": "Skill", + "reqd": 1 + }, + { + "fieldname": "proficiency", + "fieldtype": "Rating", + "in_list_view": 1, + "label": "Proficiency", + "reqd": 1 + }, + { + "default": "Today", + "fieldname": "evaluation_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Evaluation Date" + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:41.391917", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Skill", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "ASC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill/employee_skill.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill/employee_skill.py new file mode 100644 index 000000000..13bee3425 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill/employee_skill.py @@ -0,0 +1,10 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class EmployeeSkill(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/employee_skill_map.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/employee_skill_map.js new file mode 100644 index 000000000..9b9d36ff0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/employee_skill_map.js @@ -0,0 +1,21 @@ +// Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Skill Map", { + // refresh: function(frm) { + + // } + designation: (frm) => { + frm.set_value("employee_skills", null); + if (frm.doc.designation) { + frappe.db.get_doc("Designation", frm.doc.designation).then((designation) => { + designation.skills.forEach((designation_skill) => { + let row = frappe.model.add_child(frm.doc, "Employee Skill", "employee_skills"); + row.skill = designation_skill.skill; + row.proficiency = 1; + }); + refresh_field("employee_skills"); + }); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/employee_skill_map.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/employee_skill_map.json new file mode 100644 index 000000000..c050f9e8b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/employee_skill_map.json @@ -0,0 +1,89 @@ +{ + "actions": [], + "autoname": "field:employee", + "creation": "2019-04-16 10:07:48.303426", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "column_break_3", + "designation", + "skills_section", + "employee_skills", + "trainings_section", + "trainings" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "label": "Employee", + "options": "Employee", + "unique": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Read Only", + "label": "Employee Name" + }, + { + "fetch_from": "employee.designation", + "fieldname": "designation", + "fieldtype": "Read Only", + "label": "Designation" + }, + { + "fieldname": "skills_section", + "fieldtype": "Section Break", + "label": "Skills" + }, + { + "fieldname": "employee_skills", + "fieldtype": "Table", + "label": "Employee Skills", + "options": "Employee Skill" + }, + { + "fieldname": "trainings_section", + "fieldtype": "Section Break", + "label": "Trainings" + }, + { + "fieldname": "trainings", + "fieldtype": "Table", + "label": "Trainings", + "options": "Employee Training" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + } + ], + "links": [], + "modified": "2024-03-27 13:09:41.506556", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Skill Map", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "ASC", + "states": [], + "title_field": "employee_name" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/employee_skill_map.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/employee_skill_map.py new file mode 100644 index 000000000..ea7da9edf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_skill_map/employee_skill_map.py @@ -0,0 +1,10 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class EmployeeSkillMap(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_training/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_training/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_training/employee_training.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_training/employee_training.json new file mode 100644 index 000000000..a5d09c5b6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_training/employee_training.json @@ -0,0 +1,40 @@ +{ + "actions": [], + "creation": "2019-04-16 16:15:50.931545", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "training", + "training_date" + ], + "fields": [ + { + "fieldname": "training", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Training", + "options": "Training Event" + }, + { + "fetch_from": "training.end_time", + "fieldname": "training_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Training Date" + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:42.557746", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Training", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "ASC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_training/employee_training.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_training/employee_training.py new file mode 100644 index 000000000..cd92dd609 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_training/employee_training.py @@ -0,0 +1,10 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class EmployeeTraining(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/employee_transfer.js b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/employee_transfer.js new file mode 100644 index 000000000..762672bbd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/employee_transfer.js @@ -0,0 +1,10 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +{% include 'hrms/hr/employee_property_update.js' %} + +frappe.ui.form.on('Employee Transfer', { + refresh: function(frm) { + + } +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/employee_transfer.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/employee_transfer.json new file mode 100644 index 000000000..df106de46 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/employee_transfer.json @@ -0,0 +1,165 @@ +{ + "actions": [], + "autoname": "HR-EMP-TRN-.YYYY.-.#####", + "creation": "2018-04-13 18:20:01.603830", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "transfer_date", + "column_break_3", + "company", + "new_company", + "department", + "details_section", + "transfer_details", + "reallocate_leaves", + "create_new_employee_id", + "new_employee_id", + "amended_from" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fieldname": "transfer_date", + "fieldtype": "Date", + "label": "Transfer Date", + "reqd": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company" + }, + { + "fieldname": "new_company", + "fieldtype": "Link", + "label": "New Company", + "options": "Company" + }, + { + "bold": 1, + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "details_section", + "fieldtype": "Section Break", + "label": "Employee Transfer Details" + }, + { + "fieldname": "transfer_details", + "fieldtype": "Table", + "label": "Employee Transfer Detail", + "options": "Employee Property History", + "reqd": 1 + }, + { + "default": "0", + "fieldname": "reallocate_leaves", + "fieldtype": "Check", + "hidden": 1, + "label": "Re-allocate Leaves" + }, + { + "default": "0", + "fieldname": "create_new_employee_id", + "fieldtype": "Check", + "label": "Create New Employee Id" + }, + { + "allow_on_submit": 1, + "fieldname": "new_employee_id", + "fieldtype": "Link", + "label": "New Employee ID", + "options": "Employee", + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Employee Transfer", + "print_hide": 1, + "read_only": 1 + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:09:42.664274", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Transfer", + "owner": "Administrator", + "permissions": [ + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/employee_transfer.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/employee_transfer.py new file mode 100644 index 000000000..7b71552da --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/employee_transfer.py @@ -0,0 +1,74 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import getdate + +from hrms.hr.utils import update_employee_work_history + + +class EmployeeTransfer(Document): + def before_submit(self): + if getdate(self.transfer_date) > getdate(): + frappe.throw( + _("Employee Transfer cannot be submitted before Transfer Date"), + frappe.DocstatusTransitionError, + ) + + def on_submit(self): + employee = frappe.get_doc("Employee", self.employee) + if self.create_new_employee_id: + new_employee = frappe.copy_doc(employee) + new_employee.name = None + new_employee.employee_number = None + new_employee = update_employee_work_history( + new_employee, self.transfer_details, date=self.transfer_date + ) + if self.new_company and self.company != self.new_company: + new_employee.internal_work_history = [] + new_employee.date_of_joining = self.transfer_date + new_employee.company = self.new_company + # move user_id to new employee before insert + if employee.user_id and not self.validate_user_in_details(): + new_employee.user_id = employee.user_id + employee.db_set("user_id", "") + new_employee.insert() + self.db_set("new_employee_id", new_employee.name) + # relieve the old employee + employee.db_set("relieving_date", self.transfer_date) + employee.db_set("status", "Left") + else: + employee = update_employee_work_history(employee, self.transfer_details, date=self.transfer_date) + if self.new_company and self.company != self.new_company: + employee.company = self.new_company + employee.date_of_joining = self.transfer_date + employee.save() + + def on_cancel(self): + employee = frappe.get_doc("Employee", self.employee) + if self.create_new_employee_id: + if self.new_employee_id: + frappe.throw( + _("Please delete the Employee {0} to cancel this document").format( + f"{self.new_employee_id}" + ) + ) + # mark the employee as active + employee.status = "Active" + employee.relieving_date = "" + else: + employee = update_employee_work_history( + employee, self.transfer_details, date=self.transfer_date, cancel=True + ) + if self.new_company != self.company: + employee.company = self.company + employee.save() + + def validate_user_in_details(self): + for item in self.transfer_details: + if item.fieldname == "user_id" and item.new != item.current: + return True + return False diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/test_employee_transfer.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/test_employee_transfer.py new file mode 100644 index 000000000..d9ee25592 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employee_transfer/test_employee_transfer.py @@ -0,0 +1,150 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase, change_settings +from frappe.utils import add_days, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + + +class TestEmployeeTransfer(IntegrationTestCase): + def setUp(self): + create_company() + + def tearDown(self): + frappe.db.rollback() + + def test_submit_before_transfer_date(self): + make_employee("employee2@transfers.com") + + transfer_obj = frappe.get_doc( + { + "doctype": "Employee Transfer", + "employee": frappe.get_value("Employee", {"user_id": "employee2@transfers.com"}, "name"), + "transfer_details": [ + { + "property": "Designation", + "current": "Software Developer", + "new": "Project Manager", + "fieldname": "designation", + } + ], + } + ) + transfer_obj.transfer_date = add_days(getdate(), 1) + transfer_obj.save() + self.assertRaises(frappe.DocstatusTransitionError, transfer_obj.submit) + transfer = frappe.get_doc("Employee Transfer", transfer_obj.name) + transfer.transfer_date = getdate() + transfer.submit() + self.assertEqual(transfer.docstatus, 1) + + def test_new_employee_creation(self): + make_employee("employee3@transfers.com") + + transfer = frappe.get_doc( + { + "doctype": "Employee Transfer", + "employee": frappe.get_value("Employee", {"user_id": "employee3@transfers.com"}, "name"), + "create_new_employee_id": 1, + "transfer_date": getdate(), + "transfer_details": [ + { + "property": "Designation", + "current": "Software Developer", + "new": "Project Manager", + "fieldname": "designation", + } + ], + } + ).insert() + transfer.submit() + self.assertTrue(transfer.new_employee_id) + self.assertEqual(frappe.get_value("Employee", transfer.new_employee_id, "status"), "Active") + self.assertEqual(frappe.get_value("Employee", transfer.employee, "status"), "Left") + + def test_employee_history(self): + employee = make_employee( + "employee4@transfers.com", + company="Test Company", + date_of_birth=getdate("30-09-1980"), + date_of_joining=getdate("01-10-2021"), + department="Accounts - TC", + designation="Accountant", + ) + transfer = create_employee_transfer(employee) + + count = 0 + department = ["Accounts - TC", "Management - TC"] + designation = ["Accountant", "Manager"] + dt = [getdate("01-10-2021"), getdate()] + to_date = [add_days(dt[1], -1), None] + + employee = frappe.get_doc("Employee", employee) + for data in employee.internal_work_history: + self.assertEqual(data.department, department[count]) + self.assertEqual(data.designation, designation[count]) + self.assertEqual(data.from_date, dt[count]) + self.assertEqual(data.to_date, to_date[count]) + count = count + 1 + + transfer.cancel() + employee.reload() + + for data in employee.internal_work_history: + self.assertEqual(data.designation, designation[0]) + self.assertEqual(data.department, department[0]) + self.assertEqual(data.from_date, dt[0]) + self.assertEqual(data.to_date, None) + + @change_settings("System Settings", {"number_format": "#.###,##"}) + def test_data_formatting_in_history(self): + from hrms.hr.utils import get_formatted_value + + value = get_formatted_value("12.500,00", "Float") + self.assertEqual(value, 12500.0) + + value = get_formatted_value("12.500,00", "Currency") + self.assertEqual(value, 12500.0) + + +def create_company(): + if not frappe.db.exists("Company", "Test Company"): + frappe.get_doc( + { + "doctype": "Company", + "company_name": "Test Company", + "default_currency": "INR", + "country": "India", + } + ).insert() + + +def create_employee_transfer(employee): + doc = frappe.get_doc( + { + "doctype": "Employee Transfer", + "employee": employee, + "transfer_date": getdate(), + "transfer_details": [ + { + "property": "Designation", + "current": "Accountant", + "new": "Manager", + "fieldname": "designation", + }, + { + "property": "Department", + "current": "Accounts - TC", + "new": "Management - TC", + "fieldname": "department", + }, + ], + } + ) + + doc.save() + doc.submit() + + return doc diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/README.md new file mode 100644 index 000000000..19de703b2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/README.md @@ -0,0 +1,3 @@ +Type of employment. + +e.g. Permanent, Probation, Intern etc. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/employment_type.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/employment_type.json new file mode 100644 index 000000000..26e630afd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/employment_type.json @@ -0,0 +1,66 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "field:employee_type_name", + "creation": "2013-01-10 16:34:14", + "doctype": "DocType", + "document_type": "Setup", + "engine": "InnoDB", + "field_order": [ + "employee_type_name" + ], + "fields": [ + { + "fieldname": "employee_type_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Employment Type", + "oldfieldname": "employee_type_name", + "oldfieldtype": "Data", + "reqd": 1, + "unique": 1 + } + ], + "icon": "fa fa-flag", + "idx": 1, + "links": [], + "modified": "2024-03-27 13:09:42.827070", + "modified_by": "Administrator", + "module": "HR", + "name": "Employment Type", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "import": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "show_name_in_global_search": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "translated_doctype": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/employment_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/employment_type.py new file mode 100644 index 000000000..b2262c0c5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/employment_type.py @@ -0,0 +1,9 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +from frappe.model.document import Document + + +class EmploymentType(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/test_employment_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/test_employment_type.py new file mode 100644 index 000000000..23641070c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/test_employment_type.py @@ -0,0 +1,6 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe + +# test_records = frappe.get_test_records("Employment Type") diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/test_records.json b/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/test_records.json new file mode 100644 index 000000000..fa571798a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/employment_type/test_records.json @@ -0,0 +1,6 @@ +[ + { + "doctype": "Employment Type", + "employee_type_name": "_Test Employment Type" + } +] \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview.js b/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview.js new file mode 100644 index 000000000..fefdce932 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview.js @@ -0,0 +1,47 @@ +// Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Exit Interview", { + refresh: function (frm) { + if ( + !frm.doc.__islocal && + !frm.doc.questionnaire_email_sent && + frappe.boot.user.can_write.includes("Exit Interview") + ) { + frm.add_custom_button(__("Send Exit Questionnaire"), function () { + frm.trigger("send_exit_questionnaire"); + }); + } + }, + + employee: function (frm) { + frappe.db.get_value("Employee", frm.doc.employee, "relieving_date", (message) => { + if (!message.relieving_date) { + frappe.throw({ + message: __("Please set the relieving date for employee {0}", [ + '' + + frm.doc.employee + + "", + ]), + title: __("Relieving Date Missing"), + }); + } + }); + }, + + send_exit_questionnaire: function (frm) { + frappe.call({ + method: "hrms.hr.doctype.exit_interview.exit_interview.send_exit_questionnaire", + args: { + interviews: [frm.doc], + }, + callback: function (r) { + if (!r.exc) { + frm.refresh_field("questionnaire_email_sent"); + } + }, + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview.json b/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview.json new file mode 100644 index 000000000..09d14c615 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview.json @@ -0,0 +1,247 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "naming_series:", + "creation": "2021-12-05 13:56:36.241690", + "doctype": "DocType", + "editable_grid": 1, + "email_append_to": 1, + "engine": "InnoDB", + "field_order": [ + "naming_series", + "employee", + "employee_name", + "email", + "column_break_5", + "company", + "status", + "date", + "employee_details_section", + "department", + "designation", + "reports_to", + "column_break_9", + "date_of_joining", + "relieving_date", + "exit_questionnaire_section", + "ref_doctype", + "questionnaire_email_sent", + "column_break_10", + "reference_document_name", + "interview_summary_section", + "interviewers", + "interview_summary", + "employee_status_section", + "employee_status", + "amended_from" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fetch_from": "employee.relieving_date", + "fieldname": "relieving_date", + "fieldtype": "Date", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Relieving Date", + "read_only": 1 + }, + { + "fieldname": "column_break_5", + "fieldtype": "Column Break" + }, + { + "fieldname": "company", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "date", + "fieldtype": "Date", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Date", + "mandatory_depends_on": "eval:doc.status==='Scheduled';" + }, + { + "fieldname": "exit_questionnaire_section", + "fieldtype": "Section Break", + "label": "Exit Questionnaire" + }, + { + "fieldname": "ref_doctype", + "fieldtype": "Link", + "label": "Reference Document Type", + "options": "DocType" + }, + { + "fieldname": "reference_document_name", + "fieldtype": "Dynamic Link", + "in_list_view": 1, + "label": "Reference Document Name", + "options": "ref_doctype" + }, + { + "fieldname": "interview_summary_section", + "fieldtype": "Section Break", + "label": "Interview Details" + }, + { + "fieldname": "column_break_10", + "fieldtype": "Column Break" + }, + { + "fieldname": "interviewers", + "fieldtype": "Table MultiSelect", + "label": "Interviewers", + "mandatory_depends_on": "eval:doc.status==='Scheduled';", + "options": "Interviewer" + }, + { + "fetch_from": "employee.date_of_joining", + "fieldname": "date_of_joining", + "fieldtype": "Date", + "label": "Date of Joining", + "read_only": 1 + }, + { + "fetch_from": "employee.reports_to", + "fieldname": "reports_to", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Reports To", + "options": "Employee", + "read_only": 1 + }, + { + "fieldname": "employee_details_section", + "fieldtype": "Section Break", + "label": "Employee Details" + }, + { + "fetch_from": "employee.designation", + "fieldname": "designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation", + "read_only": 1 + }, + { + "fieldname": "column_break_9", + "fieldtype": "Column Break" + }, + { + "fieldname": "naming_series", + "fieldtype": "Select", + "label": "Naming Series", + "options": "HR-EXIT-INT-" + }, + { + "default": "0", + "fieldname": "questionnaire_email_sent", + "fieldtype": "Check", + "in_standard_filter": 1, + "label": "Questionnaire Email Sent", + "no_copy": 1, + "read_only": 1 + }, + { + "fieldname": "email", + "fieldtype": "Data", + "label": "Email ID", + "options": "Email", + "read_only": 1 + }, + { + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Status", + "options": "Pending\nScheduled\nCompleted\nCancelled", + "reqd": 1 + }, + { + "fieldname": "employee_status_section", + "fieldtype": "Section Break" + }, + { + "fieldname": "employee_status", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Final Decision", + "mandatory_depends_on": "eval:doc.status==='Completed';", + "options": "\nEmployee Retained\nExit Confirmed" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Exit Interview", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "interview_summary", + "fieldtype": "Text Editor", + "label": "Interview Summary" + } + ], + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:09:43.272097", + "modified_by": "Administrator", + "module": "HR", + "name": "Exit Interview", + "naming_rule": "By \"Naming Series\" field", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "sender_field": "email", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview.py b/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview.py new file mode 100644 index 000000000..9465c8873 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview.py @@ -0,0 +1,143 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import get_link_to_form + +from erpnext.setup.doctype.employee.employee import get_employee_email + + +class ExitInterview(Document): + def validate(self): + self.validate_relieving_date() + self.validate_duplicate_interview() + self.set_employee_email() + + def validate_relieving_date(self): + if not frappe.db.get_value("Employee", self.employee, "relieving_date"): + frappe.throw( + _("Please set the relieving date for employee {0}").format( + get_link_to_form("Employee", self.employee) + ), + title=_("Relieving Date Missing"), + ) + + def validate_duplicate_interview(self): + doc = frappe.db.exists( + "Exit Interview", {"employee": self.employee, "name": ("!=", self.name), "docstatus": ("!=", 2)} + ) + if doc: + frappe.throw( + _("Exit Interview {0} already exists for Employee: {1}").format( + get_link_to_form("Exit Interview", doc), frappe.bold(self.employee) + ), + frappe.DuplicateEntryError, + ) + + def set_employee_email(self): + employee = frappe.get_doc("Employee", self.employee) + self.email = get_employee_email(employee) + + def on_submit(self): + if self.status != "Completed": + frappe.throw(_("Only Completed documents can be submitted")) + + self.update_interview_date_in_employee() + + def on_cancel(self): + self.update_interview_date_in_employee() + self.db_set("status", "Cancelled") + + def on_discard(self): + self.db_set("status", "Cancelled") + + def update_interview_date_in_employee(self): + if self.docstatus == 1: + frappe.db.set_value("Employee", self.employee, "held_on", self.date) + elif self.docstatus == 2: + frappe.db.set_value("Employee", self.employee, "held_on", None) + + +@frappe.whitelist() +def send_exit_questionnaire(interviews): + interviews = get_interviews(interviews) + validate_questionnaire_settings() + + email_success = [] + email_failure = [] + + for exit_interview in interviews: + interview = frappe.get_doc("Exit Interview", exit_interview.get("name")) + if interview.get("questionnaire_email_sent"): + continue + + employee = frappe.get_doc("Employee", interview.employee) + email = get_employee_email(employee) + + context = interview.as_dict() + context.update(employee.as_dict()) + template_name = frappe.db.get_single_value("HR Settings", "exit_questionnaire_notification_template") + template = frappe.get_doc("Email Template", template_name) + + if email: + frappe.sendmail( + recipients=email, + subject=template.subject, + message=frappe.render_template(template.response, context), + reference_doctype=interview.doctype, + reference_name=interview.name, + ) + interview.db_set("questionnaire_email_sent", 1) + interview.notify_update() + email_success.append(email) + else: + email_failure.append(get_link_to_form("Employee", employee.name)) + + show_email_summary(email_success, email_failure) + + +def get_interviews(interviews): + import json + + if isinstance(interviews, str): + interviews = json.loads(interviews) + + if not len(interviews): + frappe.throw(_("At least one interview has to be selected.")) + + return interviews + + +def validate_questionnaire_settings(): + settings = frappe.db.get_value( + "HR Settings", + "HR Settings", + ["exit_questionnaire_web_form", "exit_questionnaire_notification_template"], + as_dict=True, + ) + + if not settings.exit_questionnaire_web_form or not settings.exit_questionnaire_notification_template: + frappe.throw( + _("Please set {0} and {1} in {2}.").format( + frappe.bold(_("Exit Questionnaire Web Form")), + frappe.bold(_("Notification Template")), + get_link_to_form("HR Settings", "HR Settings"), + ), + title=_("Settings Missing"), + ) + + +def show_email_summary(email_success, email_failure): + message = "" + if email_success: + message += _("Sent Successfully: {0}").format(", ".join(email_success)) + if message and email_failure: + message += "

    " + if email_failure: + message += _("Sending Failed due to missing email information for employee(s): {1}").format( + ", ".join(email_failure) + ) + + frappe.msgprint(message, title=_("Exit Questionnaire"), indicator="blue", is_minimizable=True, wide=True) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview_list.js new file mode 100644 index 000000000..936e5d825 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_interview_list.js @@ -0,0 +1,27 @@ +frappe.listview_settings["Exit Interview"] = { + has_indicator_for_draft: 1, + get_indicator: function (doc) { + let status_color = { + Pending: "orange", + Scheduled: "yellow", + Completed: "green", + Cancelled: "red", + }; + return [__(doc.status), status_color[doc.status], "status,=," + doc.status]; + }, + + onload: function (listview) { + if (frappe.boot.user.can_write.includes("Exit Interview")) { + listview.page.add_action_item(__("Send Exit Questionnaires"), function () { + const interviews = listview.get_checked_items(); + frappe.call({ + method: "hrms.hr.doctype.exit_interview.exit_interview.send_exit_questionnaire", + freeze: true, + args: { + interviews: interviews, + }, + }); + }); + } + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html b/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html new file mode 100644 index 000000000..e8da2b586 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html @@ -0,0 +1,15 @@ +

    Exit Questionnaire

    +
    + +

    + Dear {{ employee_name }}, +

    + + Thank you for the contribution you have made during your time at {{ company }}. We value your opinion and welcome the feedback on your experience working with us. + Request you to take out a few minutes to fill up this Exit Questionnaire. + {% set web_form = frappe.db.get_single_value('HR Settings','exit_questionnaire_web_form') %} + {% set web_form_link = frappe.utils.get_url(uri=frappe.db.get_value('Web Form', web_form, 'route')) %} + +

    + {{ _('Submit Now') }} +

    diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/test_exit_interview.py b/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/test_exit_interview.py new file mode 100644 index 000000000..bfe202fe0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/exit_interview/test_exit_interview.py @@ -0,0 +1,134 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import os + +import frappe +from frappe import _ +from frappe.core.doctype.user_permission.test_user_permission import create_user +from frappe.tests import IntegrationTestCase +from frappe.tests.test_webform import create_custom_doctype, create_webform +from frappe.utils import getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.exit_interview.exit_interview import send_exit_questionnaire + + +class TestExitInterview(IntegrationTestCase): + def setUp(self): + frappe.db.sql("delete from `tabExit Interview`") + + def test_duplicate_interview(self): + employee = make_employee("employeeexitint1@example.com") + frappe.db.set_value("Employee", employee, "relieving_date", getdate()) + interview = create_exit_interview(employee) + + doc = frappe.copy_doc(interview) + self.assertRaises(frappe.DuplicateEntryError, doc.save) + + def test_relieving_date_validation(self): + employee = make_employee("employeeexitint2@example.com") + # unset relieving date + frappe.db.set_value("Employee", employee, "relieving_date", None) + + interview = create_exit_interview(employee, save=False) + self.assertRaises(frappe.ValidationError, interview.save) + + # set relieving date + frappe.db.set_value("Employee", employee, "relieving_date", getdate()) + interview = create_exit_interview(employee) + self.assertTrue(interview.name) + + def test_interview_date_updated_in_employee_master(self): + employee = make_employee("employeeexit3@example.com") + frappe.db.set_value("Employee", employee, "relieving_date", getdate()) + + interview = create_exit_interview(employee) + interview.status = "Completed" + interview.employee_status = "Exit Confirmed" + + # exit interview date updated on submit + interview.submit() + self.assertEqual(frappe.db.get_value("Employee", employee, "held_on"), interview.date) + + # exit interview reset on cancel + interview.reload() + interview.cancel() + self.assertEqual(frappe.db.get_value("Employee", employee, "held_on"), None) + + def test_send_exit_questionnaire(self): + create_custom_doctype() + create_webform() + template = create_notification_template() + + webform = frappe.db.get_all("Web Form", limit=1) + frappe.db.set_single_value( + "HR Settings", + { + "exit_questionnaire_web_form": webform[0].name, + "exit_questionnaire_notification_template": template, + }, + ) + + employee = make_employee("employeeexit3@example.com") + frappe.db.set_value("Employee", employee, "relieving_date", getdate()) + + interview = create_exit_interview(employee) + send_exit_questionnaire([interview]) + + email_queue = frappe.db.get_all("Email Queue", ["name", "message"], limit=1) + self.assertTrue("Subject: Exit Questionnaire Notification" in email_queue[0].message) + + def test_status_on_discard(self): + employee = make_employee("test_status@example.com") + frappe.db.set_value("Employee", employee, "relieving_date", getdate()) + interview = create_exit_interview(employee) + interview.discard() + interview.reload() + self.assertEqual(interview.status, "Cancelled") + + def tearDown(self): + frappe.db.rollback() + + +def create_exit_interview(employee, save=True): + interviewer = create_user("test_exit_interviewer@example.com") + + doc = frappe.get_doc( + { + "doctype": "Exit Interview", + "employee": employee, + "company": "_Test Company", + "status": "Pending", + "date": getdate(), + "interviewers": [{"interviewer": interviewer.name}], + "interview_summary": "Test", + } + ) + + if save: + return doc.insert() + return doc + + +def create_notification_template(): + template = frappe.db.exists("Email Template", _("Exit Questionnaire Notification")) + if not template: + base_path = frappe.get_app_path("erpnext", "hr", "doctype") + response = frappe.read_file( + os.path.join(base_path, "exit_interview/exit_questionnaire_notification_template.html") + ) + + template = frappe.get_doc( + { + "doctype": "Email Template", + "name": _("Exit Questionnaire Notification"), + "response": response, + "subject": _("Exit Questionnaire Notification"), + "owner": frappe.session.user, + } + ).insert(ignore_permissions=True) + template = template.name + + return template diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expected_skill_set/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expected_skill_set/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expected_skill_set/expected_skill_set.json b/apps/erpnext/src/hrms/hrms/hr/doctype/expected_skill_set/expected_skill_set.json new file mode 100644 index 000000000..9f8c94909 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expected_skill_set/expected_skill_set.json @@ -0,0 +1,41 @@ +{ + "actions": [], + "creation": "2021-04-12 13:05:06.741330", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "skill", + "description" + ], + "fields": [ + { + "fieldname": "skill", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Skill", + "options": "Skill", + "reqd": 1 + }, + { + "fetch_from": "skill.description", + "fieldname": "description", + "fieldtype": "Small Text", + "in_list_view": 1, + "label": "Description" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:43.443774", + "modified_by": "Administrator", + "module": "HR", + "name": "Expected Skill Set", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expected_skill_set/expected_skill_set.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expected_skill_set/expected_skill_set.py new file mode 100644 index 000000000..0062ba91a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expected_skill_set/expected_skill_set.py @@ -0,0 +1,10 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class ExpectedSkillSet(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/README.md new file mode 100644 index 000000000..489029ce3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/README.md @@ -0,0 +1 @@ +Amount claimed by Employee for expense made by the Employee on organization's behalf. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim.js b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim.js new file mode 100644 index 000000000..7bfe6935d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim.js @@ -0,0 +1,651 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.provide("hrms.hr"); +frappe.provide("erpnext.accounts.dimensions"); + +frappe.ui.form.on("Expense Claim", { + setup: function (frm) { + frm.set_query("employee_advance", "advances", function () { + return { + filters: [ + ["docstatus", "=", 1], + ["employee", "=", frm.doc.employee], + ["paid_amount", ">", 0], + ["status", "not in", ["Claimed", "Returned", "Partly Claimed and Returned"]], + ], + }; + }); + + frm.set_query("expense_approver", function () { + return { + query: "hrms.hr.doctype.department_approver.department_approver.get_approvers", + filters: { + employee: frm.doc.employee, + doctype: frm.doc.doctype, + }, + }; + }); + + frm.set_query("account_head", "taxes", function () { + return { + filters: [ + ["company", "=", frm.doc.company], + [ + "account_type", + "in", + ["Tax", "Chargeable", "Income Account", "Expenses Included In Valuation"], + ], + ], + }; + }); + + frm.set_query("payable_account", function () { + return { + filters: { + report_type: "Balance Sheet", + account_type: "Payable", + company: frm.doc.company, + account_currency: frm.doc.currency, + is_group: 0, + }, + }; + }); + + frm.set_query("task", function () { + return { + filters: { + project: frm.doc.project, + }, + }; + }); + + frm.set_query("employee", function () { + return { + query: "erpnext.controllers.queries.employee_query", + }; + }); + + frm.set_query("department", function () { + return { + filters: { + company: frm.doc.company, + }, + }; + }); + }, + + onload: function (frm) { + erpnext.accounts.dimensions.setup_dimension_filters(frm, frm.doctype); + + if (frm.doc.docstatus == 0) { + return frappe.call({ + method: "hrms.hr.doctype.leave_application.leave_application.get_mandatory_approval", + args: { + doctype: frm.doc.doctype, + }, + callback: function (r) { + if (!r.exc && r.message) { + frm.toggle_reqd("expense_approver", true); + } + }, + }); + } + + frm.trigger("update_fields_label"); + frm.trigger("update_child_fields_label"); + }, + + refresh: function (frm) { + frm.trigger("toggle_fields"); + frm.trigger("add_ledger_buttons"); + + if ( + frm.doc.docstatus === 1 && + frm.doc.status !== "Paid" && + frm.doc.approval_status !== "Rejected" && + frappe.model.can_create("Payment Entry") + ) { + frm.add_custom_button( + __("Payment"), + function () { + frm.events.make_payment_entry(frm); + }, + __("Create"), + ); + } + frm.trigger("set_form_buttons"); + frm.trigger("update_fields_label"); + frm.trigger("update_child_fields_label"); + if (frm.is_new()) { + frm.trigger("set_exchange_rate"); + } + + if (frm.doc.advances && frm.doc.total_exchange_gain_loss != 0) { + frm.add_custom_button( + __("View Exchange Gain/Loss Journals"), + function () { + frappe.set_route("List", "Journal Entry", { + voucher_type: "Exchange Gain Or Loss", + reference_name: frm.doc.name, + }); + }, + __("View"), + ); + } + }, + + validate: function (frm) { + frm.trigger("calculate_total"); + frm.events.set_child_cost_center(frm); + }, + + currency: function (frm) { + frm.trigger("update_fields_label"); + frm.trigger("update_child_fields_label"); + frm.trigger("set_exchange_rate"); + }, + + set_exchange_rate: function (frm) { + if (frm.doc.currency) { + var from_currency = frm.doc.currency; + var company_currency; + if (!frm.doc.company) { + company_currency = erpnext.get_currency(frappe.defaults.get_default("Company")); + } else { + company_currency = erpnext.get_currency(frm.doc.company); + } + if (from_currency != company_currency) { + frappe.call({ + method: "erpnext.setup.utils.get_exchange_rate", + args: { + from_currency: from_currency, + to_currency: company_currency, + }, + callback: function (r) { + frm.set_value("exchange_rate", flt(r.message)); + frm.set_df_property("exchange_rate", "hidden", 0); + frm.set_df_property( + "exchange_rate", + "description", + "1 " + frm.doc.currency + " = [?] " + company_currency, + ); + }, + }); + } else { + frm.set_value("exchange_rate", 1.0); + frm.set_df_property("exchange_rate", "hidden", 1); + frm.set_df_property("exchange_rate", "description", ""); + } + frm.refresh_fields(); + } + }, + + update_fields_label: function (frm) { + var company_currency = erpnext.get_currency(frm.doc.company); + frm.set_currency_labels( + [ + "base_total_sanctioned_amount", + "base_total_taxes_and_charges", + "base_total_advance_amount", + "base_grand_total", + "base_total_claimed_amount", + ], + company_currency, + ); + + frm.set_currency_labels( + [ + "total_sanctioned_amount", + "total_taxes_and_charges", + "total_advance_amount", + "grand_total", + "total_claimed_amount", + ], + frm.doc.currency, + ); + + // toggle fields + frm.toggle_display( + [ + "base_total_sanctioned_amount", + "base_total_advance_amount", + "base_grand_total", + "base_total_claimed_amount", + "base_total_taxes_and_charges", + ], + frm.doc.currency != company_currency, + ); + }, + + update_child_fields_label: function (frm) { + var from_currency = frm.doc.currency; + var company_currency = erpnext.get_currency(frm.doc.company); + // expenses table + frm.set_currency_labels(["amount", "sanctioned_amount"], from_currency, "expenses"); + frm.set_currency_labels( + ["base_amount", "base_sanctioned_amount"], + company_currency, + "expenses", + ); + + // advances table + frm.set_currency_labels( + ["advance_paid", "unclaimed_amount", "allocated_amount"], + from_currency, + "advances", + ); + frm.set_currency_labels( + ["base_advance_paid", "base_unclaimed_amount", "base_allocated_amount"], + company_currency, + "advances", + ); + + // taxes table + frm.set_currency_labels(["tax_amount", "total"], from_currency, "taxes"); + frm.set_currency_labels(["base_tax_amount", "base_total"], company_currency, "taxes"); + }, + + add_ledger_buttons: function (frm) { + if (frm.doc.docstatus > 0 && frm.doc.approval_status !== "Rejected") { + frm.add_custom_button( + __("Accounting Ledger"), + function () { + frappe.route_options = { + voucher_no: frm.doc.name, + company: frm.doc.company, + from_date: frm.doc.posting_date, + to_date: moment(frm.doc.modified).format("YYYY-MM-DD"), + group_by: "", + show_cancelled_entries: frm.doc.docstatus === 2, + }; + frappe.set_route("query-report", "General Ledger"); + }, + __("View"), + ); + } + + if (!frm.doc.__islocal && frm.doc.docstatus === 1) { + let entry_doctype, entry_reference_doctype, entry_reference_name; + if (frm.doc.__onload.make_payment_via_journal_entry) { + entry_doctype = "Journal Entry"; + entry_reference_doctype = "Journal Entry Account.reference_type"; + entry_reference_name = "Journal Entry.reference_name"; + } else { + entry_doctype = "Payment Entry"; + entry_reference_doctype = "Payment Entry Reference.reference_doctype"; + entry_reference_name = "Payment Entry Reference.reference_name"; + } + + if ( + cint(frm.doc.total_amount_reimbursed) > 0 && + frappe.model.can_read(entry_doctype) + ) { + // nosemgrep: frappe-semgrep-rules.rules.frappe-cur-frm-usage + frm.add_custom_button( + __("Bank Entries"), + function () { + frappe.route_options = { + party_type: "Employee", + party: frm.doc.employee, + company: frm.doc.company, + }; + frappe.set_route("List", entry_doctype); + }, + __("View"), + ); + } + } + }, + + calculate_total: function (frm) { + let total_claimed_amount = 0; + let total_sanctioned_amount = 0; + + frm.doc.expenses.forEach((row) => { + total_claimed_amount += row.amount; + total_sanctioned_amount += row.sanctioned_amount; + }); + + frm.set_value( + "total_claimed_amount", + flt(total_claimed_amount, precision("total_claimed_amount")), + ); + frm.set_value( + "total_sanctioned_amount", + flt(total_sanctioned_amount, precision("total_sanctioned_amount")), + ); + + frm.doc.expenses.forEach((row) => { + set_in_company_currency(frm, row, ["amount", "sanctioned_amount"]); + }); + frm.doc.advances.forEach((row) => { + set_in_company_currency(frm, row, ["allocated_amount"]); + set_in_company_currency(frm, row, ["unclaimed_amount"], row.exchange_rate); + }); + }, + + calculate_grand_total: function (frm) { + var grand_total = + flt(frm.doc.total_sanctioned_amount) + + flt(frm.doc.total_taxes_and_charges) - + flt(frm.doc.total_advance_amount); + frm.set_value("grand_total", grand_total); + set_in_company_currency(frm, frm.doc, [ + "total_sanctioned_amount", + "total_advance_amount", + "grand_total", + "total_claimed_amount", + "total_taxes_and_charges", + ]); + frm.refresh_fields(); + }, + + grand_total: function (frm) { + frm.trigger("update_employee_advance_claimed_amount"); + }, + + update_employee_advance_claimed_amount: function (frm) { + let amount_to_be_allocated = + flt(frm.doc.total_sanctioned_amount) + flt(frm.doc.total_taxes_and_charges); + $.each(frm.doc.advances || [], function (i, advance) { + if (amount_to_be_allocated >= advance.unclaimed_amount - advance.return_amount) { + advance.allocated_amount = + frm.doc.advances[i].unclaimed_amount - frm.doc.advances[i].return_amount; + amount_to_be_allocated -= advance.allocated_amount; + } else { + advance.allocated_amount = amount_to_be_allocated; + amount_to_be_allocated = 0; + } + set_in_company_currency(frm, advance, ["allocated_amount"]); + frm.refresh_field("advances"); + }); + }, + make_payment_entry: function (frm) { + let method = "hrms.overrides.employee_payment_entry.get_payment_entry_for_employee"; + if (frm.doc.__onload && frm.doc.__onload.make_payment_via_journal_entry) { + method = "hrms.hr.doctype.expense_claim.expense_claim.make_bank_entry"; + } + return frappe.call({ + method: method, + args: { + dt: frm.doc.doctype, + dn: frm.doc.name, + }, + callback: function (r) { + var doclist = frappe.model.sync(r.message); + frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + }, + }); + }, + + company: function (frm) { + erpnext.accounts.dimensions.update_dimension(frm, frm.doctype); + var expenses = frm.doc.expenses; + for (var i = 0; i < expenses.length; i++) { + var expense = expenses[i]; + if (!expense.expense_type) { + continue; + } + frappe.call({ + method: "hrms.hr.doctype.expense_claim.expense_claim.get_expense_claim_account_and_cost_center", + args: { + expense_claim_type: expense.expense_type, + company: frm.doc.company, + }, + callback: function (r) { + if (r.message) { + expense.default_account = r.message.account; + expense.cost_center = r.message.cost_center; + } + }, + }); + } + }, + + is_paid: function (frm) { + frm.trigger("toggle_fields"); + }, + + toggle_fields: function (frm) { + frm.toggle_reqd("mode_of_payment", frm.doc.is_paid); + }, + + employee: function (frm) { + frm.events.get_advances(frm); + }, + + cost_center: function (frm) { + frm.events.set_child_cost_center(frm); + }, + + mode_of_payment: async function (frm) { + if (frm.doc.mode_of_payment) { + var mode_of_payment_type = ( + await frappe.db.get_value("Mode of Payment", frm.doc.mode_of_payment, "type") + )?.message?.type; + frm.set_query("bank_or_cash_account", function () { + return { + filters: [ + ["account_type", "=", mode_of_payment_type], + ["company", "=", frm.doc.company], + ["is_group", "=", 0], + ["account_currency", "=", frm.doc.currency], + ], + }; + }); + } + }, + + set_child_cost_center: function (frm) { + (frm.doc.expenses || []).forEach(function (d) { + if (!d.cost_center) { + d.cost_center = frm.doc.cost_center; + } + }); + }, + + get_taxes: function (frm) { + if (!frm.doc.taxes.length) return; + + frappe.call({ + method: "calculate_taxes", + doc: frm.doc, + callback: () => { + refresh_field("taxes"); + frm.trigger("update_employee_advance_claimed_amount"); + }, + }); + }, + + get_advances: function (frm) { + frappe.model.clear_table(frm.doc, "advances"); + if (frm.doc.employee) { + return frappe.call({ + method: "hrms.hr.doctype.expense_claim.expense_claim.get_advances", + args: { + expense_claim: frm.doc, + }, + callback: function (r, rt) { + if (r.message) { + $.each(r.message, function (i, d) { + var row = frappe.model.add_child( + frm.doc, + "Expense Claim Advance", + "advances", + ); + row.employee_advance = d.employee_advance; + row.posting_date = d.posting_date; + row.advance_account = d.advance_account; + row.advance_paid = d.advance_paid; + row.unclaimed_amount = d.unclaimed_amount; + row.return_amount = flt(d.return_amount); + row.allocated_amount = d.allocated_amount; + row.exchange_rate = d.exchange_rate; + row.payment_entry = d.payment_entry; + row.payment_entry_reference = d.payment_entry_reference; + }); + refresh_field("advances"); + } + }, + }); + } + }, + set_form_buttons: async function (frm) { + let self_approval_not_allowed = frm.doc.__onload + ? frm.doc.__onload.self_expense_approval_not_allowed + : 0; + let current_employee = await hrms.get_current_employee(); + if ( + frm.doc.docstatus === 0 && + !frm.is_dirty() && + !frappe.model.has_workflow(frm.doctype) + ) { + if (self_approval_not_allowed && current_employee == frm.doc.employee) { + frm.set_df_property("status", "read_only", 1); + frm.trigger("show_save_button"); + } + } + }, + show_save_button: function (frm) { + frm.page.set_primary_action("Save", () => { + frm.save(); + }); + $(".form-message").prop("hidden", true); + }, +}); + +frappe.ui.form.on("Expense Claim Detail", { + expense_type: function (frm, cdt, cdn) { + var d = locals[cdt][cdn]; + if (!frm.doc.company) { + d.expense_type = ""; + frappe.msgprint(__("Please set the Company")); + this.frm.refresh_fields(); + return; + } + + if (!d.expense_type) { + return; + } + return frappe.call({ + method: "hrms.hr.doctype.expense_claim.expense_claim.get_expense_claim_account_and_cost_center", + args: { + expense_claim_type: d.expense_type, + company: frm.doc.company, + }, + callback: function (r) { + if (r.message) { + d.default_account = r.message.account; + d.cost_center = r.message.cost_center; + } + }, + }); + }, + + amount: function (frm, cdt, cdn) { + var child = locals[cdt][cdn]; + frappe.model.set_value(cdt, cdn, "sanctioned_amount", child.amount); + set_in_company_currency(frm, child, ["amount", "sanctioned_amount"]); + }, + + sanctioned_amount: function (frm, cdt, cdn) { + frm.trigger("calculate_total"); + frm.trigger("get_taxes"); + frm.trigger("calculate_grand_total"); + set_in_company_currency(frm, locals[cdt][cdn], ["sanctioned_amount"]); + }, + + cost_center: function (frm, cdt, cdn) { + erpnext.utils.copy_value_in_all_rows(frm.doc, cdt, cdn, "expenses", "cost_center"); + }, +}); + +frappe.ui.form.on("Expense Claim Advance", { + employee_advance: function (frm, cdt, cdn) { + var child = locals[cdt][cdn]; + if (!frm.doc.employee) { + frappe.msgprint(__("Select an employee to get the employee advance.")); + frm.doc.advances = []; + refresh_field("advances"); + } else { + return frappe.call({ + method: "hrms.hr.doctype.expense_claim.expense_claim.get_advances", + args: { + expense_claim: frm.doc, + advance_id: child.employee_advance, + }, + callback: function (r, rt) { + if (r.message) { + child.employee_advance = r.message[0].employee_advance; + child.posting_date = r.message[0].posting_date; + child.advance_account = r.message[0].advance_account; + child.advance_paid = r.message[0].advance_paid; + child.unclaimed_amount = r.message[0].unclaimed_amount; + child.return_amount = flt(r.message[0].return_amount); + child.allocated_amount = flt(r.message[0].allocated_amount); + child.exchange_rate = r.message[0].exchange_rate; + child.payment_entry = r.message[0].payment_entry; + child.payment_entry_reference = r.message[0].payment_entry_reference; + set_in_company_currency( + frm, + child, + ["advance_paid", "unclaimed_amount"], + r.message[0].exchange_rate, + ); + set_in_company_currency(frm, child, ["allocated_amount"]); + refresh_field("advances"); + } + }, + }); + } + frm.trigger("calculate_grand_total"); + }, +}); + +frappe.ui.form.on("Expense Taxes and Charges", { + account_head: function (frm, cdt, cdn) { + var child = locals[cdt][cdn]; + if (child.account_head && !child.description) { + // set description from account head + child.description = child.account_head.split(" - ").slice(0, -1).join(" - "); + refresh_field("taxes"); + } + }, + + calculate_total_tax: function (frm, cdt, cdn) { + var child = locals[cdt][cdn]; + child.total = flt(frm.doc.total_sanctioned_amount) + flt(child.tax_amount); + frm.trigger("calculate_tax_amount", cdt, cdn); + }, + + calculate_tax_amount: function (frm) { + frm.doc.total_taxes_and_charges = 0; + (frm.doc.taxes || []).forEach(function (d) { + frm.doc.total_taxes_and_charges += d.tax_amount; + set_in_company_currency(frm, d, ["tax_amount", "total"]); + }); + frm.trigger("calculate_grand_total"); + }, + + rate: function (frm, cdt, cdn) { + var child = locals[cdt][cdn]; + if (!child.amount) { + child.tax_amount = flt(frm.doc.total_sanctioned_amount) * (flt(child.rate) / 100); + } + frm.trigger("calculate_total_tax", cdt, cdn); + }, + + tax_amount: function (frm, cdt, cdn) { + frm.trigger("calculate_total_tax", cdt, cdn); + }, +}); + +async function set_in_company_currency(frm, doc, fields, exchange_rate = frm.doc.exchange_rate) { + await $.each(fields, function (i, f) { + doc["base_" + f] = flt( + flt(doc[f], precision(f, doc)) * exchange_rate, + precision("base_" + f, doc), + ); + }); +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim.json b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim.json new file mode 100644 index 000000000..fd04ec9c3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim.json @@ -0,0 +1,637 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "naming_series:", + "creation": "2013-01-10 16:34:14", + "doctype": "DocType", + "document_type": "Setup", + "engine": "InnoDB", + "field_order": [ + "expenses_and_advances_tab", + "naming_series", + "employee", + "employee_name", + "department", + "company", + "column_break_5", + "expense_approver", + "approval_status", + "currency_section", + "currency", + "column_break_imlz", + "exchange_rate", + "expense_details", + "expenses", + "taxes_and_charges_sb", + "taxes", + "advance_payments_sb", + "advances", + "transactions_section", + "column_break_nexp", + "base_total_sanctioned_amount", + "base_total_advance_amount", + "base_grand_total", + "base_total_claimed_amount", + "base_total_taxes_and_charges", + "column_break_quih", + "total_sanctioned_amount", + "total_advance_amount", + "grand_total", + "total_claimed_amount", + "total_taxes_and_charges", + "total_amount_reimbursed", + "gain_loss_section", + "total_exchange_gain_loss", + "gain_loss_account", + "accounting_details_tab", + "accounting_details", + "posting_date", + "is_paid", + "mode_of_payment", + "bank_or_cash_account", + "payable_account", + "column_break_24", + "clearance_date", + "remark", + "accounting_dimensions_section", + "project", + "dimension_col_break", + "cost_center", + "more_info_tab", + "more_details", + "status", + "task", + "amended_from", + "column_break_xdzn", + "delivery_trip", + "vehicle_log", + "dashboard_tab" + ], + "fields": [ + { + "fieldname": "naming_series", + "fieldtype": "Select", + "label": "Series", + "no_copy": 1, + "options": "HR-EXP-.YYYY.-", + "print_hide": 1, + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_global_search": 1, + "in_standard_filter": 1, + "label": "From Employee", + "oldfieldname": "employee", + "oldfieldtype": "Link", + "options": "Employee", + "reqd": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "in_global_search": 1, + "label": "Employee Name", + "oldfieldname": "employee_name", + "oldfieldtype": "Data", + "read_only": 1, + "width": "150px" + }, + { + "fetch_from": "employee.department", + "fetch_if_empty": 1, + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department" + }, + { + "fieldname": "column_break_5", + "fieldtype": "Column Break" + }, + { + "fieldname": "expense_approver", + "fieldtype": "Link", + "label": "Expense Approver", + "options": "User" + }, + { + "default": "Draft", + "fieldname": "approval_status", + "fieldtype": "Select", + "label": "Approval Status", + "no_copy": 1, + "options": "Draft\nApproved\nRejected\nCancelled", + "permlevel": 1, + "search_index": 1 + }, + { + "fieldname": "total_claimed_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Total Claimed Amount", + "no_copy": 1, + "oldfieldname": "total_claimed_amount", + "oldfieldtype": "Currency", + "options": "currency", + "read_only": 1, + "width": "160px" + }, + { + "fieldname": "total_sanctioned_amount", + "fieldtype": "Currency", + "label": "Total Sanctioned Amount", + "no_copy": 1, + "oldfieldname": "total_sanctioned_amount", + "oldfieldtype": "Currency", + "options": "currency", + "read_only": 1, + "width": "160px" + }, + { + "default": "0", + "depends_on": "eval:(doc.docstatus==0 || doc.is_paid)", + "fieldname": "is_paid", + "fieldtype": "Check", + "label": "Is Paid" + }, + { + "fieldname": "expense_details", + "fieldtype": "Section Break", + "oldfieldtype": "Section Break" + }, + { + "fieldname": "expenses", + "fieldtype": "Table", + "label": "Expenses", + "oldfieldname": "expense_voucher_details", + "oldfieldtype": "Table", + "options": "Expense Claim Detail", + "reqd": 1 + }, + { + "default": "Today", + "fieldname": "posting_date", + "fieldtype": "Date", + "in_standard_filter": 1, + "label": "Posting Date", + "oldfieldname": "posting_date", + "oldfieldtype": "Date", + "reqd": 1 + }, + { + "fieldname": "vehicle_log", + "fieldtype": "Link", + "label": "Vehicle Log", + "options": "Vehicle Log", + "read_only": 1 + }, + { + "allow_on_submit": 1, + "fieldname": "project", + "fieldtype": "Link", + "label": "Project", + "options": "Project" + }, + { + "fieldname": "task", + "fieldtype": "Link", + "label": "Task", + "options": "Task", + "remember_last_selected_value": 1 + }, + { + "fieldname": "total_amount_reimbursed", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Total Amount Reimbursed", + "no_copy": 1, + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "remark", + "fieldtype": "Small Text", + "label": "Remark", + "no_copy": 1, + "oldfieldname": "remark", + "oldfieldtype": "Small Text" + }, + { + "fieldname": "accounting_details", + "fieldtype": "Section Break", + "label": "Accounting Details" + }, + { + "fetch_from": "employee.company", + "fetch_if_empty": 1, + "fieldname": "company", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Company", + "oldfieldname": "company", + "oldfieldtype": "Link", + "options": "Company", + "reqd": 1 + }, + { + "depends_on": "is_paid", + "fieldname": "mode_of_payment", + "fieldtype": "Link", + "label": "Mode of Payment", + "options": "Mode of Payment" + }, + { + "fieldname": "clearance_date", + "fieldtype": "Date", + "label": "Clearance Date" + }, + { + "fieldname": "column_break_24", + "fieldtype": "Column Break" + }, + { + "fetch_from": "company.default_expense_claim_payable_account", + "fetch_if_empty": 1, + "fieldname": "payable_account", + "fieldtype": "Link", + "label": "Payable Account", + "options": "Account" + }, + { + "allow_on_submit": 1, + "fetch_from": "company.cost_center", + "fetch_if_empty": 1, + "fieldname": "cost_center", + "fieldtype": "Link", + "label": "Cost Center", + "options": "Cost Center" + }, + { + "fieldname": "more_details", + "fieldtype": "Section Break" + }, + { + "default": "Draft", + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Status", + "no_copy": 1, + "options": "Draft\nPaid\nUnpaid\nRejected\nSubmitted\nCancelled", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "label": "Amended From", + "no_copy": 1, + "oldfieldname": "amended_from", + "oldfieldtype": "Data", + "options": "Expense Claim", + "print_hide": 1, + "read_only": 1, + "report_hide": 1, + "width": "160px" + }, + { + "collapsible": 1, + "collapsible_depends_on": "eval:doc.advances?.length", + "fieldname": "advance_payments_sb", + "fieldtype": "Section Break", + "label": "Advance Payments" + }, + { + "fieldname": "advances", + "fieldtype": "Table", + "label": "Advances", + "options": "Expense Claim Advance" + }, + { + "fieldname": "total_advance_amount", + "fieldtype": "Currency", + "label": "Total Advance Amount", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "accounting_dimensions_section", + "fieldtype": "Section Break", + "label": "Accounting Dimensions" + }, + { + "fieldname": "dimension_col_break", + "fieldtype": "Column Break" + }, + { + "fieldname": "taxes", + "fieldtype": "Table", + "label": "Expense Taxes and Charges", + "options": "Expense Taxes and Charges" + }, + { + "fieldname": "transactions_section", + "fieldtype": "Section Break", + "label": "Totals" + }, + { + "fieldname": "grand_total", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Grand Total", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "total_taxes_and_charges", + "fieldtype": "Currency", + "label": "Total Taxes and Charges", + "options": "currency", + "read_only": 1 + }, + { + "depends_on": "eval: doc.delivery_trip", + "fieldname": "delivery_trip", + "fieldtype": "Link", + "label": "Delivery Trip", + "options": "Delivery Trip" + }, + { + "fieldname": "column_break_xdzn", + "fieldtype": "Column Break" + }, + { + "fieldname": "accounting_details_tab", + "fieldtype": "Tab Break", + "label": "Accounting" + }, + { + "fieldname": "more_info_tab", + "fieldtype": "Tab Break", + "label": "More Info" + }, + { + "fieldname": "dashboard_tab", + "fieldtype": "Tab Break", + "label": "Dashboard", + "show_dashboard": 1 + }, + { + "fieldname": "expenses_and_advances_tab", + "fieldtype": "Tab Break", + "label": "Expenses & Advances" + }, + { + "collapsible": 1, + "collapsible_depends_on": "eval:doc.taxes?.length", + "fieldname": "taxes_and_charges_sb", + "fieldtype": "Section Break", + "label": "Taxes & Charges", + "options": "Simple" + }, + { + "collapsible": 1, + "fieldname": "currency_section", + "fieldtype": "Section Break", + "label": "Currency" + }, + { + "depends_on": "eval:(doc.docstatus==1 || doc.employee)", + "fetch_from": "employee.salary_currency", + "fetch_if_empty": 1, + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "reqd": 1 + }, + { + "fieldname": "column_break_imlz", + "fieldtype": "Column Break" + }, + { + "depends_on": "currency", + "fieldname": "exchange_rate", + "fieldtype": "Float", + "label": "Exchange Rate", + "precision": "9", + "print_hide": 1, + "reqd": 1 + }, + { + "fieldname": "base_total_sanctioned_amount", + "fieldtype": "Currency", + "label": "Total Sanctioned Amount (Company Currency)", + "no_copy": 1, + "oldfieldname": "total_sanctioned_amount", + "oldfieldtype": "Currency", + "options": "Company:company:default_currency", + "read_only": 1, + "width": "160px" + }, + { + "fieldname": "base_grand_total", + "fieldtype": "Currency", + "label": "Grand Total (Company Currency)", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "fieldname": "column_break_nexp", + "fieldtype": "Column Break" + }, + { + "fieldname": "base_total_advance_amount", + "fieldtype": "Currency", + "label": "Total Advance Amount (Company Currency)", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "fieldname": "base_total_taxes_and_charges", + "fieldtype": "Currency", + "label": "Total Taxes and Charges (Company Currency)", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "fieldname": "base_total_claimed_amount", + "fieldtype": "Currency", + "label": "Total Claimed Amount (Company Currency)", + "no_copy": 1, + "oldfieldname": "total_claimed_amount", + "oldfieldtype": "Currency", + "options": "Company:company:default_currency", + "read_only": 1, + "width": "160px" + }, + { + "fieldname": "column_break_quih", + "fieldtype": "Column Break" + }, + { + "depends_on": "mode_of_payment", + "fieldname": "bank_or_cash_account", + "fieldtype": "Link", + "label": "Bank / Cash Account", + "options": "Account" + }, + { + "fieldname": "gain_loss_section", + "fieldtype": "Section Break", + "label": "Exchange Gain/Loss" + }, + { + "depends_on": "total_exchange_gain_loss", + "fieldname": "gain_loss_account", + "fieldtype": "Link", + "label": "Gain Loss Account", + "options": "Account" + }, + { + "depends_on": "total_exchange_gain_loss", + "fieldname": "total_exchange_gain_loss", + "fieldtype": "Currency", + "label": "Total Exchange Gain/Loss", + "options": "Company:company:default_currency", + "read_only": 1 + } + ], + "icon": "fa fa-money", + "idx": 1, + "is_submittable": 1, + "links": [], + "modified": "2025-11-24 11:45:16.354788", + "modified_by": "Administrator", + "module": "HR", + "name": "Expense Claim", + "naming_rule": "By \"Naming Series\" field", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Expense Approver", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "permlevel": 1, + "read": 1, + "role": "HR Manager", + "write": 1 + }, + { + "permlevel": 1, + "read": 1, + "role": "HR User", + "write": 1 + }, + { + "delete": 1, + "email": 1, + "permlevel": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Expense Approver", + "share": 1, + "write": 1 + }, + { + "email": 1, + "export": 1, + "permlevel": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "All", + "share": 1 + } + ], + "row_format": "Dynamic", + "search_fields": "employee,employee_name", + "show_name_in_global_search": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [ + { + "color": "Gray", + "title": "Draft" + }, + { + "color": "Blue", + "title": "Submitted" + }, + { + "color": "Red", + "title": "Cancelled" + }, + { + "color": "Green", + "title": "Paid" + }, + { + "color": "Yellow", + "title": "Unpaid" + }, + { + "color": "Red", + "title": "Rejected" + } + ], + "timeline_field": "employee", + "title_field": "employee_name" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim.py new file mode 100644 index 000000000..b485154c6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim.py @@ -0,0 +1,933 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe +from frappe import _ +from frappe.model.mapper import get_mapped_doc +from frappe.model.workflow import get_workflow_name +from frappe.query_builder.functions import Sum +from frappe.utils import cstr, flt, get_link_to_form, today + +import erpnext +from erpnext.accounts.doctype.repost_accounting_ledger.repost_accounting_ledger import ( + validate_docs_for_voucher_types, +) +from erpnext.accounts.doctype.sales_invoice.sales_invoice import get_bank_cash_account +from erpnext.accounts.general_ledger import make_gl_entries +from erpnext.accounts.utils import ( + create_gain_loss_journal, + unlink_ref_doc_from_payment_entries, + update_reference_in_payment_entry, +) +from erpnext.controllers.accounts_controller import AccountsController + +import hrms +from hrms.hr.utils import set_employee_name, share_doc_with_approver, validate_active_employee +from hrms.mixins.pwa_notifications import PWANotificationsMixin + + +class InvalidExpenseApproverError(frappe.ValidationError): + pass + + +class ExpenseApproverIdentityError(frappe.ValidationError): + pass + + +class MismatchError(frappe.ValidationError): + pass + + +class ExpenseClaim(AccountsController, PWANotificationsMixin): + def onload(self): + self.get("__onload").make_payment_via_journal_entry = frappe.db.get_single_value( + "Accounts Settings", "make_payment_via_journal_entry" + ) + self.set_onload( + "self_expense_approval_not_allowed", + frappe.db.get_single_value("HR Settings", "prevent_self_expense_approval"), + ) + + def after_insert(self): + self.notify_approver() + + def validate(self): + validate_active_employee(self.employee) + set_employee_name(self) + self.validate_sanctioned_amount() + self.calculate_total_amount() + self.validate_advances() + self.set_expense_account(validate=True) + self.set_default_accounting_dimension() + self.calculate_taxes() + self.set_status() + self.validate_company_and_department() + if self.task and not self.project: + self.project = frappe.db.get_value("Task", self.task, "project") + + def set_status(self, update=False): + status = {"0": "Draft", "1": "Submitted", "2": "Cancelled"}[cstr(self.docstatus or 0)] + + precision = self.precision("grand_total") + + if self.docstatus == 1: + if self.approval_status == "Approved": + if ( + # set as paid + self.is_paid + or ( + flt(self.total_sanctioned_amount) > 0 + and ( + # grand total is reimbursed + (flt(self.grand_total, precision) == flt(self.total_amount_reimbursed, precision)) + # grand total (to be paid) is 0 since linked advances already cover the claimed amount + or (flt(self.grand_total, precision) == 0) + ) + ) + ): + status = "Paid" + elif flt(self.total_sanctioned_amount) > 0: + status = "Unpaid" + elif self.approval_status == "Rejected": + status = "Rejected" + + if update: + self.db_set("status", status) + self.publish_update() + self.notify_update() + else: + self.status = status + + def validate_company_and_department(self): + if self.department: + company = frappe.db.get_value("Department", self.department, "company") + if company and self.company != company: + frappe.throw( + _("Department {0} does not belong to company: {1}").format(self.department, self.company), + exc=MismatchError, + ) + + def validate_for_self_approval(self): + self_expense_approval_not_allowed = frappe.db.get_single_value( + "HR Settings", "prevent_self_expense_approval" + ) + employee_user = frappe.db.get_value("Employee", self.employee, "user_id") + if ( + self_expense_approval_not_allowed + and employee_user == frappe.session.user + and not get_workflow_name("Expense Claim") + ): + frappe.throw(_("Self-approval for Expense Claims is not allowed")) + + def on_update(self): + share_doc_with_approver(self, self.expense_approver) + self.publish_update() + self.notify_approval_status() + + def after_delete(self): + self.publish_update() + + def on_discard(self): + self.db_set("status", "Cancelled") + self.db_set("approval_status", "Cancelled") + + def before_submit(self): + if not self.payable_account and not self.is_paid: + frappe.throw(_("Payable Account is mandatory to submit an Expense Claim")) + + self.validate_for_self_approval() + + def publish_update(self): + employee_user = frappe.db.get_value("Employee", self.employee, "user_id", cache=True) + hrms.refetch_resource("hrms:my_claims", employee_user) + hrms.refetch_resource("hrms:team_claims") + + def on_submit(self): + if self.approval_status == "Draft": + frappe.throw(_("""Approval Status must be 'Approved' or 'Rejected'""")) + + self.update_task_and_project() + self.make_gl_entries() + update_reimbursed_amount(self) + self.update_claimed_amount_in_employee_advance() + self.create_exchange_gain_loss_je() + if not frappe.db.get_single_value("Accounts Settings", "make_payment_via_journal_entry"): + self.update_against_claim_in_pe() + + def on_update_after_submit(self): + if self.check_if_fields_updated([], {"taxes": ("account_head",), "expenses": ()}): + validate_docs_for_voucher_types(["Expense Claim"]) + self.repost_accounting_entries() + + def on_cancel(self): + self.update_task_and_project() + self.ignore_linked_doctypes = ( + "GL Entry", + "Stock Ledger Entry", + "Payment Ledger Entry", + "Advance Payment Ledger Entry", + ) + if self.payable_account: + self.make_gl_entries(cancel=True) + + update_reimbursed_amount(self) + + self.update_claimed_amount_in_employee_advance() + self.publish_update() + unlink_ref_doc_from_payment_entries(self) + + def update_claimed_amount_in_employee_advance(self): + for d in self.get("advances"): + frappe.get_doc("Employee Advance", d.employee_advance).update_claimed_amount() + + def update_task_and_project(self): + if self.task: + task = frappe.get_doc("Task", self.task) + + ExpenseClaim = frappe.qb.DocType("Expense Claim") + task.total_expense_claim = ( + frappe.qb.from_(ExpenseClaim) + .select(Sum(ExpenseClaim.total_sanctioned_amount)) + .where( + (ExpenseClaim.docstatus == 1) + & (ExpenseClaim.project == self.project) + & (ExpenseClaim.task == self.task) + ) + ).run()[0][0] + + task.save() + elif self.project: + frappe.get_doc("Project", self.project).update_project() + + def make_gl_entries(self, cancel=False): + if flt(self.total_sanctioned_amount) > 0: + gl_entries = self.get_gl_entries() + make_gl_entries(gl_entries, cancel) + + def get_gl_entries(self): + gl_entry = [] + self.validate_account_details() + + # payable entry + if self.grand_total: + gl_entry.append( + self.get_gl_dict( + { + "account": self.payable_account, + "credit": self.base_grand_total, + "credit_in_account_currency": self.grand_total, + "credit_in_transaction_currency": self.grand_total, + "against": ",".join([d.default_account for d in self.expenses]), + "party_type": "Employee", + "party": self.employee, + "against_voucher_type": self.doctype, + "against_voucher": self.name, + "cost_center": self.cost_center, + "project": self.project, + "transaction_exchange_rate": self.exchange_rate, + }, + account_currency=self.currency, + item=self, + ) + ) + + # expense entries + for data in self.expenses: + gl_entry.append( + self.get_gl_dict( + { + "account": data.default_account, + "debit": data.base_sanctioned_amount, + "debit_in_account_currency": data.sanctioned_amount, + "debit_in_transaction_currency": data.sanctioned_amount, + "against": self.employee, + "cost_center": data.cost_center or self.cost_center, + "project": data.project or self.project, + "transaction_exchange_rate": self.exchange_rate, + }, + account_currency=self.currency, + item=data, + ) + ) + + make_payment_via_je = frappe.db.get_single_value( + "Accounts Settings", "make_payment_via_journal_entry" + ) + # gl entry against advance + for data in self.advances: + if data.allocated_amount: + gl_dict = { + "account": data.advance_account, + "credit": data.base_allocated_amount, + "credit_in_account_currency": data.allocated_amount, + "credit_in_transaction_currency": data.allocated_amount, + "against": ",".join([d.default_account for d in self.expenses]), + "party_type": "Employee", + "party": self.employee, + "voucher_type": self.doctype, + "voucher_no": self.name, + "advance_voucher_type": "Employee Advance", + "advance_voucher_no": data.employee_advance, + "transaction_exchange_rate": self.exchange_rate, + "cost_center": self.cost_center, + "project": self.project, + } + if not make_payment_via_je: + gl_dict.update( + { + "against_voucher_type": "Payment Entry", + "against_voucher": data.payment_entry, + } + ) + gl_entry.append(self.get_gl_dict(gl_dict, account_currency=self.currency)) + + self.add_tax_gl_entries(gl_entry) + + if self.is_paid and self.grand_total: + # payment entry + payment_account = get_bank_cash_account(self.mode_of_payment, self.company).get("account") + gl_entry.append( + self.get_gl_dict( + { + "account": payment_account, + "credit": self.base_grand_total, + "credit_in_account_currency": self.grand_total, + "credit_in_transaction_currency": self.grand_total, + "against": self.employee, + "transaction_exchange_rate": self.exchange_rate, + "cost_center": self.cost_center, + "project": self.project, + }, + account_currency=self.currency, + item=self, + ) + ) + + gl_entry.append( + self.get_gl_dict( + { + "account": self.payable_account, + "party_type": "Employee", + "party": self.employee, + "against": payment_account, + "debit": self.base_grand_total, + "debit_in_account_currency": self.grand_total, + "debit_in_transaction_currency": self.grand_total, + "against_voucher": self.name, + "against_voucher_type": self.doctype, + "transaction_exchange_rate": self.exchange_rate, + "cost_center": self.cost_center, + "project": self.project, + }, + account_currency=self.currency, + item=self, + ) + ) + + return gl_entry + + def add_tax_gl_entries(self, gl_entries): + # tax table gl entries + for tax in self.get("taxes"): + gl_entries.append( + self.get_gl_dict( + { + "account": tax.account_head, + "debit": tax.base_tax_amount, + "debit_in_account_currency": tax.tax_amount, + "debit_in_transaction_currency": tax.tax_amount, + "against": self.employee, + "cost_center": tax.cost_center or self.cost_center, + "project": tax.project or self.project, + "against_voucher_type": self.doctype, + "against_voucher": self.name, + "transaction_exchange_rate": self.exchange_rate, + }, + account_currency=self.currency, + item=tax, + ) + ) + + def set_default_accounting_dimension(self): + from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import ( + get_checks_for_pl_and_bs_accounts, + ) + + for dim in get_checks_for_pl_and_bs_accounts(): + if dim.company != self.company: + continue + + field = frappe.scrub(dim.fieldname) + + if self.meta.get_field(field): + if not self.get(field) and dim.mandatory_for_bs: + self.set(field, dim.default_dimension) + + for row in self.get("expenses") or []: + if row.meta.get_field(field): + if not row.get(field) and dim.mandatory_for_pl: + row.set(field, dim.default_dimension) + + def create_exchange_gain_loss_je(self): + if not self.advances: + return + + per_advance_gain_loss = 0 + total_advance_exchange_gain_loss = 0 + for advance in self.advances: + if advance.base_allocated_amount and self.base_total_advance_amount: + allocated_amount_in_adv_exchange_rate = flt(advance.allocated_amount) * flt( + advance.exchange_rate + ) + per_advance_gain_loss += flt( + (advance.base_allocated_amount - allocated_amount_in_adv_exchange_rate), + self.precision("total_exchange_gain_loss"), + ) + + if per_advance_gain_loss: + advance.db_set("exchange_gain_loss", per_advance_gain_loss) + total_advance_exchange_gain_loss += per_advance_gain_loss + if total_advance_exchange_gain_loss: + gain_loss_account = frappe.get_cached_value("Company", self.company, "exchange_gain_loss_account") + self.db_set( + { + "total_exchange_gain_loss": total_advance_exchange_gain_loss, + "gain_loss_account": gain_loss_account, + } + ) + dr_or_cr = "credit" if self.total_exchange_gain_loss > 0 else "debit" + reverse_dr_or_cr = "debit" if dr_or_cr == "credit" else "credit" + + je = create_gain_loss_journal( + company=self.company, + posting_date=today(), + party_type="Employee", + party=self.employee, + party_account=self.payable_account, + gain_loss_account=self.gain_loss_account, + exc_gain_loss=self.total_exchange_gain_loss, + dr_or_cr=dr_or_cr, + reverse_dr_or_cr=reverse_dr_or_cr, + ref1_dt=self.doctype, + ref1_dn=self.name, + ref1_detail_no=1, + ref2_dt=self.doctype, + ref2_dn=self.name, + ref2_detail_no=1, + cost_center=self.cost_center, + dimensions={}, + ) + frappe.msgprint( + _("All Exchange Gain/Loss amount of {0} has been booked through {1}").format( + self.name, + get_link_to_form("Journal Entry", je), + ) + ) + + def validate_account_details(self): + for data in self.expenses: + if not data.cost_center: + frappe.throw( + _("Row {0}: {1} is required in the expenses table to book an expense claim.").format( + data.idx, frappe.bold(_("Cost Center")) + ) + ) + + if self.is_paid: + if not self.mode_of_payment: + frappe.throw(_("Mode of payment is required to make a payment").format(self.employee)) + + def calculate_total_amount(self): + self.total_claimed_amount = 0 + self.total_sanctioned_amount = 0 + + for d in self.get("expenses"): + self.round_floats_in(d) + + if self.approval_status == "Rejected": + d.sanctioned_amount = 0.0 + + self.total_claimed_amount += flt(d.amount) + self.total_sanctioned_amount += flt(d.sanctioned_amount) + self.set_base_fields_amount(d, ["amount", "sanctioned_amount"]) + + self.set_base_fields_amount(self, ["total_sanctioned_amount", "total_claimed_amount"]) + + def set_base_fields_amount(self, doc, fields, exchange_rate=None): + """set values in base currency""" + for f in fields: + if doc.get(f): + val = flt( + flt(doc.get(f), doc.precision(f)) + * flt(exchange_rate if exchange_rate else self.exchange_rate), + doc.precision("base_" + f), + ) + doc.set("base_" + f, val) + + @frappe.whitelist() + def calculate_taxes(self): + self.total_taxes_and_charges = 0 + for tax in self.taxes: + self.round_floats_in(tax) + + if tax.rate: + tax.tax_amount = flt( + flt(self.total_sanctioned_amount) * flt(flt(tax.rate) / 100), + tax.precision("tax_amount"), + ) + + tax.total = flt(tax.tax_amount) + flt(self.total_sanctioned_amount) + self.total_taxes_and_charges += flt(tax.tax_amount) + self.set_base_fields_amount(tax, ["tax_amount", "total"]) + + self.round_floats_in(self, ["total_taxes_and_charges"]) + + self.grand_total = ( + flt(self.total_sanctioned_amount) + + flt(self.total_taxes_and_charges) + - flt(self.total_advance_amount) + ) + self.round_floats_in(self, ["grand_total"]) + self.set_base_fields_amount(self, ["grand_total"]) + + def validate_advances(self): + self.total_advance_amount = 0 + precision = self.precision("total_advance_amount") + + for d in self.get("advances"): + self.round_floats_in(d) + + adv_doc = frappe.db.get_value( + "Employee Advance", + d.employee_advance, + ["posting_date", "advance_account", "paid_amount"], + as_dict=1, + ) + aple_doc = frappe.db.get_value( + "Advance Payment Ledger Entry", + {"voucher_no": d.payment_entry, "event": "Submit", "delinked": 0}, + "amount", + ) + d.posting_date = adv_doc.posting_date + d.advance_account = adv_doc.advance_account + d.advance_paid = aple_doc if aple_doc else adv_doc.paid_amount + # d.unclaimed_amount = flt(ref_doc.paid_amount) - flt(ref_doc.claimed_amount) + + if d.allocated_amount and flt(d.allocated_amount) > flt( + flt(d.unclaimed_amount) - flt(d.return_amount), precision + ): + frappe.throw( + _("Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}").format( + d.idx, d.allocated_amount, d.unclaimed_amount + ) + ) + + self.total_advance_amount += flt(d.allocated_amount) + self.set_base_fields_amount(d, ["advance_paid", "unclaimed_amount"], d.exchange_rate) + self.set_base_fields_amount(d, ["allocated_amount"]) + + if self.total_advance_amount: + self.round_floats_in(self, ["total_advance_amount"]) + amount_with_taxes = flt( + (flt(self.total_sanctioned_amount, precision) + flt(self.total_taxes_and_charges, precision)), + precision, + ) + self.set_base_fields_amount(self, ["total_advance_amount"]) + + if flt(self.total_advance_amount, precision) > amount_with_taxes: + frappe.throw(_("Total advance amount cannot be greater than total sanctioned amount")) + + def validate_sanctioned_amount(self): + for d in self.get("expenses"): + if flt(d.sanctioned_amount) > flt(d.amount): + frappe.throw( + _("Sanctioned Amount cannot be greater than Claim Amount in Row {0}.").format(d.idx) + ) + + def set_expense_account(self, validate=False): + for expense in self.expenses: + if not expense.default_account or not validate: + expense.default_account = get_expense_claim_account(expense.expense_type, self.company)[ + "account" + ] + + def update_against_claim_in_pe(self): + reference_against_pe = [] + for advance in self.advances: + if flt(advance.allocated_amount) > 0: + args = frappe._dict( + { + "voucher_type": "Payment Entry", + "voucher_no": advance.payment_entry, + "against_voucher_type": self.doctype, + "against_voucher": self.name, + "voucher_detail_no": advance.payment_entry_reference, + "account": advance.advance_account, + "party_type": "Employee", + "party": self.employee, + "is_advance": "Yes", + "dr_or_cr": "credit_in_account_currency", + "unadjusted_amount": flt(advance.advance_paid), + "allocated_amount": flt(advance.allocated_amount), + "precision": advance.precision("advance_paid"), + "exchange_rate": advance.exchange_rate, + "difference_posting_date": advance.posting_date, + } + ) + reference_against_pe.append(args) + if reference_against_pe: + for pe_ref in reference_against_pe: + payment_entry = frappe.get_doc("Payment Entry", pe_ref.voucher_no) + update_reference_in_payment_entry(pe_ref, payment_entry, skip_ref_details_update_for_pe=True) + + +def update_reimbursed_amount(doc): + total_amount_reimbursed = get_total_reimbursed_amount(doc) + + doc.total_amount_reimbursed = total_amount_reimbursed + frappe.db.set_value("Expense Claim", doc.name, "total_amount_reimbursed", total_amount_reimbursed) + + doc.set_status(update=True) + + +def get_total_reimbursed_amount(doc): + if doc.is_paid: + # No need to check for cancelled state here as it will anyways update status as cancelled + return doc.grand_total + else: + JournalEntryAccount = frappe.qb.DocType("Journal Entry Account") + amount_via_jv = frappe.db.get_value( + "Journal Entry Account", + {"reference_name": doc.name, "docstatus": 1}, + Sum( + JournalEntryAccount.debit_in_account_currency - JournalEntryAccount.credit_in_account_currency + ), + ) + + amount_via_payment_entry = frappe.db.get_value( + "Payment Entry Reference", + {"reference_name": doc.name, "docstatus": 1}, + [{"SUM": "allocated_amount"}], + ) + + return flt(amount_via_jv) + flt(amount_via_payment_entry) + + +def get_outstanding_amount_for_claim(claim): + precision = frappe.get_precision("Expense Claim", "grand_total") + + if isinstance(claim, str): + claim = frappe.db.get_value( + "Expense Claim", + claim, + ( + "total_sanctioned_amount", + "total_taxes_and_charges", + "total_amount_reimbursed", + "total_advance_amount", + ), + as_dict=True, + ) + + outstanding_amt = ( + flt(claim.total_sanctioned_amount) + + flt(claim.total_taxes_and_charges) + - flt(claim.total_amount_reimbursed) + - flt(claim.total_advance_amount) + ) + + return flt(outstanding_amt, precision) + + +@frappe.whitelist() +def make_bank_entry(dt, dn): + from erpnext.accounts.doctype.journal_entry.journal_entry import get_default_bank_cash_account + + expense_claim = frappe.get_doc(dt, dn) + default_bank_cash_account = get_default_bank_cash_account(expense_claim.company, "Bank") + if not default_bank_cash_account: + default_bank_cash_account = get_default_bank_cash_account(expense_claim.company, "Cash") + + payable_amount = get_outstanding_amount_for_claim(expense_claim) + + je = frappe.new_doc("Journal Entry") + je.voucher_type = "Bank Entry" + je.company = expense_claim.company + je.remark = "Payment against Expense Claim: " + dn + + je.append( + "accounts", + { + "account": expense_claim.payable_account, + "debit_in_account_currency": payable_amount, + "reference_type": "Expense Claim", + "party_type": "Employee", + "party": expense_claim.employee, + "cost_center": erpnext.get_default_cost_center(expense_claim.company), + "reference_name": expense_claim.name, + }, + ) + + je.append( + "accounts", + { + "account": default_bank_cash_account.account, + "credit_in_account_currency": payable_amount, + "balance": default_bank_cash_account.balance, + "account_currency": default_bank_cash_account.account_currency, + "cost_center": erpnext.get_default_cost_center(expense_claim.company), + "account_type": default_bank_cash_account.account_type, + }, + ) + + return je.as_dict() + + +@frappe.whitelist() +def get_expense_claim_account_and_cost_center(expense_claim_type, company): + data = get_expense_claim_account(expense_claim_type, company) + cost_center = erpnext.get_default_cost_center(company) + + return {"account": data.get("account"), "cost_center": cost_center} + + +@frappe.whitelist() +def get_expense_claim_account(expense_claim_type, company): + account = frappe.db.get_value( + "Expense Claim Account", {"parent": expense_claim_type, "company": company}, "default_account" + ) + if not account: + frappe.throw( + _("Set the default account for the {0} {1}").format( + frappe.bold(_("Expense Claim Type")), + get_link_to_form("Expense Claim Type", expense_claim_type), + ) + ) + + return {"account": account} + + +@frappe.whitelist() +def get_advances(expense_claim, advance_id=None): + import json + + if isinstance(expense_claim, str): + expense_claim = frappe._dict(json.loads(expense_claim)) + expense_claim_doc = frappe.get_doc(expense_claim) + expense_claim_doc.advances = [] + + advance = frappe.qb.DocType("Employee Advance") + + query = frappe.qb.from_(advance).select( + advance.name.as_("employee_advance_name"), + advance.purpose, + advance.posting_date, + advance.paid_amount, + advance.claimed_amount, + advance.return_amount, + advance.advance_account, + ) + + if not advance_id: + query = query.where( + (advance.docstatus == 1) + & (advance.employee == expense_claim.employee) + & (advance.paid_amount > 0) + & (advance.status.notin(["Claimed", "Returned", "Partly Claimed and Returned"])) + ) + else: + query = query.where(advance.name == advance_id) + + advances = query.run(as_dict=True) + + payment_via_journal_entry = frappe.db.get_single_value( + "Accounts Settings", "make_payment_via_journal_entry" + ) + for advance in advances: + advance.update({"payment_via_journal_entry": payment_via_journal_entry}) + get_expense_claim_advances(expense_claim_doc, advance) + return expense_claim_doc.advances + + +@frappe.whitelist() +def get_expense_claim(advance_details): + import json + + if isinstance(advance_details, str): + advance_details = frappe._dict(json.loads(advance_details)) + + company = advance_details.company + default_payable_account = frappe.get_cached_value( + "Company", company, "default_expense_claim_payable_account" + ) + default_cost_center = frappe.get_cached_value("Company", company, "cost_center") + + expense_claim = frappe.new_doc("Expense Claim") + expense_claim.company = company + expense_claim.currency = advance_details.currency + expense_claim.employee = advance_details.employee_name + expense_claim.payable_account = ( + default_payable_account if advance_details.currency == erpnext.get_company_currency(company) else None + ) + expense_claim.cost_center = default_cost_center + expense_claim.is_paid = 1 if flt(advance_details.paid_amount) else 0 + + get_expense_claim_advances(expense_claim, advance_details) + return expense_claim + + +def get_expense_claim_advances(expense_claim, advance_details): + return_amount = flt(advance_details.return_amount) + if int(advance_details.payment_via_journal_entry): + paid_amount = flt(advance_details.paid_amount) + claimed_amount = flt(advance_details.claimed_amount) + exchange_rate = frappe.db.get_value( + "Advance Payment Ledger Entry", + { + "voucher_type": "Journal Entry", + "against_voucher_type": "Employee Advance", + "against_voucher_no": advance_details.employee_advance_name, + "delinked": False, + "amount": paid_amount, + }, + "exchange_rate", + ) + allocated_amount = get_allocation_amount( + paid_amount=paid_amount, claimed_amount=claimed_amount, return_amount=return_amount + ) + unclaimed_amount = paid_amount - claimed_amount + expense_claim.append( + "advances", + { + "employee_advance": advance_details.employee_advance_name, + "posting_date": advance_details.posting_date, + "advance_paid": paid_amount, + "base_advance_paid": flt(advance_details.base_paid_amount), + "unclaimed_amount": unclaimed_amount, + "allocated_amount": allocated_amount, + "return_amount": return_amount, + "exchange_rate": exchange_rate, + }, + ) + else: + pe = frappe.qb.DocType("Payment Entry") + pe_ref = frappe.qb.DocType("Payment Entry Reference") + payment_entries = ( + frappe.qb.from_(pe) + .inner_join(pe_ref) + .on(pe_ref.parent == pe.name) + .select( + (pe.name).as_("payment_entry"), + (pe.total_allocated_amount).as_("advance_paid"), + (pe.unallocated_amount), + (pe.base_total_allocated_amount).as_("base_advance_paid"), + (pe.target_exchange_rate).as_("exchange_rate"), + (pe_ref.name).as_("pe_ref_name"), + (pe_ref.outstanding_amount), + (pe_ref.allocated_amount).as_("pe_ref_allocated_amount"), + ) + .where( + (pe.docstatus == 1) + & (pe_ref.reference_doctype == "Employee Advance") + & (pe_ref.reference_name == advance_details.employee_advance_name) + & (pe_ref.allocated_amount > 0) + ) + ).run(as_dict=True) + + for pe in payment_entries: + advance_paid = flt(pe.advance_paid) + flt(pe.unallocated_amount) + unclaimed_amount = flt(pe.advance_paid) + if flt(pe.pe_ref_allocated_amount): + unclaimed_amount = flt(pe.pe_ref_allocated_amount) + flt(pe.unallocated_amount) + allocated_amount = get_allocation_amount( + paid_amount=flt(pe.advance_paid), + claimed_amount=(flt(pe.advance_paid) - unclaimed_amount), + return_amount=(return_amount), + ) + + expense_claim.append( + "advances", + { + "employee_advance": advance_details.employee_advance_name, + "posting_date": advance_details.posting_date, + "advance_paid": advance_paid, + "base_advance_paid": advance_paid * pe.exchange_rate, + "unclaimed_amount": unclaimed_amount, + "allocated_amount": allocated_amount, + "return_amount": return_amount, + "exchange_rate": pe.exchange_rate, + "payment_entry": pe.payment_entry, + "payment_entry_reference": pe.pe_ref_name + if flt(pe.advance_paid) >= advance_paid + else None, + }, + ) + + +def update_payment_for_expense_claim(doc, method=None): + """ + Updates payment/reimbursed amount in Expense Claim + on Payment Entry/Journal Entry cancellation/submission + """ + if doc.doctype == "Payment Entry" and not (doc.payment_type == "Pay" and doc.party): + return + + doctype_field_map = { + "Journal Entry": ["accounts", "reference_type"], + "Payment Entry": ["references", "reference_doctype"], + "Unreconcile Payment": ["allocations", "reference_doctype"], + } + + payment_table, doctype_field = doctype_field_map[doc.doctype] + + for d in doc.get(payment_table): + if d.get(doctype_field) == "Expense Claim" and d.reference_name: + expense_claim = frappe.get_doc("Expense Claim", d.reference_name) + update_reimbursed_amount(expense_claim) + + if doc.doctype == "Payment Entry": + update_outstanding_amount_in_payment_entry(expense_claim, d.name) + + +def update_outstanding_amount_in_payment_entry(expense_claim: dict, pe_reference: str): + """updates outstanding amount back in Payment Entry reference""" + # TODO: refactor convoluted code after erpnext payment entry becomes extensible + outstanding_amount = get_outstanding_amount_for_claim(expense_claim) + frappe.db.set_value("Payment Entry Reference", pe_reference, "outstanding_amount", outstanding_amount) + + +def validate_expense_claim_in_jv(doc, method=None): + """Validates Expense Claim amount in Journal Entry""" + if doc.voucher_type != "Exchange Gain Or Loss": + for d in doc.accounts: + if d.reference_type == "Expense Claim": + outstanding_amt = get_outstanding_amount_for_claim(d.reference_name) + if d.debit and (d.debit > outstanding_amt): + frappe.throw( + _( + "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" + ).format(d.idx, d.reference_name, outstanding_amt) + ) + + +@frappe.whitelist() +def make_expense_claim_for_delivery_trip(source_name, target_doc=None): + doc = get_mapped_doc( + "Delivery Trip", + source_name, + {"Delivery Trip": {"doctype": "Expense Claim", "field_map": {"name": "delivery_trip"}}}, + target_doc, + ) + + return doc + + +@frappe.whitelist() +def get_allocation_amount(paid_amount=None, claimed_amount=None, return_amount=None, unclaimed_amount=None): + if unclaimed_amount is not None and return_amount is not None: + return flt(unclaimed_amount) - flt(return_amount) + elif paid_amount is not None and claimed_amount is not None and return_amount is not None: + return flt(paid_amount) - (flt(claimed_amount) + flt(return_amount)) + else: + frappe.throw(_("Invalid parameters provided. Please pass the required arguments.")) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim_dashboard.py new file mode 100644 index 000000000..8b1acc619 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim_dashboard.py @@ -0,0 +1,12 @@ +from frappe import _ + + +def get_data(): + return { + "fieldname": "reference_name", + "internal_links": {"Employee Advance": ["advances", "employee_advance"]}, + "transactions": [ + {"label": _("Payment"), "items": ["Payment Entry", "Journal Entry"]}, + {"label": _("Reference"), "items": ["Employee Advance"]}, + ], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim_list.js new file mode 100644 index 000000000..dc0677e94 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/expense_claim_list.js @@ -0,0 +1,3 @@ +frappe.listview_settings["Expense Claim"] = { + add_fields: ["company"], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/test_expense_claim.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/test_expense_claim.py new file mode 100644 index 000000000..d3b2d1efc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim/test_expense_claim.py @@ -0,0 +1,1083 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and Contributors +# See license.txt + +import frappe +from frappe.utils import flt, nowdate, random_string, today + +from erpnext import get_company_currency +from erpnext.accounts.doctype.account.test_account import create_account +from erpnext.accounts.doctype.payment_entry.test_payment_entry import get_payment_entry +from erpnext.setup.doctype.employee.test_employee import make_employee +from erpnext.setup.utils import get_exchange_rate + +from hrms.hr.doctype.expense_claim.expense_claim import ( + MismatchError, + get_outstanding_amount_for_claim, + make_bank_entry, + make_expense_claim_for_delivery_trip, +) +from hrms.tests.utils import HRMSTestSuite + +company_name = "_Test Company 3" + + +class TestExpenseClaim(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + + def setUp(self): + if not frappe.db.get_value("Cost Center", {"company": company_name}): + cost_center = frappe.new_doc("Cost Center") + cost_center.update( + { + "doctype": "Cost Center", + "cost_center_name": "_Test Cost Center 3", + "parent_cost_center": "_Test Company 3 - _TC3", + "is_group": 0, + "company": company_name, + } + ).insert() + + frappe.db.set_value("Company", company_name, "default_cost_center", cost_center) + frappe.db.set_value("Account", "Employee Advances - _TC", "account_type", "Receivable") + + def tearDown(self): + frappe.set_user("Administrator") + + def test_total_expense_claim_for_project(self): + frappe.db.delete("Task") + frappe.db.delete("Project") + frappe.db.sql("update `tabExpense Claim` set project = '', task = ''") + + project = create_project("_Test Project 1") + + task = frappe.new_doc("Task") + task.update( + dict(doctype="Task", subject="_Test Project Task 1", status="Open", project=project) + ).insert() + task = task.name + + payable_account = get_payable_account(company_name) + + make_expense_claim( + payable_account, 300, 200, company_name, "Travel Expenses - _TC3", project=project, task_name=task + ) + + self.assertEqual(frappe.db.get_value("Task", task, "total_expense_claim"), 200) + self.assertEqual(frappe.db.get_value("Project", project, "total_expense_claim"), 200) + + expense_claim2 = make_expense_claim( + payable_account, 600, 500, company_name, "Travel Expenses - _TC3", project=project, task_name=task + ) + + self.assertEqual(frappe.db.get_value("Task", task, "total_expense_claim"), 700) + self.assertEqual(frappe.db.get_value("Project", project, "total_expense_claim"), 700) + + expense_claim2.cancel() + + self.assertEqual(frappe.db.get_value("Task", task, "total_expense_claim"), 200) + self.assertEqual(frappe.db.get_value("Project", project, "total_expense_claim"), 200) + + def test_expense_claim_status_as_payment_from_journal_entry(self): + # Via Journal Entry + payable_account = get_payable_account(company_name) + expense_claim = make_expense_claim(payable_account, 300, 200, company_name, "Travel Expenses - _TC3") + + je = make_journal_entry(expense_claim) + + expense_claim.load_from_db() + self.assertEqual(expense_claim.status, "Paid") + + je.cancel() + expense_claim.load_from_db() + self.assertEqual(expense_claim.status, "Unpaid") + + # expense claim without any sanctioned amount should not have status as Paid + claim = make_expense_claim(payable_account, 1000, 0, "_Test Company", "Travel Expenses - _TC") + self.assertEqual(claim.total_sanctioned_amount, 0) + self.assertEqual(claim.status, "Submitted") + + # no gl entries created + gl_entry = frappe.get_all("GL Entry", {"voucher_type": "Expense Claim", "voucher_no": claim.name}) + self.assertEqual(len(gl_entry), 0) + + def test_expense_claim_status_as_payment_from_payment_entry(self): + payable_account = get_payable_account(company_name) + + expense_claim = make_expense_claim(payable_account, 300, 200, company_name, "Travel Expenses - _TC3") + + pe = make_claim_payment_entry(expense_claim, 200) + + expense_claim.load_from_db() + self.assertEqual(expense_claim.status, "Paid") + + pe.cancel() + expense_claim.load_from_db() + self.assertEqual(expense_claim.status, "Unpaid") + + def test_expense_claim_status_as_payment_allocation_using_pr(self): + # Allocation via Payment Reconciliation Tool for mutiple employees using journal entry + payable_account = get_payable_account(company_name) + # Make employee + employee = frappe.db.get_value( + "Employee", + {"status": "Active", "company": company_name, "first_name": "test_employee1@expenseclaim.com"}, + "name", + ) + if not employee: + employee = make_employee("test_employee1@expenseclaim.com", company=company_name) + + expense_claim1 = make_expense_claim(payable_account, 300, 200, company_name, "Travel Expenses - _TC3") + + expense_claim2 = make_expense_claim( + payable_account, 300, 200, company_name, "Travel Expenses - _TC3", employee=employee + ) + + je = make_journal_entry(expense_claim1, do_not_submit=True) + # Remove expense claim reference from journal entry + for entry in je.get("accounts"): + entry.reference_type = "" + entry.reference_name = "" + + cost_center = entry.cost_center + if entry.party: + employee1 = entry.party + + if not entry.party_type: + entry.credit += 200 + entry.credit_in_account_currency += 200 + + je.append( + "accounts", + { + "account": payable_account, + "debit_in_account_currency": 200, + "reference_type": "Expense Claim", + "party_type": "Employee", + "party": employee, + "cost_center": cost_center, + }, + ) + + je.save() + je.submit() + + allocate_using_payment_reconciliation(expense_claim1, employee1, je, payable_account) + expense_claim1.load_from_db() + self.assertEqual(expense_claim1.status, "Paid") + + allocate_using_payment_reconciliation(expense_claim2, employee, je, payable_account) + expense_claim2.load_from_db() + self.assertEqual(expense_claim2.status, "Paid") + + def test_expense_claim_against_fully_paid_advances(self): + from hrms.hr.doctype.employee_advance.test_employee_advance import ( + get_advances_for_claim, + make_employee_advance, + make_journal_entry_for_advance, + ) + + frappe.db.delete("Employee Advance") + + payable_account = get_payable_account("_Test Company") + claim = make_expense_claim( + payable_account, 1000, 1000, "_Test Company", "Travel Expenses - _TC", do_not_submit=True + ) + + advance = make_employee_advance(claim.employee) + pe = make_journal_entry_for_advance(advance) + pe.submit() + + # claim for already paid out advances + claim = get_advances_for_claim(claim, advance.name) + claim.save() + claim.submit() + + self.assertEqual(claim.grand_total, 0) + self.assertEqual(claim.status, "Paid") + + def test_advance_amount_allocation_against_claim_with_taxes(self): + from hrms.hr.doctype.employee_advance.test_employee_advance import ( + get_advances_for_claim, + make_employee_advance, + make_journal_entry_for_advance, + ) + + frappe.db.delete("Employee Advance") + + payable_account = get_payable_account("_Test Company") + taxes = generate_taxes("_Test Company") + claim = make_expense_claim( + payable_account, + 700, + 700, + "_Test Company", + "Travel Expenses - _TC", + do_not_submit=True, + taxes=taxes, + ) + claim.save() + + advance = make_employee_advance(claim.employee) + pe = make_journal_entry_for_advance(advance) + pe.submit() + + # claim for already paid out advances + claim = get_advances_for_claim(claim, advance.name, 763) + claim.save() + claim.submit() + + self.assertEqual(claim.grand_total, 0) + self.assertEqual(claim.status, "Paid") + + def test_expense_claim_partially_paid_via_advance(self): + from hrms.hr.doctype.employee_advance.test_employee_advance import ( + get_advances_for_claim, + make_employee_advance, + make_journal_entry_for_advance, + ) + + frappe.db.delete("Employee Advance") + + payable_account = get_payable_account("_Test Company") + claim = make_expense_claim( + payable_account, 1000, 1000, "_Test Company", "Travel Expenses - _TC", do_not_submit=True + ) + + # link advance for partial amount + advance = make_employee_advance(claim.employee, {"advance_amount": 500}) + pe = make_journal_entry_for_advance(advance) + pe.submit() + + claim = get_advances_for_claim(claim, advance.name) + claim.save() + claim.submit() + + self.assertEqual(claim.grand_total, 500) + self.assertEqual(claim.status, "Unpaid") + + # reimburse remaning amount + make_claim_payment_entry(claim, 500) + claim.reload() + + self.assertEqual(claim.total_amount_reimbursed, 500) + self.assertEqual(claim.status, "Paid") + + def test_expense_claim_with_deducted_returned_advance(self): + from hrms.hr.doctype.employee_advance.test_employee_advance import ( + create_return_through_additional_salary, + get_advances_for_claim, + make_employee_advance, + make_journal_entry_for_advance, + ) + from hrms.hr.doctype.expense_claim.expense_claim import get_allocation_amount + from hrms.payroll.doctype.salary_component.test_salary_component import create_salary_component + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + # create employee and employee advance + employee_name = make_employee("_T@employee.advance", "_Test Company") + advance = make_employee_advance(employee_name, {"repay_unclaimed_amount_from_salary": 1}) + journal_entry = make_journal_entry_for_advance(advance) + journal_entry.submit() + advance.reload() + + # set up salary components and structure + create_salary_component("Advance Salary - Deduction", type="Deduction") + make_salary_structure( + "Test Additional Salary for Advance Return", + "Monthly", + employee=employee_name, + company="_Test Company", + ) + + # create additional salary for advance return + additional_salary = create_return_through_additional_salary(advance) + additional_salary.salary_component = "Advance Salary - Deduction" + additional_salary.payroll_date = nowdate() + additional_salary.amount = 400 + additional_salary.insert() + additional_salary.submit() + advance.reload() + + self.assertEqual(advance.return_amount, 400) + + # create an expense claim + payable_account = get_payable_account("_Test Company") + claim = make_expense_claim( + payable_account, 200, 200, "_Test Company", "Travel Expenses - _TC", do_not_submit=True + ) + + # link advance to the claim + claim = get_advances_for_claim(claim, advance.name, amount=200) + claim.save() + claim.submit() + + # verify the allocation amount + advance = claim.advances[0] + self.assertEqual( + get_allocation_amount( + unclaimed_amount=advance.unclaimed_amount, return_amount=advance.return_amount + ), + 600, + ) + + def test_expense_claim_gl_entry(self): + payable_account = get_payable_account(company_name) + taxes = generate_taxes() + expense_claim = make_expense_claim( + payable_account, + 300, + 200, + company_name, + "Travel Expenses - _TC3", + do_not_submit=True, + taxes=taxes, + ) + expense_claim.submit() + + gl_entries = frappe.db.sql( + """select account, debit, credit + from `tabGL Entry` where voucher_type='Expense Claim' and voucher_no=%s + order by account asc""", + expense_claim.name, + as_dict=1, + ) + + self.assertTrue(gl_entries) + + expected_values = dict( + (d[0], d) + for d in [ + ["Output Tax CGST - _TC3", 18.0, 0.0], + [payable_account, 0.0, 218.0], + ["Travel Expenses - _TC3", 200.0, 0.0], + ] + ) + + for gle in gl_entries: + self.assertEqual(expected_values[gle.account][0], gle.account) + self.assertEqual(expected_values[gle.account][1], gle.debit) + self.assertEqual(expected_values[gle.account][2], gle.credit) + + def test_invalid_gain_loss_for_expense_claim(self): + payable_account = get_payable_account(company_name) + taxes = generate_taxes() + expense_claim = make_expense_claim( + payable_account, + 300, + 200, + company_name, + "Travel Expenses - _TC3", + do_not_submit=True, + taxes=taxes, + ) + expense_claim.submit() + + from hrms.overrides.employee_payment_entry import get_payment_entry_for_employee + + pe = get_payment_entry_for_employee(expense_claim.doctype, expense_claim.name) + pe.save() + pe.submit() + self.assertEqual(len(pe.references), 1) + self.assertEqual(pe.references[0].exchange_gain_loss, 0.0) + self.assertEqual(pe.references[0].exchange_rate, 1.0) + # Invalid gain/loss JE shouldn't be created for base currency Expense Claims + self.assertEqual( + frappe.db.get_all( + "Journal Entry Account", + filters={ + "reference_type": expense_claim.doctype, + "reference_name": expense_claim.name, + "docstatus": 1, + }, + ), + [], + ) + + def test_rejected_expense_claim(self): + payable_account = get_payable_account(company_name) + expense_claim = make_expense_claim( + payable_account, 300, 200, company_name, "Travel Expenses - _TC3", approval_status="Rejected" + ) + expense_claim.submit() + + self.assertEqual(expense_claim.status, "Rejected") + self.assertEqual(expense_claim.total_sanctioned_amount, 0.0) + + gl_entry = frappe.get_all( + "GL Entry", {"voucher_type": "Expense Claim", "voucher_no": expense_claim.name} + ) + self.assertEqual(len(gl_entry), 0) + + def test_expense_approver_perms(self): + user = "test_approver_perm_emp@example.com" + make_employee(user, "_Test Company") + + # check doc shared + payable_account = get_payable_account("_Test Company") + expense_claim = make_expense_claim( + payable_account, 300, 200, "_Test Company", "Travel Expenses - _TC", do_not_submit=True + ) + expense_claim.expense_approver = user + expense_claim.save() + self.assertTrue(expense_claim.name in frappe.share.get_shared("Expense Claim", user)) + + # check shared doc revoked + expense_claim.reload() + expense_claim.expense_approver = "test@example.com" + expense_claim.save() + self.assertTrue(expense_claim.name not in frappe.share.get_shared("Expense Claim", user)) + + expense_claim.reload() + expense_claim.expense_approver = user + expense_claim.save() + + frappe.set_user(user) + expense_claim.reload() + expense_claim.status = "Approved" + expense_claim.submit() + frappe.set_user("Administrator") + + def test_multiple_payment_entries_against_expense(self): + # Creating expense claim + payable_account = get_payable_account("_Test Company") + employee = make_employee("test_multi_payment@expenseclaim.com", "_Test Company") + expense_claim = make_expense_claim( + payable_account, 5500, 5500, "_Test Company", "Travel Expenses - _TC", employee=employee + ) + expense_claim.save() + expense_claim.submit() + + # Payment entry 1: paying 500 + pe1 = make_claim_payment_entry(expense_claim, 500) + pe1.reload() + self.assertEqual(pe1.references[0].outstanding_amount, 5000) + + expense_claim.reload() + outstanding_amount = get_outstanding_amount_for_claim(expense_claim) + self.assertEqual(outstanding_amount, 5000) + self.assertEqual(expense_claim.total_amount_reimbursed, 500) + + # Payment entry 2: paying 2000 + pe2 = make_claim_payment_entry(expense_claim, 2000) + pe2.reload() + self.assertEqual(pe2.references[0].outstanding_amount, 3000) + + expense_claim.reload() + outstanding_amount = get_outstanding_amount_for_claim(expense_claim) + self.assertEqual(outstanding_amount, 3000) + self.assertEqual(expense_claim.total_amount_reimbursed, 2500) + + # Payment entry 3: paying 3000 + pe3 = make_claim_payment_entry(expense_claim, 3000) + pe3.reload() + self.assertEqual(pe3.references[0].outstanding_amount, 0) + + expense_claim.reload() + outstanding_amount = get_outstanding_amount_for_claim(expense_claim) + self.assertEqual(outstanding_amount, 0) + self.assertEqual(expense_claim.total_amount_reimbursed, 5500) + + def test_expense_claim_against_delivery_trip(self): + from erpnext.stock.doctype.delivery_trip.test_delivery_trip import ( + create_address, + create_delivery_trip, + create_driver, + create_vehicle, + ) + from erpnext.tests.utils import create_test_contact_and_address + + driver = create_driver() + create_vehicle() + create_test_contact_and_address() + address = create_address(driver) + + delivery_trip = create_delivery_trip(driver, address) + expense_claim = make_expense_claim_for_delivery_trip(delivery_trip.name) + self.assertEqual(delivery_trip.name, expense_claim.delivery_trip) + + def test_journal_entry_against_expense_claim(self): + payable_account = get_payable_account(company_name) + taxes = generate_taxes() + expense_claim = make_expense_claim( + payable_account, + 300, + 200, + company_name, + "Travel Expenses - _TC3", + do_not_submit=True, + taxes=taxes, + ) + expense_claim.submit() + + je = make_journal_entry(expense_claim) + + self.assertEqual(je.accounts[0].debit_in_account_currency, expense_claim.grand_total) + + def test_accounting_dimension_mapping(self): + project = create_project("_Test Expense Project") + payable_account = get_payable_account(company_name) + + expense_claim = make_expense_claim( + payable_account, + 300, + 200, + company_name, + "Travel Expenses - _TC3", + do_not_submit=True, + ) + + expense_claim.expenses[0].project = project + expense_claim.submit() + + dimensions = frappe.db.get_value( + "GL Entry", + { + "voucher_type": "Expense Claim", + "voucher_no": expense_claim.name, + "account": "Travel Expenses - _TC3", + }, + ["cost_center", "project"], + as_dict=1, + ) + + self.assertEqual(dimensions.project, project) + self.assertEqual(dimensions.cost_center, expense_claim.cost_center) + + def test_rounding(self): + payable_account = get_payable_account(company_name) + taxes = generate_taxes(rate=7) + expense_claim = make_expense_claim( + payable_account, + 130.84, + 130.84, + company_name, + "Travel Expenses - _TC3", + taxes=taxes, + ) + + self.assertEqual(expense_claim.total_sanctioned_amount, 130.84) + self.assertEqual(expense_claim.total_taxes_and_charges, 9.16) + self.assertEqual(expense_claim.grand_total, 140) + + pe = make_claim_payment_entry(expense_claim, 140) + + expense_claim.reload() + self.assertEqual(expense_claim.status, "Paid") + + pe.cancel() + expense_claim.reload() + self.assertEqual(expense_claim.status, "Unpaid") + + def test_repost(self): + # Update repost settings + allowed_types = ["Expense Claim"] + repost_settings = frappe.get_doc("Repost Accounting Ledger Settings") + for x in allowed_types: + repost_settings.append("allowed_types", {"document_type": x, "allowed": True}) + repost_settings.save() + + payable_account = get_payable_account(company_name) + taxes = generate_taxes(rate=10) + expense_claim = make_expense_claim( + payable_account, + 100, + 100, + company_name, + "Travel Expenses - _TC3", + taxes=taxes, + ) + expected_data = [{"total_debit": 110.0, "total_credit": 110.0}] + + # assert ledger entries + ledger_balance = frappe.db.get_all( + "GL Entry", + filters={"voucher_no": expense_claim.name, "is_cancelled": 0}, + fields=[{"SUM": "debit", "as": "total_debit"}, {"SUM": "credit", "as": "total_credit"}], + ) + self.assertEqual(ledger_balance, expected_data) + + gl_entries = frappe.db.get_all( + "GL Entry", filters={"account": expense_claim.payable_account, "voucher_no": expense_claim.name} + ) + self.assertEqual(len(gl_entries), 1) + frappe.db.set_value("GL Entry", gl_entries[0].name, "credit", 0) + + ledger_balance = frappe.db.get_all( + "GL Entry", + filters={"voucher_no": expense_claim.name, "is_cancelled": 0}, + fields=[{"SUM": "debit", "as": "total_debit"}, {"SUM": "credit", "as": "total_credit"}], + ) + self.assertNotEqual(ledger_balance, expected_data) + + # Do a repost + repost_doc = frappe.new_doc("Repost Accounting Ledger") + repost_doc.company = expense_claim.company + repost_doc.append( + "vouchers", {"voucher_type": expense_claim.doctype, "voucher_no": expense_claim.name} + ) + repost_doc.save().submit() + ledger_balance = frappe.db.get_all( + "GL Entry", + filters={"voucher_no": expense_claim.name, "is_cancelled": 0}, + fields=[{"SUM": "debit", "as": "total_debit"}, {"SUM": "credit", "as": "total_credit"}], + ) + self.assertEqual(ledger_balance, expected_data) + + def test_company_department_validation(self): + # validate company and department + expense_claim = frappe.new_doc("Expense Claim") + expense_claim.company = "_Test Company 3" + expense_claim.department = "Accounts - _TC2" + self.assertRaises(MismatchError, expense_claim.save) + + def test_self_expense_approval(self): + frappe.db.set_single_value("HR Settings", "prevent_self_expense_approval", 0) + + employee = frappe.get_doc( + "Employee", + make_employee("test_self_expense_approval@example.com", "_Test Company"), + ) + + from frappe.utils.user import add_role + + add_role(employee.user_id, "Expense Approver") + + payable_account = get_payable_account("_Test Company") + expense_claim = make_expense_claim( + payable_account, + 300, + 200, + "_Test Company", + "Travel Expenses - _TC", + do_not_submit=True, + employee=employee.name, + ) + + frappe.set_user(employee.user_id) + expense_claim.submit() + + self.assertEqual(1, expense_claim.docstatus) + + def test_self_expense_approval_not_allowed(self): + frappe.db.set_single_value("HR Settings", "prevent_self_expense_approval", 1) + + expense_approver = "test_expense_approver@example.com" + make_employee(expense_approver, company="_Test Company") + + employee = frappe.get_doc( + "Employee", + make_employee( + "test_self_expense_approval@example.com", + company="_Test Company", + expense_approver=expense_approver, + ), + ) + + from frappe.utils.user import add_role + + add_role(employee.user_id, "Expense Approver") + add_role(expense_approver, "Expense Approver") + + payable_account = get_payable_account("_Test Company") + expense_claim = make_expense_claim( + payable_account, + 300, + 200, + "_Test Company", + "Travel Expenses - _TC", + do_not_submit=True, + employee=employee.name, + ) + + expense_claim.expense_approver = expense_approver + expense_claim.save() + + frappe.set_user(employee.user_id) + + self.assertRaises(frappe.ValidationError, expense_claim.submit) + expense_claim.reload() + + frappe.set_user(expense_approver) + expense_claim.submit() + + self.assertEqual(1, expense_claim.docstatus) + + def test_multicurrency_claim(self): + from hrms.hr.doctype.employee_advance.test_employee_advance import ( + create_advance_account, + get_advances_for_claim, + make_employee_advance, + make_payment_entry, + ) + + advance_account = create_advance_account("Employee Advance (USD)", "USD") + employee = make_employee( + "test_adv_in_multicurrency@example.com", + "_Test Company", + salary_currency="USD", + employee_advance_account=advance_account, + ) + advance = make_employee_advance(employee) + self.assertEqual(advance.status, "Unpaid") + + payment_entry = make_payment_entry(advance, advance.advance_amount) + advance.reload() + self.assertEqual(advance.status, "Paid") + self.assertEqual(payment_entry.received_amount, advance.paid_amount) + + expected_base_paid = flt( + advance.paid_amount * payment_entry.transaction_exchange_rate, + advance.precision("base_paid_amount"), + ) + self.assertEqual(advance.base_paid_amount, expected_base_paid) + self.assertEqual(payment_entry.paid_amount, expected_base_paid) + + payable_account = create_account( + account_name="Payroll Payable (USD)", + parent_account="Accounts Payable - _TC", + company="_Test Company", + account_currency="USD", + account_type="Payable", + ) + claim_account = create_account( + account_name="Travel Expenses (USD)", + parent_account="Indirect Expenses - _TC", + company="_Test Company", + account_currency="USD", + ) + claim = make_expense_claim( + payable_account, + advance.advance_amount, + advance.advance_amount, + "_Test Company", + claim_account, + args={ + "currency": advance.currency, + "exchange_rate": get_exchange_rate( + advance.currency, get_company_currency("_Test Company"), today() + ), + }, + employee=employee, + do_not_submit=True, + ) + + claim = get_advances_for_claim(claim, advance.name) + claim.save().submit() + claim.reload() + advance.reload() + self.assertEqual(claim.status, "Paid") + self.assertEqual(claim.currency, advance.currency) + self.assertEqual(advance.status, "Claimed") + self.assertEqual(claim.total_sanctioned_amount, advance.advance_amount) + + for expense in claim.expenses: + base_amount = flt(expense.amount * claim.exchange_rate, expense.precision("base_amount")) + base_sanctioned = flt( + expense.sanctioned_amount * claim.exchange_rate, expense.precision("base_sanctioned_amount") + ) + self.assertEqual(expense.base_amount, base_amount) + self.assertEqual(expense.base_sanctioned_amount, base_sanctioned) + + for claim_advance in claim.advances: + base_advance_paid = flt( + claim_advance.advance_paid * claim_advance.exchange_rate, + claim_advance.precision("base_advance_paid"), + ) + base_unclaimed_amount = flt( + claim_advance.unclaimed_amount * claim_advance.exchange_rate, + claim_advance.precision("base_unclaimed_amount"), + ) + base_allocated_amount = flt( + claim_advance.allocated_amount * claim.exchange_rate, + claim_advance.precision("base_allocated_amount"), + ) + self.assertEqual(claim_advance.base_advance_paid, base_advance_paid) + self.assertEqual(claim_advance.base_unclaimed_amount, base_unclaimed_amount) + self.assertEqual(claim_advance.base_allocated_amount, base_allocated_amount) + + total_base_sanctioned = flt( + claim.total_sanctioned_amount * claim.exchange_rate, + claim.precision("base_total_sanctioned_amount"), + ) + total_advance_amount = flt( + claim.total_advance_amount * claim.exchange_rate, claim.precision("base_total_advance_amount") + ) + grand_total = flt(claim.grand_total * claim.exchange_rate, claim.precision("base_grand_total")) + total_claimed_amount = flt( + claim.total_claimed_amount * claim.exchange_rate, claim.precision("base_total_claimed_amount") + ) + self.assertEqual(claim.base_total_sanctioned_amount, total_base_sanctioned) + self.assertEqual(claim.base_total_advance_amount, total_advance_amount) + self.assertEqual(claim.base_grand_total, grand_total) + self.assertEqual(claim.base_total_claimed_amount, total_claimed_amount) + self.assertEqual(claim.total_exchange_gain_loss, 0) + + def test_advance_claim_multicurrency_gain_loss(self): + from hrms.hr.doctype.employee_advance.test_employee_advance import ( + create_advance_account, + get_advances_for_claim, + make_employee_advance, + make_payment_entry, + ) + + advance_account = create_advance_account("Employee Advance (USD)", "USD") + employee = make_employee( + "test_advance_claim_gain_loss_multicurrency@example.com", + "_Test Company", + salary_currency="USD", + employee_advance_account=advance_account, + ) + advance = make_employee_advance(employee) + self.assertEqual(advance.status, "Unpaid") + + make_payment_entry(advance, advance.advance_amount) + advance.reload() + self.assertEqual(advance.status, "Paid") + + payable_account = create_account( + account_name="Payroll Payable (USD)", + parent_account="Accounts Payable - _TC", + company="_Test Company", + account_currency="USD", + account_type="Payable", + ) + claim_account = create_account( + account_name="Travel Expenses (USD)", + parent_account="Indirect Expenses - _TC", + company="_Test Company", + account_currency="USD", + ) + claim = make_expense_claim( + payable_account, + advance.advance_amount, + advance.advance_amount, + "_Test Company", + claim_account, + args={"currency": advance.currency, "exchange_rate": 65}, + employee=employee, + do_not_submit=True, + ) + + claim = get_advances_for_claim(claim, advance.name) + claim.save().submit() + claim.reload() + advance.reload() + self.assertEqual(claim.status, "Paid") + self.assertEqual(advance.status, "Claimed") + + for claim_advance in claim.advances: + self.assertEqual(claim_advance.exchange_gain_loss, 2100) + self.assertEqual(claim.total_exchange_gain_loss, 2100) + + journal = frappe.db.get_value( + "Journal Entry Account", + filters={"reference_type": "Expense Claim", "reference_name": claim.name, "docstatus": 1}, + fieldname="parent", + ) + gain_loss_jv = frappe.get_doc("Journal Entry", journal) + self.assertEqual(gain_loss_jv.voucher_type, "Exchange Gain Or Loss") + self.assertEqual(gain_loss_jv.total_debit, 2100) + self.assertEqual(gain_loss_jv.total_credit, 2100) + + def test_expense_claim_status_as_payment_after_unreconciliation(self): + from hrms.hr.doctype.employee_advance.test_employee_advance import make_payment_entry + + payable_account = get_payable_account(company_name) + + employee = frappe.db.get_value( + "Employee", + {"status": "Active", "company": company_name, "first_name": "test_employee1@expenseclaim.com"}, + "name", + ) + if not employee: + employee = make_employee("test_employee1@expenseclaim.com", company=company_name) + + expense_claim = make_expense_claim(payable_account, 300, 200, company_name, "Travel Expenses - _TC3") + self.assertEqual(expense_claim.docstatus, 1) + self.assertEqual(expense_claim.status, "Unpaid") + + pe = make_payment_entry(expense_claim, 200) + expense_claim.reload() + self.assertEqual(expense_claim.status, "Paid") + + unreconcile_doc = frappe.new_doc("Unreconcile Payment") + unreconcile_doc.company = company_name + unreconcile_doc.voucher_type = "Payment Entry" + unreconcile_doc.voucher_no = pe.name + unreconcile_doc.append( + "allocations", + { + "account": "Travel Expenses - _TC3", + "party_type": "Employee", + "party": employee, + "reference_doctype": "Expense Claim", + "reference_name": expense_claim.name, + "allocated_amount": 200, + "unlinked": 1, + }, + ) + unreconcile_doc.insert() + unreconcile_doc.submit() + + expense_claim.reload() + self.assertEqual(expense_claim.status, "Unpaid") + + def test_status_on_discard(self): + payable_account = get_payable_account(company_name) + expense_claim = make_expense_claim( + payable_account, 300, 200, company_name, "Travel Expenses - _TC3", do_not_submit=True + ) + expense_claim.insert() + expense_claim.reload() + self.assertEqual(expense_claim.status, "Draft") + expense_claim.discard() + expense_claim.reload() + self.assertEqual(expense_claim.status, "Cancelled") + + +def get_payable_account(company): + return frappe.get_cached_value("Company", company, "default_payable_account") + + +def generate_taxes(company=None, rate=None) -> dict: + company = company or company_name + parent_account = frappe.db.get_value( + "Account", filters={"account_name": "Duties and Taxes", "company": company} + ) + account = create_account( + company=company, + account_name="Output Tax CGST", + account_type="Tax", + parent_account=parent_account, + ) + + cost_center = frappe.db.get_value("Company", company, "cost_center") + + return { + "taxes": [ + { + "account_head": account, + "cost_center": cost_center, + "rate": rate or 9, + "description": "CGST", + } + ] + } + + +def make_expense_claim( + payable_account, + amount, + sanctioned_amount, + company, + account, + args=None, + project=None, + task_name=None, + do_not_submit=False, + taxes=None, + employee=None, + approval_status="Approved", +): + if not employee: + employee = frappe.db.get_value("Employee", {"status": "Active", "company": company}) + if not employee: + employee = make_employee("test_employee@expenseclaim.com", company=company) + + currency, cost_center = frappe.db.get_value("Company", company, ["default_currency", "cost_center"]) + expense_claim = { + "doctype": "Expense Claim", + "employee": employee, + "payable_account": payable_account, + "approval_status": approval_status, + "company": company, + "currency": currency, + "exchange_rate": 1, + "expenses": [ + { + "expense_type": "Travel", + "default_account": account, + "currency": currency, + "amount": amount, + "sanctioned_amount": sanctioned_amount, + "cost_center": cost_center, + } + ], + } + if taxes: + expense_claim.update(taxes) + + if args: + expense_claim.update(args) + expense_claim = frappe.get_doc(expense_claim) + + if project: + expense_claim.project = project + if task_name: + expense_claim.task = task_name + + if do_not_submit: + return expense_claim + expense_claim.submit() + return expense_claim + + +def make_claim_payment_entry(expense_claim, amount): + from hrms.overrides.employee_payment_entry import get_payment_entry_for_employee + + pe = get_payment_entry_for_employee("Expense Claim", expense_claim.name) + pe.reference_no = "1" + pe.reference_date = nowdate() + pe.source_exchange_rate = 1 + pe.references[0].allocated_amount = amount + pe.insert() + pe.submit() + + return pe + + +def make_journal_entry(expense_claim, do_not_submit=False): + je_dict = make_bank_entry("Expense Claim", expense_claim.name) + je = frappe.get_doc(je_dict) + je.posting_date = nowdate() + je.cheque_no = random_string(5) + je.cheque_date = nowdate() + + if not do_not_submit: + je.submit() + + return je + + +def create_payment_reconciliation(company, employee, payable_account): + pr = frappe.new_doc("Payment Reconciliation") + pr.company = company + pr.party_type = "Employee" + pr.party = employee + pr.receivable_payable_account = payable_account + pr.from_invoice_date = pr.to_invoice_date = pr.from_payment_date = pr.to_payment_date = nowdate() + return pr + + +def allocate_using_payment_reconciliation(expense_claim, employee, journal_entry, payable_account): + pr = create_payment_reconciliation(company_name, employee, payable_account) + pr.get_unreconciled_entries() + invoices = [x.as_dict() for x in pr.get("invoices") if x.invoice_number == expense_claim.name] + payments = [x.as_dict() for x in pr.get("payments") if x.reference_name == journal_entry.name] + + pr.allocate_entries(frappe._dict({"invoices": invoices, "payments": payments})) + pr.reconcile() + + +def create_project(project_name): + project = frappe.db.exists("Project", {"project_name": project_name}) + if project: + return project + + doc = frappe.new_doc("Project") + doc.project_name = project_name + doc.insert() + return doc.name diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_account/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_account/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_account/expense_claim_account.json b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_account/expense_claim_account.json new file mode 100644 index 000000000..b86071c8a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_account/expense_claim_account.json @@ -0,0 +1,40 @@ +{ + "actions": [], + "creation": "2016-07-18 12:24:16.507860", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "company", + "default_account" + ], + "fields": [ + { + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company" + }, + { + "fieldname": "default_account", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Default Account", + "options": "Account", + "reqd": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:43.837394", + "modified_by": "Administrator", + "module": "HR", + "name": "Expense Claim Account", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_account/expense_claim_account.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_account/expense_claim_account.py new file mode 100644 index 000000000..0d46a2260 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_account/expense_claim_account.py @@ -0,0 +1,9 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class ExpenseClaimAccount(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_advance/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_advance/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json new file mode 100644 index 000000000..a427e19e8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json @@ -0,0 +1,188 @@ +{ + "actions": [], + "creation": "2017-10-09 16:53:26.410762", + "doctype": "DocType", + "document_type": "Document", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee_advance", + "payment_entry", + "posting_date", + "advance_paid", + "base_advance_paid", + "exchange_rate", + "exchange_gain_loss", + "column_break_4", + "unclaimed_amount", + "base_unclaimed_amount", + "return_amount", + "allocated_amount", + "base_allocated_amount", + "advance_account", + "payment_entry_reference" + ], + "fields": [ + { + "columns": 2, + "fieldname": "employee_advance", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee Advance", + "no_copy": 1, + "oldfieldname": "journal_voucher", + "oldfieldtype": "Link", + "options": "Employee Advance", + "print_width": "250px", + "reqd": 1, + "width": "250px" + }, + { + "columns": 2, + "fieldname": "posting_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Posting Date", + "read_only": 1 + }, + { + "columns": 2, + "fieldname": "advance_paid", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Advance Paid", + "options": "currency", + "read_only": 1 + }, + { + "columns": 2, + "fieldname": "unclaimed_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Unclaimed Amount", + "no_copy": 1, + "oldfieldname": "advance_amount", + "oldfieldtype": "Currency", + "options": "currency", + "print_width": "120px", + "read_only": 1, + "reqd": 1, + "width": "120px" + }, + { + "columns": 2, + "fieldname": "allocated_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Allocated Amount", + "no_copy": 1, + "oldfieldname": "allocated_amount", + "oldfieldtype": "Currency", + "options": "currency", + "print_width": "120px", + "read_only": 1, + "width": "120px" + }, + { + "fieldname": "advance_account", + "fieldtype": "Link", + "hidden": 1, + "label": "Advance Account", + "options": "Account" + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "depends_on": "return_amount", + "fieldname": "return_amount", + "fieldtype": "Currency", + "label": "Returned Amount", + "options": "currency", + "read_only": 1 + }, + { + "columns": 2, + "fieldname": "base_advance_paid", + "fieldtype": "Currency", + "label": "Advance Paid (Company Currency)", + "options": "Company:company:default_currency", + "print_hide": 1, + "read_only": 1 + }, + { + "columns": 2, + "fieldname": "base_unclaimed_amount", + "fieldtype": "Currency", + "label": "Unclaimed Amount (Company Currency)", + "no_copy": 1, + "oldfieldname": "advance_amount", + "oldfieldtype": "Currency", + "options": "Company:company:default_currency", + "print_width": "120px", + "read_only": 1, + "width": "120px" + }, + { + "columns": 2, + "fieldname": "base_allocated_amount", + "fieldtype": "Currency", + "label": "Allocated Amount (Company Currency)", + "no_copy": 1, + "oldfieldname": "allocated_amount", + "oldfieldtype": "Currency", + "options": "Company:company:default_currency", + "print_width": "120px", + "read_only": 1, + "width": "120px" + }, + { + "description": "Exchange rate of Payment Entry against Employee Advance", + "fieldname": "exchange_rate", + "fieldtype": "Float", + "label": "Exchange Rate", + "precision": "9", + "print_hide": 1, + "read_only": 1 + }, + { + "depends_on": "exchange_gain_loss", + "fieldname": "exchange_gain_loss", + "fieldtype": "Currency", + "label": "Exchange Gain/Loss", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "fieldname": "payment_entry", + "fieldtype": "Link", + "label": "Payment Entry", + "no_copy": 1, + "options": "Payment Entry", + "read_only": 1 + }, + { + "fieldname": "payment_entry_reference", + "fieldtype": "Data", + "hidden": 1, + "label": "Payment Entry Reference", + "no_copy": 1, + "print_hide": 1, + "read_only": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2025-11-12 19:48:47.708734", + "modified_by": "Administrator", + "module": "HR", + "name": "Expense Claim Advance", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_advance/expense_claim_advance.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_advance/expense_claim_advance.py new file mode 100644 index 000000000..68b2963f2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_advance/expense_claim_advance.py @@ -0,0 +1,9 @@ +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class ExpenseClaimAdvance(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/README.md new file mode 100644 index 000000000..4a747e2ea --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/README.md @@ -0,0 +1 @@ +Detail of expense in parent Expense Claim. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json new file mode 100644 index 000000000..4faf15fe4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json @@ -0,0 +1,168 @@ +{ + "actions": [], + "creation": "2013-02-22 01:27:46", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "expense_date", + "column_break_2", + "expense_type", + "default_account", + "description_sb", + "description", + "amounts_sb", + "amount", + "base_amount", + "column_break_8", + "sanctioned_amount", + "base_sanctioned_amount", + "accounting_dimensions_section", + "cost_center", + "dimension_col_break", + "project" + ], + "fields": [ + { + "default": "Today", + "fieldname": "expense_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Expense Date", + "oldfieldname": "expense_date", + "oldfieldtype": "Date", + "print_width": "150px", + "width": "150px" + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "fieldname": "expense_type", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Expense Claim Type", + "oldfieldname": "expense_type", + "oldfieldtype": "Link", + "options": "Expense Claim Type", + "print_width": "150px", + "reqd": 1, + "width": "150px" + }, + { + "depends_on": "expense_type", + "fieldname": "default_account", + "fieldtype": "Link", + "hidden": 1, + "label": "Default Account", + "options": "Account", + "read_only": 1 + }, + { + "fetch_from": "expense_type.description", + "fetch_if_empty": 1, + "fieldname": "description", + "fieldtype": "Text Editor", + "in_list_view": 1, + "label": "Description", + "oldfieldname": "description", + "oldfieldtype": "Small Text", + "print_width": "300px", + "width": "300px" + }, + { + "fieldname": "amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Amount", + "no_copy": 1, + "oldfieldname": "claim_amount", + "oldfieldtype": "Currency", + "options": "currency", + "print_width": "150px", + "reqd": 1, + "width": "150px" + }, + { + "fieldname": "column_break_8", + "fieldtype": "Column Break" + }, + { + "fieldname": "sanctioned_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Sanctioned Amount", + "oldfieldname": "sanctioned_amount", + "oldfieldtype": "Currency", + "options": "currency", + "print_width": "150px", + "width": "150px" + }, + { + "allow_on_submit": 1, + "fieldname": "cost_center", + "fieldtype": "Link", + "label": "Cost Center", + "options": "Cost Center" + }, + { + "fieldname": "accounting_dimensions_section", + "fieldtype": "Section Break", + "label": "Accounting Dimensions" + }, + { + "fieldname": "dimension_col_break", + "fieldtype": "Column Break" + }, + { + "allow_on_submit": 1, + "fieldname": "project", + "fieldtype": "Link", + "label": "Project", + "options": "Project" + }, + { + "fieldname": "description_sb", + "fieldtype": "Section Break" + }, + { + "fieldname": "amounts_sb", + "fieldtype": "Section Break" + }, + { + "fieldname": "base_amount", + "fieldtype": "Currency", + "label": "Amount (Company Currency)", + "oldfieldname": "claim_amount", + "oldfieldtype": "Currency", + "options": "Company:company:default_currency", + "print_width": "150px", + "width": "150px" + }, + { + "fieldname": "base_sanctioned_amount", + "fieldtype": "Currency", + "label": "Sanctioned Amount (Company Currency)", + "oldfieldname": "sanctioned_amount", + "oldfieldtype": "Currency", + "options": "Company:company:default_currency", + "print_hide": 1, + "print_width": "150px", + "width": "150px" + } + ], + "idx": 1, + "istable": 1, + "links": [], + "modified": "2025-09-10 19:21:50.625260", + "modified_by": "Administrator", + "module": "HR", + "name": "Expense Claim Detail", + "owner": "Administrator", + "permissions": [], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/expense_claim_detail.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/expense_claim_detail.py new file mode 100644 index 000000000..f58f1287c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_detail/expense_claim_detail.py @@ -0,0 +1,9 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +from frappe.model.document import Document + + +class ExpenseClaimDetail(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/README.md new file mode 100644 index 000000000..13a654eab --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/README.md @@ -0,0 +1 @@ +Type of expense for Expense Claim. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/expense_claim_type.js b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/expense_claim_type.js new file mode 100644 index 000000000..9344908be --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/expense_claim_type.js @@ -0,0 +1,21 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.ui.form.on("Expense Claim Type", { + refresh: function (frm) { + frm.fields_dict["accounts"].grid.get_field("default_account").get_query = function ( + doc, + cdt, + cdn, + ) { + var d = locals[cdt][cdn]; + return { + filters: { + is_group: 0, + root_type: frm.doc.deferred_expense_account ? "Asset" : "Expense", + company: d.company, + }, + }; + }; + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/expense_claim_type.json b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/expense_claim_type.json new file mode 100644 index 000000000..65854c11f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/expense_claim_type.json @@ -0,0 +1,75 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "field:expense_type", + "creation": "2012-03-27 14:35:55", + "doctype": "DocType", + "document_type": "Setup", + "engine": "InnoDB", + "field_order": [ + "deferred_expense_account", + "expense_type", + "accounts", + "description" + ], + "fields": [ + { + "fieldname": "expense_type", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Expense Claim Type", + "oldfieldname": "expense_type", + "oldfieldtype": "Data", + "reqd": 1, + "unique": 1 + }, + { + "fieldname": "description", + "fieldtype": "Small Text", + "label": "Description", + "oldfieldname": "description", + "oldfieldtype": "Small Text", + "width": "300px" + }, + { + "fieldname": "accounts", + "fieldtype": "Table", + "label": "Accounts", + "options": "Expense Claim Account" + }, + { + "default": "0", + "fieldname": "deferred_expense_account", + "fieldtype": "Check", + "label": "Deferred Expense Account" + } + ], + "icon": "fa fa-flag", + "idx": 1, + "links": [], + "modified": "2024-03-27 13:09:44.229749", + "modified_by": "Administrator", + "module": "HR", + "name": "Expense Claim Type", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "read": 1, + "role": "Employee" + } + ], + "sort_field": "creation", + "sort_order": "ASC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/expense_claim_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/expense_claim_type.py new file mode 100644 index 000000000..0fb974794 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/expense_claim_type.py @@ -0,0 +1,32 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document + + +class ExpenseClaimType(Document): + def validate(self): + self.validate_accounts() + self.validate_repeating_companies() + + def validate_repeating_companies(self): + """Error when Same Company is entered multiple times in accounts""" + accounts_list = [] + for entry in self.accounts: + accounts_list.append(entry.company) + + if len(accounts_list) != len(set(accounts_list)): + frappe.throw(_("Same Company is entered more than once")) + + def validate_accounts(self): + for entry in self.accounts: + """Error when Company of Ledger account doesn't match with Company Selected""" + if frappe.db.get_value("Account", entry.default_account, "company") != entry.company: + frappe.throw( + _("Account {0} does not match with Company {1}").format( + entry.default_account, entry.company + ) + ) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/test_expense_claim_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/test_expense_claim_type.py new file mode 100644 index 000000000..236de562d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_claim_type/test_expense_claim_type.py @@ -0,0 +1,10 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + +# test_records = frappe.get_test_records('Expense Claim Type') + + +class TestExpenseClaimType(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_taxes_and_charges/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_taxes_and_charges/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json new file mode 100644 index 000000000..1f6e114fb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json @@ -0,0 +1,143 @@ +{ + "actions": [], + "autoname": "hash", + "creation": "2019-06-03 11:42:33.123976", + "doctype": "DocType", + "document_type": "Setup", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "account_head", + "rate", + "tax_amount", + "base_tax_amount", + "col_break1", + "total", + "base_total", + "description_sb", + "description", + "column_break_8", + "accounting_dimensions_section", + "cost_center", + "dimension_col_break", + "project" + ], + "fields": [ + { + "fieldname": "col_break1", + "fieldtype": "Column Break" + }, + { + "allow_on_submit": 1, + "columns": 2, + "fieldname": "account_head", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Account Head", + "oldfieldname": "account_head", + "oldfieldtype": "Link", + "options": "Account", + "reqd": 1 + }, + { + "allow_on_submit": 1, + "default": ":Company", + "fieldname": "cost_center", + "fieldtype": "Link", + "label": "Cost Center", + "oldfieldname": "cost_center", + "oldfieldtype": "Link", + "options": "Cost Center" + }, + { + "fieldname": "description", + "fieldtype": "Small Text", + "label": "Description", + "oldfieldname": "description", + "oldfieldtype": "Small Text", + "print_width": "300px", + "reqd": 1, + "width": "300px" + }, + { + "columns": 2, + "fieldname": "rate", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Rate", + "oldfieldname": "rate", + "oldfieldtype": "Currency" + }, + { + "columns": 2, + "fieldname": "tax_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Amount", + "options": "currency" + }, + { + "columns": 2, + "fieldname": "total", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Total", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "column_break_8", + "fieldtype": "Column Break" + }, + { + "fieldname": "accounting_dimensions_section", + "fieldtype": "Section Break", + "label": "Accounting Dimensions" + }, + { + "fieldname": "dimension_col_break", + "fieldtype": "Column Break" + }, + { + "allow_on_submit": 1, + "fieldname": "project", + "fieldtype": "Link", + "label": "Project", + "options": "Project" + }, + { + "fieldname": "description_sb", + "fieldtype": "Section Break" + }, + { + "columns": 2, + "fieldname": "base_total", + "fieldtype": "Currency", + "label": "Total (Company Currency)", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "columns": 2, + "fieldname": "base_tax_amount", + "fieldtype": "Currency", + "label": "Amount (Company Currency)", + "options": "Company:company:default_currency", + "read_only": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2025-11-13 22:14:53.650756", + "modified_by": "Administrator", + "module": "HR", + "name": "Expense Taxes and Charges", + "naming_rule": "Random", + "owner": "Administrator", + "permissions": [], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "ASC", + "states": [], + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.py b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.py new file mode 100644 index 000000000..a28ef57b3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.py @@ -0,0 +1,10 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class ExpenseTaxesandCharges(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/full_and_final_asset.js b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/full_and_final_asset.js new file mode 100644 index 000000000..4709b0db8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/full_and_final_asset.js @@ -0,0 +1,7 @@ +// Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Full and Final Asset", { + // refresh: function(frm) { + // } +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json new file mode 100644 index 000000000..7baaa4c96 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json @@ -0,0 +1,114 @@ +{ + "actions": [], + "creation": "2021-06-28 13:36:58.658985", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "reference", + "asset_name", + "date", + "actual_cost", + "cost", + "column_break_xezj", + "account", + "action", + "status", + "section_break_hudu", + "description" + ], + "fields": [ + { + "columns": 2, + "fieldname": "reference", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Reference", + "options": "Asset Movement", + "read_only": 1, + "reqd": 1 + }, + { + "columns": 1, + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Status", + "options": "Owned\nReturned", + "reqd": 1 + }, + { + "fieldname": "description", + "fieldtype": "Small Text", + "label": "Description" + }, + { + "columns": 2, + "fieldname": "asset_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Asset Name", + "read_only": 1 + }, + { + "fieldname": "date", + "fieldtype": "Datetime", + "label": "Date", + "read_only": 1 + }, + { + "fieldname": "column_break_xezj", + "fieldtype": "Column Break" + }, + { + "columns": 2, + "default": "Return", + "fieldname": "action", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Action", + "options": "Return\nRecover Cost", + "reqd": 1 + }, + { + "fieldname": "section_break_hudu", + "fieldtype": "Section Break" + }, + { + "columns": 2, + "fieldname": "cost", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Cost", + "mandatory_depends_on": "eval:doc.action == \"Recover Cost\"", + "read_only_depends_on": "eval:doc.action != \"Recover Cost\"" + }, + { + "columns": 1, + "fieldname": "account", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Account", + "options": "Account" + }, + { + "fieldname": "actual_cost", + "fieldtype": "Currency", + "label": "Actual Cost", + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2024-04-19 13:20:41.123440", + "modified_by": "Administrator", + "module": "HR", + "name": "Full and Final Asset", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/full_and_final_asset.py b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/full_and_final_asset.py new file mode 100644 index 000000000..661af7da8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/full_and_final_asset.py @@ -0,0 +1,9 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class FullandFinalAsset(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/test_full_and_final_asset.py b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/test_full_and_final_asset.py new file mode 100644 index 000000000..f54c7c0b0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_asset/test_full_and_final_asset.py @@ -0,0 +1,9 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestFullandFinalAsset(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_outstanding_statement/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_outstanding_statement/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json new file mode 100644 index 000000000..75e3bc307 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json @@ -0,0 +1,99 @@ +{ + "actions": [], + "creation": "2021-06-28 13:32:02.167317", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "component", + "reference_document_type", + "reference_document", + "account", + "paid_via_salary_slip", + "column_break_4", + "amount", + "status", + "remark" + ], + "fields": [ + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "columns": 1, + "default": "Unsettled", + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Status", + "options": "Settled\nUnsettled" + }, + { + "fieldname": "remark", + "fieldtype": "Small Text", + "label": "Remark" + }, + { + "columns": 2, + "depends_on": "reference_document_type", + "fieldname": "reference_document", + "fieldtype": "Dynamic Link", + "in_list_view": 1, + "label": "Reference Document", + "mandatory_depends_on": "reference_document_type", + "options": "reference_document_type", + "search_index": 1 + }, + { + "columns": 2, + "fieldname": "component", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Component", + "reqd": 1 + }, + { + "columns": 1, + "fieldname": "account", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Account", + "options": "Account" + }, + { + "columns": 2, + "fieldname": "amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Amount" + }, + { + "columns": 2, + "fieldname": "reference_document_type", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Reference Document Type", + "options": "DocType" + }, + { + "default": "0", + "fieldname": "paid_via_salary_slip", + "fieldtype": "Check", + "label": "Paid via Salary Slip" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2024-04-19 15:34:03.923481", + "modified_by": "Administrator", + "module": "HR", + "name": "Full and Final Outstanding Statement", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.py b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.py new file mode 100644 index 000000000..4b239abec --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.py @@ -0,0 +1,9 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class FullandFinalOutstandingStatement(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement.js b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement.js new file mode 100644 index 000000000..70a99a678 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement.js @@ -0,0 +1,170 @@ +// Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Full and Final Statement", { + refresh: function (frm) { + frm.events.set_queries(frm, "payables"); + frm.events.set_queries(frm, "receivables"); + + if (frm.doc.docstatus == 1 && frm.doc.status == "Unpaid") { + frm.add_custom_button(__("Create Journal Entry"), function () { + frm.events.create_journal_entry(frm); + }); + } + }, + + set_queries: function (frm, type) { + frm.set_query("reference_document_type", type, function () { + let modules = ["HR", "Payroll", "Loan Management"]; + return { + filters: { + istable: 0, + issingle: 0, + module: ["In", modules], + }, + }; + }); + + let filters = {}; + + frm.set_query("reference_document", type, function (doc, cdt, cdn) { + let fnf_doc = frappe.get_doc(cdt, cdn); + + frappe.model.with_doctype(fnf_doc.reference_document_type, function () { + if (frappe.model.is_tree(fnf_doc.reference_document_type)) { + filters["is_group"] = 0; + } + + if (frappe.model.is_submittable(fnf_doc.reference_document_type)) { + filters["docstatus"] = ["!=", 2]; + } + + if (frappe.meta.has_field(fnf_doc.reference_document_type, "company")) { + filters["company"] = frm.doc.company; + } + + if (frappe.meta.has_field(fnf_doc.reference_document_type, "employee")) { + filters["employee"] = frm.doc.employee; + } + + if (fnf_doc.reference_document_type === "Leave Encashment") { + filters["status"] = "Unpaid"; + filters["pay_via_payment_entry"] = 1; + } + }); + + return { + filters: filters, + }; + }); + }, + + employee: function (frm) { + frm.events.get_outstanding_statements(frm); + }, + + total_asset_recovery_cost: function (frm) { + frm.trigger("calculate_total_receivable_amt"); + }, + + get_outstanding_statements: function (frm) { + if (frm.doc.employee) { + frappe.call({ + method: "get_outstanding_statements", + doc: frm.doc, + callback: function () { + frm.refresh(); + }, + }); + } + }, + + calculate_total_payable_amt: function (frm) { + let total_payable_amount = 0; + + frm.doc.payables?.forEach( + (row) => (total_payable_amount += flt(row.amount, precision("amount", row))), + ); + frm.set_value( + "total_payable_amount", + flt(total_payable_amount, precision("total_payable_amount")), + ); + }, + + calculate_total_receivable_amt: function (frm) { + let total_asset_recovery_cost = 0; + let total_receivable_amount = 0; + + frm.doc.assets_allocated?.forEach((row) => { + if (row.action === "Recover Cost") { + total_asset_recovery_cost += flt(row.cost, precision("cost", row)); + } + }); + + frm.doc.receivables?.forEach( + (row) => (total_receivable_amount += flt(row.amount, precision("amount", row))), + ); + + frm.set_value( + "total_asset_recovery_cost", + flt(total_asset_recovery_cost, precision("total_asset_recovery_cost")), + ); + frm.set_value( + "total_receivable_amount", + flt( + total_asset_recovery_cost + total_receivable_amount, + precision("total_receivable_amount"), + ), + ); + }, + + create_journal_entry: function (frm) { + frappe.call({ + method: "create_journal_entry", + doc: frm.doc, + callback: function (r) { + var doclist = frappe.model.sync(r.message); + frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + }, + }); + }, +}); + +frappe.ui.form.on("Full and Final Outstanding Statement", { + reference_document: function (frm, cdt, cdn) { + const child = locals[cdt][cdn]; + if (child.reference_document_type && child.reference_document) { + frappe.call({ + method: "hrms.hr.doctype.full_and_final_statement.full_and_final_statement.get_account_and_amount", + args: { + ref_doctype: child.reference_document_type, + ref_document: child.reference_document, + company: frm.doc.company, + }, + callback: function (r) { + if (r.message) { + frappe.model.set_value(cdt, cdn, "account", r.message[0]); + frappe.model.set_value(cdt, cdn, "amount", r.message[1]); + } + }, + }); + } + }, + + amount: function (frm, cdt, cdn) { + const child_row = locals[cdt][cdn]; + const table = child_row.parentfield; + + if (table === "payables") { + frm.trigger("calculate_total_payable_amt"); + } else { + frm.trigger("calculate_total_receivable_amt"); + } + }, +}); + +frappe.ui.form.on("Full and Final Asset", { + cost: function (frm, _cdt, _cdn) { + frm.trigger("calculate_total_receivable_amt"); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json new file mode 100644 index 000000000..d4cfcac92 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json @@ -0,0 +1,251 @@ +{ + "actions": [], + "autoname": "HR-FNF-.YYYY.-.#####", + "creation": "2021-06-28 13:17:36.050459", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "transaction_date", + "column_break_12", + "company", + "status", + "amended_from", + "employee_details_section", + "date_of_joining", + "relieving_date", + "column_break_4", + "designation", + "department", + "section_break_8", + "payables", + "section_break_10", + "receivables", + "section_break_15", + "assets_allocated", + "total_asset_recovery_cost", + "totals_section", + "total_payable_amount", + "column_break_21", + "total_receivable_amount" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.designation", + "fieldname": "designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation", + "read_only": 1 + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "default": "Unpaid", + "fieldname": "status", + "fieldtype": "Select", + "label": "Status", + "options": "Paid\nUnpaid\nCancelled", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Full and Final Statement", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "section_break_8", + "fieldtype": "Section Break", + "label": "Payables" + }, + { + "fieldname": "section_break_10", + "fieldtype": "Section Break", + "label": "Receivables" + }, + { + "fieldname": "assets_allocated", + "fieldtype": "Table", + "options": "Full and Final Asset" + }, + { + "fetch_from": "employee.relieving_date", + "fieldname": "relieving_date", + "fieldtype": "Date", + "label": "Relieving Date ", + "read_only": 1 + }, + { + "fetch_from": "employee.date_of_joining", + "fieldname": "date_of_joining", + "fieldtype": "Date", + "label": "Date of Joining", + "read_only": 1 + }, + { + "description": "Automatically fetches all assets allocated to the employee, if any", + "fieldname": "section_break_15", + "fieldtype": "Section Break", + "label": "Assets Allocated" + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Company", + "options": "Company", + "read_only": 1 + }, + { + "fieldname": "column_break_12", + "fieldtype": "Column Break" + }, + { + "fieldname": "payables", + "fieldtype": "Table", + "options": "Full and Final Outstanding Statement" + }, + { + "fieldname": "receivables", + "fieldtype": "Table", + "options": "Full and Final Outstanding Statement" + }, + { + "fieldname": "employee_details_section", + "fieldtype": "Section Break", + "label": "Employee Details" + }, + { + "fieldname": "transaction_date", + "fieldtype": "Date", + "in_standard_filter": 1, + "label": "Transaction Date", + "reqd": 1 + }, + { + "fieldname": "totals_section", + "fieldtype": "Section Break", + "label": "Totals" + }, + { + "fieldname": "total_payable_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Total Payable Amount", + "read_only": 1 + }, + { + "fieldname": "column_break_21", + "fieldtype": "Column Break" + }, + { + "fieldname": "total_receivable_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Total Receivable Amount", + "read_only": 1 + }, + { + "fieldname": "total_asset_recovery_cost", + "fieldtype": "Currency", + "label": "Total Asset Recovery Cost", + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [ + { + "is_child_table": 1, + "link_doctype": "Journal Entry Account", + "link_fieldname": "reference_name", + "parent_doctype": "Journal Entry", + "table_fieldname": "accounts" + } + ], + "modified": "2025-12-10 18:00:46.722706", + "modified_by": "Administrator", + "module": "HR", + "name": "Full and Final Statement", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py new file mode 100644 index 000000000..5538928d4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py @@ -0,0 +1,343 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import flt, get_link_to_form, today + +from hrms.hr.doctype.full_and_final_statement.full_and_final_statement_loan_utils import ( + cancel_loan_repayment, + process_loan_accrual, +) + + +class FullandFinalStatement(Document): + def before_insert(self): + self.status = "Unpaid" + self.get_outstanding_statements() + + def validate(self): + self.validate_relieving_date() + self.get_assets_statements() + self.set_total_asset_recovery_cost() + self.set_totals() + + def before_submit(self): + self.validate_settlement("payables") + self.validate_settlement("receivables") + self.validate_assets() + + def on_submit(self): + process_loan_accrual(self) + + def on_cancel(self): + self.ignore_linked_doctypes = ("GL Entry",) + cancel_loan_repayment(self) + + def on_discard(self): + self.db_set("status", "Cancelled") + + def validate_relieving_date(self): + if not self.relieving_date: + frappe.throw( + _("Please set {0} for Employee {1}").format( + frappe.bold(_("Relieving Date")), + get_link_to_form("Employee", self.employee), + ), + title=_("Missing Relieving Date"), + ) + + def validate_settlement(self, component_type): + for data in self.get(component_type, []): + if data.status == "Unsettled": + frappe.throw( + _("Settle all Payables and Receivables before submission"), + title=_("Unsettled Transactions"), + ) + + def validate_assets(self): + pending_returns = [] + + for data in self.assets_allocated: + if data.action == "Return": + if data.status == "Owned": + pending_returns.append(_("Row {0}: {1}").format(data.idx, frappe.bold(data.asset_name))) + elif data.action == "Recover Cost": + data.status = "Owned" + + if pending_returns: + msg = _("All allocated assets should be returned before submission") + msg += "

    " + msg += ", ".join(d for d in pending_returns) + frappe.throw(msg, title=_("Pending Asset Returns")) + + @frappe.whitelist() + def get_outstanding_statements(self): + if not self.relieving_date: + frappe.throw( + _("Set Relieving Date for Employee: {0}").format(get_link_to_form("Employee", self.employee)) + ) + + if not self.payables: + self.add_withheld_salary_slips() + components = self.get_payable_component() + self.create_component_row(components, "payables") + if not self.receivables: + components = self.get_receivable_component() + self.create_component_row(components, "receivables") + self.get_assets_statements() + + def get_assets_statements(self): + if not len(self.get("assets_allocated", [])): + for data in self.get_assets_movement(): + self.append("assets_allocated", data) + + def set_total_asset_recovery_cost(self): + total_cost = 0 + for data in self.assets_allocated: + if data.action == "Recover Cost": + if not data.description: + data.description = _("Asset Recovery Cost for {0}: {1}").format( + data.reference, data.asset_name + ) + total_cost += flt(data.cost) + + self.total_asset_recovery_cost = flt(total_cost, self.precision("total_asset_recovery_cost")) + + def set_totals(self): + total_payable = sum(flt(row.amount) for row in self.payables) + total_receivable = sum(flt(row.amount) for row in self.receivables) + + self.total_payable_amount = flt(total_payable, self.precision("total_payable_amount")) + self.total_receivable_amount = flt( + total_receivable + flt(self.total_asset_recovery_cost), + self.precision("total_receivable_amount"), + ) + + def add_withheld_salary_slips(self): + salary_slips = frappe.get_all( + "Salary Slip", + filters={ + "employee": self.employee, + "status": "Withheld", + "docstatus": ("!=", 2), + }, + fields=["name", "net_pay"], + ) + + for slip in salary_slips: + self.append( + "payables", + { + "status": "Unsettled", + "component": "Salary Slip", + "reference_document_type": "Salary Slip", + "reference_document": slip.name, + "amount": slip.net_pay, + "paid_via_salary_slip": 1, + }, + ) + + def create_component_row(self, components, component_type): + for component in components: + self.append( + component_type, + { + "status": "Unsettled", + "reference_document_type": component if component != "Bonus" else "Additional Salary", + "component": component, + }, + ) + + def get_payable_component(self): + return [ + "Gratuity", + "Expense Claim", + "Bonus", + "Leave Encashment", + ] + + def get_receivable_component(self): + receivables = ["Employee Advance"] + if "lending" in frappe.get_installed_apps(): + receivables.append("Loan") + return receivables + + def get_assets_movement(self): + asset_movements = frappe.get_all( + "Asset Movement Item", + filters={"docstatus": 1}, + fields=["asset", "from_employee", "to_employee", "parent", "asset_name"], + or_filters={"from_employee": self.employee, "to_employee": self.employee}, + ) + + data = [] + inward_movements = [] + outward_movements = [] + for movement in asset_movements: + if movement.to_employee and movement.to_employee == self.employee: + inward_movements.append(movement) + + if movement.from_employee and movement.from_employee == self.employee: + outward_movements.append(movement) + + for movement in inward_movements: + outwards_count = [movement.asset for movement in outward_movements].count(movement.asset) + inwards_counts = [movement.asset for movement in inward_movements].count(movement.asset) + + if inwards_counts > outwards_count: + cost = frappe.db.get_value("Asset", movement.asset, "total_asset_cost") + data.append( + { + "reference": movement.parent, + "asset_name": movement.asset_name, + "date": frappe.db.get_value("Asset Movement", movement.parent, "transaction_date"), + "actual_cost": cost, + "cost": cost, + "action": "Return", + "status": "Owned", + } + ) + return data + + @frappe.whitelist() + def create_journal_entry(self): + precision = frappe.get_precision("Journal Entry Account", "debit_in_account_currency") + jv = frappe.new_doc("Journal Entry") + jv.company = self.company + jv.voucher_type = "Bank Entry" + jv.posting_date = today() + + difference = self.total_payable_amount - self.total_receivable_amount + + for data in self.payables: + if flt(data.amount) > 0 and not data.paid_via_salary_slip: + account_dict = { + "account": data.account, + "debit_in_account_currency": flt(data.amount, precision), + "user_remark": data.remark, + } + if data.reference_document_type in ["Expense Claim", "Gratuity", "Leave Encashment"]: + account_dict["party_type"] = "Employee" + account_dict["party"] = self.employee + + jv.append("accounts", account_dict) + + for data in self.receivables: + if flt(data.amount) > 0: + account_dict = { + "account": data.account, + "credit_in_account_currency": flt(data.amount, precision), + "user_remark": data.remark, + } + if data.reference_document_type == "Employee Advance": + account_dict["party_type"] = "Employee" + account_dict["party"] = self.employee + + jv.append("accounts", account_dict) + + for data in self.assets_allocated: + if data.action == "Recover Cost": + jv.append( + "accounts", + { + "account": data.account, + "credit_in_account_currency": flt(data.cost, precision), + "party_type": "Employee", + "party": self.employee, + "user_remark": data.description, + }, + ) + + jv.append( + "accounts", + { + "credit_in_account_currency": difference if difference > 0 else 0, + "debit_in_account_currency": -(difference) if difference < 0 else 0, + "reference_type": self.doctype, + "reference_name": self.name, + }, + ) + return jv + + def update_reference_document_payment_status(self, payable): + doc = frappe.get_cached_doc(payable.reference_document_type, payable.reference_document) + amount = payable.amount if self.docstatus == 1 and self.status == "Paid" else 0 + doc.db_set("paid_amount", amount) + doc.set_status(update=True) + + def update_linked_payable_documents(self): + """update payment status in linked payable documents""" + for payable in self.payables: + if payable.reference_document_type in ["Gratuity", "Leave Encashment"]: + self.update_reference_document_payment_status(payable) + + +@frappe.whitelist() +def get_account_and_amount(ref_doctype, ref_document, company): + if not ref_doctype or not ref_document: + return None + + if ref_doctype == "Salary Slip": + salary_details = frappe.db.get_value( + "Salary Slip", ref_document, ["payroll_entry", "net_pay"], as_dict=1 + ) + amount = salary_details.net_pay + payable_account = ( + frappe.db.get_value("Payroll Entry", salary_details.payroll_entry, "payroll_payable_account") + if salary_details.payroll_entry + else None + ) + return [payable_account, amount] + + if ref_doctype == "Gratuity": + payable_account, amount = frappe.db.get_value("Gratuity", ref_document, ["payable_account", "amount"]) + return [payable_account, amount] + + if ref_doctype == "Expense Claim": + details = frappe.db.get_value( + "Expense Claim", + ref_document, + ["payable_account", "grand_total", "total_amount_reimbursed", "total_advance_amount"], + as_dict=True, + ) + payable_account = details.payable_account + amount = details.grand_total - (details.total_amount_reimbursed + details.total_advance_amount) + return [payable_account, amount] + + if ref_doctype == "Loan": + details = frappe.db.get_value( + "Loan", ref_document, ["payment_account", "total_payment", "total_amount_paid"], as_dict=1 + ) + payment_account = details.payment_account + amount = details.total_payment - details.total_amount_paid + return [payment_account, amount] + + if ref_doctype == "Employee Advance": + details = frappe.db.get_value( + "Employee Advance", + ref_document, + ["advance_account", "paid_amount", "claimed_amount", "return_amount"], + as_dict=1, + ) + payment_account = details.advance_account + amount = details.paid_amount - (details.claimed_amount + details.return_amount) + return [payment_account, amount] + + if ref_doctype == "Leave Encashment": + amount = frappe.db.get_value("Leave Encashment", ref_document, "encashment_amount") + payable_account = frappe.get_cached_value("Company", company, "default_payroll_payable_account") + return [payable_account, amount] + + +def update_full_and_final_statement_status(doc, method=None): + """Updates FnF status on Journal Entry Submission/Cancellation""" + status = "Paid" if doc.docstatus == 1 else "Unpaid" + + for entry in doc.accounts: + if entry.reference_type == "Full and Final Statement": + fnf = frappe.get_doc("Full and Final Statement", entry.reference_name) + fnf.db_set("status", status) + fnf.notify_update() + fnf.update_linked_payable_documents() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement_list.js new file mode 100644 index 000000000..94a2c1891 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement_list.js @@ -0,0 +1,11 @@ +frappe.listview_settings["Full and Final Statement"] = { + get_indicator: function (doc) { + var colors = { + Draft: "red", + Unpaid: "orange", + Paid: "green", + Cancelled: "red", + }; + return [__(doc.status), colors[doc.status], "status,=," + doc.status]; + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement_loan_utils.py b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement_loan_utils.py new file mode 100644 index 000000000..ea55f44f4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/full_and_final_statement_loan_utils.py @@ -0,0 +1,101 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +from typing import TYPE_CHECKING + +import frappe +from frappe import _ + +from hrms.payroll.doctype.salary_slip.salary_slip_loan_utils import if_lending_app_installed + +if TYPE_CHECKING: + from hrms.hr.doctype.full_and_final_statement.full_and_final_statement import FullandFinalStatement + + +@if_lending_app_installed +def process_loan_accrual(doc: "FullandFinalStatement"): + from lending.loan_management.doctype.loan_interest_accrual.loan_interest_accrual import ( + make_loan_interest_accrual_entry, + ) + from lending.loan_management.doctype.loan_repayment.loan_repayment import ( + calculate_amounts, + create_repayment_entry, + get_pending_principal_amount, + ) + + loan_receivables = [] + for receivable in doc.receivables: + if receivable.component != "Loan": + continue + + loan_receivables.append(receivable.reference_document) + + for loan in loan_receivables: + loan_doc = frappe.get_doc("Loan", loan) + loan_repayment_schedule = frappe.get_doc("Loan Repayment Schedule", {"loan": loan, "docstatus": 1}) + if loan_repayment_schedule.repayment_schedule: + amounts = [] + for repayment_schedule in loan_repayment_schedule.repayment_schedule: + amounts = calculate_amounts(loan, doc.transaction_date, "Normal Repayment") + pending_principal_amount = get_pending_principal_amount(loan_doc) + if not repayment_schedule.is_accrued: + args = frappe._dict( + { + "loan": loan, + "applicant_type": loan_doc.applicant_type, + "applicant": loan_doc.applicant, + "interest_income_account": loan_doc.interest_income_account, + "loan_account": loan_doc.loan_account, + "pending_principal_amount": amounts["pending_principal_amount"], + "payable_principal": repayment_schedule.principal_amount, + "interest_amount": repayment_schedule.interest_amount, + "total_pending_interest_amount": pending_principal_amount, + "penalty_amount": amounts["penalty_amount"], + "posting_date": doc.transaction_date, + "repayment_schedule_name": repayment_schedule.name, + "accrual_type": "Regular", + "due_date": doc.transaction_date, + } + ) + make_loan_interest_accrual_entry(args) + frappe.db.set_value("Repayment Schedule", repayment_schedule.name, "is_accrued", 1) + + repayment_entry = create_repayment_entry( + loan, + doc.employee, + doc.company, + doc.transaction_date, + loan_doc.loan_product, + "Normal Repayment", + amounts["interest_amount"], + amounts["pending_principal_amount"], + receivable.amount, + ) + + repayment_entry.save() + repayment_entry.submit() + + +@if_lending_app_installed +def cancel_loan_repayment(doc: "FullandFinalStatement"): + loan_receivables = [] + for receivable in doc.receivables: + if receivable.component != "Loan": + continue + + loan_receivables.append(receivable.reference_document) + + for loan in loan_receivables: + posting_date = frappe.utils.getdate(doc.transaction_date) + loan_repayment = frappe.get_doc( + "Loan Repayment", {"against_loan": loan, "docstatus": 1, "posting_date": posting_date} + ) + + if loan_repayment: + loan_repayment.cancel() + + loan_interest_accruals = frappe.get_all( + "Loan Interest Accrual", filters={"loan": loan, "docstatus": 1, "posting_date": posting_date} + ) + for accrual in loan_interest_accruals: + frappe.get_doc("Loan Interest Accrual", accrual.name).cancel() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/test_full_and_final_statement.py b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/test_full_and_final_statement.py new file mode 100644 index 000000000..f9d486208 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/full_and_final_statement/test_full_and_final_statement.py @@ -0,0 +1,111 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, now_datetime, today + +from erpnext.assets.doctype.asset.test_asset import create_asset_data +from erpnext.setup.doctype.employee.test_employee import make_employee +from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_purchase_receipt + + +class TestFullandFinalStatement(IntegrationTestCase): + def setUp(self): + for dt in ["Full and Final Statement", "Asset", "Asset Movement", "Asset Movement Item"]: + frappe.db.delete(dt) + + self.setup_fnf() + + def setup_fnf(self): + create_asset_data() + + self.employee = make_employee( + "test_fnf@example.com", company="_Test Company", relieving_date=add_days(today(), 30) + ) + self.movement = create_asset_movement(self.employee) + self.fnf = create_full_and_final_statement(self.employee) + + def test_check_bootstraped_data_asset_movement_and_jv_creation(self): + payables_bootstraped_component = [ + "Gratuity", + "Expense Claim", + "Bonus", + "Leave Encashment", + ] + + receivable_bootstraped_component = self.fnf.get_receivable_component() + + # checking payables and receivables bootstraped value + self.assertEqual([payable.component for payable in self.fnf.payables], payables_bootstraped_component) + self.assertEqual( + [receivable.component for receivable in self.fnf.receivables], receivable_bootstraped_component + ) + + # checking allocated asset + self.assertIn(self.movement, [asset.reference for asset in self.fnf.assets_allocated]) + + def test_asset_cost(self): + self.fnf.receivables[0].amount = 50000 + + self.fnf.assets_allocated[0].action = "Recover Cost" + self.fnf.save() + + self.assertEqual(self.fnf.assets_allocated[0].actual_cost, 100000.0) + self.assertEqual(self.fnf.assets_allocated[0].cost, 100000.0) + self.assertEqual(self.fnf.total_asset_recovery_cost, 100000.0) + self.assertEqual(self.fnf.total_receivable_amount, 150000.0) + + def test_journal_entry(self): + self.fnf.receivables[0].amount = 50000 + self.fnf.assets_allocated[0].action = "Recover Cost" + self.fnf.save() + + jv = self.fnf.create_journal_entry() + + self.assertEqual(jv.accounts[0].credit_in_account_currency, 50000.0) + self.assertEqual(jv.accounts[1].credit_in_account_currency, 100000.0) + + debit_entry = jv.accounts[-1] + self.assertEqual(debit_entry.debit_in_account_currency, 150000.0) + self.assertEqual(debit_entry.reference_type, "Full and Final Statement") + self.assertEqual(debit_entry.reference_name, self.fnf.name) + + def test_status_on_discard(self): + self.fnf.discard() + self.fnf.reload() + self.assertEqual(self.fnf.status, "Cancelled") + + +def create_full_and_final_statement(employee): + fnf = frappe.new_doc("Full and Final Statement") + fnf.employee = employee + fnf.transaction_date = today() + fnf.save() + return fnf + + +def create_asset_movement(employee): + asset_name = create_asset() + movement = frappe.new_doc("Asset Movement") + movement.company = "_Test Company" + movement.purpose = "Issue" + movement.transaction_date = now_datetime() + + movement.append("assets", {"asset": asset_name, "to_employee": employee}) + + movement.save() + movement.submit() + return movement.name + + +def create_asset(): + pr = make_purchase_receipt(item_code="Macbook Pro", qty=1, rate=100000.0, location="Test Location") + + asset_name = frappe.db.get_value("Asset", {"purchase_receipt": pr.name}, "name") + asset = frappe.get_doc("Asset", asset_name) + asset.calculate_depreciation = 0 + asset.available_for_use_date = today() + asset.save() + asset.submit() + return asset_name diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/goal/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/goal/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal.js b/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal.js new file mode 100644 index 000000000..25d4adf09 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal.js @@ -0,0 +1,134 @@ +// Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Goal", { + refresh(frm) { + frm.trigger("set_filters"); + frm.trigger("add_custom_buttons"); + + if (frm.doc.is_group) { + frm.set_df_property( + "progress", + "description", + __("Group goal's progress is auto-calculated based on the child goals."), + ); + } + }, + + set_filters(frm) { + frm.set_query("parent_goal", () => { + return { + filters: { + is_group: 1, + name: ["!=", frm.doc.name], + employee: frm.doc.employee, + }, + }; + }); + + frm.set_query("kra", () => { + return { + query: "hrms.hr.doctype.appraisal.appraisal.get_kras_for_employee", + filters: { + employee: frm.doc.employee, + appraisal_cycle: frm.doc.appraisal_cycle, + }, + }; + }); + + frm.set_query("appraisal_cycle", () => { + return { + filters: { + status: ["!=", "Completed"], + company: frm.doc.company, + }, + }; + }); + }, + + add_custom_buttons(frm) { + if (frm.doc.__islocal || frm.doc.status === "Completed") return; + const doc_status = frm.doc.status; + + if (doc_status === "Archived") { + frm.add_custom_button( + __("Unarchive"), + () => { + frm.set_value("status", ""); + frm.save(); + }, + __("Status"), + ); + } + + if (doc_status === "Closed") { + frm.add_custom_button( + __("Reopen"), + () => { + frm.set_value("status", ""); + frm.save(); + }, + __("Status"), + ); + } + + if (doc_status !== "Archived") { + frm.add_custom_button( + __("Archive"), + () => { + frm.set_value("status", "Archived"); + frm.save(); + }, + __("Status"), + ); + } + + if (doc_status !== "Closed") { + frm.add_custom_button( + __("Close"), + () => { + frm.set_value("status", "Closed"); + frm.save(); + }, + __("Status"), + ); + } + }, + + kra(frm) { + if (!frm.doc.appraisal_cycle) { + frm.set_value("kra", ""); + + frappe.msgprint({ + message: __("Please select the Appraisal Cycle first."), + title: __("Mandatory"), + }); + + return; + } + + if (frm.doc.__islocal || !frm.doc.is_group) return; + + let msg = __( + "Changing KRA in this parent goal will align all the child goals to the same KRA, if any.", + ); + msg += "
    "; + msg += __("Do you still want to proceed?"); + + frappe.confirm( + msg, + () => {}, + () => { + frappe.db.get_value("Goal", frm.doc.name, "kra", (r) => + frm.set_value("kra", r.kra), + ); + }, + ); + }, + + is_group(frm) { + if (frm.doc.__islocal && frm.doc.is_group) { + frm.set_value("progress", 0); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal.json b/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal.json new file mode 100644 index 000000000..95e4c9a57 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal.json @@ -0,0 +1,282 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "format:HR-GOAL-{YYYY}-{####}", + "creation": "2022-08-24 16:07:57.669638", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "goal_name", + "is_group", + "parent_goal", + "column_break_tyox", + "progress", + "status", + "section_break_nf0j", + "employee", + "employee_name", + "company", + "user", + "column_break_ahxr", + "start_date", + "end_date", + "section_break_cycle", + "appraisal_cycle", + "column_break_4", + "kra", + "section_break_12", + "description", + "lft", + "rgt", + "old_parent" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_preview": 1, + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "depends_on": "employee", + "fetch_from": "appraisal_cycle.start_date", + "fetch_if_empty": 1, + "fieldname": "start_date", + "fieldtype": "Date", + "in_standard_filter": 1, + "label": "Start Date", + "reqd": 1 + }, + { + "allow_in_quick_entry": 1, + "fieldname": "progress", + "fieldtype": "Percent", + "in_list_view": 1, + "label": "Progress", + "read_only_depends_on": "eval:doc.is_group || doc.status=='Closed'" + }, + { + "default": "Pending", + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Status", + "options": "\nPending\nIn Progress\nCompleted\nArchived\nClosed", + "read_only": 1 + }, + { + "allow_in_quick_entry": 1, + "collapsible": 1, + "fieldname": "section_break_12", + "fieldtype": "Section Break", + "label": "Description" + }, + { + "allow_in_quick_entry": 1, + "fieldname": "description", + "fieldtype": "Text Editor", + "label": "Description" + }, + { + "fieldname": "lft", + "fieldtype": "Int", + "hidden": 1, + "label": "Left", + "no_copy": 1, + "read_only": 1 + }, + { + "fieldname": "rgt", + "fieldtype": "Int", + "hidden": 1, + "label": "Right", + "no_copy": 1, + "read_only": 1 + }, + { + "allow_in_quick_entry": 1, + "default": "0", + "fieldname": "is_group", + "fieldtype": "Check", + "in_list_view": 1, + "label": "Is Group", + "set_only_once": 1 + }, + { + "fieldname": "old_parent", + "fieldtype": "Link", + "hidden": 1, + "label": "Old Parent", + "options": "Goal" + }, + { + "allow_in_quick_entry": 1, + "depends_on": "employee", + "fieldname": "parent_goal", + "fieldtype": "Link", + "label": "Parent Goal", + "options": "Goal" + }, + { + "allow_in_quick_entry": 1, + "depends_on": "employee", + "fetch_from": "parent_goal.kra", + "fieldname": "kra", + "fieldtype": "Link", + "label": "KRA", + "mandatory_depends_on": "eval: !doc.parent_goal && doc.appraisal_cycle", + "options": "KRA", + "read_only_depends_on": "eval: doc.parent_goal" + }, + { + "allow_in_quick_entry": 1, + "depends_on": "employee", + "fetch_from": "parent_goal.appraisal_cycle", + "fieldname": "appraisal_cycle", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Appraisal Cycle", + "options": "Appraisal Cycle", + "read_only_depends_on": "eval: doc.parent_goal", + "set_only_once": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "in_list_view": 1, + "in_preview": 1, + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.user_id", + "fieldname": "user", + "fieldtype": "Data", + "label": "User", + "read_only": 1 + }, + { + "allow_in_quick_entry": 1, + "depends_on": "employee", + "fetch_from": "appraisal_cycle.end_date", + "fetch_if_empty": 1, + "fieldname": "end_date", + "fieldtype": "Date", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "End Date" + }, + { + "fieldname": "column_break_tyox", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_nf0j", + "fieldtype": "Section Break" + }, + { + "fieldname": "goal_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Goal", + "reqd": 1 + }, + { + "description": "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress", + "fieldname": "section_break_cycle", + "fieldtype": "Section Break", + "label": "Appraisal Linking" + }, + { + "fieldname": "column_break_ahxr", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "is_tree": 1, + "links": [], + "modified": "2024-03-27 13:09:45.520429", + "modified_by": "Administrator", + "module": "HR", + "name": "Goal", + "naming_rule": "Expression", + "nsm_parent_field": "parent_goal", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "write": 1 + } + ], + "search_fields": "employee, goal_name", + "show_preview_popup": 1, + "show_title_field_in_link": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "goal_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal.py b/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal.py new file mode 100644 index 000000000..9b4b8ec27 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal.py @@ -0,0 +1,237 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from pypika import CustomFunction + +import frappe +from frappe import _ +from frappe.query_builder.functions import Avg +from frappe.utils import cint, flt +from frappe.utils.nestedset import NestedSet + +from hrms.hr.doctype.appraisal_cycle.appraisal_cycle import validate_active_appraisal_cycle +from hrms.hr.utils import validate_active_employee + + +class Goal(NestedSet): + nsm_parent_field = "parent_goal" + + def before_insert(self): + if cint(self.is_group): + self.progress = 0 + + def validate(self): + if self.appraisal_cycle: + validate_active_appraisal_cycle(self.appraisal_cycle) + + validate_active_employee(self.employee) + self.validate_parent_fields() + self.validate_from_to_dates(self.start_date, self.end_date) + self.validate_progress() + self.set_status() + + def on_update(self): + NestedSet.on_update(self) + + doc_before_save = self.get_doc_before_save() + + if doc_before_save: + self.update_kra_in_child_goals(doc_before_save) + + if doc_before_save.parent_goal != self.parent_goal: + # parent goal changed, update progress of old parent + self.update_parent_progress(doc_before_save.parent_goal) + + self.update_parent_progress() + self.update_goal_progress_in_appraisal() + + def on_trash(self): + NestedSet.on_trash(self, allow_root_deletion=True) + + def after_delete(self): + self.update_parent_progress() + self.update_goal_progress_in_appraisal() + + def validate_parent_fields(self): + if not self.parent_goal: + return + + parent_details = frappe.db.get_value( + "Goal", self.parent_goal, ["employee", "kra", "appraisal_cycle"], as_dict=True + ) + if not parent_details: + return + + if self.employee != parent_details.employee: + frappe.throw( + _("Goal should be owned by the same employee as its parent goal."), title=_("Not Allowed") + ) + if self.kra != parent_details.kra: + frappe.throw( + _("Goal should be aligned with the same KRA as its parent goal."), title=_("Not Allowed") + ) + if self.appraisal_cycle != parent_details.appraisal_cycle: + frappe.throw( + _("Goal should belong to the same Appraisal Cycle as its parent goal."), + title=_("Not Allowed"), + ) + + def validate_progress(self): + if flt(self.progress) > 100: + frappe.throw(_("Goal progress percentage cannot be more than 100.")) + + def set_status(self, status=None): + if self.status in ["Archived", "Closed"]: + return + if flt(self.progress) == 0: + self.status = "Pending" + elif flt(self.progress) == 100: + self.status = "Completed" + elif flt(self.progress) < 100: + self.status = "In Progress" + + def update_kra_in_child_goals(self, doc_before_save): + """Aligns children's KRA to parent goal's KRA if parent goal's KRA is changed""" + if doc_before_save.kra != self.kra and self.is_group: + Goal = frappe.qb.DocType("Goal") + (frappe.qb.update(Goal).set(Goal.kra, self.kra).where(Goal.parent_goal == self.name)).run() + + frappe.msgprint(_("KRA updated for all child goals."), alert=True, indicator="green") + + def update_parent_progress(self, old_parent=None): + parent_goal = old_parent or self.parent_goal + + if not parent_goal: + return + + Goal = frappe.qb.DocType("Goal") + avg_goal_completion = ( + frappe.qb.from_(Goal) + .select(Avg(Goal.progress).as_("avg_goal_completion")) + .where( + (Goal.parent_goal == parent_goal) + & (Goal.employee == self.employee) + # archived goals should not contribute to progress + & (Goal.status != "Archived") + ) + ).run()[0][0] + + parent_goal_doc = frappe.get_doc("Goal", parent_goal) + parent_goal_doc.progress = flt(avg_goal_completion, parent_goal_doc.precision("progress")) + parent_goal_doc.ignore_permissions = True + parent_goal_doc.ignore_mandatory = True + parent_goal_doc.save() + + def update_goal_progress_in_appraisal(self): + if not self.appraisal_cycle: + return + + appraisal = frappe.db.get_value( + "Appraisal", {"employee": self.employee, "appraisal_cycle": self.appraisal_cycle} + ) + if appraisal: + appraisal = frappe.get_doc("Appraisal", appraisal) + appraisal.set_goal_score(update=True) + + +@frappe.whitelist() +def get_children(doctype: str, parent: str, is_root: bool = False, **filters) -> list[dict]: + Goal = frappe.qb.DocType(doctype) + + query = ( + frappe.qb.from_(Goal) + .select( + Goal.name.as_("value"), + Goal.goal_name.as_("title"), + Goal.is_group.as_("expandable"), + Goal.status, + Goal.employee, + Goal.employee_name, + Goal.appraisal_cycle, + Goal.progress, + Goal.kra, + ) + .where(Goal.status != "Archived") + ) + + if filters.get("employee"): + query = query.where(Goal.employee == filters.get("employee")) + + if filters.get("appraisal_cycle"): + query = query.where(Goal.appraisal_cycle == filters.get("appraisal_cycle")) + + if filters.get("goal"): + query = query.where(Goal.parent_goal == filters.get("goal")) + elif parent and not is_root: + # via expand child + query = query.where(Goal.parent_goal == parent) + else: + ifnull = CustomFunction("IFNULL", ["value", "default"]) + query = query.where(ifnull(Goal.parent_goal, "") == "") + + if filters.get("date_range"): + date_range = frappe.parse_json(filters.get("date_range")) + + query = query.where( + (Goal.start_date.between(date_range[0], date_range[1])) + & ((Goal.end_date.isnull()) | (Goal.end_date.between(date_range[0], date_range[1]))) + ) + + goals = query.orderby(Goal.employee, Goal.kra).run(as_dict=True) + _update_goal_completion_status(goals) + + return goals + + +def _update_goal_completion_status(goals: list[dict]) -> list[dict]: + for goal in goals: + if goal.expandable: # group node + total_goals = frappe.db.count("Goal", dict(parent_goal=goal.value)) + + if total_goals: + completed = frappe.db.count("Goal", {"parent_goal": goal.value, "status": "Completed"}) or 0 + # set completion status of group node + goal["completion_count"] = _("{0} of {1} Completed").format(completed, total_goals) + + return goals + + +@frappe.whitelist() +def update_progress(progress: float, goal: str) -> None: + goal = frappe.get_doc("Goal", goal) + goal.progress = progress + goal.flags.ignore_mandatory = True + goal.save() + + return goal + + +@frappe.whitelist() +def update_status(status: str, goals: str | list) -> None: + if isinstance(goals, str): + import json + + goals = json.loads(goals) + + for goal in goals: + goal = frappe.get_doc("Goal", goal) + goal.status = status + if status == "Completed": + goal.progress = 100 + goal.flags.ignore_mandatory = True + goal.save() + + return goals + + +@frappe.whitelist() +def add_tree_node(): + from frappe.desk.treeview import make_tree_args + + args = frappe.form_dict + args = make_tree_args(**args) + + if args.parent_goal == "All Goals" or not frappe.db.exists("Goal", args.parent_goal): + args.parent_goal = None + + frappe.get_doc(args).insert() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal_list.js new file mode 100644 index 000000000..a91870160 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal_list.js @@ -0,0 +1,155 @@ +frappe.listview_settings["Goal"] = { + add_fields: ["end_date", "status"], + + get_indicator: function (doc) { + const status_color = { + Pending: "yellow", + "In Progress": "orange", + Completed: "green", + Archived: "gray", + Closed: "red", + }; + return [__(doc.status), status_color[doc.status], "status,=," + doc.status]; + }, + + formatters: { + end_date(value, df, doc) { + if (!value) return ""; + if (doc.status === "Completed" || doc.status === "Archived") return ""; + + const d = moment(value); + const now = moment(); + const color = d < now ? "red" : "green"; + + return ` +
    + ${d.fromNow()} +
    + `; + }, + }, + + onload: function (listview) { + const status_menu = listview.page.add_custom_button_group(__("Update Status")); + const options = [ + { present: "Complete", past: "Completed" }, + { present: "Archive", past: "Archived" }, + { present: "Close", past: "Closed" }, + { present: "Unarchive", past: "Unarchived" }, + { present: "Reopen", past: "Reopened" }, + ]; + options.forEach((option) => { + listview.page.add_custom_menu_item(status_menu, __(option.present), () => + this.trigger_update_status_dialog(option.past, listview), + ); + }); + }, + + trigger_update_status_dialog: function (status, listview) { + const checked_items = listview.get_checked_items(); + const items_to_be_updated = checked_items + .filter( + (item) => + !item.is_group && + get_applicable_current_statuses(status).includes(item.status), + ) + .map((item) => item.name); + if (!items_to_be_updated.length) return this.trigger_error_dialogs(checked_items, status); + + if (status === "Unarchived" || status === "Reopened") { + const simple_present_tense = { + Unarchived: "Unarchive", + Reopened: "Reopen", + }; + frappe.confirm( + __("{0} {1} {2}?", [ + simple_present_tense[status], + items_to_be_updated.length.toString(), + items_to_be_updated.length === 1 ? __("goal") : __("goals"), + ]), + () => { + this.update_status("", items_to_be_updated, listview); + this.trigger_error_dialogs(checked_items, status); + }, + ); + } else { + frappe.confirm( + __("Mark {0} {1} as {2}?", [ + items_to_be_updated.length.toString(), + items_to_be_updated.length === 1 ? __("goal") : __("goals"), + status, + ]), + () => { + this.update_status(status, items_to_be_updated, listview); + this.trigger_error_dialogs(checked_items, status); + }, + ); + } + }, + + trigger_error_dialogs: function (checked_items, status) { + if (!checked_items.length) { + frappe.throw(__("No items selected")); + return; + } + + if (checked_items.some((item) => item.is_group)) + frappe.msgprint({ + title: __("Error"), + message: __("Cannot update status of Goal groups"), + indicator: "orange", + }); + + const applicable_statuses = get_applicable_current_statuses(status); + if (checked_items.some((item) => !applicable_statuses.includes(item.status))) + frappe.msgprint({ + title: __("Error"), + message: __("Only {0} Goals can be {1}", [ + frappe.utils.comma_and(applicable_statuses), + status, + ]), + indicator: "orange", + }); + }, + + update_status: function (status, goals, listview) { + frappe + .call({ + method: "hrms.hr.doctype.goal.goal.update_status", + args: { + status: status, + goals: goals, + }, + }) + .then((r) => { + if (!r.exc && r.message) { + frappe.show_alert({ + message: __("Goals updated successfully"), + indicator: "green", + }); + } else { + frappe.msgprint(__("Could not update goals")); + } + listview.clear_checked_items(); + listview.refresh(); + }); + }, +}; + +// Returns all possible current statuses that can be changed to the new one +const get_applicable_current_statuses = (new_status) => { + switch (new_status) { + case "Completed": + return ["Pending", "In Progress"]; + case "Archived": + return ["Pending", "In Progress", "Closed"]; + case "Closed": + return ["Pending", "In Progress", "Archived"]; + case "Unarchived": + return ["Archived"]; + case "Reopened": + return ["Closed"]; + } +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal_tree.js b/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal_tree.js new file mode 100644 index 000000000..529dd653c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/goal/goal_tree.js @@ -0,0 +1,295 @@ +frappe.provide("frappe.treeview_settings"); + +frappe.treeview_settings["Goal"] = { + get_tree_nodes: "hrms.hr.doctype.goal.goal.get_children", + filters: [ + { + fieldname: "company", + fieldtype: "Select", + options: erpnext.utils.get_tree_options("company"), + label: __("Company"), + default: erpnext.utils.get_tree_default("company"), + }, + { + fieldname: "appraisal_cycle", + fieldtype: "Link", + options: "Appraisal Cycle", + label: __("Appraisal Cycle"), + get_query() { + const company = + frappe.treeview_settings["Goal"].page.fields_dict.company.get_value(); + + return { + filters: { + company: company, + }, + }; + }, + }, + { + fieldname: "employee", + fieldtype: "Link", + options: "Employee", + label: __("Employee"), + }, + { + fieldname: "date_range", + fieldtype: "DateRange", + label: __("Date Range"), + }, + ], + fields: [ + { + fieldtype: "Data", + fieldname: "goal_name", + label: __("Goal"), + reqd: 1, + }, + { + fieldtype: "Check", + fieldname: "is_group", + label: __("Is Group"), + description: __("Child nodes can only be created under 'Group' type nodes"), + }, + { + fieldtype: "Section Break", + }, + { + fieldtype: "Link", + fieldname: "employee", + label: __("Employee"), + options: "Employee", + reqd: 1, + default() { + const treeview = frappe.treeview_settings["Goal"].treeview; + let employee = + treeview.tree.get_selected_node().data.employee || + treeview.tree.session_employee || + ""; + + return employee; + }, + }, + { + fieldtype: "Percent", + fieldname: "progress", + label: __("Progress"), + }, + { + fieldtype: "Column Break", + }, + { + fieldtype: "Date", + fieldname: "start_date", + label: __("Start Date"), + reqd: 1, + default: frappe.datetime.month_start(), + }, + { + fieldtype: "Date", + fieldname: "end_date", + label: __("End Date"), + default: frappe.datetime.month_end(), + }, + { + fieldtype: "Section Break", + label: __("Appraisal Linking"), + description: __( + "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress", + ), + depends_on: "eval:doc.employee", + }, + { + fieldtype: "Link", + fieldname: "appraisal_cycle", + label: __("Appraisal Cycle"), + options: "Appraisal Cycle", + get_query() { + const company = + frappe.treeview_settings["Goal"].page.fields_dict.company.get_value(); + + return { + filters: { + company: company, + status: ["!=", "Completed"], + }, + }; + }, + default() { + const treeview = frappe.treeview_settings["Goal"].treeview; + let appraisal_cycle = + treeview.page.fields_dict.appraisal_cycle.get_value() || + treeview.tree.get_selected_node().data.appraisal_cycle || + ""; + + return appraisal_cycle; + }, + }, + { + fieldtype: "Column Break", + }, + { + fieldtype: "Link", + fieldname: "kra", + label: __("KRA"), + options: "KRA", + mandatory_depends_on: "eval:doc.appraisal_cycle && !doc.parent_goal", + get_query() { + return { + query: "hrms.hr.doctype.appraisal.appraisal.get_kras_for_employee", + filters: { + employee: cur_dialog.get_value("employee"), + appraisal_cycle: cur_dialog.get_value("appraisal_cycle"), + }, + }; + }, + default() { + const treeview = frappe.treeview_settings["Goal"].treeview; + return treeview.tree.get_selected_node().data.kra; + }, + }, + { + fieldtype: "Section Break", + fieldname: "description_section", + label: __("Description"), + collapsible: 1, + depends_on: "eval:doc.employee", + }, + { + fieldtype: "Text Editor", + fieldname: "description", + }, + ], + onload(treeview) { + frappe.treeview_settings["Goal"].page = {}; + $.extend(frappe.treeview_settings["Goal"].page, treeview.page); + treeview.make_tree(); + + // set the current session employee + frappe.db + .get_value("Employee", { user_id: frappe.session.user }, "name") + .then((employee_record) => { + treeview.tree.session_employee = employee_record?.message?.name; + }); + }, + onrender(node) { + // show KRA against the goal + if (node.data.kra) { + $(node.$tree_link).find(".tree-label").append(` + + ${node.data.kra} + + `); + } + + // show goal completion status + if (node.data.completion_count !== undefined) { + $(` + + ${node.data.completion_count} + + `).insertBefore(node.$ul); + } else if (node.data && node.data.status !== undefined) { + const status_color = { + Pending: "yellow", + "In Progress": "orange", + Completed: "green", + Archived: "gray", + }; + $(` + + ${node.data.status} + + `).insertBefore(node.$ul); + } + }, + breadcrumb: "Performance", + get_tree_root: false, + add_tree_node: "hrms.hr.doctype.goal.goal.add_tree_node", + root_label: __("All Goals"), + ignore_fields: ["parent_goal"], + post_render(treeview) { + frappe.treeview_settings["Goal"].treeview = {}; + $.extend(frappe.treeview_settings["Goal"].treeview, treeview); + }, + get_label(node) { + if (node.title && node.title !== node.label) { + return ( + __(node.title) + ` (${node.data.employee_name})` + ); + } else { + return __(node.title || node.label); + } + }, + toolbar: [ + { + label: __("Update Progress"), + condition: function (node) { + return !node.root && !node.expandable; + }, + click: function (node) { + const dialog = new frappe.ui.Dialog({ + title: __("Update Progress"), + fields: [ + { + fieldname: "progress", + fieldtype: "Percent", + in_place_edit: true, + default: node.data.progress, + }, + ], + primary_action: function () { + dialog.hide(); + return update_progress(node, dialog.get_values()["progress"]); + }, + primary_action_label: __("Update"), + }); + dialog.show(); + }, + }, + { + label: __("Mark as Completed"), + condition: function (node) { + return !node.is_root && !node.expandable && node.data.status != "Completed"; + }, + click: function (node) { + frappe.confirm(__("Mark {0} as Completed?", [node.label.bold()]), () => + update_progress(node, 100), + ); + }, + }, + ], + extend_toolbar: true, +}; + +function update_progress(node, progress) { + return frappe + .call({ + method: "hrms.hr.doctype.goal.goal.update_progress", + args: { + goal: node.data.value, + progress: progress, + }, + }) + .then((r) => { + if (!r.exc && r.message) { + frappe.treeview_settings["Goal"].treeview.tree.load_children( + frappe.treeview_settings["Goal"].treeview.tree.root_node, + true, + ); + + frappe.show_alert({ + message: __("Goal updated successfully"), + indicator: "green", + }); + } else { + frappe.msgprint(__("Could not update Goal")); + } + }); +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/goal/test_goal.py b/apps/erpnext/src/hrms/hrms/hr/doctype/goal/test_goal.py new file mode 100644 index 000000000..947393d85 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/goal/test_goal.py @@ -0,0 +1,232 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.appraisal_template.test_appraisal_template import create_kras +from hrms.hr.doctype.goal.goal import get_children, update_status + + +class TestGoal(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Goal") + create_kras(["Development", "Quality"]) + + self.employee1 = make_employee("employee1@example.com", company="_Test Company") + self.employee2 = make_employee("employee2@example.com", company="_Test Company") + + def test_validate_parent_fields(self): + parent_goal = create_goal(self.employee1, "Development", 1) + child_goal = frappe.get_doc( + { + "doctype": "Goal", + "goal_name": "Test", + "employee": self.employee2, + "kra": "Development", + "parent_goal": parent_goal.name, + "start_date": "2023-01-01", + } + ) + + # parent goal and child goal should have same employee + self.assertRaises(frappe.ValidationError, child_goal.insert) + + def test_set_status(self): + goal = create_goal(self.employee1, "Development") + self.assertEqual(goal.status, "Pending") + + goal.progress = 50 + goal.save() + self.assertEqual(goal.status, "In Progress") + + goal.progress = 100 + goal.save() + self.assertEqual(goal.status, "Completed") + + def test_update_parent_progress(self): + parent_goal = create_goal(self.employee1, "Development", 1) + child_goal1 = create_goal(self.employee1, parent_goal=parent_goal.name) + child_goal2 = create_goal(self.employee1, parent_goal=parent_goal.name) + + child_goal1.progress = 50 + child_goal1.save() + parent_goal.reload() + self.assertEqual(parent_goal.progress, 25) + + child_goal2.progress = 100 + child_goal2.save() + parent_goal.reload() + self.assertEqual(parent_goal.progress, 75) + + def test_update_parent_progress_on_goal_deletion(self): + parent_goal = create_goal(self.employee1, "Development", 1) + child_goal1 = create_goal(self.employee1, parent_goal=parent_goal.name) + child_goal2 = create_goal(self.employee1, parent_goal=parent_goal.name) + + child_goal1.progress = 50 + child_goal1.save() + parent_goal.reload() + self.assertEqual(parent_goal.progress, 25) + + child_goal2.delete() + parent_goal.reload() + self.assertEqual(parent_goal.progress, 50) + + def test_update_parent_progress_with_nested_goals(self): + """ + parent (12.5%) + |_ child1 + |_ child2 (25%) + |_ child3 (50%) + |_ child4 + """ + parent_goal = create_goal(self.employee1, "Development", 1) + # child_goal1 + create_goal(self.employee1, parent_goal=parent_goal.name) + + child_goal2 = create_goal(self.employee1, "Development", 1, parent_goal.name) + child_goal3 = create_goal(self.employee1, parent_goal=child_goal2.name) + # child_goal4 + create_goal(self.employee1, parent_goal=child_goal2.name) + + child_goal3.progress = 50 + child_goal3.save() + + child_goal2.reload() + self.assertEqual(child_goal2.progress, 25) + + parent_goal.reload() + self.assertEqual(parent_goal.progress, 12.5) + + def test_update_old_parent_progress(self): + """ + BEFORE + parent1 (12.5%) + |_ child1 (12.5%) + |_ child1_1 (25%) + |_ child1_2 + + parent2 (25%) + |_ child2 (25%) + |_ child2_1 (50%) + |_ child2_2 + + AFTER + parent1 (16.667%) + |_ child1 (16.667%) + |_ child1_1 (25%) + |_ child1_2 + |_ child2 (25%) + |_ child2_1 (50%) + |_ child2_2 + + parent2 (0%) + """ + parent1 = create_goal(self.employee1, "Development", 1) + child1 = create_goal(self.employee1, is_group=1, parent_goal=parent1.name) + child1_1 = create_goal(self.employee1, parent_goal=child1.name) + # child1_2 + create_goal(self.employee1, parent_goal=child1.name) + + parent2 = create_goal(self.employee1, "Development", 1) + child2 = create_goal(self.employee1, is_group=1, parent_goal=parent2.name) + child2_1 = create_goal(self.employee1, parent_goal=child2.name) + # child2_2 + create_goal(self.employee1, parent_goal=child2.name) + + child1_1.progress = 25 + child1_1.save() + child1.reload() + + parent1.reload() + self.assertEqual(child1.progress, 12.5) + self.assertEqual(parent1.progress, 12.5) + + child2_1.progress = 50 + child2_1.save() + child2.reload() + parent2.reload() + self.assertEqual(child2.progress, 25) + self.assertEqual(parent2.progress, 25) + + child2.parent_goal = child1.name + child2.save() + parent2.reload() + child1.reload() + parent1.reload() + + self.assertEqual(parent2.progress, 0.0) + self.assertEqual(child1.progress, 16.667) + self.assertEqual(parent1.progress, 16.667) + + def test_update_kra_in_child_goals(self): + parent_goal = create_goal(self.employee1, "Development", 1) + child_goal1 = create_goal(self.employee1, parent_goal=parent_goal.name) + child_goal2 = create_goal(self.employee1, parent_goal=parent_goal.name) + + parent_goal.reload() + parent_goal.kra = "Quality" + parent_goal.save() + + child_goal1.reload() + child_goal2.reload() + + self.assertEqual(child_goal1.kra, "Quality") + self.assertEqual(child_goal2.kra, "Quality") + + def test_update_status(self): + goal1 = create_goal(self.employee1) + self.assertEqual(goal1.status, "Pending") + self.assertEqual(goal1.progress, 0) + goal2 = create_goal(self.employee1) + self.assertEqual(goal2.status, "Pending") + self.assertEqual(goal2.progress, 0) + + update_status("Archived", [goal1.name, goal2.name]) + + goal1.reload() + self.assertEqual(goal1.status, "Archived") + goal2.reload() + self.assertEqual(goal2.status, "Archived") + + update_status("Unarchived", [goal1.name, goal2.name]) + + goal1.reload() + self.assertEqual(goal1.status, "Pending") + goal2.reload() + self.assertEqual(goal2.status, "Pending") + + update_status("Completed", [goal1.name, goal2.name]) + + goal1.reload() + self.assertEqual(goal1.status, "Completed") + self.assertEqual(goal1.progress, 100) + goal2.reload() + self.assertEqual(goal2.status, "Completed") + self.assertEqual(goal2.progress, 100) + + +def create_goal( + employee, + kra=None, + is_group=0, + parent_goal=None, + appraisal_cycle=None, + progress=0, +): + return frappe.get_doc( + { + "doctype": "Goal", + "goal_name": "Test", + "employee": employee, + "kra": kra, + "is_group": is_group, + "parent_goal": parent_goal, + "start_date": "2023-01-01", + "appraisal_cycle": appraisal_cycle, + "progress": progress, + } + ).insert() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/grievance_type.js b/apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/grievance_type.js new file mode 100644 index 000000000..a6015304d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/grievance_type.js @@ -0,0 +1,7 @@ +// Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Grievance Type", { + // refresh: function(frm) { + // } +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/grievance_type.json b/apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/grievance_type.json new file mode 100644 index 000000000..ab2b79a8f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/grievance_type.json @@ -0,0 +1,83 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "Prompt", + "creation": "2021-05-11 12:41:50.256071", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "section_break_5", + "description" + ], + "fields": [ + { + "fieldname": "section_break_5", + "fieldtype": "Section Break" + }, + { + "fieldname": "description", + "fieldtype": "Text", + "label": "Description" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2024-03-27 13:09:46.513495", + "modified_by": "Administrator", + "module": "HR", + "name": "Grievance Type", + "naming_rule": "Set by user", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/grievance_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/grievance_type.py new file mode 100644 index 000000000..5d8d41cb7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/grievance_type.py @@ -0,0 +1,9 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class GrievanceType(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/test_grievance_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/test_grievance_type.py new file mode 100644 index 000000000..aed0bff6f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/grievance_type/test_grievance_type.py @@ -0,0 +1,9 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestGrievanceType(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/holiday_list_assignment.js b/apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/holiday_list_assignment.js new file mode 100644 index 000000000..9e452a4e7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/holiday_list_assignment.js @@ -0,0 +1,57 @@ +// Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Holiday List Assignment", { + refresh: function (frm) { + frm.trigger("switch_assigned_to_label"); + }, + applicable_for: function (frm) { + frm.trigger("toggle_fields"); + frm.trigger("clear_fields"); + frm.trigger("switch_assigned_to_label"); + }, + toggle_fields: function (frm) { + frm.toggle_display( + ["employee_name", "employee_company"], + frm.doc.applicable_for == "Employee", + ); + }, + clear_fields: function (frm) { + frm.set_value("assigned_to", ""); + frm.set_value("employee_name", ""); + frm.set_value("employee_company", ""); + }, + assigned_to: function (frm) { + if (frm.doc.applicable_for == "Employee" && frm.doc.assigned_to) { + frm.trigger("toggle_fields"); + frappe.db.get_value( + "Employee", + frm.doc.assigned_to, + ["employee_name", "company"], + (r) => { + frm.set_value("employee_name", r.employee_name); + frm.set_value("employee_company", r.company); + }, + ); + } + }, + holiday_list: function (frm) { + frm.trigger("set_start_and_end_dates"); + }, + set_start_and_end_dates: function (frm) { + if (!frm.doc.holiday_list) return; + frappe.db.get_value( + "Holiday List", + frm.doc.holiday_list, + ["from_date", "to_date"], + (r) => { + frm.set_value("from_date", r.from_date); + frm.set_value("holiday_list_start", r.from_date); + frm.set_value("holiday_list_end", r.to_date); + }, + ); + }, + switch_assigned_to_label: function (frm) { + frm.set_df_property("assigned_to", "label", frm.doc.applicable_for); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/holiday_list_assignment.json b/apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/holiday_list_assignment.json new file mode 100644 index 000000000..4be2a2464 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/holiday_list_assignment.json @@ -0,0 +1,153 @@ +{ + "actions": [], + "autoname": "naming_series:", + "creation": "2025-08-28 12:59:25.390188", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "section_break_wnwa", + "naming_series", + "applicable_for", + "assigned_to", + "employee_name", + "employee_company", + "amended_from", + "column_break_lzvp", + "holiday_list", + "from_date", + "holiday_list_start", + "holiday_list_end" + ], + "fields": [ + { + "fieldname": "section_break_wnwa", + "fieldtype": "Section Break" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Holiday List Assignment", + "print_hide": 1, + "read_only": 1, + "search_index": 1 + }, + { + "fieldname": "holiday_list", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Holiday List", + "options": "Holiday List", + "reqd": 1 + }, + { + "fieldname": "naming_series", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Naming Series", + "options": "HR-HLA-.YYYY.-", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "hidden": 1, + "label": "Employee Name", + "read_only": 1 + }, + { + "fieldname": "column_break_lzvp", + "fieldtype": "Column Break" + }, + { + "fieldname": "assigned_to", + "fieldtype": "Dynamic Link", + "in_list_view": 1, + "label": "Assigned To", + "options": "applicable_for", + "reqd": 1 + }, + { + "fieldname": "employee_company", + "fieldtype": "Link", + "hidden": 1, + "label": "Employee Company", + "options": "Company", + "read_only": 1 + }, + { + "fieldname": "applicable_for", + "fieldtype": "Select", + "label": "Applicable For", + "options": "Employee\nCompany", + "reqd": 1 + }, + { + "fieldname": "holiday_list_start", + "fieldtype": "Date", + "is_virtual": 1, + "label": "Holiday List Start" + }, + { + "fieldname": "holiday_list_end", + "fieldtype": "Date", + "is_virtual": 1, + "label": "Holiday List End" + }, + { + "fieldname": "from_date", + "fieldtype": "Date", + "label": "Assignment Starts From", + "reqd": 1 + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [], + "modified": "2026-01-07 16:11:21.856458", + "modified_by": "Administrator", + "module": "HR", + "name": "Holiday List Assignment", + "naming_rule": "By \"Naming Series\" field", + "owner": "Administrator", + "permissions": [ + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "assigned_to" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/holiday_list_assignment.py b/apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/holiday_list_assignment.py new file mode 100644 index 000000000..59f6abf27 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/holiday_list_assignment.py @@ -0,0 +1,48 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import format_date, get_link_to_form, getdate + +from hrms.payroll.doctype.salary_structure_assignment.salary_structure_assignment import DuplicateAssignment + + +class HolidayListAssignment(Document): + @property + def holiday_list_start(self): + return frappe.get_value("Holiday List", self.holiday_list, "from_date") if self.holiday_list else None + + @property + def holiday_list_end(self): + return frappe.get_value("Holiday List", self.holiday_list, "to_date") if self.holiday_list else None + + def validate(self): + self.validate_assignment_start_date() + self.validate_existing_assignment() + + def validate_existing_assignment(self): + holiday_list = frappe.db.exists( + "Holiday List Assignment", + {"assigned_to": self.assigned_to, "from_date": self.from_date, "docstatus": 1}, + ) + + if holiday_list: + frappe.throw( + _("Holiday List Assignment for {0} already exists for date {1}: {2}").format( + self.assigned_to, + format_date(self.from_date), + get_link_to_form("Holiday List Assignment", holiday_list), + ), + DuplicateAssignment, + title=_("Duplicate Assignment"), + ) + + def validate_assignment_start_date(self): + holiday_list_start, holiday_list_end = frappe.db.get_value( + "Holiday List", self.holiday_list, ["from_date", "to_date"] + ) + assignment_start_date = getdate(self.from_date) + if (assignment_start_date < holiday_list_start) or (assignment_start_date > holiday_list_end): + frappe.throw(_("Assignment start date cannot be outside holiday list dates")) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/test_holiday_list_assignment.py b/apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/test_holiday_list_assignment.py new file mode 100644 index 000000000..a5e2a2cea --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/holiday_list_assignment/test_holiday_list_assignment.py @@ -0,0 +1,148 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from contextlib import contextmanager + +import frappe +from frappe.utils import add_months, get_year_ending, get_year_start, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.payroll.doctype.salary_slip.test_salary_slip import make_holiday_list +from hrms.payroll.doctype.salary_structure_assignment.salary_structure_assignment import DuplicateAssignment +from hrms.tests.utils import HRMSTestSuite +from hrms.utils.holiday_list import get_holiday_list_for_employee + +# On IntegrationTestCase, the doctype test records and all +# link-field test record dependencies are recursively loaded +# Use these module variables to add/remove to/from that list + + +class IntegrationTestHolidayListAssignment(HRMSTestSuite): + """ + Integration tests for HolidayListAssignment. + Use this class for testing interactions between multiple components. + """ + + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + + def setUp(self): + for d in ["Holiday List Assignment"]: + frappe.db.delete(d) + + self.holiday_list = make_holiday_list( + list_name="Test HLA", from_date=get_year_start(getdate()), to_date=get_year_ending(getdate()) + ) + + def test_exisitng_assignment(self): + from_date = get_year_start(getdate()) + create_holiday_list_assignment( + "Employee", + assigned_to=self.employees[0].name, + holiday_list=self.holiday_list, + from_date=from_date, + ) + + self.assertRaises( + DuplicateAssignment, + create_holiday_list_assignment, + "Employee", + assigned_to=self.employees[0].name, + from_date=from_date, + ) + + def test_fetch_correct_holiday_list_assignment(self): + employee = make_employee("test_hla@example.com", company="_Test Company") + new_holiday_list = make_holiday_list( + list_name="Test HLA New", from_date=get_year_start(getdate()), to_date=get_year_ending(getdate()) + ) + create_holiday_list_assignment( + "Employee", + assigned_to=employee, + holiday_list=self.holiday_list, + from_date=get_year_start(getdate()), + ) + create_holiday_list_assignment( + "Employee", + assigned_to=employee, + holiday_list=new_holiday_list, + from_date=add_months(get_year_start(getdate()), 6), + ) + applicable_holiday_list = get_holiday_list_for_employee( + employee=employee, as_on=add_months(get_year_start(getdate()), 7) + ) + self.assertEqual(applicable_holiday_list, "Test HLA New") + + def test_default_to_company_holiday_list_assignment(self): + create_holiday_list_assignment("Company", "_Test Company", self.holiday_list) + employee = make_employee("test_default_hla@example.com", company="_Test Company") + holiday_list = get_holiday_list_for_employee(employee, as_on=getdate()) + self.assertEqual(holiday_list, self.holiday_list) + + +def create_holiday_list_assignment( + applicable_for, + assigned_to, + holiday_list="Salary Slip Test Holiday List", + company="_Test Company", + do_not_submit=False, + from_date=None, +): + if not frappe.db.exists( + "Holiday List Assignment", + {"applicable_for": applicable_for, "assigned_to": assigned_to, "holiday_list": holiday_list}, + ): + hla = frappe.new_doc("Holiday List Assignment") + hla.applicable_for = applicable_for + hla.assigned_to = assigned_to + hla.holiday_list = holiday_list + hla.employee_company = company + if not from_date: + from_date = frappe.db.get_value("Holiday List", holiday_list, "from_date") + hla.from_date = from_date + hla.save() + if do_not_submit: + return hla + hla.submit() + else: + hla = frappe.get_doc( + "Holiday List Assignment", + {"applicable_for": applicable_for, "assigned_to": assigned_to, "holiday_list": holiday_list}, + ) + return hla + + +@contextmanager +def assign_holiday_list(holiday_list, company_name): + """ + Context manager for assigning holiday list in tests + """ + HolidayList = frappe.qb.DocType("Holiday List") + HolidayListAssignment = frappe.qb.DocType("Holiday List Assignment") + try: + previous_assignment = ( + frappe.qb.from_(HolidayListAssignment) + .join(HolidayList) + .on(HolidayListAssignment.holiday_list == HolidayList.name) + .select(HolidayListAssignment.name, HolidayListAssignment.holiday_list, HolidayList.from_date) + .where(HolidayListAssignment.assigned_to == company_name) + .limit(1) + ).run(as_dict=True)[0] + from_date = frappe.get_value("Holiday List", holiday_list, "from_date") + frappe.db.set_value( + "Holiday List Assignment", + previous_assignment.name, + {"holiday_list": holiday_list, "from_date": from_date}, + ) + yield + + finally: + # restore holiday list setup + frappe.db.set_value( + "Holiday List Assignment", + previous_assignment.name, + {"holiday_list": previous_assignment.holiday_list, "from_date": previous_assignment.from_date}, + ) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/hr_settings.js b/apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/hr_settings.js new file mode 100644 index 000000000..aea38ee9d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/hr_settings.js @@ -0,0 +1,45 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("HR Settings", { + refresh: function (frm) { + frm.set_query("sender", () => { + return { + filters: { + enable_outgoing: 1, + }, + }; + }); + frm.set_query("hiring_sender", () => { + return { + filters: { + enable_outgoing: 1, + }, + }; + }); + }, +}); + +frappe.tour["HR Settings"] = [ + { + fieldname: "emp_created_by", + title: "Employee Naming By", + description: __( + "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here.", + ), + }, + { + fieldname: "standard_working_hours", + title: "Standard Working Hours", + description: __( + "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis.", + ), + }, + { + fieldname: "leave_and_expense_claim_settings", + title: "Leave and Expense Claim Settings", + description: __( + "Review various other settings related to Employee Leaves and Expense Claim", + ), + }, +]; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/hr_settings.json b/apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/hr_settings.json new file mode 100644 index 000000000..26ac9ac47 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/hr_settings.json @@ -0,0 +1,423 @@ +{ + "actions": [], + "creation": "2013-08-02 13:45:23", + "doctype": "DocType", + "document_type": "Other", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee_tab", + "employee_settings_section", + "emp_created_by", + "standard_working_hours", + "column_break_lrow", + "retirement_age", + "reminders_section", + "column_break_11", + "send_work_anniversary_reminders", + "send_birthday_reminders", + "send_holiday_reminders", + "frequency", + "column_break_hyec", + "sender", + "sender_email", + "leaves_tab", + "leave_settings_section", + "auto_leave_encashment", + "leave_approver_mandatory_in_leave_application", + "prevent_self_leave_approval", + "show_leaves_of_all_department_members_in_calendar", + "column_break_29", + "send_leave_notification", + "leave_approval_notification_template", + "leave_status_notification_template", + "restrict_backdated_leave_application", + "role_allowed_to_create_backdated_leave_application", + "expenses_tab", + "expenses_settings_section", + "expense_approver_mandatory_in_expense_claim", + "prevent_self_expense_approval", + "unlink_payment_on_cancellation_of_employee_advance", + "shift_and_attendance_tab", + "shift_settings_section", + "allow_multiple_shift_assignments", + "attendance_settings_section", + "allow_employee_checkin_from_mobile_app", + "allow_geolocation_tracking", + "tenure_tab", + "employee_exit_settings_section", + "exit_questionnaire_web_form", + "exit_questionnaire_notification_template", + "recruitment_tab", + "hiring_settings_section", + "check_vacancies", + "send_interview_reminder", + "interview_reminder_template", + "remind_before", + "send_interview_feedback_reminder", + "feedback_reminder_notification_template", + "column_break_4", + "hiring_sender", + "hiring_sender_email" + ], + "fields": [ + { + "fieldname": "retirement_age", + "fieldtype": "Data", + "label": "Retirement Age (In Years)" + }, + { + "default": "Naming Series", + "description": "Employee records are created using the selected option", + "fieldname": "emp_created_by", + "fieldtype": "Select", + "label": "Employee Naming By", + "options": "Naming Series\nEmployee Number\nFull Name" + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "default": "1", + "fieldname": "expense_approver_mandatory_in_expense_claim", + "fieldtype": "Check", + "label": "Expense Approver Mandatory In Expense Claim" + }, + { + "default": "1", + "fieldname": "leave_approver_mandatory_in_leave_application", + "fieldtype": "Check", + "label": "Leave Approver Mandatory In Leave Application" + }, + { + "default": "0", + "fieldname": "show_leaves_of_all_department_members_in_calendar", + "fieldtype": "Check", + "label": "Show Leaves Of All Department Members In Calendar" + }, + { + "default": "0", + "fieldname": "auto_leave_encashment", + "fieldtype": "Check", + "label": "Auto Leave Encashment" + }, + { + "depends_on": "eval:doc.restrict_backdated_leave_application == 1", + "fieldname": "role_allowed_to_create_backdated_leave_application", + "fieldtype": "Link", + "label": "Role Allowed to Create Backdated Leave Application", + "mandatory_depends_on": "eval:doc.restrict_backdated_leave_application == 1", + "options": "Role" + }, + { + "default": "1", + "fieldname": "send_leave_notification", + "fieldtype": "Check", + "label": "Send Leave Notification" + }, + { + "depends_on": "eval: doc.send_leave_notification == 1", + "fieldname": "leave_approval_notification_template", + "fieldtype": "Link", + "label": "Leave Approval Notification Template", + "mandatory_depends_on": "eval: doc.send_leave_notification == 1", + "options": "Email Template" + }, + { + "depends_on": "eval: doc.send_leave_notification == 1", + "fieldname": "leave_status_notification_template", + "fieldtype": "Link", + "label": "Leave Status Notification Template", + "mandatory_depends_on": "eval: doc.send_leave_notification == 1", + "options": "Email Template" + }, + { + "fieldname": "standard_working_hours", + "fieldtype": "Float", + "label": "Standard Working Hours" + }, + { + "default": "00:15:00", + "depends_on": "send_interview_reminder", + "fieldname": "remind_before", + "fieldtype": "Time", + "label": "Remind Before" + }, + { + "fieldname": "reminders_section", + "fieldtype": "Section Break", + "label": "Reminders" + }, + { + "default": "1", + "fieldname": "send_holiday_reminders", + "fieldtype": "Check", + "label": "Holidays" + }, + { + "default": "1", + "fieldname": "send_work_anniversary_reminders", + "fieldtype": "Check", + "label": "Work Anniversaries " + }, + { + "default": "Weekly", + "depends_on": "eval:doc.send_holiday_reminders", + "fieldname": "frequency", + "fieldtype": "Select", + "label": "Set the frequency for holiday reminders", + "mandatory_depends_on": "send_holiday_reminders", + "options": "Weekly\nMonthly" + }, + { + "default": "1", + "fieldname": "send_birthday_reminders", + "fieldtype": "Check", + "label": "Birthdays" + }, + { + "fieldname": "column_break_11", + "fieldtype": "Column Break" + }, + { + "default": "0", + "fieldname": "send_interview_reminder", + "fieldtype": "Check", + "label": "Send Interview Reminder" + }, + { + "default": "0", + "fieldname": "send_interview_feedback_reminder", + "fieldtype": "Check", + "label": "Send Interview Feedback Reminder" + }, + { + "fieldname": "column_break_29", + "fieldtype": "Column Break" + }, + { + "depends_on": "send_interview_feedback_reminder", + "fieldname": "feedback_reminder_notification_template", + "fieldtype": "Link", + "label": "Feedback Reminder Notification Template", + "mandatory_depends_on": "send_interview_feedback_reminder", + "options": "Email Template" + }, + { + "depends_on": "send_interview_reminder", + "fieldname": "interview_reminder_template", + "fieldtype": "Link", + "label": "Interview Reminder Notification Template", + "mandatory_depends_on": "send_interview_reminder", + "options": "Email Template" + }, + { + "default": "0", + "fieldname": "restrict_backdated_leave_application", + "fieldtype": "Check", + "label": "Restrict Backdated Leave Application" + }, + { + "default": "0", + "fieldname": "check_vacancies", + "fieldtype": "Check", + "label": "Check Vacancies On Job Offer Creation" + }, + { + "fieldname": "exit_questionnaire_web_form", + "fieldtype": "Link", + "label": "Exit Questionnaire Web Form", + "options": "Web Form" + }, + { + "fieldname": "exit_questionnaire_notification_template", + "fieldtype": "Link", + "label": "Exit Questionnaire Notification Template", + "options": "Email Template" + }, + { + "fieldname": "sender", + "fieldtype": "Link", + "label": "Sender", + "options": "Email Account" + }, + { + "depends_on": "eval:doc.sender", + "fetch_from": "sender.email_id", + "fetch_if_empty": 1, + "fieldname": "sender_email", + "fieldtype": "Data", + "label": "Sender Email", + "read_only": 1 + }, + { + "fieldname": "column_break_hyec", + "fieldtype": "Column Break" + }, + { + "fieldname": "hiring_sender", + "fieldtype": "Link", + "label": "Sender", + "options": "Email Account" + }, + { + "depends_on": "eval:doc.hiring_sender", + "fetch_from": "hiring_sender.email_id", + "fetch_if_empty": 1, + "fieldname": "hiring_sender_email", + "fieldtype": "Data", + "label": "Sender Email", + "read_only": 1 + }, + { + "default": "0", + "fieldname": "allow_multiple_shift_assignments", + "fieldtype": "Check", + "label": "Allow Multiple Shift Assignments for Same Date" + }, + { + "fieldname": "shift_settings_section", + "fieldtype": "Section Break", + "label": "Shift Settings" + }, + { + "default": "1", + "fieldname": "allow_employee_checkin_from_mobile_app", + "fieldtype": "Check", + "label": "Allow Employee Checkin from Mobile App" + }, + { + "default": "0", + "fieldname": "allow_geolocation_tracking", + "fieldtype": "Check", + "label": "Allow Geolocation Tracking" + }, + { + "fieldname": "attendance_settings_section", + "fieldtype": "Section Break", + "label": "Attendance Settings" + }, + { + "default": "0", + "fieldname": "unlink_payment_on_cancellation_of_employee_advance", + "fieldtype": "Check", + "label": " Unlink Payment on Cancellation of Employee Advance" + }, + { + "default": "0", + "fieldname": "prevent_self_leave_approval", + "fieldtype": "Check", + "label": "Prevent self approval for leaves even if user has permissions" + }, + { + "default": "0", + "fieldname": "prevent_self_expense_approval", + "fieldtype": "Check", + "label": "Prevent self approval for expense claims even if user has permissions" + }, + { + "fieldname": "employee_tab", + "fieldtype": "Tab Break", + "label": "Employee" + }, + { + "fieldname": "expenses_tab", + "fieldtype": "Tab Break", + "label": "Expenses" + }, + { + "fieldname": "shift_and_attendance_tab", + "fieldtype": "Tab Break", + "label": "Shift and Attendance" + }, + { + "fieldname": "tenure_tab", + "fieldtype": "Tab Break", + "label": "Tenure" + }, + { + "fieldname": "recruitment_tab", + "fieldtype": "Tab Break", + "label": "Recruitment" + }, + { + "fieldname": "leaves_tab", + "fieldtype": "Tab Break", + "label": "Leaves" + }, + { + "fieldname": "column_break_lrow", + "fieldtype": "Column Break" + }, + { + "fieldname": "expenses_settings_section", + "fieldtype": "Section Break", + "label": "Expenses Settings" + }, + { + "fieldname": "employee_settings_section", + "fieldtype": "Section Break", + "label": "Employee Settings" + }, + { + "fieldname": "leave_settings_section", + "fieldtype": "Section Break", + "label": "Leave Settings" + }, + { + "fieldname": "hiring_settings_section", + "fieldtype": "Section Break", + "label": "Hiring Settings" + }, + { + "fieldname": "employee_exit_settings_section", + "fieldtype": "Section Break", + "label": "Employee Exit Settings" + } + ], + "icon": "fa fa-cog", + "idx": 1, + "issingle": 1, + "links": [], + "modified": "2025-12-29 16:25:06.271352", + "modified_by": "Administrator", + "module": "HR", + "name": "HR Settings", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "email": 1, + "print": 1, + "read": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "email": 1, + "print": 1, + "read": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "email": 1, + "print": 1, + "read": 1, + "role": "HR User", + "share": 1 + }, + { + "read": 1, + "role": "Employee" + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "ASC", + "states": [], + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/hr_settings.py b/apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/hr_settings.py new file mode 100644 index 000000000..98b5dc4e7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/hr_settings.py @@ -0,0 +1,97 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +# For license information, please see license.txt + +import frappe +from frappe.model.document import Document +from frappe.utils import format_date + +# Wether to proceed with frequency change +PROCEED_WITH_FREQUENCY_CHANGE = False + + +class HRSettings(Document): + def validate(self): + self.set_naming_series() + + # Based on proceed flag + global PROCEED_WITH_FREQUENCY_CHANGE + if not PROCEED_WITH_FREQUENCY_CHANGE: + self.validate_frequency_change() + PROCEED_WITH_FREQUENCY_CHANGE = False + + def set_naming_series(self): + from erpnext.utilities.naming import set_by_naming_series + + set_by_naming_series( + "Employee", + "employee_number", + self.get("emp_created_by") == "Naming Series", + hide_name_field=True, + ) + + def validate_frequency_change(self): + weekly_job, monthly_job = None, None + + try: + weekly_job = frappe.get_doc( + "Scheduled Job Type", + {"method": "hrms.controllers.employee_reminders.send_reminders_in_advance_weekly"}, + ) + + monthly_job = frappe.get_doc( + "Scheduled Job Type", + {"method": "hrms.controllers.employee_reminders.send_reminders_in_advance_monthly"}, + ) + except frappe.DoesNotExistError: + return + + next_weekly_trigger = weekly_job.get_next_execution() + next_monthly_trigger = monthly_job.get_next_execution() + + if self.freq_changed_from_monthly_to_weekly(): + if next_monthly_trigger < next_weekly_trigger: + self.show_freq_change_warning(next_monthly_trigger, next_weekly_trigger) + + elif self.freq_changed_from_weekly_to_monthly(): + if next_monthly_trigger > next_weekly_trigger: + self.show_freq_change_warning(next_weekly_trigger, next_monthly_trigger) + + def freq_changed_from_weekly_to_monthly(self): + return self.has_value_changed("frequency") and self.frequency == "Monthly" + + def freq_changed_from_monthly_to_weekly(self): + return self.has_value_changed("frequency") and self.frequency == "Weekly" + + def show_freq_change_warning(self, from_date, to_date): + from_date = frappe.bold(format_date(from_date)) + to_date = frappe.bold(format_date(to_date)) + + raise_exception = frappe.ValidationError + if ( + frappe.flags.in_test + or frappe.flags.in_patch + or frappe.flags.in_install + or frappe.flags.in_migrate + ): + raise_exception = False + + frappe.msgprint( + msg=frappe._( + "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" + ).format(from_date, to_date), + title="Confirm change in Frequency", + primary_action={ + "label": frappe._("Yes, Proceed"), + "client_action": "hrms.proceed_save_with_reminders_frequency_change", + }, + raise_exception=raise_exception, + ) + + +@frappe.whitelist() +def set_proceed_with_frequency_change(): + """Enables proceed with frequency change""" + global PROCEED_WITH_FREQUENCY_CHANGE + PROCEED_WITH_FREQUENCY_CHANGE = True diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/test_hr_settings.py b/apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/test_hr_settings.py new file mode 100644 index 000000000..43e5079e4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/hr_settings/test_hr_settings.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestHRSettings(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/identification_document_type.js b/apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/identification_document_type.js new file mode 100644 index 000000000..04e38383c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/identification_document_type.js @@ -0,0 +1,6 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Identification Document Type", { + refresh: function (frm) {}, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/identification_document_type.json b/apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/identification_document_type.json new file mode 100644 index 000000000..e9480ec8a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/identification_document_type.json @@ -0,0 +1,43 @@ +{ + "actions": [], + "autoname": "field:identification_document_type", + "creation": "2018-05-15 07:13:28.620570", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "identification_document_type" + ], + "fields": [ + { + "fieldname": "identification_document_type", + "fieldtype": "Data", + "label": "Identification Document Type", + "unique": 1 + } + ], + "links": [], + "modified": "2024-03-27 13:09:50.249558", + "modified_by": "Administrator", + "module": "HR", + "name": "Identification Document Type", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/identification_document_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/identification_document_type.py new file mode 100644 index 000000000..3bfcfaadc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/identification_document_type.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class IdentificationDocumentType(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/test_identification_document_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/test_identification_document_type.py new file mode 100644 index 000000000..32fa0a744 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/identification_document_type/test_identification_document_type.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestIdentificationDocumentType(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interest/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interest/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interest/interest.js b/apps/erpnext/src/hrms/hrms/hr/doctype/interest/interest.js new file mode 100644 index 000000000..76a5ce656 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interest/interest.js @@ -0,0 +1,6 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Interest", { + refresh: function (frm) {}, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interest/interest.json b/apps/erpnext/src/hrms/hrms/hr/doctype/interest/interest.json new file mode 100644 index 000000000..cf8c59c39 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interest/interest.json @@ -0,0 +1,80 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "field:interest", + "creation": "2016-07-25 07:12:33.600702", + "doctype": "DocType", + "document_type": "Setup", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "interest" + ], + "fields": [ + { + "fieldname": "interest", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Interest", + "reqd": 1, + "unique": 1 + } + ], + "links": [], + "modified": "2024-03-27 13:09:51.511017", + "modified_by": "Administrator", + "module": "HR", + "name": "Interest", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Academics User", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interest/interest.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interest/interest.py new file mode 100644 index 000000000..3563f7f3a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interest/interest.py @@ -0,0 +1,9 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class Interest(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interest/test_interest.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interest/test_interest.py new file mode 100644 index 000000000..466b9cb5f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interest/test_interest.py @@ -0,0 +1,10 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + +# test_records = frappe.get_test_records('Interest') + + +class TestInterest(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview.js b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview.js new file mode 100644 index 000000000..4df982e8c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview.js @@ -0,0 +1,280 @@ +// Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Interview", { + refresh: function (frm) { + frm.set_query("job_applicant", function () { + let job_applicant_filters = { + status: ["!=", "Rejected"], + }; + if (frm.doc.designation) { + job_applicant_filters.designation = frm.doc.designation; + } + return { + filters: job_applicant_filters, + }; + }); + + frm.trigger("add_custom_buttons"); + + frappe.run_serially([ + () => frm.trigger("load_skills_average_rating"), + () => frm.trigger("load_feedback"), + ]); + }, + + add_custom_buttons: async function (frm) { + if (frm.doc.docstatus === 2 || frm.doc.__islocal) return; + + if (frm.doc.status === "Pending") { + frm.add_custom_button( + __("Reschedule Interview"), + function () { + frm.events.show_reschedule_dialog(frm); + frm.refresh(); + }, + __("Actions"), + ); + } + + const has_submitted_feedback = await frappe.db.get_value( + "Interview Feedback", + { + interviewer: frappe.session.user, + interview: frm.doc.name, + docstatus: ["!=", 2], + }, + "name", + ); + + if (has_submitted_feedback?.message?.name) return; + + const allow_feedback_submission = frm.doc.interview_details.some( + (interviewer) => interviewer.interviewer === frappe.session.user, + ); + + if (allow_feedback_submission) { + frm.page.set_primary_action(__("Submit Feedback"), () => { + frm.trigger("submit_feedback"); + }); + } else { + const button = frm.add_custom_button(__("Submit Feedback"), () => { + frm.trigger("submit_feedback"); + }); + button + .prop("disabled", true) + .attr("title", __("Only interviewers can submit feedback")) + .tooltip({ delay: { show: 600, hide: 100 }, trigger: "hover" }); + } + }, + + submit_feedback: function (frm) { + frappe.call({ + method: "hrms.hr.doctype.interview.interview.get_expected_skill_set", + args: { + interview_round: frm.doc.interview_round, + }, + callback: function (r) { + frm.events.show_feedback_dialog(frm, r.message); + frm.refresh(); + }, + }); + }, + + show_reschedule_dialog: function (frm) { + let d = new frappe.ui.Dialog({ + title: "Reschedule Interview", + fields: [ + { + label: "Schedule On", + fieldname: "scheduled_on", + fieldtype: "Date", + reqd: 1, + default: frm.doc.scheduled_on, + }, + { + label: "From Time", + fieldname: "from_time", + fieldtype: "Time", + reqd: 1, + default: frm.doc.from_time, + }, + { + label: "To Time", + fieldname: "to_time", + fieldtype: "Time", + reqd: 1, + default: frm.doc.to_time, + }, + ], + primary_action_label: "Reschedule", + primary_action(values) { + frm.call({ + method: "reschedule_interview", + doc: frm.doc, + args: { + scheduled_on: values.scheduled_on, + from_time: values.from_time, + to_time: values.to_time, + }, + }).then(() => { + frm.refresh(); + d.hide(); + }); + }, + }); + d.show(); + }, + + show_feedback_dialog: async function (frm, data) { + let fields = await frm.events.get_fields_for_feedback(); + + let d = new frappe.ui.Dialog({ + title: __("Submit Feedback"), + fields: [ + { + fieldname: "skill_set", + fieldtype: "Table", + label: __("Skill Assessment"), + cannot_add_rows: false, + in_editable_grid: true, + reqd: 1, + fields: fields, + data: data, + }, + { + fieldname: "result", + fieldtype: "Select", + options: ["", "Cleared", "Rejected"], + label: __("Result"), + reqd: 1, + }, + { + fieldname: "feedback", + fieldtype: "Small Text", + label: __("Feedback"), + }, + ], + size: "large", + minimizable: true, + static: true, + primary_action: function (values) { + frappe + .call({ + method: "hrms.hr.doctype.interview.interview.create_interview_feedback", + args: { + data: values, + interview_name: frm.doc.name, + interviewer: frappe.session.user, + job_applicant: frm.doc.job_applicant, + }, + }) + .then(() => { + frm.refresh(); + }); + d.hide(); + }, + }); + d.show(); + d.get_close_btn().show(); + }, + + get_fields_for_feedback: async function () { + return new Promise((resolve, reject) => { + frappe.model.with_doctype("Skill Assessment", () => { + let meta = frappe.get_meta("Skill Assessment"); + let fields = meta.fields.map((field) => { + return { + fieldtype: field.fieldtype, + fieldname: field.fieldname, + label: field.label, + in_list_view: field.in_list_view, + reqd: field.reqd, + options: field.options, + }; + }); + resolve(fields); + }); + }); + }, + + interview_round: function (frm) { + frm.set_value("job_applicant", ""); + frm.trigger("set_applicable_interviewers"); + }, + + job_applicant: function (frm) { + if (!frm.doc.interview_round) { + frm.set_value("job_applicant", ""); + frappe.throw(__("Select Interview Round First")); + } + + if (frm.doc.job_applicant && !frm.doc.designation) { + frm.add_fetch("job_applicant", "designation", "designation"); + } + }, + + set_applicable_interviewers(frm) { + frappe.call({ + method: "hrms.hr.doctype.interview.interview.get_interviewers", + args: { + interview_round: frm.doc.interview_round || "", + }, + callback: function (r) { + frm.clear_table("interview_details"); + r.message.forEach((interviewer) => + frm.add_child("interview_details", interviewer), + ); + refresh_field("interview_details"); + }, + }); + }, + + load_skills_average_rating(frm) { + frappe + .call({ + method: "hrms.hr.doctype.interview.interview.get_skill_wise_average_rating", + args: { interview: frm.doc.name }, + }) + .then((r) => { + frm.skills_average_rating = r.message; + }); + }, + + load_feedback(frm) { + frappe + .call({ + method: "hrms.hr.doctype.interview.interview.get_feedback", + args: { interview: frm.doc.name }, + }) + .then((r) => { + frm.feedback = r.message; + frm.events.calculate_reviews_per_rating(frm); + frm.events.render_feedback(frm); + }); + }, + + render_feedback(frm) { + frappe.require("interview.bundle.js", () => { + const wrapper = $(frm.fields_dict.feedback_html.wrapper); + const feedback_html = frappe.render_template("interview_feedback", { + feedbacks: frm.feedback, + average_rating: flt(frm.doc.average_rating * 5, 2), + reviews_per_rating: frm.reviews_per_rating, + skills_average_rating: frm.skills_average_rating, + }); + $(wrapper).empty(); + $(feedback_html).appendTo(wrapper); + }); + }, + + calculate_reviews_per_rating(frm) { + const reviews_per_rating = [0, 0, 0, 0, 0]; + frm.feedback.forEach((x) => { + reviews_per_rating[Math.floor(x.total_score - 1)] += 1; + }); + frm.reviews_per_rating = reviews_per_rating.map((x) => + flt((x * 100) / frm.feedback.length, 1), + ); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview.json b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview.json new file mode 100644 index 000000000..0ed0e06b9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview.json @@ -0,0 +1,272 @@ +{ + "actions": [], + "autoname": "HR-INT-.YYYY.-.####", + "creation": "2021-04-12 15:03:11.524090", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "interview_details_section", + "interview_round", + "job_applicant", + "job_opening", + "designation", + "resume_link", + "column_break_4", + "status", + "scheduled_on", + "from_time", + "to_time", + "section_break_hqvh", + "interview_details", + "ratings_section", + "expected_average_rating", + "column_break_12", + "average_rating", + "section_break_13", + "interview_summary", + "reminded", + "amended_from", + "feedback_tab", + "feedback_html" + ], + "fields": [ + { + "fieldname": "job_applicant", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Job Applicant", + "options": "Job Applicant", + "reqd": 1 + }, + { + "fetch_from": "job_applicant.job_title", + "fieldname": "job_opening", + "fieldtype": "Link", + "label": "Job Opening", + "options": "Job Opening", + "read_only": 1 + }, + { + "fieldname": "interview_round", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Interview Round", + "options": "Interview Round", + "reqd": 1 + }, + { + "default": "Pending", + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Status", + "options": "Pending\nUnder Review\nCleared\nRejected\nCancelled", + "reqd": 1 + }, + { + "fieldname": "ratings_section", + "fieldtype": "Section Break", + "label": "Ratings" + }, + { + "allow_on_submit": 1, + "fieldname": "average_rating", + "fieldtype": "Rating", + "in_list_view": 1, + "label": "Obtained Average Rating", + "read_only": 1 + }, + { + "allow_on_submit": 1, + "fieldname": "interview_summary", + "fieldtype": "Text" + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "fetch_from": "job_applicant.resume_link", + "fetch_if_empty": 1, + "fieldname": "resume_link", + "fieldtype": "Data", + "label": "Resume link" + }, + { + "fieldname": "interview_details_section", + "fieldtype": "Section Break", + "label": "Details" + }, + { + "fetch_from": "interview_round.expected_average_rating", + "fieldname": "expected_average_rating", + "fieldtype": "Rating", + "label": "Expected Average Rating", + "read_only": 1 + }, + { + "collapsible": 1, + "fieldname": "section_break_13", + "fieldtype": "Section Break", + "label": "Interview Summary" + }, + { + "fieldname": "column_break_12", + "fieldtype": "Column Break" + }, + { + "fetch_from": "interview_round.designation", + "fieldname": "designation", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Designation", + "options": "Designation", + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Interview", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "scheduled_on", + "fieldtype": "Date", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Scheduled On", + "reqd": 1, + "set_only_once": 1 + }, + { + "default": "0", + "fieldname": "reminded", + "fieldtype": "Check", + "hidden": 1, + "label": "Reminded" + }, + { + "fieldname": "from_time", + "fieldtype": "Time", + "in_list_view": 1, + "label": "From Time", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "to_time", + "fieldtype": "Time", + "in_list_view": 1, + "label": "To Time", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "feedback_tab", + "fieldtype": "Tab Break", + "label": "Feedback" + }, + { + "fieldname": "feedback_html", + "fieldtype": "HTML", + "label": "Feedback HTML" + }, + { + "fieldname": "section_break_hqvh", + "fieldtype": "Section Break" + }, + { + "allow_on_submit": 1, + "fieldname": "interview_details", + "fieldtype": "Table", + "label": "Interviewers", + "options": "Interview Detail" + } + ], + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [ + { + "link_doctype": "Interview Feedback", + "link_fieldname": "interview" + } + ], + "modified": "2025-11-21 17:24:02.676395", + "modified_by": "Administrator", + "module": "HR", + "name": "Interview", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Interviewer", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "job_applicant", + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview.py new file mode 100644 index 000000000..4c68912a4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview.py @@ -0,0 +1,437 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import datetime + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.query_builder.functions import Avg +from frappe.utils import cint, cstr, get_datetime, get_link_to_form, getdate, nowtime + + +class DuplicateInterviewRoundError(frappe.ValidationError): + pass + + +class Interview(Document): + def validate(self): + self.validate_duplicate_interview() + self.validate_designation() + + def on_submit(self): + if self.status not in ["Cleared", "Rejected"]: + frappe.throw( + _("Only Interviews with Cleared or Rejected status can be submitted."), + title=_("Not Allowed"), + ) + self.show_job_applicant_update_dialog() + + def validate_duplicate_interview(self): + duplicate_interview = frappe.db.exists( + "Interview", + {"job_applicant": self.job_applicant, "interview_round": self.interview_round, "docstatus": 1}, + ) + + if duplicate_interview: + frappe.throw( + _( + "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" + ).format( + frappe.bold(get_link_to_form("Interview", duplicate_interview)), + frappe.bold(self.job_applicant), + ) + ) + + def validate_designation(self): + applicant_designation = frappe.db.get_value("Job Applicant", self.job_applicant, "designation") + if self.designation: + if self.designation != applicant_designation: + frappe.throw( + _( + "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" + ).format(self.interview_round, frappe.bold(self.designation), applicant_designation), + exc=DuplicateInterviewRoundError, + ) + else: + self.designation = applicant_designation + + def show_job_applicant_update_dialog(self): + job_applicant_status = self.get_job_applicant_status() + if not job_applicant_status: + return + + job_application_name = frappe.db.get_value("Job Applicant", self.job_applicant, "applicant_name") + + frappe.msgprint( + _("Do you want to update the Job Applicant {0} as {1} based on this interview result?").format( + frappe.bold(job_application_name), frappe.bold(job_applicant_status) + ), + title=_("Update Job Applicant"), + primary_action={ + "label": _("Mark as {0}").format(job_applicant_status), + "server_action": "hrms.hr.doctype.interview.interview.update_job_applicant_status", + "args": {"job_applicant": self.job_applicant, "status": job_applicant_status}, + }, + ) + + def get_job_applicant_status(self) -> str | None: + status_map = {"Cleared": "Accepted", "Rejected": "Rejected"} + return status_map.get(self.status, None) + + @frappe.whitelist() + def reschedule_interview(self, scheduled_on, from_time, to_time): + if scheduled_on == self.scheduled_on and from_time == self.from_time and to_time == self.to_time: + frappe.msgprint( + _("No changes found in timings."), indicator="orange", title=_("Interview Not Rescheduled") + ) + return + + original_date = self.scheduled_on + original_from_time = self.from_time + original_to_time = self.to_time + + self.db_set({"scheduled_on": scheduled_on, "from_time": from_time, "to_time": to_time}) + self.notify_update() + + recipients = get_recipients(self.name) + + try: + frappe.sendmail( + recipients=recipients, + subject=_("Interview: {0} Rescheduled").format(self.name), + message=_("Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}").format( + original_date, + original_from_time, + original_to_time, + self.scheduled_on, + self.from_time, + self.to_time, + ), + reference_doctype=self.doctype, + reference_name=self.name, + ) + except Exception: + frappe.msgprint( + _( + "Failed to send the Interview Reschedule notification. Please configure your email account." + ) + ) + + frappe.msgprint(_("Interview Rescheduled successfully"), indicator="green") + + def on_discard(self): + self.db_set("status", "Cancelled") + + +@frappe.whitelist() +def get_interviewers(interview_round: str) -> list[str]: + return frappe.get_all("Interviewer", filters={"parent": interview_round}, fields=["user as interviewer"]) + + +def get_recipients(name, for_feedback=0): + interview = frappe.get_doc("Interview", name) + interviewers = [d.interviewer for d in interview.interview_details] + + if for_feedback: + feedback_given_interviewers = frappe.get_all( + "Interview Feedback", filters={"interview": name, "docstatus": 1}, pluck="interviewer" + ) + recipients = [d for d in interviewers if d not in feedback_given_interviewers] + else: + recipients = interviewers + recipients.append(frappe.db.get_value("Job Applicant", interview.job_applicant, "email_id")) + + return recipients + + +@frappe.whitelist() +def get_feedback(interview: str) -> list[dict]: + interview_feedback = frappe.qb.DocType("Interview Feedback") + employee = frappe.qb.DocType("Employee") + + return ( + frappe.qb.from_(interview_feedback) + .select( + interview_feedback.name, + interview_feedback.modified.as_("added_on"), + interview_feedback.interviewer.as_("user"), + interview_feedback.feedback, + (interview_feedback.average_rating * 5).as_("total_score"), + employee.employee_name.as_("reviewer_name"), + employee.designation.as_("reviewer_designation"), + ) + .left_join(employee) + .on(interview_feedback.interviewer == employee.user_id) + .where((interview_feedback.interview == interview) & (interview_feedback.docstatus == 1)) + .orderby(interview_feedback.creation) + ).run(as_dict=True) + + +@frappe.whitelist() +def get_skill_wise_average_rating(interview: str) -> list[dict]: + skill_assessment = frappe.qb.DocType("Skill Assessment") + interview_feedback = frappe.qb.DocType("Interview Feedback") + return ( + frappe.qb.select( + skill_assessment.skill, + Avg(skill_assessment.rating).as_("rating"), + ) + .from_(skill_assessment) + .join(interview_feedback) + .on(skill_assessment.parent == interview_feedback.name) + .where((interview_feedback.interview == interview) & (interview_feedback.docstatus == 1)) + .groupby(skill_assessment.skill) + .orderby(skill_assessment.idx) + ).run(as_dict=True) + + +@frappe.whitelist() +def update_job_applicant_status(status: str, job_applicant: str): + try: + if not job_applicant: + frappe.throw(_("Please specify the job applicant to be updated.")) + + job_applicant = frappe.get_doc("Job Applicant", job_applicant) + job_applicant.status = status + job_applicant.save() + + frappe.msgprint( + _("Updated the Job Applicant status to {0}").format(job_applicant.status), + alert=True, + indicator="green", + ) + except Exception: + job_applicant.log_error("Failed to update Job Applicant status") + frappe.msgprint( + _("Failed to update the Job Applicant status"), + alert=True, + indicator="red", + ) + + +def send_interview_reminder(): + reminder_settings = frappe.db.get_value( + "HR Settings", + "HR Settings", + ["send_interview_reminder", "interview_reminder_template", "hiring_sender_email"], + as_dict=True, + ) + + if not cint(reminder_settings.send_interview_reminder): + return + + remind_before = cstr(frappe.db.get_single_value("HR Settings", "remind_before")) or "01:00:00" + remind_before = datetime.datetime.strptime(remind_before, "%H:%M:%S") + reminder_date_time = datetime.datetime.now() + datetime.timedelta( + hours=remind_before.hour, minutes=remind_before.minute, seconds=remind_before.second + ) + + interviews = frappe.get_all( + "Interview", + filters=[ + ["scheduled_on", "between", [datetime.datetime.now(), reminder_date_time]], + ["status", "=", "Pending"], + ["reminded", "=", 0], + ["docstatus", "!=", 2], + ], + ) + + interview_template = frappe.get_doc("Email Template", reminder_settings.interview_reminder_template) + + for d in interviews: + doc = frappe.get_doc("Interview", d.name) + context = doc.as_dict() + message = frappe.render_template(interview_template.response, context) + recipients = get_recipients(doc.name) + + frappe.sendmail( + sender=reminder_settings.hiring_sender_email, + recipients=recipients, + subject=interview_template.subject, + message=message, + reference_doctype=doc.doctype, + reference_name=doc.name, + ) + + doc.db_set("reminded", 1) + + +def send_daily_feedback_reminder(): + reminder_settings = frappe.db.get_value( + "HR Settings", + "HR Settings", + [ + "send_interview_feedback_reminder", + "feedback_reminder_notification_template", + "hiring_sender_email", + ], + as_dict=True, + ) + + if not cint(reminder_settings.send_interview_feedback_reminder): + return + + interview_feedback_template = frappe.get_doc( + "Email Template", reminder_settings.feedback_reminder_notification_template + ) + + interviews = frappe.get_all( + "Interview", + filters={ + "status": "Under Review", + "docstatus": ["!=", 2], + "scheduled_on": ["<=", getdate()], + "to_time": ["<=", nowtime()], + }, + pluck="name", + ) + + for interview in interviews: + recipients = get_recipients(interview, for_feedback=1) + + doc = frappe.get_doc("Interview", interview) + context = doc.as_dict() + + message = frappe.render_template(interview_feedback_template.response, context) + + if len(recipients): + frappe.sendmail( + sender=reminder_settings.hiring_sender_email, + recipients=recipients, + subject=interview_feedback_template.subject, + message=message, + reference_doctype="Interview", + reference_name=interview, + ) + + +@frappe.whitelist() +def get_expected_skill_set(interview_round): + return frappe.get_all( + "Expected Skill Set", filters={"parent": interview_round}, fields=["skill"], order_by="idx" + ) + + +@frappe.whitelist() +def create_interview_feedback(data, interview_name, interviewer, job_applicant): + import json + + if isinstance(data, str): + data = frappe._dict(json.loads(data)) + + if frappe.session.user != interviewer: + frappe.throw(_("Only Interviewer Are allowed to submit Interview Feedback")) + + interview_feedback = frappe.new_doc("Interview Feedback") + interview_feedback.interview = interview_name + interview_feedback.interviewer = interviewer + interview_feedback.job_applicant = job_applicant + + for d in data.skill_set: + d = frappe._dict(d) + interview_feedback.append("skill_assessment", d) + + interview_feedback.feedback = data.feedback + interview_feedback.result = data.result + + interview_feedback.save() + interview_feedback.submit() + + frappe.msgprint( + _("Interview Feedback {0} submitted successfully").format( + get_link_to_form("Interview Feedback", interview_feedback.name) + ) + ) + + +@frappe.whitelist() +@frappe.validate_and_sanitize_search_inputs +def get_interviewer_list(doctype, txt, searchfield, start, page_len, filters): + filters = [ + ["Has Role", "parent", "like", f"%{txt}%"], + ["Has Role", "role", "=", "interviewer"], + ["Has Role", "parenttype", "=", "User"], + ] + + if filters and isinstance(filters, list): + filters.extend(filters) + + return frappe.get_all( + "Has Role", + limit_start=start, + limit_page_length=page_len, + filters=filters, + fields=["parent"], + as_list=1, + ) + + +@frappe.whitelist() +def get_events(start, end, filters=None): + """Returns events for Gantt / Calendar view rendering. + + :param start: Start date-time. + :param end: End date-time. + :param filters: Filters (JSON). + """ + from frappe.desk.calendar import get_event_conditions + + events = [] + + event_color = { + "Pending": "#fff4f0", + "Under Review": "#d3e8fc", + "Cleared": "#eaf5ed", + "Rejected": "#fce7e7", + } + + conditions = get_event_conditions("Interview", filters) + + # nosemgrep: frappe-semgrep-rules.rules.frappe-using-db-sql + interviews = frappe.db.sql( + f""" + SELECT DISTINCT + `tabInterview`.name, `tabInterview`.job_applicant, `tabInterview`.interview_round, + `tabInterview`.scheduled_on, `tabInterview`.status, `tabInterview`.from_time as from_time, + `tabInterview`.to_time as to_time + from + `tabInterview` + where + (`tabInterview`.scheduled_on between %(start)s and %(end)s) + and docstatus != 2 + {conditions} + """, + {"start": start, "end": end}, + as_dict=True, + update={"allDay": 0}, + ) + + for d in interviews: + subject_data = [] + for field in ["name", "job_applicant", "interview_round"]: + if not d.get(field): + continue + subject_data.append(d.get(field)) + + color = event_color.get(d.status) + interview_data = { + "from": get_datetime( + "{scheduled_on} {from_time}".format( + scheduled_on=d.scheduled_on, from_time=d.from_time or "00:00:00" + ) + ), + "to": get_datetime( + "{scheduled_on} {to_time}".format( + scheduled_on=d.scheduled_on, to_time=d.to_time or "00:00:00" + ) + ), + "name": d.name, + "subject": "\n".join(subject_data), + "color": color if color else "#89bcde", + } + + events.append(interview_data) + + return events diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_calendar.js b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_calendar.js new file mode 100644 index 000000000..92438cc4a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_calendar.js @@ -0,0 +1,13 @@ +frappe.views.calendar["Interview"] = { + field_map: { + start: "from", + end: "to", + id: "name", + title: "subject", + allDay: "allDay", + color: "color", + }, + order_by: "scheduled_on", + gantt: true, + get_events_method: "hrms.hr.doctype.interview.interview.get_events", +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_feedback_reminder_template.html b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_feedback_reminder_template.html new file mode 100644 index 000000000..8d39fb54e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_feedback_reminder_template.html @@ -0,0 +1,5 @@ +

    Interview Feedback Reminder

    + +

    + Interview Feedback for Interview {{ name }} is not submitted yet. Please submit your feedback. Thank you, good day! +

    diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_list.js new file mode 100644 index 000000000..e1a07c5df --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_list.js @@ -0,0 +1,12 @@ +frappe.listview_settings["Interview"] = { + has_indicator_for_draft: 1, + get_indicator: function (doc) { + let status_color = { + Pending: "orange", + "Under Review": "blue", + Cleared: "green", + Rejected: "red", + }; + return [__(doc.status), status_color[doc.status], "status,=," + doc.status]; + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_reminder_notification_template.html b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_reminder_notification_template.html new file mode 100644 index 000000000..76de46e28 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/interview_reminder_notification_template.html @@ -0,0 +1,5 @@ +

    Interview Reminder

    + +

    + Interview: {{name}} is scheduled on {{scheduled_on}} from {{from_time}} to {{to_time}} +

    diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview/test_interview.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/test_interview.py new file mode 100644 index 000000000..a7dcd5491 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview/test_interview.py @@ -0,0 +1,331 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import datetime +import os + +import frappe +from frappe import _ +from frappe.core.doctype.user_permission.test_user_permission import create_user +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, get_datetime, get_time, getdate, nowtime + +from erpnext.setup.doctype.designation.test_designation import create_designation +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.interview.interview import ( + DuplicateInterviewRoundError, + get_feedback, + get_skill_wise_average_rating, + update_job_applicant_status, +) +from hrms.hr.doctype.job_applicant.job_applicant import get_interview_details +from hrms.tests.test_utils import create_job_applicant, get_email_by_subject + + +class TestInterview(IntegrationTestCase): + def test_validations_for_designation(self): + job_applicant = create_job_applicant() + interview = create_interview_and_dependencies( + job_applicant.name, designation="_Test_Sales_manager", save=0 + ) + self.assertRaises(DuplicateInterviewRoundError, interview.save) + + def test_notification_on_rescheduling(self): + job_applicant = create_job_applicant() + interview = create_interview_and_dependencies( + job_applicant.name, + scheduled_on=add_days(getdate(), -4), + from_time="10:00:00", + to_time="11:00:00", + ) + + previous_scheduled_date = interview.scheduled_on + frappe.db.sql("DELETE FROM `tabEmail Queue`") + + interview.reschedule_interview( + add_days(getdate(previous_scheduled_date), 2), from_time="11:00:00", to_time="12:00:00" + ) + interview.reload() + + self.assertEqual(interview.scheduled_on, add_days(getdate(previous_scheduled_date), 2)) + self.assertEqual(get_time(interview.from_time), get_time("11:00:00")) + self.assertEqual(get_time(interview.to_time), get_time("12:00:00")) + + notification = frappe.get_all( + "Email Queue", filters={"message": ("like", "%Your Interview session is rescheduled from%")} + ) + self.assertIsNotNone(notification) + + def test_notification_for_scheduling(self): + from hrms.hr.doctype.interview.interview import send_interview_reminder + + setup_reminder_settings() + + job_applicant = create_job_applicant() + scheduled_on = datetime.datetime.now() + datetime.timedelta(minutes=10) + + create_interview_and_dependencies(job_applicant.name, scheduled_on=scheduled_on) + + frappe.db.delete("Email Queue") + + frappe.db.set_single_value("HR Settings", "send_interview_reminder", 0) + send_interview_reminder() + self.assertFalse(get_email_by_subject("Subject: Interview Reminder")) + + frappe.db.set_single_value("HR Settings", "send_interview_reminder", 1) + send_interview_reminder() + import time + + time.sleep(1) + self.assertTrue(get_email_by_subject("Subject: Interview Reminder")) + + def test_notification_for_feedback_submission(self): + from hrms.hr.doctype.interview.interview import send_daily_feedback_reminder + + setup_reminder_settings() + + job_applicant = create_job_applicant() + scheduled_on = add_days(getdate(), -4) + create_interview_and_dependencies( + job_applicant.name, scheduled_on=scheduled_on, status="Under Review" + ) + + frappe.db.delete("Email Queue") + + frappe.db.set_single_value("HR Settings", "send_interview_feedback_reminder", 0) + send_daily_feedback_reminder() + self.assertFalse(get_email_by_subject("Subject: Interview Feedback Reminder")) + + frappe.db.set_single_value("HR Settings", "send_interview_feedback_reminder", 1) + send_daily_feedback_reminder() + self.assertTrue(get_email_by_subject("Subject: Interview Feedback Reminder")) + + def test_get_interview_details_for_applicant_dashboard(self): + job_applicant = create_job_applicant() + interview = create_interview_and_dependencies(job_applicant.name) + + details = get_interview_details(job_applicant.name) + self.assertEqual(details.get("stars"), 5) + self.assertEqual( + details.get("interviews").get(interview.name), + { + "name": interview.name, + "interview_round": interview.interview_round, + "scheduled_on": interview.scheduled_on, + "average_rating": interview.average_rating * 5, + "status": "Pending", + }, + ) + + def test_skill_wise_average_rating(self): + from hrms.hr.doctype.interview_feedback.test_interview_feedback import create_interview_feedback + + job_applicant = create_job_applicant() + interview = create_interview_and_dependencies(job_applicant.name) + + create_interview_feedback( + interview.name, + "test_interviewer1@example.com", + [{"skill": "Python", "rating": 0.9}, {"skill": "JS", "rating": 0.8}], + ) + create_interview_feedback( + interview.name, + "test_interviewer2@example.com", + [{"skill": "Python", "rating": 0.6}, {"skill": "JS", "rating": 0.9}], + ) + + ratings = get_skill_wise_average_rating(interview.name) + self.assertEqual(ratings, [{"skill": "Python", "rating": 0.75}, {"skill": "JS", "rating": 0.85}]) + + def test_get_feedback(self): + from hrms.hr.doctype.interview_feedback.test_interview_feedback import create_interview_feedback + + job_applicant = create_job_applicant() + interview = create_interview_and_dependencies(job_applicant.name) + make_employee( + "test_interviewer2@example.com", + company="_Test Company", + first_name="Test", + date_of_joining=frappe.utils.add_years(getdate(), -2), + designation="Engineer", + user_id="test_interviewer2@example.com", + ) + + feedback_1 = create_interview_feedback( + interview.name, + "test_interviewer1@example.com", + [{"skill": "Python", "rating": 0.9}, {"skill": "JS", "rating": 0.8}], + ) + feedback_2 = create_interview_feedback( + interview.name, + "test_interviewer2@example.com", + [{"skill": "Python", "rating": 0.6}, {"skill": "JS", "rating": 0.9}], + ) + + feedback = get_feedback(interview.name) + expected_data = [ + { + "name": feedback_1.name, + "added_on": get_datetime(feedback_1.modified), + "user": feedback_1.interviewer, + "feedback": feedback_1.feedback, + "total_score": feedback_1.average_rating * 5, + "reviewer_name": None, + "reviewer_designation": None, + }, + { + "name": feedback_2.name, + "added_on": get_datetime(feedback_2.modified), + "user": feedback_2.interviewer, + "feedback": feedback_2.feedback, + "total_score": feedback_2.average_rating * 5, + "reviewer_name": "Test", + "reviewer_designation": "Engineer", + }, + ] + + self.assertEqual(feedback, expected_data) + + def test_job_applicant_status_update_on_interview_submit(self): + job_applicant = create_job_applicant() + create_interview_and_dependencies(job_applicant.name, status="Cleared") + + update_job_applicant_status(job_applicant=job_applicant.name, status="Accepted") + job_applicant.reload() + + self.assertEqual(job_applicant.status, "Accepted") + + def test_status_on_discard(self): + job_applicant = create_job_applicant() + interview = create_interview_and_dependencies(job_applicant.name, status="Pending") + + interview.discard() + interview.reload() + + self.assertEqual(interview.status, "Cancelled") + + def tearDown(self): + frappe.db.rollback() + + +def create_interview_and_dependencies( + job_applicant, + scheduled_on=None, + from_time=None, + to_time=None, + designation=None, + status=None, + save=True, +): + if designation: + designation = create_designation(designation_name="_Test_Sales_manager").name + + create_user("test_interviewer1@example.com", "Interviewer") + create_user("test_interviewer2@example.com", "Interviewer") + + interview_round = create_interview_round( + "Technical Round", + ["Python", "JS"], + ["test_interviewer1@example.com", "test_interviewer2@example.com"], + designation, + True, + ) + + interview = frappe.new_doc("Interview") + interview.interview_round = interview_round.name + interview.job_applicant = job_applicant + interview.scheduled_on = scheduled_on or getdate() + interview.from_time = from_time or nowtime() + interview.to_time = to_time or nowtime() + interview.append("interview_details", {"interviewer": "test_interviewer1@example.com"}) + interview.append("interview_details", {"interviewer": "test_interviewer2@example.com"}) + + if status: + interview.status = status + + if save: + interview.save() + + return interview + + +def create_interview_round(name, skill_set, interviewers=None, designation=None, save=True): + create_skill_set(skill_set) + interview_round = frappe.new_doc("Interview Round") + interview_round.round_name = name + interview_round.interview_type = create_interview_type() + # average rating = 4 + interview_round.expected_average_rating = 0.8 + if designation: + interview_round.designation = designation + + for skill in skill_set: + interview_round.append("expected_skill_set", {"skill": skill}) + + for interviewer in interviewers: + interview_round.append("interviewers", {"user": interviewer}) + + if save: + interview_round.save() + + return interview_round + + +def create_skill_set(skill_set): + for skill in skill_set: + if not frappe.db.exists("Skill", skill): + doc = frappe.new_doc("Skill") + doc.skill_name = skill + doc.save() + + +def create_interview_type(name="test_interview_type"): + if frappe.db.exists("Interview Type", name): + return frappe.get_doc("Interview Type", name).name + else: + doc = frappe.new_doc("Interview Type") + doc.name = name + doc.description = "_Test_Description" + doc.save() + + return doc.name + + +def setup_reminder_settings(): + if not frappe.db.exists("Email Template", _("Interview Reminder")): + base_path = frappe.get_app_path("erpnext", "hr", "doctype") + response = frappe.read_file( + os.path.join(base_path, "interview/interview_reminder_notification_template.html") + ) + + frappe.get_doc( + { + "doctype": "Email Template", + "name": _("Interview Reminder"), + "response": response, + "subject": _("Interview Reminder"), + "owner": frappe.session.user, + } + ).insert(ignore_permissions=True) + + if not frappe.db.exists("Email Template", _("Interview Feedback Reminder")): + base_path = frappe.get_app_path("erpnext", "hr", "doctype") + response = frappe.read_file( + os.path.join(base_path, "interview/interview_feedback_reminder_template.html") + ) + + frappe.get_doc( + { + "doctype": "Email Template", + "name": _("Interview Feedback Reminder"), + "response": response, + "subject": _("Interview Feedback Reminder"), + "owner": frappe.session.user, + } + ).insert(ignore_permissions=True) + + hr_settings = frappe.get_doc("HR Settings") + hr_settings.interview_reminder_template = _("Interview Reminder") + hr_settings.feedback_reminder_notification_template = _("Interview Feedback Reminder") + hr_settings.save() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_detail/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_detail/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_detail/interview_detail.json b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_detail/interview_detail.json new file mode 100644 index 000000000..edcaab399 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_detail/interview_detail.json @@ -0,0 +1,32 @@ +{ + "actions": [], + "creation": "2021-04-12 16:24:10.382863", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "interviewer" + ], + "fields": [ + { + "fieldname": "interviewer", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Interviewer", + "options": "User" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:51.859591", + "modified_by": "Administrator", + "module": "HR", + "name": "Interview Detail", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_detail/interview_detail.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_detail/interview_detail.py new file mode 100644 index 000000000..644c8f89a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_detail/interview_detail.py @@ -0,0 +1,9 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class InterviewDetail(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/interview_feedback.js b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/interview_feedback.js new file mode 100644 index 000000000..0487db188 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/interview_feedback.js @@ -0,0 +1,53 @@ +// Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Interview Feedback", { + onload: function (frm) { + frm.ignore_doctypes_on_cancel_all = ["Interview"]; + + frm.set_query("interview", function () { + return { + filters: { + docstatus: ["!=", 2], + }, + }; + }); + }, + + interview_round: function (frm) { + frappe.call({ + method: "hrms.hr.doctype.interview.interview.get_expected_skill_set", + args: { + interview_round: frm.doc.interview_round, + }, + callback: function (r) { + frm.set_value("skill_assessment", r.message); + }, + }); + }, + + interview: function (frm) { + frappe.call({ + method: "hrms.hr.doctype.interview_feedback.interview_feedback.get_applicable_interviewers", + args: { + interview: frm.doc.interview || "", + }, + callback: function (r) { + frm.set_query("interviewer", function () { + return { + filters: { + name: ["in", r.message], + }, + }; + }); + }, + }); + }, + + interviewer: function (frm) { + if (!frm.doc.interview) { + frappe.throw(__("Select Interview first")); + frm.set_value("interviewer", ""); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/interview_feedback.json b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/interview_feedback.json new file mode 100644 index 000000000..508af6aec --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/interview_feedback.json @@ -0,0 +1,172 @@ +{ + "actions": [], + "autoname": "HR-INT-FEED-.####", + "creation": "2021-04-12 17:03:13.833285", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "details_section", + "interview", + "interview_round", + "job_applicant", + "column_break_3", + "interviewer", + "result", + "section_break_4", + "skill_assessment", + "average_rating", + "section_break_7", + "feedback", + "amended_from" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "interview", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Interview", + "options": "Interview", + "reqd": 1 + }, + { + "allow_in_quick_entry": 1, + "fetch_from": "interview.interview_round", + "fieldname": "interview_round", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Interview Round", + "options": "Interview Round", + "read_only": 1, + "reqd": 1 + }, + { + "allow_in_quick_entry": 1, + "fieldname": "interviewer", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Interviewer", + "options": "User", + "reqd": 1 + }, + { + "fieldname": "section_break_4", + "fieldtype": "Section Break", + "label": "Skill Assessment" + }, + { + "allow_in_quick_entry": 1, + "fieldname": "skill_assessment", + "fieldtype": "Table", + "options": "Skill Assessment", + "reqd": 1 + }, + { + "fieldname": "average_rating", + "fieldtype": "Rating", + "in_list_view": 1, + "label": "Average Rating", + "read_only": 1 + }, + { + "fieldname": "section_break_7", + "fieldtype": "Section Break", + "label": "Feedback" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Interview Feedback", + "print_hide": 1, + "read_only": 1 + }, + { + "allow_in_quick_entry": 1, + "fieldname": "feedback", + "fieldtype": "Text" + }, + { + "fieldname": "result", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Result", + "options": "\nCleared\nRejected", + "reqd": 1 + }, + { + "fieldname": "details_section", + "fieldtype": "Section Break", + "label": "Details" + }, + { + "fetch_from": "interview.job_applicant", + "fieldname": "job_applicant", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Job Applicant", + "options": "Job Applicant", + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:09:51.973613", + "modified_by": "Administrator", + "module": "HR", + "name": "Interview Feedback", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Interviewer", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "interviewer", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/interview_feedback.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/interview_feedback.py new file mode 100644 index 000000000..9fec86bd7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/interview_feedback.py @@ -0,0 +1,84 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.query_builder.functions import Avg +from frappe.utils import flt, get_link_to_form, getdate + + +class InterviewFeedback(Document): + def validate(self): + self.validate_interviewer() + self.validate_interview_date() + self.validate_duplicate() + self.calculate_average_rating() + + def on_submit(self): + self.update_interview_average_rating() + + def on_cancel(self): + self.update_interview_average_rating() + + def validate_interviewer(self): + applicable_interviewers = get_applicable_interviewers(self.interview) + if self.interviewer not in applicable_interviewers: + frappe.throw( + _("{0} is not allowed to submit Interview Feedback for the Interview: {1}").format( + frappe.bold(self.interviewer), frappe.bold(self.interview) + ) + ) + + def validate_interview_date(self): + scheduled_date = frappe.db.get_value("Interview", self.interview, "scheduled_on") + + if getdate() < getdate(scheduled_date) and self.docstatus == 1: + frappe.throw( + _("Submission of {0} before {1} is not allowed").format( + frappe.bold(_("Interview Feedback")), frappe.bold(_("Interview Scheduled Date")) + ) + ) + + def validate_duplicate(self): + duplicate_feedback = frappe.db.exists( + "Interview Feedback", + {"interviewer": self.interviewer, "interview": self.interview, "docstatus": 1}, + ) + + if duplicate_feedback: + frappe.throw( + _( + "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." + ).format(self.interview, get_link_to_form("Interview Feedback", duplicate_feedback)) + ) + + def calculate_average_rating(self): + total_rating = 0 + for d in self.skill_assessment: + if d.rating: + total_rating += flt(d.rating) + + self.average_rating = flt( + total_rating / len(self.skill_assessment) if len(self.skill_assessment) else 0 + ) + + def update_interview_average_rating(self): + interview_feedback = frappe.qb.DocType("Interview Feedback") + query = ( + frappe.qb.from_(interview_feedback) + .where((interview_feedback.interview == self.interview) & (interview_feedback.docstatus == 1)) + .select(Avg(interview_feedback.average_rating).as_("average")) + ) + data = query.run(as_dict=True) + average_rating = data[0].average + + interview = frappe.get_doc("Interview", self.interview) + interview.db_set("average_rating", average_rating) + interview.notify_update() + + +@frappe.whitelist() +def get_applicable_interviewers(interview: str) -> list[str]: + return frappe.get_all("Interview Detail", filters={"parent": interview}, pluck="interviewer") diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/test_interview_feedback.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/test_interview_feedback.py new file mode 100644 index 000000000..ad9f7f319 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_feedback/test_interview_feedback.py @@ -0,0 +1,97 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, flt, getdate + +from hrms.hr.doctype.interview.test_interview import ( + create_interview_and_dependencies, + create_skill_set, +) +from hrms.tests.test_utils import create_job_applicant + + +class TestInterviewFeedback(IntegrationTestCase): + def test_validation_for_skill_set(self): + frappe.set_user("Administrator") + job_applicant = create_job_applicant() + interview = create_interview_and_dependencies( + job_applicant.name, scheduled_on=add_days(getdate(), -1) + ) + skill_ratings = get_skills_rating(interview.interview_round) + + interviewer = "test_interviewer1@example.com" + create_skill_set(["Leadership"]) + + interview_feedback = create_interview_feedback(interview.name, interviewer, skill_ratings) + interview_feedback.append("skill_assessment", {"skill": "Leadership", "rating": 0.8}) + frappe.set_user(interviewer) + + self.assertRaises(frappe.ValidationError, interview_feedback.save) + + frappe.set_user("Administrator") + + def test_average_ratings_on_feedback_submission_and_cancellation(self): + job_applicant = create_job_applicant() + interview = create_interview_and_dependencies( + job_applicant.name, scheduled_on=add_days(getdate(), -1) + ) + skill_ratings = get_skills_rating(interview.interview_round) + + # For First Interviewer Feedback + interviewer = "test_interviewer1@example.com" + frappe.set_user(interviewer) + + # calculating Average + feedback_1 = create_interview_feedback(interview.name, interviewer, skill_ratings) + + total_rating = 0 + for d in feedback_1.skill_assessment: + if d.rating: + total_rating += flt(d.rating) + + avg_rating = flt( + total_rating / len(feedback_1.skill_assessment) if len(feedback_1.skill_assessment) else 0 + ) + + self.assertEqual(flt(avg_rating, 2), flt(feedback_1.average_rating, 2)) + + """For Second Interviewer Feedback""" + interviewer = "test_interviewer2@example.com" + frappe.set_user(interviewer) + + feedback_2 = create_interview_feedback(interview.name, interviewer, skill_ratings) + interview.reload() + + feedback_2.cancel() + interview.reload() + + frappe.set_user("Administrator") + + def tearDown(self): + frappe.db.rollback() + + +def create_interview_feedback(interview, interviewer, skills_ratings): + interview_feedback = frappe.new_doc("Interview Feedback") + interview_feedback.interview = interview + interview_feedback.interviewer = interviewer + interview_feedback.result = "Cleared" + + for rating in skills_ratings: + interview_feedback.append("skill_assessment", rating) + + interview_feedback.save() + interview_feedback.submit() + + return interview_feedback + + +def get_skills_rating(interview_round): + import random + + skills = frappe.get_all("Expected Skill Set", filters={"parent": interview_round}, fields=["skill"]) + for d in skills: + d["rating"] = random.random() + return skills diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/interview_round.js b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/interview_round.js new file mode 100644 index 000000000..d91eb3491 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/interview_round.js @@ -0,0 +1,38 @@ +// Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Interview Round", { + refresh: function (frm) { + if (!frm.doc.__islocal) { + frm.add_custom_button(__("Create Interview"), function () { + frm.events.create_interview(frm); + }); + } + }, + designation: function (frm) { + if (frm.doc.designation) { + frappe.db.get_doc("Designation", frm.doc.designation).then((designation) => { + frappe.model.clear_table(frm.doc, "expected_skill_set"); + + designation.skills.forEach((designation_skill) => { + const row = frm.add_child("expected_skill_set"); + row.skill = designation_skill.skill; + }); + + refresh_field("expected_skill_set"); + }); + } + }, + create_interview: function (frm) { + frappe.call({ + method: "hrms.hr.doctype.interview_round.interview_round.create_interview", + args: { + doc: frm.doc, + }, + callback: function (r) { + var doclist = frappe.model.sync(r.message); + frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + }, + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/interview_round.json b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/interview_round.json new file mode 100644 index 000000000..9ae7e73b9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/interview_round.json @@ -0,0 +1,118 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:round_name", + "creation": "2021-04-12 12:57:19.902866", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "round_name", + "interview_type", + "interviewers", + "column_break_3", + "expected_average_rating", + "expected_skills_section", + "designation", + "expected_skill_set" + ], + "fields": [ + { + "fieldname": "round_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Round Name", + "reqd": 1, + "unique": 1 + }, + { + "fieldname": "designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation" + }, + { + "fieldname": "expected_skills_section", + "fieldtype": "Section Break" + }, + { + "fieldname": "expected_skill_set", + "fieldtype": "Table", + "label": "Expected Skillset", + "options": "Expected Skill Set", + "reqd": 1 + }, + { + "fieldname": "expected_average_rating", + "fieldtype": "Rating", + "label": "Expected Average Rating" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "interview_type", + "fieldtype": "Link", + "label": "Interview Type", + "options": "Interview Type" + }, + { + "fieldname": "interviewers", + "fieldtype": "Table MultiSelect", + "label": "Interviewers", + "options": "Interviewer" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2024-05-01 11:57:32.754037", + "modified_by": "Administrator", + "module": "HR", + "name": "Interview Round", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Interviewer", + "select": 1, + "share": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/interview_round.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/interview_round.py new file mode 100644 index 000000000..0b75e557e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/interview_round.py @@ -0,0 +1,30 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import json + +import frappe +from frappe.model.document import Document + + +class InterviewRound(Document): + pass + + +@frappe.whitelist() +def create_interview(doc): + if isinstance(doc, str): + doc = json.loads(doc) + doc = frappe.get_doc(doc) + + interview = frappe.new_doc("Interview") + interview.interview_round = doc.name + interview.designation = doc.designation + + if doc.interviewers: + interview.interview_details = [] + for d in doc.interviewers: + interview.append("interview_details", {"interviewer": d.user}) + + return interview diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/test_interview_round.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/test_interview_round.py new file mode 100644 index 000000000..9339b17c8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_round/test_interview_round.py @@ -0,0 +1,10 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + +# import frappe + + +class TestInterviewRound(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/interview_type.js b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/interview_type.js new file mode 100644 index 000000000..9f74c8dfe --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/interview_type.js @@ -0,0 +1,7 @@ +// Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Interview Type", { + // refresh: function(frm) { + // } +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/interview_type.json b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/interview_type.json new file mode 100644 index 000000000..1a3c8d525 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/interview_type.json @@ -0,0 +1,74 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "Prompt", + "creation": "2021-04-12 14:44:40.664034", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "description" + ], + "fields": [ + { + "fieldname": "description", + "fieldtype": "Text", + "in_list_view": 1, + "label": "Description" + } + ], + "index_web_pages_for_search": 1, + "links": [ + { + "link_doctype": "Interview Round", + "link_fieldname": "interview_type" + } + ], + "modified": "2024-03-27 13:09:52.310012", + "modified_by": "Administrator", + "module": "HR", + "name": "Interview Type", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/interview_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/interview_type.py new file mode 100644 index 000000000..f5ebda427 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/interview_type.py @@ -0,0 +1,10 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class InterviewType(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/test_interview_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/test_interview_type.py new file mode 100644 index 000000000..6cf77444a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interview_type/test_interview_type.py @@ -0,0 +1,9 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestInterviewType(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interviewer/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interviewer/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interviewer/interviewer.json b/apps/erpnext/src/hrms/hrms/hr/doctype/interviewer/interviewer.json new file mode 100644 index 000000000..c8b74e1e4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interviewer/interviewer.json @@ -0,0 +1,32 @@ +{ + "actions": [], + "creation": "2021-04-12 17:38:19.354734", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "user" + ], + "fields": [ + { + "fieldname": "user", + "fieldtype": "Link", + "in_list_view": 1, + "label": "User", + "options": "User" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:52.450046", + "modified_by": "Administrator", + "module": "HR", + "name": "Interviewer", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/interviewer/interviewer.py b/apps/erpnext/src/hrms/hrms/hr/doctype/interviewer/interviewer.py new file mode 100644 index 000000000..2dc4a1432 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/interviewer/interviewer.py @@ -0,0 +1,10 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class Interviewer(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/README.md new file mode 100644 index 000000000..8eb2edbda --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/README.md @@ -0,0 +1 @@ +Applicant for Job. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant.js b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant.js new file mode 100644 index 000000000..debd5bae6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant.js @@ -0,0 +1,117 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +// For license information, please see license.txt + +// for communication +cur_frm.email_field = "email_id"; + +frappe.ui.form.on("Job Applicant", { + refresh: function (frm) { + frm.set_query("job_title", function () { + return { + filters: { + status: "Open", + }, + }; + }); + frm.events.create_custom_buttons(frm); + frm.events.make_dashboard(frm); + }, + + create_custom_buttons: function (frm) { + if (!frm.doc.__islocal && frm.doc.status !== "Rejected" && frm.doc.status !== "Accepted") { + frm.add_custom_button( + __("Interview"), + function () { + frm.events.create_dialog(frm); + }, + __("Create"), + ); + } + + if (!frm.doc.__islocal && frm.doc.status == "Accepted") { + if (frm.doc.__onload && frm.doc.__onload.job_offer) { + $('[data-doctype="Employee Onboarding"]').find("button").show(); + $('[data-doctype="Job Offer"]').find("button").hide(); + frm.add_custom_button( + __("Job Offer"), + function () { + frappe.set_route("Form", "Job Offer", frm.doc.__onload.job_offer); + }, + __("View"), + ); + } else { + $('[data-doctype="Employee Onboarding"]').find("button").hide(); + $('[data-doctype="Job Offer"]').find("button").show(); + frm.add_custom_button( + __("Job Offer"), + function () { + frappe.route_options = { + job_applicant: frm.doc.name, + applicant_name: frm.doc.applicant_name, + designation: frm.doc.job_opening || frm.doc.designation, + }; + frappe.new_doc("Job Offer"); + }, + __("Create"), + ); + } + } + }, + + make_dashboard: function (frm) { + frappe.call({ + method: "hrms.hr.doctype.job_applicant.job_applicant.get_interview_details", + args: { + job_applicant: frm.doc.name, + }, + callback: function (r) { + if (r.message) { + $("div").remove(".form-dashboard-section.custom"); + frm.dashboard.add_section( + frappe.render_template("job_applicant_dashboard", { + data: r.message.interviews, + number_of_stars: r.message.stars, + }), + __("Interview Summary"), + ); + } + }, + }); + }, + + create_dialog: function (frm) { + let d = new frappe.ui.Dialog({ + title: __("Enter Interview Round"), + fields: [ + { + label: "Interview Round", + fieldname: "interview_round", + fieldtype: "Link", + options: "Interview Round", + }, + ], + primary_action_label: __("Create Interview"), + primary_action(values) { + frm.events.create_interview(frm, values); + d.hide(); + }, + }); + d.show(); + }, + + create_interview: function (frm, values) { + frappe.call({ + method: "hrms.hr.doctype.job_applicant.job_applicant.create_interview", + args: { + doc: frm.doc, + interview_round: values.interview_round, + }, + callback: function (r) { + var doclist = frappe.model.sync(r.message); + frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + }, + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant.json b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant.json new file mode 100644 index 000000000..1147f5156 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant.json @@ -0,0 +1,224 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "HR-APP-.YYYY.-.#####", + "creation": "2013-01-29 19:25:37", + "description": "Applicant for a Job", + "doctype": "DocType", + "document_type": "Document", + "email_append_to": 1, + "engine": "InnoDB", + "field_order": [ + "details_section", + "applicant_name", + "email_id", + "phone_number", + "country", + "column_break_3", + "job_title", + "designation", + "status", + "source_and_rating_section", + "source", + "source_name", + "employee_referral", + "column_break_13", + "applicant_rating", + "section_break_6", + "notes", + "cover_letter", + "resume_attachment", + "resume_link", + "section_break_16", + "currency", + "column_break_18", + "lower_range", + "upper_range" + ], + "fields": [ + { + "bold": 1, + "fieldname": "applicant_name", + "fieldtype": "Data", + "in_global_search": 1, + "label": "Applicant Name", + "reqd": 1 + }, + { + "bold": 1, + "fieldname": "email_id", + "fieldtype": "Data", + "label": "Email Address", + "options": "Email", + "reqd": 1 + }, + { + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Status", + "options": "Open\nReplied\nRejected\nHold\nAccepted", + "reqd": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break", + "width": "50%" + }, + { + "fieldname": "job_title", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Job Opening", + "options": "Job Opening", + "search_index": 1 + }, + { + "fieldname": "source", + "fieldtype": "Link", + "label": "Source", + "options": "Job Applicant Source" + }, + { + "depends_on": "eval: doc.source==\"Employee Referral\" ", + "fieldname": "source_name", + "fieldtype": "Link", + "label": "Source Name", + "options": "Employee" + }, + { + "fieldname": "section_break_6", + "fieldtype": "Section Break", + "label": "Resume" + }, + { + "fieldname": "cover_letter", + "fieldtype": "Text", + "label": "Cover Letter" + }, + { + "fieldname": "resume_attachment", + "fieldtype": "Attach", + "label": "Resume Attachment" + }, + { + "fieldname": "notes", + "fieldtype": "Data", + "label": "Notes", + "read_only": 1 + }, + { + "fieldname": "phone_number", + "fieldtype": "Data", + "label": "Phone Number", + "options": "Phone" + }, + { + "fieldname": "country", + "fieldtype": "Link", + "label": "Country", + "options": "Country" + }, + { + "fieldname": "resume_link", + "fieldtype": "Data", + "label": "Resume Link" + }, + { + "fieldname": "applicant_rating", + "fieldtype": "Rating", + "in_list_view": 1, + "label": "Applicant Rating" + }, + { + "fieldname": "section_break_16", + "fieldtype": "Section Break", + "label": "Salary Expectation" + }, + { + "fieldname": "lower_range", + "fieldtype": "Currency", + "label": "Lower Range", + "options": "currency", + "precision": "0" + }, + { + "fieldname": "upper_range", + "fieldtype": "Currency", + "label": "Upper Range", + "options": "currency", + "precision": "0" + }, + { + "fieldname": "column_break_18", + "fieldtype": "Column Break" + }, + { + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency" + }, + { + "fieldname": "employee_referral", + "fieldtype": "Link", + "label": "Employee Referral", + "options": "Employee Referral", + "read_only": 1 + }, + { + "fieldname": "details_section", + "fieldtype": "Section Break", + "label": "Details" + }, + { + "fieldname": "source_and_rating_section", + "fieldtype": "Section Break", + "label": "Source and Rating" + }, + { + "fieldname": "column_break_13", + "fieldtype": "Column Break" + }, + { + "fetch_from": "job_title.designation", + "fetch_if_empty": 1, + "fieldname": "designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation" + } + ], + "icon": "fa fa-user", + "idx": 1, + "index_web_pages_for_search": 1, + "links": [], + "modified": "2025-01-16 13:06:05.312255", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Applicant", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "search_fields": "applicant_name, email_id, job_title, phone_number", + "sender_field": "email_id", + "sort_field": "creation", + "sort_order": "ASC", + "states": [], + "subject_field": "notes", + "title_field": "applicant_name" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant.py new file mode 100644 index 000000000..998e189ec --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant.py @@ -0,0 +1,120 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.model.naming import append_number_if_name_exists +from frappe.utils import flt, validate_email_address + +from hrms.hr.doctype.interview.interview import get_interviewers + + +class DuplicationError(frappe.ValidationError): + pass + + +class JobApplicant(Document): + def onload(self): + job_offer = frappe.get_all("Job Offer", filters={"job_applicant": self.name}) + if job_offer: + self.get("__onload").job_offer = job_offer[0].name + + def autoname(self): + self.name = self.email_id + + # applicant can apply more than once for a different job title or reapply + if frappe.db.exists("Job Applicant", self.name): + self.name = append_number_if_name_exists("Job Applicant", self.name) + + def validate(self): + if self.email_id: + validate_email_address(self.email_id, True) + + if self.employee_referral: + self.set_status_for_employee_referral() + + if not self.applicant_name and self.email_id: + guess = self.email_id.split("@")[0] + self.applicant_name = " ".join([p.capitalize() for p in guess.split(".")]) + + def before_insert(self): + if self.job_title: + job_opening_status = frappe.db.get_value("Job Opening", self.job_title, "status") + if job_opening_status == "Closed": + frappe.throw( + _("Cannot create a Job Applicant against a closed Job Opening"), title=_("Not Allowed") + ) + + def set_status_for_employee_referral(self): + emp_ref = frappe.get_doc("Employee Referral", self.employee_referral) + if self.status in ["Open", "Replied", "Hold"]: + emp_ref.db_set("status", "In Process") + elif self.status in ["Accepted", "Rejected"]: + emp_ref.db_set("status", self.status) + + +@frappe.whitelist() +def create_interview(doc, interview_round): + import json + + if isinstance(doc, str): + doc = json.loads(doc) + doc = frappe.get_doc(doc) + + round_designation = frappe.db.get_value("Interview Round", interview_round, "designation") + + if round_designation and doc.designation and round_designation != doc.designation: + frappe.throw( + _("Interview Round {0} is only applicable for the Designation {1}").format( + interview_round, round_designation + ) + ) + + interview = frappe.new_doc("Interview") + interview.interview_round = interview_round + interview.job_applicant = doc.name + interview.designation = doc.designation + interview.resume_link = doc.resume_link + interview.job_opening = doc.job_title + + interviewers = get_interviewers(interview_round) + for d in interviewers: + interview.append("interview_details", {"interviewer": d.interviewer}) + + return interview + + +@frappe.whitelist() +def get_interview_details(job_applicant): + interview_details = frappe.db.get_all( + "Interview", + filters={"job_applicant": job_applicant, "docstatus": ["!=", 2]}, + fields=["name", "interview_round", "scheduled_on", "average_rating", "status"], + ) + interview_detail_map = {} + meta = frappe.get_meta("Interview") + number_of_stars = meta.get_options("average_rating") or 5 + + for detail in interview_details: + detail.average_rating = detail.average_rating * number_of_stars if detail.average_rating else 0 + + interview_detail_map[detail.name] = detail + + return {"interviews": interview_detail_map, "stars": number_of_stars} + + +@frappe.whitelist() +def get_applicant_to_hire_percentage(): + frappe.has_permission("Job Applicant", throw=True) + + total_applicants = frappe.db.count("Job Applicant") + total_hired = frappe.db.count("Job Applicant", filters={"status": "Accepted"}) + + return { + "value": flt(total_hired) / flt(total_applicants) * 100 if total_applicants else 0, + "fieldtype": "Percent", + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant_dashboard.html b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant_dashboard.html new file mode 100644 index 000000000..55ebedb1d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant_dashboard.html @@ -0,0 +1,54 @@ + +{% if not jQuery.isEmptyObject(data) %} + + + + + + + + + + + + + {% for(const [key, value] of Object.entries(data)) { %} + + + + + + {% let right_class = ''; %} + {% let left_class = ''; %} + + + + {% } %} + +
    {{ __("Interview") }}{{ __("Interview Round") }}{{ __("Date") }}{{ __("Status") }}{{ __("Rating") }}
    + {%= key %} + {%= value["interview_round"] %} {%= frappe.datetime.str_to_user(value["scheduled_on"]) %} {%= value["status"] %} +
    + {% for (let i = 1; i <= number_of_stars; i++) { %} + {% if (i <= value["average_rating"]) { %} + {% right_class = 'star-click'; %} + {% } else { %} + {% right_class = ''; %} + {% } %} + + {% if ((i <= value["average_rating"]) || ((i - 0.5) == value["average_rating"])) { %} + {% left_class = 'star-click'; %} + {% } else { %} + {% left_class = ''; %} + {% } %} + + + + + + {% } %} +
    +
    +{% else %} +

    {{ __("No Interview has been scheduled.") }}

    +{% endif %} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant_dashboard.py new file mode 100644 index 000000000..14b944ac6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant_dashboard.py @@ -0,0 +1,9 @@ +def get_data(): + return { + "fieldname": "job_applicant", + "transactions": [ + {"items": ["Employee", "Employee Onboarding"]}, + {"items": ["Job Offer", "Appointment Letter"]}, + {"items": ["Interview"]}, + ], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant_list.js new file mode 100644 index 000000000..266e7e85c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/job_applicant_list.js @@ -0,0 +1,15 @@ +// Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors +// MIT License. See license.txt + +frappe.listview_settings["Job Applicant"] = { + add_fields: ["status"], + get_indicator: function (doc) { + if (doc.status == "Accepted") { + return [__(doc.status), "green", "status,=," + doc.status]; + } else if (["Open", "Replied"].includes(doc.status)) { + return [__(doc.status), "orange", "status,=," + doc.status]; + } else if (["Hold", "Rejected"].includes(doc.status)) { + return [__(doc.status), "red", "status,=," + doc.status]; + } + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/test_job_applicant.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/test_job_applicant.py new file mode 100644 index 000000000..750a2070d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant/test_job_applicant.py @@ -0,0 +1,55 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import nowdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.job_offer.test_job_offer import create_job_offer +from hrms.tests.test_utils import create_job_applicant + + +class TestJobApplicant(IntegrationTestCase): + def test_job_applicant_naming(self): + applicant = frappe.get_doc( + { + "doctype": "Job Applicant", + "status": "Open", + "applicant_name": "_Test Applicant", + "email_id": "job_applicant_naming@example.com", + } + ).insert() + self.assertEqual(applicant.name, "job_applicant_naming@example.com") + + applicant = frappe.get_doc( + { + "doctype": "Job Applicant", + "status": "Open", + "applicant_name": "_Test Applicant", + "email_id": "job_applicant_naming@example.com", + } + ).insert() + self.assertEqual(applicant.name, "job_applicant_naming@example.com-1") + + def test_update_applicant_to_employee(self): + applicant = create_job_applicant() + job_offer = create_job_offer(job_applicant=applicant.name, status="Awaiting Response") + job_offer.save() + + # before creating employee + self.assertEqual(applicant.status, "Open") + self.assertEqual(job_offer.status, "Awaiting Response") + + # create employee + make_employee(user=applicant.name, job_applicant=applicant.name) + + # after creating employee + applicant.reload() + self.assertEqual(applicant.status, "Accepted") + job_offer.reload() + self.assertEqual(job_offer.status, "Accepted") + + def tearDown(self): + frappe.db.rollback() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/job_applicant_source.js b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/job_applicant_source.js new file mode 100644 index 000000000..230f93588 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/job_applicant_source.js @@ -0,0 +1,6 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Job Applicant Source", { + refresh: function () {}, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/job_applicant_source.json b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/job_applicant_source.json new file mode 100644 index 000000000..893eaa4a9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/job_applicant_source.json @@ -0,0 +1,53 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "field:source_name", + "creation": "2018-06-16 12:28:26.432651", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "source_name", + "details" + ], + "fields": [ + { + "fieldname": "source_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Source Name", + "reqd": 1, + "unique": 1 + }, + { + "fieldname": "details", + "fieldtype": "Text Editor", + "label": "Details" + } + ], + "links": [], + "modified": "2024-03-27 13:09:56.505846", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Applicant Source", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/job_applicant_source.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/job_applicant_source.py new file mode 100644 index 000000000..1f208c14c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/job_applicant_source.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class JobApplicantSource(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/test_job_applicant_source.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/test_job_applicant_source.py new file mode 100644 index 000000000..32d2e5f09 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_applicant_source/test_job_applicant_source.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestJobApplicantSource(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer.js b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer.js new file mode 100755 index 000000000..2a4fc56ad --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer.js @@ -0,0 +1,63 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.provide("erpnext.job_offer"); + +frappe.ui.form.on("Job Offer", { + onload: function (frm) { + frm.set_query("select_terms", function () { + return { filters: { hr: 1 } }; + }); + }, + + setup: function (frm) { + frm.email_field = "applicant_email"; + }, + + select_terms: function (frm) { + erpnext.utils.get_terms(frm.doc.select_terms, frm.doc, function (r) { + if (!r.exc) { + frm.set_value("terms", r.message); + } + }); + }, + job_offer_term_template: function (frm) { + if (!frm.doc.job_offer_term_template) return; + + frappe.db + .get_doc("Job Offer Term Template", frm.doc.job_offer_term_template) + .then((doc) => { + frm.clear_table("offer_terms"); + doc.offer_terms.forEach((term) => { + frm.add_child("offer_terms", term); + }); + refresh_field("offer_terms"); + }); + }, + + refresh: function (frm) { + if ( + !frm.doc.__islocal && + frm.doc.status == "Accepted" && + frm.doc.docstatus === 1 && + (!frm.doc.__onload || !frm.doc.__onload.employee) + ) { + frm.add_custom_button(__("Create Employee"), function () { + erpnext.job_offer.make_employee(frm); + }); + } + + if (frm.doc.__onload && frm.doc.__onload.employee) { + frm.add_custom_button(__("Show Employee"), function () { + frappe.set_route("Form", "Employee", frm.doc.__onload.employee); + }); + } + }, +}); + +erpnext.job_offer.make_employee = function (frm) { + frappe.model.open_mapped_doc({ + method: "hrms.hr.doctype.job_offer.job_offer.make_employee", + frm: frm, + }); +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer.json b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer.json new file mode 100644 index 000000000..3c39ab2da --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer.json @@ -0,0 +1,203 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "HR-OFF-.YYYY.-.#####", + "creation": "2015-03-04 14:20:17.662207", + "doctype": "DocType", + "document_type": "Document", + "engine": "InnoDB", + "field_order": [ + "job_applicant", + "applicant_name", + "applicant_email", + "column_break_3", + "status", + "offer_date", + "designation", + "company", + "section_break_4", + "job_offer_term_template", + "offer_terms", + "section_break_14", + "select_terms", + "terms", + "printing_details", + "letter_head", + "column_break_16", + "select_print_heading", + "amended_from" + ], + "fields": [ + { + "fieldname": "job_applicant", + "fieldtype": "Link", + "label": "Job Applicant", + "link_filters": "[[\"Job Applicant\",\"status\",\"!=\",\"Rejected\"]]", + "options": "Job Applicant", + "print_hide": 1, + "reqd": 1 + }, + { + "fetch_from": "job_applicant.applicant_name", + "fieldname": "applicant_name", + "fieldtype": "Data", + "in_global_search": 1, + "in_list_view": 1, + "label": "Applicant Name", + "read_only": 1, + "reqd": 1 + }, + { + "fetch_from": "job_applicant.email_id", + "fieldname": "applicant_email", + "fieldtype": "Data", + "in_global_search": 1, + "label": "Applicant Email Address", + "options": "Email", + "read_only": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "allow_on_submit": 1, + "fieldname": "status", + "fieldtype": "Select", + "in_standard_filter": 1, + "label": "Status", + "no_copy": 1, + "options": "Awaiting Response\nAccepted\nRejected\nCancelled", + "print_hide": 1 + }, + { + "fieldname": "offer_date", + "fieldtype": "Date", + "label": "Offer Date", + "reqd": 1 + }, + { + "fetch_from": "job_applicant.designation", + "fetch_if_empty": 1, + "fieldname": "designation", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Designation", + "options": "Designation", + "reqd": 1 + }, + { + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company", + "print_hide": 1, + "remember_last_selected_value": 1, + "reqd": 1 + }, + { + "fieldname": "section_break_4", + "fieldtype": "Section Break" + }, + { + "fieldname": "offer_terms", + "fieldtype": "Table", + "label": "Job Offer Terms", + "options": "Job Offer Term" + }, + { + "fieldname": "section_break_14", + "fieldtype": "Section Break" + }, + { + "fieldname": "select_terms", + "fieldtype": "Link", + "label": "Select Terms and Conditions", + "options": "Terms and Conditions", + "print_hide": 1 + }, + { + "fieldname": "terms", + "fieldtype": "Text Editor", + "label": "Terms and Conditions" + }, + { + "collapsible": 1, + "fieldname": "printing_details", + "fieldtype": "Section Break", + "label": "Printing Details" + }, + { + "allow_on_submit": 1, + "fetch_from": "company.default_letter_head", + "fieldname": "letter_head", + "fieldtype": "Link", + "label": "Letter Head", + "options": "Letter Head", + "print_hide": 1 + }, + { + "fieldname": "column_break_16", + "fieldtype": "Column Break", + "print_hide": 1, + "width": "50%" + }, + { + "allow_on_submit": 1, + "fieldname": "select_print_heading", + "fieldtype": "Link", + "label": "Print Heading", + "options": "Print Heading", + "print_hide": 1, + "report_hide": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Job Offer", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "job_offer_term_template", + "fieldtype": "Link", + "label": "Job Offer Term Template", + "options": "Job Offer Term Template" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2025-12-11 11:44:33.901454", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Offer", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "import": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "show_name_in_global_search": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "applicant_name" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer.py new file mode 100644 index 000000000..3b6686be8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer.py @@ -0,0 +1,130 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.model.mapper import get_mapped_doc +from frappe.utils import cint, flt, get_link_to_form + + +class JobOffer(Document): + def onload(self): + employee = frappe.db.get_value("Employee", {"job_applicant": self.job_applicant}, "name") or "" + self.set_onload("employee", employee) + + def validate(self): + self.validate_vacancies() + job_offer = frappe.db.exists( + "Job Offer", {"job_applicant": self.job_applicant, "docstatus": ["!=", 2]} + ) + if job_offer and job_offer != self.name: + frappe.throw( + _("Job Offer: {0} is already for Job Applicant: {1}").format( + frappe.bold(job_offer), frappe.bold(self.job_applicant) + ) + ) + + def validate_vacancies(self): + staffing_plan = get_staffing_plan_detail(self.designation, self.company, self.offer_date) + check_vacancies = frappe.get_single("HR Settings").check_vacancies + if staffing_plan and check_vacancies: + job_offers = self.get_job_offer(staffing_plan.from_date, staffing_plan.to_date) + if not staffing_plan.get("vacancies") or cint(staffing_plan.vacancies) - len(job_offers) <= 0: + error_variable = "for " + frappe.bold(self.designation) + if staffing_plan.get("parent"): + error_variable = frappe.bold(get_link_to_form("Staffing Plan", staffing_plan.parent)) + + frappe.throw(_("There are no vacancies under staffing plan {0}").format(error_variable)) + + def on_change(self): + update_job_applicant(self.status, self.job_applicant) + + def get_job_offer(self, from_date, to_date): + """Returns job offer created during a time period""" + return frappe.get_all( + "Job Offer", + filters={ + "offer_date": ["between", (from_date, to_date)], + "designation": self.designation, + "company": self.company, + "docstatus": 1, + }, + fields=["name"], + ) + + def on_discard(self): + self.db_set("status", "Cancelled") + + +def update_job_applicant(status, job_applicant): + if status in ("Accepted", "Rejected"): + frappe.set_value("Job Applicant", job_applicant, "status", status) + + +def get_staffing_plan_detail(designation, company, offer_date): + detail = frappe.db.sql( + """ + SELECT DISTINCT spd.parent, + sp.from_date as from_date, + sp.to_date as to_date, + sp.name, + sum(spd.vacancies) as vacancies, + spd.designation + FROM `tabStaffing Plan Detail` spd, `tabStaffing Plan` sp + WHERE + sp.docstatus=1 + AND spd.designation=%s + AND sp.company=%s + AND spd.parent = sp.name + AND %s between sp.from_date and sp.to_date + """, + (designation, company, offer_date), + as_dict=1, + ) + + return frappe._dict(detail[0]) if (detail and detail[0].parent) else None + + +@frappe.whitelist() +def make_employee(source_name, target_doc=None): + def set_missing_values(source, target): + target.personal_email, target.first_name = frappe.db.get_value( + "Job Applicant", source.job_applicant, ["email_id", "applicant_name"] + ) + + doc = get_mapped_doc( + "Job Offer", + source_name, + { + "Job Offer": { + "doctype": "Employee", + "field_map": {"applicant_name": "employee_name", "offer_date": "scheduled_confirmation_date"}, + } + }, + target_doc, + set_missing_values, + ) + return doc + + +@frappe.whitelist() +def get_offer_acceptance_rate(company: str | None = None, department: str | None = None): + frappe.has_permission("Job Offer", throw=True) + + filters = {"docstatus": 1} + if company: + filters["company"] = company + if department: + filters["department"] = department + + total_offers = frappe.db.count("Job Offer", filters=filters) + + filters["status"] = "Accepted" + total_accepted = frappe.db.count("Job Offer", filters=filters) + + return { + "value": flt(total_accepted) / flt(total_offers) * 100 if total_offers else 0, + "fieldtype": "Percent", + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer_list.js new file mode 100644 index 000000000..c6a2479d4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/job_offer_list.js @@ -0,0 +1,15 @@ +// Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors +// MIT License. See license.txt + +frappe.listview_settings["Job Offer"] = { + add_fields: ["company", "designation", "job_applicant", "status"], + get_indicator: function (doc) { + if (doc.status == "Accepted") { + return [__(doc.status), "green", "status,=," + doc.status]; + } else if (doc.status == "Awaiting Response") { + return [__(doc.status), "orange", "status,=," + doc.status]; + } else if (doc.status == "Rejected") { + return [__(doc.status), "red", "status,=," + doc.status]; + } + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/test_job_offer.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/test_job_offer.py new file mode 100644 index 000000000..2eb40527a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer/test_job_offer.py @@ -0,0 +1,118 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, nowdate + +from erpnext.setup.doctype.designation.test_designation import create_designation + +from hrms.hr.doctype.job_applicant.job_applicant import get_applicant_to_hire_percentage +from hrms.hr.doctype.job_offer.job_offer import get_offer_acceptance_rate +from hrms.hr.doctype.staffing_plan.test_staffing_plan import make_company +from hrms.tests.test_utils import create_job_applicant + + +class TestJobOffer(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Job Applicant") + frappe.db.delete("Job Offer") + + create_designation(designation_name="Researcher") + + def test_job_offer_creation_against_vacancies(self): + frappe.db.set_single_value("HR Settings", "check_vacancies", 1) + job_applicant = create_job_applicant(email_id="test_job_offer@example.com") + job_offer = create_job_offer(job_applicant=job_applicant.name, designation="UX Designer") + + create_staffing_plan( + name="Test No Vacancies", + staffing_details=[ + {"designation": "UX Designer", "vacancies": 0, "estimated_cost_per_position": 5000} + ], + ) + self.assertRaises(frappe.ValidationError, job_offer.submit) + + # test creation of job offer when vacancies are not present + frappe.db.set_single_value("HR Settings", "check_vacancies", 0) + job_offer.submit() + self.assertTrue(frappe.db.exists("Job Offer", job_offer.name)) + + def test_job_applicant_update(self): + frappe.db.set_single_value("HR Settings", "check_vacancies", 0) + create_staffing_plan() + job_applicant = create_job_applicant(email_id="test_job_applicants@example.com") + job_offer = create_job_offer(job_applicant=job_applicant.name) + job_offer.submit() + job_applicant.reload() + self.assertEqual(job_applicant.status, "Accepted") + + # status update after rejection + job_offer.status = "Rejected" + job_offer.submit() + job_applicant.reload() + self.assertEqual(job_applicant.status, "Rejected") + frappe.db.set_single_value("HR Settings", "check_vacancies", 1) + + def test_recruitment_metrics(self): + job_applicant1 = create_job_applicant(email_id="test_job_applicant1@example.com") + job_applicant2 = create_job_applicant(email_id="test_job_applicant2@example.com") + job_offer = create_job_offer(job_applicant=job_applicant1.name) + job_offer.status = "Accepted" + job_offer.submit() + + self.assertEqual(get_applicant_to_hire_percentage().get("value"), 50) + + job_offer = create_job_offer(job_applicant=job_applicant2.name) + job_offer.status = "Rejected" + job_offer.submit() + + self.assertEqual(get_offer_acceptance_rate().get("value"), 50) + + def test_status_on_save(self): + job_offer = create_job_offer() + job_offer.save() + job_offer.discard() + job_offer.reload() + self.assertEqual(job_offer.status, "Cancelled") + + +def create_job_offer(**args): + args = frappe._dict(args) + if not args.job_applicant: + job_applicant = create_job_applicant() + + if not frappe.db.exists("Designation", args.designation): + create_designation(designation_name=args.designation) + + job_offer = frappe.get_doc( + { + "doctype": "Job Offer", + "job_applicant": args.job_applicant or job_applicant.name, + "offer_date": args.offer_date or nowdate(), + "designation": args.designation or "Researcher", + "status": args.status or "Accepted", + } + ) + return job_offer + + +def create_staffing_plan(**args): + args = frappe._dict(args) + make_company() + frappe.db.set_value("Company", "_Test Company", "is_group", 1) + if frappe.db.exists("Staffing Plan", args.name or "Test"): + return + staffing_plan = frappe.get_doc( + { + "doctype": "Staffing Plan", + "name": args.name or "Test", + "from_date": args.from_date or nowdate(), + "to_date": args.to_date or add_days(nowdate(), 10), + "staffing_details": args.staffing_details + or [{"designation": "Researcher", "vacancies": 1, "estimated_cost_per_position": 50000}], + } + ) + staffing_plan.insert() + staffing_plan.submit() + return staffing_plan diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term/job_offer_term.json b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term/job_offer_term.json new file mode 100644 index 000000000..398fe7cd6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term/job_offer_term.json @@ -0,0 +1,44 @@ +{ + "actions": [], + "creation": "2015-03-05 12:53:45.342292", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "offer_term", + "column_break_2", + "value" + ], + "fields": [ + { + "fieldname": "offer_term", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Offer Term", + "options": "Offer Term", + "reqd": 1 + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "fieldname": "value", + "fieldtype": "Small Text", + "in_list_view": 1, + "label": "Value / Description", + "reqd": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:57.736798", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Offer Term", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term/job_offer_term.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term/job_offer_term.py new file mode 100644 index 000000000..d2eae467e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term/job_offer_term.py @@ -0,0 +1,9 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class JobOfferTerm(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/job_offer_term_template.js b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/job_offer_term_template.js new file mode 100644 index 000000000..cc12c4272 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/job_offer_term_template.js @@ -0,0 +1,8 @@ +// Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +// frappe.ui.form.on("Job Offer Term Template", { +// refresh(frm) { + +// }, +// }); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json new file mode 100644 index 000000000..394f4d8ae --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json @@ -0,0 +1,63 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:title", + "creation": "2023-11-21 13:39:20.882706", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "title", + "offer_terms" + ], + "fields": [ + { + "fieldname": "title", + "fieldtype": "Data", + "label": "Title", + "unique": 1 + }, + { + "fieldname": "offer_terms", + "fieldtype": "Table", + "label": "Offer Terms", + "options": "Job Offer Term" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2024-03-27 13:09:57.850071", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Offer Term Template", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/job_offer_term_template.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/job_offer_term_template.py new file mode 100644 index 000000000..e6d0ca50e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/job_offer_term_template.py @@ -0,0 +1,9 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class JobOfferTermTemplate(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/test_job_offer_term_template.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/test_job_offer_term_template.py new file mode 100644 index 000000000..6d2e6b14a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_offer_term_template/test_job_offer_term_template.py @@ -0,0 +1,9 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestJobOfferTermTemplate(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/README.md new file mode 100644 index 000000000..5a19f33c8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/README.md @@ -0,0 +1 @@ +Open position for Job. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening.js b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening.js new file mode 100644 index 000000000..2cff2b24f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening.js @@ -0,0 +1,60 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Job Opening", { + onload: function (frm) { + frm.set_query("department", function () { + return { + filters: { + company: frm.doc.company, + }, + }; + }); + }, + designation: function (frm) { + if (frm.doc.designation && frm.doc.company) { + frappe.call({ + method: "hrms.hr.doctype.staffing_plan.staffing_plan.get_active_staffing_plan_details", + args: { + company: frm.doc.company, + designation: frm.doc.designation, + date: frappe.datetime.now_date(), // ToDo - Date in Job Opening? + }, + callback: function (data) { + if (data.message) { + frm.set_value("staffing_plan", data.message[0].name); + frm.set_value("planned_vacancies", data.message[0].vacancies); + } else { + frm.set_value("staffing_plan", ""); + frm.set_value("planned_vacancies", 0); + frappe.show_alert({ + indicator: "orange", + message: __("No Staffing Plans found for this Designation"), + }); + } + }, + }); + } else { + frm.set_value("staffing_plan", ""); + frm.set_value("planned_vacancies", 0); + } + }, + company: function (frm) { + frm.set_value("designation", ""); + }, + + job_opening_template: function (frm) { + if (!frm.doc.job_opening_template) return; + + frappe.db.get_doc("Job Opening Template", frm.doc.job_opening_template).then((doc) => { + frm.set_value({ + department: doc.department, + employment_type: doc.employment_type, + location: doc.location, + description: doc.description, + }); + + frm.refresh_fields(); + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening.json b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening.json new file mode 100644 index 000000000..96b587f39 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening.json @@ -0,0 +1,301 @@ +{ + "actions": [], + "allow_guest_to_view": 1, + "allow_import": 1, + "autoname": "HR-OPN-.YYYY.-.####", + "creation": "2013-01-15 16:13:36", + "description": "Description of a Job Opening", + "doctype": "DocType", + "document_type": "Document", + "engine": "InnoDB", + "field_order": [ + "job_details_section", + "job_opening_template", + "job_title", + "designation", + "column_break_5", + "status", + "posted_on", + "closes_on", + "closed_on", + "section_break_nngy", + "company", + "department", + "column_break_dxpv", + "employment_type", + "location", + "references_section", + "staffing_plan", + "planned_vacancies", + "job_requisition", + "vacancies", + "section_break_6", + "publish", + "route", + "publish_applications_received", + "column_break_12", + "job_application_route", + "section_break_14", + "description", + "section_break_16", + "currency", + "lower_range", + "upper_range", + "column_break_20", + "salary_per", + "publish_salary_range" + ], + "fields": [ + { + "fieldname": "job_title", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Job Title", + "reqd": 1 + }, + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Status", + "options": "Open\nClosed" + }, + { + "fieldname": "column_break_5", + "fieldtype": "Column Break" + }, + { + "fieldname": "designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation", + "reqd": 1 + }, + { + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department" + }, + { + "fieldname": "staffing_plan", + "fieldtype": "Link", + "label": "Staffing Plan", + "options": "Staffing Plan", + "read_only": 1 + }, + { + "depends_on": "staffing_plan", + "fieldname": "planned_vacancies", + "fieldtype": "Int", + "label": "Planned number of Positions", + "read_only": 1 + }, + { + "fieldname": "section_break_6", + "fieldtype": "Section Break" + }, + { + "default": "0", + "fieldname": "publish", + "fieldtype": "Check", + "label": "Publish on website" + }, + { + "depends_on": "publish", + "fieldname": "route", + "fieldtype": "Data", + "label": "Route", + "unique": 1 + }, + { + "description": "Job profile, qualifications required etc.", + "fieldname": "description", + "fieldtype": "Text Editor", + "in_list_view": 1, + "label": "Description" + }, + { + "fieldname": "column_break_12", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_14", + "fieldtype": "Section Break" + }, + { + "collapsible": 1, + "fieldname": "section_break_16", + "fieldtype": "Section Break" + }, + { + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency" + }, + { + "fieldname": "lower_range", + "fieldtype": "Currency", + "label": "Lower Range", + "options": "currency", + "precision": "0" + }, + { + "fieldname": "upper_range", + "fieldtype": "Currency", + "label": "Upper Range", + "options": "currency", + "precision": "0" + }, + { + "fieldname": "column_break_20", + "fieldtype": "Column Break" + }, + { + "depends_on": "publish", + "description": "Route to the custom Job Application Webform", + "fieldname": "job_application_route", + "fieldtype": "Data", + "label": "Job Application Route" + }, + { + "default": "0", + "fieldname": "publish_salary_range", + "fieldtype": "Check", + "label": "Publish Salary Range" + }, + { + "collapsible": 1, + "fieldname": "references_section", + "fieldtype": "Section Break", + "label": "References" + }, + { + "fieldname": "job_requisition", + "fieldtype": "Link", + "label": "Job Requisition", + "options": "Job Requisition", + "read_only": 1 + }, + { + "depends_on": "job_requisition", + "fetch_from": "job_requisition.no_of_positions", + "fieldname": "vacancies", + "fieldtype": "Int", + "label": "Vacancies", + "read_only": 1 + }, + { + "default": "Now", + "fieldname": "posted_on", + "fieldtype": "Datetime", + "label": "Posted On" + }, + { + "depends_on": "eval:doc.status == 'Open'", + "description": "If set, the job opening will be closed automatically after this date", + "fieldname": "closes_on", + "fieldtype": "Date", + "label": "Closes On" + }, + { + "fieldname": "employment_type", + "fieldtype": "Link", + "label": "Employment Type", + "options": "Employment Type" + }, + { + "fieldname": "location", + "fieldtype": "Link", + "label": "Location", + "options": "Branch" + }, + { + "fieldname": "section_break_nngy", + "fieldtype": "Section Break", + "label": "Company Details" + }, + { + "fieldname": "column_break_dxpv", + "fieldtype": "Column Break" + }, + { + "fieldname": "job_details_section", + "fieldtype": "Section Break" + }, + { + "depends_on": "eval:doc.status == 'Closed'", + "fieldname": "closed_on", + "fieldtype": "Date", + "label": "Closed On" + }, + { + "default": "Month", + "fieldname": "salary_per", + "fieldtype": "Select", + "label": "Salary Paid Per", + "options": "Month\nYear" + }, + { + "default": "1", + "depends_on": "publish", + "description": "If enabled, the total no. of applications received for this opening will be displayed on the website", + "fieldname": "publish_applications_received", + "fieldtype": "Check", + "label": "Publish Applications Received" + }, + { + "fieldname": "job_opening_template", + "fieldtype": "Link", + "label": "Job Opening Template", + "options": "Job Opening Template" + } + ], + "has_web_view": 1, + "icon": "fa fa-bookmark", + "idx": 1, + "is_published_field": "publish", + "links": [], + "modified": "2025-12-11 19:18:36.145062", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Opening", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "ASC", + "states": [ + { + "color": "Green", + "title": "Open" + }, + { + "color": "Gray", + "title": "Closed" + } + ], + "title_field": "job_title" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening.py new file mode 100644 index 000000000..61a322f13 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening.py @@ -0,0 +1,121 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.naming import set_name_from_naming_options +from frappe.utils import get_link_to_form, getdate, pretty_date +from frappe.website.website_generator import WebsiteGenerator + +from hrms.hr.doctype.staffing_plan.staffing_plan import ( + get_active_staffing_plan_details, + get_designation_counts, +) + + +class JobOpening(WebsiteGenerator): + website = frappe._dict( + template="templates/generators/job_opening.html", + condition_field="publish", + page_title_field="job_title", + ) + + def autoname(self): + set_name_from_naming_options(frappe.get_meta(self.doctype).autoname, self) + + def validate(self): + if not self.route: + self.route = f"jobs/{frappe.scrub(self.company)}/{frappe.scrub(self.job_title).replace('_', '-')}" + self.update_closing_date() + self.validate_dates() + self.validate_current_vacancies() + + def on_update(self): + self.update_job_requisition_status() + + def update_closing_date(self): + old_doc = self.get_doc_before_save() + if not old_doc: + return + + if old_doc.status == "Open" and self.status == "Closed": + self.closes_on = None + if not self.closed_on: + self.closed_on = getdate() + + elif old_doc.status == "Closed" and self.status == "Open": + self.closed_on = None + + def validate_dates(self): + if self.status == "Open": + self.validate_from_to_dates("posted_on", "closes_on") + if self.status == "Closed": + self.validate_from_to_dates("posted_on", "closed_on") + + def validate_current_vacancies(self): + if not self.staffing_plan: + staffing_plan = get_active_staffing_plan_details(self.company, self.designation) + if staffing_plan: + self.staffing_plan = staffing_plan[0].name + self.planned_vacancies = staffing_plan[0].vacancies + elif not self.planned_vacancies: + self.planned_vacancies = frappe.db.get_value( + "Staffing Plan Detail", + {"parent": self.staffing_plan, "designation": self.designation}, + "vacancies", + ) + + if self.staffing_plan and self.planned_vacancies: + designation_counts = get_designation_counts(self.designation, self.company, self.name) + current_count = designation_counts["employee_count"] + designation_counts["job_openings"] + + number_of_positions = frappe.db.get_value( + "Staffing Plan Detail", + {"parent": self.staffing_plan, "designation": self.designation}, + "number_of_positions", + ) + + if number_of_positions <= current_count: + frappe.throw( + _( + "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" + ).format( + frappe.bold(self.designation), get_link_to_form("Staffing Plan", self.staffing_plan) + ), + title=_("Vacancies fulfilled"), + ) + + def update_job_requisition_status(self): + if self.status == "Closed" and self.job_requisition: + job_requisition = frappe.get_doc("Job Requisition", self.job_requisition) + job_requisition.status = "Filled" + job_requisition.completed_on = getdate() + job_requisition.flags.ignore_permissions = True + job_requisition.flags.ignore_mandatory = True + job_requisition.save() + + def get_context(self, context): + context.no_of_applications = frappe.db.count("Job Applicant", {"job_title": self.name}) + context.parents = [{"route": "jobs", "title": _("All Jobs")}] + context.posted_on = pretty_date(self.posted_on) + + +def close_expired_job_openings(): + today = getdate() + + Opening = frappe.qb.DocType("Job Opening") + openings = ( + frappe.qb.from_(Opening) + .select(Opening.name) + .where((Opening.status == "Open") & (Opening.closes_on.isnotnull()) & (Opening.closes_on < today)) + ).run(pluck=True) + + for d in openings: + doc = frappe.get_doc("Job Opening", d) + doc.status = "Closed" + doc.flags.ignore_permissions = True + doc.flags.ignore_mandatory = True + doc.save() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening_dashboard.py new file mode 100644 index 000000000..a30932870 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/job_opening_dashboard.py @@ -0,0 +1,5 @@ +def get_data(): + return { + "fieldname": "job_title", + "transactions": [{"items": ["Job Applicant"]}], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/templates/job_opening.html b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/templates/job_opening.html new file mode 100644 index 000000000..63803ceca --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/templates/job_opening.html @@ -0,0 +1,7 @@ +{% extends "templates/web.html" %} + +{% block page_content %} +

    {{ title |e }}

    +{% endblock %} + + \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/templates/job_opening_row.html b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/templates/job_opening_row.html new file mode 100644 index 000000000..88db3f7c0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/templates/job_opening_row.html @@ -0,0 +1,4 @@ + + diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/test_job_opening.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/test_job_opening.py new file mode 100644 index 000000000..71dafde2a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening/test_job_opening.py @@ -0,0 +1,96 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.job_opening.job_opening import close_expired_job_openings +from hrms.hr.doctype.staffing_plan.test_staffing_plan import make_company + + +class TestJobOpening(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Staffing Plan") + frappe.db.delete("Staffing Plan Detail") + frappe.db.delete("Job Opening") + + make_company("_Test Opening Company", "_TOC") + frappe.db.delete("Employee", {"company": "_Test Opening Company"}) + + def test_vacancies_fulfilled(self): + make_employee("test_job_opening@example.com", company="_Test Opening Company", designation="Designer") + + staffing_plan = frappe.get_doc( + { + "doctype": "Staffing Plan", + "company": "_Test Opening Company", + "name": "Test", + "from_date": getdate(), + "to_date": add_days(getdate(), 10), + } + ) + + staffing_plan.append( + "staffing_details", + {"designation": "Designer", "vacancies": 1, "estimated_cost_per_position": 50000}, + ) + staffing_plan.insert() + staffing_plan.submit() + + self.assertEqual(staffing_plan.staffing_details[0].number_of_positions, 2) + + # allows creating 1 job opening as per vacancy + opening_1 = get_job_opening() + opening_1.insert() + + # vacancies as per staffing plan already fulfilled via job opening and existing employee count + opening_2 = get_job_opening(job_title="Designer New") + self.assertRaises(frappe.ValidationError, opening_2.insert) + + # allows updating existing job opening + opening_1.status = "Closed" + opening_1.save() + + def test_close_expired_job_openings(self): + today = getdate() + + opening_1 = get_job_opening() + opening_1.posted_on = add_days(today, -2) + opening_1.closes_on = add_days(today, -1) + opening_1.insert() + + opening_2 = get_job_opening(job_title="Designer New") + opening_2.insert() + + close_expired_job_openings() + opening_1.reload() + opening_2.reload() + + self.assertEqual(opening_1.status, "Closed") + self.assertEqual(opening_1.closed_on, today) + self.assertEqual(opening_2.status, "Open") + + +def get_job_opening(**args): + args = frappe._dict(args) + + opening = frappe.db.exists("Job Opening", {"job_title": args.job_title or "Designer"}) + if opening: + return frappe.get_doc("Job Opening", opening) + + opening = frappe.get_doc( + { + "doctype": "Job Opening", + "job_title": "Designer", + "designation": "Designer", + "company": "_Test Opening Company", + "status": "Open", + } + ) + + opening.update(args) + + return opening diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/job_opening_template.js b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/job_opening_template.js new file mode 100644 index 000000000..9006d24aa --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/job_opening_template.js @@ -0,0 +1,8 @@ +// Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +// frappe.ui.form.on("Job Opening Template", { +// refresh(frm) { + +// }, +// }); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/job_opening_template.json b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/job_opening_template.json new file mode 100644 index 000000000..b1762284b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/job_opening_template.json @@ -0,0 +1,87 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:template_title", + "creation": "2025-12-11 18:04:50.413169", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "template_title", + "department", + "column_break_wkcr", + "employment_type", + "location", + "section_break_dwfh", + "description" + ], + "fields": [ + { + "fieldname": "department", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Department", + "options": "Department" + }, + { + "fieldname": "employment_type", + "fieldtype": "Link", + "label": "Employment Type", + "options": "Employment Type" + }, + { + "fieldname": "location", + "fieldtype": "Link", + "label": "Location", + "options": "Branch" + }, + { + "fieldname": "template_title", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Template Title", + "reqd": 1, + "unique": 1 + }, + { + "fieldname": "column_break_wkcr", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_dwfh", + "fieldtype": "Section Break" + }, + { + "fieldname": "description", + "fieldtype": "Text Editor", + "label": "Description" + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "links": [], + "modified": "2025-12-12 12:52:12.217926", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Opening Template", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "rows_threshold_for_grid_search": 20, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/job_opening_template.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/job_opening_template.py new file mode 100644 index 000000000..02bd8380c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/job_opening_template.py @@ -0,0 +1,9 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class JobOpeningTemplate(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/test_job_opening_template.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/test_job_opening_template.py new file mode 100644 index 000000000..b38e07d6d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_opening_template/test_job_opening_template.py @@ -0,0 +1,20 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + +# On IntegrationTestCase, the doctype test records and all +# link-field test record dependencies are recursively loaded +# Use these module variables to add/remove to/from that list +EXTRA_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] +IGNORE_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] + + +class IntegrationTestJobOpeningTemplate(IntegrationTestCase): + """ + Integration tests for JobOpeningTemplate. + Use this class for testing interactions between multiple components. + """ + + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition.js b/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition.js new file mode 100644 index 000000000..fd723ac91 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition.js @@ -0,0 +1,84 @@ +// Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Job Requisition", { + refresh: function (frm) { + if (!frm.doc.__islocal && !["Filled", "On Hold", "Cancelled"].includes(frm.doc.status)) { + frappe.db + .get_list("Employee Referral", { + filters: { for_designation: frm.doc.designation, status: "Pending" }, + }) + .then((data) => { + if (data && data.length) { + const link = + data.length > 1 + ? `${__( + "Employee Referrals", + )}` + : `${__( + "Employee Referral", + )}`; + + const headline = __("{} {} open for this position.", [data.length, link]); + frm.dashboard.clear_headline(); + frm.dashboard.set_headline(headline, "yellow"); + + $("#referral_links").on("click", (e) => { + e.preventDefault(); + frappe.set_route("List", "Employee Referral", { + for_designation: frm.doc.designation, + status: "Pending", + }); + }); + } + }); + } + + if (frm.doc.status === "Open & Approved") { + frm.add_custom_button( + __("Create Job Opening"), + () => { + frappe.model.open_mapped_doc({ + method: "hrms.hr.doctype.job_requisition.job_requisition.make_job_opening", + frm: frm, + }); + }, + __("Actions"), + ); + + frm.add_custom_button( + __("Associate Job Opening"), + () => { + frappe.prompt( + { + label: __("Job Opening"), + fieldname: "job_opening", + fieldtype: "Link", + options: "Job Opening", + reqd: 1, + get_query: () => { + const filters = { + company: frm.doc.company, + status: "Open", + designation: frm.doc.designation, + }; + + if (frm.doc.department) filters.department = frm.doc.department; + + return { filters: filters }; + }, + }, + (values) => { + frm.call("associate_job_opening", { job_opening: values.job_opening }); + }, + __("Associate Job Opening"), + __("Submit"), + ); + }, + __("Actions"), + ); + + frm.page.set_inner_btn_group_as_primary(__("Actions")); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition.json b/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition.json new file mode 100644 index 000000000..043a5ff92 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition.json @@ -0,0 +1,229 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "naming_series:", + "creation": "2022-08-29 19:00:53.358248", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "naming_series", + "designation", + "department", + "column_break_qkna", + "no_of_positions", + "expected_compensation", + "column_break_4", + "company", + "status", + "section_break_7", + "requested_by", + "requested_by_name", + "column_break_10", + "requested_by_dept", + "requested_by_designation", + "timelines_tab", + "posting_date", + "completed_on", + "column_break_15", + "expected_by", + "time_to_fill", + "job_description_tab", + "description", + "reason_for_requesting", + "connections_tab" + ], + "fields": [ + { + "fieldname": "designation", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Designation", + "options": "Designation", + "reqd": 1 + }, + { + "fieldname": "no_of_positions", + "fieldtype": "Int", + "in_list_view": 1, + "label": "No of. Positions", + "reqd": 1 + }, + { + "fieldname": "expected_compensation", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Expected Compensation", + "options": "Company:company:default_currency", + "reqd": 1 + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Status", + "options": "Pending\nOpen & Approved\nRejected\nFilled\nOn Hold\nCancelled", + "reqd": 1 + }, + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "requested_by", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Requested By", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "requested_by.employee_name", + "fieldname": "requested_by_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Requested By (Name)", + "read_only": 1 + }, + { + "fieldname": "section_break_7", + "fieldtype": "Section Break", + "label": "Requested By" + }, + { + "fetch_from": "requested_by.department", + "fieldname": "requested_by_dept", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fetch_from": "requested_by.designation", + "fieldname": "requested_by_designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation", + "read_only": 1 + }, + { + "fieldname": "column_break_10", + "fieldtype": "Column Break" + }, + { + "fieldname": "timelines_tab", + "fieldtype": "Section Break", + "label": "Timelines" + }, + { + "default": "Today", + "fieldname": "posting_date", + "fieldtype": "Date", + "label": "Posting Date", + "reqd": 1 + }, + { + "fieldname": "column_break_15", + "fieldtype": "Column Break" + }, + { + "fieldname": "expected_by", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Expected By" + }, + { + "depends_on": "eval:doc.status==\"Filled\"", + "fieldname": "completed_on", + "fieldtype": "Date", + "label": "Completed On", + "mandatory_depends_on": "eval:doc.status==\"Filled\"" + }, + { + "fieldname": "job_description_tab", + "fieldtype": "Tab Break", + "label": "Job Description" + }, + { + "fetch_from": "designation.description", + "fetch_if_empty": 1, + "fieldname": "description", + "fieldtype": "Text Editor", + "label": "Job Description", + "reqd": 1 + }, + { + "fieldname": "naming_series", + "fieldtype": "Select", + "label": "Naming Series", + "options": "HR-HIREQ-" + }, + { + "fieldname": "reason_for_requesting", + "fieldtype": "Text", + "label": "Reason for Requesting" + }, + { + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department" + }, + { + "description": "Time taken to fill the open positions", + "fieldname": "time_to_fill", + "fieldtype": "Duration", + "hide_seconds": 1, + "label": "Time to Fill", + "read_only": 1 + }, + { + "fieldname": "connections_tab", + "fieldtype": "Tab Break", + "label": "Connections", + "show_dashboard": 1 + }, + { + "fieldname": "column_break_qkna", + "fieldtype": "Column Break" + } + ], + "index_web_pages_for_search": 1, + "links": [ + { + "link_doctype": "Job Opening", + "link_fieldname": "job_requisition" + } + ], + "modified": "2024-03-27 13:09:58.178411", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Requisition", + "naming_rule": "By \"Naming Series\" field", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "designation" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition.py new file mode 100644 index 000000000..c698b114c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition.py @@ -0,0 +1,101 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.model.mapper import get_mapped_doc +from frappe.utils import format_duration, get_link_to_form, time_diff_in_seconds + + +class JobRequisition(Document): + def validate(self): + self.validate_duplicates() + self.set_time_to_fill() + + def validate_duplicates(self): + duplicate = frappe.db.exists( + "Job Requisition", + { + "designation": self.designation, + "department": self.department, + "requested_by": self.requested_by, + "status": ("not in", ["Cancelled", "Filled"]), + "name": ("!=", self.name), + }, + ) + + if duplicate: + frappe.throw( + _("A Job Requisition for {0} requested by {1} already exists: {2}").format( + frappe.bold(self.designation), + frappe.bold(self.requested_by), + get_link_to_form("Job Requisition", duplicate), + ), + title=_("Duplicate Job Requisition"), + ) + + def set_time_to_fill(self): + if self.status == "Filled" and self.completed_on: + self.time_to_fill = time_diff_in_seconds(self.completed_on, self.posting_date) + + @frappe.whitelist() + def associate_job_opening(self, job_opening): + frappe.db.set_value( + "Job Opening", job_opening, {"job_requisition": self.name, "vacancies": self.no_of_positions} + ) + frappe.msgprint( + _("Job Requisition {0} has been associated with Job Opening {1}").format( + frappe.bold(self.name), get_link_to_form("Job Opening", job_opening) + ), + title=_("Job Opening Associated"), + ) + + +@frappe.whitelist() +def make_job_opening(source_name, target_doc=None): + def set_missing_values(source, target): + target.job_title = source.designation + target.status = "Open" + target.currency = frappe.db.get_value("Company", source.company, "default_currency") + target.lower_range = source.expected_compensation + target.description = source.description + + return get_mapped_doc( + "Job Requisition", + source_name, + { + "Job Requisition": { + "doctype": "Job Opening", + }, + "field_map": { + "designation": "designation", + "name": "job_requisition", + "department": "department", + "no_of_positions": "vacancies", + }, + }, + target_doc, + set_missing_values, + ) + + +@frappe.whitelist() +def get_avg_time_to_fill( + company: str | None = None, department: str | None = None, designation: str | None = None +): + filters = {"status": "Filled"} + if company: + filters["company"] = company + if department: + filters["department"] = department + if designation: + filters["designation"] = designation + + avg_time_to_fill = frappe.db.get_list( + "Job Requisition", + filters=filters, + fields=[{"AVG": "time_to_fill", "as": "average_time"}], + )[0].average_time + + return format_duration(avg_time_to_fill) if avg_time_to_fill else 0 diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition_list.js new file mode 100644 index 000000000..d0e19abfc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/job_requisition_list.js @@ -0,0 +1,31 @@ +frappe.listview_settings["Job Requisition"] = { + get_indicator: function (doc) { + const status_color = { + Pending: "yellow", + "Open & Approved": "blue", + Rejected: "red", + Filled: "green", + Cancelled: "gray", + "On Hold": "gray", + }; + return [__(doc.status), status_color[doc.status], "status,=," + doc.status]; + }, + + formatters: { + expected_by(value, df, doc) { + if (!value || ["Filled", "Cancelled", "On Hold"].includes(doc.status)) return ""; + + const now = moment(); + const expected_by = moment(value); + const color = now > expected_by ? "red" : "green"; + + return ` +
    + ${expected_by.fromNow()} +
    + `; + }, + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/test_job_requisition.py b/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/test_job_requisition.py new file mode 100644 index 000000000..1f417678e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/job_requisition/test_job_requisition.py @@ -0,0 +1,68 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase + +from erpnext.setup.doctype.designation.test_designation import create_designation +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.job_opening.test_job_opening import get_job_opening +from hrms.hr.doctype.job_requisition.job_requisition import make_job_opening + + +class TestJobRequisition(IntegrationTestCase): + def setUp(self): + self.employee = make_employee("test_employee_1@company.com", company="_Test Company") + + def test_make_job_opening(self): + job_req = make_job_requisition(requested_by=self.employee) + + job_opening = make_job_opening(job_req.name) + job_opening.status = "Closed" + job_opening.save() + + job_req.reload() + + self.assertEqual(job_opening.job_requisition, job_req.name) + self.assertEqual(job_req.status, "Filled") + + def test_associate_job_opening(self): + job_req = make_job_requisition(requested_by=self.employee) + job_opening = get_job_opening(company="_Test Company").insert() + + job_req.associate_job_opening(job_opening.name) + job_opening.reload() + + self.assertEqual(job_opening.job_requisition, job_req.name) + + def test_time_to_fill(self): + job_req = make_job_requisition(requested_by=self.employee) + job_req.status = "Filled" + job_req.completed_on = "2023-01-31" + job_req.save() + + # 30 days from posting date to completion date = 2592000 seconds (duration field) + self.assertEqual(job_req.time_to_fill, 2592000) + + +def make_job_requisition(**args): + frappe.db.delete("Job Requisition") + args = frappe._dict(args) + + return frappe.get_doc( + { + "doctype": "Job Requisition", + "designation": args.designation or create_designation().name, + "department": args.department or frappe.db.get_value("Employee", args.requested_by, "department"), + "no_of_positions": args.no_of_positions or 1, + "expected_compensation": args.expected_compensation or 500000, + "company": "_Test Company", + "status": args.status or "Open & Approved", + "requested_by": args.requested_by or "_Test Employee", + "posting_date": args.posting_date or "2023-01-01", + "expected_by": args.expected_by or "2023-01-15", + "description": "Test", + "reason_for_requesting": "Test", + } + ).insert() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/kra/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/kra/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/kra/kra.js b/apps/erpnext/src/hrms/hrms/hr/doctype/kra/kra.js new file mode 100644 index 000000000..6d65f9405 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/kra/kra.js @@ -0,0 +1,7 @@ +// Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("KRA", { + // refresh: function(frm) { + // } +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/kra/kra.json b/apps/erpnext/src/hrms/hrms/hr/doctype/kra/kra.json new file mode 100644 index 000000000..9e7fdf33e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/kra/kra.json @@ -0,0 +1,56 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:title", + "creation": "2022-08-24 18:37:12.427640", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "title", + "description" + ], + "fields": [ + { + "fieldname": "title", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Title", + "reqd": 1, + "unique": 1 + }, + { + "fieldname": "description", + "fieldtype": "Small Text", + "label": "Description" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2024-03-27 13:09:59.100557", + "modified_by": "Administrator", + "module": "HR", + "name": "KRA", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "search_fields": "description", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/kra/kra.py b/apps/erpnext/src/hrms/hrms/hr/doctype/kra/kra.py new file mode 100644 index 000000000..c56a36a26 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/kra/kra.py @@ -0,0 +1,9 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class KRA(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/kra/test_kra.py b/apps/erpnext/src/hrms/hrms/hr/doctype/kra/test_kra.py new file mode 100644 index 000000000..93b8a07ad --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/kra/test_kra.py @@ -0,0 +1,9 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestKRA(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/leave_adjustment.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/leave_adjustment.js new file mode 100644 index 000000000..32b38b0cd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/leave_adjustment.js @@ -0,0 +1,57 @@ +// Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Leave Adjustment", { + refresh(frm) { + hrms.leave_utils.add_view_ledger_button(frm); + + frm.set_query("leave_type", () => { + return { + query: "hrms.hr.doctype.leave_adjustment.leave_adjustment.get_allocated_leave_types", + filters: { + employee: frm.doc.employee, + }, + }; + }); + }, + employee(frm) { + if (frm.doc.employee) { + frm.trigger("set_leave_allocation"); + } + }, + leave_type(frm) { + if (frm.doc.leave_type) { + frm.trigger("set_leave_allocation"); + } + }, + + posting_date(frm) { + if (frm.doc.posting_date) frm.trigger("set_leave_allocation"); + }, + + set_leave_allocation: function (frm) { + if (frm.doc.posting_date && frm.doc.employee && frm.doc.leave_type) { + frappe.call({ + method: "hrms.hr.doctype.leave_adjustment.leave_adjustment.get_leave_allocation_for_posting_date", + args: { + posting_date: frm.doc.posting_date, + employee: frm.doc.employee, + leave_type: frm.doc.leave_type, + }, + callback: function (r) { + if (r.message?.length) { + frm.set_value("leave_allocation", r.message[0].name); + } else { + frappe.msgprint( + __("No leave allocation found for {0} for {1} on given date.", [ + frm.doc.employee_name, + frm.doc.leave_type, + ]), + ); + frm.set_value("leave_allocation", null); + } + }, + }); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/leave_adjustment.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/leave_adjustment.json new file mode 100644 index 000000000..a7137d40a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/leave_adjustment.json @@ -0,0 +1,197 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "naming_series:", + "creation": "2025-04-04 11:19:14.382103", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "section_break_wjxt", + "naming_series", + "employee", + "employee_name", + "amended_from", + "column_break_juxz", + "leave_type", + "adjustment_type", + "leaves_to_adjust", + "posting_date", + "section_break_etvg", + "leave_allocation", + "allocated_leaves", + "leaves_after_adjustment", + "column_break_ymxu", + "from_date", + "to_date", + "section_break_ukzy", + "reason_for_adjustment" + ], + "fields": [ + { + "fieldname": "section_break_wjxt", + "fieldtype": "Section Break" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Leave Adjustment", + "print_hide": 1, + "read_only": 1, + "search_index": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fieldname": "column_break_juxz", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fieldname": "leave_type", + "fieldtype": "Link", + "label": "Leave Type", + "options": "Leave Type", + "reqd": 1 + }, + { + "fieldname": "leave_allocation", + "fieldtype": "Link", + "label": "Allocation to Adjust", + "options": "Leave Allocation", + "read_only": 1, + "reqd": 1 + }, + { + "fetch_from": "leave_allocation.from_date", + "fieldname": "from_date", + "fieldtype": "Date", + "label": "From Date", + "read_only": 1 + }, + { + "fieldname": "naming_series", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Series", + "options": "HR-LAD-.YYYY.-", + "reqd": 1 + }, + { + "fetch_from": "leave_allocation.to_date", + "fieldname": "to_date", + "fieldtype": "Date", + "label": "To Date", + "read_only": 1 + }, + { + "fetch_from": "leave_allocation.total_leaves_allocated", + "fieldname": "allocated_leaves", + "fieldtype": "Float", + "label": "Allocated Leaves", + "read_only": 1 + }, + { + "default": "Today", + "fieldname": "posting_date", + "fieldtype": "Date", + "label": "Posting Date", + "reqd": 1 + }, + { + "fieldname": "section_break_etvg", + "fieldtype": "Section Break", + "label": "Allocation Details" + }, + { + "fieldname": "leaves_to_adjust", + "fieldtype": "Float", + "label": "Leaves to Adjust", + "non_negative": 1, + "reqd": 1 + }, + { + "fieldname": "adjustment_type", + "fieldtype": "Select", + "label": "Adjustment Type", + "options": "\nAllocate\nReduce", + "reqd": 1 + }, + { + "fieldname": "leaves_after_adjustment", + "fieldtype": "Float", + "label": "Leaves After Adjustment", + "read_only": 1 + }, + { + "fieldname": "column_break_ymxu", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_ukzy", + "fieldtype": "Section Break" + }, + { + "depends_on": "eval:doc.leave_allocation;", + "fieldname": "reason_for_adjustment", + "fieldtype": "Small Text", + "label": "Reason for Adjustment" + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [], + "modified": "2025-09-07 16:28:07.109228", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Adjustment", + "naming_rule": "By \"Naming Series\" field", + "owner": "Administrator", + "permissions": [ + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/leave_adjustment.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/leave_adjustment.py new file mode 100644 index 000000000..4186d6ac8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/leave_adjustment.py @@ -0,0 +1,135 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import cint, flt, get_link_to_form + +from hrms.hr.doctype.leave_application.leave_application import get_leave_balance_on +from hrms.hr.doctype.leave_ledger_entry.leave_ledger_entry import create_leave_ledger_entry + + +class LeaveAdjustment(Document): + def before_validate(self): + system_precision = cint(frappe.db.get_single_value("System Settings", "float_precision")) or 3 + precision = self.precision("leaves_to_adjust") or system_precision + self.leaves_to_adjust = flt(self.leaves_to_adjust, precision) + + def before_save(self): + self.set_leaves_after_adjustment() + + def set_leaves_after_adjustment(self): + if self.adjustment_type == "Allocate": + self.leaves_after_adjustment = flt(self.allocated_leaves) + flt(self.leaves_to_adjust) + elif self.adjustment_type == "Reduce": + self.leaves_after_adjustment = flt(self.allocated_leaves) - flt(self.leaves_to_adjust) + + def validate(self): + self.validate_duplicate_leave_adjustment() + self.validate_non_zero_adjustment() + self.validate_over_allocation() + self.validate_leave_balance() + + def validate_duplicate_leave_adjustment(self): + duplicate_adjustment = frappe.db.exists( + "Leave Adjustment", + {"employee": self.employee, "leave_allocation": self.leave_allocation, "docstatus": 1}, + ) + if duplicate_adjustment: + frappe.throw( + title=_("Duplicate Leave Adjustment"), + msg=_( + "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." + ).format(get_link_to_form("Leave Adjustment", duplicate_adjustment)), + ) + + def validate_non_zero_adjustment(self): + if self.leaves_to_adjust == 0: + frappe.throw(_("Enter a non-zero value to adjust.")) + + def validate_over_allocation(self): + if self.adjustment_type == "Reduce": + return + + max_leaves_allowed = frappe.db.get_value("Leave Type", self.leave_type, "max_leaves_allowed") + + new_allocation = flt(self.allocated_leaves) + flt(self.leaves_to_adjust) + + if max_leaves_allowed and (new_allocation > max_leaves_allowed): + frappe.throw( + _("Allocation is greater than the maximum allowed {0} for leave type {1}").format( + frappe.bold(max_leaves_allowed), frappe.bold(self.leave_type) + ) + ) + + def validate_leave_balance(self): + if self.adjustment_type == "Allocate": + return + + leave_balance = get_leave_balance_on( + employee=self.employee, leave_type=self.leave_type, date=self.posting_date + ) + + if leave_balance < self.leaves_to_adjust: + frappe.throw( + _("Reduction is more than {0}'s available leave balance {1} for leave type {2}").format( + frappe.bold(self.employee_name), frappe.bold(leave_balance), frappe.bold(self.leave_type) + ) + ) + + def on_submit(self): + self.create_leave_ledger_entry(submit=True) + + def on_cancel(self): + self.create_leave_ledger_entry(submit=False) + + def create_leave_ledger_entry(self, submit): + is_lwp = frappe.db.get_value("Leave Type", self.leave_type, "is_lwp") + + args = dict( + leaves=self.leaves_to_adjust + if self.adjustment_type == "Allocate" + else (-1 * self.leaves_to_adjust), + from_date=self.from_date, + to_date=self.to_date, + is_lwp=is_lwp, + ) + create_leave_ledger_entry(self, args, submit) + + +@frappe.whitelist() +def get_leave_allocation_for_posting_date(employee, leave_type, posting_date): + """ + Returns the leave allocation for the given employee, leave type and posting date. + """ + return frappe.get_all( + "Leave Allocation", + { + "employee": employee, + "leave_type": leave_type, + "from_date": ["<=", posting_date], + "to_date": [">=", posting_date], + "docstatus": 1, + }, + ["name"], + ) + + +@frappe.whitelist() +@frappe.validate_and_sanitize_search_inputs +def get_allocated_leave_types(doctype, txt, searchfield, start, page_len, filters): + """ + Returns the leave types allocated to the given employee + """ + return frappe.get_all( + "Leave Allocation", + { + "employee": filters.get("employee"), + "docstatus": 1, + }, + [ + "leave_type", + "name", + ], + as_list=1, + ) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/test_leave_adjustment.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/test_leave_adjustment.py new file mode 100644 index 000000000..22c8d5a1b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_adjustment/test_leave_adjustment.py @@ -0,0 +1,246 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import change_settings +from frappe.utils import add_days, add_to_date, get_first_day, get_last_day, getdate + +from hrms.hr.doctype.leave_allocation.test_leave_allocation import ( + create_leave_allocation, + process_expired_allocation, +) +from hrms.hr.doctype.leave_application.leave_application import get_leave_balance_on +from hrms.hr.doctype.leave_type.test_leave_type import create_leave_type +from hrms.payroll.doctype.salary_slip.test_salary_slip import make_leave_application +from hrms.tests.utils import HRMSTestSuite + + +class TestLeaveAdjustment(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + cls.make_leave_types() + + def setUp(self): + for dt in ["Leave Adjustment", "Leave Allocation", "Leave Application", "Leave Ledger Entry"]: + frappe.db.delete(dt) + + self.leave_allocation = create_leave_allocation( + employee=self.employees[0].name, + employee_name=self.employees[0].employee_name, + leave_type=self.leave_types[0].name, + new_leaves_allocated=10, + from_date=get_first_day(getdate()), + to_date=get_last_day(getdate()), + ) + self.leave_allocation.submit() + + def test_duplicate_leave_adjustment(self): + create_leave_adjustment(self.leave_allocation, adjustment_type="Reduce", leaves_to_adjust=3).submit() + duplicate_adjustment = create_leave_adjustment( + self.leave_allocation, adjustment_type="Allocate", leaves_to_adjust=10 + ) + self.assertRaises(frappe.ValidationError, duplicate_adjustment.save) + + def test_adjustment_for_over_allocation(self): + leave_type = create_leave_type(leave_type_name="Test Over Allocation", max_leaves_allowed=30) + leave_allocation = create_leave_allocation( + employee=self.employees[0].name, + employee_name=self.employees[0].employee_name, + leave_type=leave_type.name, + new_leaves_allocated=25, + ) + leave_allocation.submit() + leave_adjustment = create_leave_adjustment( + leave_allocation, adjustment_type="Allocate", leaves_to_adjust=10 + ) + + self.assertRaises(frappe.ValidationError, leave_adjustment.save) + + def test_adjustment_for_negative_leave_balance(self): + make_leave_application( + employee=self.employees[0].name, + from_date=get_first_day(getdate()), + to_date=add_days(get_first_day(getdate()), 6), + leave_type=self.leave_types[0].name, + ) + + leave_adjustment = create_leave_adjustment( + self.leave_allocation, + adjustment_type="Reduce", + leaves_to_adjust=5, + posting_date=add_days(get_first_day(getdate()), 20), + ) + + self.assertRaises(frappe.ValidationError, leave_adjustment.save) + + def test_increase_balance_with_adjustment(self): + create_leave_adjustment( + self.leave_allocation, adjustment_type="Allocate", leaves_to_adjust=6 + ).submit() + + leave_balance = get_leave_balance_on( + employee=self.employees[0].name, leave_type=self.leave_types[0].name, date=getdate() + ) + + self.assertEqual(leave_balance, 16) + + def test_decrease_balance_with_adjustment(self): + create_leave_adjustment(self.leave_allocation, adjustment_type="Reduce", leaves_to_adjust=3).submit() + leave_balance = get_leave_balance_on( + employee=self.employees[0].name, leave_type=self.leave_types[0].name, date=getdate() + ) + self.assertEqual(leave_balance, 7) + + def test_decrease_balance_after_leave_is_applied(self): + # allocation of 10 leaves, leave application for 3 days + mid_month = add_days(get_first_day(getdate()), 15) + make_leave_application( + employee=self.employees[0].name, + from_date=mid_month, + to_date=add_days(mid_month, 2), + leave_type=self.leave_types[0].name, + ) + # adjustment of 6 days made after applications + create_leave_adjustment( + self.leave_allocation, + adjustment_type="Allocate", + leaves_to_adjust=6, + posting_date=get_last_day(getdate()), + ).submit() + # so total balance should be 10 - 3 + 6 = 13 + leave_balance = get_leave_balance_on( + employee=self.employees[0].name, leave_type=self.leave_types[0].name, date=get_last_day(getdate()) + ) + self.assertEqual(leave_balance, 13) + + @change_settings("System Settings", {"float_precision": 2}) + def test_precision(self): + leave_adjustment = create_leave_adjustment( + self.leave_allocation, adjustment_type="Allocate", leaves_to_adjust=5.126 + ) + leave_adjustment.submit() + leave_adjustment.reload() + self.assertEqual(leave_adjustment.leaves_to_adjust, 5.13) + + def test_back_dated_leave_adjustment(self): + for dt in ["Leave Allocation", "Leave Ledger Entry"]: + frappe.db.delete(dt) + + # backdated leave allocation + leave_allocation = create_leave_allocation( + employee=self.employees[0].name, + employee_name=self.employees[0].employee_name, + leave_type=self.leave_types[0].name, + from_date=add_to_date(getdate(), months=-13), + to_date=add_to_date(getdate(), months=-1), + new_leaves_allocated=10, + ) + leave_allocation.submit() + # backdated leave adjustment + create_leave_adjustment( + leave_allocation, + adjustment_type="Reduce", + leaves_to_adjust=5, + posting_date=add_to_date(getdate(), months=-10), + ).submit() + # leave balance in previous period + leave_balance = get_leave_balance_on( + employee=self.employees[0].name, + leave_type=self.leave_types[0].name, + date=add_to_date(getdate(), months=-1), + ) + self.assertEqual(leave_balance, 5.0) + # leave balance now, should be 0 because everything has expired + leave_balance = get_leave_balance_on( + employee=self.employees[0].name, leave_type=self.leave_types[0].name, date=getdate() + ) + self.assertEqual(leave_balance, 0.0) + + def test_reduction_type_adjustment_while_carry_forwarding_leaves(self): + for dt in ["Leave Allocation", "Leave Ledger Entry"]: + frappe.db.delete(dt) + + leave_type = create_leave_type(leave_type_name="CF Adjustment", is_carry_forward=1) + leave_allocation = create_leave_allocation( + employee=self.employees[0].name, + employee_name=self.employees[0].employee_name, + leave_type=leave_type.name, + from_date=add_to_date(getdate(), months=-13), + to_date=add_to_date(getdate(), months=-1), + new_leaves_allocated=10, + ) + leave_allocation.submit() + create_leave_adjustment( + leave_allocation, + adjustment_type="Reduce", + leaves_to_adjust=5, + posting_date=add_to_date(getdate(), months=-10), + ).submit() + + create_leave_allocation( + employee=self.employees[0].name, + employee_name=self.employees[0].employee_name, + leave_type=leave_type.name, + from_date=add_to_date(getdate(), days=-15), + to_date=getdate(), + new_leaves_allocated=10, + carry_forward=1, + ).submit() + leave_balance = get_leave_balance_on( + employee=self.employees[0].name, leave_type=leave_type.name, date=getdate() + ) + + # 5 carried forward + 10 new + self.assertEqual(leave_balance, 15.0) + + def test_allocate_type_adjustment_while_carry_forwarding_leaves(self): + for dt in ["Leave Allocation", "Leave Ledger Entry"]: + frappe.db.delete(dt) + + leave_type = create_leave_type(leave_type_name="CF Adjustment", is_carry_forward=1) + leave_allocation = create_leave_allocation( + employee=self.employees[0].name, + employee_name=self.employees[0].employee_name, + leave_type=leave_type.name, + from_date=add_to_date(getdate(), months=-13), + to_date=add_to_date(getdate(), months=-1), + new_leaves_allocated=10, + ) + leave_allocation.submit() + create_leave_adjustment( + leave_allocation, + adjustment_type="Allocate", + leaves_to_adjust=5, + posting_date=add_to_date(getdate(), months=-10), + ).submit() + + create_leave_allocation( + employee=self.employees[0].name, + employee_name=self.employees[0].employee_name, + leave_type=leave_type.name, + from_date=add_to_date(getdate(), days=-25), + to_date=getdate(), + new_leaves_allocated=5, + carry_forward=1, + ).submit() + leave_balance = get_leave_balance_on( + employee=self.employees[0].name, leave_type=leave_type.name, date=getdate() + ) + + # 15 carried forward + 5 new + self.assertEqual(leave_balance, 20.0) + + +def create_leave_adjustment(leave_allocation, adjustment_type, leaves_to_adjust=None, posting_date=None): + leave_adjustment = frappe.new_doc( + "Leave Adjustment", + employee=leave_allocation.employee, + leave_allocation=leave_allocation.name, + leave_type=leave_allocation.leave_type, + posting_date=posting_date or getdate(), + adjustment_type=adjustment_type, + leaves_to_adjust=leaves_to_adjust or 10, + ) + return leave_adjustment diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/README.md new file mode 100644 index 000000000..870f9a501 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/README.md @@ -0,0 +1 @@ +Leave Allocated to an Employee at the beginning of the period. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/__init__.py new file mode 100755 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation.js new file mode 100755 index 000000000..8e4ab5fe8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation.js @@ -0,0 +1,261 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +// nosemgrep: frappe-semgrep-rules.rules.frappe-cur-frm-usage +cur_frm.add_fetch("employee", "employee_name", "employee_name"); + +frappe.ui.form.on("Leave Allocation", { + setup: function (frm) { + frm.trigger("set_indicator"); + }, + onload: function (frm) { + // Ignore cancellation of doctype on cancel all. + frm.ignore_doctypes_on_cancel_all = ["Leave Ledger Entry"]; + + if (!frm.doc.from_date) frm.set_value("from_date", frappe.datetime.get_today()); + + frm.set_query("employee", function () { + return { + query: "erpnext.controllers.queries.employee_query", + }; + }); + frm.set_query("leave_type", function () { + return { + filters: { + is_lwp: 0, + }, + }; + }); + }, + + refresh: function (frm) { + hrms.leave_utils.add_view_ledger_button(frm); + + if (frm.doc.docstatus === 1 && !frm.doc.expired) { + var valid_expiry = moment(frappe.datetime.get_today()).isBetween( + frm.doc.from_date, + frm.doc.to_date, + ); + if (valid_expiry) { + // expire current allocation + frm.add_custom_button( + __("Expire Allocation"), + function () { + frappe.confirm("Are you sure you want to expire this allocation?", () => { + frm.trigger("expire_allocation"); + }); + }, + __("Actions"), + ); + frm.add_custom_button( + __("Adjust Allocation"), + function () { + const dialog = new frappe.ui.Dialog({ + title: "Leave Adjustment", + fields: [ + { + label: "Adjustment Type", + fieldname: "adjustment_type", + fieldtype: "Select", + options: "Allocate\nReduce", + reqd: 1, + }, + { + label: "Leaves To Adjust", + fieldname: "leaves_to_adjust", + fieldtype: "Float", + reqd: 1, + }, + { + label: "Posting Date", + fieldname: "posting_date", + fieldtype: "Date", + reqd: 1, + default: frappe.datetime.get_today(), + }, + { + label: "Reason for Adjustment", + fieldname: "reason_for_adjustment", + fieldtype: "Small Text", + }, + ], + primary_action_label: "Adjust Leaves", + primary_action(values) { + frappe.call({ + method: "create_leave_adjustment", + doc: frm.doc, + args: values, + callback: function (r) { + if (!r.exc) { + frm.reload_doc(); + } + }, + always: function (r) { + dialog.hide(); + }, + }); + }, + }); + dialog.show(); + }, + __("Actions"), + ); + } + } + frm.trigger("set_indicator"); + frm.trigger("toggle_retry_button"); + }, + + expire_allocation: function (frm) { + frappe.call({ + method: "hrms.hr.doctype.leave_ledger_entry.leave_ledger_entry.expire_allocation", + args: { + allocation: frm.doc, + expiry_date: frappe.datetime.get_today(), + }, + freeze: true, + callback: function (r) { + if (!r.exc) { + frappe.msgprint(__("Allocation Expired!")); + } + frm.refresh(); + }, + }); + }, + + employee: function (frm) { + frm.trigger("calculate_total_leaves_allocated"); + }, + + leave_type: function (frm) { + frm.trigger("leave_policy"); + frm.trigger("calculate_total_leaves_allocated"); + }, + + carry_forward: function (frm) { + frm.trigger("calculate_total_leaves_allocated"); + }, + + unused_leaves: function (frm) { + frm.set_value( + "total_leaves_allocated", + flt(frm.doc.unused_leaves) + flt(frm.doc.new_leaves_allocated), + ); + }, + + new_leaves_allocated: function (frm) { + frm.set_value( + "total_leaves_allocated", + flt(frm.doc.unused_leaves) + flt(frm.doc.new_leaves_allocated), + ); + }, + + leave_policy: function (frm) { + if (frm.doc.leave_policy && frm.doc.leave_type) { + frappe.db.get_value( + "Leave Policy Detail", + { + parent: frm.doc.leave_policy, + leave_type: frm.doc.leave_type, + }, + "annual_allocation", + (r) => { + if (r && !r.exc) + frm.set_value("new_leaves_allocated", flt(r.annual_allocation)); + }, + "Leave Policy", + ); + } + }, + + toggle_retry_button: function (frm) { + const earned_leave_schedule = frm.doc.earned_leave_schedule || []; + let toggle_button = + earned_leave_schedule.some((row) => row.attempted && row.failed) && frm.perm[0]?.write; + frm.toggle_display("retry_failed_allocations", toggle_button); + }, + + retry_failed_allocations: function (frm) { + let failed_allocations = (frm.doc.earned_leave_schedule || []).filter( + (row) => row.attempted && row.failed, + ); + + frappe.call({ + method: "retry_failed_allocations", + doc: frm.doc, + args: { failed_allocations }, + freeze: true, + freeze_message: __("Retrying allocations"), + callback: function (r) { + frappe.show_alert({ + message: __("Retry Successful"), + indicator: "green", + }); + frm.reload_doc(); + frm.refresh_field("retry_failed_allocations"); + }, + }); + }, + set_indicator: function (frm) { + const df = frappe.meta.get_docfield( + "Earned Leave Schedule", + "allocation_date", + frm.doc.name, + ); + df.formatter = function (value, df, options, row) { + if (row.attempted && row.failed) { + return `${value}`; + } else if (row.attempted && row.is_allocated) { + return `${value}`; + } else { + return value; + } + }; + frm.refresh_field("earned_leave_schedule"); + }, + + calculate_total_leaves_allocated: function (frm) { + if (cint(frm.doc.carry_forward) == 1 && frm.doc.leave_type && frm.doc.employee) { + return frappe.call({ + method: "set_total_leaves_allocated", + doc: frm.doc, + callback: function () { + frm.refresh_fields(); + }, + }); + } else if (cint(frm.doc.carry_forward) == 0) { + frm.set_value("unused_leaves", 0); + frm.set_value("total_leaves_allocated", flt(frm.doc.new_leaves_allocated)); + } + }, +}); + +frappe.tour["Leave Allocation"] = [ + { + fieldname: "employee", + title: "Employee", + description: __("Select the Employee for which you want to allocate leaves."), + }, + { + fieldname: "leave_type", + title: "Leave Type", + description: __( + "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc.", + ), + }, + { + fieldname: "from_date", + title: "From Date", + description: __("Select the date from which this Leave Allocation will be valid."), + }, + { + fieldname: "to_date", + title: "To Date", + description: __("Select the date after which this Leave Allocation will expire."), + }, + { + fieldname: "new_leaves_allocated", + title: "New Leaves Allocated", + description: __("Enter the number of leaves you want to allocate for the period."), + }, +]; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation.json new file mode 100644 index 000000000..ed01b8bdb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation.json @@ -0,0 +1,308 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "naming_series:", + "creation": "2013-02-20 19:10:38", + "doctype": "DocType", + "document_type": "Setup", + "engine": "InnoDB", + "field_order": [ + "naming_series", + "employee", + "employee_name", + "department", + "company", + "column_break1", + "leave_type", + "from_date", + "to_date", + "section_break_6", + "new_leaves_allocated", + "carry_forward", + "unused_leaves", + "total_leaves_allocated", + "total_leaves_encashed", + "column_break_10", + "compensatory_request", + "leave_period", + "leave_policy", + "leave_policy_assignment", + "carry_forwarded_leaves_count", + "expired", + "amended_from", + "earned_leave_schedule_section", + "earned_leave_schedule", + "retry_failed_allocations", + "notes", + "description" + ], + "fields": [ + { + "fieldname": "naming_series", + "fieldtype": "Select", + "label": "Series", + "no_copy": 1, + "options": "HR-LAL-.YYYY.-", + "print_hide": 1, + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_global_search": 1, + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Employee", + "oldfieldname": "employee", + "oldfieldtype": "Link", + "options": "Employee", + "reqd": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "in_global_search": 1, + "in_list_view": 1, + "label": "Employee Name", + "read_only": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "column_break1", + "fieldtype": "Column Break", + "width": "50%" + }, + { + "fieldname": "leave_type", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Leave Type", + "oldfieldname": "leave_type", + "oldfieldtype": "Link", + "options": "Leave Type", + "reqd": 1, + "search_index": 1 + }, + { + "fieldname": "from_date", + "fieldtype": "Date", + "label": "From Date", + "reqd": 1 + }, + { + "fieldname": "to_date", + "fieldtype": "Date", + "label": "To Date", + "reqd": 1 + }, + { + "fieldname": "section_break_6", + "fieldtype": "Section Break", + "label": "Allocation" + }, + { + "allow_on_submit": 1, + "bold": 1, + "fieldname": "new_leaves_allocated", + "fieldtype": "Float", + "label": "New Leaves Allocated" + }, + { + "default": "0", + "fieldname": "carry_forward", + "fieldtype": "Check", + "label": "Add unused leaves from previous allocations" + }, + { + "depends_on": "carry_forward", + "fieldname": "unused_leaves", + "fieldtype": "Float", + "label": "Unused leaves", + "read_only": 1 + }, + { + "allow_on_submit": 1, + "fieldname": "total_leaves_allocated", + "fieldtype": "Float", + "label": "Total Leaves Allocated", + "read_only": 1, + "reqd": 1 + }, + { + "depends_on": "eval:doc.total_leaves_encashed>0", + "fieldname": "total_leaves_encashed", + "fieldtype": "Float", + "label": "Total Leaves Encashed", + "read_only": 1 + }, + { + "fieldname": "column_break_10", + "fieldtype": "Column Break" + }, + { + "fieldname": "compensatory_request", + "fieldtype": "Link", + "label": "Compensatory Leave Request", + "options": "Compensatory Leave Request", + "read_only": 1 + }, + { + "fieldname": "leave_period", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Leave Period", + "options": "Leave Period", + "read_only": 1 + }, + { + "fetch_from": "leave_policy_assignment.leave_policy", + "fieldname": "leave_policy", + "fieldtype": "Link", + "hidden": 1, + "in_standard_filter": 1, + "label": "Leave Policy", + "options": "Leave Policy", + "read_only": 1 + }, + { + "default": "0", + "fieldname": "expired", + "fieldtype": "Check", + "hidden": 1, + "in_standard_filter": 1, + "label": "Expired", + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "label": "Amended From", + "no_copy": 1, + "oldfieldname": "amended_from", + "oldfieldtype": "Data", + "options": "Leave Allocation", + "print_hide": 1, + "read_only": 1 + }, + { + "collapsible": 1, + "fieldname": "notes", + "fieldtype": "Section Break", + "label": "Notes" + }, + { + "fieldname": "description", + "fieldtype": "Small Text", + "label": "Description", + "oldfieldname": "reason", + "oldfieldtype": "Small Text", + "width": "300px" + }, + { + "depends_on": "carry_forwarded_leaves_count", + "fieldname": "carry_forwarded_leaves_count", + "fieldtype": "Float", + "label": "Carry Forwarded Leaves", + "read_only": 1 + }, + { + "fieldname": "leave_policy_assignment", + "fieldtype": "Link", + "label": "Leave Policy Assignment", + "options": "Leave Policy Assignment", + "read_only": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "read_only": 1, + "reqd": 1 + }, + { + "depends_on": "eval:doc.earned_leave_schedule && doc.earned_leave_schedule.length;", + "fieldname": "earned_leave_schedule_section", + "fieldtype": "Section Break", + "label": "Earned Leave Schedule" + }, + { + "fieldname": "earned_leave_schedule", + "fieldtype": "Table", + "options": "Earned Leave Schedule", + "read_only": 1 + }, + { + "fieldname": "retry_failed_allocations", + "fieldtype": "Button", + "hidden": 1, + "label": "Retry Failed Allocations" + } + ], + "icon": "fa fa-ok", + "idx": 1, + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [], + "modified": "2025-11-12 12:54:03.589896", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Allocation", + "naming_rule": "By \"Naming Series\" field", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "import": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "search_fields": "employee,employee_name,leave_type,total_leaves_allocated", + "show_name_in_global_search": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "timeline_field": "employee", + "title_field": "employee_name", + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation.py new file mode 100755 index 000000000..e50a2c106 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation.py @@ -0,0 +1,580 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import add_days, date_diff, flt, formatdate, get_link_to_form, getdate + +from hrms.hr.doctype.leave_application.leave_application import get_approved_leaves_for_period +from hrms.hr.doctype.leave_ledger_entry.leave_ledger_entry import ( + create_leave_ledger_entry, + expire_allocation, + process_expired_allocation, +) +from hrms.hr.utils import create_additional_leave_ledger_entry, get_leave_period, set_employee_name +from hrms.hr.utils import get_monthly_earned_leave as _get_monthly_earned_leave + + +class OverlapError(frappe.ValidationError): + pass + + +class BackDatedAllocationError(frappe.ValidationError): + pass + + +class OverAllocationError(frappe.ValidationError): + pass + + +class LessAllocationError(frappe.ValidationError): + pass + + +class ValueMultiplierError(frappe.ValidationError): + pass + + +class LeaveAllocation(Document): + def validate(self): + self.validate_period() + self.validate_allocation_overlap() + self.validate_lwp() + set_employee_name(self) + self.set_total_leaves_allocated() + self.validate_leave_days_and_dates() + + def validate_leave_days_and_dates(self): + # all validations that should run on save as well as on update after submit + self.validate_back_dated_allocation() + self.validate_total_leaves_allocated() + self.validate_leave_allocation_days() + + def validate_leave_allocation_days(self): + company = frappe.db.get_value("Employee", self.employee, "company") + leave_period = get_leave_period(self.from_date, self.to_date, company) + max_leaves_allowed = frappe.db.get_value("Leave Type", self.leave_type, "max_leaves_allowed") + + if max_leaves_allowed > 0: + leave_allocated = 0 + if leave_period: + leave_allocated = get_leave_allocation_for_period( + self.employee, + self.leave_type, + leave_period[0].from_date, + leave_period[0].to_date, + exclude_allocation=self.name, + ) + leave_allocated += flt(self.new_leaves_allocated) + if leave_allocated > max_leaves_allowed: + frappe.throw( + _( + "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" + ).format(self.leave_type, self.employee), + OverAllocationError, + ) + + def on_submit(self): + self.create_leave_ledger_entry() + + # expire all unused leaves in the ledger on creation of carry forward allocation + allocation = get_previous_allocation(self.from_date, self.leave_type, self.employee) + if self.carry_forward and allocation: + expire_allocation(allocation) + + def on_cancel(self): + self.create_leave_ledger_entry(submit=False) + if self.leave_policy_assignment: + self.update_leave_policy_assignments_when_no_allocations_left() + if self.carry_forward: + self.set_carry_forwarded_leaves_in_previous_allocation(on_cancel=True) + + # nosemgrep: frappe-semgrep-rules.rules.frappe-modifying-but-not-comitting + def on_update_after_submit(self): + if self.has_value_changed("new_leaves_allocated"): + self.validate_earned_leave_update() + self.validate_against_leave_applications() + + # recalculate total leaves allocated + self.total_leaves_allocated = flt(self.unused_leaves) + flt(self.new_leaves_allocated) + # run required validations again since total leaves are being updated + self.validate_leave_days_and_dates() + + leaves_to_be_added = flt( + (self.new_leaves_allocated - self.get_existing_leave_count()), + self.precision("new_leaves_allocated"), + ) + + args = { + "leaves": leaves_to_be_added, + "from_date": self.from_date, + "to_date": self.to_date, + "is_carry_forward": 0, + } + create_leave_ledger_entry(self, args, True) + self.db_update() + + def get_existing_leave_count(self): + ledger_entries = frappe.get_all( + "Leave Ledger Entry", + filters={ + "transaction_type": "Leave Allocation", + "transaction_name": self.name, + "employee": self.employee, + "company": self.company, + "leave_type": self.leave_type, + "is_carry_forward": 0, + "docstatus": 1, + }, + fields=[{"SUM": "leaves", "as": "total_leaves"}], + ) + + return ledger_entries[0].total_leaves if ledger_entries else 0 + + def validate_earned_leave_update(self): + if self.leave_policy_assignment and frappe.db.get_value( + "Leave Type", self.leave_type, "is_earned_leave" + ): + msg = _("Cannot update allocation for {0} after submission").format( + frappe.bold(_("Earned Leaves")) + ) + msg += "

    " + msg += _( + "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" + ).format(get_link_to_form("Leave Policy", self.leave_policy)) + frappe.throw(msg, title=_("Not Allowed")) + + def validate_against_leave_applications(self): + leaves_taken = get_approved_leaves_for_period( + self.employee, self.leave_type, self.from_date, self.to_date + ) + if flt(leaves_taken) > flt(self.total_leaves_allocated): + if frappe.db.get_value("Leave Type", self.leave_type, "allow_negative"): + frappe.msgprint( + _( + "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" + ).format(self.total_leaves_allocated, leaves_taken) + ) + else: + frappe.throw( + _( + "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" + ).format(self.total_leaves_allocated, leaves_taken), + LessAllocationError, + ) + + def update_leave_policy_assignments_when_no_allocations_left(self): + allocations = frappe.db.get_list( + "Leave Allocation", + filters={"docstatus": 1, "leave_policy_assignment": self.leave_policy_assignment}, + ) + if len(allocations) == 0: + frappe.db.set_value( + "Leave Policy Assignment", self.leave_policy_assignment, "leaves_allocated", 0 + ) + + def validate_period(self): + if date_diff(self.to_date, self.from_date) <= 0: + frappe.throw(_("To date cannot be before from date")) + + def validate_lwp(self): + if frappe.db.get_value("Leave Type", self.leave_type, "is_lwp"): + frappe.throw( + _("Leave Type {0} cannot be allocated since it is leave without pay").format(self.leave_type) + ) + + def validate_allocation_overlap(self): + leave_allocation = frappe.db.sql( + """ + SELECT + name + FROM `tabLeave Allocation` + WHERE + employee=%s AND leave_type=%s + AND name <> %s AND docstatus=1 + AND to_date >= %s AND from_date <= %s""", + (self.employee, self.leave_type, self.name, self.from_date, self.to_date), + ) + + if leave_allocation: + frappe.msgprint( + _("{0} already allocated for Employee {1} for period {2} to {3}").format( + self.leave_type, self.employee, formatdate(self.from_date), formatdate(self.to_date) + ) + ) + + frappe.throw( + _("Reference") + + f': {leave_allocation[0][0]}', + OverlapError, + ) + + def validate_back_dated_allocation(self): + future_allocation = frappe.db.sql( + """select name, from_date from `tabLeave Allocation` + where employee=%s and leave_type=%s and docstatus=1 and from_date > %s + and carry_forward=1""", + (self.employee, self.leave_type, self.to_date), + as_dict=1, + ) + + if future_allocation: + frappe.throw( + _( + "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" + ).format(formatdate(future_allocation[0].from_date), future_allocation[0].name), + BackDatedAllocationError, + ) + + @frappe.whitelist() + def set_total_leaves_allocated(self): + self.unused_leaves = flt( + get_carry_forwarded_leaves(self.employee, self.leave_type, self.from_date, self.carry_forward), + self.precision("unused_leaves"), + ) + + self.total_leaves_allocated = flt( + flt(self.unused_leaves) + flt(self.new_leaves_allocated), + self.precision("total_leaves_allocated"), + ) + + self.limit_carry_forward_based_on_max_allowed_leaves() + + if self.carry_forward: + self.set_carry_forwarded_leaves_in_previous_allocation() + + if ( + not self.total_leaves_allocated + and not frappe.db.get_value("Leave Type", self.leave_type, "is_earned_leave") + and not frappe.db.get_value("Leave Type", self.leave_type, "is_compensatory") + ): + frappe.throw(_("Total leaves allocated is mandatory for Leave Type {0}").format(self.leave_type)) + + def limit_carry_forward_based_on_max_allowed_leaves(self): + max_leaves_allowed = frappe.db.get_value("Leave Type", self.leave_type, "max_leaves_allowed") + if max_leaves_allowed and self.total_leaves_allocated > max_leaves_allowed: + self.total_leaves_allocated = max_leaves_allowed + self.unused_leaves = max_leaves_allowed - flt(self.new_leaves_allocated) + + def set_carry_forwarded_leaves_in_previous_allocation(self, on_cancel=False): + """Set carry forwarded leaves in previous allocation""" + previous_allocation = get_previous_allocation(self.from_date, self.leave_type, self.employee) + if on_cancel: + self.unused_leaves = 0.0 + if previous_allocation: + frappe.db.set_value( + "Leave Allocation", + previous_allocation.name, + "carry_forwarded_leaves_count", + self.unused_leaves, + ) + + def validate_total_leaves_allocated(self): + # Adding a day to include To Date in the difference + date_difference = date_diff(self.to_date, self.from_date) + 1 + if date_difference < self.total_leaves_allocated: + if frappe.db.get_value("Leave Type", self.leave_type, "allow_over_allocation"): + frappe.msgprint( + _( + "Total Leaves Allocated are more than the number of days in the allocation period" + ), + indicator="orange", + alert=True, + ) + else: + frappe.throw( + _( + "Total Leaves Allocated are more than the number of days in the allocation period" + ), + exc=OverAllocationError, + title=_("Over Allocation"), + ) + + def create_leave_ledger_entry(self, submit=True): + if self.unused_leaves: + expiry_days = frappe.db.get_value( + "Leave Type", self.leave_type, "expire_carry_forwarded_leaves_after_days" + ) + end_date = add_days(self.from_date, expiry_days - 1) if expiry_days else self.to_date + args = dict( + leaves=self.unused_leaves, + from_date=self.from_date, + to_date=min(getdate(end_date), getdate(self.to_date)), + is_carry_forward=1, + ) + create_leave_ledger_entry(self, args, submit) + if submit and getdate(end_date) < getdate(): + show_expire_leave_dialog(self.unused_leaves, self.leave_type) + + args = dict( + leaves=self.new_leaves_allocated, + from_date=self.from_date, + to_date=self.to_date, + is_carry_forward=0, + ) + create_leave_ledger_entry(self, args, submit) + + @frappe.whitelist() + def allocate_leaves_manually(self, new_leaves, from_date=None): + if from_date and not (getdate(self.from_date) <= getdate(from_date) <= getdate(self.to_date)): + frappe.throw( + _("Cannot allocate leaves outside the allocation period {0} - {1}").format( + frappe.bold(formatdate(self.from_date)), frappe.bold(formatdate(self.to_date)) + ), + title=_("Invalid Dates"), + ) + + new_allocation = flt(self.total_leaves_allocated) + flt(new_leaves) + new_allocation_without_cf = flt( + flt(self.get_existing_leave_count()) + flt(new_leaves), + self.precision("total_leaves_allocated"), + ) + + max_leaves_allowed = frappe.db.get_value("Leave Type", self.leave_type, "max_leaves_allowed") + if new_allocation > max_leaves_allowed and max_leaves_allowed > 0: + new_allocation = max_leaves_allowed + + annual_allocation = frappe.db.get_value( + "Leave Policy Detail", + {"parent": self.leave_policy, "leave_type": self.leave_type}, + "annual_allocation", + ) + annual_allocation = flt(annual_allocation, self.precision("total_leaves_allocated")) + + if ( + new_allocation != self.total_leaves_allocated + # annual allocation as per policy should not be exceeded + and new_allocation_without_cf <= annual_allocation + ): + self.db_set("total_leaves_allocated", new_allocation, update_modified=False) + + date = from_date or frappe.flags.current_date or getdate() + create_additional_leave_ledger_entry(self, new_leaves, date) + + text = _("{0} leaves were manually allocated by {1} on {2}").format( + frappe.bold(new_leaves), frappe.session.user, frappe.bold(formatdate(date)) + ) + self.add_comment(comment_type="Info", text=text) + frappe.msgprint( + _("{0} leaves allocated successfully").format(frappe.bold(new_leaves)), + indicator="green", + alert=True, + ) + + else: + msg = _("Total leaves allocated cannot exceed annual allocation of {0}.").format( + frappe.bold(_(annual_allocation)) + ) + msg += "

    " + msg += _("Reference: {0}").format(get_link_to_form("Leave Policy", self.leave_policy)) + frappe.throw(msg, title=_("Annual Allocation Exceeded")) + + @frappe.whitelist() + def get_monthly_earned_leave(self): + doj = frappe.db.get_value("Employee", self.employee, "date_of_joining") + + annual_allocation = frappe.db.get_value( + "Leave Policy Detail", + { + "parent": self.leave_policy, + "leave_type": self.leave_type, + }, + "annual_allocation", + ) + + frequency, rounding = frappe.db.get_value( + "Leave Type", + self.leave_type, + [ + "earned_leave_frequency", + "rounding", + ], + ) + + return _get_monthly_earned_leave(doj, annual_allocation, frequency, rounding) + + @frappe.whitelist() + def create_leave_adjustment(self, adjustment_type, leaves_to_adjust, posting_date, reason_for_adjustment): + leave_adjustment = frappe.new_doc( + "Leave Adjustment", + employee=self.employee, + leave_type=self.leave_type, + adjustment_type=adjustment_type, + leaves_to_adjust=leaves_to_adjust, + posting_date=posting_date, + leave_allocation=self.name, + reason_for_adjustment=reason_for_adjustment, + ) + leave_adjustment.save() + leave_adjustment.submit() + frappe.msgprint(_("Adjustment Created Successfully"), indicator="green", alert=True) + + @frappe.whitelist() + def retry_failed_allocations(self, failed_allocations): + if not frappe.has_permission(doctype="Leave Allocation", ptype="write", user=frappe.session.user): + frappe.throw(_("You do not have permission to complete this action"), frappe.PermissionError) + + max_leaves_allowed, frequency = frappe.db.get_values( + "Leave Type", self.leave_type, ["max_leaves_allowed", "earned_leave_frequency"] + )[0] + + annual_allocation = frappe.get_value( + "Leave Policy Detail", + {"parent": self.leave_policy, "leave_type": self.leave_type}, + "annual_allocation", + ) + + for allocation in failed_allocations: + new_allocation = flt(self.total_leaves_allocated) + flt(allocation["number_of_leaves"]) + + new_allocation_without_cf = flt(self.get_existing_leave_count()) + flt( + allocation["number_of_leaves"] + ) + + if new_allocation > max_leaves_allowed and max_leaves_allowed > 0: + frappe.throw( + msg=_( + "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." + ).format(frappe.bold(max_leaves_allowed), frappe.bold(self.leave_type)), + title=_("Retry Failed"), + ) + + elif new_allocation_without_cf > annual_allocation and frequency != "Yearly": + frappe.throw( + msg=_( + "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" + ).format(frappe.bold(annual_allocation)), + title=_("Retry Failed"), + ) + + else: + self.db_set("total_leaves_allocated", new_allocation, update_modified=False) + create_additional_leave_ledger_entry( + self, allocation["number_of_leaves"], allocation["allocation_date"] + ) + earned_leave_schedule = frappe.qb.DocType("Earned Leave Schedule") + ( + frappe.qb.update(earned_leave_schedule) + .where( + (earned_leave_schedule.parent == self.name) + & (earned_leave_schedule.allocation_date == allocation["allocation_date"]) + & (earned_leave_schedule.attempted == 1) + & (earned_leave_schedule.failed == 1) + ) + .set(earned_leave_schedule.is_allocated, 1) + .set(earned_leave_schedule.attempted, 1) + .set(earned_leave_schedule.allocated_via, "Manually") + .set(earned_leave_schedule.failed, 0) + .set(earned_leave_schedule.failure_reason, "") + ).run() + + +def get_previous_allocation(from_date, leave_type, employee): + """Returns document properties of previous allocation""" + Allocation = frappe.qb.DocType("Leave Allocation") + allocations = ( + frappe.qb.from_(Allocation) + .select( + Allocation.name, + Allocation.from_date, + Allocation.to_date, + Allocation.employee, + Allocation.leave_type, + ) + .where( + (Allocation.employee == employee) + & (Allocation.leave_type == leave_type) + & (Allocation.to_date < from_date) + & (Allocation.docstatus == 1) + ) + .orderby(Allocation.to_date, order=frappe.qb.desc) + .limit(1) + ).run(as_dict=True) + + return allocations[0] if allocations else None + + +def get_leave_allocation_for_period(employee, leave_type, from_date, to_date, exclude_allocation=None): + from frappe.query_builder.functions import Sum + + Allocation = frappe.qb.DocType("Leave Allocation") + return ( + frappe.qb.from_(Allocation) + .select(Sum(Allocation.total_leaves_allocated).as_("total_allocated_leaves")) + .where( + (Allocation.employee == employee) + & (Allocation.leave_type == leave_type) + & (Allocation.docstatus == 1) + & (Allocation.name != exclude_allocation) + & ( + (Allocation.from_date.between(from_date, to_date)) + | (Allocation.to_date.between(from_date, to_date)) + | ((Allocation.from_date < from_date) & (Allocation.to_date > to_date)) + ) + ) + ).run()[0][0] or 0.0 + + +def get_carry_forwarded_leaves(employee, leave_type, date, carry_forward=None): + """Returns carry forwarded leaves for the given employee""" + unused_leaves = 0.0 + previous_allocation = get_previous_allocation(date, leave_type, employee) + if carry_forward and previous_allocation: + validate_carry_forward(leave_type) + unused_leaves = get_unused_leaves( + employee, leave_type, previous_allocation.from_date, previous_allocation.to_date + ) + if unused_leaves: + max_carry_forwarded_leaves = frappe.db.get_value( + "Leave Type", leave_type, "maximum_carry_forwarded_leaves" + ) + if max_carry_forwarded_leaves and unused_leaves > flt(max_carry_forwarded_leaves): + unused_leaves = flt(max_carry_forwarded_leaves) + + return unused_leaves + + +def get_unused_leaves(employee, leave_type, from_date, to_date): + """Returns unused leaves between the given period while skipping leave allocation expiry""" + leaves = frappe.get_all( + "Leave Ledger Entry", + filters={ + "employee": employee, + "leave_type": leave_type, + "from_date": (">=", from_date), + "to_date": ("<=", to_date), + }, + or_filters={"is_expired": 0, "is_carry_forward": 1}, + fields=[{"SUM": "leaves", "as": "leaves"}], + ) + return flt(leaves[0]["leaves"]) + + +def validate_carry_forward(leave_type): + if not frappe.db.get_value("Leave Type", leave_type, "is_carry_forward"): + frappe.throw(_("Leave Type {0} cannot be carry-forwarded").format(leave_type)) + + +def show_expire_leave_dialog(expired_leaves, leave_type): + frappe.msgprint( + title=_("Leaves Expired"), + msg=_( + "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." + ).format(frappe.bold(expired_leaves), frappe.bold(leave_type)), + indicator="orange", + primary_action={ + "label": _("Expire Leaves"), + "server_action": "hrms.hr.doctype.leave_allocation.leave_allocation.expire_carried_forward_allocation", + "hide_on_success": True, + }, + ) + + +@frappe.whitelist() +def expire_carried_forward_allocation(): + if frappe.has_permission(doctype="Leave Allocation", ptype="submit", user=frappe.session.user): + process_expired_allocation() + else: + frappe.throw(_("You do not have permission to complete this action"), frappe.PermissionError) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation_dashboard.py new file mode 100644 index 000000000..c8160539f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation_dashboard.py @@ -0,0 +1,10 @@ +def get_data(): + return { + "fieldname": "leave_allocation", + "transactions": [ + {"items": ["Compensatory Leave Request"]}, + {"items": ["Leave Encashment"]}, + {"items": ["Leave Adjustment"]}, + ], + "reports": [{"items": ["Employee Leave Balance"]}], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation_list.js new file mode 100644 index 000000000..d004a62fb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/leave_allocation_list.js @@ -0,0 +1,11 @@ +// Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +// render +frappe.listview_settings["Leave Allocation"] = { + get_indicator: function (doc) { + if (doc.status === "Expired") { + return [__("Expired"), "gray", "expired, =, 1"]; + } + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/test_earned_leave_schedule.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/test_earned_leave_schedule.py new file mode 100644 index 000000000..ef40e1e40 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/test_earned_leave_schedule.py @@ -0,0 +1,507 @@ +import calendar +from datetime import date + +import frappe +from frappe.utils import add_months, get_first_day, get_last_day, get_year_ending, get_year_start, getdate + +from hrms.hr.doctype.leave_allocation.test_earned_leaves import make_policy_assignment +from hrms.payroll.doctype.salary_slip.test_salary_slip import make_holiday_list +from hrms.tests.utils import HRMSTestSuite + + +class TestLeaveAllocation(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + cls.make_leave_types() + + def setUp(self): + for doctype in [ + "Leave Period", + "Leave Application", + "Leave Allocation", + "Leave Policy Assignment", + "Leave Ledger Entry", + ]: + frappe.db.delete(doctype) + + employee = frappe.get_doc("Employee", "_T-Employee-00001") + self.original_doj = employee.date_of_joining + + employee.date_of_joining = add_months(getdate(), -24) + employee.save() + + self.employee = employee + self.leave_type = "Test Earned Leave" + + from_date = get_year_start(getdate()) + to_date = get_year_ending(getdate()) + self.holiday_list = make_holiday_list(from_date=from_date, to_date=to_date) + frappe.db.set_value("Email Account", "_Test Email Account 1", "default_outgoing", 1) + + def tearDown(self): + frappe.db.set_value("Employee", self.employee.name, "date_of_joining", self.original_doj) + frappe.db.set_value("Leave Type", self.leave_type, "max_leaves_allowed", 0) + frappe.flags.current_date = None + + def test_schedule_for_monthly_earned_leave_allocated_on_first_day(self): + frappe.flags.current_date = get_year_start(getdate()) + earned_leave_schedule = create_earned_leave_schedule( + self.employee, + allocate_on_day="First Day", + earned_leave_frequency="Monthly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + ) + allocation_dates = [allocation.allocation_date for allocation in earned_leave_schedule] + self.assertEqual(len(earned_leave_schedule), 12) + self.assertEqual(earned_leave_schedule[0].number_of_leaves, 2) + test_allocation_dates( + self, + allocation_dates, + get_year_start(getdate()), + get_year_ending(getdate()), + "Monthly", + "First Day", + ) + + def test_schedule_for_monthly_earned_leave_allocated_on_last_day(self): + frappe.flags.current_date = get_year_start(getdate()) + earned_leave_schedule = create_earned_leave_schedule( + self.employee, + allocate_on_day="Last Day", + earned_leave_frequency="Monthly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + ) + allocation_dates = [allocation.allocation_date for allocation in earned_leave_schedule] + self.assertEqual(len(earned_leave_schedule), 12) + self.assertEqual(earned_leave_schedule[0].number_of_leaves, 2) + test_allocation_dates( + self, + allocation_dates, + get_year_start(getdate()), + get_year_ending(getdate()), + "Monthly", + "Last Day", + ) + + def test_schedule_for_monthly_earned_leave_allocated_on_doj(self): + frappe.flags.current_date = get_year_start(getdate()) + earned_leave_schedule = create_earned_leave_schedule( + self.employee, + allocate_on_day="Date of Joining", + earned_leave_frequency="Monthly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + ) + allocation_dates = [allocation.allocation_date for allocation in earned_leave_schedule] + self.assertEqual(len(earned_leave_schedule), 12) + self.assertEqual(earned_leave_schedule[0].number_of_leaves, 2) + test_allocation_dates( + self, + allocation_dates, + get_year_start(getdate()), + get_year_ending(getdate()), + "Monthly", + "Date of Joining", + self.employee.date_of_joining, + ) + + def test_schedule_for_quaterly_earned_leave_allocated_on_first_day(self): + frappe.flags.current_date = get_year_start(getdate()) + earned_leave_schedule = create_earned_leave_schedule( + self.employee, + allocate_on_day="First Day", + earned_leave_frequency="Quarterly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + ) + allocation_dates = [allocation.allocation_date for allocation in earned_leave_schedule] + self.assertEqual(len(earned_leave_schedule), 4) + self.assertEqual(earned_leave_schedule[0].number_of_leaves, 6) + test_allocation_dates( + self, + allocation_dates, + get_year_start(getdate()), + get_year_ending(getdate()), + "Quarterly", + "First Day", + ) + + def test_schedule_for_quaterly_earned_leave_allocated_on_last_day(self): + frappe.flags.current_date = get_year_start(getdate()) + earned_leave_schedule = create_earned_leave_schedule( + self.employee, + allocate_on_day="Last Day", + earned_leave_frequency="Quarterly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + ) + allocation_dates = [allocation.allocation_date for allocation in earned_leave_schedule] + self.assertEqual(len(earned_leave_schedule), 4) + self.assertEqual(earned_leave_schedule[0].number_of_leaves, 6) + test_allocation_dates( + self, + allocation_dates, + get_year_start(getdate()), + get_year_ending(getdate()), + "Quarterly", + "Last Day", + ) + + def test_schedule_for_half_yearly_earned_leave_allocated_on_first_day(self): + frappe.flags.current_date = get_year_start(getdate()) + earned_leave_schedule = create_earned_leave_schedule( + self.employee, + allocate_on_day="First Day", + earned_leave_frequency="Half-Yearly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + ) + + allocation_dates = [allocation.allocation_date for allocation in earned_leave_schedule] + self.assertEqual(len(earned_leave_schedule), 2) + self.assertEqual(earned_leave_schedule[0].number_of_leaves, 12) + test_allocation_dates( + self, + allocation_dates, + get_year_start(getdate()), + get_year_ending(getdate()), + "Half-Yearly", + "First Day", + ) + + def test_schedule_for_half_yearly_earned_leave_allocated_on_last_day(self): + frappe.flags.current_date = get_year_start(getdate()) + earned_leave_schedule = create_earned_leave_schedule( + self.employee, + allocate_on_day="Last Day", + earned_leave_frequency="Half-Yearly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + ) + allocation_dates = [allocation.allocation_date for allocation in earned_leave_schedule] + self.assertEqual(len(earned_leave_schedule), 2) + self.assertEqual(earned_leave_schedule[0].number_of_leaves, 12) + test_allocation_dates( + self, + allocation_dates, + get_year_start(getdate()), + get_year_ending(getdate()), + "Half-Yearly", + "Last Day", + ) + + def test_schedule_for_yearly_earned_leave_allocated_on_first_day(self): + frappe.flags.current_date = get_year_start(getdate()) + earned_leave_schedule = create_earned_leave_schedule( + self.employee, + allocate_on_day="First Day", + earned_leave_frequency="Yearly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=add_months(get_year_ending(getdate()), 12), + ) + allocation_dates = [allocation.allocation_date for allocation in earned_leave_schedule] + self.assertEqual(len(earned_leave_schedule), 2) + self.assertEqual(earned_leave_schedule[0].number_of_leaves, 24) + test_allocation_dates( + self, + allocation_dates, + get_year_start(getdate()), + add_months(get_year_ending(getdate()), 12), + "Yearly", + "First Day", + ) + + def test_schedule_for_yearly_earned_leave_allocated_on_last_day(self): + frappe.flags.current_date = get_year_start(getdate()) + earned_leave_schedule = create_earned_leave_schedule( + self.employee, + allocate_on_day="Last Day", + earned_leave_frequency="Yearly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=add_months(get_year_ending(getdate()), 12), + ) + allocation_dates = [allocation.allocation_date for allocation in earned_leave_schedule] + self.assertEqual(len(earned_leave_schedule), 2) + self.assertEqual(earned_leave_schedule[0].number_of_leaves, 24) + test_allocation_dates( + self, + allocation_dates, + get_year_start(getdate()), + add_months(get_year_ending(getdate()), 12), + "Yearly", + "Last Day", + ) + + def test_schedule_when_doj_is_in_the_middle_of_leave_period(self): + self.employee.date_of_joining = add_months(get_year_start(getdate()), 4) + self.employee.save() + frappe.flags.current_date = add_months(get_year_start(getdate()), 4) + earned_leave_schedule = create_earned_leave_schedule( + self.employee, + allocate_on_day="First Day", + earned_leave_frequency="Quarterly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + ) + + self.assertEqual(len(earned_leave_schedule), 3) + self.assertEqual(earned_leave_schedule[0].number_of_leaves, 4) + self.assertEqual(earned_leave_schedule[0].allocation_date, add_months(get_year_start(getdate()), 4)) + self.assertEqual(earned_leave_schedule[1].number_of_leaves, 6) + self.assertEqual(earned_leave_schedule[1].allocation_date, add_months(get_year_start(getdate()), 6)) + + def test_schedule_when_assignment_is_based_on_doj(self): + self.employee.date_of_joining = add_months(get_year_start(getdate()), 4) + self.employee.save() + frappe.flags.current_date = add_months(get_year_start(getdate()), 4) + earned_leave_schedule = create_earned_leave_schedule( + self.employee, + allocate_on_day="First Day", + earned_leave_frequency="Quarterly", + annual_allocation=24, + assignment_based_on="Joining Date", + start_date=add_months(get_year_start(getdate()), 4), + end_date=get_year_ending(getdate()), + ) + + self.assertEqual(len(earned_leave_schedule), 3) + self.assertEqual(earned_leave_schedule[0].number_of_leaves, 4) + self.assertEqual(earned_leave_schedule[0].allocation_date, add_months(get_year_start(getdate()), 4)) + self.assertEqual(earned_leave_schedule[1].number_of_leaves, 6) + self.assertEqual(earned_leave_schedule[1].allocation_date, add_months(get_year_start(getdate()), 6)) + + def test_schedule_when_leave_policy_is_assigned_in_middle_of_the_period_allocated_on_first_day(self): + frappe.flags.current_date = add_months(get_year_start(getdate()), 4) + earned_leave_schedule = create_earned_leave_schedule( + self.employee, + allocate_on_day="First Day", + earned_leave_frequency="Quarterly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + ) + + self.assertEqual(len(earned_leave_schedule), 3) + self.assertEqual(earned_leave_schedule[0].number_of_leaves, 12) + self.assertEqual(earned_leave_schedule[0].allocation_date, add_months(get_year_start(getdate()), 4)) + self.assertEqual(earned_leave_schedule[1].number_of_leaves, 6) + self.assertEqual(earned_leave_schedule[1].allocation_date, add_months(get_year_start(getdate()), 6)) + + def test_schedule_when_leave_policy_is_assigned_in_middle_of_the_period_allocated_on_last_day(self): + frappe.flags.current_date = get_last_day(add_months(get_year_start(getdate()), 7)) + earned_leave_schedule = create_earned_leave_schedule( + self.employee, + allocate_on_day="Last Day", + earned_leave_frequency="Quarterly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + ) + + self.assertEqual(len(earned_leave_schedule), 3) + self.assertEqual(earned_leave_schedule[0].number_of_leaves, 12) + self.assertEqual(earned_leave_schedule[0].allocation_date, frappe.flags.current_date) + self.assertEqual(earned_leave_schedule[1].number_of_leaves, 6) + self.assertEqual(earned_leave_schedule[1].allocation_date, add_months(get_year_ending(getdate()), -3)) + + def test_schedule_when_doj_is_end_of_big_month(self): + frappe.flags.current_date = get_year_start(getdate()) + self.employee.date_of_joining = get_last_day(get_year_start(getdate())) + self.employee.save() + earned_leave_schedule = create_earned_leave_schedule( + self.employee, + allocate_on_day="Date of Joining", + earned_leave_frequency="Monthly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + ) + allocation_dates = [allocation.allocation_date for allocation in earned_leave_schedule] + self.assertEqual(len(earned_leave_schedule), 12) + # prorated leave is 0 because the employee just joined + self.assertEqual(earned_leave_schedule[0].number_of_leaves, 0) + self.assertEqual(earned_leave_schedule[1].number_of_leaves, 2) + test_allocation_dates( + self, + allocation_dates, + get_year_start(getdate()), + get_year_ending(getdate()), + "Monthly", + "Last Day", + self.employee.date_of_joining, + ) + + def test_absence_of_earned_leave_schedule_for_non_earned_leave_types(self): + leave_policy = frappe.get_doc( + { + "doctype": "Leave Policy", + "title": "Test Earned Leave Policy", + "leave_policy_details": [{"leave_type": self.leave_types[0].name, "annual_allocation": 12}], + } + ).insert() + + data = { + "employee": self.employee.name, + "leave_policy": leave_policy.name, + "effective_from": get_year_start(getdate()), + "effective_to": get_year_ending(getdate()), + } + + leave_policy_assignment = frappe.new_doc("Leave Policy Assignment", **frappe._dict(data)) + leave_policy_assignment.insert() + leave_policy_assignment.submit() + + leave_allocation = frappe.get_doc( + "Leave Allocation", {"leave_policy_assignment": leave_policy_assignment.name} + ) + self.assertEqual(leave_allocation.total_leaves_allocated, 12) + self.assertFalse(leave_allocation.earned_leave_schedule) + + +def test_allocation_dates( + self, + allocation_dates, + start_date, + end_date, + earned_leave_frequency, + allocate_on_day, + date_of_joining=None, +): + schedule_map = { + "Monthly": { + "First Day": get_first_days_of_the_months(start_date, end_date), + "Last Day": get_last_days_of_the_months(start_date, end_date), + "Date of Joining": get_doj_for_months(date_of_joining, start_date, end_date), + }, + "Quarterly": { + "First Day": get_first_days_of_quarters(start_date, end_date), + "Last Day": get_last_days_of_quarters(start_date, end_date), + }, + "Half-Yearly": { + "First Day": get_first_days_of_half_years(start_date, end_date), + "Last Day": get_last_days_of_half_years(start_date, end_date), + }, + "Yearly": { + "First Day": get_first_days_of_years(start_date, end_date), + "Last Day": get_last_days_of_years(start_date, end_date), + }, + } + + for dt, de in zip(allocation_dates, schedule_map[earned_leave_frequency][allocate_on_day], strict=True): + self.assertEqual(dt, de) + + +def create_earned_leave_schedule( + employee, + allocate_on_day, + earned_leave_frequency, + annual_allocation, + assignment_based_on, + start_date, + end_date, +): + assignment = make_policy_assignment( + employee, + allocate_on_day=allocate_on_day, + earned_leave_frequency=earned_leave_frequency, + annual_allocation=annual_allocation, + assignment_based_on=assignment_based_on, + start_date=start_date, + end_date=end_date, + )[0] + leave_allocation = frappe.get_value("Leave Allocation", {"leave_policy_assignment": assignment}, "name") + earned_leave_schedule = frappe.get_all( + "Earned Leave Schedule", + {"parent": leave_allocation}, + ["allocation_date", "number_of_leaves", "allocated_via", "attempted", "is_allocated"], + order_by="allocation_date", + ) + return earned_leave_schedule + + +def get_first_days_of_the_months(start_date, end_date): + year_range = range(start_date.year, end_date.year + 1) + return [date(year, month, 1) for year in year_range for month in range(1, 13)] + + +def get_last_days_of_the_months(start_date, end_date): + year_range = range(start_date.year, end_date.year + 1) + return [ + date(year, month, calendar.monthrange(year, month)[1]) + for year in year_range + for month in range(1, 13) + ] + + +def get_doj_for_months(date_of_joining, start_date, end_date): + if not date_of_joining: + return + year_range = range(start_date.year, end_date.year + 1) + return [ + date(year, month, min(date_of_joining.day, calendar.monthrange(year, month)[1])) + for year in year_range + for month in range(1, 13) + ] + + +def get_first_days_of_quarters(start_date, end_date): + year_range = range(start_date.year, end_date.year + 1) + return [date(year, month, 1) for year in year_range for month in (1, 4, 7, 10)] + + +def get_last_days_of_quarters(start_date, end_date): + year_range = range(start_date.year, end_date.year + 1) + return [ + date(year, month, calendar.monthrange(year, month)[1]) + for year in year_range + for month in (3, 6, 9, 12) + ] + + +def get_first_days_of_half_years(start_date, end_date): + year_range = range(start_date.year, end_date.year + 1) + return [date(year, month, 1) for year in year_range for month in (1, 7)] + + +def get_last_days_of_half_years(start_date, end_date): + year_range = range(start_date.year, end_date.year + 1) + return [ + date(year, month, calendar.monthrange(year, month)[1]) for year in year_range for month in (6, 12) + ] + + +def get_first_days_of_years(start_date, end_date): + year_range = range(start_date.year, end_date.year + 1) + return [date(year, 1, 1) for year in year_range] + + +def get_last_days_of_years(start_date, end_date): + year_range = range(start_date.year, end_date.year + 1) + return [date(year, 12, calendar.monthrange(year, 12)[1]) for year in year_range] diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/test_earned_leaves.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/test_earned_leaves.py new file mode 100644 index 000000000..463acec51 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/test_earned_leaves.py @@ -0,0 +1,1234 @@ +import frappe +from frappe.utils import ( + add_days, + add_months, + add_to_date, + get_first_day, + get_last_day, + get_year_ending, + get_year_start, + getdate, +) +from frappe.utils.user import add_role + +from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import assign_holiday_list +from hrms.hr.doctype.leave_allocation.test_leave_allocation import create_leave_allocation +from hrms.hr.doctype.leave_application.leave_application import ( + get_leave_balance_on, + get_leave_details, +) +from hrms.hr.doctype.leave_application.test_leave_application import make_leave_application +from hrms.hr.doctype.leave_policy_assignment.leave_policy_assignment import ( + calculate_pro_rated_leaves, + create_assignment_for_multiple_employees, +) +from hrms.hr.utils import allocate_earned_leaves, round_earned_leaves +from hrms.payroll.doctype.salary_slip.test_salary_slip import make_holiday_list +from hrms.tests.test_utils import get_first_sunday +from hrms.tests.utils import HRMSTestSuite + + +class TestLeaveAllocation(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + cls.make_leave_types() + + def setUp(self): + for doctype in [ + "Leave Period", + "Leave Application", + "Leave Allocation", + "Leave Policy Assignment", + "Leave Ledger Entry", + ]: + frappe.db.delete(doctype) + + employee = frappe.get_doc("Employee", "_T-Employee-00001") + self.original_doj = employee.date_of_joining + employee.date_of_joining = add_months(getdate(), -24) + employee.save() + + employee2 = frappe.get_doc("Employee", "_T-Employee-00002") + employee2.date_of_joining = add_months(getdate(), -24) + employee2.save() + + self.employee = employee + self.leave_type = "Test Earned Leave" + + from_date = get_year_start(getdate()) + to_date = get_year_ending(getdate()) + self.holiday_list = make_holiday_list(from_date=from_date, to_date=to_date) + frappe.db.set_value("Email Account", "_Test Email Account 1", "default_outgoing", 1) + + def test_earned_leave_allocation(self): + """Tests if Earned Leave allocation is 0 initially as it happens via scheduler""" + # second last day of the month + # leaves allocated should be 0 since it is an earned leave and allocation happens via scheduler based on set frequency + frappe.flags.current_date = add_days(get_last_day(getdate()), -1) + leave_policy_assignments = make_policy_assignment(self.employee) + + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + self.assertEqual(leaves_allocated, 0) + + def test_earned_leave_update_after_submission(self): + """Tests if validation error is raised when updating Earned Leave allocation after submission""" + leave_policy_assignments = make_policy_assignment(self.employee) + + allocation = frappe.db.get_value( + "Leave Allocation", + {"leave_policy_assignment": leave_policy_assignments[0]}, + "name", + ) + allocation = frappe.get_doc("Leave Allocation", allocation) + allocation.new_leaves_allocated = 2 + self.assertRaises(frappe.ValidationError, allocation.save) + + def test_alloc_based_on_leave_period(self): + """Case 1: Tests if assignment created one month after the leave period + allocates 1 leave for past month""" + start_date = get_first_day(add_months(getdate(), -1)) + + frappe.flags.current_date = get_first_day(getdate()) + leave_policy_assignments = make_policy_assignment(self.employee, start_date=start_date) + + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + self.assertEqual(leaves_allocated, 1) + + def test_alloc_on_month_end_based_on_leave_period(self): + """Case 2: Tests if assignment created on the last day of the leave period's latter month + allocates 1 leave for the current month even though the month has not ended + since the daily job might have already executed (12:00:00 AM)""" + start_date = get_first_day(add_months(getdate(), -2)) + + frappe.flags.current_date = get_last_day(getdate()) + leave_policy_assignments = make_policy_assignment(self.employee, start_date=start_date) + + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + self.assertEqual(leaves_allocated, 3) + + def test_alloc_based_on_leave_period_with_cf_leaves(self): + """Case 3: Tests assignment created on the leave period's latter month with carry forwarding""" + start_date = get_first_day(add_months(getdate(), -2)) + + # initial leave allocation = 5 + leave_allocation = create_leave_allocation( + employee=self.employee.name, + employee_name=self.employee.employee_name, + leave_type="Test Earned Leave", + from_date=add_months(getdate(), -12), + to_date=add_months(getdate(), -3), + new_leaves_allocated=5, + carry_forward=0, + ) + leave_allocation.submit() + + frappe.flags.current_date = get_last_day(add_months(getdate(), -1)) + # carry forwarded leaves = 5, 2 leaves allocated for passed months + leave_policy_assignments = make_policy_assignment( + self.employee, start_date=start_date, carry_forward=1 + ) + + details = frappe.db.get_value( + "Leave Allocation", + {"leave_policy_assignment": leave_policy_assignments[0]}, + ["total_leaves_allocated", "new_leaves_allocated", "unused_leaves", "name"], + as_dict=True, + ) + self.assertEqual(details.new_leaves_allocated, 2) + self.assertEqual(details.unused_leaves, 5) + self.assertEqual(details.total_leaves_allocated, 7) + + def test_alloc_based_on_joining_date(self): + """Tests if DOJ-based assignment created 2 months after the DOJ + allocates 3 leaves for the past 2 months""" + self.employee.date_of_joining = get_first_day(add_months(getdate(), -2)) + self.employee.save() + + # assignment created on the last day of the current month + frappe.flags.current_date = get_last_day(getdate()) + """set end date while making assignment based on Joining date because while start date is fetched from + employee master, make_policy_assignment ends up taking current date as end date if not specified which + causes the date of assignment to be later than the end date of leave period""" + start_date = self.employee.date_of_joining + end_date = get_last_day(add_months(self.employee.date_of_joining, 12)) + leave_policy_assignments = make_policy_assignment( + self.employee, assignment_based_on="Joining Date", start_date=start_date, end_date=end_date + ) + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + effective_from = frappe.db.get_value( + "Leave Policy Assignment", leave_policy_assignments[0], "effective_from" + ) + self.assertEqual(effective_from, self.employee.date_of_joining) + self.assertEqual(leaves_allocated, 3) + + def test_alloc_on_doj_based_on_leave_period(self): + """Tests assignment with 'Allocate On=Date of Joining' based on Leave Period""" + start_date = get_first_day(add_months(getdate(), -2)) + + # joining date set to 2 months back + self.employee.date_of_joining = start_date + self.employee.save() + + # assignment created on the same day of the current month, should allocate leaves including the current month + frappe.flags.current_date = get_first_day(getdate()) + + leave_policy_assignments = make_policy_assignment( + self.employee, start_date=start_date, allocate_on_day="Date of Joining" + ) + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + self.assertEqual(leaves_allocated, 3) + + def test_alloc_on_doj_based_on_joining_date(self): + """Tests assignment with 'Allocate On=Date of Joining' based on Joining Date""" + # joining date set to 2 months back + # leave should be allocated for current month too since this day is same as the joining day + self.employee.date_of_joining = get_first_day(add_months(getdate(), -2)) + self.employee.save() + + # assignment created on the first day of the current month + frappe.flags.current_date = get_first_day(getdate()) + + leave_policy_assignments = make_policy_assignment( + self.employee, + allocate_on_day="Date of Joining", + assignment_based_on="Joining Date", + end_date=get_last_day(add_months(self.employee.date_of_joining, 12)), + ) + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + effective_from = frappe.db.get_value( + "Leave Policy Assignment", leave_policy_assignments[0], "effective_from" + ) + self.assertEqual(effective_from, self.employee.date_of_joining) + self.assertEqual(leaves_allocated, 3) + + def test_earned_leaves_creation(self): + frappe.flags.current_date = get_year_start(getdate()) + make_policy_assignment( + self.employee, + annual_allocation=6, + allocate_on_day="First Day", + start_date=frappe.flags.current_date, + ) + + # leaves for 6 months = 3, but max leaves restricts allocation to 2 + frappe.db.set_value("Leave Type", self.leave_type, "max_leaves_allowed", 2) + allocate_earned_leaves_for_months(6) + self.assertEqual( + get_leave_balance_on(self.employee.name, self.leave_type, frappe.flags.current_date), 2 + ) + + # validate earned leaves creation without maximum leaves + frappe.db.set_value("Leave Type", self.leave_type, "max_leaves_allowed", 0) + allocate_earned_leaves_for_months(6) + self.assertEqual( + get_leave_balance_on(self.employee.name, self.leave_type, frappe.flags.current_date), 5 + ) + + def test_overallocation(self): + """Tests earned leave allocation does not exceed annual allocation""" + frappe.flags.current_date = get_year_start(getdate()) + make_policy_assignment( + self.employee, + annual_allocation=22, + allocate_on_day="First Day", + start_date=frappe.flags.current_date, + ) + + # leaves for 12 months = 22 + # With rounding, 22 leaves would be allocated in 11 months only + frappe.db.set_value("Leave Type", self.leave_type, "rounding", 1.0) + allocate_earned_leaves_for_months(11) + self.assertEqual( + get_leave_balance_on(self.employee.name, self.leave_type, frappe.flags.current_date), 22 + ) + + # should not allocate more leaves than annual allocation + allocate_earned_leaves_for_months(1) + self.assertEqual( + get_leave_balance_on(self.employee.name, self.leave_type, frappe.flags.current_date), 22 + ) + + def test_over_allocation_during_assignment_creation(self): + """Tests backdated earned leave allocation does not exceed annual allocation""" + start_date = get_first_day(add_months(getdate(), -12)) + + # joining date set to 1Y ago + self.employee.date_of_joining = start_date + self.employee.save() + + # create backdated assignment for last year + frappe.flags.current_date = get_first_day(getdate()) + + leave_policy_assignments = make_policy_assignment( + self.employee, start_date=start_date, allocate_on_day="Date of Joining" + ) + + # 13 months have passed but annual allocation = 12 + # check annual allocation is not exceeded + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + self.assertEqual(leaves_allocated, 12) + + def test_overallocation_with_carry_forwarding(self): + """Tests earned leave allocation with cf leaves does not exceed annual allocation""" + year_start = get_year_start(getdate()) + + # initial leave allocation = 5 + leave_allocation = create_leave_allocation( + employee=self.employee.name, + employee_name=self.employee.employee_name, + leave_type=self.leave_type, + from_date=get_first_day(add_months(year_start, -1)), + to_date=get_last_day(add_months(year_start, -1)), + new_leaves_allocated=5, + carry_forward=0, + ) + leave_allocation.submit() + + frappe.flags.current_date = year_start + # carry forwarded leaves = 5 + make_policy_assignment( + self.employee, + annual_allocation=22, + allocate_on_day="First Day", + start_date=year_start, + carry_forward=True, + ) + + frappe.db.set_value("Leave Type", self.leave_type, "rounding", 1.0) + allocate_earned_leaves_for_months(11) + + # 5 carry forwarded leaves + 22 EL allocated = 27 leaves + self.assertEqual( + get_leave_balance_on(self.employee.name, self.leave_type, frappe.flags.current_date), 27 + ) + + # should not allocate more leaves than annual allocation (22 excluding 5 cf leaves) + allocate_earned_leaves_for_months(1) + self.assertEqual( + get_leave_balance_on(self.employee.name, self.leave_type, frappe.flags.current_date), 27 + ) + + def test_allocate_on_first_day(self): + """Tests assignment with 'Allocate On=First Day'""" + start_date = get_first_day(add_months(getdate(), -1)) + prev_month_last_day = get_last_day(add_months(getdate(), -1)) + first_day = get_first_day(getdate()) + + # Case 1: Allocates 1 leave for the previous month if created on the previous month's last day + frappe.flags.current_date = prev_month_last_day + leave_policy_assignments = make_policy_assignment( + self.employee, allocate_on_day="First Day", start_date=start_date + ) + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + self.assertEqual(leaves_allocated, 1) + + # Case 2: Allocates 1 leave on the current month's first day (via scheduler) + frappe.flags.current_date = first_day + allocate_earned_leaves() + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + self.assertEqual(leaves_allocated, 2) + + def test_allocate_on_last_day(self): + """Tests assignment with 'Allocate On=Last Day'""" + prev_month_last_day = get_last_day(add_months(getdate(), -1)) + last_day = get_last_day(getdate()) + + # Case 1: Allocates 1 leave for the previous month if created on the previous month's last day + frappe.flags.current_date = prev_month_last_day + leave_policy_assignments = make_policy_assignment( + self.employee, allocate_on_day="Last Day", start_date=prev_month_last_day + ) + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + self.assertEqual(leaves_allocated, 1) + + # Case 2: Allocates 1 leave on the current month's last day (via scheduler) + frappe.flags.current_date = last_day + allocate_earned_leaves() + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + self.assertEqual(leaves_allocated, 2) + + # Case 3: Doesn't allocate before the current month's last day (via scheduler) + frappe.flags.current_date = add_days(last_day, -1) + allocate_earned_leaves() + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + # balance is still 2 + self.assertEqual(leaves_allocated, 2) + + def test_allocate_on_date_of_joining(self): + """Tests assignment with 'Allocate On=Date of Joining'""" + start_date = get_first_day(add_months(getdate(), -1)) + end_date = get_last_day(start_date) + doj = add_days(start_date, 5) + current_month_doj = add_days(get_first_day(getdate()), 5) + + self.employee.date_of_joining = doj + self.employee.save() + + # Case 1: Allocates pro-rated leave for the previous month if created on the previous month's day of joining + frappe.flags.current_date = doj + leave_policy_assignments = make_policy_assignment( + self.employee, allocate_on_day="Date of Joining", start_date=start_date + ) + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + pro_rated_leave = round_earned_leaves(calculate_pro_rated_leaves(1, doj, start_date, end_date), "0.5") + self.assertEqual(leaves_allocated, pro_rated_leave) + + # Case 2: Doesn't allocate before the current month's doj (via scheduler) + frappe.flags.current_date = add_days(current_month_doj, -1) + allocate_earned_leaves() + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + # balance is still the same + self.assertEqual(leaves_allocated, pro_rated_leave) + + # Case 3: Allocates 1 leave on the current month's day of joining (via scheduler) + frappe.flags.current_date = current_month_doj + allocate_earned_leaves() + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + self.assertEqual(leaves_allocated, pro_rated_leave + 1) + + def test_backdated_pro_rated_allocation(self): + # leave period started in Jan + start_date = getdate("2023-01-01") + + # employee joined mid-month in Mar + self.employee.date_of_joining = getdate("2023-03-15") + self.employee.save() + + # creating backdated allocation in May + frappe.flags.current_date = getdate("2023-05-16") + leave_policy_assignments = make_policy_assignment( + self.employee, + allocate_on_day="First Day", + start_date=start_date, + rounding="", + ) + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + + # pro-rated leaves should be considered only for the month of DOJ i.e. Mar = 0.548 leaves + # and full leaves for the remaining 2 months i.e. Apr and May = 2 leaves + self.assertEqual(leaves_allocated, 2.548) + + def test_no_pro_rated_leaves_allocated_before_effective_date(self): + start_date = get_first_day(add_months(getdate(), -1)) + doj = add_days(start_date, 5) + + self.employee.date_of_joining = doj + self.employee.save() + + # assigning before DOJ + frappe.flags.current_date = add_days(doj, -1) + leave_policy_assignments = make_policy_assignment( + self.employee, allocate_on_day="Date of Joining", start_date=start_date + ) + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + self.assertEqual(leaves_allocated, 0.0) + + def test_pro_rated_allocation_via_scheduler(self): + start_date = get_first_day(add_months(getdate(), -1)) + doj = add_days(start_date, 5) + + self.employee.date_of_joining = doj + self.employee.save() + + # assigning before DOJ, no leaves allocated initially + frappe.flags.current_date = add_days(doj, -1) + leave_policy_assignments = make_policy_assignment( + self.employee, allocate_on_day="First Day", start_date=start_date + ) + + # pro-rated leaves allocated during the first month + frappe.flags.current_date = add_days(doj, -1) + allocate_earned_leaves() + leaves_allocated = get_allocated_leaves(leave_policy_assignments[0]) + pro_rated_leave = round_earned_leaves( + calculate_pro_rated_leaves(1, doj, start_date, get_last_day(start_date)), "0.5" + ) + self.assertEqual(leaves_allocated, pro_rated_leave) + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_get_earned_leave_details_for_dashboard(self): + frappe.flags.current_date = get_year_start(getdate()) + first_sunday = get_first_sunday(self.holiday_list, for_date=frappe.flags.current_date) + + leave_policy_assignments = make_policy_assignment( + self.employee, + annual_allocation=6, + allocate_on_day="First Day", + start_date=add_months(frappe.flags.current_date, -3), + ) + allocation = frappe.db.get_value( + "Leave Allocation", + {"leave_policy_assignment": leave_policy_assignments[0]}, + "name", + ) + # 2 leaves allocated for past months + allocation = frappe.get_doc("Leave Allocation", allocation) + + allocate_earned_leaves_for_months(6) + + leave_date = add_days(first_sunday, 1) + make_leave_application(self.employee.name, leave_date, leave_date, self.leave_type) + + # 2 leaves were allocated when the allocation was created + details = get_leave_details(self.employee.name, allocation.from_date) + leave_allocation = details["leave_allocation"][self.leave_type] + expected = { + "total_leaves": 2.0, + "expired_leaves": 0.0, + "leaves_taken": 1.0, + "leaves_pending_approval": 0.0, + "remaining_leaves": 1.0, + } + self.assertEqual(leave_allocation, expected) + + # total leaves allocated = 5 on the current date + details = get_leave_details(self.employee.name, frappe.flags.current_date) + leave_allocation = details["leave_allocation"][self.leave_type] + expected = { + "total_leaves": 5.0, + "expired_leaves": 0.0, + "leaves_taken": 1.0, + "leaves_pending_approval": 0.0, + "remaining_leaves": 4.0, + } + self.assertEqual(leave_allocation, expected) + + def test_allocate_leaves_manually(self): + frappe.flags.current_date = get_year_start(getdate()) + lpas = make_policy_assignment( + self.employee, + allocate_on_day="First Day", + start_date=frappe.flags.current_date, + ) + + leave_allocation = frappe.get_last_doc( + "Leave Allocation", filters={"leave_policy_assignment": lpas[0]} + ) + leave_allocation.allocate_leaves_manually(1) + leave_allocation.allocate_leaves_manually(1) + leave_allocation.allocate_leaves_manually(1) + leave_allocation.allocate_leaves_manually(1) + leave_allocation.allocate_leaves_manually(1) + self.assertEqual( + get_leave_balance_on(self.employee.name, self.leave_type, frappe.flags.current_date), 6 + ) + + leave_allocation.allocate_leaves_manually(5) + self.assertEqual( + get_leave_balance_on(self.employee.name, self.leave_type, frappe.flags.current_date), 11 + ) + + # manually set from_date - applicable from the next day + leave_allocation.allocate_leaves_manually(1, add_days(frappe.flags.current_date, 1)) + # balance should be 11 on the current date + self.assertEqual( + get_leave_balance_on(self.employee.name, self.leave_type, frappe.flags.current_date), 11 + ) + # allocated leave should be applicable from the next day + self.assertEqual( + get_leave_balance_on(self.employee.name, self.leave_type, add_days(frappe.flags.current_date, 1)), + 12, + ) + + self.assertRaises(frappe.ValidationError, leave_allocation.allocate_leaves_manually, 1) + + def test_quarterly_earned_leaves_allocated_on_last_day_in_the_middle_of_leave_period(self): + employee = frappe.get_doc("Employee", "_T-Employee-00002") + # allocated after one quarter + frappe.flags.current_date = add_months(get_year_start(getdate()), 4) + + assignment = make_policy_assignment( + employee, + allocate_on_day="Last Day", + earned_leave_frequency="Quarterly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + )[0] + + # quarter passed 1 so leaves allocated should be 3 + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + + self.assertEqual(total_leaves_allocated, 3.0) + + def test_quarterly_earned_leaves_allocated_on_last_day_at_the_start_of_the_leave_period(self): + frappe.flags.current_date = get_year_start(getdate()) + + employee = frappe.get_doc("Employee", "_T-Employee-00002") + + assignment = make_policy_assignment( + employee, + allocate_on_day="Last Day", + earned_leave_frequency="Quarterly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + )[0] + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + + self.assertEqual(total_leaves_allocated, 0.0) + + def test_quartertly_earned_leaves_allocated_on_first_day_at_the_start_of_leave_period(self): + frappe.flags.current_date = get_year_start(getdate()) + + employee = frappe.get_doc("Employee", "_T-Employee-00002") + + assignment = make_policy_assignment( + employee, + allocate_on_day="First Day", + earned_leave_frequency="Quarterly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + )[0] + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + + self.assertEqual(total_leaves_allocated, 3.0) + + def test_quarterly_earned_leaves_allocated_by_the_scheduler(self): + frappe.flags.current_date = get_year_start(getdate()) + + employee = frappe.get_doc("Employee", "_T-Employee-00002") + + # created policy assignment at the begining of the year so allocated leaces should be 0 + assignment = make_policy_assignment( + employee, + allocate_on_day="First Day", + earned_leave_frequency="Quarterly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + )[0] + + # quarter passed 2 so leaves allocated should be 6 + frappe.flags.current_date = add_months(get_year_start(getdate()), 3) + + allocate_earned_leaves() + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + self.assertEqual(total_leaves_allocated, 6) + + # quarter three passed so leaves allocated should be 9 + frappe.flags.current_date = add_months(get_year_start(getdate()), 9) + allocate_earned_leaves() + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + self.assertEqual(total_leaves_allocated, 9) + + def test_quarterly_leaves_allocated_pro_rated(self): + # joined 1 month 10 days after the leave period date + employee = frappe.get_doc("Employee", "_T-Employee-00002") + employee.date_of_joining = add_to_date(get_year_start(getdate()), months=1, days=10) + employee.save() + + # make policy assignment on the same day + frappe.flags.current_date = add_to_date(get_year_start(getdate()), months=1, days=10) + assignment = make_policy_assignment( + employee, + allocate_on_day="Last Day", + earned_leave_frequency="Quarterly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + rounding=0.25, + )[0] + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + # no allocation at the beginning + self.assertEqual(total_leaves_allocated, 0) + + frappe.flags.current_date = add_to_date(get_year_start(getdate()), months=3, days=-1) + allocate_earned_leaves() + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + # 1 full for full month + 1/(28 days of feb)*20 days = 0.7142 rounded to 0.25 = 1.75 + self.assertEqual(total_leaves_allocated, 1.75) + + def test_half_yearly_earned_leaves_allocated_on_last_day_at_the_start_of_leave_period(self): + frappe.flags.current_date = get_year_start(getdate()) + employee = frappe.get_doc("Employee", "_T-Employee-00002") + + assignment = make_policy_assignment( + employee, + allocate_on_day="Last Day", + earned_leave_frequency="Half-Yearly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + )[0] + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + + self.assertEqual(total_leaves_allocated, 0.0) + + def test_half_yearly_earned_leaves_allocated_on_last_day_in_the_middle_of_leave_period(self): + employee = frappe.get_doc("Employee", "_T-Employee-00002") + + frappe.flags.current_date = add_months(get_year_start(getdate()), 7) + + assignment = make_policy_assignment( + employee, + allocate_on_day="Last Day", + earned_leave_frequency="Half-Yearly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + )[0] + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + + self.assertEqual(total_leaves_allocated, 6.0) + + def test_half_yearly_earned_leaves_allocated_on_first_day_at_the_start_of_leave_period(self): + employee = frappe.get_doc("Employee", "_T-Employee-00002") + + frappe.flags.current_date = get_year_start(getdate()) + + assignment = make_policy_assignment( + employee, + allocate_on_day="First Day", + earned_leave_frequency="Half-Yearly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + )[0] + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + + self.assertEqual(total_leaves_allocated, 6.0) + + def test_half_yearly_earned_leaves_allocated_by_the_scheduler(self): + frappe.flags.current_date = get_year_start(getdate()) + + employee = frappe.get_doc("Employee", "_T-Employee-00002") + + assignment = make_policy_assignment( + employee, + allocate_on_day="First Day", + earned_leave_frequency="Half-Yearly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + )[0] + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + self.assertEqual(total_leaves_allocated, 6) + + # after 6 months, all 12 leaves should be allocated + frappe.flags.current_date = add_months(get_year_start(getdate()), 6) + + allocate_earned_leaves() + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + self.assertEqual(total_leaves_allocated, 12) + + def test_half_yearly_leaves_allocated_pro_rated(self): + employee = frappe.get_doc("Employee", "_T-Employee-00002") + employee.date_of_joining = add_to_date(get_year_start(getdate()), months=3, days=25) + employee.save() + + # make policy assignment on the same day + frappe.flags.current_date = add_to_date(get_year_start(getdate()), months=3, days=25) + assignment = make_policy_assignment( + employee, + allocate_on_day="Last Day", + earned_leave_frequency="Half-Yearly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + rounding=0.25, + )[0] + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + + self.assertEqual(total_leaves_allocated, 0) + + frappe.flags.current_date = add_to_date(get_year_start(getdate()), months=6, days=-1) + allocate_earned_leaves() + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + # 2 full + 1/30*5 = 2.166 rounded to 0.25 + self.assertEqual(total_leaves_allocated, 2.25) + + def test_yearly_leaves_allocated_on_last_day_at_the_start_of_the_period(self): + employee = frappe.get_doc("Employee", "_T-Employee-00002") + + frappe.flags.current_date = get_year_start(getdate()) + # 4 year leave policy + assignment = make_policy_assignment( + employee, + allocate_on_day="Last Day", + earned_leave_frequency="Yearly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=add_to_date(get_year_ending(getdate()), years=4), + )[0] + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + + self.assertEqual(total_leaves_allocated, 0.0) + + def test_yearly_leaves_allocated_on_last_day_in_the_middle_of_the_period(self): + employee = frappe.get_doc("Employee", "_T-Employee-00002") + + frappe.flags.current_date = add_to_date(get_year_start(getdate()), years=2) + # 4 year leave policy + assignment = make_policy_assignment( + employee, + allocate_on_day="Last Day", + earned_leave_frequency="Yearly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=add_to_date(get_year_ending(getdate()), years=4), + )[0] + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + + self.assertEqual(total_leaves_allocated, 24.0) + + def test_yearly_leaves_allocated_on_first_day_at_the_start_of_the_period(self): + employee = frappe.get_doc("Employee", "_T-Employee-00002") + + frappe.flags.current_date = get_year_start(getdate()) + # 4 year leave policy + assignment = make_policy_assignment( + employee, + allocate_on_day="First Day", + earned_leave_frequency="Yearly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=add_to_date(get_year_ending(getdate()), years=4), + )[0] + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + + self.assertEqual(total_leaves_allocated, 12.0) + + def test_yearly_leaves_allocated_by_scheduler(self): + frappe.flags.current_date = get_year_start(getdate()) + + employee = frappe.get_doc("Employee", "_T-Employee-00002") + + assignment = make_policy_assignment( + employee, + allocate_on_day="First Day", + earned_leave_frequency="Yearly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=add_to_date(get_year_ending(getdate()), years=4), + )[0] + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + self.assertEqual(total_leaves_allocated, 12) + + frappe.flags.current_date = add_months(get_year_start(getdate()), 12) + + allocate_earned_leaves() + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + self.assertEqual(total_leaves_allocated, 24) + + def test_yearly_leaves_allocated_pro_rated(self): + employee = frappe.get_doc("Employee", "_T-Employee-00002") + employee.date_of_joining = add_to_date(get_year_start(getdate()), months=7, days=15) + employee.save() + + # make policy assignment on the same day + frappe.flags.current_date = add_to_date(get_year_start(getdate()), months=7, days=15) + assignment = make_policy_assignment( + employee, + allocate_on_day="Last Day", + earned_leave_frequency="Yearly", + annual_allocation=12, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=add_to_date(get_year_ending(getdate()), years=4), + rounding=0.25, + )[0] + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + + self.assertEqual(total_leaves_allocated, 0) + + frappe.flags.current_date = get_year_ending(getdate()) + allocate_earned_leaves() + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + # 4 months full leave 1/30*15 = 0.5 rounded to 0.25 + self.assertEqual(total_leaves_allocated, 4.5) + + def test_error_logging_failed_allocations(self): + frappe.flags.current_date = get_year_start(getdate()) + assignment = make_policy_assignment( + self.employee, + allocate_on_day="First Day", + earned_leave_frequency="Monthly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + rounding=0.25, + )[0] + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": self.employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + self.assertEqual(total_leaves_allocated, 2) + frappe.db.set_value("Leave Type", self.leave_type, "max_leaves_allowed", 2) + frappe.flags.current_date = add_months(get_year_start(getdate()), 1) + allocate_earned_leaves() + error_log = frappe.db.get_value("Error Log", {"reference_doctype": "Leave Allocation"}) + self.assertIsNotNone(error_log) + + def test_send_email_for_failed_allocations(self): + frappe.flags.current_date = get_year_start(getdate()) + assignment = make_policy_assignment( + self.employee, + allocate_on_day="First Day", + earned_leave_frequency="Monthly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + rounding=0.25, + )[0] + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": self.employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + self.assertEqual(total_leaves_allocated, 2) + frappe.db.set_value("Leave Type", self.leave_type, "max_leaves_allowed", 2) + frappe.flags.current_date = add_months(get_year_start(getdate()), 1) + allocate_earned_leaves() + email = frappe.db.get_values( + "Email Queue", {"message": ("like Failure of Automatic Allocation of Earned Leaves%")} + ) + self.assertIsNotNone(email) + + def test_retry_failed_allocations(self): + frappe.flags.current_date = get_year_start(getdate()) + assignment = make_policy_assignment( + self.employee, + allocate_on_day="First Day", + earned_leave_frequency="Monthly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + rounding=0.25, + )[0] + leave_allocation = frappe.get_doc( + "Leave Allocation", {"employee": self.employee.name, "leave_policy_assignment": assignment} + ) + frappe.db.set_value("Leave Type", self.leave_type, "max_leaves_allowed", 2) + # second month failed + frappe.flags.current_date = add_months(get_year_start(getdate()), 1) + allocate_earned_leaves() + # third month failed + frappe.flags.current_date = add_months(get_year_start(getdate()), 2) + allocate_earned_leaves() + # total failed should be 2 + failed_allocations = frappe.get_all( + "Earned Leave Schedule", {"parent": leave_allocation.name, "attempted": 1, "failed": 1}, ["*"] + ) + self.assertEqual(len(failed_allocations), 2) + frappe.db.set_value("Leave Type", self.leave_type, "max_leaves_allowed", 0) + leave_allocation.retry_failed_allocations(failed_allocations) + failed_allocations = frappe.get_all( + "Earned Leave Schedule", {"parent": leave_allocation.name, "attempted": 1, "failed": 1} + ) + self.assertFalse(failed_allocations) + + total_leaves_allocated = frappe.get_value( + "Leave Allocation", + {"employee": self.employee.name, "leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + self.assertEqual(total_leaves_allocated, 6) + + def test_permission_check_for_retrying_failed_allocation(self): + frappe.flags.current_date = get_year_start(getdate()) + assignment = make_policy_assignment( + self.employee, + allocate_on_day="First Day", + earned_leave_frequency="Monthly", + annual_allocation=24, + assignment_based_on="Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + rounding=0.25, + )[0] + leave_allocation = frappe.get_doc( + "Leave Allocation", {"employee": self.employee.name, "leave_policy_assignment": assignment} + ) + failed_allocations = frappe.get_all( + "Earned Leave Schedule", {"parent": leave_allocation.name, "attempted": 1, "failed": 1}, ["*"] + ) + frappe.set_user(self.employee.user_id) + self.assertRaises( + frappe.PermissionError, leave_allocation.retry_failed_allocations, failed_allocations + ) + add_role(self.employee.user_id, "HR Manager") + leave_allocation.retry_failed_allocations(failed_allocations) + failed_allocations = frappe.get_all( + "Earned Leave Schedule", {"parent": leave_allocation.name, "attempted": 1, "failed": 1}, ["*"] + ) + self.assertFalse(failed_allocations) + frappe.set_user("Administrator") + frappe.get_doc("User", self.employee.user_id).remove_roles("HR Manager") + + def test_allocating_earned_leave_when_schedule_doesnt_exist(self): + frappe.flags.current_date = get_year_start(getdate()) + employee1 = frappe.get_doc("Employee", "_T-Employee-00002") + employee2 = frappe.copy_doc(employee1) + employee2.user_id = None + employee2.insert() + leave_type = create_earned_leave_type( + "Test Earned Leave", "First Day", 0.5, earned_leave_frequency="Monthly" + ) + leave_period = create_leave_period( + "Test Earned Leave Period", + start_date=get_year_start(getdate()), + end_date=get_year_ending(getdate()), + ) + leave_policy = frappe.get_doc( + { + "doctype": "Leave Policy", + "title": "Test Earned Leave Policy", + "leave_policy_details": [{"leave_type": leave_type.name, "annual_allocation": 24}], + } + ).insert() + + data = { + "assignment_based_on": "Leave Period", + "leave_policy": leave_policy.name, + "leave_period": leave_period.name, + "carry_forward": 0, + "effective_from": get_year_start(getdate()), + "effective_to": get_year_ending(getdate()), + } + + leave_policy_assignments = create_assignment_for_multiple_employees( + [self.employee.name, employee1.name, employee2.name], frappe._dict(data) + ) + leave_allocations = frappe.db.get_values( + "Leave Allocation", {"employee": ("in", (employee1.name, employee2.name))}, pluck=True + ) + frappe.db.delete("Earned Leave Schedule", {"parent": ("in", leave_allocations)}) + frappe.flags.current_date = add_months(get_year_start(getdate()), 1) + allocate_earned_leaves() + total_leaves_allocated_with_no_schedule = frappe.db.get_values( + "Leave Allocation", + { + "employee": ("in", (employee1.name, employee2.name)), + "leave_policy_assignment": ("in", leave_policy_assignments[1:]), + }, + "total_leaves_allocated", + pluck=True, + ) + + total_leaves_allocated_with_schedule = frappe.get_value( + "Leave Allocation", + {"employee": self.employee.name, "leave_policy_assignment": leave_policy_assignments[0]}, + "total_leaves_allocated", + ) + self.assertEqual(total_leaves_allocated_with_no_schedule[0], 4) + self.assertEqual(total_leaves_allocated_with_no_schedule[1], 4) + self.assertEqual(total_leaves_allocated_with_schedule, 4) + + frappe.delete_doc_if_exists("Employee", employee2.name, force=1) + + def tearDown(self): + frappe.db.set_value("Employee", self.employee.name, "date_of_joining", self.original_doj) + frappe.db.set_value("Employee", "_T-Employee-00002", "date_of_joining", self.original_doj) + frappe.db.set_value("Leave Type", self.leave_type, "max_leaves_allowed", 0) + frappe.flags.current_date = None + + +def create_earned_leave_type( + leave_type, allocate_on_day="Last Day", rounding=0.5, earned_leave_frequency="Monthly" +): + frappe.delete_doc_if_exists("Leave Type", leave_type, force=1) + frappe.delete_doc_if_exists("Leave Type", "Test Earned Leave Type", force=1) + frappe.delete_doc_if_exists("Leave Type", "Test Earned Leave Type 2", force=1) + + return frappe.get_doc( + leave_type_name=leave_type, + doctype="Leave Type", + is_earned_leave=1, + earned_leave_frequency=earned_leave_frequency, + rounding=rounding, + is_carry_forward=1, + allocate_on_day=allocate_on_day, + max_leaves_allowed=0, + ).insert() + + +def create_leave_period(name, start_date=None, end_date=None): + frappe.delete_doc_if_exists("Leave Period", name, force=1) + + if not start_date: + start_date = get_first_day(getdate()) + + return frappe.get_doc( + name=name, + doctype="Leave Period", + from_date=start_date, + to_date=end_date or add_months(start_date, 12), + company="_Test Company", + is_active=1, + ).insert() + + +def make_policy_assignment( + employee, + allocate_on_day="Last Day", + rounding=0.5, + earned_leave_frequency="Monthly", + start_date=None, + end_date=None, + annual_allocation=12, + carry_forward=0, + assignment_based_on="Leave Period", +): + leave_type = create_earned_leave_type( + "Test Earned Leave", allocate_on_day, rounding, earned_leave_frequency=earned_leave_frequency + ) + leave_period = create_leave_period("Test Earned Leave Period", start_date=start_date, end_date=end_date) + leave_policy = frappe.get_doc( + { + "doctype": "Leave Policy", + "title": "Test Earned Leave Policy", + "leave_policy_details": [{"leave_type": leave_type.name, "annual_allocation": annual_allocation}], + } + ).insert() + + data = { + "assignment_based_on": assignment_based_on, + "leave_policy": leave_policy.name, + "leave_period": leave_period.name, + "carry_forward": carry_forward, + "effective_from": start_date, + "effective_to": end_date, + } + + leave_policy_assignments = create_assignment_for_multiple_employees([employee.name], frappe._dict(data)) + return leave_policy_assignments + + +def get_allocated_leaves(assignment): + return frappe.db.get_value( + "Leave Allocation", + {"leave_policy_assignment": assignment}, + "total_leaves_allocated", + ) + + +def allocate_earned_leaves_for_months(months): + for _ in range(0, months): + frappe.flags.current_date = add_months(frappe.flags.current_date, 1) + allocate_earned_leaves() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/test_leave_allocation.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/test_leave_allocation.py new file mode 100644 index 000000000..ded3f7c0a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_allocation/test_leave_allocation.py @@ -0,0 +1,642 @@ +import frappe +from frappe.tests import change_settings +from frappe.utils import add_days, add_months, getdate, nowdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.leave_allocation.leave_allocation import ( + BackDatedAllocationError, + OverAllocationError, +) +from hrms.hr.doctype.leave_ledger_entry.leave_ledger_entry import process_expired_allocation +from hrms.hr.doctype.leave_type.test_leave_type import create_leave_type +from hrms.tests.utils import HRMSTestSuite + + +class TestLeaveAllocation(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + cls.make_leave_types() + + def setUp(self): + frappe.db.delete("Leave Period") + frappe.db.delete("Leave Allocation") + frappe.db.delete("Leave Application") + frappe.db.delete("Leave Ledger Entry") + + emp_id = make_employee("test_leave_allocation@salary.com", company="_Test Company") + self.employee = frappe.get_doc("Employee", emp_id) + + def test_overlapping_allocation(self): + leaves = [ + { + "doctype": "Leave Allocation", + "__islocal": 1, + "employee": self.employee.name, + "employee_name": self.employee.employee_name, + "leave_type": "_Test Leave Type", + "from_date": getdate("2015-10-01"), + "to_date": getdate("2015-10-31"), + "new_leaves_allocated": 5, + "docstatus": 1, + }, + { + "doctype": "Leave Allocation", + "__islocal": 1, + "employee": self.employee.name, + "employee_name": self.employee.employee_name, + "leave_type": "_Test Leave Type", + "from_date": getdate("2015-09-01"), + "to_date": getdate("2015-11-30"), + "new_leaves_allocated": 5, + }, + ] + + frappe.get_doc(leaves[0]).save() + self.assertRaises(frappe.ValidationError, frappe.get_doc(leaves[1]).save) + + def test_invalid_period(self): + doc = frappe.get_doc( + { + "doctype": "Leave Allocation", + "__islocal": 1, + "employee": self.employee.name, + "employee_name": self.employee.employee_name, + "leave_type": "_Test Leave Type", + "from_date": getdate("2015-09-30"), + "to_date": getdate("2015-09-1"), + "new_leaves_allocated": 5, + } + ) + + # invalid period + self.assertRaises(frappe.ValidationError, doc.save) + + def test_validation_for_over_allocation(self): + leave_type = create_leave_type(leave_type_name="Test Over Allocation", is_carry_forward=1) + + doc = frappe.get_doc( + { + "doctype": "Leave Allocation", + "__islocal": 1, + "employee": self.employee.name, + "employee_name": self.employee.employee_name, + "leave_type": leave_type.name, + "from_date": getdate("2015-09-1"), + "to_date": getdate("2015-09-30"), + "new_leaves_allocated": 35, + "carry_forward": 1, + } + ) + + # allocated leave more than period + self.assertRaises(OverAllocationError, doc.save) + + leave_type.allow_over_allocation = 1 + leave_type.save() + + # allows creating a leave allocation with more leave days than period days + doc = frappe.get_doc( + { + "doctype": "Leave Allocation", + "__islocal": 1, + "employee": self.employee.name, + "employee_name": self.employee.employee_name, + "leave_type": leave_type.name, + "from_date": getdate("2015-09-1"), + "to_date": getdate("2015-09-30"), + "new_leaves_allocated": 35, + "carry_forward": 1, + } + ).insert() + + def test_validation_for_over_allocation_post_submission(self): + allocation = frappe.get_doc( + { + "doctype": "Leave Allocation", + "__islocal": 1, + "employee": self.employee.name, + "employee_name": self.employee.employee_name, + "leave_type": "_Test Leave Type", + "from_date": getdate("2015-09-1"), + "to_date": getdate("2015-09-30"), + "new_leaves_allocated": 15, + } + ).submit() + allocation.reload() + # allocated leaves more than period after submission + allocation.new_leaves_allocated = 35 + self.assertRaises(OverAllocationError, allocation.save) + + def test_validation_for_over_allocation_based_on_leave_setup(self): + frappe.delete_doc_if_exists("Leave Period", "Test Allocation Period") + leave_period = frappe.get_doc( + dict( + name="Test Allocation Period", + doctype="Leave Period", + from_date=add_months(nowdate(), -6), + to_date=add_months(nowdate(), 6), + company="_Test Company", + is_active=1, + ) + ).insert() + + leave_type = create_leave_type( + leave_type_name="_Test Allocation Validation", is_carry_forward=1, max_leaves_allowed=25 + ) + + # 15 leaves allocated in this period + allocation = create_leave_allocation( + leave_type=leave_type.name, + employee=self.employee.name, + employee_name=self.employee.employee_name, + from_date=leave_period.from_date, + to_date=nowdate(), + ) + allocation.submit() + + # trying to allocate additional 15 leaves + allocation = create_leave_allocation( + leave_type=leave_type.name, + employee=self.employee.name, + employee_name=self.employee.employee_name, + from_date=add_days(nowdate(), 1), + to_date=leave_period.to_date, + ) + self.assertRaises(OverAllocationError, allocation.save) + + def test_validation_for_over_allocation_based_on_leave_setup_post_submission(self): + frappe.delete_doc_if_exists("Leave Period", "Test Allocation Period") + leave_period = frappe.get_doc( + dict( + name="Test Allocation Period", + doctype="Leave Period", + from_date=add_months(nowdate(), -6), + to_date=add_months(nowdate(), 6), + company="_Test Company", + is_active=1, + ) + ).insert() + + leave_type = create_leave_type( + leave_type_name="_Test Allocation Validation", is_carry_forward=1, max_leaves_allowed=30 + ) + + # 15 leaves allocated + allocation = create_leave_allocation( + leave_type=leave_type.name, + employee=self.employee.name, + employee_name=self.employee.employee_name, + from_date=leave_period.from_date, + to_date=nowdate(), + ) + allocation.submit() + allocation.reload() + + # allocate additional 15 leaves + allocation = create_leave_allocation( + leave_type=leave_type.name, + employee=self.employee.name, + employee_name=self.employee.employee_name, + from_date=add_days(nowdate(), 1), + to_date=leave_period.to_date, + ) + allocation.submit() + allocation.reload() + + # trying to allocate 25 leaves in 2nd alloc within leave period + # total leaves = 40 which is more than `max_leaves_allowed` setting i.e. 30 + allocation.new_leaves_allocated = 25 + self.assertRaises(OverAllocationError, allocation.save) + + def test_validate_back_dated_allocation_update(self): + create_leave_type(leave_type_name="_Test_CF_leave", is_carry_forward=1) + + # initial leave allocation = 15 + leave_allocation = create_leave_allocation( + employee=self.employee.name, + employee_name=self.employee.employee_name, + leave_type="_Test_CF_leave", + from_date=add_months(nowdate(), -12), + to_date=add_months(nowdate(), -1), + carry_forward=0, + ) + leave_allocation.submit() + + # new_leaves = 15, carry_forwarded = 10 + leave_allocation_1 = create_leave_allocation( + employee=self.employee.name, + employee_name=self.employee.employee_name, + leave_type="_Test_CF_leave", + carry_forward=1, + ) + leave_allocation_1.submit() + + # try updating initial leave allocation + leave_allocation.reload() + leave_allocation.new_leaves_allocated = 20 + self.assertRaises(BackDatedAllocationError, leave_allocation.save) + + def test_carry_forward_calculation(self): + create_leave_type( + leave_type_name="_Test_CF_leave", + is_carry_forward=1, + maximum_carry_forwarded_leaves=10, + max_leaves_allowed=30, + ) + + # initial leave allocation = 15 + leave_allocation = create_leave_allocation( + employee=self.employee.name, + employee_name=self.employee.employee_name, + leave_type="_Test_CF_leave", + from_date=add_months(nowdate(), -12), + to_date=add_months(nowdate(), -1), + carry_forward=0, + ) + leave_allocation.submit() + + # carry forwarded leaves considering maximum_carry_forwarded_leaves + # new_leaves = 15, carry_forwarded = 10 + leave_allocation_1 = create_leave_allocation( + employee=self.employee.name, + employee_name=self.employee.employee_name, + leave_type="_Test_CF_leave", + carry_forward=1, + ) + leave_allocation_1.submit() + leave_allocation_1.reload() + + self.assertEqual(leave_allocation_1.unused_leaves, 10) + self.assertEqual(leave_allocation_1.total_leaves_allocated, 25) + + leave_allocation_1.cancel() + + # carry forwarded leaves considering max_leave_allowed + # max_leave_allowed = 30, new_leaves = 25, carry_forwarded = 5 + leave_allocation_2 = create_leave_allocation( + employee=self.employee.name, + employee_name=self.employee.employee_name, + leave_type="_Test_CF_leave", + carry_forward=1, + new_leaves_allocated=25, + ) + leave_allocation_2.submit() + + self.assertEqual(leave_allocation_2.unused_leaves, 5) + + @change_settings("System Settings", {"float_precision": 2}) + def test_precision(self): + create_leave_type( + leave_type_name="_Test_CF_leave", + is_carry_forward=1, + ) + + # initial leave allocation = 0.416333 + leave_allocation = create_leave_allocation( + employee=self.employee.name, + new_leaves_allocated=0.416333, + leave_type="_Test_CF_leave", + from_date=add_months(nowdate(), -12), + to_date=add_months(nowdate(), -1), + carry_forward=0, + ) + leave_allocation.submit() + + # carry forwarded leaves considering + # new_leaves = 0.58, carry_forwarded = 0.42 + leave_allocation_1 = create_leave_allocation( + employee=self.employee.name, + new_leaves_allocated=0.58, + leave_type="_Test_CF_leave", + carry_forward=1, + ) + leave_allocation_1.submit() + leave_allocation_1.reload() + + self.assertEqual(leave_allocation_1.unused_leaves, 0.42) + self.assertEqual(leave_allocation_1.total_leaves_allocated, 1) + + def test_carry_forward_leaves_expiry(self): + create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + ) + + # initial leave allocation + leave_allocation = create_leave_allocation( + employee=self.employee.name, + employee_name=self.employee.employee_name, + leave_type="_Test_CF_leave_expiry", + from_date=add_months(nowdate(), -24), + to_date=add_months(nowdate(), -12), + carry_forward=0, + ) + leave_allocation.submit() + + leave_allocation = create_leave_allocation( + employee=self.employee.name, + employee_name=self.employee.employee_name, + leave_type="_Test_CF_leave_expiry", + from_date=add_days(nowdate(), -90), + to_date=add_days(nowdate(), 100), + carry_forward=1, + ) + leave_allocation.submit() + + # expires all the carry forwarded leaves after 90 days + process_expired_allocation() + + # leave allocation with carry forward of only new leaves allocated + leave_allocation_1 = create_leave_allocation( + employee=self.employee.name, + employee_name=self.employee.employee_name, + leave_type="_Test_CF_leave_expiry", + carry_forward=1, + from_date=add_months(nowdate(), 6), + to_date=add_months(nowdate(), 12), + ) + leave_allocation_1.submit() + + self.assertEqual(leave_allocation_1.unused_leaves, leave_allocation.new_leaves_allocated) + + def test_carry_forward_leaves_expiry_after_partially_used_leaves(self): + from hrms.payroll.doctype.salary_slip.test_salary_slip import make_leave_application + + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + ) + + # initial leave allocation = 5 + leave_allocation = create_leave_allocation( + employee=self.employee.name, + leave_type="_Test_CF_leave_expiry", + from_date=add_months(nowdate(), -24), + to_date=add_months(nowdate(), -12), + new_leaves_allocated=5, + carry_forward=0, + ) + leave_allocation.submit() + + # carry-forward 5 leaves + 15 new leaves + leave_allocation = create_leave_allocation( + employee=self.employee.name, + leave_type="_Test_CF_leave_expiry", + from_date=add_days(nowdate(), -90), + to_date=add_days(nowdate(), 100), + carry_forward=1, + ) + leave_allocation.submit() + + # leave application for 3 days + make_leave_application( + self.employee.name, + leave_allocation.from_date, + add_days(leave_allocation.from_date, 2), + leave_type.name, + ) + + # only unused carry-forwarded leaves should expire + process_expired_allocation() + expired_leaves = frappe.db.get_value( + "Leave Ledger Entry", + dict( + transaction_name=leave_allocation.name, + is_expired=1, + is_carry_forward=1, + ), + "leaves", + ) + self.assertEqual(expired_leaves, -2) + + def test_carry_forward_leaves_expiry_after_completely_used_leaves(self): + from hrms.payroll.doctype.salary_slip.test_salary_slip import make_leave_application + + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + ) + + # initial leave allocation = 5 + leave_allocation = create_leave_allocation( + employee=self.employee.name, + leave_type="_Test_CF_leave_expiry", + from_date=add_months(nowdate(), -24), + to_date=add_months(nowdate(), -12), + new_leaves_allocated=5, + carry_forward=0, + ) + leave_allocation.submit() + + # carry-forward 5 leaves + 15 new leaves + leave_allocation = create_leave_allocation( + employee=self.employee.name, + leave_type="_Test_CF_leave_expiry", + from_date=add_days(nowdate(), -90), + to_date=add_days(nowdate(), 100), + carry_forward=1, + ) + leave_allocation.submit() + + # leave application for 6 days, all cf leaves used + make_leave_application( + self.employee.name, + leave_allocation.from_date, + add_days(leave_allocation.from_date, 5), + leave_type.name, + ) + + # 0 leaves should expire + process_expired_allocation() + expired_leaves = frappe.db.exists( + "Leave Ledger Entry", + dict( + transaction_name=leave_allocation.name, + is_expired=1, + is_carry_forward=1, + ), + ) + self.assertIsNone(expired_leaves) + + def test_creation_of_leave_ledger_entry_on_submit(self): + leave_allocation = create_leave_allocation( + employee=self.employee.name, employee_name=self.employee.employee_name + ) + leave_allocation.submit() + + leave_ledger_entry = frappe.get_all( + "Leave Ledger Entry", fields="*", filters=dict(transaction_name=leave_allocation.name) + ) + + self.assertEqual(len(leave_ledger_entry), 1) + self.assertEqual(leave_ledger_entry[0].employee, leave_allocation.employee) + self.assertEqual(leave_ledger_entry[0].leave_type, leave_allocation.leave_type) + self.assertEqual(leave_ledger_entry[0].leaves, leave_allocation.new_leaves_allocated) + + # check if leave ledger entry is deleted on cancellation + leave_allocation.cancel() + self.assertFalse(frappe.db.exists("Leave Ledger Entry", {"transaction_name": leave_allocation.name})) + + def test_leave_addition_after_submit(self): + leave_allocation = create_leave_allocation( + employee=self.employee.name, employee_name=self.employee.employee_name + ) + leave_allocation.submit() + leave_allocation.reload() + self.assertEqual(leave_allocation.total_leaves_allocated, 15) + + leave_allocation.new_leaves_allocated = 40 + leave_allocation.save() + leave_allocation.reload() + + updated_entry = frappe.db.get_all( + "Leave Ledger Entry", + {"transaction_name": leave_allocation.name}, + pluck="leaves", + order_by="creation desc", + limit=1, + ) + + self.assertEqual(updated_entry[0], 25) + self.assertEqual(leave_allocation.total_leaves_allocated, 40) + + def test_leave_addition_after_submit_with_carry_forward(self): + from hrms.hr.doctype.leave_application.test_leave_application import ( + create_carry_forwarded_allocation, + ) + + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + include_holiday=True, + ) + + leave_allocation = create_carry_forwarded_allocation(self.employee, leave_type) + # 15 new leaves, 15 carry forwarded leaves + self.assertEqual(leave_allocation.total_leaves_allocated, 30) + + leave_allocation.new_leaves_allocated = 32 + leave_allocation.save() + leave_allocation.reload() + + updated_entry = frappe.db.get_all( + "Leave Ledger Entry", + {"transaction_name": leave_allocation.name}, + pluck="leaves", + order_by="creation desc", + limit=1, + ) + self.assertEqual(updated_entry[0], 17) + self.assertEqual(leave_allocation.total_leaves_allocated, 47) + + def test_leave_subtraction_after_submit(self): + leave_allocation = create_leave_allocation( + employee=self.employee.name, employee_name=self.employee.employee_name + ) + leave_allocation.submit() + leave_allocation.reload() + self.assertEqual(leave_allocation.total_leaves_allocated, 15) + + leave_allocation.new_leaves_allocated = 10 + leave_allocation.submit() + leave_allocation.reload() + + updated_entry = frappe.db.get_all( + "Leave Ledger Entry", + {"transaction_name": leave_allocation.name}, + pluck="leaves", + order_by="creation desc", + limit=1, + ) + + self.assertEqual(updated_entry[0], -5) + self.assertEqual(leave_allocation.total_leaves_allocated, 10) + + def test_leave_subtraction_after_submit_with_carry_forward(self): + from hrms.hr.doctype.leave_application.test_leave_application import ( + create_carry_forwarded_allocation, + ) + + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + include_holiday=True, + ) + + leave_allocation = create_carry_forwarded_allocation(self.employee, leave_type) + self.assertEqual(leave_allocation.total_leaves_allocated, 30) + + leave_allocation.new_leaves_allocated = 8 + leave_allocation.save() + + updated_entry = frappe.db.get_all( + "Leave Ledger Entry", + {"transaction_name": leave_allocation.name}, + pluck="leaves", + order_by="creation desc", + limit=1, + ) + self.assertEqual(updated_entry[0], -7) + self.assertEqual(leave_allocation.total_leaves_allocated, 23) + + def test_validation_against_leave_application_after_submit(self): + from hrms.payroll.doctype.salary_slip.test_salary_slip import make_holiday_list + + make_holiday_list() + frappe.db.set_value( + "Company", self.employee.company, "default_holiday_list", "Salary Slip Test Holiday List" + ) + + leave_allocation = create_leave_allocation( + employee=self.employee.name, employee_name=self.employee.employee_name + ) + leave_allocation.submit() + self.assertTrue(leave_allocation.total_leaves_allocated, 15) + + leave_application = frappe.get_doc( + { + "doctype": "Leave Application", + "employee": self.employee.name, + "leave_type": "_Test Leave Type", + "from_date": add_months(nowdate(), 2), + "to_date": add_months(add_days(nowdate(), 10), 2), + "company": self.employee.company, + "docstatus": 1, + "status": "Approved", + "leave_approver": "test@example.com", + } + ) + leave_application.submit() + leave_application.reload() + + # allocate less leaves than the ones which are already approved + leave_allocation.new_leaves_allocated = leave_application.total_leave_days - 1 + leave_allocation.total_leaves_allocated = leave_application.total_leave_days - 1 + self.assertRaises(frappe.ValidationError, leave_allocation.submit) + + +def create_leave_allocation(**args): + args = frappe._dict(args) + + emp_id = make_employee("test_emp_leave_allocation@salary.com") + employee = frappe.get_doc("Employee", emp_id) + + return frappe.get_doc( + { + "doctype": "Leave Allocation", + "__islocal": 1, + "employee": args.employee or employee.name, + "employee_name": args.employee_name or employee.employee_name, + "leave_type": args.leave_type or "_Test Leave Type", + "from_date": args.from_date or nowdate(), + "new_leaves_allocated": args.new_leaves_allocated or 15, + "carry_forward": args.carry_forward or 0, + "to_date": args.to_date or add_months(nowdate(), 12), + } + ) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/README.md new file mode 100644 index 000000000..e78e37a1c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/README.md @@ -0,0 +1 @@ +Application for Leave by an Employee. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/__init__.py new file mode 100755 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application.js new file mode 100755 index 000000000..4a0bb09f3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application.js @@ -0,0 +1,335 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.ui.form.on("Leave Application", { + setup: function (frm) { + frm.set_query("leave_approver", function () { + return { + query: "hrms.hr.doctype.department_approver.department_approver.get_approvers", + filters: { + employee: frm.doc.employee, + doctype: frm.doc.doctype, + }, + }; + }); + frm.set_query("employee", erpnext.queries.employee); + }, + + onload: function (frm) { + // Ignore cancellation of doctype on cancel all. + frm.ignore_doctypes_on_cancel_all = ["Leave Ledger Entry"]; + + if (!frm.doc.posting_date) { + frm.set_value("posting_date", frappe.datetime.get_today()); + } + if (frm.doc.docstatus == 0) { + return frappe.call({ + method: "hrms.hr.doctype.leave_application.leave_application.get_mandatory_approval", + args: { + doctype: frm.doc.doctype, + }, + callback: function (r) { + if (!r.exc && r.message) { + frm.toggle_reqd("leave_approver", true); + } + }, + }); + } + }, + + validate: function (frm) { + if (frm.doc.from_date === frm.doc.to_date && cint(frm.doc.half_day)) { + frm.doc.half_day_date = frm.doc.from_date; + } else if (frm.doc.half_day === 0) { + frm.doc.half_day_date = ""; + } + frm.toggle_reqd("half_day_date", cint(frm.doc.half_day)); + }, + + make_dashboard: function (frm) { + let leave_details; + let lwps; + + if (frm.doc.employee) { + frappe.call({ + method: "hrms.hr.doctype.leave_application.leave_application.get_leave_details", + async: false, + args: { + employee: frm.doc.employee, + date: frm.doc.from_date || frm.doc.posting_date, + }, + callback: function (r) { + if (!r.exc && r.message["leave_allocation"]) { + leave_details = r.message["leave_allocation"]; + } + lwps = r.message["lwps"]; + }, + }); + + $("div").remove(".form-dashboard-section.custom"); + + frm.dashboard.add_section( + frappe.render_template("leave_application_dashboard", { + data: leave_details, + }), + __("Allocated Leaves"), + ); + frm.dashboard.show(); + + let allowed_leave_types = Object.keys(leave_details); + // lwps should be allowed for selection as they don't have any allocation + allowed_leave_types = allowed_leave_types.concat(lwps); + + frm.set_query("leave_type", function () { + return { + filters: [["leave_type_name", "in", allowed_leave_types]], + }; + }); + } + }, + + refresh: function (frm) { + hrms.leave_utils.add_view_ledger_button(frm); + if (frm.is_new()) { + frm.trigger("calculate_total_days"); + } + + frm.set_intro(""); + if (frm.doc.__islocal && !in_list(frappe.user_roles, "Employee")) { + frm.set_intro(__("Fill the form and save it")); + } else if ( + frm.perm[0] && + frm.perm[0].submit && + !frm.is_dirty() && + !frm.is_new() && + !frappe.model.has_workflow(frm.doctype) && + frm.doc.docstatus === 0 + ) { + frm.set_intro(__("Submit this Leave Application to confirm.")); + } + + frm.trigger("set_employee"); + if (frm.doc.docstatus === 0) { + frm.trigger("make_dashboard"); + } + frm.trigger("set_form_buttons"); + }, + + async set_employee(frm) { + if (frm.doc.employee) return; + + const employee = await hrms.get_current_employee(frm); + if (employee) { + frm.set_value("employee", employee); + } + }, + + employee: function (frm) { + frm.trigger("make_dashboard"); + frm.trigger("get_leave_balance"); + frm.trigger("set_leave_approver"); + }, + + leave_approver: function (frm) { + if (frm.doc.leave_approver) { + frm.set_value("leave_approver_name", frappe.user.full_name(frm.doc.leave_approver)); + } + }, + + leave_type: function (frm) { + frm.trigger("get_leave_balance"); + }, + + half_day: function (frm) { + if (frm.doc.half_day) { + if (frm.doc.from_date == frm.doc.to_date) { + frm.set_value("half_day_date", frm.doc.from_date); + } else { + frm.trigger("half_day_datepicker"); + } + } else { + frm.set_value("half_day_date", ""); + } + frm.trigger("calculate_total_days"); + }, + + from_date: function (frm) { + frm.events.validate_from_to_date(frm, "from_date"); + frm.trigger("make_dashboard"); + frm.trigger("half_day_datepicker"); + frm.trigger("calculate_total_days"); + }, + + to_date: function (frm) { + frm.events.validate_from_to_date(frm, "to_date"); + frm.trigger("make_dashboard"); + frm.trigger("half_day_datepicker"); + frm.trigger("calculate_total_days"); + }, + + half_day_date(frm) { + frm.trigger("calculate_total_days"); + }, + + validate_from_to_date: function (frm, updated_field) { + if (!frm.doc.from_date || !frm.doc.to_date) return; + + const from_date = Date.parse(frm.doc.from_date); + const to_date = Date.parse(frm.doc.to_date); + + if (to_date < from_date) { + const other_field = updated_field === "from_date" ? "to_date" : "from_date"; + + frm.set_value(other_field, frm.doc[updated_field]); + frappe.show_alert({ + message: __("Changing '{0}' to {1}.", [ + __(frm.fields_dict[other_field].df.label), + frappe.datetime.str_to_user(frm.doc[updated_field]), + ]), + indicator: "blue", + }); + } + }, + + half_day_datepicker: function (frm) { + frm.set_value("half_day_date", ""); + if (!(frm.doc.half_day && frm.doc.from_date && frm.doc.to_date)) return; + + const half_day_datepicker = frm.fields_dict.half_day_date.datepicker; + half_day_datepicker.update({ + minDate: frappe.datetime.str_to_obj(frm.doc.from_date), + maxDate: frappe.datetime.str_to_obj(frm.doc.to_date), + }); + }, + + get_leave_balance: function (frm) { + if ( + frm.doc.docstatus === 0 && + frm.doc.employee && + frm.doc.leave_type && + frm.doc.from_date && + frm.doc.to_date + ) { + return frappe.call({ + method: "hrms.hr.doctype.leave_application.leave_application.get_leave_balance_on", + args: { + employee: frm.doc.employee, + date: frm.doc.from_date, + to_date: frm.doc.to_date, + leave_type: frm.doc.leave_type, + consider_all_leaves_in_the_allocation_period: 1, + }, + callback: function (r) { + if (!r.exc && r.message) { + frm.set_value("leave_balance", r.message); + } else { + frm.set_value("leave_balance", "0"); + } + }, + }); + } + }, + + calculate_total_days: function (frm) { + if (frm.doc.from_date && frm.doc.to_date && frm.doc.employee && frm.doc.leave_type) { + // server call is done to include holidays in leave days calculations + return frappe.call({ + method: "hrms.hr.doctype.leave_application.leave_application.get_number_of_leave_days", + args: { + employee: frm.doc.employee, + leave_type: frm.doc.leave_type, + from_date: frm.doc.from_date, + to_date: frm.doc.to_date, + half_day: frm.doc.half_day, + half_day_date: frm.doc.half_day_date, + }, + callback: function (r) { + if (r && r.message) { + frm.set_value("total_leave_days", r.message); + frm.trigger("get_leave_balance"); + } + }, + }); + } + }, + + set_leave_approver: function (frm) { + if (frm.doc.employee) { + return frappe.call({ + method: "hrms.hr.doctype.leave_application.leave_application.get_leave_approver", + args: { + employee: frm.doc.employee, + }, + callback: function (r) { + if (r && r.message) { + frm.set_value("leave_approver", r.message); + } + }, + }); + } + }, + + set_form_buttons: async function (frm) { + let self_approval_not_allowed = frm.doc.__onload + ? frm.doc.__onload.self_leave_approval_not_allowed + : 0; + let current_employee = await hrms.get_current_employee(); + if ( + frm.doc.docstatus === 0 && + !frm.is_dirty() && + !frappe.model.has_workflow(frm.doctype) + ) { + if (self_approval_not_allowed && current_employee == frm.doc.employee) { + frm.set_df_property("status", "read_only", 1); + frm.trigger("show_save_button"); + } + } + }, + show_save_button: function (frm) { + frm.page.set_primary_action(__("Save"), () => { + frm.save(); + }); + $(".form-message").prop("hidden", true); + }, + posting_date: function (frm) { + frm.trigger("make_dashboard"); + frm.trigger("get_leave_balance"); + }, +}); + +frappe.tour["Leave Application"] = [ + { + fieldname: "employee", + title: "Employee", + description: __("Select the Employee."), + }, + { + fieldname: "leave_type", + title: "Leave Type", + description: __( + "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc.", + ), + }, + { + fieldname: "from_date", + title: "From Date", + description: __("Select the start date for your Leave Application."), + }, + { + fieldname: "to_date", + title: "To Date", + description: __("Select the end date for your Leave Application."), + }, + { + fieldname: "half_day", + title: "Half Day", + description: __("To apply for a Half Day check 'Half Day' and select the Half Day Date"), + }, + { + fieldname: "leave_approver", + title: "Leave Approver", + description: __( + "Select your Leave Approver i.e. the person who approves or rejects your leaves.", + ), + }, +]; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application.json new file mode 100644 index 000000000..8d1b762a1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application.json @@ -0,0 +1,354 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "naming_series:", + "creation": "2013-02-20 11:18:11", + "description": "Apply / Approve Leaves", + "doctype": "DocType", + "document_type": "Document", + "engine": "InnoDB", + "field_order": [ + "naming_series", + "employee", + "employee_name", + "column_break_4", + "leave_type", + "company", + "department", + "section_break_5", + "from_date", + "to_date", + "half_day", + "half_day_date", + "total_leave_days", + "column_break1", + "description", + "leave_balance", + "section_break_7", + "leave_approver", + "leave_approver_name", + "follow_via_email", + "column_break_18", + "posting_date", + "status", + "sb_other_details", + "salary_slip", + "color", + "column_break_17", + "letter_head", + "amended_from" + ], + "fields": [ + { + "fieldname": "naming_series", + "fieldtype": "Select", + "label": "Series", + "no_copy": 1, + "options": "HR-LAP-.YYYY.-", + "print_hide": 1, + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_global_search": 1, + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "in_global_search": 1, + "label": "Employee Name", + "read_only": 1 + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "fieldname": "leave_type", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "in_standard_filter": 1, + "label": "Leave Type", + "options": "Leave Type", + "reqd": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "leave_balance", + "fieldtype": "Float", + "label": "Leave Balance Before Application", + "no_copy": 1, + "read_only": 1 + }, + { + "fieldname": "section_break_5", + "fieldtype": "Section Break", + "label": "Dates & Reason" + }, + { + "fieldname": "from_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "From Date", + "reqd": 1, + "search_index": 1 + }, + { + "fieldname": "to_date", + "fieldtype": "Date", + "label": "To Date", + "reqd": 1, + "search_index": 1 + }, + { + "default": "0", + "fieldname": "half_day", + "fieldtype": "Check", + "label": "Half Day" + }, + { + "depends_on": "eval:doc.half_day && doc.from_date && doc.to_date && (doc.from_date != doc.to_date)", + "fieldname": "half_day_date", + "fieldtype": "Date", + "label": "Half Day Date" + }, + { + "fieldname": "total_leave_days", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Total Leave Days", + "no_copy": 1, + "precision": "1", + "read_only": 1 + }, + { + "fieldname": "column_break1", + "fieldtype": "Column Break", + "print_width": "50%", + "width": "50%" + }, + { + "fieldname": "description", + "fieldtype": "Small Text", + "label": "Reason" + }, + { + "fieldname": "section_break_7", + "fieldtype": "Section Break", + "label": "Approval" + }, + { + "fieldname": "leave_approver", + "fieldtype": "Link", + "label": "Leave Approver", + "options": "User" + }, + { + "fieldname": "leave_approver_name", + "fieldtype": "Data", + "label": "Leave Approver Name", + "read_only": 1 + }, + { + "fieldname": "column_break_18", + "fieldtype": "Column Break" + }, + { + "default": "Open", + "fieldname": "status", + "fieldtype": "Select", + "in_standard_filter": 1, + "label": "Status", + "no_copy": 1, + "options": "Open\nApproved\nRejected\nCancelled", + "permlevel": 1, + "reqd": 1 + }, + { + "default": "Today", + "fieldname": "posting_date", + "fieldtype": "Date", + "label": "Posting Date", + "no_copy": 1, + "reqd": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "read_only": 1, + "remember_last_selected_value": 1, + "reqd": 1 + }, + { + "allow_on_submit": 1, + "default": "1", + "fieldname": "follow_via_email", + "fieldtype": "Check", + "label": "Follow via Email", + "print_hide": 1 + }, + { + "fieldname": "column_break_17", + "fieldtype": "Column Break" + }, + { + "fieldname": "salary_slip", + "fieldtype": "Link", + "label": "Salary Slip", + "options": "Salary Slip", + "print_hide": 1 + }, + { + "allow_on_submit": 1, + "fieldname": "letter_head", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "label": "Letter Head", + "options": "Letter Head", + "print_hide": 1 + }, + { + "allow_on_submit": 1, + "fieldname": "color", + "fieldtype": "Color", + "label": "Color", + "print_hide": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "label": "Amended From", + "no_copy": 1, + "options": "Leave Application", + "print_hide": 1, + "read_only": 1 + }, + { + "collapsible": 1, + "fieldname": "sb_other_details", + "fieldtype": "Section Break", + "label": "Other Details" + } + ], + "icon": "fa fa-calendar", + "idx": 1, + "is_submittable": 1, + "links": [], + "max_attachments": 3, + "modified": "2026-01-27 12:02:51.679025", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Application", + "naming_rule": "By \"Naming Series\" field", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "permlevel": 1, + "read": 1, + "role": "All" + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Leave Approver", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "permlevel": 1, + "read": 1, + "report": 1, + "role": "Leave Approver", + "write": 1 + }, + { + "permlevel": 1, + "read": 1, + "report": 1, + "role": "HR User", + "write": 1 + }, + { + "email": 1, + "export": 1, + "permlevel": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "search_fields": "employee,employee_name,leave_type,from_date,to_date,total_leave_days", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "timeline_field": "employee", + "title_field": "employee_name" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application.py new file mode 100755 index 000000000..3560660ea --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application.py @@ -0,0 +1,1490 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import datetime + +import frappe +from frappe import _ +from frappe.model.workflow import get_workflow_name +from frappe.query_builder.functions import Max, Min, Sum +from frappe.utils import ( + add_days, + cint, + cstr, + date_diff, + flt, + formatdate, + get_fullname, + get_link_to_form, + getdate, + nowdate, +) + +from erpnext.buying.doctype.supplier_scorecard.supplier_scorecard import daterange +from erpnext.setup.doctype.employee.employee import get_holiday_list_for_employee + +import hrms +from hrms.api import get_current_employee_info +from hrms.hr.doctype.leave_block_list.leave_block_list import get_applicable_block_dates +from hrms.hr.doctype.leave_ledger_entry.leave_ledger_entry import create_leave_ledger_entry +from hrms.hr.utils import ( + get_holiday_dates_for_employee, + get_leave_period, + set_employee_name, + share_doc_with_approver, + validate_active_employee, +) +from hrms.mixins.pwa_notifications import PWANotificationsMixin +from hrms.utils import get_employee_email +from hrms.utils.holiday_list import get_holiday_dates_between_range + + +class LeaveDayBlockedError(frappe.ValidationError): + pass + + +class OverlapError(frappe.ValidationError): + pass + + +class AttendanceAlreadyMarkedError(frappe.ValidationError): + pass + + +class NotAnOptionalHoliday(frappe.ValidationError): + pass + + +class InsufficientLeaveBalanceError(frappe.ValidationError): + pass + + +class LeaveAcrossAllocationsError(frappe.ValidationError): + pass + + +from frappe.model.document import Document + + +class LeaveApplication(Document, PWANotificationsMixin): + def get_feed(self): + return _("{0}: From {0} of type {1}").format(self.employee_name, self.leave_type) + + def after_insert(self): + self.notify_approver() + + def validate(self): + validate_active_employee(self.employee) + set_employee_name(self) + self.validate_dates() + self.validate_balance_leaves() + self.validate_leave_overlap() + self.validate_max_days() + self.show_block_day_warning() + self.validate_block_days() + self.validate_salary_processed_days() + self.validate_attendance() + self.set_half_day_date() + if frappe.db.get_value("Leave Type", self.leave_type, "is_optional_leave"): + self.validate_optional_leave() + self.validate_applicable_after() + + def on_update(self): + if self.status == "Open" and self.docstatus < 1: + # notify leave approver about creation + if frappe.db.get_single_value("HR Settings", "send_leave_notification"): + self.notify_leave_approver() + + share_doc_with_approver(self, self.leave_approver) + self.publish_update() + self.notify_approval_status() + + def on_submit(self): + if self.status in ["Open", "Cancelled"]: + frappe.throw(_("Only Leave Applications with status 'Approved' and 'Rejected' can be submitted")) + + self.validate_back_dated_application() + self.update_attendance() + self.validate_for_self_approval() + + # notify leave applier about approval + if frappe.db.get_single_value("HR Settings", "send_leave_notification"): + self.notify_employee() + + self.create_leave_ledger_entry() + # create a reverse ledger entry for backdated leave applications for whom expiry entry already exists + leave_allocation = self.get_leave_allocation() + if not leave_allocation: + return + to_date = leave_allocation.get("to_date") + can_expire = not frappe.db.get_value("Leave Type", self.leave_type, "is_carry_forward") + + if to_date < getdate() and can_expire: + args = frappe._dict( + leaves=self.total_leave_days, from_date=to_date, to_date=to_date, is_carry_forward=0 + ) + create_leave_ledger_entry(self, args) + + self.reload() + + def before_cancel(self): + self.status = "Cancelled" + + def on_discard(self): + self.db_set("status", "Cancelled") + + def on_cancel(self): + self.create_leave_ledger_entry(submit=False) + # notify leave applier about cancellation + if frappe.db.get_single_value("HR Settings", "send_leave_notification"): + self.notify_employee() + self.cancel_attendance() + + self.publish_update() + + def after_delete(self): + self.publish_update() + + def publish_update(self): + employee_user = frappe.db.get_value("Employee", self.employee, "user_id", cache=True) + hrms.refetch_resource("hrms:my_leaves", employee_user) + hrms.refetch_resource("hrms:team_leaves") + + def validate_applicable_after(self): + if self.leave_type: + leave_type = frappe.get_doc("Leave Type", self.leave_type) + if leave_type.applicable_after > 0: + date_of_joining = frappe.db.get_value("Employee", self.employee, "date_of_joining") + leave_days = get_approved_leaves_for_period( + self.employee, False, date_of_joining, self.from_date + ) + number_of_days = date_diff(getdate(self.from_date), date_of_joining) + if number_of_days >= 0: + holidays = 0 + if not frappe.db.get_value("Leave Type", self.leave_type, "include_holiday"): + holidays = get_holidays(self.employee, date_of_joining, self.from_date) + number_of_days = number_of_days - leave_days - holidays + if number_of_days < leave_type.applicable_after: + frappe.throw( + _("{0} applicable after {1} working days").format( + self.leave_type, leave_type.applicable_after + ) + ) + + def validate_dates(self): + if frappe.db.get_single_value("HR Settings", "restrict_backdated_leave_application"): + if self.from_date and getdate(self.from_date) < getdate(): + allowed_role = frappe.db.get_single_value( + "HR Settings", "role_allowed_to_create_backdated_leave_application" + ) + user = frappe.get_doc("User", frappe.session.user) + user_roles = [d.role for d in user.roles] + if not allowed_role: + frappe.throw( + _("Backdated Leave Application is restricted. Please set the {} in {}").format( + frappe.bold(_("Role Allowed to Create Backdated Leave Application")), + get_link_to_form("HR Settings", "HR Settings", _("HR Settings")), + ) + ) + + if allowed_role and allowed_role not in user_roles: + frappe.throw( + _("Only users with the {0} role can create backdated leave applications").format( + _(allowed_role) + ) + ) + + if self.from_date and self.to_date and (getdate(self.to_date) < getdate(self.from_date)): + frappe.throw(_("To date cannot be before from date")) + + if ( + self.half_day + and self.half_day_date + and ( + getdate(self.half_day_date) < getdate(self.from_date) + or getdate(self.half_day_date) > getdate(self.to_date) + ) + ): + frappe.throw(_("Half Day Date should be between From Date and To Date")) + + if not is_lwp(self.leave_type): + self.validate_dates_across_allocation() + self.validate_back_dated_application() + + def validate_dates_across_allocation(self): + if frappe.db.get_value("Leave Type", self.leave_type, "allow_negative"): + return + + alloc_on_from_date, alloc_on_to_date = self.get_allocation_based_on_application_dates() + + if not (alloc_on_from_date or alloc_on_to_date): + frappe.throw(_("Application period cannot be outside leave allocation period")) + elif self.is_separate_ledger_entry_required(alloc_on_from_date, alloc_on_to_date): + frappe.throw( + _("Application period cannot be across two allocation records"), + exc=LeaveAcrossAllocationsError, + ) + + def get_allocation_based_on_application_dates(self) -> tuple[dict, dict]: + """Returns allocation name, from and to dates for application dates""" + + def _get_leave_allocation_record(date): + LeaveAllocation = frappe.qb.DocType("Leave Allocation") + allocation = ( + frappe.qb.from_(LeaveAllocation) + .select(LeaveAllocation.name, LeaveAllocation.from_date, LeaveAllocation.to_date) + .where( + (LeaveAllocation.employee == self.employee) + & (LeaveAllocation.leave_type == self.leave_type) + & (LeaveAllocation.docstatus == 1) + & ((date >= LeaveAllocation.from_date) & (date <= LeaveAllocation.to_date)) + ) + ).run(as_dict=True) + + return allocation and allocation[0] + + allocation_based_on_from_date = _get_leave_allocation_record(self.from_date) + allocation_based_on_to_date = _get_leave_allocation_record(self.to_date) + + return allocation_based_on_from_date, allocation_based_on_to_date + + def validate_back_dated_application(self): + future_allocation = frappe.db.sql( + """select name, from_date from `tabLeave Allocation` + where employee=%s and leave_type=%s and docstatus=1 and from_date > %s + and carry_forward=1""", + (self.employee, self.leave_type, self.to_date), + as_dict=1, + ) + + if future_allocation: + frappe.throw( + _( + "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" + ).format(formatdate(future_allocation[0].from_date), future_allocation[0].name) + ) + + def get_leave_allocation(self): + date = self.posting_date or getdate() + LeaveAllocation = frappe.qb.DocType("Leave Allocation") + leave_allocation = ( + frappe.qb.from_(LeaveAllocation) + .select(LeaveAllocation.to_date) + .where( + ((LeaveAllocation.from_date <= date) & (date <= LeaveAllocation.to_date)) + & (LeaveAllocation.docstatus == 1) + & (LeaveAllocation.leave_type == self.leave_type) + & (LeaveAllocation.employee == self.employee) + ) + ).run(as_dict=True) + + return leave_allocation[0] if leave_allocation else None + + def update_attendance(self): + if self.status != "Approved": + return + + holiday_dates = [] + if not frappe.db.get_value("Leave Type", self.leave_type, "include_holiday"): + holiday_dates = get_holiday_dates_for_employee(self.employee, self.from_date, self.to_date) + + for dt in daterange(getdate(self.from_date), getdate(self.to_date)): + date = dt.strftime("%Y-%m-%d") + # check for existing attenadnce absent or if half day with half day status absent, + attendance_name = frappe.db.exists( + "Attendance", + dict( + employee=self.employee, + attendance_date=date, + docstatus=("!=", 2), + ), + ) + # don't mark attendance for holidays + # if leave type does not include holidays within leaves as leaves + if date in holiday_dates: + if attendance_name: + # cancel and delete existing attendance for holidays + attendance = frappe.get_doc("Attendance", attendance_name) + attendance.flags.ignore_permissions = True + if attendance.docstatus == 1: + attendance.cancel() + frappe.delete_doc("Attendance", attendance_name, force=1) + continue + + self.create_or_update_attendance(attendance_name, date) + + def create_or_update_attendance(self, attendance_name, date): + status = ( + "Half Day" if self.half_day_date and getdate(date) == getdate(self.half_day_date) else "On Leave" + ) + + if attendance_name: + # update existing attendance, change absent to on leave or half day + doc = frappe.get_doc("Attendance", attendance_name) + half_day_status = None if status == "On Leave" else "Present" + modify_half_day_status = 1 if doc.status == "Absent" and status == "Half Day" else 0 + doc.db_set( + { + "status": status, + "leave_type": self.leave_type, + "leave_application": self.name, + "half_day_status": half_day_status, + "modify_half_day_status": modify_half_day_status, + } + ) + else: + # make new attendance and submit it + doc = frappe.new_doc("Attendance") + doc.employee = self.employee + doc.employee_name = self.employee_name + doc.attendance_date = date + doc.company = self.company + doc.leave_type = self.leave_type + doc.leave_application = self.name + doc.status = status + doc.half_day_status = "Present" if status == "Half Day" else None + doc.modify_half_day_status = 1 if status == "Half Day" else 0 + doc.flags.ignore_validate = True # ignores check leave record validation in attendance + doc.insert(ignore_permissions=True) + doc.submit() + + def cancel_attendance(self): + if self.docstatus == 2: + attendance = frappe.db.sql( + """select name from `tabAttendance` where employee = %s\ + and (attendance_date between %s and %s) and docstatus < 2 and status in ('On Leave', 'Half Day')""", + (self.employee, self.from_date, self.to_date), + as_dict=1, + ) + for name in attendance: + frappe.db.set_value("Attendance", name, "docstatus", 2) + + def validate_salary_processed_days(self): + if not frappe.db.get_value("Leave Type", self.leave_type, "is_lwp"): + return + + last_processed_pay_slip = frappe.db.sql( + """ + select start_date, end_date from `tabSalary Slip` + where docstatus = 1 and employee = %s + and ((%s between start_date and end_date) or (%s between start_date and end_date)) + order by creation desc limit 1 + """, + (self.employee, self.to_date, self.from_date), + ) + + if last_processed_pay_slip: + frappe.throw( + _( + "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." + ).format(formatdate(last_processed_pay_slip[0][0]), formatdate(last_processed_pay_slip[0][1])) + ) + + def show_block_day_warning(self): + block_dates = get_applicable_block_dates( + self.from_date, + self.to_date, + self.employee, + self.company, + all_lists=True, + leave_type=self.leave_type, + ) + + if block_dates: + frappe.msgprint(_("Warning: Leave application contains following block dates") + ":") + for d in block_dates: + frappe.msgprint(formatdate(d.block_date) + ": " + d.reason) + + def validate_block_days(self): + block_dates = get_applicable_block_dates( + self.from_date, self.to_date, self.employee, self.company, leave_type=self.leave_type + ) + + if block_dates and self.status == "Approved": + frappe.throw(_("You are not authorized to approve leaves on Block Dates"), LeaveDayBlockedError) + + def validate_balance_leaves(self): + precision = cint(frappe.db.get_single_value("System Settings", "float_precision")) or 2 + + if self.from_date and self.to_date: + self.total_leave_days = get_number_of_leave_days( + self.employee, + self.leave_type, + self.from_date, + self.to_date, + self.half_day, + self.half_day_date, + ) + + if self.total_leave_days <= 0: + frappe.throw( + _( + "The day(s) on which you are applying for leave are holidays. You need not apply for leave." + ) + ) + + if not is_lwp(self.leave_type): + leave_balance = get_leave_balance_on( + self.employee, + self.leave_type, + self.from_date, + self.to_date, + consider_all_leaves_in_the_allocation_period=True, + for_consumption=True, + ) + leave_balance_for_consumption = flt( + leave_balance.get("leave_balance_for_consumption"), precision + ) + if self.status != "Rejected" and ( + leave_balance_for_consumption < self.total_leave_days or not leave_balance_for_consumption + ): + self.show_insufficient_balance_message(leave_balance_for_consumption) + + def show_insufficient_balance_message(self, leave_balance_for_consumption: float) -> None: + alloc_on_from_date, alloc_on_to_date = self.get_allocation_based_on_application_dates() + + if frappe.db.get_value("Leave Type", self.leave_type, "allow_negative"): + if leave_balance_for_consumption != self.leave_balance: + msg = _("Warning: Insufficient leave balance for Leave Type {0} in this allocation.").format( + frappe.bold(self.leave_type) + ) + msg += "

    " + msg += _( + "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." + ) + else: + msg = _("Warning: Insufficient leave balance for Leave Type {0}.").format( + frappe.bold(self.leave_type) + ) + + frappe.msgprint(msg, title=_("Warning"), indicator="orange") + else: + frappe.throw( + _("Insufficient leave balance for Leave Type {0}").format(frappe.bold(self.leave_type)), + exc=InsufficientLeaveBalanceError, + title=_("Insufficient Balance"), + ) + + def validate_leave_overlap(self): + if not self.name: + # hack! if name is null, it could cause problems with != + self.name = "New Leave Application" + + for d in frappe.db.sql( + """ + select + name, leave_type, posting_date, from_date, to_date, total_leave_days, half_day_date + from `tabLeave Application` + where employee = %(employee)s and docstatus < 2 and status in ('Open', 'Approved') + and to_date >= %(from_date)s and from_date <= %(to_date)s + and name != %(name)s""", + { + "employee": self.employee, + "from_date": self.from_date, + "to_date": self.to_date, + "name": self.name, + }, + as_dict=1, + ): + if ( + cint(self.half_day) == 1 + and getdate(self.half_day_date) == getdate(d.half_day_date) + and ( + flt(self.total_leave_days) == 0.5 + or getdate(self.from_date) == getdate(d.to_date) + or getdate(self.to_date) == getdate(d.from_date) + ) + ): + total_leaves_on_half_day = self.get_total_leaves_on_half_day() + if total_leaves_on_half_day >= 1: + self.throw_overlap_error(d) + else: + self.throw_overlap_error(d) + + def throw_overlap_error(self, d): + form_link = get_link_to_form("Leave Application", d.name) + msg = _("Employee {0} has already applied for {1} between {2} and {3} : {4}").format( + self.employee, d["leave_type"], formatdate(d["from_date"]), formatdate(d["to_date"]), form_link + ) + frappe.throw(msg, OverlapError) + + def get_total_leaves_on_half_day(self): + leave_count_on_half_day_date = frappe.db.sql( + """select count(name) from `tabLeave Application` + where employee = %(employee)s + and docstatus < 2 + and status in ('Open', 'Approved') + and half_day = 1 + and half_day_date = %(half_day_date)s + and name != %(name)s""", + {"employee": self.employee, "half_day_date": self.half_day_date, "name": self.name}, + )[0][0] + + return leave_count_on_half_day_date * 0.5 + + def validate_max_days(self): + max_days = frappe.db.get_value("Leave Type", self.leave_type, "max_continuous_days_allowed") + if not max_days: + return + + details = self.get_consecutive_leave_details() + + if details.total_consecutive_leaves > cint(max_days): + msg = _("Leave of type {0} cannot be longer than {1}.").format( + get_link_to_form("Leave Type", self.leave_type), max_days + ) + if details.leave_applications: + msg += "

    " + _("Reference: {0}").format( + ", ".join( + get_link_to_form("Leave Application", name) for name in details.leave_applications + ) + ) + + frappe.throw(msg, title=_("Maximum Consecutive Leaves Exceeded")) + + def get_consecutive_leave_details(self) -> dict: + leave_applications = set() + + def _get_first_from_date(reference_date): + """gets `from_date` of first leave application from previous consecutive leave applications""" + prev_date = add_days(reference_date, -1) + application = frappe.db.get_value( + "Leave Application", + { + "employee": self.employee, + "leave_type": self.leave_type, + "to_date": prev_date, + "docstatus": ["!=", 2], + "status": ["in", ["Open", "Approved"]], + }, + ["name", "from_date"], + as_dict=True, + ) + if application: + leave_applications.add(application.name) + return _get_first_from_date(application.from_date) + return reference_date + + def _get_last_to_date(reference_date): + """gets `to_date` of last leave application from following consecutive leave applications""" + next_date = add_days(reference_date, 1) + application = frappe.db.get_value( + "Leave Application", + { + "employee": self.employee, + "leave_type": self.leave_type, + "from_date": next_date, + "docstatus": ["!=", 2], + "status": ["in", ["Open", "Approved"]], + }, + ["name", "to_date"], + as_dict=True, + ) + if application: + leave_applications.add(application.name) + return _get_last_to_date(application.to_date) + return reference_date + + first_from_date = _get_first_from_date(self.from_date) + last_to_date = _get_last_to_date(self.to_date) + + total_consecutive_leaves = get_number_of_leave_days( + self.employee, self.leave_type, first_from_date, last_to_date + ) + + return frappe._dict( + { + "total_consecutive_leaves": total_consecutive_leaves, + "leave_applications": leave_applications, + } + ) + + def validate_attendance(self): + attendance_dates = frappe.get_all( + "Attendance", + filters=[ + ["employee", "=", self.employee], + ["attendance_date", "between", [self.from_date, self.to_date]], + ["status", "in", ["Present", "Work From Home"]], + ["docstatus", "=", 1], + ["half_day_status", "!=", "Absent"], + ], + fields=["name", "attendance_date"], + order_by="attendance_date", + ) + if attendance_dates: + frappe.throw( + _("Attendance for employee {0} is already marked for the following dates: {1}").format( + self.employee, + ( + "
    • " + + "
    • ".join( + get_link_to_form("Attendance", a.name, label=formatdate(a.attendance_date)) + for a in attendance_dates + ) + + "
    " + ), + ), + AttendanceAlreadyMarkedError, + ) + + def validate_optional_leave(self): + leave_period = get_leave_period(self.from_date, self.to_date, self.company) + if not leave_period: + frappe.throw(_("Cannot find active Leave Period")) + optional_holiday_list = frappe.db.get_value( + "Leave Period", leave_period[0]["name"], "optional_holiday_list" + ) + if not optional_holiday_list: + frappe.throw( + _("Optional Holiday List not set for leave period {0}").format(leave_period[0]["name"]) + ) + day = getdate(self.from_date) + while day <= getdate(self.to_date): + if not frappe.db.exists( + {"doctype": "Holiday", "parent": optional_holiday_list, "holiday_date": day} + ): + frappe.throw( + _("{0} is not in Optional Holiday List").format(formatdate(day)), NotAnOptionalHoliday + ) + day = add_days(day, 1) + + def set_half_day_date(self): + if self.from_date == self.to_date and self.half_day == 1: + self.half_day_date = self.from_date + + if self.half_day == 0: + self.half_day_date = None + + def notify_employee(self): + employee_email = get_employee_email(self.employee) + + if not employee_email: + return + + parent_doc = frappe.get_doc("Leave Application", self.name) + args = parent_doc.as_dict() + + template = frappe.db.get_single_value("HR Settings", "leave_status_notification_template") + if not template: + frappe.msgprint(_("Please set default template for Leave Status Notification in HR Settings.")) + return + email_template = frappe.get_doc("Email Template", template) + subject = frappe.render_template(email_template.subject, args) + message = frappe.render_template(email_template.response_, args) + + self.notify( + { + # for post in messages + "message": message, + "message_to": employee_email, + # for email + "subject": subject, + "notify": "employee", + } + ) + + def notify_leave_approver(self): + if self.leave_approver: + parent_doc = frappe.get_doc("Leave Application", self.name) + args = parent_doc.as_dict() + + template = frappe.db.get_single_value("HR Settings", "leave_approval_notification_template") + if not template: + frappe.msgprint( + _("Please set default template for Leave Approval Notification in HR Settings.") + ) + return + email_template = frappe.get_doc("Email Template", template) + subject = frappe.render_template(email_template.subject, args) + message = frappe.render_template(email_template.response_, args) + + self.notify( + { + # for post in messages + "message": message, + "message_to": self.leave_approver, + # for email + "subject": subject, + } + ) + + def notify(self, args): + args = frappe._dict(args) + # args -> message, message_to, subject + if cint(self.follow_via_email): + contact = args.message_to + if not isinstance(contact, list): + if not args.notify == "employee": + contact = frappe.get_doc("User", contact).email or contact + + sender = dict() + sender["email"] = frappe.get_doc("User", frappe.session.user).email + sender["full_name"] = get_fullname(sender["email"]) + + try: + frappe.sendmail( + recipients=contact, + sender=sender["email"], + subject=args.subject, + message=args.message, + ) + frappe.msgprint(_("Email sent to {0}").format(contact)) + except frappe.OutgoingEmailError: + pass + + def create_leave_ledger_entry(self, submit=True): + if self.status != "Approved" and submit: + return + + expiry_date = get_allocation_expiry_for_cf_leaves( + self.employee, self.leave_type, self.to_date, self.from_date + ) + lwp = frappe.db.get_value("Leave Type", self.leave_type, "is_lwp") + + if expiry_date: + self.create_ledger_entry_for_intermediate_allocation_expiry(expiry_date, submit, lwp) + else: + alloc_on_from_date, alloc_on_to_date = self.get_allocation_based_on_application_dates() + if self.is_separate_ledger_entry_required(alloc_on_from_date, alloc_on_to_date): + # required only if negative balance is allowed for leave type + # else will be stopped in validation itself + self.create_separate_ledger_entries(alloc_on_from_date, alloc_on_to_date, submit, lwp) + else: + raise_exception = False if frappe.flags.in_patch else True + args = dict( + leaves=self.total_leave_days * -1, + from_date=self.from_date, + to_date=self.to_date, + is_lwp=lwp, + holiday_list=get_holiday_list_for_employee(self.employee, raise_exception=raise_exception) + or "", + ) + create_leave_ledger_entry(self, args, submit) + + def is_separate_ledger_entry_required( + self, alloc_on_from_date: dict | None = None, alloc_on_to_date: dict | None = None + ) -> bool: + """Checks if application dates fall in separate allocations""" + if ( + (alloc_on_from_date and not alloc_on_to_date) + or (not alloc_on_from_date and alloc_on_to_date) + or (alloc_on_from_date and alloc_on_to_date and alloc_on_from_date.name != alloc_on_to_date.name) + ): + return True + return False + + def create_separate_ledger_entries(self, alloc_on_from_date, alloc_on_to_date, submit, lwp): + """Creates separate ledger entries for application period falling into separate allocations""" + # for creating separate ledger entries existing allocation periods should be consecutive + if ( + submit + and alloc_on_from_date + and alloc_on_to_date + and add_days(alloc_on_from_date.to_date, 1) != alloc_on_to_date.from_date + ): + frappe.throw( + _( + "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." + ).format( + get_link_to_form("Leave Allocation", alloc_on_from_date.name), + get_link_to_form("Leave Allocation", alloc_on_to_date), + ) + ) + + raise_exception = False if frappe.flags.in_patch else True + + if alloc_on_from_date: + first_alloc_end = alloc_on_from_date.to_date + second_alloc_start = add_days(alloc_on_from_date.to_date, 1) + else: + first_alloc_end = add_days(alloc_on_to_date.from_date, -1) + second_alloc_start = alloc_on_to_date.from_date + + leaves_in_first_alloc = get_number_of_leave_days( + self.employee, + self.leave_type, + self.from_date, + first_alloc_end, + self.half_day, + self.half_day_date, + ) + leaves_in_second_alloc = get_number_of_leave_days( + self.employee, + self.leave_type, + second_alloc_start, + self.to_date, + self.half_day, + self.half_day_date, + ) + + args = dict( + is_lwp=lwp, + holiday_list=get_holiday_list_for_employee(self.employee, raise_exception=raise_exception) or "", + ) + + if leaves_in_first_alloc: + args.update( + dict(from_date=self.from_date, to_date=first_alloc_end, leaves=leaves_in_first_alloc * -1) + ) + create_leave_ledger_entry(self, args, submit) + + if leaves_in_second_alloc: + args.update( + dict(from_date=second_alloc_start, to_date=self.to_date, leaves=leaves_in_second_alloc * -1) + ) + create_leave_ledger_entry(self, args, submit) + + def create_ledger_entry_for_intermediate_allocation_expiry(self, expiry_date, submit, lwp): + """Splits leave application into two ledger entries to consider expiry of allocation""" + raise_exception = False if frappe.flags.in_patch else True + + leaves = get_number_of_leave_days( + self.employee, self.leave_type, self.from_date, expiry_date, self.half_day, self.half_day_date + ) + + if leaves: + args = dict( + from_date=self.from_date, + to_date=expiry_date, + leaves=leaves * -1, + is_lwp=lwp, + holiday_list=get_holiday_list_for_employee(self.employee, raise_exception=raise_exception) + or "", + ) + create_leave_ledger_entry(self, args, submit) + + if getdate(expiry_date) != getdate(self.to_date): + start_date = add_days(expiry_date, 1) + leaves = get_number_of_leave_days( + self.employee, self.leave_type, start_date, self.to_date, self.half_day, self.half_day_date + ) + + if leaves: + args.update(dict(from_date=start_date, to_date=self.to_date, leaves=leaves * -1)) + create_leave_ledger_entry(self, args, submit) + + def validate_for_self_approval(self): + self_leave_approval_not_allowed = frappe.db.get_single_value( + "HR Settings", "prevent_self_leave_approval" + ) + employee_user = frappe.db.get_value("Employee", self.employee, "user_id") + if ( + self_leave_approval_not_allowed + and employee_user == frappe.session.user + and not get_workflow_name("Leave Application") + ): + frappe.throw(_("Self-approval for leaves is not allowed")) + + def onload(self): + self.set_onload( + "self_leave_approval_not_allowed", + frappe.db.get_single_value("HR Settings", "prevent_self_leave_approval"), + ) + + +def get_allocation_expiry_for_cf_leaves( + employee: str, leave_type: str, to_date: datetime.date, from_date: datetime.date +) -> str: + """Returns expiry of carry forward allocation in leave ledger entry""" + Ledger = frappe.qb.DocType("Leave Ledger Entry") + expiry = ( + frappe.qb.from_(Ledger) + .select(Ledger.to_date) + .where( + (Ledger.employee == employee) + & (Ledger.leave_type == leave_type) + & (Ledger.is_carry_forward == 1) + & (Ledger.transaction_type == "Leave Allocation") + & (Ledger.to_date.between(from_date, to_date)) + & (Ledger.docstatus == 1) + ) + .limit(1) + ).run() + + return expiry[0][0] if expiry else "" + + +@frappe.whitelist() +def get_number_of_leave_days( + employee: str, + leave_type: str, + from_date: datetime.date, + to_date: datetime.date, + half_day: int | str | None = None, + half_day_date: datetime.date | str | None = None, + holiday_list: str | None = None, +) -> float: + """Returns number of leave days between 2 dates after considering half day and holidays + (Based on the include_holiday setting in Leave Type)""" + number_of_days = 0 + if cint(half_day) == 1: + if getdate(from_date) == getdate(to_date): + number_of_days = 0.5 + elif half_day_date and getdate(from_date) <= getdate(half_day_date) <= getdate(to_date): + number_of_days = date_diff(to_date, from_date) + 0.5 + else: + number_of_days = date_diff(to_date, from_date) + 1 + else: + number_of_days = date_diff(to_date, from_date) + 1 + + if not frappe.db.get_value("Leave Type", leave_type, "include_holiday"): + number_of_days = flt(number_of_days) - flt( + get_holidays(employee, from_date, to_date, holiday_list=holiday_list) + ) + return number_of_days + + +@frappe.whitelist() +def get_leave_details(employee, date, for_salary_slip=False): + allocation_records = get_leave_allocation_records(employee, date) + leave_allocation = {} + precision = cint(frappe.db.get_single_value("System Settings", "float_precision")) or 2 + + for d in allocation_records: + allocation = allocation_records.get(d, frappe._dict()) + to_date = date if for_salary_slip else allocation.to_date + remaining_leaves = get_leave_balance_on( + employee, + d, + date, + to_date=to_date, + consider_all_leaves_in_the_allocation_period=False if for_salary_slip else True, + ) + + leaves_taken = get_leaves_for_period(employee, d, allocation.from_date, to_date) * -1 + leaves_pending = get_leaves_pending_approval_for_period(employee, d, allocation.from_date, to_date) + expired_leaves = allocation.total_leaves_allocated - (remaining_leaves + leaves_taken) + + leave_allocation[d] = { + "total_leaves": flt(allocation.total_leaves_allocated, precision), + "expired_leaves": flt(expired_leaves, precision) if expired_leaves > 0 else 0, + "leaves_taken": flt(leaves_taken, precision), + "leaves_pending_approval": flt(leaves_pending, precision), + "remaining_leaves": flt(remaining_leaves, precision), + } + + # is used in set query + lwp = frappe.get_list("Leave Type", filters={"is_lwp": 1}, pluck="name") + + return { + "leave_allocation": leave_allocation, + "leave_approver": get_leave_approver(employee), + "lwps": lwp, + } + + +@frappe.whitelist() +def get_leave_balance_on( + employee: str, + leave_type: str, + date: datetime.date, + to_date: datetime.date | None = None, + consider_all_leaves_in_the_allocation_period: bool = False, + for_consumption: bool = False, +): + """ + Returns leave balance till date + :param employee: employee name + :param leave_type: leave type + :param date: date to check balance on + :param to_date: future date to check for allocation expiry + :param consider_all_leaves_in_the_allocation_period: consider all leaves taken till the allocation end date + :param for_consumption: flag to check if leave balance is required for consumption or display + eg: employee has leave balance = 10 but allocation is expiring in 1 day so employee can only consume 1 leave + in this case leave_balance = 10 but leave_balance_for_consumption = 1 + if True, returns a dict eg: {'leave_balance': 10, 'leave_balance_for_consumption': 1} + else, returns leave_balance (in this case 10) + """ + + if not to_date: + to_date = nowdate() + + allocation_records = get_leave_allocation_records(employee, date, leave_type) + allocation = allocation_records.get(leave_type, frappe._dict()) + end_date = ( + allocation.to_date if (allocation and cint(consider_all_leaves_in_the_allocation_period)) else date + ) + cf_expiry = get_allocation_expiry_for_cf_leaves(employee, leave_type, to_date, allocation.from_date) + + leaves_taken = get_leaves_for_period(employee, leave_type, allocation.from_date, end_date) + manually_expired_leaves = get_manually_expired_leaves( + employee, leave_type, allocation.from_date, end_date + ) + + remaining_leaves = get_remaining_leaves( + allocation, leaves_taken, date, cf_expiry, manually_expired_leaves + ) + + if for_consumption: + return remaining_leaves + else: + return remaining_leaves.get("leave_balance") + + +def get_leave_allocation_records(employee, date, leave_type=None): + """Returns the total allocated leaves and carry forwarded leaves based on ledger entries""" + Ledger = frappe.qb.DocType("Leave Ledger Entry") + LeaveAllocation = frappe.qb.DocType("Leave Allocation") + LeaveAdjustment = frappe.qb.DocType("Leave Adjustment") + + cf_leave_case = frappe.qb.terms.Case().when(Ledger.is_carry_forward == "1", Ledger.leaves).else_(0) + sum_cf_leaves = Sum(cf_leave_case).as_("cf_leaves") + + new_leaves_case = frappe.qb.terms.Case().when(Ledger.is_carry_forward == "0", Ledger.leaves).else_(0) + sum_new_leaves = Sum(new_leaves_case).as_("new_leaves") + + query = ( + frappe.qb.from_(Ledger) + .left_join(LeaveAllocation) + .on(Ledger.transaction_name == LeaveAllocation.name) + .left_join(LeaveAdjustment) + .on(Ledger.transaction_name == LeaveAdjustment.name) + .select( + sum_cf_leaves, + sum_new_leaves, + Min(Ledger.from_date).as_("from_date"), + Max(Ledger.to_date).as_("to_date"), + Ledger.leave_type, + Ledger.employee, + ) + .where( + (Ledger.from_date <= date) + & (Ledger.docstatus == 1) + & ( + (Ledger.transaction_type == "Leave Allocation") + | (Ledger.transaction_type == "Leave Adjustment") + ) + & (Ledger.employee == employee) + & (Ledger.is_expired == 0) + & (Ledger.is_lwp == 0) + & ( + # newly allocated leave's end date is same as the leave allocation's to date + ((Ledger.is_carry_forward == 0) & (Ledger.to_date >= date)) + # carry forwarded leave's end date won't be same as the leave allocation's to date + # it's between the leave allocation's from and to date + | ( + (Ledger.is_carry_forward == 1) + & ( + Ledger.to_date.between(LeaveAllocation.from_date, LeaveAllocation.to_date) + | (Ledger.to_date.between(LeaveAdjustment.from_date, LeaveAdjustment.to_date)) + ) + # only consider cf leaves from current allocation + & ((LeaveAllocation.from_date <= date) | (LeaveAdjustment.from_date <= date)) + & ((date <= LeaveAllocation.to_date) | (date <= LeaveAdjustment.to_date)) + ) + ) + ) + ) + + if leave_type: + query = query.where(Ledger.leave_type == leave_type) + query = query.groupby(Ledger.employee, Ledger.leave_type) + + allocation_details = query.run(as_dict=True) + allocated_leaves = frappe._dict() + for d in allocation_details: + allocated_leaves.setdefault( + d.leave_type, + frappe._dict( + { + "from_date": d.from_date, + "to_date": d.to_date, + "total_leaves_allocated": flt(d.cf_leaves) + flt(d.new_leaves), + "unused_leaves": d.cf_leaves, + "new_leaves_allocated": d.new_leaves, + "leave_type": d.leave_type, + "employee": d.employee, + } + ), + ) + return allocated_leaves + + +def get_leaves_pending_approval_for_period( + employee: str, leave_type: str, from_date: datetime.date, to_date: datetime.date +) -> float: + """Returns leaves that are pending for approval""" + leaves = frappe.get_all( + "Leave Application", + filters={"employee": employee, "leave_type": leave_type, "status": "Open"}, + or_filters={ + "from_date": ["between", (from_date, to_date)], + "to_date": ["between", (from_date, to_date)], + }, + fields=[{"SUM": "total_leave_days", "as": "leaves"}], + )[0] + return leaves["leaves"] if leaves["leaves"] else 0.0 + + +def get_remaining_leaves( + allocation: dict, leaves_taken: float, date: str, cf_expiry: str, manually_expired_leaves: float +) -> dict[str, float]: + """Returns a dict of leave_balance and leave_balance_for_consumption + leave_balance returns the available leave balance + leave_balance_for_consumption returns the minimum leaves remaining after comparing with remaining days for allocation expiry + """ + + def _get_remaining_leaves(remaining_leaves, end_date): + """Returns minimum leaves remaining after comparing with remaining days for allocation expiry""" + if remaining_leaves > 0: + remaining_days = date_diff(end_date, date) + 1 + remaining_leaves = min(remaining_days, remaining_leaves) + + return remaining_leaves + + if cf_expiry and allocation.unused_leaves: + # allocation contains both carry forwarded and new leaves + new_leaves_taken, cf_leaves_taken = get_new_and_cf_leaves_taken(allocation, cf_expiry) + + if getdate(date) > getdate(cf_expiry): + # carry forwarded leaves have expired + cf_leaves = remaining_cf_leaves = 0 + else: + cf_leaves = flt(allocation.unused_leaves) + flt(cf_leaves_taken) + remaining_cf_leaves = _get_remaining_leaves(cf_leaves, cf_expiry) + + # new leaves allocated - new leaves taken + cf leave balance + # Note: `new_leaves_taken` is added here because its already a -ve number in the ledger + leave_balance = ( + (flt(allocation.new_leaves_allocated) + flt(new_leaves_taken)) + + flt(cf_leaves) + + flt(manually_expired_leaves) + ) + leave_balance_for_consumption = ( + (flt(allocation.new_leaves_allocated) + flt(new_leaves_taken)) + + flt(remaining_cf_leaves) + + flt(manually_expired_leaves) + ) + else: + # allocation only contains newly allocated leaves + leave_balance = leave_balance_for_consumption = ( + flt(allocation.total_leaves_allocated) + flt(leaves_taken) + flt(manually_expired_leaves) + ) + + remaining_leaves = _get_remaining_leaves(leave_balance_for_consumption, allocation.to_date) + return frappe._dict(leave_balance=leave_balance, leave_balance_for_consumption=remaining_leaves) + + +def get_manually_expired_leaves( + employee: str, leave_type: str, from_date: datetime.date, end_date: datetime.date +): + ledger = frappe.qb.DocType("Leave Ledger Entry") + + leaves = ( + frappe.qb.from_(ledger) + .select(ledger.leaves) + .where( + (ledger.docstatus == 1) + & (ledger.employee == employee) + & (ledger.leave_type == leave_type) + & (ledger.from_date >= from_date) + & (ledger.to_date < end_date) + & (ledger.transaction_type == "Leave Allocation") + & ((ledger.is_expired == 1) & (ledger.is_carry_forward == 0)) + ) + ).run() + return leaves[0][0] if leaves else 0.0 + + +def get_new_and_cf_leaves_taken(allocation: dict, cf_expiry: str) -> tuple[float, float]: + """returns new leaves taken and carry forwarded leaves taken within an allocation period based on cf leave expiry""" + cf_leaves_taken = get_leaves_for_period( + allocation.employee, allocation.leave_type, allocation.from_date, cf_expiry + ) + new_leaves_taken = get_leaves_for_period( + allocation.employee, allocation.leave_type, add_days(cf_expiry, 1), allocation.to_date + ) + + # using abs because leaves taken is a -ve number in the ledger + if abs(cf_leaves_taken) > allocation.unused_leaves: + # adjust the excess leaves in new_leaves_taken + new_leaves_taken += -(abs(cf_leaves_taken) - allocation.unused_leaves) + cf_leaves_taken = -allocation.unused_leaves + + return new_leaves_taken, cf_leaves_taken + + +def get_leaves_for_period( + employee: str, + leave_type: str, + from_date: datetime.date, + to_date: datetime.date, + skip_expired_leaves: bool = True, +) -> float: + leave_entries = get_leave_entries(employee, leave_type, from_date, to_date) + leave_days = 0 + + for leave_entry in leave_entries: + inclusive_period = leave_entry.from_date >= getdate(from_date) and leave_entry.to_date <= getdate( + to_date + ) + + if inclusive_period and leave_entry.transaction_type == "Leave Encashment": + leave_days += leave_entry.leaves + + elif ( + inclusive_period + and leave_entry.transaction_type == "Leave Allocation" + and leave_entry.is_expired + and not skip_expired_leaves + ): + leave_days += leave_entry.leaves + + elif leave_entry.transaction_type == "Leave Application": + if leave_entry.from_date < getdate(from_date): + leave_entry.from_date = from_date + if leave_entry.to_date > getdate(to_date): + leave_entry.to_date = to_date + + half_day = 0 + half_day_date = None + # fetch half day date for leaves with half days + if leave_entry.leaves % 1: + half_day = 1 + half_day_date = frappe.db.get_value( + "Leave Application", leave_entry.transaction_name, "half_day_date" + ) + + leave_days += ( + get_number_of_leave_days( + employee, + leave_type, + leave_entry.from_date, + leave_entry.to_date, + half_day, + half_day_date, + holiday_list=leave_entry.holiday_list, + ) + * -1 + ) + + return leave_days + + +def get_leave_entries(employee, leave_type, from_date, to_date): + """Returns leave entries between from_date and to_date.""" + return frappe.db.sql( + """ + SELECT + employee, leave_type, from_date, to_date, leaves, transaction_name, transaction_type, holiday_list, + is_carry_forward, is_expired + FROM `tabLeave Ledger Entry` + WHERE employee=%(employee)s AND leave_type=%(leave_type)s + AND docstatus=1 + AND (leaves<0 + OR is_expired=1) + AND (from_date between %(from_date)s AND %(to_date)s + OR to_date between %(from_date)s AND %(to_date)s + OR (from_date < %(from_date)s AND to_date > %(to_date)s)) + """, + {"from_date": from_date, "to_date": to_date, "employee": employee, "leave_type": leave_type}, + as_dict=1, + ) + + +@frappe.whitelist() +def get_holidays(employee, from_date, to_date, holiday_list=None): + """get holidays between two dates for the given employee""" + holidays = get_holiday_dates_between_range(employee, from_date, to_date) + return len(holidays) + + +def is_lwp(leave_type): + lwp = frappe.db.sql("select is_lwp from `tabLeave Type` where name = %s", leave_type) + return lwp and cint(lwp[0][0]) or 0 + + +@frappe.whitelist() +def get_events(start, end, filters=None): + import json + + filters = json.loads(filters) + for idx, filter in enumerate(filters): + # taking relevant fields from the list [doctype, fieldname, condition, value, hidden] + filters[idx] = filter[1:-1] + + events = [] + + employee = frappe.db.get_value( + "Employee", filters={"user_id": frappe.session.user}, fieldname=["name", "company"], as_dict=True + ) + + if employee: + employee, company = employee.name, employee.company + else: + employee = "" + company = frappe.db.get_single_value("Global Defaults", "default_company") + + # show department leaves for employee + if "Employee" in frappe.get_roles(): + add_department_leaves(events, start, end, employee, company) + + add_leaves(events, start, end, filters) + add_block_dates(events, start, end, employee, company) + add_holidays(events, start, end, employee, company) + + return events + + +def add_department_leaves(events, start, end, employee, company): + if department := frappe.db.get_value("Employee", employee, "department"): + department_employees = frappe.get_list( + "Employee", filters={"department": department, "company": company}, pluck="name" + ) + filters = [["employee", "in", department_employees]] + add_leaves(events, start, end, filters=filters) + + +def add_leaves(events, start, end, filters=None): + if not filters: + filters = [] + filters.extend( + [ + ["from_date", "<=", getdate(end)], + ["to_date", ">=", getdate(start)], + ["status", "in", ["Approved", "Open"]], + ["docstatus", "<", 2], + ] + ) + + fields = [ + "name", + "from_date", + "to_date", + "color", + "docstatus", + "employee_name", + "leave_type", + ] + + show_leaves_of_all_members = frappe.db.get_single_value( + "HR Settings", "show_leaves_of_all_department_members_in_calendar" + ) + if cint(show_leaves_of_all_members): + leave_applications = frappe.get_all("Leave Application", filters=filters, fields=fields) + else: + leave_applications = frappe.get_list("Leave Application", filters=filters, fields=fields) + for d in leave_applications: + d["title"] = f"{d['employee_name']} ({d['leave_type']})" + d["allDay"] = 1 + d["doctype"] = "Leave Application" + del d["employee_name"] + del d["leave_type"] + if d not in events: + events.append(d) + + +def add_block_dates(events, start, end, employee, company): + cnt = 0 + block_dates = get_applicable_block_dates(start, end, employee, company, all_lists=True) + + for block_date in block_dates: + events.append( + { + "doctype": "Leave Block List Date", + "from_date": block_date.block_date, + "to_date": block_date.block_date, + "title": _("Leave Blocked") + ": " + block_date.reason, + "name": "_" + str(cnt), + "allDay": 1, + } + ) + cnt += 1 + + +def add_holidays(events, start, end, employee, company): + applicable_holiday_list = get_holiday_list_for_employee(employee, company) + if not applicable_holiday_list: + return + + for holiday in frappe.db.sql( + """select name, holiday_date, description + from `tabHoliday` where parent=%s and holiday_date between %s and %s""", + (applicable_holiday_list, start, end), + as_dict=True, + ): + events.append( + { + "doctype": "Holiday", + "from_date": holiday.holiday_date, + "to_date": holiday.holiday_date, + "title": _("Holiday") + ": " + cstr(holiday.description), + "name": holiday.name, + "allDay": 1, + } + ) + + +@frappe.whitelist() +def get_mandatory_approval(doctype): + mandatory = "" + if doctype == "Leave Application": + mandatory = frappe.db.get_single_value("HR Settings", "leave_approver_mandatory_in_leave_application") + else: + mandatory = frappe.db.get_single_value("HR Settings", "expense_approver_mandatory_in_expense_claim") + + return mandatory + + +def get_approved_leaves_for_period(employee, leave_type, from_date, to_date): + LeaveApplication = frappe.qb.DocType("Leave Application") + query = ( + frappe.qb.from_(LeaveApplication) + .select( + LeaveApplication.employee, + LeaveApplication.leave_type, + LeaveApplication.from_date, + LeaveApplication.to_date, + LeaveApplication.total_leave_days, + ) + .where( + (LeaveApplication.employee == employee) + & (LeaveApplication.docstatus == 1) + & (LeaveApplication.status == "Approved") + & ( + (LeaveApplication.from_date.between(from_date, to_date)) + | (LeaveApplication.to_date.between(from_date, to_date)) + | ((LeaveApplication.from_date < from_date) & (LeaveApplication.to_date > to_date)) + ) + ) + ) + + if leave_type: + query = query.where(LeaveApplication.leave_type == leave_type) + + leave_applications = query.run(as_dict=True) + + leave_days = 0 + for leave_app in leave_applications: + if leave_app.from_date >= getdate(from_date) and leave_app.to_date <= getdate(to_date): + leave_days += leave_app.total_leave_days + else: + if leave_app.from_date < getdate(from_date): + leave_app.from_date = from_date + if leave_app.to_date > getdate(to_date): + leave_app.to_date = to_date + + leave_days += get_number_of_leave_days( + employee, leave_type, leave_app.from_date, leave_app.to_date + ) + + return leave_days + + +@frappe.whitelist() +def get_leave_approver(employee): + leave_approver, department = frappe.db.get_value("Employee", employee, ["leave_approver", "department"]) + + if not leave_approver and department: + leave_approver = frappe.db.get_value( + "Department Approver", + {"parent": department, "parentfield": "leave_approvers", "idx": 1}, + "approver", + ) + + return leave_approver + + +def on_doctype_update(): + frappe.db.add_index("Leave Application", ["employee", "from_date", "to_date"]) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_calendar.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_calendar.js new file mode 100644 index 000000000..6fc85da2e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_calendar.js @@ -0,0 +1,21 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.views.calendar["Leave Application"] = { + field_map: { + start: "from_date", + end: "to_date", + id: "name", + title: "title", + docstatus: 1, + color: "color", + }, + options: { + header: { + left: "prev,next today", + center: "title", + right: "month", + }, + }, + get_events_method: "hrms.hr.doctype.leave_application.leave_application.get_events", +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_dashboard.html b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_dashboard.html new file mode 100644 index 000000000..6b3961cee --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_dashboard.html @@ -0,0 +1,30 @@ + +{% if not jQuery.isEmptyObject(data) %} + + + + + + + + + + + + + {% for(const [key, value] of Object.entries(data)) { %} + {% let color = cint(value["remaining_leaves"]) > 0 ? "green" : "red" %} + + + + + + + + + {% } %} + +
    {{ __("Leave Type") }}{{ __("Total Allocated Leaves") }}{{ __("Expired Leaves") }}{{ __("Used Leaves") }}{{ __("Leaves Pending Approval") }}{{ __("Available Leaves") }}
    {%= key %} {%= value["total_leaves"] %} {%= value["expired_leaves"] %} {%= value["leaves_taken"] %} {%= value["leaves_pending_approval"] %} {%= value["remaining_leaves"] %}
    +{% else %} +

    {{ __("No leaves have been allocated.") }}

    +{% endif %} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_dashboard.py new file mode 100644 index 000000000..ee5cbe99f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_dashboard.py @@ -0,0 +1,9 @@ +from frappe import _ + + +def get_data(): + return { + "fieldname": "leave_application", + "transactions": [{"items": ["Attendance"]}], + "reports": [{"label": _("Reports"), "items": ["Employee Leave Balance"]}], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_email_template.html b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_email_template.html new file mode 100644 index 000000000..dae9084f7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_email_template.html @@ -0,0 +1,30 @@ +

    Leave Application Notification

    +

    Details:

    + + + + + + + + + + + + + + + + + + + + + + +
    Employee{{employee_name}}
    Leave Type{{leave_type}}
    From Date{{from_date}}
    To Date{{to_date}}
    Status{{status}}
    + + {% set doc_link = frappe.utils.get_url_to_form('Leave Application', name) %} + +

    + {{ _('Open Now') }} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_list.js new file mode 100644 index 000000000..983a05fef --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/leave_application_list.js @@ -0,0 +1,24 @@ +frappe.listview_settings["Leave Application"] = { + add_fields: [ + "leave_type", + "employee", + "employee_name", + "total_leave_days", + "from_date", + "to_date", + ], + has_indicator_for_draft: 1, + get_indicator: function (doc) { + const status_color = { + Approved: "green", + Rejected: "red", + Open: "orange", + Draft: "red", + Cancelled: "red", + Submitted: "blue", + }; + const status = + !doc.docstatus && ["Approved", "Rejected"].includes(doc.status) ? "Draft" : doc.status; + return [__(status), status_color[status], "status,=," + doc.status]; + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/test_leave_application.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/test_leave_application.py new file mode 100644 index 000000000..95830dbef --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/test_leave_application.py @@ -0,0 +1,1594 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe +from frappe.permissions import clear_user_permissions_for_doctype +from frappe.utils import ( + add_days, + add_months, + get_first_day, + get_last_day, + get_year_ending, + get_year_start, + getdate, + nowdate, +) + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.attendance.attendance import mark_attendance +from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import ( + assign_holiday_list, + create_holiday_list_assignment, +) +from hrms.hr.doctype.leave_allocation.test_leave_allocation import create_leave_allocation +from hrms.hr.doctype.leave_application.leave_application import ( + InsufficientLeaveBalanceError, + LeaveAcrossAllocationsError, + LeaveDayBlockedError, + NotAnOptionalHoliday, + OverlapError, + get_leave_allocation_records, + get_leave_balance_on, + get_leave_details, + get_new_and_cf_leaves_taken, +) +from hrms.hr.doctype.leave_ledger_entry.leave_ledger_entry import expire_allocation +from hrms.hr.doctype.leave_policy_assignment.leave_policy_assignment import ( + create_assignment_for_multiple_employees, +) +from hrms.hr.doctype.leave_type.test_leave_type import create_leave_type +from hrms.payroll.doctype.salary_slip.test_salary_slip import ( + make_holiday_list, + make_leave_application, +) +from hrms.tests.test_utils import add_date_to_holiday_list, get_first_sunday +from hrms.tests.utils import HRMSTestSuite + +test_dependencies = ["Leave Block List"] + + +class TestLeaveApplication(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + cls.make_leave_types() + cls.make_leave_allocations() + cls.make_leave_applications() + + @classmethod + def make_leave_applications(cls): + records = [ + { + "company": "_Test Company", + "doctype": "Leave Application", + "employee": "_T-Employee-00001", + "from_date": "2013-05-01", + "description": "_Test Reason", + "leave_type": "_Test Leave Type", + "posting_date": "2013-01-02", + "to_date": "2013-05-05", + }, + { + "company": "_Test Company", + "doctype": "Leave Application", + "employee": "_T-Employee-00002", + "from_date": "2013-05-01", + "description": "_Test Reason", + "leave_type": "_Test Leave Type", + "posting_date": "2013-01-02", + "to_date": "2013-05-05", + }, + { + "company": "_Test Company", + "doctype": "Leave Application", + "employee": "_T-Employee-00001", + "from_date": "2013-01-15", + "description": "_Test Reason", + "leave_type": "_Test Leave Type LWP", + "posting_date": "2013-01-02", + "to_date": "2013-01-15", + }, + ] + cls.leave_applications = [] + for x in records: + if not frappe.db.exists( + "Leave Application", {"employee": x.get("employee"), "from_date": x.get("from_date")} + ): + cls.leave_applications.append(frappe.get_doc(x).insert()) + else: + cls.leave_applications.append( + frappe.get_doc( + "Leave Application", {"employee": x.get("employee"), "from_date": x.get("from_date")} + ) + ) + + def setUp(self): + for dt in [ + "Leave Application", + "Leave Allocation", + "Salary Slip", + "Leave Ledger Entry", + "Leave Period", + "Leave Policy Assignment", + ]: + frappe.db.delete(dt) + + frappe.set_user("Administrator") + + employee = get_employee() + frappe.db.delete("Attendance", {"employee": employee.name}) + frappe.db.set_value("Employee", employee.name, "holiday_list", "") + + from_date = get_year_start(getdate()) + to_date = get_year_ending(getdate()) + self.holiday_list = make_holiday_list(from_date=from_date, to_date=to_date) + # list_without_weekly_offs + make_holiday_list( + "Holiday List w/o Weekly Offs", from_date=from_date, to_date=to_date, add_weekly_offs=False + ) + + if not frappe.db.exists("Leave Type", "_Test Leave Type"): + frappe.get_doc( + dict(leave_type_name="_Test Leave Type", doctype="Leave Type", include_holiday=True) + ).insert() + + def tearDown(self): + frappe.set_user("Administrator") + + def _clear_roles(self): + frappe.db.sql( + """delete from `tabHas Role` where parent in + ('test@example.com', 'test1@example.com', 'test2@example.com')""" + ) + + def _clear_applications(self): + frappe.db.sql("""delete from `tabLeave Application`""") + + def get_application(self, doc): + application = frappe.copy_doc(doc) + application.from_date = "2013-01-01" + application.to_date = "2013-01-05" + return application + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_validate_application_across_allocations(self): + # Test validation for application dates when negative balance is disabled + frappe.delete_doc_if_exists("Leave Type", "Test Leave Validation", force=1) + leave_type = frappe.get_doc( + dict(leave_type_name="Test Leave Validation", doctype="Leave Type", allow_negative=False) + ).insert() + + employee = get_employee() + date = getdate() + first_sunday = get_first_sunday(self.holiday_list, for_date=get_year_start(date)) + + leave_application = frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + leave_type=leave_type.name, + from_date=add_days(first_sunday, 1), + to_date=add_days(first_sunday, 4), + company="_Test Company", + status="Approved", + leave_approver="test@example.com", + ) + ) + # Application period cannot be outside leave allocation period + self.assertRaises(frappe.ValidationError, leave_application.insert) + + make_allocation_record( + leave_type=leave_type.name, from_date=get_year_start(date), to_date=get_year_ending(date) + ) + + leave_application = frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + leave_type=leave_type.name, + from_date=add_days(first_sunday, -10), + to_date=add_days(first_sunday, 1), + company="_Test Company", + status="Approved", + leave_approver="test@example.com", + ) + ) + + # Application period cannot be across two allocation records + self.assertRaises(LeaveAcrossAllocationsError, leave_application.insert) + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_insufficient_leave_balance_validation(self): + # CASE 1: Validation when allow negative is disabled + frappe.delete_doc_if_exists("Leave Type", "Test Leave Validation", force=1) + leave_type = frappe.get_doc( + dict(leave_type_name="Test Leave Validation", doctype="Leave Type", allow_negative=False) + ).insert() + + employee = get_employee() + date = getdate() + first_sunday = get_first_sunday(self.holiday_list, for_date=get_year_start(date)) + + # allocate 2 leaves, apply for more + make_allocation_record( + leave_type=leave_type.name, + from_date=get_year_start(date), + to_date=get_year_ending(date), + leaves=2, + ) + leave_application = frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + leave_type=leave_type.name, + from_date=add_days(first_sunday, 1), + to_date=add_days(first_sunday, 3), + company="_Test Company", + status="Approved", + leave_approver="test@example.com", + ) + ) + self.assertRaises(InsufficientLeaveBalanceError, leave_application.insert) + + # CASE 2: Allows creating application with a warning message when allow negative is enabled + frappe.db.set_value("Leave Type", "Test Leave Validation", "allow_negative", True) + make_leave_application( + employee.name, add_days(first_sunday, 1), add_days(first_sunday, 3), leave_type.name + ) + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_separate_leave_ledger_entry_for_boundary_applications(self): + # When application falls in 2 different allocations and Allow Negative is enabled + # creates separate leave ledger entries + frappe.delete_doc_if_exists("Leave Type", "Test Leave Validation", force=1) + leave_type = frappe.get_doc( + dict( + leave_type_name="Test Leave Validation", + doctype="Leave Type", + allow_negative=True, + include_holiday=True, + ) + ).insert() + + employee = get_employee() + date = getdate() + year_start = getdate(get_year_start(date)) + year_end = getdate(get_year_ending(date)) + + make_allocation_record(leave_type=leave_type.name, from_date=year_start, to_date=year_end) + # application across allocations + + # CASE 1: from date has no allocation, to date has an allocation / both dates have allocation + start_date = add_days(year_start, -10) + application = make_leave_application( + employee.name, + start_date, + add_days(year_start, 3), + leave_type.name, + half_day=1, + half_day_date=start_date, + ) + + # 2 separate leave ledger entries + ledgers = frappe.db.get_all( + "Leave Ledger Entry", + {"transaction_type": "Leave Application", "transaction_name": application.name}, + ["leaves", "from_date", "to_date"], + order_by="from_date", + ) + self.assertEqual(len(ledgers), 2) + + self.assertEqual(ledgers[0].from_date, application.from_date) + self.assertEqual(ledgers[0].to_date, add_days(year_start, -1)) + + self.assertEqual(ledgers[1].from_date, year_start) + self.assertEqual(ledgers[1].to_date, application.to_date) + + # CASE 2: from date has an allocation, to date has no allocation + application = make_leave_application( + employee.name, add_days(year_end, -3), add_days(year_end, 5), leave_type.name + ) + + # 2 separate leave ledger entries + ledgers = frappe.db.get_all( + "Leave Ledger Entry", + {"transaction_type": "Leave Application", "transaction_name": application.name}, + ["leaves", "from_date", "to_date"], + order_by="from_date", + ) + self.assertEqual(len(ledgers), 2) + + self.assertEqual(ledgers[0].from_date, application.from_date) + self.assertEqual(ledgers[0].to_date, year_end) + + self.assertEqual(ledgers[1].from_date, add_days(year_end, 1)) + self.assertEqual(ledgers[1].to_date, application.to_date) + + def test_overwrite_attendance(self): + """check attendance is automatically created on leave approval""" + make_allocation_record() + application = self.get_application(self.leave_applications[0]) + application.status = "Approved" + application.from_date = "2018-01-01" + application.to_date = "2018-01-03" + application.insert() + application.submit() + + attendance = frappe.get_all( + "Attendance", + ["name", "status", "attendance_date"], + dict(attendance_date=("between", ["2018-01-01", "2018-01-03"]), docstatus=("!=", 2)), + ) + + # attendance created for all 3 days + self.assertEqual(len(attendance), 3) + + # all on leave + self.assertTrue(all([d.status == "On Leave" for d in attendance])) + + # dates + dates = [d.attendance_date for d in attendance] + for d in ("2018-01-01", "2018-01-02", "2018-01-03"): + self.assertTrue(getdate(d) in dates) + + def test_overwrite_half_day_attendance(self): + mark_attendance("_T-Employee-00001", "2023-01-02", "Absent") + + make_allocation_record(from_date="2023-01-01", to_date="2023-12-31") + application = self.get_application(self.leave_applications[0]) + application.status = "Approved" + application.from_date = "2023-01-02" + application.to_date = "2023-01-02" + application.half_day = 1 + application.half_day_date = "2023-01-02" + application.submit() + + attendance = frappe.db.get_value( + "Attendance", + {"attendance_date": "2023-01-02"}, + ["status", "leave_type", "leave_application"], + as_dict=True, + ) + + self.assertEqual(attendance.status, "Half Day") + self.assertEqual(attendance.leave_type, "_Test Leave Type") + self.assertEqual(attendance.leave_application, application.name) + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_attendance_for_include_holidays(self): + # Case 1: leave type with 'Include holidays within leaves as leaves' enabled + frappe.delete_doc_if_exists("Leave Type", "Test Include Holidays", force=1) + leave_type = frappe.get_doc( + dict(leave_type_name="Test Include Holidays", doctype="Leave Type", include_holiday=True) + ).insert() + + date = getdate() + make_allocation_record( + leave_type=leave_type.name, from_date=get_year_start(date), to_date=get_year_ending(date) + ) + + employee = get_employee() + first_sunday = get_first_sunday(self.holiday_list) + + leave_application = make_leave_application( + employee.name, first_sunday, add_days(first_sunday, 3), leave_type.name + ) + leave_application.reload() + self.assertEqual(leave_application.total_leave_days, 4) + self.assertEqual(frappe.db.count("Attendance", {"leave_application": leave_application.name}), 4) + + leave_application.cancel() + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_attendance_update_for_exclude_holidays(self): + # Case 2: leave type with 'Include holidays within leaves as leaves' disabled + frappe.delete_doc_if_exists("Leave Type", "Test Do Not Include Holidays", force=1) + leave_type = frappe.get_doc( + { + "leave_type_name": "Test Do Not Include Holidays", + "doctype": "Leave Type", + "include_holiday": False, + } + ).insert() + + date = getdate() + make_allocation_record( + leave_type=leave_type.name, from_date=get_year_start(date), to_date=get_year_ending(date) + ) + + employee = get_employee() + first_sunday = get_first_sunday(self.holiday_list) + + # already marked attendance on a holiday should be deleted in this case + config = {"doctype": "Attendance", "employee": employee.name, "status": "Present"} + attendance_on_holiday = frappe.get_doc(config) + attendance_on_holiday.attendance_date = first_sunday + attendance_on_holiday.flags.ignore_validate = True + attendance_on_holiday.save() + + # already marked attendance on a non-holiday should be updated + attendance = frappe.get_doc(config) + attendance.attendance_date = add_days(first_sunday, 3) + attendance.flags.ignore_validate = True + attendance.save() + + leave_application = make_leave_application( + employee.name, first_sunday, add_days(first_sunday, 3), leave_type.name, employee.company + ) + leave_application.reload() + + # holiday should be excluded while marking attendance + self.assertEqual(leave_application.total_leave_days, 3) + self.assertEqual(frappe.db.count("Attendance", {"leave_application": leave_application.name}), 3) + + # attendance on holiday deleted + self.assertFalse(frappe.db.exists("Attendance", attendance_on_holiday.name)) + + # attendance on non-holiday updated + self.assertEqual(frappe.db.get_value("Attendance", attendance.name, "status"), "On Leave") + + def test_block_list(self): + self._clear_roles() + + from frappe.utils.user import add_role + + add_role("test@example.com", "HR User") + clear_user_permissions_for_doctype("Employee") + + frappe.db.set_value( + "Department", "_Test Department - _TC", "leave_block_list", "_Test Leave Block List" + ) + + make_allocation_record() + + application = self.get_application(self.leave_applications[0]) + application.insert() + application.reload() + application.status = "Approved" + self.assertRaises(LeaveDayBlockedError, application.submit) + + frappe.set_user("test@example.com") + + # clear other applications + frappe.db.sql("delete from `tabLeave Application`") + + application = self.get_application(self.leave_applications[0]) + self.assertTrue(application.insert()) + + def test_overlap(self): + self._clear_roles() + self._clear_applications() + + from frappe.utils.user import add_role + + add_role("test@example.com", "Employee") + frappe.set_user("test@example.com") + + make_allocation_record() + + application = self.get_application(self.leave_applications[0]) + application.insert() + + application = self.get_application(self.leave_applications[0]) + self.assertRaises(OverlapError, application.insert) + + def test_overlap_with_half_day_1(self): + self._clear_roles() + self._clear_applications() + + from frappe.utils.user import add_role + + add_role("test@example.com", "Employee") + frappe.set_user("test@example.com") + + make_allocation_record() + + # leave from 1-5, half day on 3rd + application = self.get_application(self.leave_applications[0]) + application.half_day = 1 + application.half_day_date = "2013-01-03" + application.insert() + + # Apply again for a half day leave on 3rd + application = self.get_application(self.leave_applications[0]) + application.from_date = "2013-01-03" + application.to_date = "2013-01-03" + application.half_day = 1 + application.half_day_date = "2013-01-03" + application.insert() + + # Apply again for a half day leave on 3rd + application = self.get_application(self.leave_applications[0]) + application.from_date = "2013-01-03" + application.to_date = "2013-01-03" + application.half_day = 1 + application.half_day_date = "2013-01-03" + + self.assertRaises(OverlapError, application.insert) + + def test_overlap_with_half_day_2(self): + self._clear_roles() + self._clear_applications() + + from frappe.utils.user import add_role + + add_role("test@example.com", "Employee") + + frappe.set_user("test@example.com") + + make_allocation_record() + + # leave from 1-5, no half day + application = self.get_application(self.leave_applications[0]) + application.insert() + + # Apply again for a half day leave on 1st + application = self.get_application(self.leave_applications[0]) + application.half_day = 1 + application.half_day_date = application.from_date + + self.assertRaises(OverlapError, application.insert) + + def test_overlap_with_half_day_3(self): + self._clear_roles() + self._clear_applications() + + from frappe.utils.user import add_role + + add_role("test@example.com", "Employee") + + frappe.set_user("test@example.com") + + make_allocation_record() + + # leave from 1-5, half day on 5th + application = self.get_application(self.leave_applications[0]) + application.half_day = 1 + application.half_day_date = "2013-01-05" + application.insert() + + # Apply leave from 4-7, half day on 5th + application = self.get_application(self.leave_applications[0]) + application.from_date = "2013-01-04" + application.to_date = "2013-01-07" + application.half_day = 1 + application.half_day_date = "2013-01-05" + + self.assertRaises(OverlapError, application.insert) + + # Apply leave from 5-7, half day on 5th + application = self.get_application(self.leave_applications[0]) + application.from_date = "2013-01-05" + application.to_date = "2013-01-07" + application.half_day = 1 + application.half_day_date = "2013-01-05" + application.insert() + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_optional_leave(self): + leave_period = get_leave_period() + today = nowdate() + holiday_list = "Test Holiday List for Optional Holiday" + employee = get_employee() + + first_sunday = get_first_sunday(self.holiday_list) + optional_leave_date = add_days(first_sunday, 1) + + if not frappe.db.exists("Holiday List", holiday_list): + frappe.get_doc( + dict( + doctype="Holiday List", + holiday_list_name=holiday_list, + from_date=add_months(today, -6), + to_date=add_months(today, 6), + holidays=[dict(holiday_date=optional_leave_date, description="Test")], + ) + ).insert() + + frappe.db.set_value("Leave Period", leave_period.name, "optional_holiday_list", holiday_list) + leave_type = "Test Optional Type" + if not frappe.db.exists("Leave Type", leave_type): + frappe.get_doc( + dict(leave_type_name=leave_type, doctype="Leave Type", is_optional_leave=1) + ).insert() + + allocate_leaves(employee, leave_period, leave_type, 10) + + date = add_days(first_sunday, 2) + + leave_application = frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + company="_Test Company", + description="_Test Reason", + leave_type=leave_type, + from_date=date, + to_date=date, + ) + ) + + # can only apply on optional holidays + self.assertRaises(NotAnOptionalHoliday, leave_application.insert) + leave_application.from_date = optional_leave_date + leave_application.to_date = optional_leave_date + leave_application.status = "Approved" + leave_application.insert() + leave_application.submit() + + # check leave balance is reduced + self.assertEqual(get_leave_balance_on(employee.name, leave_type, optional_leave_date), 9) + + def test_leaves_allowed(self): + employee = get_employee() + leave_period = get_leave_period() + frappe.delete_doc_if_exists("Leave Type", "Test Leave Type", force=1) + leave_type = frappe.get_doc( + dict(leave_type_name="Test Leave Type", doctype="Leave Type", max_leaves_allowed=5) + ).insert() + + date = add_days(nowdate(), -7) + + allocate_leaves(employee, leave_period, leave_type.name, 5) + + leave_application = frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + leave_type=leave_type.name, + description="_Test Reason", + from_date=date, + to_date=add_days(date, 2), + company="_Test Company", + docstatus=1, + status="Approved", + ) + ) + leave_application.submit() + + leave_application = frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + leave_type=leave_type.name, + description="_Test Reason", + from_date=add_days(date, 4), + to_date=add_days(date, 8), + company="_Test Company", + docstatus=1, + status="Approved", + ) + ) + self.assertRaises(frappe.ValidationError, leave_application.insert) + + def test_applicable_after(self): + employee = get_employee() + leave_period = get_leave_period() + frappe.delete_doc_if_exists("Leave Type", "Test Leave Type", force=1) + leave_type = frappe.get_doc( + dict(leave_type_name="Test Leave Type", doctype="Leave Type", applicable_after=15) + ).insert() + date = add_days(nowdate(), -7) + frappe.db.set_value("Employee", employee.name, "date_of_joining", date) + allocate_leaves(employee, leave_period, leave_type.name, 10) + + leave_application = frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + leave_type=leave_type.name, + description="_Test Reason", + from_date=date, + to_date=add_days(date, 4), + company="_Test Company", + docstatus=1, + status="Approved", + ) + ) + + self.assertRaises(frappe.ValidationError, leave_application.insert) + + frappe.delete_doc_if_exists("Leave Type", "Test Leave Type 1", force=1) + leave_type_1 = frappe.get_doc( + dict(leave_type_name="Test Leave Type 1", doctype="Leave Type") + ).insert() + + allocate_leaves(employee, leave_period, leave_type_1.name, 10) + + leave_application = frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + leave_type=leave_type_1.name, + description="_Test Reason", + from_date=date, + to_date=add_days(date, 4), + company="_Test Company", + docstatus=1, + status="Approved", + ) + ) + + self.assertTrue(leave_application.insert()) + frappe.db.set_value("Employee", employee.name, "date_of_joining", "2010-01-01") + + def test_max_continuous_leaves(self): + employee = get_employee() + leave_period = get_leave_period() + frappe.delete_doc_if_exists("Leave Type", "Test Leave Type", force=1) + leave_type = frappe.get_doc( + dict( + leave_type_name="Test Leave Type", + doctype="Leave Type", + max_leaves_allowed=15, + max_continuous_days_allowed=3, + ) + ).insert() + + date = add_days(nowdate(), -7) + + allocate_leaves(employee, leave_period, leave_type.name, 10) + + leave_application = frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + leave_type=leave_type.name, + description="_Test Reason", + from_date=date, + to_date=add_days(date, 4), + company="_Test Company", + docstatus=1, + status="Approved", + ) + ) + + self.assertRaises(frappe.ValidationError, leave_application.insert) + + @assign_holiday_list("_Test Holiday List", "_Test Company") + def test_max_consecutive_leaves_across_leave_applications(self): + employee = get_employee() + leave_type = frappe.get_doc( + dict( + leave_type_name="Test Consecutive Leave Type", + doctype="Leave Type", + max_continuous_days_allowed=10, + ) + ).insert() + make_allocation_record( + employee=employee.name, leave_type=leave_type.name, from_date="2013-01-01", to_date="2013-12-31" + ) + + # before + frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + leave_type=leave_type.name, + from_date="2013-01-30", + to_date="2013-02-03", + company="_Test Company", + status="Approved", + ) + ).insert() + + # after + frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + leave_type=leave_type.name, + from_date="2013-02-06", + to_date="2013-02-10", + company="_Test Company", + status="Approved", + ) + ).insert() + + # current + from_date = getdate("2013-02-04") + to_date = getdate("2013-02-05") + leave_application = frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + leave_type=leave_type.name, + from_date=from_date, + to_date=to_date, + company="_Test Company", + status="Approved", + ) + ) + + # 11 consecutive leaves + self.assertRaises(frappe.ValidationError, leave_application.insert) + + def test_leave_balance_near_allocaton_expiry(self): + employee = get_employee() + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + ) + + create_carry_forwarded_allocation(employee, leave_type) + details = get_leave_balance_on( + employee.name, leave_type.name, nowdate(), add_days(nowdate(), 8), for_consumption=True + ) + + self.assertEqual(details.leave_balance_for_consumption, 21) + self.assertEqual(details.leave_balance, 30) + + # test to not consider current leave in leave balance while submitting + def test_current_leave_on_submit(self): + employee = get_employee() + + leave_type = "Sick Leave" + if not frappe.db.exists("Leave Type", leave_type): + frappe.get_doc(dict(leave_type_name=leave_type, doctype="Leave Type")).insert() + + allocation = frappe.get_doc( + dict( + doctype="Leave Allocation", + employee=employee.name, + leave_type=leave_type, + from_date="2018-10-01", + to_date="2018-10-10", + new_leaves_allocated=1, + ) + ) + allocation.insert(ignore_permissions=True) + allocation.submit() + leave_application = frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + leave_type=leave_type, + description="_Test Reason", + from_date="2018-10-02", + to_date="2018-10-02", + company="_Test Company", + status="Approved", + leave_approver="test@example.com", + ) + ) + self.assertTrue(leave_application.insert()) + leave_application.submit() + self.assertEqual(leave_application.docstatus, 1) + + def test_creation_of_leave_ledger_entry_on_submit(self): + employee = get_employee() + + leave_type = create_leave_type(leave_type_name="Test Leave Type 1") + + leave_allocation = create_leave_allocation( + employee=employee.name, employee_name=employee.employee_name, leave_type=leave_type.name + ) + leave_allocation.submit() + + leave_application = frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + leave_type=leave_type.name, + from_date=add_days(nowdate(), 1), + to_date=add_days(nowdate(), 4), + description="_Test Reason", + company="_Test Company", + docstatus=1, + status="Approved", + ) + ) + leave_application.submit() + leave_ledger_entry = frappe.get_all( + "Leave Ledger Entry", fields="*", filters=dict(transaction_name=leave_application.name) + ) + + self.assertEqual(leave_ledger_entry[0].employee, leave_application.employee) + self.assertEqual(leave_ledger_entry[0].leave_type, leave_application.leave_type) + self.assertEqual(leave_ledger_entry[0].leaves, leave_application.total_leave_days * -1) + + # check if leave ledger entry is deleted on cancellation + leave_application.cancel() + self.assertFalse(frappe.db.exists("Leave Ledger Entry", {"transaction_name": leave_application.name})) + + def test_ledger_entry_creation_on_intermediate_allocation_expiry(self): + employee = get_employee() + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + include_holiday=True, + ) + + create_carry_forwarded_allocation(employee, leave_type) + + leave_application = frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee.name, + leave_type=leave_type.name, + from_date=add_days(nowdate(), -3), + to_date=add_days(nowdate(), 7), + half_day=1, + half_day_date=add_days(nowdate(), -3), + description="_Test Reason", + company="_Test Company", + docstatus=1, + status="Approved", + ) + ) + leave_application.submit() + + leave_ledger_entry = frappe.get_all( + "Leave Ledger Entry", "*", filters=dict(transaction_name=leave_application.name) + ) + + self.assertEqual(len(leave_ledger_entry), 2) + self.assertEqual(leave_ledger_entry[0].employee, leave_application.employee) + self.assertEqual(leave_ledger_entry[0].leave_type, leave_application.leave_type) + self.assertEqual(leave_ledger_entry[0].leaves, -8.5) + self.assertEqual(leave_ledger_entry[1].leaves, -2) + + def test_leave_application_creation_after_expiry(self): + # test leave balance for carry forwarded allocation + employee = get_employee() + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + ) + + create_carry_forwarded_allocation(employee, leave_type) + + self.assertEqual( + get_leave_balance_on( + employee.name, leave_type.name, add_days(nowdate(), -85), add_days(nowdate(), -84) + ), + 0, + ) + + def test_leave_approver_perms(self): + employee = get_employee() + user = "test_approver_perm_emp@example.com" + make_employee(user, "_Test Company") + + # set approver for employee + employee.reload() + employee.leave_approver = user + employee.save() + self.assertTrue("Leave Approver" in frappe.get_roles(user)) + + make_allocation_record(employee.name) + + application = self.get_application(self.leave_applications[0]) + application.from_date = "2018-01-01" + application.to_date = "2018-01-03" + application.leave_approver = user + application.insert() + self.assertTrue(application.name in frappe.share.get_shared("Leave Application", user)) + + # check shared doc revoked + application.reload() + application.leave_approver = "test@example.com" + application.save() + self.assertTrue(application.name not in frappe.share.get_shared("Leave Application", user)) + + application.reload() + application.leave_approver = user + application.save() + + frappe.set_user(user) + application.reload() + application.status = "Approved" + application.submit() + + # unset leave approver + frappe.set_user("Administrator") + employee.reload() + employee.leave_approver = "" + employee.save() + + def test_self_leave_approval_allowed(self): + frappe.db.set_single_value("HR Settings", "prevent_self_leave_approval", 0) + + employee = frappe.get_doc( + "Employee", + make_employee( + "test_self_leave_approval@example.com", "_Test Company", leave_approver="test@example.com" + ), + ) + + from frappe.utils.user import add_role + + add_role(employee.user_id, "Leave Approver") + + make_allocation_record(employee.name) + application = frappe.get_doc( + doctype="Leave Application", + employee=employee.name, + leave_type="_Test Leave Type", + from_date="2014-06-01", + to_date="2014-06-02", + posting_date="2014-05-30", + description="_Test Reason", + company="_Test Company", + leave_approver="test@example.com", + ) + application.insert() + application.status = "Approved" + + frappe.set_user(employee.user_id) + application.submit() + + self.assertEqual(1, application.docstatus) + + def test_self_leave_approval_not_allowed(self): + frappe.db.set_single_value("HR Settings", "prevent_self_leave_approval", 1) + + leave_approver = "test_leave_approver@example.com" + make_employee(leave_approver, "_Test Company") + + employee = frappe.get_doc( + "Employee", + make_employee( + "test_self_leave_approval@example.com", "_Test Company", leave_approver=leave_approver + ), + ) + + from frappe.utils.user import add_role + + add_role(employee.user_id, "Leave Approver") + add_role(leave_approver, "Leave Approver") + + make_allocation_record(employee.name) + application = application = frappe.get_doc( + doctype="Leave Application", + employee=employee.name, + leave_type="_Test Leave Type", + from_date="2014-06-03", + to_date="2014-06-04", + posting_date="2014-05-30", + description="_Test Reason", + company="_Test Company", + leave_approver=leave_approver, + ) + application.insert() + application.status = "Approved" + + frappe.set_user(employee.user_id) + self.assertRaises(frappe.ValidationError, application.submit) + + frappe.set_user(leave_approver) + application.reload() + application.submit() + self.assertEqual(1, application.docstatus) + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_get_leave_details_for_dashboard(self): + employee = get_employee() + date = getdate() + year_start = getdate(get_year_start(date)) + year_end = getdate(get_year_ending(date)) + + # ALLOCATION = 30 + allocation = make_allocation_record(employee=employee.name, from_date=year_start, to_date=year_end) + + # USED LEAVES = 4 + first_sunday = get_first_sunday(self.holiday_list) + leave_application = make_leave_application( + employee.name, add_days(first_sunday, 1), add_days(first_sunday, 4), "_Test Leave Type" + ) + leave_application.reload() + + # LEAVES PENDING APPROVAL = 1 + leave_application = make_leave_application( + employee.name, + add_days(first_sunday, 5), + add_days(first_sunday, 5), + "_Test Leave Type", + submit=False, + ) + leave_application.status = "Open" + leave_application.save() + + details = get_leave_details(employee.name, allocation.from_date) + leave_allocation = details["leave_allocation"]["_Test Leave Type"] + self.assertEqual(leave_allocation["total_leaves"], 30) + self.assertEqual(leave_allocation["leaves_taken"], 4) + self.assertEqual(leave_allocation["expired_leaves"], 0) + self.assertEqual(leave_allocation["leaves_pending_approval"], 1) + self.assertEqual(leave_allocation["remaining_leaves"], 26) + + @assign_holiday_list("Holiday List w/o Weekly Offs", "_Test Company") + def test_leave_details_with_expired_cf_leaves(self): + """Tests leave details: + Case 1: All leaves available before cf leave expiry + Case 2: Remaining Leaves after cf leave expiry + """ + employee = get_employee() + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + ) + + leave_alloc = create_carry_forwarded_allocation(employee, leave_type) + cf_expiry = frappe.db.get_value( + "Leave Ledger Entry", {"transaction_name": leave_alloc.name, "is_carry_forward": 1}, "to_date" + ) + + # case 1: all leaves available before cf leave expiry + leave_details = get_leave_details(employee.name, add_days(cf_expiry, -1)) + self.assertEqual(leave_details["leave_allocation"][leave_type.name]["remaining_leaves"], 30.0) + + # case 2: cf leaves expired + leave_details = get_leave_details(employee.name, add_days(cf_expiry, 1)) + expected_data = { + "total_leaves": 30.0, + "expired_leaves": 15.0, + "leaves_taken": 0.0, + "leaves_pending_approval": 0.0, + "remaining_leaves": 15.0, + } + + self.assertEqual(leave_details["leave_allocation"][leave_type.name], expected_data) + + @assign_holiday_list("Holiday List w/o Weekly Offs", "_Test Company") + def test_leave_details_with_application_across_cf_expiry(self): + """Tests leave details with leave application across cf expiry, such that: + cf leaves are partially expired and partially consumed + """ + employee = get_employee() + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + ) + + leave_alloc = create_carry_forwarded_allocation(employee, leave_type) + cf_expiry = frappe.db.get_value( + "Leave Ledger Entry", {"transaction_name": leave_alloc.name, "is_carry_forward": 1}, "to_date" + ) + + # leave application across cf expiry + make_leave_application( + employee.name, + cf_expiry, + add_days(cf_expiry, 3), + leave_type.name, + ) + + leave_details = get_leave_details(employee.name, add_days(cf_expiry, 4)) + expected_data = { + "total_leaves": 30.0, + "expired_leaves": 14.0, + "leaves_taken": 4.0, + "leaves_pending_approval": 0.0, + "remaining_leaves": 12.0, + } + + self.assertEqual(leave_details["leave_allocation"][leave_type.name], expected_data) + + @assign_holiday_list("Holiday List w/o Weekly Offs", "_Test Company") + def test_leave_details_with_application_across_cf_expiry_2(self): + """Tests the same case as above but with leave days greater than cf leaves allocated""" + employee = get_employee() + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + ) + + leave_alloc = create_carry_forwarded_allocation(employee, leave_type) + cf_expiry = frappe.db.get_value( + "Leave Ledger Entry", {"transaction_name": leave_alloc.name, "is_carry_forward": 1}, "to_date" + ) + + # leave application across cf expiry, 20 days leave + make_leave_application( + employee.name, + add_days(cf_expiry, -16), + add_days(cf_expiry, 3), + leave_type.name, + ) + + # 15 cf leaves and 5 new leaves should be consumed + # after adjustment of the actual days breakup (17 and 3) because only 15 cf leaves have been allocated + new_leaves_taken, cf_leaves_taken = get_new_and_cf_leaves_taken(leave_alloc, cf_expiry) + self.assertEqual(new_leaves_taken, -5.0) + self.assertEqual(cf_leaves_taken, -15.0) + + leave_details = get_leave_details(employee.name, add_days(cf_expiry, 4)) + expected_data = { + "total_leaves": 30.0, + "expired_leaves": 0, + "leaves_taken": 20.0, + "leaves_pending_approval": 0.0, + "remaining_leaves": 10.0, + } + + self.assertEqual(leave_details["leave_allocation"][leave_type.name], expected_data) + + @assign_holiday_list("Holiday List w/o Weekly Offs", "_Test Company") + def test_leave_details_with_application_after_cf_expiry(self): + """Tests leave details with leave application after cf expiry, such that: + cf leaves are completely expired and only newly allocated leaves are consumed + """ + employee = get_employee() + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + ) + + leave_alloc = create_carry_forwarded_allocation(employee, leave_type) + cf_expiry = frappe.db.get_value( + "Leave Ledger Entry", {"transaction_name": leave_alloc.name, "is_carry_forward": 1}, "to_date" + ) + + # leave application after cf expiry + make_leave_application( + employee.name, + add_days(cf_expiry, 1), + add_days(cf_expiry, 4), + leave_type.name, + ) + + leave_details = get_leave_details(employee.name, add_days(cf_expiry, 4)) + expected_data = { + "total_leaves": 30.0, + "expired_leaves": 15.0, + "leaves_taken": 4.0, + "leaves_pending_approval": 0.0, + "remaining_leaves": 11.0, + } + + self.assertEqual(leave_details["leave_allocation"][leave_type.name], expected_data) + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_get_leave_allocation_records(self): + """Tests if total leaves allocated before and after carry forwarded leave expiry is same""" + employee = get_employee() + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + ) + + leave_alloc = create_carry_forwarded_allocation(employee, leave_type) + cf_expiry = frappe.db.get_value( + "Leave Ledger Entry", {"transaction_name": leave_alloc.name, "is_carry_forward": 1}, "to_date" + ) + + # test total leaves allocated before cf leave expiry + details = get_leave_allocation_records(employee.name, add_days(cf_expiry, -1), leave_type.name) + expected_data = { + "from_date": getdate(leave_alloc.from_date), + "to_date": getdate(leave_alloc.to_date), + "total_leaves_allocated": 30.0, + "unused_leaves": 15.0, + "new_leaves_allocated": 15.0, + "leave_type": leave_type.name, + "employee": employee.name, + } + self.assertEqual(details.get(leave_type.name), expected_data) + + # test leaves allocated after carry forwarded leaves expiry, should be same thoroughout allocation period + # cf leaves should show up under expired or taken leaves later + details = get_leave_allocation_records(employee.name, add_days(cf_expiry, 1), leave_type.name) + self.assertEqual(details.get(leave_type.name), expected_data) + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_filtered_old_cf_entries_in_get_leave_allocation_records(self): + """Tests whether old cf entries are ignored while fetching current allocation records""" + employee = get_employee() + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + ) + + # old allocation with cf leaves + create_carry_forwarded_allocation(employee, leave_type, date="2019-01-01") + # new allocation with cf leaves + leave_alloc = create_carry_forwarded_allocation(employee, leave_type) + cf_expiry = frappe.db.get_value( + "Leave Ledger Entry", {"transaction_name": leave_alloc.name, "is_carry_forward": 1}, "to_date" + ) + + # test total leaves allocated before cf leave expiry + details = get_leave_allocation_records(employee.name, add_days(cf_expiry, -1), leave_type.name) + # filters out old CF leaves (15 i.e total 45) + self.assertEqual(details[leave_type.name]["total_leaves_allocated"], 30.0) + + def test_modifying_attendance_when_half_day_exists_from_checkins(self): + employee = get_employee() + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + ) + + create_carry_forwarded_allocation(employee, leave_type) + # when existing attendance is half day + attendance_name = mark_attendance( + employee=employee.name, attendance_date=nowdate(), status="Half Day", half_day_status="Absent" + ) + leave_application = make_leave_application( + employee.name, + nowdate(), + nowdate(), + leave_type.name, + submit=True, + half_day=1, + half_day_date=nowdate(), + ) + attendance = frappe.get_value( + "Attendance", + attendance_name, + ["status", "half_day_status", "leave_type", "leave_application"], + as_dict=True, + ) + self.assertEqual(attendance.status, "Half Day") + self.assertEqual(attendance.half_day_status, "Present") + self.assertEqual(attendance.leave_type, leave_type.name) + self.assertEqual(attendance.leave_application, leave_application.name) + + def test_modifying_attendance_from_absent_to_half_day(self): + employee = get_employee() + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + ) + + create_carry_forwarded_allocation(employee, leave_type) + # when existing attendance is absent + attendance_name = mark_attendance(employee=employee.name, attendance_date=nowdate(), status="Absent") + + leave_application = make_leave_application( + employee.name, + add_days(nowdate(), -3), + add_days(nowdate(), 3), + leave_type.name, + submit=True, + half_day=1, + half_day_date=nowdate(), + ) + attendance = frappe.get_value( + "Attendance", + attendance_name, + ["status", "half_day_status", "leave_type", "leave_application", "modify_half_day_status"], + as_dict=True, + ) + self.assertEqual(attendance.status, "Half Day") + self.assertEqual(attendance.half_day_status, "Present") + self.assertEqual(attendance.leave_type, leave_type.name) + self.assertEqual(attendance.leave_application, leave_application.name) + self.assertEqual(attendance.modify_half_day_status, 1) + + def test_half_day_status_for_two_half_leaves(self): + employee = get_employee() + leave_type = create_leave_type( + leave_type_name="_Test_CF_leave_expiry", + is_carry_forward=1, + expire_carry_forwarded_leaves_after_days=90, + ) + create_carry_forwarded_allocation(employee, leave_type) + # attendance from one half leave + first_leave_application = make_leave_application( + employee.name, + nowdate(), + nowdate(), + leave_type.name, + submit=True, + half_day=1, + half_day_date=nowdate(), + ) + half_day_status_after_first_application = frappe.get_value( + "Attendance", + filters={"attendance_date": nowdate(), "leave_application": first_leave_application.name}, + fieldname="half_day_status", + ) + # default is present + self.assertEqual(half_day_status_after_first_application, "Present") + second_leave_application = make_leave_application( + employee.name, + nowdate(), + nowdate(), + leave_type.name, + submit=True, + half_day=1, + half_day_date=nowdate(), + ) + half_day_status_after_second_application = frappe.get_value( + "Attendance", + filters={"attendance_date": nowdate(), "leave_application": second_leave_application.name}, + fieldname="half_day_status", + ) + # the status should remain unchanged after creating second half day leave application + self.assertEqual(half_day_status_after_second_application, "Present") + + def test_leave_balance_when_allocation_is_expired_manually(self): + leave_type = create_leave_type(leave_type_name="Compensatory Off") + employee = get_employee() + + leave_allocation = create_leave_allocation( + leave_type=leave_type.name, employee=employee.name, employee_name=employee.employee_name + ) + leave_allocation.submit() + + expire_allocation(leave_allocation, expiry_date=getdate()) + + leave_balance = get_leave_balance_on( + employee=employee.name, + leave_type=leave_type.name, + date=getdate(), + consider_all_leaves_in_the_allocation_period=True, + ) + + self.assertEqual(leave_balance, 0) + + def test_backdated_application_after_expiry(self): + employee = get_employee().name + previous_month_start = get_first_day(add_months(getdate(), -1)) + previous_month_end = get_last_day(previous_month_start) + leave_type = create_leave_type(leave_type_name="_Test_backdated_application").name + allocation = make_allocation_record( + employee, leave_type, previous_month_start, previous_month_end, leaves=10 + ) + expire_allocation(allocation, expiry_date=previous_month_end) + doc = frappe.new_doc( + "Leave Application", + employee=employee, + leave_type=leave_type, + from_date=previous_month_start, + to_date=previous_month_start, + posting_date=previous_month_end, + status="Approved", + ) + doc.save() + doc.submit() + self.assertEqual(get_leave_balance_on(employee, leave_type, previous_month_end), 9) + leave_ledger_entry = frappe.get_all( + "Leave Ledger Entry", + fields="*", + filters={"transaction_name": doc.name}, + order_by="leaves", + ) + self.assertEqual(len(leave_ledger_entry), 2) + self.assertEqual(leave_ledger_entry[0].leaves, doc.total_leave_days * -1) + self.assertEqual(leave_ledger_entry[1].leaves, doc.total_leave_days * 1) + + def test_leave_days_across_two_holiday_lists(self): + make_holiday_list( + "_Test Application", + from_date=add_days(getdate(), -10), + to_date=add_days(getdate(), -1), + add_weekly_offs=False, + ) + add_date_to_holiday_list(add_days(getdate(), -1), "_Test Application") + make_holiday_list( + "_Test Application 2", from_date=getdate(), to_date=add_days(getdate(), 10), add_weekly_offs=False + ) + add_date_to_holiday_list(getdate(), "_Test Application 2") + employee = make_employee("test_leave_days@example.com", company="_Test Company") + create_holiday_list_assignment("Employee", employee, "_Test Application") + create_holiday_list_assignment("Employee", employee, "_Test Application 2") + leave_type = frappe.get_doc( + { + "leave_type_name": "_Test Application", + "doctype": "Leave Type", + "include_holiday": False, + } + ).insert() + make_allocation_record( + employee, + leave_type=leave_type.name, + from_date=add_days(getdate(), -10), + to_date=add_days(getdate(), 10), + leaves=10, + ) + application = make_leave_application( + employee, add_days(getdate(), -2), add_days(getdate(), 2), leave_type.name, submit=False + ) + self.assertEqual(application.total_leave_days, 3) + + def test_status_on_discard(self): + make_allocation_record() + application = self.get_application(self.leave_applications[0]) + application.save() + application.discard() + application.reload() + self.assertEqual(application.status, "Cancelled") + + +def create_carry_forwarded_allocation(employee, leave_type, date=None): + date = date or nowdate() + + # initial leave allocation + leave_allocation = create_leave_allocation( + leave_type="_Test_CF_leave_expiry", + employee=employee.name, + employee_name=employee.employee_name, + from_date=add_months(date, -24), + to_date=add_months(date, -12), + carry_forward=0, + ) + leave_allocation.submit() + + # carry forward leave allocation + leave_allocation = create_leave_allocation( + leave_type="_Test_CF_leave_expiry", + employee=employee.name, + employee_name=employee.employee_name, + from_date=add_days(date, -84), + to_date=add_days(date, 100), + carry_forward=1, + ) + leave_allocation.submit() + + return leave_allocation + + +def make_allocation_record( + employee=None, leave_type=None, from_date=None, to_date=None, carry_forward=False, leaves=None +): + allocation = frappe.get_doc( + { + "doctype": "Leave Allocation", + "employee": employee or "_T-Employee-00001", + "leave_type": leave_type or "_Test Leave Type", + "from_date": from_date or "2013-01-01", + "to_date": to_date or "2019-12-31", + "new_leaves_allocated": leaves or 30, + "carry_forward": carry_forward, + } + ) + + allocation.insert(ignore_permissions=True) + allocation.submit() + + return allocation + + +def get_employee(): + return frappe.get_doc("Employee", "_T-Employee-00001") + + +def get_leave_period(): + leave_period_name = frappe.db.get_value("Leave Period", {"company": "_Test Company"}) + if leave_period_name: + return frappe.get_doc("Leave Period", leave_period_name) + else: + return frappe.get_doc( + dict( + name="Test Leave Period", + doctype="Leave Period", + from_date=add_months(nowdate(), -6), + to_date=add_months(nowdate(), 6), + company="_Test Company", + is_active=1, + ) + ).insert() + + +def allocate_leaves(employee, leave_period, leave_type, new_leaves_allocated, eligible_leaves=0): + allocate_leave = frappe.get_doc( + { + "doctype": "Leave Allocation", + "__islocal": 1, + "employee": employee.name, + "employee_name": employee.employee_name, + "leave_type": leave_type, + "from_date": leave_period.from_date, + "to_date": leave_period.to_date, + "new_leaves_allocated": new_leaves_allocated, + "docstatus": 1, + } + ).insert() + + allocate_leave.submit() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/test_records.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/test_records.json new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_application/test_records.json @@ -0,0 +1 @@ +[] diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/README.md new file mode 100644 index 000000000..b23396c4a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/README.md @@ -0,0 +1 @@ +List of days on which leaves can only be approved by special users. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list.js new file mode 100644 index 000000000..1e37b238f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list.js @@ -0,0 +1,99 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Leave Block List", { + add_day_wise_dates: function (frm) { + let d = new frappe.ui.Dialog({ + title: "Add Leave Block Dates", + fields: [ + { + label: "Start Date", + fieldname: "start_date", + fieldtype: "Date", + reqd: 1, + }, + { + fieldname: "col_break_0", + fieldtype: "Column Break", + }, + { + label: "End Date", + fieldname: "end_date", + fieldtype: "Date", + reqd: 1, + }, + { + fieldname: "sec_break_0", + fieldtype: "Section Break", + }, + { + fieldname: "days", + fieldtype: "MultiCheck", + select_all: true, + columns: 3, + reqd: 1, + options: [ + { + label: __("Monday"), + value: "Monday", + checked: 0, + }, + { + label: __("Tuesday"), + value: "Tuesday", + checked: 0, + }, + { + label: __("Wednesday"), + value: "Wednesday", + checked: 0, + }, + { + label: __("Thursday"), + value: "Thursday", + checked: 0, + }, + { + label: __("Friday"), + value: "Friday", + checked: 0, + }, + { + label: __("Saturday"), + value: "Saturday", + checked: 0, + }, + { + label: __("Sunday"), + value: "Sunday", + checked: 0, + }, + ], + }, + { + fieldname: "sec_break_0", + fieldtype: "Section Break", + }, + { + label: "Reason", + fieldname: "reason", + fieldtype: "Small Text", + reqd: 1, + }, + ], + primary_action_label: "Add", + primary_action(values) { + frm.call("set_weekly_off_dates", { + start_date: d.get_value("start_date"), + end_date: d.get_value("end_date"), + reason: d.get_value("reason"), + days: d.get_value("days"), + }); + frm.dirty(); + d.hide(); + }, + }); + + d.show(); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list.json new file mode 100644 index 000000000..3e208f2df --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list.json @@ -0,0 +1,112 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "field:leave_block_list_name", + "creation": "2013-02-18 17:43:12", + "description": "Block Holidays on important days.", + "doctype": "DocType", + "document_type": "Setup", + "engine": "InnoDB", + "field_order": [ + "leave_block_list_name", + "company", + "applies_to_all_departments", + "column_break_4", + "leave_type", + "block_days", + "add_day_wise_dates", + "leave_block_list_dates", + "allow_list", + "leave_block_list_allowed" + ], + "fields": [ + { + "fieldname": "leave_block_list_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Leave Block List Name", + "reqd": 1, + "unique": 1 + }, + { + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company", + "remember_last_selected_value": 1, + "reqd": 1 + }, + { + "default": "0", + "description": "If not checked, the list will have to be added to each Department where it has to be applied.", + "fieldname": "applies_to_all_departments", + "fieldtype": "Check", + "in_list_view": 1, + "label": "Applies to Company" + }, + { + "description": "Stop users from making Leave Applications on following days.", + "fieldname": "block_days", + "fieldtype": "Section Break", + "label": "Block Days" + }, + { + "fieldname": "leave_block_list_dates", + "fieldtype": "Table", + "label": "Leave Block List Dates", + "options": "Leave Block List Date", + "reqd": 1 + }, + { + "description": "Allow the following users to approve Leave Applications for block days.", + "fieldname": "allow_list", + "fieldtype": "Section Break", + "label": "Allow Users" + }, + { + "fieldname": "leave_block_list_allowed", + "fieldtype": "Table", + "label": "Leave Block List Allowed", + "options": "Leave Block List Allow" + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "fieldname": "leave_type", + "fieldtype": "Link", + "label": "Leave Type", + "options": "Leave Type" + }, + { + "fieldname": "add_day_wise_dates", + "fieldtype": "Button", + "label": "Add Day-wise Dates" + } + ], + "icon": "fa fa-calendar", + "idx": 1, + "links": [], + "modified": "2024-03-27 13:10:00.587073", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Block List", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "email": 1, + "print": 1, + "read": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "ASC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list.py new file mode 100644 index 000000000..14c94d850 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list.py @@ -0,0 +1,97 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import getdate + + +class LeaveBlockList(Document): + def validate(self): + dates = [] + for d in self.get("leave_block_list_dates"): + # date is not repeated + if d.block_date in dates: + frappe.msgprint(_("Date is repeated") + ":" + d.block_date, raise_exception=1) + dates.append(d.block_date) + + @frappe.whitelist() + def set_weekly_off_dates(self, start_date, end_date, days, reason): + date_list = self.get_block_dates_from_date(start_date, end_date, days) + for date in date_list: + self.append("leave_block_list_dates", {"block_date": date, "reason": reason}) + + def get_block_dates_from_date(self, start_date, end_date, days): + start_date, end_date = getdate(start_date), getdate(end_date) + + import calendar + from datetime import timedelta + + date_list = [] + existing_date_list = [getdate(d.block_date) for d in self.get("leave_block_list_dates")] + + while start_date <= end_date: + if start_date not in existing_date_list and calendar.day_name[start_date.weekday()] in days: + date_list.append(start_date) + start_date += timedelta(days=1) + + return date_list + + +def get_applicable_block_dates( + from_date, to_date, employee=None, company=None, all_lists=False, leave_type=None +): + return frappe.db.get_all( + "Leave Block List Date", + filters={ + "parent": ["IN", get_applicable_block_lists(employee, company, all_lists, leave_type)], + "block_date": ["BETWEEN", [getdate(from_date), getdate(to_date)]], + }, + fields=["block_date", "reason"], + ) + + +def get_applicable_block_lists(employee=None, company=None, all_lists=False, leave_type=None): + block_lists = [] + + def add_block_list(block_list): + for d in block_list: + if all_lists or not is_user_in_allow_list(d): + block_lists.append(d) + + if not employee: + employee = frappe.db.get_value("Employee", {"user_id": frappe.session.user}) + + if not company and employee: + company = frappe.db.get_value("Employee", employee, "company") + + if company: + # global + conditions = {"applies_to_all_departments": 1, "company": company} + if leave_type: + conditions["leave_type"] = ["IN", (leave_type, "", None)] + + add_block_list(frappe.db.get_all("Leave Block List", filters=conditions, pluck="name")) + + if employee: + # per department + department = frappe.db.get_value("Employee", employee, "department") + if department: + block_list = frappe.db.get_value("Department", department, "leave_block_list") + block_list_leave_type = frappe.db.get_value("Leave Block List", block_list, "leave_type") + if not block_list_leave_type or not leave_type or block_list_leave_type == leave_type: + add_block_list([block_list]) + + return list(set(block_lists)) + + +def is_user_in_allow_list(block_list): + return frappe.db.get_value( + "Leave Block List Allow", + {"parent": block_list, "allow_user": frappe.session.user}, + "allow_user", + ) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list_dashboard.py new file mode 100644 index 000000000..afeb5ded3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/leave_block_list_dashboard.py @@ -0,0 +1,2 @@ +def get_data(): + return {"fieldname": "leave_block_list", "transactions": [{"items": ["Department"]}]} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/test_leave_block_list.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/test_leave_block_list.py new file mode 100644 index 000000000..29c9b7b76 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/test_leave_block_list.py @@ -0,0 +1,74 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe +from frappe.utils import getdate + +from hrms.hr.doctype.leave_block_list.leave_block_list import get_applicable_block_dates +from hrms.tests.utils import HRMSTestSuite + + +class TestLeaveBlockList(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_departments() + cls.make_employees() + + def tearDown(self): + frappe.set_user("Administrator") + + def test_get_applicable_block_dates(self): + frappe.set_user("test@example.com") + frappe.db.set_value( + "Department", "_Test Department - _TC", "leave_block_list", "_Test Leave Block List" + ) + self.assertTrue( + getdate("2013-01-02") + in [d.block_date for d in get_applicable_block_dates("2013-01-01", "2013-01-03")] + ) + + def test_get_applicable_block_dates_for_allowed_user(self): + frappe.set_user("test1@example.com") + frappe.db.set_value( + "Department", "_Test Department 1 - _TC", "leave_block_list", "_Test Leave Block List" + ) + self.assertEqual([], [d.block_date for d in get_applicable_block_dates("2013-01-01", "2013-01-03")]) + + def test_get_applicable_block_dates_all_lists(self): + frappe.set_user("test1@example.com") + frappe.db.set_value( + "Department", "_Test Department 1 - _TC", "leave_block_list", "_Test Leave Block List" + ) + self.assertTrue( + getdate("2013-01-02") + in [d.block_date for d in get_applicable_block_dates("2013-01-01", "2013-01-03", all_lists=True)] + ) + + def test_get_applicable_block_dates_all_lists_for_leave_type(self): + frappe.set_user("test1@example.com") + frappe.db.set_value("Department", "_Test Department 1 - _TC", "leave_block_list", "") + + block_days = [ + d.block_date + for d in get_applicable_block_dates( + "2013-01-01", "2013-01-31", all_lists=True, leave_type="Casual Leave" + ) + ] + self.assertTrue(getdate("2013-01-16") in block_days) + self.assertTrue(getdate("2013-01-19") in block_days) + self.assertTrue(getdate("2013-01-02") in block_days) + self.assertFalse(getdate("2013-01-25") in block_days) + + def test_get_applicable_block_dates_for_allowed_user_for_leave_type(self): + frappe.set_user("test1@example.com") + frappe.db.set_value("Department", "_Test Department 1 - _TC", "leave_block_list", "") + + block_days = [ + d.block_date + for d in get_applicable_block_dates("2013-01-01", "2013-01-31", leave_type="Casual Leave") + ] + self.assertTrue(getdate("2013-01-19") in block_days) + self.assertFalse(getdate("2013-01-16") in block_days) + self.assertFalse(getdate("2013-01-02") in block_days) + self.assertFalse(getdate("2013-01-25") in block_days) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/test_records.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/test_records.json new file mode 100644 index 000000000..26cbbad0b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list/test_records.json @@ -0,0 +1,101 @@ +[ + { + "company": "_Test Company", + "doctype": "Leave Block List", + "leave_block_list_allowed": [ + { + "allow_user": "test1@example.com", + "doctype": "Leave Block List Allow", + "parent": "_Test Leave Block List", + "parentfield": "leave_block_list_allowed", + "parenttype": "Leave Block List" + } + ], + "leave_block_list_dates": [ + { + "block_date": "2013-01-02", + "doctype": "Leave Block List Date", + "parent": "_Test Leave Block List", + "parentfield": "leave_block_list_dates", + "parenttype": "Leave Block List", + "reason": "First work day" + } + ], + "leave_block_list_name": "_Test Leave Block List", + "year": "_Test Fiscal Year 2013", + "applies_to_all_departments": 1 + }, + { + "company": "_Test Company", + "doctype": "Leave Block List", + "leave_type": "Casual Leave", + "leave_block_list_allowed": [ + { + "allow_user": "test1@example.com", + "doctype": "Leave Block List Allow", + "parent": "_Test Leave Block List Casual Leave 1", + "parentfield": "leave_block_list_allowed", + "parenttype": "Leave Block List" + } + ], + "leave_block_list_dates": [ + { + "block_date": "2013-01-16", + "doctype": "Leave Block List Date", + "parent": "_Test Leave Block List Casual Leave 1", + "parentfield": "leave_block_list_dates", + "parenttype": "Leave Block List", + "reason": "First work day" + } + ], + "leave_block_list_name": "_Test Leave Block List Casual Leave 1", + "year": "_Test Fiscal Year 2013", + "applies_to_all_departments": 1 + }, + { + "company": "_Test Company", + "doctype": "Leave Block List", + "leave_type": "Casual Leave", + "leave_block_list_allowed": [], + "leave_block_list_dates": [ + { + "block_date": "2013-01-19", + "doctype": "Leave Block List Date", + "parent": "_Test Leave Block List Casual Leave 2", + "parentfield": "leave_block_list_dates", + "parenttype": "Leave Block List", + "reason": "First work day" + } + ], + "leave_block_list_name": "_Test Leave Block List Casual Leave 2", + "year": "_Test Fiscal Year 2013", + "applies_to_all_departments": 1 + }, + { + "company": "_Test Company", + "doctype": "Leave Block List", + "leave_type": "Leave Without Pay", + "leave_block_list_allowed": [ + { + "allow_user": "test1@example.com", + "doctype": "Leave Block List Allow", + "parent": "_Test Leave Block List LWP", + "parentfield": "leave_block_list_allowed", + "parenttype": "Leave Block List" + } + ], + "leave_block_list_dates": [ + { + "block_date": "2013-01-25", + "doctype": "Leave Block List Date", + "parent": "_Test Leave Block List LWP", + "parentfield": "leave_block_list_dates", + "parenttype": "Leave Block List", + "reason": "First work day" + } + ], + "leave_block_list_name": "_Test Leave Block List LWP", + "year": "_Test Fiscal Year 2013", + "applies_to_all_departments": 1 + } +] \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/README.md new file mode 100644 index 000000000..a735039a1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/README.md @@ -0,0 +1 @@ +User allowed to approve leave on blocked date. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json new file mode 100644 index 000000000..0dcfd47bc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json @@ -0,0 +1,34 @@ +{ + "actions": [], + "creation": "2013-02-22 01:27:47", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "allow_user" + ], + "fields": [ + { + "fieldname": "allow_user", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Allow User", + "options": "User", + "print_width": "200px", + "reqd": 1, + "width": "200px" + } + ], + "idx": 1, + "istable": 1, + "links": [], + "modified": "2024-03-27 13:10:00.737896", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Block List Allow", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.py new file mode 100644 index 000000000..50dc12565 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.py @@ -0,0 +1,11 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class LeaveBlockListAllow(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/README.md new file mode 100644 index 000000000..658f35985 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/README.md @@ -0,0 +1 @@ +Date blocked on parent Leave Block List. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json new file mode 100644 index 000000000..df4777922 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json @@ -0,0 +1,43 @@ +{ + "actions": [], + "creation": "2013-02-22 01:27:47", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "block_date", + "reason" + ], + "fields": [ + { + "fieldname": "block_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Block Date", + "print_width": "200px", + "reqd": 1, + "width": "200px" + }, + { + "fieldname": "reason", + "fieldtype": "Text", + "in_list_view": 1, + "label": "Reason", + "print_width": "200px", + "reqd": 1, + "width": "200px" + } + ], + "idx": 1, + "istable": 1, + "links": [], + "modified": "2024-03-27 13:10:00.841020", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Block List Date", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/leave_block_list_date.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/leave_block_list_date.py new file mode 100644 index 000000000..36550ccd8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_block_list_date/leave_block_list_date.py @@ -0,0 +1,11 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class LeaveBlockListDate(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/README.md new file mode 100644 index 000000000..f7d335757 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/README.md @@ -0,0 +1 @@ +Tool to allocate leaves in bulk. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/leave_control_panel.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/leave_control_panel.js new file mode 100644 index 000000000..074806b8b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/leave_control_panel.js @@ -0,0 +1,212 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.ui.form.on("Leave Control Panel", { + setup: function (frm) { + frm.trigger("set_query"); + frm.trigger("set_leave_details"); + hrms.setup_employee_filter_group(frm); + }, + + refresh: function (frm) { + frm.page.clear_indicator(); + frm.disable_save(); + frm.trigger("get_employees"); + frm.trigger("set_primary_action"); + hrms.handle_realtime_bulk_action_notification( + frm, + "completed_bulk_leave_policy_assignment", + "Leave Policy Assignment", + ); + hrms.handle_realtime_bulk_action_notification( + frm, + "completed_bulk_leave_allocation", + "Leave Allocation", + ); + }, + + company: function (frm) { + if (frm.doc.company) { + frm.set_query("department", function () { + return { + filters: { + company: frm.doc.company, + }, + }; + }); + } + frm.trigger("get_employees"); + }, + + employment_type(frm) { + frm.trigger("get_employees"); + }, + + branch(frm) { + frm.trigger("get_employees"); + }, + + department(frm) { + frm.trigger("get_employees"); + }, + + designation(frm) { + frm.trigger("get_employees"); + }, + + employee_grade(frm) { + frm.trigger("get_employees"); + }, + + dates_based_on(frm) { + frm.trigger("reset_leave_details"); + frm.trigger("get_employees"); + }, + + from_date(frm) { + frm.trigger("get_employees"); + }, + + to_date(frm) { + frm.trigger("get_employees"); + }, + + leave_period(frm) { + frm.trigger("get_employees"); + }, + + allocate_based_on_leave_policy(frm) { + frm.trigger("get_employees"); + }, + + leave_type(frm) { + frm.trigger("get_employees"); + }, + + leave_policy(frm) { + frm.trigger("get_employees"); + }, + + reset_leave_details(frm) { + if (frm.doc.dates_based_on === "Leave Period") { + frm.add_fetch("leave_period", "from_date", "from_date"); + frm.add_fetch("leave_period", "to_date", "to_date"); + } + }, + + set_leave_details(frm) { + frm.call("get_latest_leave_period").then((r) => { + frm.set_value({ + dates_based_on: "Leave Period", + from_date: frappe.datetime.get_today(), + to_date: null, + leave_period: r.message, + carry_forward: 1, + allocate_based_on_leave_policy: 1, + leave_type: null, + no_of_days: 0, + leave_policy: null, + company: frappe.defaults.get_default("company"), + }); + }); + }, + + get_employees(frm) { + frm.call({ + method: "get_employees", + args: { + advanced_filters: frm.advanced_filters || [], + }, + doc: frm.doc, + }).then((r) => { + const columns = frm.events.get_employees_datatable_columns(); + hrms.render_employees_datatable(frm, columns, r.message); + }); + }, + + get_employees_datatable_columns() { + return [ + { + name: "employee", + id: "employee", + content: __("Employee"), + }, + { + name: "employee_name", + id: "employee_name", + content: __("Name"), + }, + { + name: "company", + id: "company", + content: __("Company"), + }, + { + name: "department", + id: "department", + content: __("Department"), + }, + ].map((x) => ({ + ...x, + editable: false, + focusable: false, + dropdown: false, + align: "left", + })); + }, + + set_query(frm) { + frm.set_query("leave_policy", function () { + return { + filters: { + docstatus: 1, + }, + }; + }); + frm.set_query("leave_period", function () { + return { + filters: { + is_active: 1, + }, + }; + }); + }, + + set_primary_action(frm) { + frm.page.set_primary_action(__("Allocate Leave"), () => { + frm.trigger("allocate_leave"); + }); + }, + + allocate_leave(frm) { + const check_map = frm.employees_datatable.rowmanager.checkMap; + const selected_employees = []; + check_map.forEach((is_checked, idx) => { + if (is_checked) + selected_employees.push(frm.employees_datatable.datamanager.data[idx].employee); + }); + + hrms.validate_mandatory_fields(frm, selected_employees); + + frappe.confirm( + __("Allocate leaves to {0} employee(s)?", [selected_employees.length]), + () => frm.events.bulk_allocate_leave(frm, selected_employees), + ); + }, + + bulk_allocate_leave(frm, employees) { + frm.call({ + method: "allocate_leave", + doc: frm.doc, + args: { + employees: employees, + }, + freeze: true, + freeze_message: __("Allocating Leave"), + }).then((r) => { + // don't refresh on complete failure + if (r.message.failed && !r.message.success) return; + frm.refresh(); + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/leave_control_panel.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/leave_control_panel.json new file mode 100644 index 000000000..4aeacfc51 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/leave_control_panel.json @@ -0,0 +1,205 @@ +{ + "actions": [], + "allow_copy": 1, + "creation": "2013-01-10 16:34:15", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "allocate_leaves_section", + "dates_based_on", + "leave_period", + "from_date", + "to_date", + "carry_forward", + "column_break_16", + "allocate_based_on_leave_policy", + "leave_policy", + "leave_type", + "no_of_days", + "quick_filters_section", + "company", + "branch", + "department", + "column_break1", + "employment_type", + "designation", + "employee_grade", + "advanced_filters_section", + "filter_list", + "select_employees_section", + "employees_html" + ], + "fields": [ + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "remember_last_selected_value": 1 + }, + { + "fieldname": "employment_type", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employment Type", + "options": "Employment Type" + }, + { + "fieldname": "branch", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Branch", + "options": "Branch" + }, + { + "fieldname": "department", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Department", + "options": "Department" + }, + { + "fieldname": "designation", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Designation", + "options": "Designation" + }, + { + "fieldname": "employee_grade", + "fieldtype": "Link", + "label": "Employee Grade", + "options": "Employee Grade" + }, + { + "fieldname": "column_break1", + "fieldtype": "Column Break", + "width": "50%" + }, + { + "default": "Today", + "depends_on": "eval:doc.dates_based_on != 'Joining Date'", + "fieldname": "from_date", + "fieldtype": "Date", + "label": "From Date", + "mandatory_depends_on": "eval:doc.dates_based_on == 'Custom Range'", + "read_only_depends_on": "eval:doc.dates_based_on == 'Leave Period'" + }, + { + "fieldname": "to_date", + "fieldtype": "Date", + "label": "To Date", + "mandatory_depends_on": "eval:doc.dates_based_on != 'Leave Period'", + "read_only_depends_on": "eval:doc.dates_based_on == 'Leave Period'" + }, + { + "depends_on": "eval:doc.allocate_based_on_leave_policy ", + "fieldname": "leave_policy", + "fieldtype": "Link", + "label": "Leave Policy", + "mandatory_depends_on": "eval:doc.allocate_based_on_leave_policy ", + "options": "Leave Policy" + }, + { + "depends_on": "eval:!doc.allocate_based_on_leave_policy", + "fieldname": "leave_type", + "fieldtype": "Link", + "label": "Leave Type", + "mandatory_depends_on": "eval:!doc.allocate_based_on_leave_policy", + "options": "Leave Type" + }, + { + "default": "1", + "description": "Add unused leaves from previous leave period's allocation to this allocation", + "fieldname": "carry_forward", + "fieldtype": "Check", + "label": "Carry Forward" + }, + { + "depends_on": "eval:!doc.allocate_based_on_leave_policy", + "fieldname": "no_of_days", + "fieldtype": "Float", + "label": "New Leaves Allocated (In Days)", + "mandatory_depends_on": "eval:!doc.allocate_based_on_leave_policy" + }, + { + "fieldname": "select_employees_section", + "fieldtype": "Section Break", + "label": "Select Employees" + }, + { + "fieldname": "allocate_leaves_section", + "fieldtype": "Section Break", + "label": "Set Leave Details" + }, + { + "fieldname": "column_break_16", + "fieldtype": "Column Break" + }, + { + "fieldname": "employees_html", + "fieldtype": "HTML", + "label": "Employees HTML", + "read_only": 1 + }, + { + "default": "Leave Period", + "fieldname": "dates_based_on", + "fieldtype": "Select", + "label": "Dates Based On", + "options": "Leave Period\nJoining Date\nCustom Range" + }, + { + "depends_on": "eval:doc.dates_based_on == 'Leave Period'", + "fieldname": "leave_period", + "fieldtype": "Link", + "label": "Leave Period", + "mandatory_depends_on": "eval:doc.dates_based_on == 'Leave Period'", + "options": "Leave Period" + }, + { + "default": "1", + "fieldname": "allocate_based_on_leave_policy", + "fieldtype": "Check", + "label": "Allocate Based On Leave Policy" + }, + { + "collapsible": 1, + "fieldname": "advanced_filters_section", + "fieldtype": "Section Break", + "label": "Advanced Filters" + }, + { + "fieldname": "filter_list", + "fieldtype": "HTML", + "label": "Filter List" + }, + { + "collapsible": 1, + "fieldname": "quick_filters_section", + "fieldtype": "Section Break", + "label": "Quick Filters" + } + ], + "hide_toolbar": 1, + "icon": "fa fa-cog", + "idx": 1, + "issingle": 1, + "links": [], + "modified": "2025-01-13 13:47:55.262534", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Control Panel", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "read": 1, + "role": "HR User", + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/leave_control_panel.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/leave_control_panel.py new file mode 100644 index 000000000..9c47ee815 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/leave_control_panel.py @@ -0,0 +1,203 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe +from frappe.model.document import Document +from frappe.utils import cint, flt, get_link_to_form + +from erpnext import get_default_company + +from hrms.hr.utils import validate_bulk_tool_fields + + +class LeaveControlPanel(Document): + def validate_fields(self, employees: list): + mandatory_fields = [] + if self.dates_based_on == "Leave Period": + mandatory_fields.append("leave_period") + elif self.dates_based_on == "Joining Date": + mandatory_fields.append("to_date") + else: + mandatory_fields.extend(["from_date", "to_date"]) + + if self.allocate_based_on_leave_policy: + mandatory_fields.append("leave_policy") + else: + mandatory_fields.extend(["leave_type", "no_of_days"]) + validate_bulk_tool_fields(self, mandatory_fields, employees, "from_date", "to_date") + + @frappe.whitelist() + def allocate_leave(self, employees: list): + self.validate_fields(employees) + if self.allocate_based_on_leave_policy: + return self.create_leave_policy_assignments(employees) + return self.create_leave_allocations(employees) + + def create_leave_allocations(self, employees: list) -> dict: + from_date, to_date = self.get_from_to_date() + failure = [] + success = [] + savepoint = "before_allocation_submission" + + for employee in employees: + try: + frappe.db.savepoint(savepoint) + allocation = frappe.new_doc("Leave Allocation") + allocation.employee = employee + allocation.leave_type = self.leave_type + allocation.from_date = from_date or frappe.db.get_value( + "Employee", employee, "date_of_joining" + ) + allocation.to_date = to_date + allocation.carry_forward = cint(self.carry_forward) + allocation.new_leaves_allocated = flt(self.no_of_days) + allocation.insert() + allocation.submit() + success.append( + {"doc": get_link_to_form("Leave Allocation", allocation.name), "employee": employee} + ) + except Exception: + frappe.db.rollback(save_point=savepoint) + allocation.log_error(f"Leave Allocation failed for employee {employee}") + failure.append(employee) + + frappe.clear_messages() + frappe.publish_realtime( + "completed_bulk_leave_allocation", + message={"success": success, "failure": failure}, + doctype="Bulk Salary Structure Assignment", + after_commit=True, + ) + + def create_leave_policy_assignments(self, employees: list) -> dict: + from_date, to_date = self.get_from_to_date() + assignment_based_on = None if self.dates_based_on == "Custom Range" else self.dates_based_on + failure = [] + success = [] + savepoint = "before_assignment_submission" + + for employee in employees: + try: + frappe.db.savepoint(savepoint) + assignment = frappe.new_doc("Leave Policy Assignment") + assignment.employee = employee + assignment.assignment_based_on = assignment_based_on + assignment.leave_policy = self.leave_policy + assignment.effective_from = from_date or frappe.db.get_value( + "Employee", employee, "date_of_joining" + ) + assignment.effective_to = to_date + assignment.leave_period = self.get("leave_period") + assignment.carry_forward = self.carry_forward + assignment.save() + assignment.submit() + success.append( + { + "doc": get_link_to_form("Leave Policy Assignment", assignment.name), + "employee": employee, + } + ) + except Exception: + frappe.db.rollback(save_point=savepoint) + assignment.log_error(f"Leave Policy Assignment failed for employee {employee}") + failure.append(employee) + + frappe.clear_messages() + frappe.publish_realtime( + "completed_bulk_leave_policy_assignment", + message={"success": success, "failure": failure}, + doctype="Bulk Salary Structure Assignment", + after_commit=True, + ) + + def get_from_to_date(self): + if self.dates_based_on == "Joining Date": + return None, self.to_date + elif self.dates_based_on == "Leave Period" and self.leave_period: + return frappe.db.get_value("Leave Period", self.leave_period, ["from_date", "to_date"]) + else: + return self.from_date, self.to_date + + @frappe.whitelist() + def get_employees(self, advanced_filters: list) -> list: + from_date, to_date = self.get_from_to_date() + + if to_date and (from_date or self.dates_based_on == "Joining Date"): + if all_employees := frappe.get_list( + "Employee", + filters=self.get_filters() + advanced_filters, + fields=["name", "employee", "employee_name", "company", "department", "date_of_joining"], + ): + return self.get_employees_without_allocations(all_employees, from_date, to_date) + + return [] + + def get_employees_without_allocations(self, all_employees: list, from_date: str, to_date: str) -> list: + Allocation = frappe.qb.DocType("Leave Allocation") + Employee = frappe.qb.DocType("Employee") + + query = ( + frappe.qb.from_(Allocation) + .join(Employee) + .on(Allocation.employee == Employee.name) + .select(Employee.name) + .distinct() + .where((Allocation.docstatus == 1) & (Allocation.employee.isin([d.name for d in all_employees]))) + ) + + if self.dates_based_on == "Joining Date": + from_date = Employee.date_of_joining + + query = query.where( + (Allocation.from_date[from_date:to_date] | Allocation.to_date[from_date:to_date]) + | ( + (Allocation.from_date <= from_date) + & (Allocation.from_date <= to_date) + & (Allocation.to_date >= from_date) + & (Allocation.to_date >= to_date) + ) + ) + + if self.allocate_based_on_leave_policy and self.leave_policy: + leave_types = frappe.get_all( + "Leave Policy Detail", {"parent": self.leave_policy}, pluck="leave_type" + ) + query = query.where(Allocation.leave_type.isin(leave_types)) + + elif not self.allocate_based_on_leave_policy and self.leave_type: + query = query.where(Allocation.leave_type == self.leave_type) + + employees_with_allocations = query.run(pluck=True) + return [d for d in all_employees if d.name not in employees_with_allocations] + + @frappe.whitelist() + def get_latest_leave_period(self): + return frappe.db.get_value( + "Leave Period", + { + "is_active": 1, + "company": self.company or get_default_company(), + }, + "name", + order_by="from_date desc", + ) + + def get_filters(self): + filter_fields = [ + "company", + "employment_type", + "branch", + "department", + "designation", + "employee_grade", + ] + filters = [["status", "=", "Active"]] + + for d in filter_fields: + if self.get(d): + if d == "employee_grade": + filters.append(["grade", "=", self.get(d)]) + else: + filters.append([d, "=", self.get(d)]) + return filters diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/test_leave_control_panel.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/test_leave_control_panel.py new file mode 100644 index 000000000..e0dfd9c02 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_control_panel/test_leave_control_panel.py @@ -0,0 +1,152 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from datetime import date + +import frappe +from frappe.tests import IntegrationTestCase + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.leave_allocation.test_leave_allocation import create_leave_allocation +from hrms.hr.doctype.leave_control_panel.leave_control_panel import LeaveControlPanel +from hrms.hr.doctype.leave_period.test_leave_period import create_leave_period +from hrms.hr.doctype.leave_policy.test_leave_policy import create_leave_policy +from hrms.tests.test_utils import create_company + + +class TestLeaveControlPanel(IntegrationTestCase): + @classmethod + def setUpClass(self): + create_company() + super().setUpClass() + frappe.db.delete("Employee", {"company": "_Test Company"}) + + self.create_records() + + @classmethod + def tearDownClass(self): + frappe.db.rollback() + + @classmethod + def create_records(self): + self.leave_period = create_leave_period(date(2030, 1, 1), date(2030, 12, 31), "_Test Company") + self.leave_policy = create_leave_policy(leave_type="Casual Leave", annual_allocation=10) + self.leave_policy.submit() + + self.emp1 = make_employee( + "employee1@example.com", + company="_Test Company", + ) + self.emp2 = make_employee( + "employee2@example.com", + company="_Test Company", + ) + self.emp3 = make_employee( + "employee3@example.com", + company="_Test Company", + ) + self.emp4 = make_employee( + "employee4@example.com", + company="_Test Company", + date_of_joining=date(2030, 1, 5), + ) + + def test_allocation_based_on_leave_type(self): + args = { + "doctype": "Leave Control Panel", + "dates_based_on": "Custom Range", + "from_date": date(2030, 4, 1), + "to_date": date(2030, 4, 30), + "allocate_based_on_leave_policy": 0, + "leave_type": "Sick Leave", + "no_of_days": 5, + } + lcp = LeaveControlPanel(args) + lcp.allocate_leave([self.emp1, self.emp2]) + + leave_allocations = frappe.get_list( + "Leave Allocation", + filters={"employee": ["in", [self.emp1, self.emp2]]}, + fields=["leave_type", "total_leaves_allocated", "from_date", "to_date"], + ) + self.assertEqual(leave_allocations[0], leave_allocations[1]) + self.assertEqual(leave_allocations[0].leave_type, args["leave_type"]) + self.assertEqual(leave_allocations[0].total_leaves_allocated, args["no_of_days"]) + self.assertEqual(leave_allocations[0].from_date, args["from_date"]) + self.assertEqual(leave_allocations[0].to_date, args["to_date"]) + + def test_allocation_based_on_leave_policy_assignment(self): + args = { + "doctype": "Leave Control Panel", + "dates_based_on": "Leave Period", + "leave_period": self.leave_period.name, + "allocate_based_on_leave_policy": 1, + "leave_policy": self.leave_policy.name, + } + lcp = LeaveControlPanel(args) + lcp.allocate_leave([self.emp3]) + + lpa = frappe.get_value( + "Leave Policy Assignment", + {"employee": self.emp3}, + ["leave_policy", "leave_period", "effective_from", "effective_to"], + as_dict=1, + ) + self.assertEqual(lpa.leave_policy, self.leave_policy.name) + self.assertEqual(lpa.leave_period, self.leave_period.name) + self.assertEqual(lpa.effective_from, self.leave_period.from_date) + self.assertEqual(lpa.effective_to, self.leave_period.to_date) + + def test_allocation_based_on_joining_date(self): + doj = date(2030, 1, 5) + to_date = date(2030, 12, 31) + + arg = { + "doctype": "Leave Control Panel", + "dates_based_on": "Joining Date", + "to_date": to_date, + "allocate_based_on_leave_policy": 1, + "leave_policy": self.leave_policy.name, + } + + lcp = LeaveControlPanel(arg) + lcp.allocate_leave([self.emp4]) + + lpa = frappe.get_value( + "Leave Policy Assignment", + {"employee": self.emp4}, + ["leave_policy", "leave_period", "effective_from", "effective_to"], + as_dict=1, + ) + self.assertEqual(lpa.leave_policy, self.leave_policy.name) + self.assertEqual(lpa.effective_from, doj) + self.assertEqual(lpa.effective_to, to_date) + + def test_get_employees(self): + allocation = create_leave_allocation( + employee=self.emp1, + leave_type="Casual Leave", + from_date=self.leave_period.from_date, + to_date=self.leave_period.to_date, + ) + allocation.submit() + + args = { + "doctype": "Leave Control Panel", + "company": "_Test Company", + "dates_based_on": "Leave Period", + "leave_period": self.leave_period.name, + "allocate_based_on_leave_policy": 1, + "leave_policy": self.leave_policy.name, + } + advanced_filters = [["Employee", "date_of_joining", "<", date(2030, 1, 5)]] + lcp = LeaveControlPanel(args) + employees = lcp.get_employees(advanced_filters) + employee_names = [d.name for d in employees] + + # employee already having an allocation + self.assertNotIn(self.emp1, employee_names) + # advanced filter applied + self.assertNotIn(self.emp4, employee_names) + self.assertEqual(len(employees), 2) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/leave_encashment.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/leave_encashment.js new file mode 100644 index 000000000..9ebd73da1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/leave_encashment.js @@ -0,0 +1,128 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.provide("erpnext.accounts.dimensions"); + +frappe.ui.form.on("Leave Encashment", { + onload: function (frm) { + // Ignore cancellation of doctype on cancel all. + frm.ignore_doctypes_on_cancel_all = ["Leave Ledger Entry"]; + erpnext.accounts.dimensions.setup_dimension_filters(frm, frm.doctype); + }, + setup: function (frm) { + frm.set_query("leave_type", function () { + return { + filters: { + allow_encashment: 1, + }, + }; + }); + frm.set_query("leave_period", function () { + return { + filters: { + is_active: 1, + }, + }; + }); + + frm.set_query("payable_account", function () { + if (!frm.doc.employee) { + frappe.msgprint(__("Please select employee first")); + } + let company_currency = erpnext.get_currency(frm.doc.company); + let currencies = [company_currency]; + if (frm.doc.currency && frm.doc.currency != company_currency) { + currencies.push(frm.doc.currency); + } + + return { + filters: { + company: frm.doc.company, + account_currency: ["in", currencies], + account_type: "Payable", + }, + }; + }); + }, + refresh: function (frm) { + cur_frm.set_intro(""); + if (frm.doc.__islocal && !frappe.user_roles.includes("Employee")) { + frm.set_intro(__("Fill the form and save it")); + } + + if ( + frm.doc.docstatus === 1 && + frm.doc.pay_via_payment_entry == 1 && + frm.doc.status !== "Paid" + ) { + frm.add_custom_button( + __("Payment"), + function () { + frm.events.make_payment_entry(frm); + }, + __("Create"), + ); + } + + hrms.leave_utils.add_view_ledger_button(frm); + }, + employee: function (frm) { + if (frm.doc.employee) { + frappe.run_serially([ + () => frm.trigger("get_employee_currency"), + () => frm.trigger("get_leave_details_for_encashment"), + ]); + } + }, + company: function (frm) { + erpnext.accounts.dimensions.update_dimension(frm, frm.doctype); + }, + leave_type: function (frm) { + frm.trigger("get_leave_details_for_encashment"); + }, + encashment_date: function (frm) { + frm.trigger("get_leave_details_for_encashment"); + }, + get_leave_details_for_encashment: function (frm) { + frm.set_value("actual_encashable_days", 0); + frm.set_value("encashment_days", 0); + + if (frm.doc.docstatus === 0 && frm.doc.employee && frm.doc.leave_type) { + return frappe.call({ + method: "get_leave_details_for_encashment", + doc: frm.doc, + callback: function (r) { + frm.refresh_fields(); + }, + }); + } + }, + + get_employee_currency: function (frm) { + frappe.call({ + method: "hrms.payroll.doctype.salary_structure_assignment.salary_structure_assignment.get_employee_currency", + args: { + employee: frm.doc.employee, + }, + callback: function (r) { + if (r.message) { + frm.set_value("currency", r.message); + frm.refresh_fields(); + } + }, + }); + }, + make_payment_entry: function (frm) { + return frappe.call({ + method: "hrms.overrides.employee_payment_entry.get_payment_entry_for_employee", + args: { + dt: frm.doc.doctype, + dn: frm.doc.name, + }, + callback: function (r) { + var doclist = frappe.model.sync(r.message); + frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + }, + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/leave_encashment.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/leave_encashment.json new file mode 100644 index 000000000..f416e23fe --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/leave_encashment.json @@ -0,0 +1,349 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "HR-ENC-.YYYY.-.#####", + "creation": "2018-04-13 15:31:51.197046", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "department", + "company", + "column_break_4", + "leave_period", + "leave_type", + "leave_allocation", + "leave_balance", + "column_break_cevy", + "actual_encashable_days", + "encashment_days", + "encashment_amount", + "accounting_section", + "pay_via_payment_entry", + "expense_account", + "payable_account", + "column_break_vdnb", + "posting_date", + "currency", + "paid_amount", + "accounting_dimensions_section", + "cost_center", + "dimension_col_break", + "payroll", + "encashment_date", + "column_break_14", + "additional_salary", + "section_break_svbb", + "amended_from", + "status" + ], + "fields": [ + { + "fieldname": "leave_period", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Leave Period", + "options": "Leave Period", + "reqd": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "leave_type", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Leave Type", + "options": "Leave Type", + "reqd": 1 + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "fieldname": "leave_allocation", + "fieldtype": "Link", + "label": "Leave Allocation", + "no_copy": 1, + "options": "Leave Allocation", + "read_only": 1 + }, + { + "fieldname": "leave_balance", + "fieldtype": "Float", + "label": "Leave Balance", + "no_copy": 1, + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Leave Encashment", + "print_hide": 1, + "read_only": 1 + }, + { + "depends_on": "eval:doc.pay_via_payment_entry==0;", + "fieldname": "payroll", + "fieldtype": "Section Break", + "label": "Payroll" + }, + { + "fieldname": "encashment_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Encashment Amount", + "no_copy": 1, + "options": "currency", + "read_only": 1 + }, + { + "default": "Today", + "fieldname": "encashment_date", + "fieldtype": "Date", + "label": "Encashment Date" + }, + { + "fieldname": "additional_salary", + "fieldtype": "Link", + "label": "Additional Salary", + "no_copy": 1, + "options": "Additional Salary", + "read_only": 1 + }, + { + "depends_on": "eval:(doc.docstatus==1 || doc.employee)", + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "print_hide": 1, + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "column_break_14", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "encashment_days", + "fieldtype": "Float", + "label": "Encashment Days", + "no_copy": 1 + }, + { + "description": "Number of leaves eligible for encashment based on leave type settings", + "fieldname": "actual_encashable_days", + "fieldtype": "Float", + "label": "Actual Encashable Days", + "no_copy": 1, + "read_only": 1 + }, + { + "fieldname": "column_break_cevy", + "fieldtype": "Column Break" + }, + { + "depends_on": "pay_via_payment_entry", + "fieldname": "payable_account", + "fieldtype": "Link", + "label": "Payable Account", + "mandatory_depends_on": "pay_via_payment_entry", + "options": "Account" + }, + { + "fieldname": "section_break_svbb", + "fieldtype": "Section Break", + "label": "More Info" + }, + { + "default": "0", + "description": "Process leave encashment via a separate Payment Entry instead of Salary Slip", + "fieldname": "pay_via_payment_entry", + "fieldtype": "Check", + "label": "Pay Via Payment Entry" + }, + { + "fieldname": "accounting_section", + "fieldtype": "Section Break", + "label": "Accounting" + }, + { + "fieldname": "column_break_vdnb", + "fieldtype": "Column Break" + }, + { + "default": "0.0", + "depends_on": "pay_via_payment_entry", + "description": "Amount paid against this encashment", + "fieldname": "paid_amount", + "fieldtype": "Currency", + "label": "Paid Amount", + "no_copy": 1, + "read_only": 1 + }, + { + "fieldname": "status", + "fieldtype": "Select", + "label": "Status", + "options": "Draft\nUnpaid\nPaid\nSubmitted\nCancelled", + "read_only": 1 + }, + { + "default": "Today", + "depends_on": "pay_via_payment_entry", + "fieldname": "posting_date", + "fieldtype": "Date", + "label": "Posting Date" + }, + { + "depends_on": "pay_via_payment_entry", + "fieldname": "expense_account", + "fieldtype": "Link", + "label": "Expense Account", + "mandatory_depends_on": "pay_via_payment_entry", + "options": "Account" + }, + { + "depends_on": "pay_via_payment_entry", + "fieldname": "accounting_dimensions_section", + "fieldtype": "Section Break", + "label": "Accounting Dimensions" + }, + { + "fieldname": "cost_center", + "fieldtype": "Link", + "label": "Cost Center", + "mandatory_depends_on": "pay_via_payment_entry", + "options": "Cost Center" + }, + { + "fieldname": "dimension_col_break", + "fieldtype": "Column Break" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2025-02-21 13:11:01.939992", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Encashment", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "write": 1 + } + ], + "search_fields": "employee,employee_name", + "sort_field": "creation", + "sort_order": "DESC", + "states": [ + { + "color": "Red", + "title": "Draft" + }, + { + "color": "Green", + "title": "Paid" + }, + { + "color": "Orange", + "title": "Unpaid" + }, + { + "color": "Red", + "title": "Cancelled" + } + ], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/leave_encashment.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/leave_encashment.py new file mode 100644 index 000000000..ddec9be90 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/leave_encashment.py @@ -0,0 +1,352 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _, bold +from frappe.model.document import Document +from frappe.utils import flt, format_date, get_link_to_form, getdate + +from erpnext.accounts.general_ledger import make_gl_entries +from erpnext.controllers.accounts_controller import AccountsController + +from hrms.hr.doctype.leave_application.leave_application import get_leaves_for_period +from hrms.hr.doctype.leave_ledger_entry.leave_ledger_entry import create_leave_ledger_entry +from hrms.hr.utils import set_employee_name, validate_active_employee +from hrms.payroll.doctype.salary_structure_assignment.salary_structure_assignment import ( + get_assigned_salary_structure, +) + + +class LeaveEncashment(AccountsController): + def validate(self): + set_employee_name(self) + validate_active_employee(self.employee) + self.encashment_date = self.encashment_date or getdate() + self.get_leave_details_for_encashment() + self.set_status() + + if not self.pay_via_payment_entry: + self.set_salary_structure() + + def set_salary_structure(self): + self._salary_structure = get_assigned_salary_structure(self.employee, self.encashment_date) + if not self._salary_structure: + frappe.throw( + _("No Salary Structure assigned to Employee {0} on the given date {1}").format( + self.employee, frappe.bold(format_date(self.encashment_date)) + ) + ) + + def before_submit(self): + if not self.encashment_amount or self.encashment_amount <= 0: + frappe.throw(_("You can only submit Leave Encashment for a valid encashment amount")) + + def on_submit(self): + if not self.leave_allocation: + self.db_set("leave_allocation", self.get_leave_allocation().get("name")) + + if self.pay_via_payment_entry: + self.create_gl_entries() + else: + self.create_additional_salary() + + self.set_encashed_leaves_in_allocation() + self.create_leave_ledger_entry() + + def on_cancel(self): + if self.additional_salary: + frappe.get_doc("Additional Salary", self.additional_salary).cancel() + self.db_set("additional_salary", "") + + if self.leave_allocation: + frappe.db.set_value( + "Leave Allocation", + self.leave_allocation, + "total_leaves_encashed", + frappe.db.get_value("Leave Allocation", self.leave_allocation, "total_leaves_encashed") + - self.encashment_days, + ) + + if self.pay_via_payment_entry: + self.create_gl_entries(cancel=True) + + self.create_leave_ledger_entry(submit=False) + self.ignore_linked_doctypes = ["GL Entry", "Payment Ledger Entry", "Advance Payment Ledger Entry"] + self.set_status(update=True) + + @frappe.whitelist() + def get_leave_details_for_encashment(self): + self.set_leave_balance() + self.set_actual_encashable_days() + self.set_encashment_days() + self.set_encashment_amount() + + def get_encashment_settings(self): + return frappe.get_cached_value( + "Leave Type", + self.leave_type, + ["allow_encashment", "non_encashable_leaves", "max_encashable_leaves"], + as_dict=True, + ) + + def set_actual_encashable_days(self): + encashment_settings = self.get_encashment_settings() + if not encashment_settings.allow_encashment: + frappe.throw(_("Leave Type {0} is not encashable").format(self.leave_type)) + + self.actual_encashable_days = self.leave_balance + leave_form_link = get_link_to_form("Leave Type", self.leave_type) + + # TODO: Remove this weird setting if possible. Retained for backward compatibility + if encashment_settings.non_encashable_leaves: + actual_encashable_days = self.leave_balance - encashment_settings.non_encashable_leaves + self.actual_encashable_days = actual_encashable_days if actual_encashable_days > 0 else 0 + frappe.msgprint( + _("Excluded {0} Non-Encashable Leaves for {1}").format( + bold(encashment_settings.non_encashable_leaves), + leave_form_link, + ), + ) + + if encashment_settings.max_encashable_leaves: + self.actual_encashable_days = min( + self.actual_encashable_days, encashment_settings.max_encashable_leaves + ) + frappe.msgprint( + _("Maximum encashable leaves for {0} are {1}").format( + leave_form_link, bold(encashment_settings.max_encashable_leaves) + ), + title=_("Encashment Limit Applied"), + ) + + def set_encashment_days(self): + # allow overwriting encashment days + if not self.encashment_days: + self.encashment_days = self.actual_encashable_days + + if self.encashment_days > self.actual_encashable_days: + frappe.throw( + _("Encashment Days cannot exceed {0} {1} as per Leave Type settings").format( + bold(_("Actual Encashable Days")), + self.actual_encashable_days, + ) + ) + + def set_leave_balance(self): + allocation = self.get_leave_allocation() + if not allocation: + frappe.throw( + _("No Leaves Allocated to Employee: {0} for Leave Type: {1}").format( + self.employee, self.leave_type + ) + ) + + self.leave_balance = ( + allocation.total_leaves_allocated + - allocation.carry_forwarded_leaves_count + # adding this because the function returns a -ve number + + get_leaves_for_period( + self.employee, self.leave_type, allocation.from_date, self.encashment_date + ) + ) + self.leave_allocation = allocation.name + + def create_additional_salary(self): + additional_salary = frappe.new_doc("Additional Salary") + additional_salary.company = frappe.get_value("Employee", self.employee, "company") + additional_salary.employee = self.employee + additional_salary.currency = self.currency + earning_component = frappe.get_value("Leave Type", self.leave_type, "earning_component") + if not earning_component: + frappe.throw(_("Please set Earning Component for Leave type: {0}.").format(self.leave_type)) + additional_salary.salary_component = earning_component + additional_salary.payroll_date = self.encashment_date + additional_salary.amount = self.encashment_amount + additional_salary.overwrite_salary_structure_amount = 0 + additional_salary.ref_doctype = self.doctype + additional_salary.ref_docname = self.name + additional_salary.submit() + + def set_encashed_leaves_in_allocation(self): + frappe.db.set_value( + "Leave Allocation", + self.leave_allocation, + "total_leaves_encashed", + frappe.db.get_value("Leave Allocation", self.leave_allocation, "total_leaves_encashed") + + self.encashment_days, + ) + + def set_encashment_amount(self): + if not hasattr(self, "_salary_structure"): + self.set_salary_structure() + + per_day_encashment = frappe.get_value( + "Salary Structure Assignment", + filters={ + "employee": self.employee, + "salary_structure": self._salary_structure, + "docstatus": 1, + "from_date": ["<=", self.encashment_date], + }, + fieldname=["leave_encashment_amount_per_day"], + order_by="from_date desc", + ) + + if not per_day_encashment: + per_day_encashment = frappe.db.get_value( + "Salary Structure", + self._salary_structure, + "leave_encashment_amount_per_day", + ) + + per_day_encashment = per_day_encashment or 0 + + self.encashment_amount = self.encashment_days * per_day_encashment if per_day_encashment > 0 else 0 + + def set_status(self, update=False): + precision = self.precision("paid_amount") + status = None + + if self.docstatus == 0: + status = "Draft" + elif self.docstatus == 1: + if flt(self.encashment_amount) > flt(self.paid_amount, precision): + status = "Unpaid" + else: + status = "Paid" + elif self.docstatus == 2: + status = "Cancelled" + + if update: + self.db_set("status", status) + self.notify_update() + else: + self.status = status + + def get_leave_allocation(self): + date = self.encashment_date or getdate() + + LeaveAllocation = frappe.qb.DocType("Leave Allocation") + leave_allocation = ( + frappe.qb.from_(LeaveAllocation) + .select( + LeaveAllocation.name, + LeaveAllocation.from_date, + LeaveAllocation.to_date, + LeaveAllocation.total_leaves_allocated, + LeaveAllocation.carry_forwarded_leaves_count, + ) + .where( + ((LeaveAllocation.from_date <= date) & (date <= LeaveAllocation.to_date)) + & (LeaveAllocation.docstatus == 1) + & (LeaveAllocation.leave_type == self.leave_type) + & (LeaveAllocation.employee == self.employee) + ) + ).run(as_dict=True) + + return leave_allocation[0] if leave_allocation else None + + def create_leave_ledger_entry(self, submit=True): + args = frappe._dict( + leaves=self.encashment_days * -1, + from_date=self.encashment_date, + to_date=self.encashment_date, + is_carry_forward=0, + ) + create_leave_ledger_entry(self, args, submit) + + # create reverse entry for expired leaves + leave_allocation = self.get_leave_allocation() + if not leave_allocation: + return + + to_date = leave_allocation.get("to_date") + + can_expire = not frappe.db.get_value("Leave Type", self.leave_type, "is_carry_forward") + if to_date < getdate() and can_expire: + args = frappe._dict( + leaves=self.encashment_days, from_date=to_date, to_date=to_date, is_carry_forward=0 + ) + create_leave_ledger_entry(self, args, submit) + + def set_total_advance_paid(self): + from frappe.query_builder.functions import Abs, Sum + + aple = frappe.qb.DocType("Advance Payment Ledger Entry") + paid_amount = ( + frappe.qb.from_(aple) + .select(Abs(Sum(aple.amount)).as_("paid_amount")) + .where( + (aple.company == self.company) + & (aple.against_voucher_type == self.doctype) + & (aple.against_voucher_no == self.name) + & (aple.delinked == 0) + ) + ).run(as_dict=True)[0].paid_amount or 0 + if flt(paid_amount) > self.encashment_amount: + frappe.throw(_("Row {0}# Paid Amount cannot be greater than Encashment amount")) + + self.db_set("paid_amount", paid_amount) + self.set_status(update=True) + + def create_gl_entries(self, cancel=False): + gl_entries = self.get_gl_entries() + make_gl_entries(gl_entries, cancel) + + def get_gl_entries(self): + gl_entry = [] + + # payable entry + gl_entry.append( + self.get_gl_dict( + { + "account": self.payable_account, + "credit": self.encashment_amount, + "credit_in_account_currency": self.encashment_amount, + "against": self.expense_account, + "party_type": "Employee", + "party": self.employee, + "against_voucher_type": self.doctype, + "against_voucher": self.name, + "cost_center": self.cost_center, + }, + item=self, + ) + ) + + # expense entry + gl_entry.append( + self.get_gl_dict( + { + "account": self.expense_account, + "debit": self.encashment_amount, + "debit_in_account_currency": self.encashment_amount, + "against": self.payable_account, + "cost_center": self.cost_center, + }, + item=self, + ) + ) + + return gl_entry + + def on_discard(self): + self.db_set("status", "Cancelled") + + +def create_leave_encashment(leave_allocation): + """Creates leave encashment for the given allocations""" + for allocation in leave_allocation: + if not get_assigned_salary_structure(allocation.employee, allocation.to_date): + continue + leave_encashment = frappe.get_doc( + dict( + doctype="Leave Encashment", + leave_period=allocation.leave_period, + employee=allocation.employee, + leave_type=allocation.leave_type, + encashment_date=allocation.to_date, + ) + ) + leave_encashment.insert(ignore_permissions=True) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/test_leave_encashment.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/test_leave_encashment.py new file mode 100644 index 000000000..8fbbd9ed9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_encashment/test_leave_encashment.py @@ -0,0 +1,483 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, get_year_ending, get_year_start, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.expense_claim.test_expense_claim import get_payable_account +from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import assign_holiday_list +from hrms.hr.doctype.leave_allocation.leave_allocation import get_unused_leaves +from hrms.hr.doctype.leave_ledger_entry.leave_ledger_entry import process_expired_allocation +from hrms.hr.doctype.leave_period.test_leave_period import create_leave_period +from hrms.hr.doctype.leave_policy.test_leave_policy import create_leave_policy +from hrms.hr.doctype.leave_policy_assignment.leave_policy_assignment import ( + create_assignment_for_multiple_employees, +) +from hrms.payroll.doctype.salary_slip.test_salary_slip import ( + make_holiday_list, + make_leave_application, +) +from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure +from hrms.tests.test_utils import get_first_sunday + +test_records = frappe.get_test_records("Leave Type") + + +class TestLeaveEncashment(IntegrationTestCase): + def setUp(self): + for dt in [ + "Leave Period", + "Leave Policy Assignment", + "Leave Allocation", + "Leave Ledger Entry", + "Additional Salary", + "Leave Encashment", + "Leave Application", + ]: + frappe.db.delete(dt) + + self.leave_type = "_Test Leave Type Encashment" + if frappe.db.exists("Leave Type", self.leave_type): + frappe.delete_doc("Leave Type", self.leave_type, force=True) + frappe.get_doc(test_records[2]).insert() + + date = getdate() + year_start = getdate(get_year_start(date)) + year_end = getdate(get_year_ending(date)) + + self.holiday_list = make_holiday_list("_Test Leave Encashment", year_start, year_end) + + # create the leave policy + leave_policy = create_leave_policy(leave_type=self.leave_type, annual_allocation=10) + leave_policy.submit() + + # create employee, salary structure and assignment + self.employee = make_employee("test_employee_encashment@example.com", company="_Test Company") + + self.leave_period = create_leave_period(year_start, year_end, "_Test Company") + + data = { + "assignment_based_on": "Leave Period", + "leave_policy": leave_policy.name, + "leave_period": self.leave_period.name, + } + + create_assignment_for_multiple_employees([self.employee], frappe._dict(data)) + + make_salary_structure( + "Salary Structure for Encashment", + "Monthly", + self.employee, + other_details={"leave_encashment_amount_per_day": 50}, + ) + + @assign_holiday_list("_Test Leave Encashment", "_Test Company") + def test_leave_balance_value_and_amount(self): + leave_encashment = self.create_test_leave_encashment() + + self.assertEqual(leave_encashment.leave_balance, 10) + self.assertTrue(leave_encashment.actual_encashable_days, 5) + self.assertTrue(leave_encashment.encashment_days, 5) + self.assertEqual(leave_encashment.encashment_amount, 250) + + # assert links + leave_encashment.submit() + self.assertIsNotNone(leave_encashment.leave_allocation) + additional_salary_amount = frappe.db.get_value( + "Additional Salary", {"ref_docname": leave_encashment.name}, "amount" + ) + self.assertEqual(additional_salary_amount, leave_encashment.encashment_amount) + + @assign_holiday_list("_Test Leave Encashment", "_Test Company") + def test_non_encashable_leaves_setting(self): + frappe.db.set_value( + "Leave Type", + self.leave_type, + { + "max_encashable_leaves": 0, + "non_encashable_leaves": 5, + }, + ) + + first_sunday = get_first_sunday(self.holiday_list, for_date=self.leave_period.from_date) + # 3 day leave application + make_leave_application( + self.employee, + add_days(first_sunday, 1), + add_days(first_sunday, 3), + "_Test Leave Type Encashment", + ) + + leave_encashment = self.create_test_leave_encashment() + + self.assertEqual(leave_encashment.leave_balance, 7) + # non-encashable leaves = 5, total leaves are 7, so encashable days = 7-5 = 2 + # with a charge of 50 per day + self.assertTrue(leave_encashment.actual_encashable_days, 2) + self.assertTrue(leave_encashment.encashment_days, 2) + self.assertEqual(leave_encashment.encashment_amount, 100) + + # assert links + leave_encashment.submit() + additional_salary_amount = frappe.db.get_value( + "Additional Salary", {"ref_docname": leave_encashment.name}, "amount" + ) + self.assertEqual(additional_salary_amount, leave_encashment.encashment_amount) + + @assign_holiday_list("_Test Leave Encashment", "_Test Company") + def test_max_encashable_leaves_setting(self): + frappe.db.set_value( + "Leave Type", + self.leave_type, + { + "max_encashable_leaves": 3, + "non_encashable_leaves": 0, + }, + ) + + # 3 day leave application + first_sunday = get_first_sunday(self.holiday_list, for_date=self.leave_period.from_date) + make_leave_application( + self.employee, + add_days(first_sunday, 1), + add_days(first_sunday, 3), + "_Test Leave Type Encashment", + ) + + leave_encashment = self.create_test_leave_encashment() + + self.assertEqual(leave_encashment.leave_balance, 7) + # leave balance = 7, but encashment limit = 3 so encashable days = 3 + self.assertTrue(leave_encashment.actual_encashable_days, 3) + self.assertTrue(leave_encashment.encashment_days, 3) + self.assertEqual(leave_encashment.encashment_amount, 150) + + # assert links + leave_encashment.submit() + additional_salary_amount = frappe.db.get_value( + "Additional Salary", {"ref_docname": leave_encashment.name}, "amount" + ) + self.assertEqual(additional_salary_amount, leave_encashment.encashment_amount) + + @assign_holiday_list("_Test Leave Encashment", "_Test Company") + def test_max_encashable_leaves_and_non_encashable_leaves_setting(self): + frappe.db.set_value( + "Leave Type", + self.leave_type, + { + "max_encashable_leaves": 1, + "non_encashable_leaves": 5, + }, + ) + + # 3 day leave application + first_sunday = get_first_sunday(self.holiday_list, for_date=self.leave_period.from_date) + make_leave_application( + self.employee, + add_days(first_sunday, 1), + add_days(first_sunday, 3), + "_Test Leave Type Encashment", + ) + + leave_encashment = self.create_test_leave_encashment() + + self.assertEqual(leave_encashment.leave_balance, 7) + # 1. non-encashable leaves = 5, total leaves are 7, so encashable days = 7-5 = 2 + # 2. even though this leaves 2 encashable days, max encashable leaves = 1, so encashable days = 1 + self.assertTrue(leave_encashment.actual_encashable_days, 1) + self.assertTrue(leave_encashment.encashment_days, 1) + self.assertEqual(leave_encashment.encashment_amount, 50) + + # assert links + leave_encashment.submit() + additional_salary_amount = frappe.db.get_value( + "Additional Salary", {"ref_docname": leave_encashment.name}, "amount" + ) + self.assertEqual(additional_salary_amount, leave_encashment.encashment_amount) + + @assign_holiday_list("_Test Leave Encashment", "_Test Company") + def test_creation_of_leave_ledger_entry_on_submit(self): + leave_encashment = self.create_test_leave_encashment() + leave_encashment.submit() + + leave_ledger_entry = frappe.get_all( + "Leave Ledger Entry", fields="*", filters=dict(transaction_name=leave_encashment.name) + ) + + self.assertEqual(len(leave_ledger_entry), 1) + self.assertEqual(leave_ledger_entry[0].employee, leave_encashment.employee) + self.assertEqual(leave_ledger_entry[0].leave_type, leave_encashment.leave_type) + self.assertEqual(leave_ledger_entry[0].leaves, leave_encashment.encashment_days * -1) + + # check if leave ledger entry is deleted on cancellation + frappe.db.delete("Additional Salary", {"ref_docname": leave_encashment.name}) + leave_encashment.cancel() + self.assertFalse(frappe.db.exists("Leave Ledger Entry", {"transaction_name": leave_encashment.name})) + + @assign_holiday_list("_Test Leave Encashment", "_Test Company") + def test_unused_leaves_after_leave_encashment_for_carry_forwarding_leave_type(self): + employee = make_employee("test_employee2_encashment@example.com", company="_Test Company") + # allocated 10 leaves, encashed 5 + leave_encashment = self.get_encashment_created_after_leave_period( + employee, is_carry_forward=1, encashment_days=5 + ) + # check if unused leaves are 5 before processing expired allocation runs + unused_leaves = get_unused_leaves( + employee, self.leave_type, self.leave_period.from_date, self.leave_period.to_date + ) + self.assertEqual(unused_leaves, 5) + + # check if a single leave ledger entry is created + self.assertEqual(frappe.get_value("Leave Type", self.leave_type, "is_carry_forward"), 1) + leave_ledger_entry = frappe.get_all( + "Leave Ledger Entry", fields=["leaves"], filters={"transaction_name": leave_encashment.name} + ) + self.assertEqual(len(leave_ledger_entry), 1) + self.assertEqual(leave_ledger_entry[0].leaves, leave_encashment.encashment_days * -1) + + # check if unused leaves are 5 after processing expired allocation runs + process_expired_allocation() + unused_leaves = get_unused_leaves( + employee, self.leave_type, self.leave_period.from_date, self.leave_period.to_date + ) + self.assertEqual(unused_leaves, 5) + + @assign_holiday_list("_Test Leave Encashment", "_Test Company") + def test_leave_expiry_after_leave_encashment_for_non_carry_forwarding_leave_type(self): + employee = make_employee("test_employee3_encashment@example.com", company="_Test Company") + # allocated 10 leaves, encashed 3 + + leave_encashment = self.get_encashment_created_after_leave_period( + employee, is_carry_forward=0, encashment_days=3 + ) + # when leave encashment is created after leave allocation period is over, + # it's assumed that process expired allocation has expired the leaves, + # hence a reverse ledger entry should be created for the encashment + # check if two leave ledger entries are created + self.assertEqual(frappe.get_value("Leave Type", self.leave_type, "is_carry_forward"), 0) + leave_ledger_entry = frappe.get_all( + "Leave Ledger Entry", + fields="*", + filters={"transaction_name": leave_encashment.name}, + order_by="leaves", + ) + self.assertEqual(len(leave_ledger_entry), 2) + self.assertEqual(leave_ledger_entry[0].leaves, leave_encashment.encashment_days * -1) + self.assertEqual(leave_ledger_entry[1].leaves, leave_encashment.encashment_days * 1) + + # check if 10 leaves are expired after processing expired allocation runs + process_expired_allocation() + + expired_leaves = frappe.get_value( + "Leave Ledger Entry", + {"employee": employee, "leave_type": self.leave_type, "is_expired": 1}, + "leaves", + ) + self.assertEqual(expired_leaves, -10) + + def get_encashment_created_after_leave_period(self, employee, is_carry_forward, encashment_days): + frappe.db.delete("Leave Period", {"name": self.leave_period.name}) + # create new leave period that has end date of yesterday + start_date = add_days(getdate(), -30) + end_date = add_days(getdate(), -1) + self.leave_period = create_leave_period(start_date, end_date, "_Test Company") + frappe.db.set_value( + "Leave Type", + self.leave_type, + { + "is_carry_forward": is_carry_forward, + }, + ) + + leave_policy = frappe.get_value("Leave Policy", {"title": "Test Leave Policy"}, "name") + data = { + "assignment_based_on": "Leave Period", + "leave_policy": leave_policy, + "leave_period": self.leave_period.name, + } + create_assignment_for_multiple_employees([employee], frappe._dict(data)) + + make_salary_structure( + "Salary Structure for Encashment", + "Monthly", + employee, + from_date=start_date, + other_details={"leave_encashment_amount_per_day": 50}, + ) + + leave_encashment = self.create_test_leave_encashment( + employee=employee, encashment_days=encashment_days, leave_type=self.leave_type + ) + leave_encashment.submit() + return leave_encashment + + @assign_holiday_list("_Test Leave Encashment", "_Test Company") + def test_status_of_leave_encashment_after_payment_via_salary_slip(self): + from hrms.payroll.doctype.salary_slip.test_salary_slip import make_employee_salary_slip + from hrms.payroll.doctype.salary_structure.test_salary_structure import ( + create_salary_structure_assignment, + ) + + salary_structure = make_salary_structure( + "Salary Structure for Encashment", + "Monthly", + self.employee, + other_details={"leave_encashment_amount_per_day": 50}, + ) + + create_salary_structure_assignment( + employee=self.employee, + salary_structure=salary_structure.name, + company="_Test Company", + currency="INR", + ) + + leave_encashment = self.create_test_leave_encashment(encashment_date=getdate()) + leave_encashment.submit() + + ss = make_employee_salary_slip(self.employee, "Monthly", salary_structure=salary_structure.name) + + ss.submit() + leave_encashment.reload() + self.assertEqual(leave_encashment.status, "Paid") + + ss.cancel() + leave_encashment.reload() + self.assertEqual(leave_encashment.status, "Unpaid") + + def test_status_of_leave_encashment_after_payment_via_payment_entry_and_fnf(self): + from hrms.hr.doctype.full_and_final_statement.test_full_and_final_statement import ( + create_full_and_final_statement, + ) + from hrms.overrides.employee_payment_entry import get_payment_entry_for_employee + + payable_account = get_payable_account("_Test Company") + + leave_encashment = self.create_test_leave_encashment( + pay_via_payment_entry=1, payable_account=payable_account + ) + leave_encashment.submit() + + pe = get_payment_entry_for_employee(leave_encashment.doctype, leave_encashment.name) + pe.reference_no = "1" + pe.reference_date = getdate() + pe.save() + pe.submit() + + leave_encashment.reload() + self.assertEqual(leave_encashment.status, "Paid") + + pe.cancel() + leave_encashment.reload() + self.assertEqual(leave_encashment.status, "Unpaid") + + frappe.db.set_value("Employee", self.employee, "relieving_date", getdate()) + + fnf = create_full_and_final_statement(self.employee) + fnf.payables = [] + fnf.receivables = [] + fnf.append( + "payables", + { + "component": "Leave Encashment", + "reference_document_type": "Leave Encashment", + "reference_document": leave_encashment.name, + "amount": leave_encashment.encashment_amount, + "account": leave_encashment.payable_account, + "status": "Settled", + }, + ) + fnf.submit() + jv = fnf.create_journal_entry() + jv.accounts[1].account = ( + frappe.get_cached_value("Company", "_Test Company", "default_bank_account") or "_Test Bank - _TC" + ) + jv.cheque_no = "123456" + jv.cheque_date = getdate() + jv.save() + jv.submit() + + leave_encashment.reload() + self.assertEqual(leave_encashment.status, "Paid") + + jv.cancel() + leave_encashment.reload() + self.assertEqual(leave_encashment.status, "Unpaid") + + def create_test_leave_encashment(self, **kwargs): + """Helper method to create leave encashment with default values""" + args = { + "employee": self.employee, + "leave_type": "_Test Leave Type Encashment", + "leave_period": self.leave_period.name, + "encashment_date": self.leave_period.to_date, + "currency": "INR", + } + args.update(kwargs) + return create_leave_encashment(**args) + + def test_status_on_discard(self): + encashment = self.create_test_leave_encashment() + encashment.save() + encashment.discard() + encashment.reload() + self.assertEqual(encashment.status, "Cancelled") + + def test_leave_encashment_based_on_salary_structure_assignment(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import ( + create_salary_structure_assignment, + ) + + salary_structure = make_salary_structure( + "Salary Structure for Encashment Amount", + "Monthly", + self.employee, + ) + + create_salary_structure_assignment( + employee=self.employee, + salary_structure=salary_structure.name, + company="_Test Company", + currency="INR", + leave_encashment_amount_per_day=50, + ) + + leave_encashment = self.create_test_leave_encashment(encashment_date=getdate()) + leave_encashment.submit() + + self.assertEqual(leave_encashment.leave_balance, 10) + self.assertTrue(leave_encashment.actual_encashable_days, 5) + self.assertTrue(leave_encashment.encashment_days, 5) + self.assertEqual(leave_encashment.encashment_amount, 250) + + +def create_leave_encashment(**args): + if args: + args = frappe._dict(args) + leave_encashment = frappe.new_doc("Leave Encashment") + leave_encashment.company = args.company or "_Test Company" + leave_encashment.employee = args.employee + leave_encashment.posting_date = args.posting_date or getdate() + leave_encashment.leave_type = args.leave_type + leave_encashment.leave_period = args.leave_period + leave_encashment.encashment_date = args.encashment_date or getdate() + leave_encashment.currency = args.currency or frappe.get_cached_value( + "Company", "_Test Company", "default_currency" + ) + leave_encashment.pay_via_payment_entry = args.pay_via_payment_entry or 0 + if leave_encashment.pay_via_payment_entry: + leave_encashment.payable_account = args.payable_account or frappe.get_cached_value( + "Company", "_Test Company", "default_payable_account" + ) + leave_encashment.expense_account = args.expense_account or "Administrative Expenses - _TC" + leave_encashment.cost_center = args.cost_center or "Main - _TC" + + if args.encashment_days: + leave_encashment.encashment_days = args.encashment_days + + leave_encashment.insert() + + return leave_encashment diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.js new file mode 100644 index 000000000..fd159025b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.js @@ -0,0 +1,7 @@ +// Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Leave Ledger Entry", { + // refresh: function(frm) { + // } +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json new file mode 100644 index 000000000..949d1ab06 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json @@ -0,0 +1,194 @@ +{ + "actions": [], + "creation": "2019-05-09 15:47:39.760406", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "leave_type", + "transaction_type", + "transaction_name", + "company", + "leaves", + "column_break_7", + "from_date", + "to_date", + "holiday_list", + "is_carry_forward", + "is_expired", + "is_lwp", + "amended_from" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "search_index": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name" + }, + { + "fieldname": "leave_type", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Leave Type", + "options": "Leave Type" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Leave Ledger Entry", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "transaction_type", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Transaction Type", + "options": "DocType", + "search_index": 1 + }, + { + "fieldname": "transaction_name", + "fieldtype": "Dynamic Link", + "label": "Transaction Name", + "options": "transaction_type", + "search_index": 1 + }, + { + "fieldname": "leaves", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Leaves" + }, + { + "fieldname": "from_date", + "fieldtype": "Date", + "label": "From Date" + }, + { + "fieldname": "to_date", + "fieldtype": "Date", + "label": "To Date" + }, + { + "default": "0", + "fieldname": "is_carry_forward", + "fieldtype": "Check", + "label": "Is Carry Forward" + }, + { + "default": "0", + "fieldname": "is_expired", + "fieldtype": "Check", + "label": "Is Expired" + }, + { + "fieldname": "column_break_7", + "fieldtype": "Column Break" + }, + { + "default": "0", + "fieldname": "is_lwp", + "fieldtype": "Check", + "label": "Is Leave Without Pay" + }, + { + "fieldname": "holiday_list", + "fieldtype": "Link", + "label": "Holiday List", + "options": "Holiday List" + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "read_only": 1, + "reqd": 1 + } + ], + "in_create": 1, + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:10:01.284398", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Ledger Entry", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "if_owner": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "All", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "ASC", + "states": [], + "title_field": "employee" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py new file mode 100644 index 000000000..0c19812e4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py @@ -0,0 +1,253 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import DATE_FORMAT, flt, formatdate, get_link_to_form, getdate, today + + +class InvalidLeaveLedgerEntry(frappe.ValidationError): + pass + + +class LeaveLedgerEntry(Document): + def validate(self): + if getdate(self.from_date) > getdate(self.to_date): + frappe.throw( + _( + "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" + ).format( + frappe.bold(formatdate(self.from_date)), + frappe.bold(formatdate(self.to_date)), + ), + exc=InvalidLeaveLedgerEntry, + title=_("Invalid Leave Ledger Entry"), + ) + + def on_cancel(self): + # allow cancellation of expiry leaves + if self.is_expired: + frappe.db.set_value("Leave Allocation", self.transaction_name, "expired", 0) + elif self.transaction_type != "Leave Adjustment": + frappe.throw(_("Only expired allocation can be cancelled")) + + +def validate_leave_allocation_against_leave_application(ledger): + """Checks that leave allocation has no leave application against it""" + leave_application_records = frappe.db.sql_list( + """ + SELECT transaction_name + FROM `tabLeave Ledger Entry` + WHERE + employee=%s + AND leave_type=%s + AND transaction_type='Leave Application' + AND from_date>=%s + AND to_date<=%s + """, + (ledger.employee, ledger.leave_type, ledger.from_date, ledger.to_date), + ) + + if leave_application_records: + frappe.throw( + _("Leave allocation {0} is linked with the Leave Application {1}").format( + ledger.transaction_name, + ", ".join( + get_link_to_form("Leave Application", application) + for application in leave_application_records + ), + ) + ) + + +def create_leave_ledger_entry(ref_doc, args, submit=True): + ledger = frappe._dict( + doctype="Leave Ledger Entry", + employee=ref_doc.employee, + employee_name=ref_doc.employee_name, + leave_type=ref_doc.leave_type, + transaction_type=ref_doc.doctype, + transaction_name=ref_doc.name, + is_carry_forward=0, + is_expired=0, + is_lwp=0, + ) + ledger.update(args) + + if submit: + doc = frappe.get_doc(ledger) + doc.flags.ignore_permissions = 1 + doc.submit() + else: + delete_ledger_entry(ledger) + + +def delete_ledger_entry(ledger): + """Delete ledger entry on cancel of leave application/allocation/encashment""" + if ledger.transaction_type == "Leave Allocation": + validate_leave_allocation_against_leave_application(ledger) + + expired_entry = get_previous_expiry_ledger_entry(ledger) + frappe.db.sql( + """DELETE + FROM `tabLeave Ledger Entry` + WHERE + `transaction_name`=%s + OR `name`=%s""", + (ledger.transaction_name, expired_entry), + ) + + +def get_previous_expiry_ledger_entry(ledger): + """Returns the expiry ledger entry having same creation date as the ledger entry to be cancelled""" + creation_date = frappe.db.get_value( + "Leave Ledger Entry", + filters={ + "transaction_name": ledger.transaction_name, + "is_expired": 0, + "transaction_type": "Leave Allocation", + }, + fieldname=["creation"], + ) + + creation_date = creation_date.strftime(DATE_FORMAT) if creation_date else "" + + return frappe.db.get_value( + "Leave Ledger Entry", + filters={ + "creation": ("like", creation_date + "%"), + "employee": ledger.employee, + "leave_type": ledger.leave_type, + "is_expired": 1, + "docstatus": 1, + "is_carry_forward": 0, + }, + fieldname=["name"], + ) + + +def process_expired_allocation(): + """Check if a carry forwarded allocation has expired and create a expiry ledger entry + Case 1: carry forwarded expiry period is set for the leave type, + create a separate leave expiry entry against each entry of carry forwarded and non carry forwarded leaves + Case 2: leave type has no specific expiry period for carry forwarded leaves + and there is no carry forwarded leave allocation, create a single expiry against the remaining leaves. + """ + + # fetch leave type records that has carry forwarded leaves expiry + leave_type_records = frappe.db.get_values( + "Leave Type", filters={"expire_carry_forwarded_leaves_after_days": (">", 0)}, fieldname=["name"] + ) + + leave_type = [record[0] for record in leave_type_records] or [""] + + # fetch non expired leave ledger entry of transaction_type allocation + expire_allocation = frappe.db.sql( + """ + SELECT + leaves, to_date, from_date, employee, leave_type, + is_carry_forward, transaction_name as name, transaction_type + FROM `tabLeave Ledger Entry` l + WHERE (NOT EXISTS + (SELECT name + FROM `tabLeave Ledger Entry` + WHERE + transaction_name = l.transaction_name + AND transaction_type = 'Leave Allocation' + AND name<>l.name + AND docstatus = 1 + AND ( + is_carry_forward=l.is_carry_forward + OR (is_carry_forward = 0 AND leave_type not in %s) + ))) + AND transaction_type = 'Leave Allocation' + AND to_date < %s""", + (leave_type, today()), + as_dict=1, + ) + + if expire_allocation: + create_expiry_ledger_entry(expire_allocation) + + +def create_expiry_ledger_entry(allocations): + """Create ledger entry for expired allocation""" + for allocation in allocations: + if allocation.is_carry_forward: + expire_carried_forward_allocation(allocation) + else: + expire_allocation(allocation) + + +def get_remaining_leaves(allocation): + """Returns remaining leaves from the given allocation""" + return frappe.db.get_value( + "Leave Ledger Entry", + filters={ + "employee": allocation.employee, + "leave_type": allocation.leave_type, + "to_date": ("<=", allocation.to_date), + "docstatus": 1, + }, + fieldname=[{"SUM": "leaves"}], + ) + + +@frappe.whitelist() +def expire_allocation(allocation, expiry_date=None): + """expires non-carry forwarded allocation""" + import json + + if isinstance(allocation, str): + allocation = json.loads(allocation) + allocation = frappe.get_doc("Leave Allocation", allocation["name"]) + + leaves = get_remaining_leaves(allocation) + expiry_date = expiry_date if expiry_date else allocation.to_date + + # allows expired leaves entry to be created/reverted + if leaves: + args = dict( + leaves=flt(leaves) * -1, + transaction_name=allocation.name, + transaction_type="Leave Allocation", + from_date=expiry_date, + to_date=expiry_date, + is_carry_forward=0, + is_expired=1, + ) + create_leave_ledger_entry(allocation, args) + + frappe.db.set_value("Leave Allocation", allocation.name, "expired", 1) + + +def expire_carried_forward_allocation(allocation): + """Expires remaining leaves in the on carried forward allocation""" + from hrms.hr.doctype.leave_application.leave_application import get_leaves_for_period + + leaves_taken = get_leaves_for_period( + allocation.employee, + allocation.leave_type, + allocation.from_date, + allocation.to_date, + skip_expired_leaves=False, + ) + leaves = flt(allocation.leaves) + flt(leaves_taken) + + # allow expired leaves entry to be created + if leaves > 0: + args = frappe._dict( + transaction_name=allocation.name, + transaction_type="Leave Allocation", + leaves=leaves * -1, + is_carry_forward=allocation.is_carry_forward, + is_expired=1, + from_date=allocation.to_date, + to_date=allocation.to_date, + ) + create_leave_ledger_entry(allocation, args) + + +def on_doctype_update(): + frappe.db.add_index("Leave Ledger Entry", ["transaction_type", "transaction_name"]) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry_list.js new file mode 100644 index 000000000..c95ca743a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry_list.js @@ -0,0 +1,16 @@ +frappe.listview_settings["Leave Ledger Entry"] = { + onload: function (listview) { + if (listview.page.fields_dict.transaction_type) { + listview.page.fields_dict.transaction_type.get_query = function () { + return { + filters: { + name: [ + "in", + ["Leave Allocation", "Leave Application", "Leave Encashment"], + ], + }, + }; + }; + } + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/test_leave_ledger_entry.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/test_leave_ledger_entry.py new file mode 100644 index 000000000..bfe0e15a3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_ledger_entry/test_leave_ledger_entry.py @@ -0,0 +1,47 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.utils.data import add_to_date, today + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.leave_ledger_entry.leave_ledger_entry import expire_allocation +from hrms.tests.utils import HRMSTestSuite + + +class TestLeaveLedgerEntry(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + cls.make_leave_types() + + def setUp(self): + emp_id = make_employee("test_leave_allocation@salary.com", company="_Test Company") + self.employee = frappe.get_doc("Employee", emp_id) + + def test_expire_allocation(self): + import json + + allocation = { + "doctype": "Leave Allocation", + "__islocal": 1, + "employee": self.employee.name, + "employee_name": self.employee.employee_name, + "leave_type": "_Test Leave Type", + "from_date": today(), + "to_date": add_to_date(today(), days=30), + "new_leaves_allocated": 5, + "docstatus": 1, + } + + allocation = frappe.get_doc(allocation).save() + + expire_allocation(json.dumps(allocation.as_dict())) + allocation.reload() + + self.assertEqual(allocation.expired, 1) + + def tearDown(self): + frappe.db.rollback() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period.js new file mode 100644 index 000000000..a8ac9c50d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period.js @@ -0,0 +1,20 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Leave Period", { + from_date: (frm) => { + if (frm.doc.from_date && !frm.doc.to_date) { + var a_year_from_start = frappe.datetime.add_months(frm.doc.from_date, 12); + frm.set_value("to_date", frappe.datetime.add_days(a_year_from_start, -1)); + } + }, + onload: (frm) => { + frm.set_query("department", function () { + return { + filters: { + company: frm.doc.company, + }, + }; + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period.json new file mode 100644 index 000000000..3a1ce0507 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period.json @@ -0,0 +1,108 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "HR-LPR-.YYYY.-.#####", + "creation": "2018-04-13 15:20:52.864288", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "from_date", + "to_date", + "is_active", + "column_break_3", + "company", + "optional_holiday_list" + ], + "fields": [ + { + "fieldname": "from_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "From Date", + "reqd": 1 + }, + { + "fieldname": "to_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "To Date", + "reqd": 1 + }, + { + "default": "0", + "fieldname": "is_active", + "fieldtype": "Check", + "label": "Is Active" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "optional_holiday_list", + "fieldtype": "Link", + "label": "Holiday List for Optional Leave", + "options": "Holiday List" + } + ], + "links": [], + "modified": "2024-03-27 13:10:01.453851", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Period", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "search_fields": "from_date, to_date, company", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period.py new file mode 100644 index 000000000..25a778429 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period.py @@ -0,0 +1,20 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import getdate + +from hrms.hr.utils import validate_overlap + + +class LeavePeriod(Document): + def validate(self): + self.validate_dates() + validate_overlap(self, self.from_date, self.to_date, self.company) + + def validate_dates(self): + if getdate(self.from_date) >= getdate(self.to_date): + frappe.throw(_("To date can not be equal or less than from date")) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period_dashboard.py new file mode 100644 index 000000000..854f988f3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/leave_period_dashboard.py @@ -0,0 +1,8 @@ +from frappe import _ + + +def get_data(): + return { + "fieldname": "leave_period", + "transactions": [{"label": _("Transactions"), "items": ["Leave Allocation"]}], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/test_leave_period.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/test_leave_period.py new file mode 100644 index 000000000..4cbf45f7b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_period/test_leave_period.py @@ -0,0 +1,43 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe + +import erpnext + +from hrms.tests.utils import HRMSTestSuite + +test_dependencies = ["Leave Policy"] + + +class TestLeavePeriod(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + + +def create_leave_period(from_date, to_date, company=None): + leave_period = frappe.db.get_value( + "Leave Period", + dict( + company=company or erpnext.get_default_company(), + from_date=from_date, + to_date=to_date, + is_active=1, + ), + "name", + ) + if leave_period: + return frappe.get_doc("Leave Period", leave_period) + + leave_period = frappe.get_doc( + { + "doctype": "Leave Period", + "company": company or erpnext.get_default_company(), + "from_date": from_date, + "to_date": to_date, + "is_active": 1, + } + ).insert() + return leave_period diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy.js new file mode 100644 index 000000000..e5ab2c13d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy.js @@ -0,0 +1,29 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Leave Policy", {}); + +frappe.ui.form.on("Leave Policy Detail", { + leave_type: function (frm, cdt, cdn) { + var child = locals[cdt][cdn]; + if (child.leave_type) { + frappe.call({ + method: "frappe.client.get_value", + args: { + doctype: "Leave Type", + fieldname: "max_leaves_allowed", + filters: { name: child.leave_type }, + }, + callback: function (r) { + if (r.message) { + child.annual_allocation = r.message.max_leaves_allowed; + refresh_field("leave_policy_details"); + } + }, + }); + } else { + child.annual_allocation = ""; + refresh_field("leave_policy_details"); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy.json new file mode 100644 index 000000000..032649944 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy.json @@ -0,0 +1,107 @@ +{ + "actions": [], + "autoname": "HR-LPOL-.YYYY.-.#####", + "creation": "2018-04-13 16:06:19.507624", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "title", + "leave_allocations_section", + "leave_policy_details", + "amended_from" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "leave_allocations_section", + "fieldtype": "Section Break", + "label": "Leave Allocations" + }, + { + "fieldname": "leave_policy_details", + "fieldtype": "Table", + "label": "Leave Policy Details", + "options": "Leave Policy Detail", + "reqd": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Leave Policy", + "print_hide": 1, + "read_only": 1 + }, + { + "allow_on_submit": 1, + "fieldname": "title", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Title", + "reqd": 1 + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:10:01.602911", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Policy", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "search_fields": "title", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "title", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy.py new file mode 100644 index 000000000..33c949354 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy.py @@ -0,0 +1,22 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document + + +class LeavePolicy(Document): + def validate(self): + if self.leave_policy_details: + for lp_detail in self.leave_policy_details: + max_leaves_allowed = frappe.db.get_value( + "Leave Type", lp_detail.leave_type, "max_leaves_allowed" + ) + if max_leaves_allowed > 0 and lp_detail.annual_allocation > max_leaves_allowed: + frappe.throw( + _("Maximum leave allowed in the leave type {0} is {1}").format( + lp_detail.leave_type, max_leaves_allowed + ) + ) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy_dashboard.py new file mode 100644 index 000000000..57ea93ee4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/leave_policy_dashboard.py @@ -0,0 +1,10 @@ +from frappe import _ + + +def get_data(): + return { + "fieldname": "leave_policy", + "transactions": [ + {"label": _("Leaves"), "items": ["Leave Policy Assignment", "Leave Allocation"]}, + ], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/test_leave_policy.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/test_leave_policy.py new file mode 100644 index 000000000..4e30c9fe2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy/test_leave_policy.py @@ -0,0 +1,40 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase + + +class TestLeavePolicy(IntegrationTestCase): + def test_max_leave_allowed(self): + random_leave_type = frappe.get_all("Leave Type", fields=["name", "max_leaves_allowed"]) + if random_leave_type: + random_leave_type = random_leave_type[0] + leave_type = frappe.get_doc("Leave Type", random_leave_type.name) + leave_type.max_leaves_allowed = 2 + leave_type.save() + + leave_policy = create_leave_policy( + leave_type=leave_type.name, annual_allocation=leave_type.max_leaves_allowed + 1 + ) + + self.assertRaises(frappe.ValidationError, leave_policy.insert) + + +def create_leave_policy(**args): + """Returns an object of leave policy""" + args = frappe._dict(args) + return frappe.get_doc( + { + "doctype": "Leave Policy", + "title": "Test Leave Policy", + "leave_policy_details": [ + { + "leave_type": args.leave_type or "_Test Leave Type", + "annual_allocation": args.annual_allocation or 10, + "parentfield": "leave_policy_details", + "parenttype": "Leave Policy", + } + ], + } + ) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.js new file mode 100644 index 000000000..7c06584fc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.js @@ -0,0 +1,72 @@ +// Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Leave Policy Assignment", { + onload: function (frm) { + frm.ignore_doctypes_on_cancel_all = ["Leave Ledger Entry"]; + + frm.set_query("leave_policy", function () { + return { + filters: { + docstatus: 1, + }, + }; + }); + frm.set_query("leave_period", function () { + return { + filters: { + is_active: 1, + company: frm.doc.company, + }, + }; + }); + }, + + assignment_based_on: function (frm) { + if (frm.doc.assignment_based_on) { + frm.events.set_effective_date(frm); + } else { + frm.set_value("effective_from", ""); + frm.set_value("effective_to", ""); + } + }, + + leave_period: function (frm) { + if (frm.doc.leave_period) { + frm.events.set_effective_date(frm); + } + }, + + set_effective_date: function (frm) { + if (frm.doc.assignment_based_on == "Leave Period" && frm.doc.leave_period) { + frappe.model.with_doc("Leave Period", frm.doc.leave_period, function () { + let from_date = frappe.model.get_value( + "Leave Period", + frm.doc.leave_period, + "from_date", + ); + let to_date = frappe.model.get_value( + "Leave Period", + frm.doc.leave_period, + "to_date", + ); + frm.set_value("effective_from", from_date); + frm.set_value("effective_to", to_date); + }); + } else if (frm.doc.assignment_based_on == "Joining Date" && frm.doc.employee) { + frappe.model.with_doc("Employee", frm.doc.employee, function () { + let from_date = frappe.model.get_value( + "Employee", + frm.doc.employee, + "date_of_joining", + ); + frm.set_value("effective_from", from_date); + frm.set_value( + "effective_to", + frappe.datetime.add_months(frm.doc.effective_from, 12), + ); + }); + } + frm.refresh(); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json new file mode 100644 index 000000000..2291ef5e2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json @@ -0,0 +1,171 @@ +{ + "actions": [], + "autoname": "HR-LPOL-ASSGN-.#####", + "creation": "2020-08-19 13:02:43.343666", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "company", + "leave_policy", + "carry_forward", + "column_break_5", + "assignment_based_on", + "leave_period", + "effective_from", + "effective_to", + "leaves_allocated", + "amended_from" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee name", + "read_only": 1 + }, + { + "fieldname": "leave_policy", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Leave Policy", + "options": "Leave Policy", + "reqd": 1 + }, + { + "fieldname": "assignment_based_on", + "fieldtype": "Select", + "label": "Assignment based on", + "options": "\nLeave Period\nJoining Date" + }, + { + "depends_on": "eval:doc.assignment_based_on == \"Leave Period\"", + "fieldname": "leave_period", + "fieldtype": "Link", + "label": "Leave Period", + "mandatory_depends_on": "eval:doc.assignment_based_on == \"Leave Period\"", + "options": "Leave Period" + }, + { + "fieldname": "effective_from", + "fieldtype": "Date", + "label": "Effective From", + "read_only_depends_on": "eval:doc.assignment_based_on", + "reqd": 1 + }, + { + "fieldname": "effective_to", + "fieldtype": "Date", + "label": "Effective To", + "read_only_depends_on": "eval:doc.assignment_based_on == \"Leave Period\"", + "reqd": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Company", + "options": "Company", + "read_only": 1 + }, + { + "fieldname": "column_break_5", + "fieldtype": "Column Break" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Leave Policy Assignment", + "print_hide": 1, + "read_only": 1 + }, + { + "default": "0", + "fieldname": "carry_forward", + "fieldtype": "Check", + "label": "Add unused leaves from previous allocations" + }, + { + "default": "0", + "fieldname": "leaves_allocated", + "fieldtype": "Check", + "hidden": 1, + "label": "Leaves Allocated", + "no_copy": 1, + "print_hide": 1 + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:10:01.746553", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Policy Assignment", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py new file mode 100644 index 000000000..bf41dc5de --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py @@ -0,0 +1,498 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import json + +import frappe +from frappe import _, bold +from frappe.model.document import Document +from frappe.utils import ( + add_months, + add_to_date, + cint, + comma_and, + date_diff, + flt, + formatdate, + get_first_day, + get_last_day, + get_link_to_form, + get_quarter_ending, + get_quarter_start, + get_year_ending, + get_year_start, + getdate, + rounded, +) + + +class LeavePolicyAssignment(Document): + def validate(self): + self.set_dates() + self.validate_policy_assignment_overlap() + self.warn_about_carry_forwarding() + + def on_submit(self): + self.grant_leave_alloc_for_employee() + + def set_dates(self): + if self.assignment_based_on == "Leave Period": + self.effective_from, self.effective_to = frappe.db.get_value( + "Leave Period", self.leave_period, ["from_date", "to_date"] + ) + elif self.assignment_based_on == "Joining Date": + self.effective_from = frappe.db.get_value("Employee", self.employee, "date_of_joining") + if not self.effective_to: + self.effective_to = get_last_day(add_months(self.effective_from, 12)) + + def validate_policy_assignment_overlap(self): + leave_policy_assignment = frappe.db.get_value( + "Leave Policy Assignment", + { + "employee": self.employee, + "name": ("!=", self.name), + "docstatus": 1, + "effective_to": (">=", self.effective_from), + "effective_from": ("<=", self.effective_to), + }, + "leave_policy", + ) + + if leave_policy_assignment: + frappe.throw( + _("Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}").format( + bold(leave_policy_assignment), + bold(self.employee), + bold(formatdate(self.effective_from)), + bold(formatdate(self.effective_to)), + ), + title=_("Leave Policy Assignment Overlap"), + ) + + def warn_about_carry_forwarding(self): + if not self.carry_forward: + return + + leave_types = get_leave_type_details() + leave_policy = frappe.get_doc("Leave Policy", self.leave_policy) + + for policy in leave_policy.leave_policy_details: + leave_type = leave_types.get(policy.leave_type) + if not leave_type.is_carry_forward: + msg = _( + "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." + ).format(frappe.bold(get_link_to_form("Leave Type", leave_type.name))) + frappe.msgprint(msg, indicator="orange", alert=True) + + def grant_leave_alloc_for_employee(self): + if self.leaves_allocated: + frappe.throw(_("Leave already have been assigned for this Leave Policy Assignment")) + else: + leave_allocations = {} + leave_type_details = get_leave_type_details() + + leave_policy = frappe.get_doc("Leave Policy", self.leave_policy) + date_of_joining = frappe.db.get_value("Employee", self.employee, "date_of_joining") + + for leave_policy_detail in leave_policy.leave_policy_details: + leave_details = leave_type_details.get(leave_policy_detail.leave_type) + + if not leave_details.is_lwp: + leave_allocation, new_leaves_allocated = self.create_leave_allocation( + leave_policy_detail.annual_allocation, + leave_details, + date_of_joining, + ) + leave_allocations[leave_details.name] = { + "name": leave_allocation, + "leaves": new_leaves_allocated, + } + self.db_set("leaves_allocated", 1) + return leave_allocations + + def create_leave_allocation(self, annual_allocation, leave_details, date_of_joining): + # Creates leave allocation for the given employee in the provided leave period + carry_forward = self.carry_forward + if self.carry_forward and not leave_details.is_carry_forward: + carry_forward = 0 + + new_leaves_allocated = self.get_new_leaves(annual_allocation, leave_details, date_of_joining) + earned_leave_schedule = ( + self.get_earned_leave_schedule( + annual_allocation, leave_details, date_of_joining, new_leaves_allocated + ) + if leave_details.is_earned_leave + else [] + ) + + if new_leaves_allocated == 0 and not leave_details.is_earned_leave: + text = _( + "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." + ).format(frappe.bold(leave_details.name)) + + frappe.get_doc( + { + "doctype": "Comment", + "comment_type": "Comment", + "reference_doctype": "Leave Policy Assignment", + "reference_name": self.name, + "content": text, + } + ).insert(ignore_permissions=True) + return None, 0 + + allocation = frappe.get_doc( + doctype="Leave Allocation", + employee=self.employee, + leave_type=leave_details.name, + from_date=self.effective_from, + to_date=self.effective_to, + new_leaves_allocated=new_leaves_allocated, + leave_period=self.leave_period if self.assignment_based_on == "Leave Policy" else "", + leave_policy_assignment=self.name, + leave_policy=self.leave_policy, + carry_forward=carry_forward, + earned_leave_schedule=earned_leave_schedule, + ) + allocation.save(ignore_permissions=True) + allocation.submit() + return allocation.name, new_leaves_allocated + + def get_new_leaves(self, annual_allocation, leave_details, date_of_joining): + from frappe.model.meta import get_field_precision + + precision = get_field_precision(frappe.get_meta("Leave Allocation").get_field("new_leaves_allocated")) + current_date = getdate(frappe.flags.current_date) or getdate() + # Earned Leaves and Compensatory Leaves are allocated by scheduler, initially allocate 0 + if leave_details.is_compensatory: + new_leaves_allocated = 0 + # if earned leave is being allcated after the effective period, then let them be calculated pro-rata + elif leave_details.is_earned_leave and current_date < getdate(self.effective_to): + new_leaves_allocated = self.get_leaves_for_passed_period( + annual_allocation, leave_details, date_of_joining + ) + else: + # calculate pro-rated leaves for other leave types + new_leaves_allocated = calculate_pro_rated_leaves( + annual_allocation, + date_of_joining, + self.effective_from, + self.effective_to, + is_earned_leave=False, + ) + # leave allocation should not exceed annual allocation as per policy assignment expect when allocation is of earned type and yearly + if new_leaves_allocated > annual_allocation and not ( + leave_details.is_earned_leave and leave_details.earned_leave_frequency == "Yearly" + ): + new_leaves_allocated = annual_allocation + + return flt(new_leaves_allocated, precision) + + def get_leaves_for_passed_period(self, annual_allocation, leave_details, date_of_joining): + consider_current_period = is_earned_leave_applicable_for_current_period( + date_of_joining, leave_details.allocate_on_day, leave_details.earned_leave_frequency + ) + current_date, from_date = self.get_current_and_from_date(date_of_joining) + periods_passed = self.get_periods_passed( + leave_details.earned_leave_frequency, current_date, from_date, consider_current_period + ) + if periods_passed > 0: + new_leaves_allocated = self.calculate_leaves_for_passed_period( + annual_allocation, leave_details, date_of_joining, periods_passed, consider_current_period + ) + else: + new_leaves_allocated = 0 + + return new_leaves_allocated + + def get_current_and_from_date(self, date_of_joining): + current_date = getdate(frappe.flags.current_date) or getdate() + if current_date > getdate(self.effective_to): + current_date = getdate(self.effective_to) + + from_date = getdate(self.effective_from) + if getdate(date_of_joining) > from_date: + from_date = getdate(date_of_joining) + + return current_date, from_date + + def get_periods_passed(self, earned_leave_frequency, current_date, from_date, consider_current_period): + periods_per_year, months_per_period = { + "Monthly": (12, 1), + "Quarterly": (4, 3), + "Half-Yearly": (2, 6), + "Yearly": (1, 12), + }.get(earned_leave_frequency) + + periods_passed = calculate_periods_passed( + current_date, from_date, periods_per_year, months_per_period, consider_current_period + ) + + return periods_passed + + def calculate_leaves_for_passed_period( + self, annual_allocation, leave_details, date_of_joining, periods_passed, consider_current_period + ): + from hrms.hr.utils import get_monthly_earned_leave as get_periodically_earned_leave + from hrms.hr.utils import get_sub_period_start_and_end + + periodically_earned_leave = get_periodically_earned_leave( + date_of_joining, + annual_allocation, + leave_details.earned_leave_frequency, + leave_details.rounding, + pro_rated=False, + ) + + period_end_date = get_pro_rata_period_end_date(consider_current_period) + if getdate(self.effective_from) <= date_of_joining <= period_end_date: + # if the employee joined within the allocation period in some previous month, + # calculate pro-rated leave for that month + # and normal monthly earned leave for remaining passed months + start_date, end_date = get_sub_period_start_and_end( + date_of_joining, leave_details.earned_leave_frequency + ) + leaves = get_periodically_earned_leave( + date_of_joining, + annual_allocation, + leave_details.earned_leave_frequency, + leave_details.rounding, + start_date, + end_date, + ) + leaves += periodically_earned_leave * (periods_passed - 1) + else: + leaves = periodically_earned_leave * periods_passed + + return leaves + + def get_earned_leave_schedule( + self, annual_allocation, leave_details, date_of_joining, new_leaves_allocated + ): + from hrms.hr.utils import ( + get_expected_allocation_date_for_period, + get_monthly_earned_leave, + get_sub_period_start_and_end, + ) + + today = getdate(frappe.flags.current_date) or getdate() + from_date = last_allocated_date = getdate(self.effective_from) + to_date = getdate(self.effective_to) + months_to_add = {"Monthly": 1, "Quarterly": 3, "Half-Yearly": 6, "Yearly": 12}.get( + leave_details.earned_leave_frequency + ) + periodically_earned_leave = get_monthly_earned_leave( + date_of_joining, + annual_allocation, + leave_details.earned_leave_frequency, + leave_details.rounding, + pro_rated=False, + ) + date = get_expected_allocation_date_for_period( + leave_details.earned_leave_frequency, + leave_details.allocate_on_day, + from_date, + date_of_joining, + ) + schedule = [] + if new_leaves_allocated: + schedule.append( + { + "allocation_date": today, + "number_of_leaves": new_leaves_allocated, + "is_allocated": 1, + "allocated_via": "Leave Policy Assignment", + "attempted": 1, + } + ) + last_allocated_date = get_sub_period_start_and_end(today, leave_details.earned_leave_frequency)[1] + + while date <= to_date: + date_already_passed = today > date + if date >= last_allocated_date: + row = { + "allocation_date": date, + "number_of_leaves": periodically_earned_leave, + "is_allocated": 1 if date_already_passed else 0, + "allocated_via": "Leave Policy Assignment" if date_already_passed else None, + "attempted": 1 if date_already_passed else 0, + } + schedule.append(row) + date = get_expected_allocation_date_for_period( + leave_details.earned_leave_frequency, + leave_details.allocate_on_day, + add_to_date(date, months=months_to_add), + date_of_joining, + ) + if from_date < getdate(date_of_joining): + pro_rated_period_start, pro_rated_period_end = get_sub_period_start_and_end( + date_of_joining, leave_details.earned_leave_frequency + ) + pro_rated_earned_leave = get_monthly_earned_leave( + date_of_joining, + annual_allocation, + leave_details.earned_leave_frequency, + leave_details.rounding, + pro_rated_period_start, + pro_rated_period_end, + ) + schedule[0]["number_of_leaves"] = pro_rated_earned_leave + return schedule + + +def get_pro_rata_period_end_date(consider_current_month): + # for earned leave, pro-rata period ends on the last day of the month + # pro rata period end date is different for different periods + + date = getdate(frappe.flags.current_date) or getdate() + if consider_current_month: + period_end_date = get_last_day(date) + else: + period_end_date = get_last_day(add_months(date, -1)) + + return period_end_date + + +def calculate_periods_passed( + current_date, from_date, periods_per_year, months_per_period, consider_current_period +): + periods_passed = 0 + + from_period = (from_date.year * periods_per_year) + ((from_date.month - 1) // months_per_period) + current_period = (current_date.year * periods_per_year) + ((current_date.month - 1) // months_per_period) + + periods_passed = current_period - from_period + if consider_current_period: + periods_passed += 1 + + return periods_passed + + +def is_earned_leave_applicable_for_current_period(date_of_joining, allocate_on_day, earned_leave_frequency): + from hrms.hr.utils import get_semester_end, get_semester_start + + date = getdate(frappe.flags.current_date) or getdate() + # If the date of assignment creation is >= the leave type's "Allocate On" date, + # then the current month should be considered + # because the employee is already entitled for the leave of that month + + condition_map = { + "Monthly": ( + (allocate_on_day == "Date of Joining" and date.day >= date_of_joining.day) + or (allocate_on_day == "First Day" and date >= get_first_day(date)) + or (allocate_on_day == "Last Day" and date == get_last_day(date)) + ), + "Quarterly": (allocate_on_day == "First Day" and date >= get_quarter_start(date)) + or (allocate_on_day == "Last Day" and date == get_quarter_ending(date)), + "Half-Yearly": (allocate_on_day == "First Day" and date >= get_semester_start(date)) + or (allocate_on_day == "Last Day" and date == get_semester_end(date)), + "Yearly": ( + (allocate_on_day == "First Day" and date >= get_year_start(date)) + or (allocate_on_day == "Last Day" and date == get_year_ending(date)) + ), + } + + return condition_map.get(earned_leave_frequency) + + +def calculate_pro_rated_leaves( + leaves, date_of_joining, period_start_date, period_end_date, is_earned_leave=False +): + if not leaves or getdate(date_of_joining) <= getdate(period_start_date): + return leaves + + precision = cint(frappe.db.get_single_value("System Settings", "float_precision", cache=True)) + actual_period = date_diff(period_end_date, date_of_joining) + 1 + complete_period = date_diff(period_end_date, period_start_date) + 1 + + leaves *= actual_period / complete_period + + if is_earned_leave: + return flt(leaves, precision) + return rounded(leaves) + + +@frappe.whitelist() +def create_assignment_for_multiple_employees(employees, data): + if isinstance(employees, str): + employees = json.loads(employees) + + if isinstance(data, str): + data = frappe._dict(json.loads(data)) + + docs_name = [] + failed = [] + + for employee in employees: + assignment = create_assignment(employee, data) + savepoint = "before_assignment_submission" + try: + frappe.db.savepoint(savepoint) + assignment.submit() + except Exception: + frappe.db.rollback(save_point=savepoint) + assignment.log_error("Leave Policy Assignment submission failed") + failed.append(assignment.name) + + docs_name.append(assignment.name) + + if failed: + show_assignment_submission_status(failed) + + return docs_name + + +@frappe.whitelist() +def create_assignment(employee, data): + assignment = frappe.new_doc("Leave Policy Assignment") + assignment.employee = employee + assignment.assignment_based_on = data.assignment_based_on or None + assignment.leave_policy = data.leave_policy + assignment.effective_from = getdate(data.effective_from) or None + assignment.effective_to = getdate(data.effective_to) or None + assignment.leave_period = data.leave_period or None + assignment.carry_forward = data.carry_forward + assignment.save() + return assignment + + +def show_assignment_submission_status(failed): + frappe.clear_messages() + assignment_list = [get_link_to_form("Leave Policy Assignment", entry) for entry in failed] + + msg = _("Failed to submit some leave policy assignments:") + msg += " " + comma_and(assignment_list, False) + "
    " + msg += ( + _("Check {0} for more details") + .format("{0}") + .format(_("Error Log")) + ) + + frappe.msgprint( + msg, + indicator="red", + title=_("Submission Failed"), + is_minimizable=True, + ) + + +def get_leave_type_details(): + leave_type_details = frappe._dict() + leave_types = frappe.get_all( + "Leave Type", + fields=[ + "name", + "is_lwp", + "is_earned_leave", + "is_compensatory", + "allocate_on_day", + "is_carry_forward", + "expire_carry_forwarded_leaves_after_days", + "earned_leave_frequency", + "rounding", + ], + ) + for d in leave_types: + leave_type_details.setdefault(d.name, d) + return leave_type_details diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py new file mode 100644 index 000000000..13b39c7ee --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py @@ -0,0 +1,10 @@ +from frappe import _ + + +def get_data(): + return { + "fieldname": "leave_policy_assignment", + "transactions": [ + {"label": _("Leaves"), "items": ["Leave Allocation"]}, + ], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js new file mode 100644 index 000000000..c3e5c6cd5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js @@ -0,0 +1,7 @@ +frappe.listview_settings["Leave Policy Assignment"] = { + onload: function (list_view) { + list_view.page.add_inner_button(__("Bulk Leave Policy Assignment"), function () { + frappe.set_route("Form", "Leave Control Panel"); + }); + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/test_leave_policy_assignment.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/test_leave_policy_assignment.py new file mode 100644 index 000000000..19f1e7ca1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_assignment/test_leave_policy_assignment.py @@ -0,0 +1,339 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.utils import add_days, add_months, get_first_day, get_year_ending, get_year_start, getdate + +from hrms.hr.doctype.leave_application.test_leave_application import get_employee, get_leave_period +from hrms.hr.doctype.leave_period.test_leave_period import create_leave_period +from hrms.hr.doctype.leave_policy.test_leave_policy import create_leave_policy +from hrms.hr.doctype.leave_policy_assignment.leave_policy_assignment import ( + create_assignment, + create_assignment_for_multiple_employees, +) +from hrms.hr.doctype.leave_type.test_leave_type import create_leave_type +from hrms.tests.utils import HRMSTestSuite + + +class TestLeavePolicyAssignment(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + + def setUp(self): + for doctype in [ + "Leave Period", + "Leave Application", + "Leave Allocation", + "Leave Policy", + "Leave Policy Assignment", + "Leave Ledger Entry", + ]: + frappe.db.delete(doctype) + + employee = get_employee() + self.original_doj = employee.date_of_joining + self.employee = employee + + def tearDown(self): + frappe.db.set_value("Employee", self.employee.name, "date_of_joining", self.original_doj) + + def test_grant_leaves(self): + leave_period = get_leave_period() + leave_policy = create_leave_policy(annual_allocation=10) + leave_policy.submit() + + self.employee.date_of_joining = get_first_day(leave_period.from_date) + self.employee.save() + + data = frappe._dict( + { + "assignment_based_on": "Leave Period", + "leave_policy": leave_policy.name, + "leave_period": leave_period.name, + } + ) + assignments = create_assignment_for_multiple_employees([self.employee.name], data) + self.assertEqual( + frappe.db.get_value("Leave Policy Assignment", assignments[0], "leaves_allocated"), + 1, + ) + + allocation = frappe.db.get_value( + "Leave Allocation", {"leave_policy_assignment": assignments[0]}, "name" + ) + + leave_alloc_doc = frappe.get_doc("Leave Allocation", allocation) + + self.assertEqual(leave_alloc_doc.new_leaves_allocated, 10) + self.assertEqual(leave_alloc_doc.leave_type, "_Test Leave Type") + self.assertEqual(getdate(leave_alloc_doc.from_date), getdate(leave_period.from_date)) + self.assertEqual(getdate(leave_alloc_doc.to_date), getdate(leave_period.to_date)) + self.assertEqual(leave_alloc_doc.leave_policy, leave_policy.name) + self.assertEqual(leave_alloc_doc.leave_policy_assignment, assignments[0]) + + def test_allow_to_grant_all_leave_after_cancellation_of_every_leave_allocation(self): + leave_period = get_leave_period() + leave_policy = create_leave_policy(annual_allocation=10) + leave_policy.submit() + + data = frappe._dict( + { + "assignment_based_on": "Leave Period", + "leave_policy": leave_policy.name, + "leave_period": leave_period.name, + } + ) + assignments = create_assignment_for_multiple_employees([self.employee.name], data) + + # every leave is allocated no more leave can be granted now + self.assertEqual( + frappe.db.get_value("Leave Policy Assignment", assignments[0], "leaves_allocated"), + 1, + ) + + allocation = frappe.db.get_value( + "Leave Allocation", {"leave_policy_assignment": assignments[0]}, "name" + ) + + leave_alloc_doc = frappe.get_doc("Leave Allocation", allocation) + leave_alloc_doc.cancel() + leave_alloc_doc.delete() + self.assertEqual( + frappe.db.get_value("Leave Policy Assignment", assignments[0], "leaves_allocated"), + 0, + ) + + def test_pro_rated_leave_allocation(self): + leave_period = get_leave_period() + leave_policy = create_leave_policy(annual_allocation=12) + leave_policy.submit() + + self.employee.date_of_joining = add_months(leave_period.from_date, 3) + self.employee.save() + + data = { + "assignment_based_on": "Leave Period", + "leave_policy": leave_policy.name, + "leave_period": leave_period.name, + } + assignments = create_assignment_for_multiple_employees([self.employee.name], frappe._dict(data)) + + allocation = frappe.db.get_value( + "Leave Allocation", {"leave_policy_assignment": assignments[0]}, "new_leaves_allocated" + ) + + # pro-rated leave allocation for 9 months + self.assertEqual(allocation, 9) + + # tests no of leaves for passed months if assignment is based on Leave Period / Joining Date + def test_get_leaves_for_passed_months(self): + first_day = get_first_day(getdate()) + annual_allocation = 10 + leave_type = create_leave_type( + leave_type_name="_Test Earned Leave", is_earned_leave=True, allocate_on_day="First Day" + ) + leave_policy = create_leave_policy(leave_type=leave_type.name, annual_allocation=annual_allocation) + leave_policy.submit() + + data = { + "assignment_based_on": "Joining Date", + "leave_policy": leave_policy.name, + } + + self.employee.date_of_joining = add_months(first_day, -5) + self.employee.save() + assignment = create_assignment(self.employee.name, frappe._dict(data)) + new_leaves_allocated = assignment.get_leaves_for_passed_period( + annual_allocation, leave_type, self.employee.date_of_joining + ) + self.assertEqual(new_leaves_allocated, 5) + + self.employee.date_of_joining = add_months(first_day, -35) + self.employee.save() + assignment = create_assignment(self.employee.name, frappe._dict(data)) + new_leaves_allocated = assignment.get_leaves_for_passed_period( + annual_allocation, leave_type, self.employee.date_of_joining + ) + self.assertEqual(new_leaves_allocated, 30) + + leave_period = create_leave_period(add_months(first_day, -23), first_day) + data = { + "assignment_based_on": "Leave Period", + "leave_policy": leave_policy.name, + "leave_period": leave_period.name, + } + assignment = create_assignment(self.employee.name, frappe._dict(data)) + new_leaves_allocated = assignment.get_leaves_for_passed_period( + annual_allocation, leave_type, self.employee.date_of_joining + ) + self.assertEqual(new_leaves_allocated, 20) + + def test_pro_rated_leave_allocation_for_custom_date_range(self): + leave_type = frappe.get_doc( + { + "doctype": "Leave Type", + "leave_type_name": "_Test Leave Type_", + "include_holiday": 1, + "is_earned_leave": 1, + "allocate_on_day": "First Day", + } + ).submit() + + leave_policy = frappe.get_doc( + { + "doctype": "Leave Policy", + "title": "Test Leave Policy", + "leave_policy_details": [ + { + "leave_type": leave_type.name, + "annual_allocation": 12, + } + ], + } + ).submit() + + today_date = getdate() + + leave_policy_assignment = frappe.new_doc("Leave Policy Assignment") + leave_policy_assignment.employee = self.employee.name + leave_policy_assignment.leave_policy = leave_policy.name + leave_policy_assignment.effective_from = getdate(get_first_day(today_date)) + leave_policy_assignment.effective_to = getdate(get_year_ending(today_date)) + leave_policy_assignment.submit() + + new_leaves_allocated = frappe.db.get_value( + "Leave Allocation", + { + "employee": leave_policy_assignment.employee, + "leave_policy_assignment": leave_policy_assignment.name, + }, + "new_leaves_allocated", + ) + + self.assertGreater(new_leaves_allocated, 0) + + def test_earned_leave_allocation_if_leave_policy_assignment_submitted_after_period(self): + year_start_date = get_year_start(getdate()) + year_end_date = get_year_ending(getdate()) + leave_period = create_leave_period(year_start_date, year_end_date) + + # assignment 10 days after the leave period + frappe.flags.current_date = add_days(year_end_date, 10) + leave_type = create_leave_type( + leave_type_name="_Test Earned Leave", is_earned_leave=True, allocate_on_day="Last Day" + ) + annual_earned_leaves = 10 + leave_policy = create_leave_policy(leave_type=leave_type.name, annual_allocation=annual_earned_leaves) + leave_policy.submit() + + data = { + "assignment_based_on": "Leave Period", + "leave_policy": leave_policy.name, + "leave_period": leave_period.name, + } + assignment = create_assignment(self.employee.name, frappe._dict(data)) + assignment.submit() + + earned_leave_allocation = frappe.get_value( + "Leave Allocation", {"leave_policy_assignment": assignment.name}, "new_leaves_allocated" + ) + self.assertEqual(earned_leave_allocation, annual_earned_leaves) + + def test_earned_leave_allocation_for_leave_period_spanning_two_years(self): + first_year_start_date = get_year_start(getdate()) + second_year_end_date = get_year_ending(add_months(first_year_start_date, 12)) + leave_period = create_leave_period(first_year_start_date, second_year_end_date) + + # assignment during mid second year + frappe.flags.current_date = add_months(second_year_end_date, -6) + leave_type = create_leave_type( + leave_type_name="_Test Earned Leave", is_earned_leave=True, allocate_on_day="Last Day" + ) + annual_earned_leaves = 24 + leave_policy = create_leave_policy(leave_type=leave_type.name, annual_allocation=annual_earned_leaves) + leave_policy.submit() + + data = { + "assignment_based_on": "Leave Period", + "leave_policy": leave_policy.name, + "leave_period": leave_period.name, + } + assignment = create_assignment(self.employee.name, frappe._dict(data)) + assignment.submit() + + earned_leave_allocation = frappe.get_value( + "Leave Allocation", {"leave_policy_assignment": assignment.name}, "new_leaves_allocated" + ) + # months passed (18) are calculated correctly but total allocation of 36 exceeds 24 hence 24 + # this upper cap is intentional, without that 36 leaves would be allocated correctly + self.assertEqual(earned_leave_allocation, 24) + + def test_skip_zero_allocation_leaves(self): + today = getdate() + leave_period = create_leave_period(get_year_start(today), get_year_ending(today)) + + sick = create_leave_type( + leave_type_name="_Test Sick Leave", non_encashable_leaves=0, max_leaves_allowed=2 + ) + casual = create_leave_type( + leave_type_name="_Test Casual Leave", non_encashable_leaves=0, max_leaves_allowed=12 + ) + annual = create_leave_type( + leave_type_name="_Test Annual Leave", non_encashable_leaves=0, max_leaves_allowed=27 + ) + compoff = create_leave_type( + leave_type_name="_Test Comp Off", non_encashable_leaves=0, max_leaves_allowed=26 + ) + leave_policy = frappe.get_doc( + { + "doctype": "Leave Policy", + "title": "Test Zero allocation Policy", + "leave_policy_details": [ + {"leave_type": sick.name, "annual_allocation": 2}, + {"leave_type": casual.name, "annual_allocation": 2}, + {"leave_type": annual.name, "annual_allocation": 27}, + {"leave_type": compoff.name, "annual_allocation": 26}, + ], + } + ).submit() + + self.employee.date_of_joining = add_days(leave_period.to_date, -45) + self.employee.save() + + assignment = create_assignment( + self.employee.name, + frappe._dict( + { + "assignment_based_on": "Leave Period", + "leave_policy": leave_policy.name, + "leave_period": leave_period.name, + } + ), + ) + assignment.submit() + + comments = frappe.get_all( + "Comment", + filters={ + "reference_doctype": "Leave Policy Assignment", + "reference_name": assignment.name, + }, + fields=["content"], + ) + + self.assertEqual(len(comments), 2) + self.assertIn(casual.name, comments[0]["content"]) + self.assertIn(sick.name, comments[1]["content"]) + + allocations = frappe.get_all( + "Leave Allocation", + filters={"leave_policy_assignment": assignment.name}, + fields=["leave_type", "new_leaves_allocated"], + ) + + self.assertEqual(allocations[0]["leave_type"], compoff.name) + self.assertEqual(allocations[0]["new_leaves_allocated"], 3) + self.assertEqual(allocations[1]["leave_type"], annual.name) + self.assertEqual(allocations[1]["new_leaves_allocated"], 3) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/leave_policy_detail.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/leave_policy_detail.js new file mode 100644 index 000000000..6fb1e4f15 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/leave_policy_detail.js @@ -0,0 +1,6 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Leave Policy Detail", { + refresh: function (frm) {}, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json new file mode 100644 index 000000000..704fc90ca --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json @@ -0,0 +1,43 @@ +{ + "actions": [], + "creation": "2018-04-13 16:01:20.928853", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "leave_type", + "annual_allocation" + ], + "fields": [ + { + "columns": 3, + "fieldname": "leave_type", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Leave Type", + "options": "Leave Type", + "reqd": 1 + }, + { + "columns": 2, + "fieldname": "annual_allocation", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Annual Allocation", + "reqd": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:10:01.896848", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Policy Detail", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/leave_policy_detail.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/leave_policy_detail.py new file mode 100644 index 000000000..8916d3d65 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/leave_policy_detail.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class LeavePolicyDetail(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/test_leave_policy_detail.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/test_leave_policy_detail.py new file mode 100644 index 000000000..bafa42eef --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_policy_detail/test_leave_policy_detail.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestLeavePolicyDetail(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/README.md new file mode 100644 index 000000000..695e9ddaf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/README.md @@ -0,0 +1,6 @@ +Type of Leave. + +e.g. + +- Casual Leave +- Sick Leave \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type.js b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type.js new file mode 100644 index 000000000..c07292ee3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type.js @@ -0,0 +1,63 @@ +frappe.ui.form.on("Leave Type", { + refresh: function (frm) {}, + + earned_leave_frequency: function (frm) { + if (frm.doc.earned_leave_frequency != "Monthly") { + frm.set_df_property("allocate_on_day", "options", "First Day\nLast Day"); + } else { + frm.set_df_property( + "allocate_on_day", + "options", + "First Day\nDate of Joining\nLast Day", + ); + } + }, +}); + +frappe.tour["Leave Type"] = [ + { + fieldname: "max_leaves_allowed", + title: "Maximum Leave Allocation Allowed", + description: __( + "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy", + ), + }, + { + fieldname: "max_continuous_days_allowed", + title: "Maximum Consecutive Leaves Allowed", + description: __( + "This field allows you to set the maximum number of consecutive leaves an Employee can apply for.", + ), + }, + { + fieldname: "is_optional_leave", + title: "Is Optional Leave", + description: __( + "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company.", + ), + }, + { + fieldname: "is_compensatory", + title: "Is Compensatory Leave", + description: __( + "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more", + [ + `${__( + "here", + )}`, + ], + ), + }, + { + fieldname: "allow_encashment", + title: "Allow Encashment", + description: __("From here, you can enable encashment for the balance leaves."), + }, + { + fieldname: "is_earned_leave", + title: "Is Earned Leaves", + description: __( + "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency.", + ), + }, +]; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type.json new file mode 100644 index 000000000..a5bd6b6a5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type.json @@ -0,0 +1,276 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "field:leave_type_name", + "creation": "2013-02-21 09:55:58", + "doctype": "DocType", + "document_type": "Setup", + "engine": "InnoDB", + "field_order": [ + "leave_type_name", + "max_leaves_allowed", + "applicable_after", + "max_continuous_days_allowed", + "column_break_3", + "is_carry_forward", + "is_lwp", + "is_ppl", + "fraction_of_daily_salary_per_leave", + "is_optional_leave", + "allow_negative", + "allow_over_allocation", + "include_holiday", + "is_compensatory", + "carry_forward_section", + "maximum_carry_forwarded_leaves", + "expire_carry_forwarded_leaves_after_days", + "encashment", + "allow_encashment", + "max_encashable_leaves", + "non_encashable_leaves", + "column_break_17", + "earning_component", + "earned_leave", + "is_earned_leave", + "earned_leave_frequency", + "column_break_22", + "allocate_on_day", + "rounding" + ], + "fields": [ + { + "fieldname": "leave_type_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Leave Type Name", + "oldfieldname": "leave_type_name", + "oldfieldtype": "Data", + "reqd": 1, + "unique": 1 + }, + { + "fieldname": "max_leaves_allowed", + "fieldtype": "Float", + "label": "Maximum Leave Allocation Allowed per Leave Period" + }, + { + "description": "Minimum working days required since Date of Joining to apply for this leave", + "fieldname": "applicable_after", + "fieldtype": "Int", + "label": "Allow Leave Application After (Working Days)" + }, + { + "fieldname": "max_continuous_days_allowed", + "fieldtype": "Int", + "in_list_view": 1, + "label": "Maximum Consecutive Leaves Allowed", + "oldfieldname": "max_days_allowed", + "oldfieldtype": "Data" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "default": "0", + "fieldname": "is_carry_forward", + "fieldtype": "Check", + "in_list_view": 1, + "label": "Is Carry Forward", + "oldfieldname": "is_carry_forward", + "oldfieldtype": "Check" + }, + { + "default": "0", + "depends_on": "eval:doc.is_ppl == 0", + "fieldname": "is_lwp", + "fieldtype": "Check", + "label": "Is Leave Without Pay" + }, + { + "default": "0", + "description": "These leaves are holidays permitted by the company however, availing it is optional for an Employee.", + "fieldname": "is_optional_leave", + "fieldtype": "Check", + "label": "Is Optional Leave" + }, + { + "default": "0", + "fieldname": "allow_negative", + "fieldtype": "Check", + "label": "Allow Negative Balance" + }, + { + "default": "0", + "fieldname": "include_holiday", + "fieldtype": "Check", + "label": "Include holidays within leaves as leaves" + }, + { + "default": "0", + "fieldname": "is_compensatory", + "fieldtype": "Check", + "label": "Is Compensatory" + }, + { + "collapsible": 1, + "depends_on": "eval: doc.is_carry_forward == 1", + "fieldname": "carry_forward_section", + "fieldtype": "Section Break", + "label": "Carry Forward" + }, + { + "description": "Calculated in days", + "fieldname": "expire_carry_forwarded_leaves_after_days", + "fieldtype": "Int", + "label": "Expire Carry Forwarded Leaves (Days)" + }, + { + "collapsible": 1, + "fieldname": "encashment", + "fieldtype": "Section Break", + "label": "Encashment" + }, + { + "default": "0", + "fieldname": "allow_encashment", + "fieldtype": "Check", + "label": "Allow Encashment" + }, + { + "depends_on": "allow_encashment", + "fieldname": "earning_component", + "fieldtype": "Link", + "label": "Earning Component", + "options": "Salary Component" + }, + { + "collapsible": 1, + "fieldname": "earned_leave", + "fieldtype": "Section Break", + "label": "Earned Leave" + }, + { + "default": "0", + "fieldname": "is_earned_leave", + "fieldtype": "Check", + "label": "Is Earned Leave" + }, + { + "depends_on": "is_earned_leave", + "fieldname": "earned_leave_frequency", + "fieldtype": "Select", + "label": "Earned Leave Frequency", + "options": "Monthly\nQuarterly\nHalf-Yearly\nYearly" + }, + { + "depends_on": "is_earned_leave", + "fieldname": "rounding", + "fieldtype": "Select", + "label": "Rounding", + "options": "\n0.25\n0.5\n1.0" + }, + { + "depends_on": "is_carry_forward", + "fieldname": "maximum_carry_forwarded_leaves", + "fieldtype": "Float", + "label": "Maximum Carry Forwarded Leaves" + }, + { + "fieldname": "column_break_17", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_22", + "fieldtype": "Column Break" + }, + { + "default": "0", + "depends_on": "eval:doc.is_lwp == 0", + "fieldname": "is_ppl", + "fieldtype": "Check", + "label": "Is Partially Paid Leave" + }, + { + "depends_on": "eval:doc.is_ppl == 1", + "description": "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field.", + "fieldname": "fraction_of_daily_salary_per_leave", + "fieldtype": "Float", + "label": "Fraction of Daily Salary per Leave", + "mandatory_depends_on": "eval:doc.is_ppl == 1" + }, + { + "default": "0", + "description": "Allows allocating more leaves than the number of days in the allocation period.", + "fieldname": "allow_over_allocation", + "fieldtype": "Check", + "label": "Allow Over Allocation" + }, + { + "default": "Last Day", + "depends_on": "eval:doc.is_earned_leave", + "description": "The day of the month when leaves should be allocated", + "fieldname": "allocate_on_day", + "fieldtype": "Select", + "label": "Allocate on Day", + "options": "First Day\nLast Day\nDate of Joining" + }, + { + "depends_on": "allow_encashment", + "fieldname": "max_encashable_leaves", + "fieldtype": "Int", + "label": "Maximum Encashable Leaves", + "non_negative": 1 + }, + { + "depends_on": "allow_encashment", + "description": "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired", + "fieldname": "non_encashable_leaves", + "fieldtype": "Int", + "label": "Non-Encashable Leaves", + "non_negative": 1 + } + ], + "icon": "fa fa-flag", + "idx": 1, + "links": [], + "modified": "2024-12-18 19:51:44.162375", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Type", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "read": 1, + "role": "Employee" + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type.py new file mode 100644 index 000000000..3bb0c2963 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type.py @@ -0,0 +1,78 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe +from frappe import _, bold +from frappe.model.document import Document +from frappe.utils import today + + +class LeaveType(Document): + def validate(self): + self.validate_lwp() + self.validate_leave_types() + self.validate_allocated_earned_leave() + + def validate_lwp(self): + if self.is_lwp: + leave_allocation = frappe.get_all( + "Leave Allocation", + filters={"leave_type": self.name, "from_date": ("<=", today()), "to_date": (">=", today())}, + fields=["name"], + ) + leave_allocation = [l["name"] for l in leave_allocation] + if leave_allocation: + frappe.throw( + _( + "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" + ).format(", ".join(leave_allocation)) + ) # nosec + + def validate_leave_types(self): + if self.is_compensatory and self.is_earned_leave: + msg = _("Leave Type can either be compensatory or earned leave.") + "

    " + msg += _("Earned Leaves are allocated as per the configured frequency via scheduler.") + "
    " + msg += _( + "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." + ) + msg += "

    " + msg += _("Disable {0} or {1} to proceed.").format( + bold(_("Is Compensatory Leave")), bold(_("Is Earned Leave")) + ) + frappe.throw(msg, title=_("Not Allowed")) + + if self.is_lwp and self.is_ppl: + frappe.throw(_("Leave Type can either be without pay or partial pay"), title=_("Not Allowed")) + + if self.is_ppl and ( + self.fraction_of_daily_salary_per_leave < 0 or self.fraction_of_daily_salary_per_leave > 1 + ): + frappe.throw(_("The fraction of Daily Salary per Leave should be between 0 and 1")) + + def validate_allocated_earned_leave(self): + old_configuration = self.get_doc_before_save() + + if ( + old_configuration + and old_configuration.is_earned_leave + and old_configuration.max_leaves_allowed > self.max_leaves_allowed + ): + earned_leave_allocation_exists = frappe.db.exists( + "Leave Allocation", + {"leave_type": self.name, "from_date": ("<=", today()), "to_date": (">=", today())}, + cache=True, + ) + if earned_leave_allocation_exists: + frappe.msgprint( + title=_("Leave Allocation Exists"), + msg=_( + "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." + ), + ) + + def clear_cache(self): + from hrms.payroll.doctype.salary_slip.salary_slip import LEAVE_TYPE_MAP + + frappe.cache().delete_value(LEAVE_TYPE_MAP) + return super().clear_cache() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type_dashboard.py new file mode 100644 index 000000000..269a1ecc6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/leave_type_dashboard.py @@ -0,0 +1,10 @@ +def get_data(): + return { + "fieldname": "leave_type", + "transactions": [ + { + "items": ["Leave Allocation", "Leave Application"], + }, + {"items": ["Attendance", "Leave Encashment"]}, + ], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/test_leave_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/test_leave_type.py new file mode 100644 index 000000000..658a354c7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/test_leave_type.py @@ -0,0 +1,39 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe + +# test_records = frappe.get_test_records("Leave Type") + + +def create_leave_type(**args): + args = frappe._dict(args) + leave_type_name = args.leave_type_name or "_Test Leave Type" + if frappe.db.exists("Leave Type", leave_type_name): + frappe.delete_doc("Leave Type", leave_type_name, force=True) + + leave_type = frappe.get_doc( + { + "doctype": "Leave Type", + "leave_type_name": leave_type_name, + "include_holiday": args.include_holidays or 1, + "allow_encashment": args.allow_encashment or 0, + "is_earned_leave": args.is_earned_leave or 0, + "is_lwp": args.is_lwp or 0, + "is_ppl": args.is_ppl or 0, + "is_carry_forward": args.is_carry_forward or 0, + "expire_carry_forwarded_leaves_after_days": args.expire_carry_forwarded_leaves_after_days or 0, + "non_encashable_leaves": args.non_encashable_leaves or 5, + "earning_component": "Leave Encashment", + "max_leaves_allowed": args.max_leaves_allowed, + "maximum_carry_forwarded_leaves": args.maximum_carry_forwarded_leaves, + "allocate_on_day": args.allocate_on_day or "Last Day", + } + ) + + if leave_type.is_ppl: + leave_type.fraction_of_daily_salary_per_leave = args.fraction_of_daily_salary_per_leave or 0.5 + + leave_type.insert() + + return leave_type diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/test_records.json b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/test_records.json new file mode 100644 index 000000000..be7a6381c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/leave_type/test_records.json @@ -0,0 +1,27 @@ +[ + { + "doctype": "Leave Type", + "leave_type_name": "_Test Leave Type", + "include_holiday": 1 + }, + { + "doctype": "Leave Type", + "is_lwp": 1, + "leave_type_name": "_Test Leave Type LWP", + "include_holiday": 1 + }, + { + "doctype": "Leave Type", + "leave_type_name": "_Test Leave Type Encashment", + "include_holiday": 1, + "allow_encashment": 1, + "non_encashable_leaves": 5, + "earning_component": "Leave Encashment" + }, + { + "doctype": "Leave Type", + "leave_type_name": "_Test Leave Type Earned", + "include_holiday": 1, + "is_earned_leave": 1 + } +] \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/offer_term.js b/apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/offer_term.js new file mode 100644 index 000000000..17dc12004 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/offer_term.js @@ -0,0 +1,6 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Offer Term", { + refresh: function (frm) {}, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/offer_term.json b/apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/offer_term.json new file mode 100644 index 000000000..3d5c2f74d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/offer_term.json @@ -0,0 +1,41 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "field:offer_term", + "creation": "2015-03-05 13:00:30.900471", + "doctype": "DocType", + "document_type": "Setup", + "engine": "InnoDB", + "field_order": [ + "offer_term" + ], + "fields": [ + { + "fieldname": "offer_term", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Offer Term", + "reqd": 1, + "unique": 1 + } + ], + "links": [], + "modified": "2024-03-27 13:10:06.439022", + "modified_by": "Administrator", + "module": "HR", + "name": "Offer Term", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "read": 1, + "role": "HR User", + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/offer_term.py b/apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/offer_term.py new file mode 100644 index 000000000..cee6c4518 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/offer_term.py @@ -0,0 +1,9 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class OfferTerm(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/test_offer_term.py b/apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/test_offer_term.py new file mode 100644 index 000000000..9be24f510 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/offer_term/test_offer_term.py @@ -0,0 +1,10 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + +# test_records = frappe.get_test_records('Offer Term') + + +class TestOfferTerm(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_details/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_details/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_details/overtime_details.json b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_details/overtime_details.json new file mode 100644 index 000000000..bf6f25b15 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_details/overtime_details.json @@ -0,0 +1,80 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2024-10-15 16:36:22.056743", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "reference_document", + "date", + "overtime_type", + "column_break_ilza", + "overtime_duration", + "standard_working_hours", + "maximum_overtime_hours_allowed" + ], + "fields": [ + { + "fieldname": "reference_document", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Reference Document", + "options": "Attendance", + "read_only": 1 + }, + { + "fieldname": "date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Date", + "reqd": 1 + }, + { + "fieldname": "column_break_ilza", + "fieldtype": "Column Break" + }, + { + "fieldname": "overtime_type", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Overtime Type", + "options": "Overtime Type", + "reqd": 1 + }, + { + "fieldname": "overtime_duration", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Overtime Duration", + "precision": "2", + "reqd": 1 + }, + { + "fetch_from": "overtime_type.maximum_overtime_hours_allowed", + "fieldname": "maximum_overtime_hours_allowed", + "fieldtype": "Float", + "label": "Maximum Overtime Hours Allowed", + "read_only": 1 + }, + { + "fieldname": "standard_working_hours", + "fieldtype": "Float", + "label": "Standard Working Hours", + "reqd": 1 + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2025-08-13 11:32:52.884936", + "modified_by": "Administrator", + "module": "HR", + "name": "Overtime Details", + "owner": "Administrator", + "permissions": [], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_details/overtime_details.py b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_details/overtime_details.py new file mode 100644 index 000000000..887654613 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_details/overtime_details.py @@ -0,0 +1,9 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class OvertimeDetails(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_salary_component/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_salary_component/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json new file mode 100644 index 000000000..18d598919 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json @@ -0,0 +1,33 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2024-10-13 14:00:52.211875", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "salary_component" + ], + "fields": [ + { + "fieldname": "salary_component", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Salary Component", + "options": "Salary Component", + "reqd": 1 + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2024-10-13 14:01:49.333952", + "modified_by": "Administrator", + "module": "HR", + "name": "Overtime Salary Component", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_salary_component/overtime_salary_component.py b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_salary_component/overtime_salary_component.py new file mode 100644 index 000000000..a55e5564c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_salary_component/overtime_salary_component.py @@ -0,0 +1,9 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class OvertimeSalaryComponent(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/overtime_slip.js b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/overtime_slip.js new file mode 100644 index 000000000..e56faff69 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/overtime_slip.js @@ -0,0 +1,51 @@ +// Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Overtime Slip", { + refresh: async (frm) => { + if (frm.doc.docstatus === 0) { + frm.add_custom_button(__("Fetch Overtime Details"), () => { + if (!frm.doc.employee || !frm.doc.posting_date || !frm.doc.company) { + frappe.msgprint({ + title: __("Missing Fields"), + message: __( + "Please fill in Employee, Posting Date, and Company before fetching overtime details.", + ), + indicator: "orange", + }); + } else { + frm.events.get_emp_details_and_overtime_duration(frm); + } + }); + } + }, + + employee(frm) { + frm.events.set_frequency_and_dates(frm); + }, + posting_date(frm) { + frm.events.set_frequency_and_dates(frm); + }, + set_frequency_and_dates: function (frm) { + if (frm.doc.employee && frm.doc.posting_date) { + return frappe.call({ + method: "get_frequency_and_dates", + doc: frm.doc, + callback: function () { + frm.refresh(); + }, + }); + } + }, + get_emp_details_and_overtime_duration: function (frm) { + if (frm.doc.employee) { + return frappe.call({ + method: "get_emp_and_overtime_details", + doc: frm.doc, + callback: function () { + frm.refresh(); + }, + }); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/overtime_slip.json b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/overtime_slip.json new file mode 100644 index 000000000..540b955c9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/overtime_slip.json @@ -0,0 +1,219 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "HR-OT-SLIP-.#####", + "creation": "2024-10-15 16:19:55.229439", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "section_break_wdfp", + "posting_date", + "employee", + "employee_name", + "column_break_xsxd", + "company", + "department", + "amended_from", + "section_break_fvyh", + "start_date", + "end_date", + "salary_slip", + "column_break_sdpb", + "total_overtime_duration", + "payroll_entry", + "submitted_via_payroll_entry", + "section_break_dzua", + "overtime_details" + ], + "fields": [ + { + "fieldname": "section_break_wdfp", + "fieldtype": "Section Break" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Overtime Slip", + "print_hide": 1, + "read_only": 1, + "search_index": 1 + }, + { + "default": "Today", + "fieldname": "posting_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Posting Date", + "reqd": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name" + }, + { + "fieldname": "column_break_xsxd", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department" + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "section_break_fvyh", + "fieldtype": "Section Break" + }, + { + "fieldname": "column_break_sdpb", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_dzua", + "fieldtype": "Section Break" + }, + { + "fieldname": "overtime_details", + "fieldtype": "Table", + "label": "Overtime Details", + "options": "Overtime Details", + "reqd": 1 + }, + { + "fieldname": "total_overtime_duration", + "fieldtype": "Float", + "label": "Total Overtime Duration", + "read_only": 1 + }, + { + "allow_on_submit": 1, + "fieldname": "salary_slip", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "label": "Salary Slip", + "options": "Salary Slip", + "read_only": 1 + }, + { + "fieldname": "start_date", + "fieldtype": "Date", + "label": "Start Date", + "reqd": 1 + }, + { + "fieldname": "end_date", + "fieldtype": "Date", + "label": "End Date", + "reqd": 1 + }, + { + "depends_on": "payroll_entry", + "fieldname": "payroll_entry", + "fieldtype": "Link", + "label": "Payroll Entry", + "options": "Payroll Entry", + "read_only": 1 + }, + { + "default": "0", + "fieldname": "submitted_via_payroll_entry", + "fieldtype": "Check", + "hidden": 1, + "label": "Submitted via Payroll Entry" + } + ], + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [ + { + "link_doctype": "Additional Salary", + "link_fieldname": "ref_docname" + } + ], + "modified": "2025-08-11 17:02:10.282104", + "modified_by": "Administrator", + "module": "HR", + "name": "Overtime Slip", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Leave Approver", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/overtime_slip.py b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/overtime_slip.py new file mode 100644 index 000000000..44998dcfd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/overtime_slip.py @@ -0,0 +1,509 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import json +from datetime import timedelta +from email.utils import formatdate + +import frappe +from frappe import _, bold +from frappe.model.docstatus import DocStatus +from frappe.model.document import Document +from frappe.utils import cstr, flt +from frappe.utils.data import format_time, get_link_to_form, getdate + +from hrms.payroll.doctype.payroll_entry.payroll_entry import get_start_end_dates +from hrms.payroll.doctype.salary_structure_assignment.salary_structure_assignment import ( + get_assigned_salary_structure, +) + + +class OvertimeSlip(Document): + def validate(self): + if not (self.start_date or self.end_date): + self.get_frequency_and_dates() + + if self.start_date > self.end_date: + frappe.throw(_("Start date cannot be greater than end date")) + + self.validate_overlap() + self.validate_overtime_date_and_duration() + + def on_submit(self): + self.process_overtime_slip() + + def validate_overlap(self): + overtime_slips = frappe.db.get_all( + "Overtime Slip", + filters={ + "docstatus": ("!=", 2), + "employee": self.employee, + "end_date": (">=", self.start_date), + "start_date": ("<=", self.end_date), + "name": ("!=", self.name), + }, + ) + if len(overtime_slips): + form_link = get_link_to_form("Overtime Slip", overtime_slips[0].name) + msg = _("Overtime Slip:{0} has been created between {1} and {2}").format( + bold(form_link), bold(self.start_date), bold(self.end_date) + ) + frappe.throw(msg) + + def validate_overtime_date_and_duration(self): + dates = set() + overtime_type_cache = {} + for detail in self.overtime_details: + # check for duplicate dates + if detail.date in dates: + frappe.throw(_("Date {0} is repeated in Overtime Details").format(detail.date)) + dates.add(detail.date) + # validate duration only for overtime details not linked to attendance + if detail.reference_document: + continue + + if detail.overtime_type not in overtime_type_cache: + overtime_type_cache[detail.overtime_type] = frappe.db.get_value( + "Overtime Type", detail.overtime_type, "maximum_overtime_hours_allowed" + ) + maximum_overtime_hours = overtime_type_cache[detail.overtime_type] + if maximum_overtime_hours: + if detail.overtime_duration > maximum_overtime_hours: + frappe.throw( + _("Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed").format( + detail.date + ) + ) + + @frappe.whitelist() + def get_frequency_and_dates(self): + date = self.posting_date + + salary_structure = get_assigned_salary_structure(self.employee, date) + if salary_structure: + payroll_frequency = frappe.db.get_value("Salary Structure", salary_structure, "payroll_frequency") + date_details = get_start_end_dates( + payroll_frequency, date, frappe.db.get_value("Employee", self.employee, "company") + ) + self.start_date = date_details.start_date + self.end_date = date_details.end_date + else: + frappe.throw( + _("Salary Structure not assigned for employee {0} for date {1}").format( + self.employee, self.start_date + ) + ) + + @frappe.whitelist() + def get_emp_and_overtime_details(self): + records = self.get_attendance_records() + if len(records): + self.create_overtime_details_row_for_attendance(records) + if len(self.overtime_details): + total_overtime_duration = 0.0 + for detail in self.overtime_details: + if detail.overtime_duration is not None: + total_overtime_duration += detail.overtime_duration + self.total_overtime_duration = total_overtime_duration + self.save() + + def create_overtime_details_row_for_attendance(self, records): + self.overtime_details = [] + overtime_type_cache = {} + + for record in records: + if record.overtime_type not in overtime_type_cache: + overtime_type_cache[record.overtime_type] = frappe.db.get_value( + "Overtime Type", record.overtime_type, "maximum_overtime_hours_allowed" + ) + + maximum_overtime_hours_allowed = overtime_type_cache[record.overtime_type] + overtime_duration = record.actual_overtime_duration or 0.0 + + if maximum_overtime_hours_allowed > 0: + overtime_duration = ( + overtime_duration + if maximum_overtime_hours_allowed > overtime_duration + else maximum_overtime_hours_allowed + ) + + if overtime_duration > 0: + self.append( + "overtime_details", + { + "reference_document": record.name, + "date": record.attendance_date, + "overtime_type": record.overtime_type, + "overtime_duration": overtime_duration, + "standard_working_hours": record.standard_working_hours, + }, + ) + + def get_attendance_records(self): + records = [] + if self.start_date and self.end_date: + records = frappe.get_all( + "Attendance", + fields=[ + "name", + "attendance_date", + "overtime_type", + "actual_overtime_duration", + "standard_working_hours", + ], + filters={ + "employee": self.employee, + "docstatus": 1, + "attendance_date": ("between", [getdate(self.start_date), getdate(self.end_date)]), + "status": "Present", + "overtime_type": ["!=", ""], + }, + ) + if not len(records): + frappe.throw( + _("No attendance records found for employee {0} between {1} and {2}").format( + self.employee, self.start_date, self.end_date + ) + ) + return records + + def process_overtime_slip(self): + overtime_components = self.get_overtime_component_amounts() + + precision = frappe.db.get_single_value("System Settings", "currency_precision") or 2 + for component, total_amount in overtime_components.items(): + self.create_additional_salary(component, total_amount, precision) + + def create_additional_salary(self, salary_component, total_amount, precision=None): + if total_amount > 0: + additional_salary = frappe.get_doc( + { + "doctype": "Additional Salary", + "company": self.company, + "employee": self.employee, + "salary_component": salary_component, + "amount": flt(total_amount, precision), + "payroll_date": self.end_date, + "overwrite_salary_structure_amount": 0, + "ref_doctype": "Overtime Slip", + "ref_docname": self.name, + } + ) + additional_salary.submit() + + def get_overtime_component_amounts(self): + """ + Get amount for each overtime detail child item, sum and group amounts by salary component for additional salary creation + """ + if not self.overtime_details: + return {} + + unique_overtime_types = {detail.overtime_type for detail in self.overtime_details} + + self.overtime_types = self._bulk_load_overtime_types(unique_overtime_types) + holiday_date_map = self.get_holiday_map() + overtime_components = {} + + for overtime_detail in self.overtime_details: + overtime_type = overtime_detail.overtime_type + # calculate hourly rate separately for each overtime log since standard working hours may vary + applicable_hourly_rate = self._get_applicable_hourly_rate( + overtime_type, overtime_detail.get("standard_working_hours") + ) + + overtime_amount = self.calculate_overtime_amount( + overtime_type, + applicable_hourly_rate, + overtime_detail.overtime_duration, + overtime_detail.date, + holiday_date_map, + ) + + salary_component = self.overtime_types[overtime_type]["overtime_salary_component"] + overtime_components[salary_component] = ( + overtime_components.get(salary_component, 0) + overtime_amount + ) + + return overtime_components + + def _bulk_load_overtime_types(self, overtime_type_names): + """ + Load all overtime type details in bulk + """ + if not overtime_type_names: + return {} + + # Get all overtime types details + overtime_types_data = frappe.get_all( + "Overtime Type", + filters={"name": ["in", list(overtime_type_names)]}, + fields=[ + "name", + "standard_multiplier", + "weekend_multiplier", + "public_holiday_multiplier", + "applicable_for_weekend", + "applicable_for_public_holiday", + "overtime_salary_component", + "overtime_calculation_method", + "hourly_rate", + ], + ) + + overtime_types = {} + salary_component_based_types = [] + + for ot_data in overtime_types_data: + overtime_types[ot_data.name] = ot_data + if ot_data.overtime_calculation_method == "Salary Component Based": + salary_component_based_types.append(ot_data.name) + + # Bulk load salary components for salary component based types + if salary_component_based_types: + salary_components_data = frappe.get_all( + "Overtime Salary Component", + filters={"parent": ["in", salary_component_based_types]}, + fields=["parent", "salary_component"], + ) + + # Group by parent + components_by_parent = {} + for comp_data in salary_components_data: + if comp_data.parent not in components_by_parent: + components_by_parent[comp_data.parent] = [] + components_by_parent[comp_data.parent].append(comp_data.salary_component) + + for ot_type in salary_component_based_types: # Add components to overtime types + overtime_types[ot_type]["components"] = components_by_parent.get(ot_type, []) + + return overtime_types + + def _get_applicable_hourly_rate(self, overtime_type, standard_working_hours=0): + overtime_details = self.overtime_types[overtime_type] + overtime_calculation_method = overtime_details["overtime_calculation_method"] + + applicable_hourly_rate = 0.0 + if overtime_calculation_method == "Fixed Hourly Rate": + applicable_hourly_rate = overtime_details.get("hourly_rate", 0.0) + elif overtime_calculation_method == "Salary Component Based": + applicable_hourly_rate = self._calculate_component_based_hourly_rate( + overtime_type, standard_working_hours + ) + return applicable_hourly_rate + + def _calculate_component_based_hourly_rate(self, overtime_type, standard_working_hours): + components = self.overtime_types[overtime_type]["components"] or [] + + if not hasattr(self, "_cached_salary_slip"): + salary_structure = get_assigned_salary_structure(self.employee, self.start_date) + self._cached_salary_slip = self._make_salary_slip(salary_structure) + + if not components or not hasattr(self, "_cached_salary_slip"): + return 0.0 + + component_amount = sum( + data.amount + for data in self._cached_salary_slip.earnings + if data.salary_component in components and not data.get("additional_salary", None) + ) + payment_days = max(self._cached_salary_slip.payment_days, 1) + applicable_daily_amount = component_amount / payment_days + + return applicable_daily_amount / standard_working_hours + + def _make_salary_slip(self, salary_structure): + from hrms.payroll.doctype.salary_structure.salary_structure import make_salary_slip + + return make_salary_slip( + salary_structure, + employee=self.employee, + ignore_permissions=True, + posting_date=self.start_date, + ) + + def calculate_overtime_amount( + self, overtime_type, applicable_hourly_rate, overtime_duration, overtime_date, holiday_date_map + ): + """ + Calculate total amount for the given overtime detail child item based on its type and date. + """ + overtime_details = self.overtime_types.get(overtime_type) + if not overtime_details: + return 0.0 + + if applicable_hourly_rate <= 0: + return 0.0 + + overtime_date_str = cstr(overtime_date) + multiplier = overtime_details.get("standard_multiplier", 1) + + holiday_info = holiday_date_map.get(overtime_date_str) + if holiday_info: + if overtime_details.get("applicable_for_weekend") and holiday_info.weekly_off: + multiplier = overtime_details.get("weekend_multiplier", multiplier) + elif overtime_details.get("applicable_for_public_holiday") and not holiday_info.weekly_off: + multiplier = overtime_details.get("public_holiday_multiplier", multiplier) + + amount = overtime_duration * applicable_hourly_rate * multiplier + return amount + + def get_holiday_map(self): + from erpnext.setup.doctype.employee.employee import get_holiday_list_for_employee + + from hrms.utils.holiday_list import get_holiday_dates_between + + holiday_list = get_holiday_list_for_employee(self.employee) + holiday_dates = get_holiday_dates_between( + holiday_list, self.start_date, self.end_date, select_weekly_off=True, as_dict=True + ) + + holiday_date_map = {} + for holiday_date in holiday_dates: + holiday_date_map[cstr(holiday_date.holiday_date)] = holiday_date + + return holiday_date_map + + def get_overtime_type_details(self, name): + details = frappe.get_value( + "Overtime Type", + filters={"name": name}, + fieldname=[ + "name", + "standard_multiplier", + "weekend_multiplier", + "public_holiday_multiplier", + "applicable_for_weekend", + "applicable_for_public_holiday", + "overtime_salary_component", + "overtime_calculation_method", + "hourly_rate", + ], + as_dict=True, + ) + + components = [] + if details.overtime_calculation_method == "Salary Component Based": + components = frappe.get_all( + "Overtime Salary Component", filters={"parent": name}, fields=["salary_component"] + ) + components = [data.salary_component for data in components] + details["components"] = components + + return details + + +@frappe.whitelist() +def filter_employees_for_overtime_slip_creation(start_date, end_date, employees, limit=None): + if not employees: + return [] + + if not isinstance(employees, list): + employees = json.loads(employees) + + OvertimeSlip = frappe.qb.DocType("Overtime Slip") + Attendance = frappe.qb.DocType("Attendance") + + # First, get employees with valid attendance records + employees_with_overtime_attendance = ( + frappe.qb.from_(Attendance) + .select(Attendance.employee) + .distinct() + .where( + (Attendance.employee.isin(employees)) + & (Attendance.attendance_date >= start_date) + & (Attendance.attendance_date <= end_date) + & (Attendance.docstatus == 1) # Only submitted attendance + & (Attendance.status == "Present") # Only present attendance + & (Attendance.overtime_type != "") + & (Attendance.overtime_type.isnotnull()) + ) + ).run(pluck=True) + + if not employees_with_overtime_attendance: + return [] + + # exclude employees who already have overtime slips for this period + employees_with_existing_overtime_slips = ( + frappe.qb.from_(OvertimeSlip) + .select(OvertimeSlip.employee) + .distinct() + .where( + (OvertimeSlip.employee.isin(employees_with_overtime_attendance)) + & (OvertimeSlip.docstatus != 2) + & (OvertimeSlip.start_date <= end_date) + & (OvertimeSlip.end_date >= start_date) + ) + ).run(pluck=True) + + # Get eligible employees (those with overtime attendance but no existing slips) + eligible_employees = list( + set(employees_with_overtime_attendance) - set(employees_with_existing_overtime_slips) + ) + + return eligible_employees + + +def create_overtime_slips_for_employees(employees, args): + count = 0 + errors = [] + for emp in employees: + args.update({"doctype": "Overtime Slip", "employee": emp}) + try: + frappe.get_doc(args).get_emp_and_overtime_details() + count += 1 + except Exception as e: + frappe.clear_last_message() + errors.append(_("Employee {0} : {1}").format(emp, str(e))) + frappe.log_error(frappe.get_traceback(), _("Overtime Slip Creation Error for {0}").format(emp)) + + if count: + frappe.msgprint( + _("Overtime Slip created for {0} employee(s)").format(count), + indicator="green", + title=_("Overtime Slips Created"), + ) + if errors: + error_list_html = "".join(f"
  • {err}
  • " for err in errors) + frappe.msgprint( + title=_("Overtime Slip Creation Failed"), + msg=f"
      {error_list_html}
    ", + indicator="red", + ) + + status = "Failed" if errors else "Draft" + frappe.get_doc("Payroll Entry", args.get("payroll_entry")).db_set({"status": status}) + frappe.publish_realtime("completed_overtime_slip_creation", user=frappe.session.user) + + +def submit_overtime_slips_for_employees(overtime_slips, payroll_entry): + count = 0 + errors = [] + for overtime_slip in overtime_slips: + try: + doc = frappe.get_doc("Overtime Slip", overtime_slip) + doc.submitted_via_payroll_entry = 1 + doc.submit() + count += 1 + except Exception as e: + frappe.clear_last_message() + errors.append(_("{0} : {1}").format(overtime_slip, str(e))) + frappe.log_error( + frappe.get_traceback(), _("Overtime Slip Submission Error for {0}").format(overtime_slip) + ) + if count: + frappe.msgprint( + _("Overtime Slips submitted for {0} employee(s)").format(count), + indicator="green", + title=_("Overtime Slip Submitted"), + ) + if errors: + error_list_html = "".join(f"
  • {err}
  • " for err in errors) + frappe.msgprint( + title=_("Overtime Slip Submission Failed"), + msg=_(f"
      {error_list_html}
    "), + indicator="red", + ) + + status = "Failed" if errors else "Draft" + payroll_entry = frappe.get_doc("Payroll Entry", payroll_entry).db_set({"status": status}) + frappe.publish_realtime("completed_overtime_slip_submission", user=frappe.session.user) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/test_overtime_slip.py b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/test_overtime_slip.py new file mode 100644 index 000000000..a7522c74e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_slip/test_overtime_slip.py @@ -0,0 +1,203 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, flt, get_first_day, getdate, nowdate, today + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin +from hrms.hr.doctype.overtime_type.test_overtime_type import create_overtime_type +from hrms.hr.doctype.shift_type.test_shift_type import make_shift_assignment, setup_shift_type +from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + +TEST_COMPANY = "_Test Company" + + +class TestOvertimeSlip(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Overtime Type") + frappe.db.delete("Overtime Slip") + frappe.db.delete("Shift Assignment") + frappe.db.delete("Salary Structure Assignment") + frappe.db.delete("Salary Structure") + frappe.db.delete("Employee") + frappe.db.delete("Shift Type", {"name": "_Test Overtime Shift"}) + + def test_overtime_calculation_and_additional_salary_creation(self): + from hrms.payroll.doctype.salary_structure.salary_structure import make_salary_slip + + employee = make_employee("test_overtime_slip_salary@example.com") + salary_structure = make_salary_structure( + "Test Overtime Salary Slip", "Monthly", employee=employee, company=TEST_COMPANY + ) + + overtime_type, overtime_slip, total_overtime_hours = setup_overtime(employee) + + # Verify overtime details match attendance records + attendance_records = frappe.get_all( + "Attendance", + filters={"employee": employee, "status": "Present"}, + fields=["name", "actual_overtime_duration", "overtime_type", "attendance_date"], + ) + records = {rec.name: rec for rec in attendance_records} + + for detail in overtime_slip.overtime_details: + self.assertIn(detail.reference_document, records) + self.assertEqual( + detail.overtime_duration, records[detail.reference_document].actual_overtime_duration + ) + self.assertEqual(str(detail.date), str(records[detail.reference_document].attendance_date)) + + # Create salary slip and calculate expected overtime amount + salary_slip = make_salary_slip( + source_name=salary_structure.name, + employee=employee, + posting_date=overtime_slip.start_date, + ) + + standard_working_hours = overtime_slip.overtime_details[0].standard_working_hours + applicable_amount = sum( + data.amount + for data in salary_slip.earnings + if data.salary_component == "Basic Salary" and not data.get("additional_salary") + ) + daily_wages = applicable_amount / salary_slip.payment_days + hourly_rate = daily_wages / standard_working_hours + expected_overtime_amount = hourly_rate * total_overtime_hours * overtime_type.standard_multiplier + + actual_overtime_amount = frappe.db.get_value( + "Additional Salary", {"ref_docname": overtime_slip.name}, "amount" + ) + self.assertEqual(flt(expected_overtime_amount, 2), actual_overtime_amount) + + def test_overtime_calculation_for_fixed_hourly_rate(self): + employee = make_employee("test_overtime_slip_fixed@example.com") + make_salary_structure("Test Overtime Salary Slip", "Monthly", employee=employee, company=TEST_COMPANY) + + overtime_type, overtime_slip, total_overtime_hours = setup_overtime(employee, "Fixed Hourly Rate") + expected_overtime_amount = ( + overtime_type.hourly_rate * total_overtime_hours * overtime_type.standard_multiplier + ) + + actual_overtime_amount = frappe.db.get_value( + "Additional Salary", {"ref_docname": overtime_slip.name}, "amount" + ) + + self.assertEqual(flt(expected_overtime_amount, 2), flt(actual_overtime_amount, 2)) + + def test_overtime_slip_creation_via_payroll_entry(self): + """Test creation of overtime slips via payroll entry.""" + from hrms.payroll.doctype.payroll_entry.payroll_entry import get_start_end_dates + from hrms.payroll.doctype.payroll_entry.test_payroll_entry import get_payroll_entry + + date = getdate() + month_start_date = get_first_day(date) + + company = frappe.get_doc("Company", TEST_COMPANY) + employee = make_employee("test_overtime_slip_01@example.com") + overtime_type = create_overtime_type(overtime_calculation_method="Fixed Hourly Rate") + shift_type = setup_shift_type( + company=TEST_COMPANY, + shift_type="_Test Overtime Shift", + allow_overtime=1, + overtime_type=overtime_type.name, + last_sync_of_checkin=f"{add_days(date, 10)} 15:00:00", + process_attendance_after=add_days(month_start_date, -1), + mark_auto_attendance_on_holidays=1, + ) + frappe.db.set_single_value("Payroll Settings", "create_overtime_slip", 1) + + make_salary_structure("Test Overtime Salary Slip", "Monthly", employee=employee, company=TEST_COMPANY) + make_shift_assignment( + shift_type=shift_type.name, employee=employee, start_date=add_days(month_start_date, -1) + ) + create_checkin_records_for_overtime(employee) + shift_type.process_auto_attendance() + + dates = get_start_end_dates("Monthly", nowdate()) + payroll_entry = get_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company.default_payroll_payable_account, + currency=company.default_currency, + company=company.name, + ) + + payroll_entry.create_overtime_slips() + payroll_entry.submit_overtime_slips() + + overtime_slip = frappe.db.exists( + "Overtime Slip", + { + "employee": employee, + "payroll_entry": payroll_entry.name, + "docstatus": 1, + }, + ) + + self.assertTrue(overtime_slip) + + def tearDown(self): + frappe.db.rollback() + + +def create_overtime_slip(employee): + date = getdate() + month_start_date = get_first_day(date) + slip = frappe.new_doc("Overtime Slip") + slip.employee = employee + slip.posting_date = today() + slip.start_date = month_start_date + slip.end_date = add_days(month_start_date, 2) + slip.get_emp_and_overtime_details() + return slip + + +def create_checkin_records_for_overtime(employee): + date = getdate() + month_start_date = get_first_day(date) + checkin_times = [ + (f"{month_start_date} 7:00:00", "IN"), + (f"{month_start_date} 13:00:00", "OUT"), + (f"{add_days(month_start_date, 1)} 7:00:00", "IN"), + (f"{add_days(month_start_date, 1)} 13:00:00", "OUT"), + ] + for time, log_type in checkin_times: + make_checkin(employee, time=time, log_type=log_type) + + +def setup_overtime(employee, overtime_calculation_method="Salary Component Based"): + overtime_type = create_overtime_type(overtime_calculation_method=overtime_calculation_method) + + date = getdate() + month_start_date = get_first_day(date) + shift_type = setup_shift_type( + company=TEST_COMPANY, + shift_type="_Test Overtime Shift", + allow_overtime=1, + overtime_type=overtime_type.name, + last_sync_of_checkin=f"{add_days(date, 10)} 15:00:00", + process_attendance_after=add_days(month_start_date, -1), + mark_auto_attendance_on_holidays=1, + ) + + make_shift_assignment( + shift_type=shift_type.name, employee=employee, start_date=add_days(month_start_date, -1) + ) + create_checkin_records_for_overtime(employee) + shift_type.process_auto_attendance() + + slip = create_overtime_slip(employee) + slip.submit() + + overtime_details = frappe.get_all( + "Overtime Details", + filters={"parent": slip.name}, + fields=["overtime_type", "overtime_duration", "date", "standard_working_hours"], + ) + + total_overtime_hours = sum(detail["overtime_duration"] for detail in overtime_details) + + return overtime_type, slip, total_overtime_hours diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/overtime_type.js b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/overtime_type.js new file mode 100644 index 000000000..06526d270 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/overtime_type.js @@ -0,0 +1,8 @@ +// Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +// frappe.ui.form.on("Overtime Type", { +// refresh(frm) { + +// }, +// }); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/overtime_type.json b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/overtime_type.json new file mode 100644 index 000000000..df02530c7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/overtime_type.json @@ -0,0 +1,159 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "Prompt", + "creation": "2024-10-12 23:46:31.408000", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "section_break_pai1", + "maximum_overtime_hours_allowed", + "column_break_meuk", + "overtime_salary_component", + "section_break_xxdv", + "overtime_calculation_method", + "column_break_vnde", + "applicable_salary_component", + "hourly_rate", + "pay_rate_multipliers_section", + "standard_multiplier", + "column_break_cdtj", + "applicable_for_public_holiday", + "public_holiday_multiplier", + "applicable_for_weekend", + "weekend_multiplier" + ], + "fields": [ + { + "fieldname": "section_break_pai1", + "fieldtype": "Section Break", + "label": "Basic" + }, + { + "description": "Overtime earnings will be booked under this salary component for payout.", + "fieldname": "overtime_salary_component", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Overtime Salary Component", + "options": "Salary Component", + "reqd": 1 + }, + { + "depends_on": "eval: doc.overtime_calculation_method == \"Salary Component Based\";", + "description": "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate.", + "fieldname": "applicable_salary_component", + "fieldtype": "Table MultiSelect", + "label": "Applicable Salary Components", + "mandatory_depends_on": "eval: doc.overtime_calculation_method == \"Salary Component Based\";", + "options": "Overtime Salary Component" + }, + { + "fieldname": "maximum_overtime_hours_allowed", + "fieldtype": "Float", + "label": "Maximum Overtime Hours Allowed Per Day", + "non_negative": 1 + }, + { + "description": "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n", + "fieldname": "pay_rate_multipliers_section", + "fieldtype": "Section Break", + "label": "Pay Rate Multipliers" + }, + { + "fieldname": "standard_multiplier", + "fieldtype": "Float", + "label": "Standard Multiplier", + "non_negative": 1, + "reqd": 1 + }, + { + "default": "0", + "description": "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead.", + "fieldname": "applicable_for_weekend", + "fieldtype": "Check", + "label": "Apply for Weekend", + "non_negative": 1, + "reqd": 1 + }, + { + "depends_on": "eval: doc.applicable_for_weekend == 1", + "fieldname": "weekend_multiplier", + "fieldtype": "Float", + "label": "Weekend Multiplier", + "mandatory_depends_on": "eval: doc.applicable_for_weekend == 1", + "non_negative": 1 + }, + { + "default": "0", + "description": "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead.", + "fieldname": "applicable_for_public_holiday", + "fieldtype": "Check", + "label": "Apply for Public Holiday" + }, + { + "depends_on": "eval: doc.applicable_for_public_holiday == 1", + "fieldname": "public_holiday_multiplier", + "fieldtype": "Float", + "label": "Public Holiday Multiplier", + "mandatory_depends_on": "eval: doc.applicable_for_public_holiday == 1", + "non_negative": 1 + }, + { + "fieldname": "column_break_meuk", + "fieldtype": "Column Break" + }, + { + "depends_on": "eval: doc.overtime_calculation_method == \"Fixed Hourly Rate\";", + "fieldname": "hourly_rate", + "fieldtype": "Currency", + "label": "Hourly Rate", + "mandatory_depends_on": "eval: doc.overtime_calculation_method == \"Fixed Hourly Rate\";" + }, + { + "fieldname": "section_break_xxdv", + "fieldtype": "Section Break" + }, + { + "fieldname": "column_break_vnde", + "fieldtype": "Column Break" + }, + { + "default": "Salary Component Based", + "description": "Choose how the hourly overtime amount is calculated:\n
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n
    3. Salary Component-Based:\n\n(Sum of selected component amounts) \u00f7 (Payment Days) \u00f7 (Standard Daily Hours)
    ", + "fieldname": "overtime_calculation_method", + "fieldtype": "Select", + "label": "Overtime Amount Calculation", + "options": "Salary Component Based\nFixed Hourly Rate" + }, + { + "fieldname": "column_break_cdtj", + "fieldtype": "Column Break" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2025-08-11 12:05:23.356474", + "modified_by": "Administrator", + "module": "HR", + "name": "Overtime Type", + "naming_rule": "Set by user", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/overtime_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/overtime_type.py new file mode 100644 index 000000000..8023767a6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/overtime_type.py @@ -0,0 +1,16 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.model.document import Document + + +class OvertimeType(Document): + def validate(self): + if self.overtime_calculation_method == "Salary Component Based": + self.validate_applicable_components() + + def validate_applicable_components(self): + if not len(self.applicable_salary_component): + frappe.throw(_("Select Applicable Components for Overtime Type")) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/test_overtime_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/test_overtime_type.py new file mode 100644 index 000000000..806f29d0e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/overtime_type/test_overtime_type.py @@ -0,0 +1,44 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +import frappe +from frappe.tests import UnitTestCase + +from hrms.payroll.doctype.salary_slip.test_salary_slip import make_salary_component + + +class TestOvertimeType(UnitTestCase): + """ + Unit tests for OvertimeType. + Use this class for testing individual functions and methods. + """ + + pass + + +def create_overtime_type(**args): + args = frappe._dict(args) + + overtime_type = frappe.new_doc("Overtime Type") + overtime_type.name = args.get("name") or "_Test Overtime" + overtime_type.overtime_calculation_method = args.overtime_calculation_method or "Salary Component Based" + overtime_type.standard_multiplier = 1 + overtime_type.applicable_for_weekend = args.applicable_for_weekend or 0 + overtime_type.applicable_for_public_holiday = args.applicable_for_public_holiday or 0 + overtime_type.maximum_overtime_hours_allowed = args.maximum_overtime_hours_allowed or 0 + overtime_type.overtime_salary_component = args.overtime_salary_component or "Overtime" + + if overtime_type.overtime_calculation_method == "Fixed Hourly Rate": + overtime_type.hourly_rate = 400 + elif overtime_type.overtime_calculation_method == "Salary Component Based": + overtime_type.append("applicable_salary_component", {"salary_component": "Basic Salary"}) + + if args.applicable_for_weekend: + overtime_type.weekend_multiplier = 1.5 + if args.applicable_for_public_holidays: + overtime_type.public_holiday_multiplier = 2 + + overtime_type.save() + + return overtime_type diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/purpose_of_travel.js b/apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/purpose_of_travel.js new file mode 100644 index 000000000..948104b55 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/purpose_of_travel.js @@ -0,0 +1,6 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Purpose of Travel", { + refresh: function (frm) {}, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json b/apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json new file mode 100644 index 000000000..4317e656b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json @@ -0,0 +1,43 @@ +{ + "actions": [], + "autoname": "field:purpose_of_travel", + "creation": "2018-05-15 07:00:30.933908", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "purpose_of_travel" + ], + "fields": [ + { + "fieldname": "purpose_of_travel", + "fieldtype": "Data", + "label": "Purpose of Travel", + "unique": 1 + } + ], + "links": [], + "modified": "2024-03-27 13:10:27.112282", + "modified_by": "Administrator", + "module": "HR", + "name": "Purpose of Travel", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/purpose_of_travel.py b/apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/purpose_of_travel.py new file mode 100644 index 000000000..c9d6e713f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/purpose_of_travel.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class PurposeofTravel(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/test_purpose_of_travel.py b/apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/test_purpose_of_travel.py new file mode 100644 index 000000000..914054a7f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/purpose_of_travel/test_purpose_of_travel.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestPurposeofTravel(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/pwa_notification.js b/apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/pwa_notification.js new file mode 100644 index 000000000..f4a1c3de1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/pwa_notification.js @@ -0,0 +1,8 @@ +// Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +// frappe.ui.form.on("PWA Notification", { +// refresh(frm) { + +// }, +// }); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/pwa_notification.json b/apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/pwa_notification.json new file mode 100644 index 000000000..3c16bba6c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/pwa_notification.json @@ -0,0 +1,116 @@ +{ + "actions": [], + "autoname": "autoincrement", + "creation": "2023-08-29 14:27:22.304694", + "default_view": "List", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "to_user", + "column_break_otsw", + "from_user", + "section_break_wsgn", + "message", + "read", + "section_break_xdby", + "reference_document_type", + "column_break_prpj", + "reference_document_name" + ], + "fields": [ + { + "fetch_from": "from_employee.user_id", + "fieldname": "from_user", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "From User", + "options": "User" + }, + { + "fetch_from": "to_employee.user_id", + "fieldname": "to_user", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "To User", + "options": "User", + "search_index": 1 + }, + { + "fieldname": "section_break_wsgn", + "fieldtype": "Section Break" + }, + { + "fieldname": "message", + "fieldtype": "Text Editor", + "label": "Message" + }, + { + "default": "0", + "fieldname": "read", + "fieldtype": "Check", + "label": "Read" + }, + { + "fieldname": "section_break_xdby", + "fieldtype": "Section Break" + }, + { + "fieldname": "reference_document_type", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Reference Document Type", + "options": "DocType" + }, + { + "fieldname": "column_break_prpj", + "fieldtype": "Column Break" + }, + { + "fieldname": "reference_document_name", + "fieldtype": "Data", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Reference Document Name" + }, + { + "fieldname": "column_break_otsw", + "fieldtype": "Column Break" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2024-03-27 13:10:27.401806", + "modified_by": "Administrator", + "module": "HR", + "name": "PWA Notification", + "naming_rule": "Autoincrement", + "owner": "Administrator", + "permissions": [ + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "message" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/pwa_notification.py b/apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/pwa_notification.py new file mode 100644 index 000000000..fe0f561e1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/pwa_notification.py @@ -0,0 +1,43 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt +import frappe +from frappe.model.document import Document + +import hrms + + +class PWANotification(Document): + def on_update(self): + hrms.refetch_resource("hrms:notifications", self.to_user) + + def after_insert(self): + self.send_push_notification() + + def send_push_notification(self): + try: + from frappe.push_notification import PushNotification + + push_notification = PushNotification("hrms") + if push_notification.is_enabled(): + push_notification.send_notification_to_user( + self.to_user, + self.reference_document_type, + self.message, + link=self.get_notification_link(), + icon=f"{frappe.utils.get_url()}/assets/hrms/manifest/favicon-196.png", + ) + except ImportError: + # push notifications are not supported in the current framework version + pass + except Exception: + self.log_error(f"Error sending push notification: {self.name}") + + def get_notification_link(self): + base_url = f"{frappe.utils.get_url()}/hrms" + + if self.reference_document_type == "Leave Application": + return f"{base_url}/leave-applications/{self.reference_document_name}" + elif self.reference_document_type == "Expense Claim": + return f"{base_url}/expense-claims/{self.reference_document_name}" + + return base_url diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/test_pwa_notification.py b/apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/test_pwa_notification.py new file mode 100644 index 000000000..5c8bd1fde --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/pwa_notification/test_pwa_notification.py @@ -0,0 +1,9 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestPWANotification(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment.js b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment.js new file mode 100644 index 000000000..2c3d9da19 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment.js @@ -0,0 +1,6 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Shift Assignment", { + refresh: function (frm) {}, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment.json b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment.json new file mode 100644 index 000000000..9bb720a94 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment.json @@ -0,0 +1,200 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "HR-SHA-.YY.-.MM.-.#####", + "creation": "2018-04-13 16:25:04.562730", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee_details_section", + "employee", + "employee_name", + "column_break_3", + "company", + "department", + "shift_details_section", + "shift_type", + "shift_location", + "status", + "overtime_type", + "column_break_brkq", + "start_date", + "end_date", + "shift_request", + "shift_schedule_assignment", + "amended_from" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "shift_type", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Shift Type", + "options": "Shift Type", + "reqd": 1, + "search_index": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "shift_request", + "fieldtype": "Link", + "label": "Shift Request", + "options": "Shift Request", + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Shift Assignment", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "start_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Start Date", + "reqd": 1 + }, + { + "allow_on_submit": 1, + "fieldname": "end_date", + "fieldtype": "Date", + "label": "End Date" + }, + { + "allow_on_submit": 1, + "default": "Active", + "fieldname": "status", + "fieldtype": "Select", + "label": "Status", + "options": "Active\nInactive" + }, + { + "fieldname": "employee_details_section", + "fieldtype": "Section Break", + "label": "Employee Details" + }, + { + "fieldname": "shift_details_section", + "fieldtype": "Section Break", + "label": "Shift Details" + }, + { + "fieldname": "shift_location", + "fieldtype": "Link", + "label": "Shift Location", + "options": "Shift Location" + }, + { + "fieldname": "column_break_brkq", + "fieldtype": "Column Break" + }, + { + "fieldname": "shift_schedule_assignment", + "fieldtype": "Link", + "label": "Shift Schedule Assignment", + "options": "Shift Schedule Assignment", + "read_only": 1 + }, + { + "fetch_from": "shift_type.overtime_type", + "fetch_if_empty": 1, + "fieldname": "overtime_type", + "fieldtype": "Link", + "label": "Overtime Type", + "options": "Overtime Type" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2025-12-01 12:23:07.921773", + "modified_by": "Administrator", + "module": "HR", + "name": "Shift Assignment", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment.py new file mode 100644 index 000000000..94436e2d5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment.py @@ -0,0 +1,692 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from datetime import datetime, timedelta + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.query_builder import Criterion +from frappe.utils import add_days, cint, cstr, get_link_to_form, get_time, getdate, now_datetime + +from hrms.hr.utils import validate_active_employee +from hrms.utils import generate_date_range + + +class OverlappingShiftError(frappe.ValidationError): + pass + + +class MultipleShiftError(frappe.ValidationError): + pass + + +class ShiftAssignment(Document): + def validate(self): + validate_active_employee(self.employee) + if self.end_date: + self.validate_from_to_dates("start_date", "end_date") + self.validate_overlapping_shifts() + + def on_update_after_submit(self): + if self.end_date: + self.validate_from_to_dates("start_date", "end_date") + self.validate_overlapping_shifts() + + def on_cancel(self): + self.validate_employee_checkin() + self.validate_attendance() + + def validate_employee_checkin(self): + checkins = frappe.get_all( + "Employee Checkin", + filters={ + "employee": self.employee, + "shift": self.shift_type, + "time": ["between", [self.start_date, self.end_date]], + }, + pluck="name", + ) + if checkins: + frappe.throw( + _("Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}").format( + self.name, get_link_to_form("Employee Checkin", checkins[0]) + ) + ) + + def validate_attendance(self): + attendances = frappe.get_all( + "Attendance", + filters={ + "employee": self.employee, + "shift": self.shift_type, + "attendance_date": ["between", [self.start_date, self.end_date]], + }, + pluck="name", + ) + if attendances: + frappe.throw( + _("Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}").format( + self.name, get_link_to_form("Attendance", attendances[0]) + ) + ) + + def validate_overlapping_shifts(self): + if self.status == "Inactive": + return + + overlapping_dates = self.get_overlapping_dates() + if len(overlapping_dates): + self.validate_same_date_multiple_shifts(overlapping_dates) + # if dates are overlapping, check if timings are overlapping, else allow + for d in overlapping_dates: + if has_overlapping_timings(self.shift_type, d.shift_type): + self.throw_overlap_error(d) + + def validate_same_date_multiple_shifts(self, overlapping_dates): + if cint(frappe.db.get_single_value("HR Settings", "allow_multiple_shift_assignments")): + if not self.docstatus: + frappe.msgprint( + _( + "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." + ).format( + frappe.bold(self.employee), + get_link_to_form("Shift Assignment", overlapping_dates[0].name), + ) + ) + else: + msg = _("{0} already has an active Shift Assignment {1} for some/all of these dates.").format( + frappe.bold(self.employee), + get_link_to_form("Shift Assignment", overlapping_dates[0].name), + ) + msg += "

    " + msg += _("To allow this, enable {0} under {1}.").format( + frappe.bold(_("Allow Multiple Shift Assignments for Same Date")), + get_link_to_form("HR Settings", "HR Settings"), + ) + + frappe.throw( + title=_("Multiple Shift Assignments"), + msg=msg, + exc=MultipleShiftError, + ) + + def get_overlapping_dates(self): + if not self.name: + self.name = "New Shift Assignment" + + shift = frappe.qb.DocType("Shift Assignment") + query = ( + frappe.qb.from_(shift) + .select(shift.name, shift.shift_type, shift.docstatus, shift.status) + .where( + (shift.employee == self.employee) + & (shift.docstatus == 1) + & (shift.name != self.name) + & (shift.status == "Active") + & ((shift.end_date >= self.start_date) | (shift.end_date.isnull())) + ) + ) + + if self.end_date: + query = query.where(shift.start_date <= self.end_date) + + return query.run(as_dict=True) + + def throw_overlap_error(self, shift_details): + shift_details = frappe._dict(shift_details) + if shift_details.docstatus == 1 and shift_details.status == "Active": + msg = _( + "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." + ).format( + frappe.bold(self.employee), + frappe.bold(shift_details.shift_type), + get_link_to_form("Shift Assignment", shift_details.name), + ) + frappe.throw(msg, title=_("Overlapping Shifts"), exc=OverlappingShiftError) + + +def has_overlapping_timings(shift_1: str, shift_2: str) -> bool: + """ + Accepts two shift types and checks whether their timings are overlapping + """ + + s1 = frappe.db.get_value("Shift Type", shift_1, ["start_time", "end_time"], as_dict=True) + s2 = frappe.db.get_value("Shift Type", shift_2, ["start_time", "end_time"], as_dict=True) + + for d in [s1, s2]: + if d.end_time <= d.start_time: + d.end_time += timedelta(days=1) + + return s1.end_time > s2.start_time and s1.start_time < s2.end_time + + +@frappe.whitelist() +def get_events(start, end, filters=None): + employee = frappe.db.get_value( + "Employee", {"user_id": frappe.session.user}, ["name", "company"], as_dict=True + ) + if employee: + employee = employee.name + else: + employee = "" + + assignments = get_shift_assignments(start, end, filters) + return get_shift_events(assignments) + + +def get_shift_assignments(start: str, end: str, filters: str | list | None = None) -> list[dict]: + import json + + if isinstance(filters, str): + filters = json.loads(filters) + if not filters: + filters = [] + + filters.extend([["start_date", "<=", end], ["docstatus", "=", 1]]) + + or_filters = [["end_date", ">=", start], ["end_date", "is", "not set"]] + + return frappe.get_list( + "Shift Assignment", + filters=filters, + or_filters=or_filters, + fields=[ + "name", + "start_date", + "end_date", + "employee_name", + "employee", + "docstatus", + "shift_type", + ], + ) + + +def get_shift_events(assignments: list[dict]) -> list[dict]: + events = [] + shift_timing_map = get_shift_type_timing([d.shift_type for d in assignments]) + + for d in assignments: + daily_event_start = d.start_date + daily_event_end = d.end_date or getdate() + shift_start = shift_timing_map[d.shift_type]["start_time"] + shift_end = shift_timing_map[d.shift_type]["end_time"] + + delta = timedelta(days=1) + while daily_event_start <= daily_event_end: + start_timing = frappe.utils.get_datetime(daily_event_start) + shift_start + + if shift_start > shift_end: + # shift spans across 2 days + end_timing = frappe.utils.get_datetime(daily_event_start) + shift_end + delta + else: + end_timing = frappe.utils.get_datetime(daily_event_start) + shift_end + + event = { + "name": d.name, + "doctype": "Shift Assignment", + "start_date": start_timing, + "end_date": end_timing, + "title": cstr(d.employee_name) + ": " + cstr(d.shift_type), + "docstatus": d.docstatus, + "allDay": 0, + "convertToUserTz": 0, + } + if event not in events: + events.append(event) + + daily_event_start += delta + + return events + + +def get_shift_type_timing(shift_types): + shift_timing_map = {} + data = frappe.get_all( + "Shift Type", + filters=[["name", "in", shift_types]], + fields=["name", "start_time", "end_time"], + ) + + for d in data: + shift_timing_map[d.name] = d + + return shift_timing_map + + +def get_shift_for_time(shifts: list[dict], for_timestamp: datetime) -> dict: + """Returns shift with details for given timestamp""" + valid_shifts = [] + + for assignment in shifts: + shift_details = get_shift_details(assignment.shift_type, for_timestamp=for_timestamp) + shift_details.overtime_type = assignment.overtime_type or None + + if _is_shift_outside_assignment_period(shift_details, assignment): + continue + + if _is_timestamp_within_shift(shift_details, for_timestamp): + valid_shifts.append(shift_details) + + valid_shifts.sort(key=lambda x: x["actual_start"]) + _adjust_overlapping_shifts(valid_shifts) + + return get_exact_shift(valid_shifts, for_timestamp) + + +def _is_shift_outside_assignment_period(shift_details: dict, assignment: dict) -> bool: + """ + Compares shift's actual start and end dates with assignment dates + and returns True is shift is outside assignment period + """ + # start time > end time, means its a midnight shift + is_midnight_shift = shift_details.actual_start.time() > shift_details.actual_end.time() + + if _is_shift_start_before_assignment(shift_details, assignment, is_midnight_shift): + return True + + if assignment.end_date and _is_shift_end_after_assignment(shift_details, assignment, is_midnight_shift): + return True + + return False + + +def _is_shift_start_before_assignment(shift_details: dict, assignment: dict, is_midnight_shift: bool) -> bool: + if shift_details.actual_start.date() < assignment.start_date: + # log's start date can only precede assignment's start date if its a midnight shift + if not is_midnight_shift: + return True + + # if actual start and start dates are same but it precedes assignment start date + # then its actually a shift that starts on the previous day, making it invalid + if shift_details.actual_start.date() == shift_details.start_datetime.date(): + return True + + # actual start is not the prev assignment day + # then its a shift that starts even before the prev day, making it invalid + prev_assignment_day = add_days(assignment.start_date, -1) + if shift_details.actual_start.date() != prev_assignment_day: + return True + + return False + + +def _is_shift_end_after_assignment(shift_details: dict, assignment: dict, is_midnight_shift: bool) -> bool: + if shift_details.actual_start.date() > assignment.end_date: + return True + + # log's end date can only exceed assignment's end date if its a midnight shift + if shift_details.actual_end.date() > assignment.end_date: + if not is_midnight_shift: + return True + + # if shift starts & ends on the same day along with shift margin + # then actual end cannot exceed assignment's end date, making it invalid + if ( + shift_details.actual_end.date() == shift_details.end_datetime.date() + and shift_details.start_datetime.date() == shift_details.end_datetime.date() + ): + return True + + # actual end is not the immediate next assignment day + # then its a shift that ends even after the next day, making it invalid + next_assignment_day = add_days(assignment.end_date, 1) + if shift_details.actual_end.date() != next_assignment_day: + return True + + return False + + +def _is_timestamp_within_shift(shift_details: dict, for_timestamp: datetime) -> bool: + """Checks whether the timestamp is within shift's actual start and end datetime""" + return shift_details.actual_start <= for_timestamp <= shift_details.actual_end + + +def _adjust_overlapping_shifts(shifts: dict): + """ + Compares 2 consecutive shifts and adjusts start and end times + if they are overlapping within grace period + """ + for i in range(len(shifts) - 1): + curr_shift = shifts[i] + next_shift = shifts[i + 1] + + if curr_shift and next_shift: + next_shift.actual_start = max(curr_shift.end_datetime, next_shift.actual_start) + curr_shift.actual_end = min(next_shift.actual_start, curr_shift.actual_end) + + shifts[i] = curr_shift + shifts[i + 1] = next_shift + + +def get_shifts_for_date(employee: str, for_timestamp: datetime) -> list[dict[str, str]]: + """Returns list of shifts with details for given date""" + for_date = for_timestamp.date() + prev_day = add_days(for_date, -1) + next_day = add_days(for_date, 1) + + assignment = frappe.qb.DocType("Shift Assignment") + return ( + frappe.qb.from_(assignment) + .select( + assignment.name, + assignment.shift_type, + assignment.start_date, + assignment.end_date, + assignment.overtime_type, + ) + .where( + (assignment.employee == employee) + & (assignment.docstatus == 1) + & (assignment.status == "Active") + # for shifts that exceed a day in duration or margins + # eg: shift = 00:30:00 - 10:00:00, including margins (1 hr) = 23:30:00 - 11:00:00 + # if for_timestamp = 23:30:00 (falls in before shift margin), also fetch next days shift to find the correct shift + & (assignment.start_date <= next_day) + & ( + Criterion.any( + [ + assignment.end_date.isnull(), + ( + assignment.end_date.isnotnull() + # for shifts that exceed a day in duration or margins + # eg: shift = 15:00 - 23:30, including margins (1 hr) = 14:00 - 00:30 + # if for_timestamp = 00:30:00 (falls in after shift margin), also fetch prev days shift to find the correct shift + & (prev_day <= assignment.end_date) + ), + ] + ) + ) + ) + ).run(as_dict=True) + + +def get_shift_for_timestamp(employee: str, for_timestamp: datetime) -> dict: + shifts = get_shifts_for_date(employee, for_timestamp) + if shifts: + return get_shift_for_time(shifts, for_timestamp) + return {} + + +def get_employee_shift( + employee: str, + for_timestamp: datetime | None = None, + consider_default_shift: bool = False, + next_shift_direction: str | None = None, +) -> dict: + """Returns a Shift Type for the given employee on the given date + + :param employee: Employee for which shift is required. + :param for_timestamp: DateTime on which shift is required + :param consider_default_shift: If set to true, default shift is taken when no shift assignment is found. + :param next_shift_direction: One of: None, 'forward', 'reverse'. Direction to look for next shift if shift not found on given date. + """ + if for_timestamp is None: + for_timestamp = now_datetime() + + shift_details = get_shift_for_timestamp(employee, for_timestamp) + + # if shift assignment is not found, consider default shift + default_shift = frappe.db.get_value("Employee", employee, "default_shift", cache=True) + if not shift_details and consider_default_shift: + shift_details = get_shift_details(default_shift, for_timestamp) + + # if no shift is found, find next or prev shift assignment based on direction + if not shift_details and next_shift_direction: + shift_details = get_prev_or_next_shift( + employee, for_timestamp, consider_default_shift, default_shift, next_shift_direction + ) + + return shift_details or {} + + +def get_prev_or_next_shift( + employee: str, + for_timestamp: datetime, + consider_default_shift: bool, + default_shift: str, + next_shift_direction: str, +) -> dict: + """Returns a dict of shift details for the next or prev shift based on the next_shift_direction""" + MAX_DAYS = 366 + shift_details = {} + + if consider_default_shift and default_shift: + direction = -1 if next_shift_direction == "reverse" else 1 + for i in range(MAX_DAYS): + date = for_timestamp + timedelta(days=direction * (i + 1)) + shift_details = get_employee_shift(employee, date, consider_default_shift, None) + if shift_details: + return shift_details + else: + direction = "<" if next_shift_direction == "reverse" else ">" + sort_order = "desc" if next_shift_direction == "reverse" else "asc" + shift_dates = frappe.get_all( + "Shift Assignment", + ["start_date", "end_date"], + { + "employee": employee, + "start_date": (direction, for_timestamp.date()), + "docstatus": 1, + "status": "Active", + }, + as_list=True, + limit=MAX_DAYS, + order_by="start_date " + sort_order, + ) + + for date_range in shift_dates: + # midnight shifts will span more than a day + start_date, end_date = getdate(date_range[0]), getdate(add_days(date_range[1], 1)) + + if reverse := (next_shift_direction == "reverse"): + end_date = min(end_date, for_timestamp.date()) + elif next_shift_direction == "forward": + start_date = max(start_date, for_timestamp.date()) + + for dt in generate_date_range(start_date, end_date, reverse=reverse): + shift_details = get_employee_shift( + employee, datetime.combine(dt, for_timestamp.time()), consider_default_shift, None + ) + if shift_details: + return shift_details + + return shift_details or {} + + +def get_employee_shift_timings( + employee: str, for_timestamp: datetime | None = None, consider_default_shift: bool = False +) -> list[dict]: + """Returns previous shift, current/upcoming shift, next_shift for the given timestamp and employee""" + if for_timestamp is None: + for_timestamp = now_datetime() + + # write and verify a test case for midnight shift. + prev_shift = curr_shift = next_shift = None + curr_shift = get_employee_shift(employee, for_timestamp, consider_default_shift, "forward") + if curr_shift: + next_shift = get_employee_shift( + employee, + curr_shift.start_datetime + timedelta(days=1), + consider_default_shift, + "forward", + ) + prev_shift = get_employee_shift( + employee, + (curr_shift.end_datetime if curr_shift else for_timestamp) + timedelta(days=-1), + consider_default_shift, + "reverse", + ) + + if curr_shift: + # adjust actual start and end times if they are overlapping with grace period (before start and after end) + if prev_shift: + curr_shift.actual_start = ( + prev_shift.end_datetime + if curr_shift.actual_start < prev_shift.end_datetime + else curr_shift.actual_start + ) + prev_shift.actual_end = ( + curr_shift.actual_start + if prev_shift.actual_end > curr_shift.actual_start + else prev_shift.actual_end + ) + if next_shift: + next_shift.actual_start = ( + curr_shift.end_datetime + if next_shift.actual_start < curr_shift.end_datetime + else next_shift.actual_start + ) + curr_shift.actual_end = ( + next_shift.actual_start + if curr_shift.actual_end > next_shift.actual_start + else curr_shift.actual_end + ) + + return prev_shift, curr_shift, next_shift + + +def get_actual_start_end_datetime_of_shift( + employee: str, for_timestamp: datetime, consider_default_shift: bool = False +) -> dict: + """Returns a Dict containing shift details with actual_start and actual_end datetime values + Here 'actual' means taking into account the "begin_check_in_before_shift_start_time" and "allow_check_out_after_shift_end_time". + Empty Dict is returned if the timestamp is outside any actual shift timings. + + :param employee (str): Employee name + :param for_timestamp (datetime, optional): Datetime value of checkin, if not provided considers current datetime + :param consider_default_shift (bool, optional): Flag (defaults to False) to specify whether to consider + default shift in employee master if no shift assignment is found + """ + shift_timings_as_per_timestamp = get_employee_shift_timings( + employee, for_timestamp, consider_default_shift + ) + return get_exact_shift(shift_timings_as_per_timestamp, for_timestamp) + + +def get_exact_shift(shifts: list, for_timestamp: datetime) -> dict: + """Returns the shift details (dict) for the exact shift in which the 'for_timestamp' value falls among multiple shifts""" + + return next( + ( + shift + for shift in shifts + if shift and for_timestamp >= shift.actual_start and for_timestamp <= shift.actual_end + ), + {}, + ) + + +def get_shift_details(shift_type_name: str, for_timestamp: datetime | None = None) -> dict: + """Returns a Dict containing shift details with the following data: + 'shift_type' - Object of DocType Shift Type, + 'start_datetime' - datetime of shift start on given timestamp, + 'end_datetime' - datetime of shift end on given timestamp, + 'actual_start' - datetime of shift start after adding 'begin_check_in_before_shift_start_time', + 'actual_end' - datetime of shift end after adding 'allow_check_out_after_shift_end_time' (None is returned if this is zero) + + :param shift_type_name (str): shift type name for which shift_details are required. + :param for_timestamp (datetime, optional): Datetime value of checkin, if not provided considers current datetime + """ + if not shift_type_name: + return frappe._dict() + + if for_timestamp is None: + for_timestamp = now_datetime() + + shift_type = get_shift_type(shift_type_name) + start_datetime, end_datetime = get_shift_timings(shift_type, for_timestamp) + + actual_start = start_datetime - timedelta(minutes=shift_type.begin_check_in_before_shift_start_time) + actual_end = end_datetime + timedelta(minutes=shift_type.allow_check_out_after_shift_end_time) + allow_overtime = shift_type.allow_overtime + overtime_type = shift_type.overtime_type + + return frappe._dict( + { + "shift_type": shift_type, + "start_datetime": start_datetime, + "end_datetime": end_datetime, + "actual_start": actual_start, + "actual_end": actual_end, + "allow_overtime": allow_overtime, + "overtime_type": overtime_type, + } + ) + + +def get_shift_type(shift_type_name: str) -> dict: + return frappe.get_cached_value( + "Shift Type", + shift_type_name, + [ + "name", + "start_time", + "end_time", + "begin_check_in_before_shift_start_time", + "allow_check_out_after_shift_end_time", + "allow_overtime", + "overtime_type", + ], + as_dict=1, + ) + + +def get_shift_timings(shift_type: dict, for_timestamp: datetime) -> tuple: + start_time = shift_type.start_time + end_time = shift_type.end_time + + shift_actual_start = get_time( + datetime.combine(for_timestamp, datetime.min.time()) + + start_time + - timedelta(minutes=shift_type.begin_check_in_before_shift_start_time) + ) + shift_actual_end = get_time( + datetime.combine(for_timestamp, datetime.min.time()) + + end_time + + timedelta(minutes=shift_type.allow_check_out_after_shift_end_time) + ) + for_time = get_time(for_timestamp.time()) + start_datetime = end_datetime = None + + if start_time > end_time: + # shift spans across 2 different days + if for_time >= shift_actual_start: + # if for_timestamp is greater than start time, it's within the first day + start_datetime = datetime.combine(for_timestamp, datetime.min.time()) + start_time + for_timestamp += timedelta(days=1) + end_datetime = datetime.combine(for_timestamp, datetime.min.time()) + end_time + + elif for_time < shift_actual_start: + # if for_timestamp is less than start time, it's within the second day + end_datetime = datetime.combine(for_timestamp, datetime.min.time()) + end_time + for_timestamp += timedelta(days=-1) + start_datetime = datetime.combine(for_timestamp, datetime.min.time()) + start_time + elif ( + shift_actual_start > shift_actual_end + and for_time < shift_actual_start + and get_time(end_time) > shift_actual_end + ): + # for_timestamp falls within the margin period in the second day (after midnight) + # so shift started and ended on the previous day + for_timestamp += timedelta(days=-1) + end_datetime = datetime.combine(for_timestamp, datetime.min.time()) + end_time + start_datetime = datetime.combine(for_timestamp, datetime.min.time()) + start_time + elif ( + shift_actual_start > shift_actual_end + and for_time > shift_actual_end + and get_time(start_time) < shift_actual_start + ): + # for_timestamp falls within the margin period in the first day (before midnight) + # so shift started and ended on the next day + for_timestamp += timedelta(days=1) + start_datetime = datetime.combine(for_timestamp, datetime.min.time()) + start_time + end_datetime = datetime.combine(for_timestamp, datetime.min.time()) + end_time + else: + # start and end timings fall on the same day + start_datetime = datetime.combine(for_timestamp, datetime.min.time()) + start_time + end_datetime = datetime.combine(for_timestamp, datetime.min.time()) + end_time + + return start_datetime, end_datetime diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment_calendar.js b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment_calendar.js new file mode 100644 index 000000000..d11453323 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment_calendar.js @@ -0,0 +1,14 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.views.calendar["Shift Assignment"] = { + field_map: { + start: "start_date", + end: "end_date", + id: "name", + docstatus: 1, + allDay: "allDay", + convertToUserTz: "convertToUserTz", + }, + get_events_method: "hrms.hr.doctype.shift_assignment.shift_assignment.get_events", +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment_list.js new file mode 100644 index 000000000..cb9126a71 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/shift_assignment_list.js @@ -0,0 +1,3 @@ +frappe.listview_settings["Shift Assignment"] = { + onload: (list_view) => hrms.add_shift_tools_button_to_list(list_view), +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/test_shift_assignment.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/test_shift_assignment.py new file mode 100644 index 000000000..6c143bcba --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment/test_shift_assignment.py @@ -0,0 +1,307 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from datetime import timedelta + +import frappe +from frappe.utils import add_days, get_datetime, getdate, now_datetime, nowdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin +from hrms.hr.doctype.overtime_type.test_overtime_type import create_overtime_type +from hrms.hr.doctype.shift_assignment.shift_assignment import ( + MultipleShiftError, + OverlappingShiftError, + get_actual_start_end_datetime_of_shift, + get_events, +) +from hrms.hr.doctype.shift_type.test_shift_type import make_shift_assignment, setup_shift_type +from hrms.payroll.doctype.salary_component.test_salary_component import create_salary_component +from hrms.tests.utils import HRMSTestSuite + +test_dependencies = ["Shift Type"] + + +class TestShiftAssignment(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + + def setUp(self): + frappe.db.delete("Shift Assignment") + frappe.db.delete("Shift Type") + + def test_overlapping_for_ongoing_shift(self): + shift = "Day Shift" + employee = "_T-Employee-00001" + date = nowdate() + + # shift should be Ongoing if Only start_date is present and status = Active + setup_shift_type(shift_type=shift) + make_shift_assignment(shift, employee, date) + + # shift ends before ongoing shift starts + non_overlapping_shift = make_shift_assignment(shift, employee, add_days(date, -1), add_days(date, -1)) + self.assertEqual(non_overlapping_shift.docstatus, 1) + + overlapping_shift = make_shift_assignment(shift, employee, add_days(date, 2), do_not_submit=True) + self.assertRaises(OverlappingShiftError, overlapping_shift.save) + + def test_multiple_shift_assignments_for_same_date(self): + employee = "_T-Employee-00001" + date = nowdate() + + setup_shift_type(shift_type="Day Shift") + make_shift_assignment("Day Shift", employee, date) + + setup_shift_type(shift_type="Night Shift", start_time="19:00:00", end_time="23:00:00") + assignment = make_shift_assignment("Night Shift", employee, date, do_not_submit=True) + + frappe.db.set_single_value("HR Settings", "allow_multiple_shift_assignments", 0) + self.assertRaises(MultipleShiftError, assignment.save) + frappe.db.set_single_value("HR Settings", "allow_multiple_shift_assignments", 1) + assignment.save() # would throw error if multiple shift assignments not allowed + + def test_overlapping_for_fixed_period_shift(self): + shift = "Day Shift" + employee = "_T-Employee-00001" + date = nowdate() + + setup_shift_type(shift_type=shift) + make_shift_assignment(shift, employee, date, add_days(date, 30)) + + assignment = make_shift_assignment( + shift, employee, add_days(date, 10), add_days(date, 35), do_not_submit=True + ) + self.assertRaises(OverlappingShiftError, assignment.save) + + def test_overlapping_for_a_fixed_period_shift_and_ongoing_shift(self): + employee = make_employee("test_shift_assignment@example.com", company="_Test Company") + + # shift setup for 8-12 + shift_type = setup_shift_type(shift_type="Shift 1", start_time="08:00:00", end_time="12:00:00") + date = getdate() + # shift with end date + make_shift_assignment(shift_type.name, employee, date, add_days(date, 30)) + + # shift setup for 11-15 + shift_type = setup_shift_type(shift_type="Shift 2", start_time="11:00:00", end_time="15:00:00") + date = getdate() + + # shift assignment without end date + assignment = make_shift_assignment("Shift 2", employee, date, do_not_submit=True) + self.assertRaises(OverlappingShiftError, assignment.save) + + def test_overlap_for_shifts_on_same_day_with_overlapping_timeslots(self): + employee = make_employee("test_shift_assignment@example.com", company="_Test Company") + date = getdate() + + # shift setup for 8-12 + setup_shift_type(shift_type="Shift 1", start_time="08:00:00", end_time="12:00:00") + make_shift_assignment("Shift 1", employee, date) + + # shift setup for 11-15 + setup_shift_type(shift_type="Shift 2", start_time="11:00:00", end_time="15:00:00") + assignment = make_shift_assignment("Shift 2", employee, date, do_not_submit=True) + self.assertRaises(OverlappingShiftError, assignment.save) + + # shift setup for 12-16 + setup_shift_type(shift_type="Shift 3", start_time="12:00:00", end_time="16:00:00") + make_shift_assignment("Shift 3", employee, date) + + # shift setup for 15-19 + setup_shift_type(shift_type="Shift 4", start_time="15:00:00", end_time="19:00:00") + assignment = make_shift_assignment("Shift 4", employee, date, do_not_submit=True) + self.assertRaises(OverlappingShiftError, assignment.save) + + def test_overlap_for_midnight_shifts(self): + employee = make_employee("test_shift_assignment@example.com", company="_Test Company") + date = getdate() + + overlapping_shifts = [ + # s1(start, end), s2(start, end) + [("22:00:00", "02:00:00"), ("21:00:00", "23:00:00")], + [("22:00:00", "02:00:00"), ("20:00:00", "01:00:00")], + [("01:00:00", "02:00:00"), ("01:30:00", "03:00:00")], + [("21:00:00", "23:00:00"), ("22:00:00", "03:00:00")], + ] + + for i, pair in enumerate(overlapping_shifts): + s1 = setup_shift_type(shift_type=f"Shift 1-{i}", start_time=pair[0][0], end_time=pair[0][1]) + s2 = setup_shift_type(shift_type=f"Shift 2-{i}", start_time=pair[1][0], end_time=pair[1][1]) + + assignment1 = make_shift_assignment(s1.name, employee, date) + assignment = make_shift_assignment(s2.name, employee, date, do_not_submit=True) + + self.assertRaises(OverlappingShiftError, assignment.insert) + + assignment1.cancel() + + shift_type = setup_shift_type(shift_type="Shift 1", start_time="20:00:00", end_time="01:00:00") + make_shift_assignment(shift_type.name, employee, date) + + # no overlap + shift_type = setup_shift_type(shift_type="Shift 2", start_time="15:00:00", end_time="20:00:00") + assignment = make_shift_assignment(shift_type.name, employee, date) + + # no overlap + shift_type = setup_shift_type(shift_type="Shift 3", start_time="01:00:00", end_time="05:00:00") + assignment = make_shift_assignment(shift_type.name, employee, date) + + # overlap + shift_type = setup_shift_type(shift_type="Shift 4", start_time="21:00:00", end_time="02:00:00") + assignment = make_shift_assignment(shift_type.name, employee, date, do_not_submit=True) + self.assertRaises(OverlappingShiftError, assignment.save) + + def test_calendar(self): + employee1 = make_employee("test_shift_assignment1@example.com", company="_Test Company") + employee2 = make_employee("test_shift_assignment2@example.com", company="_Test Company") + employee3 = make_employee("test_shift_assignment3@example.com", company="_Test Company") + + shift_type = setup_shift_type(shift_type="Shift 1", start_time="08:00:00", end_time="12:00:00") + date = getdate() + shift1 = make_shift_assignment(shift_type.name, employee1, date) # 1 day + make_shift_assignment(shift_type.name, employee2, date) # excluded due to employee filter + make_shift_assignment(shift_type.name, employee3, add_days(date, -3), add_days(date, -2)) # excluded + shift2 = make_shift_assignment(shift_type.name, employee3, add_days(date, -1), date) # 2 days + shift3 = make_shift_assignment( + shift_type.name, employee3, add_days(date, 1), add_days(date, 2) + ) # 2 days + shift4 = make_shift_assignment( + shift_type.name, employee3, add_days(date, 30), add_days(date, 30) + ) # 1 day + make_shift_assignment(shift_type.name, employee3, add_days(date, 31)) # excluded + + events = get_events( + start=date, + end=add_days(date, 30), + filters=[["Shift Assignment", "employee", "!=", employee2]], + ) + self.assertEqual(len(events), 6) + for shift in events: + self.assertIn(shift["name"], [shift1.name, shift2.name, shift3.name, shift4.name]) + + def test_calendar_for_night_shift(self): + employee1 = make_employee("test_shift_assignment1@example.com", company="_Test Company") + + shift_type = setup_shift_type(shift_type="Shift 1", start_time="08:00:00", end_time="02:00:00") + date = getdate() + make_shift_assignment(shift_type.name, employee1, date, date) + + events = get_events(start=date, end=date) + self.assertEqual(events[0]["start_date"], get_datetime(f"{date} 08:00:00")) + self.assertEqual(events[0]["end_date"], get_datetime(f"{add_days(date, 1)} 02:00:00")) + + def test_consecutive_day_and_night_shifts(self): + # defaults + employee = make_employee("test_default_shift_assignment@example.com", company="_Test Company") + today = getdate() + yesterday = add_days(today, -1) + + # default shift + shift_type = setup_shift_type(shift_type="Test Security", start_time="07:00:00", end_time="19:00:00") + frappe.db.set_value("Employee", employee, "default_shift", shift_type.name) + + # night shift + shift_type = setup_shift_type( + shift_type="Test Security - Night", start_time="19:00:00", end_time="07:00:00" + ) + make_shift_assignment(shift_type.name, employee, yesterday, yesterday) + + # prev shift log + prev_shift = get_actual_start_end_datetime_of_shift(employee, get_datetime(f"{today} 07:00:00"), True) + self.assertEqual(prev_shift.shift_type.name, "Test Security - Night") + self.assertEqual(prev_shift.actual_start.date(), yesterday) + self.assertEqual(prev_shift.actual_end.date(), today) + + # current shift IN + checkin = get_actual_start_end_datetime_of_shift(employee, get_datetime(f"{today} 07:01:00"), True) + # current shift OUT + checkout = get_actual_start_end_datetime_of_shift(employee, get_datetime(f"{today} 19:00:00"), True) + self.assertEqual(checkin.shift_type, checkout.shift_type) + self.assertEqual(checkin.actual_start.date(), today) + self.assertEqual(checkout.actual_end.date(), today) + + def test_shift_details_on_consecutive_days_with_overlapping_timings(self): + # defaults + employee = make_employee("test_shift_assignment@example.com", company="_Test Company") + today = getdate() + yesterday = add_days(today, -1) + + # shift 1 + shift_type = setup_shift_type(shift_type="Morning", start_time="07:00:00", end_time="12:00:00") + make_shift_assignment(shift_type.name, employee, add_days(yesterday, -1), yesterday) + + # shift 2 + shift_type = setup_shift_type(shift_type="Afternoon", start_time="09:30:00", end_time="14:00:00") + make_shift_assignment(shift_type.name, employee, today, add_days(today, 1)) + + # current_shift shift log - checkin in the grace period of current shift, non-overlapping with prev shift + current_shift = get_actual_start_end_datetime_of_shift( + employee, get_datetime(f"{today} 14:01:00"), True + ) + self.assertEqual(current_shift.shift_type.name, "Afternoon") + self.assertEqual(current_shift.actual_start, get_datetime(f"{today} 08:30:00")) + self.assertEqual(current_shift.actual_end, get_datetime(f"{today} 15:00:00")) + + # previous shift + checkin = get_actual_start_end_datetime_of_shift( + employee, get_datetime(f"{yesterday} 07:01:00"), True + ) + checkout = get_actual_start_end_datetime_of_shift( + employee, get_datetime(f"{yesterday} 13:00:00"), True + ) + self.assertTrue(checkin.shift_type.name == checkout.shift_type.name == "Morning") + self.assertEqual(checkin.actual_start, get_datetime(f"{yesterday} 06:00:00")) + self.assertEqual(checkout.actual_end, get_datetime(f"{yesterday} 13:00:00")) + + def test_auto_attendance_calculates_ot_for_default_shift(self): + """Ensure overtime is calculated when employee works beyond default shift hours.""" + salary_component = create_salary_component("Overtime") + + overtime_type = create_overtime_type( + name="_Test Overtime Type", + maximum_overtime_hours_allowed=5, + overtime_calculation_method="Fixed Hourly Rate", + overtime_salary_component=salary_component.name, + ) + + shift_type = setup_shift_type( + shift_type="_Test OT Shift", + start_time="08:00:00", + end_time="17:00:00", + allow_overtime=1, + overtime_type=overtime_type.name, + enable_auto_attendance=1, + allow_check_out_after_shift_end_time=300, + last_sync_of_checkin=now_datetime() + timedelta(days=2), + ) + + employee = make_employee( + "test_ot_default_shift@example.com", + company="_Test Company", + default_shift=shift_type.name, + ) + + make_checkin(employee, get_datetime(f"{getdate()} 08:00:00")) + make_checkin(employee, get_datetime(f"{getdate()} 19:00:00"), log_type="OUT") + + shift_type.process_auto_attendance() + + attendance = frappe.db.get_value( + "Attendance", + { + "employee": employee, + "attendance_date": getdate(), + "docstatus": ["!=", 2], + }, + ["overtime_type", "working_hours", "actual_overtime_duration"], + as_dict=True, + ) + + self.assertIsNotNone(attendance) + self.assertEqual(attendance.overtime_type, shift_type.overtime_type) + self.assertEqual(attendance.working_hours, 11.0) + self.assertEqual(attendance.actual_overtime_duration, 2.0) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js new file mode 100644 index 000000000..000294af8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js @@ -0,0 +1,308 @@ +// Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Shift Assignment Tool", { + setup(frm) { + hrms.setup_employee_filter_group(frm); + }, + + refresh(frm) { + frm.page.clear_indicator(); + frm.disable_save(); + frm.trigger("set_primary_action"); + frm.trigger("get_employees"); + + hrms.handle_realtime_bulk_action_notification( + frm, + "completed_bulk_shift_assignment", + "Shift Assignment", + ); + hrms.handle_realtime_bulk_action_notification( + frm, + "completed_bulk_shift_schedule_assignment", + "Shift Schedule Assignment", + ); + hrms.handle_realtime_bulk_action_notification( + frm, + "completed_bulk_shift_request_processing", + "Shift Request", + ); + }, + + action(frm) { + frm.trigger("set_primary_action"); + frm.trigger("get_employees"); + }, + + company(frm) { + frm.trigger("get_employees"); + }, + + shift_type(frm) { + frm.trigger("get_employees"); + }, + + status(frm) { + frm.trigger("get_employees"); + }, + + start_date(frm) { + if (frm.doc.start_date > frm.doc.end_date) frm.set_value("end_date", null); + frm.trigger("get_employees"); + }, + + end_date(frm) { + if (frm.doc.end_date < frm.doc.start_date) frm.set_value("start_date", null); + frm.trigger("get_employees"); + }, + + shift_type_filter(frm) { + frm.trigger("get_employees"); + }, + + shift_schedule(frm) { + frm.trigger("get_employees"); + }, + + approver(frm) { + frm.trigger("get_employees"); + }, + + from_date(frm) { + if (frm.doc.from_date > frm.doc.to_date) frm.set_value("to_date", null); + frm.trigger("get_employees"); + }, + + to_date(frm) { + if (frm.doc.to_date < frm.doc.from_date) frm.set_value("from_date", null); + frm.trigger("get_employees"); + }, + + branch(frm) { + frm.trigger("get_employees"); + }, + + department(frm) { + frm.trigger("get_employees"); + }, + + designation(frm) { + frm.trigger("get_employees"); + }, + + grade(frm) { + frm.trigger("get_employees"); + }, + + employment_type(frm) { + frm.trigger("get_employees"); + }, + + set_primary_action(frm) { + const select_rows_section_head = document + .querySelector('[data-fieldname="select_rows_section"]') + .querySelector(".section-head"); + select_rows_section_head.textContent = __("Select Employees"); + frm.clear_custom_buttons(); + frm.page.clear_primary_action(); + + if (frm.doc.action === "Assign Shift") + frm.page.set_primary_action(__("Assign Shift"), () => { + frm.trigger("bulk_assign"); + }); + else if (frm.doc.action === "Assign Shift Schedule") + frm.page.set_primary_action(__("Assign Shift Schedule"), () => { + frm.trigger("bulk_assign"); + }); + else { + frm.page.add_inner_button( + __("Approve"), + () => { + frm.events.process_shift_requests(frm, "Approved"); + }, + __("Process Requests"), + ); + frm.page.add_inner_button( + __("Reject"), + () => { + frm.events.process_shift_requests(frm, "Rejected"); + }, + __("Process Requests"), + ); + frm.page.set_inner_btn_group_as_primary(__("Process Requests")); + frm.page.clear_menu(); + select_rows_section_head.textContent = __("Select Shift Requests"); + } + }, + + get_employees(frm) { + if ( + (frm.doc.action === "Assign Shift" && !(frm.doc.shift_type && frm.doc.start_date)) || + (frm.doc.action === "Assign Shift Schedule" && + !(frm.doc.shift_schedule && frm.doc.start_date)) + ) + return frm.events.render_employees_datatable(frm, []); + + frm.call({ + method: "get_employees", + args: { + advanced_filters: frm.advanced_filters || [], + }, + doc: frm.doc, + }).then((r) => frm.events.render_employees_datatable(frm, r.message)); + }, + + render_employees_datatable(frm, employees) { + let columns = undefined; + let no_data_message = undefined; + if (frm.doc.action === "Assign Shift") { + columns = frm.events.get_assign_shift_datatable_columns(); + no_data_message = __( + frm.doc.shift_type && frm.doc.start_date + ? "There are no employees without Shift Assignments for these dates based on the given filters." + : "Please select Shift Type and assignment date(s).", + ); + } else if (frm.doc.action === "Assign Shift Schedule") { + columns = frm.events.get_assign_shift_datatable_columns(); + no_data_message = __( + frm.doc.shift_schedule && frm.doc.start_date + ? "There are no employees without active overlapping Shift Schedule Assignments based on the given filters." + : "Please select Shift Schedule and assignment date(s).", + ); + } else { + columns = frm.events.get_process_shift_requests_datatable_columns(); + no_data_message = "There are no open Shift Requests based on the given filters."; + } + hrms.render_employees_datatable(frm, columns, employees, no_data_message); + }, + + get_assign_shift_datatable_columns() { + return [ + { + name: "employee", + id: "employee", + content: __("Employee"), + }, + { + name: "employee_name", + id: "employee_name", + content: __("Employee Name"), + }, + { + name: "branch", + id: "branch", + content: __("Branch"), + }, + { + name: "department", + id: "department", + content: __("Department"), + }, + { + name: "default_shift", + id: "default_shift", + content: __("Default Shift"), + }, + ].map((x) => ({ + ...x, + editable: false, + focusable: false, + dropdown: false, + align: "left", + })); + }, + + get_process_shift_requests_datatable_columns() { + return [ + { + name: "shift_request", + id: "shift_request", + content: __("Shift Request"), + }, + { + name: "employee", + id: "employee_name", + content: __("Employee"), + }, + { + name: "shift_type", + id: "shift_type", + content: __("Shift Type"), + }, + { + name: "from_date", + id: "from_date", + content: __("From Date"), + }, + { + name: "to_date", + id: "to_date", + content: __("To Date"), + }, + ].map((x) => ({ + ...x, + editable: false, + focusable: false, + dropdown: false, + align: "left", + })); + }, + + bulk_assign(frm, employees) { + const rows = frm.employees_datatable.datamanager.data; + const selected_employees = []; + const checked_row_indexes = frm.employees_datatable.rowmanager.getCheckedRows(); + checked_row_indexes.forEach((idx) => { + selected_employees.push(rows[idx].employee); + }); + + hrms.validate_mandatory_fields(frm, selected_employees); + frappe.confirm( + __("{0} to {1} employee(s)?", [__(frm.doc.action), selected_employees.length]), + () => { + frm.call({ + method: "bulk_assign", + doc: frm.doc, + args: { + employees: selected_employees, + }, + freeze: true, + freeze_message: __("Assigning..."), + }); + }, + ); + }, + + process_shift_requests(frm, status) { + const rows = frm.employees_datatable.datamanager.data; + const selected_requests = []; + const checked_row_indexes = frm.employees_datatable.rowmanager.getCheckedRows(); + checked_row_indexes.forEach((idx) => { + selected_requests.push({ + shift_request: rows[idx].name, + employee: rows[idx].employee, + }); + }); + + hrms.validate_mandatory_fields(frm, selected_requests, "Shift Requests"); + frappe.confirm( + __("Process {0} Shift Request(s) as {1}?", [selected_requests.length, status]), + () => { + frm.events.bulk_process_shift_requests(frm, selected_requests, status); + }, + ); + }, + + bulk_process_shift_requests(frm, shift_requests, status) { + frm.call({ + method: "bulk_process_shift_requests", + doc: frm.doc, + args: { + shift_requests: shift_requests, + status: status, + }, + freeze: true, + freeze_message: __("Processing Requests"), + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json new file mode 100644 index 000000000..f6fc00be0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json @@ -0,0 +1,231 @@ +{ + "actions": [], + "allow_copy": 1, + "allow_rename": 1, + "creation": "2024-03-19 15:07:00.469939", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "action", + "column_break_dnmy", + "company", + "shift_assignment_details_section", + "shift_type", + "shift_schedule", + "shift_location", + "status", + "column_break_ybmd", + "start_date", + "end_date", + "shift_request_filters_section", + "shift_type_filter", + "approver", + "column_break_gwjg", + "from_date", + "to_date", + "quick_filters_section", + "branch", + "department", + "designation", + "column_break_zius", + "grade", + "employment_type", + "advanced_filters_section", + "filter_list", + "select_rows_section", + "employees_html" + ], + "fields": [ + { + "default": "Assign Shift", + "fieldname": "action", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Action", + "options": "Assign Shift\nAssign Shift Schedule\nProcess Shift Requests", + "reqd": 1 + }, + { + "fieldname": "column_break_dnmy", + "fieldtype": "Column Break" + }, + { + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "depends_on": "eval:doc.action === \"Assign Shift\"", + "fieldname": "shift_type", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Shift Type", + "mandatory_depends_on": "eval:doc.action === \"Assign Shift\"", + "options": "Shift Type" + }, + { + "default": "Active", + "description": "When set to 'Inactive', employees with conflicting active shifts will not be excluded.", + "fieldname": "status", + "fieldtype": "Select", + "label": "Status", + "options": "Active\nInactive" + }, + { + "fieldname": "column_break_ybmd", + "fieldtype": "Column Break" + }, + { + "fieldname": "start_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Start Date", + "mandatory_depends_on": "eval:doc.action === \"Assign Shift\" || doc.action === \"Assign Shift Schedule\"" + }, + { + "fieldname": "end_date", + "fieldtype": "Date", + "label": "End Date" + }, + { + "collapsible": 1, + "fieldname": "quick_filters_section", + "fieldtype": "Section Break", + "label": "Quick Filters" + }, + { + "fieldname": "branch", + "fieldtype": "Link", + "label": "Branch", + "options": "Branch" + }, + { + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department" + }, + { + "fieldname": "designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation" + }, + { + "fieldname": "column_break_zius", + "fieldtype": "Column Break" + }, + { + "fieldname": "employment_type", + "fieldtype": "Link", + "label": "Employment Type", + "options": "Employment Type" + }, + { + "collapsible": 1, + "fieldname": "advanced_filters_section", + "fieldtype": "Section Break", + "label": "Advanced Filters" + }, + { + "fieldname": "filter_list", + "fieldtype": "HTML", + "label": "Filter List" + }, + { + "fieldname": "employees_html", + "fieldtype": "HTML", + "label": "Employees HTML" + }, + { + "fieldname": "shift_type_filter", + "fieldtype": "Link", + "label": "Shift Type", + "options": "Shift Type" + }, + { + "fieldname": "approver", + "fieldtype": "Link", + "label": "Approver", + "options": "User" + }, + { + "fieldname": "column_break_gwjg", + "fieldtype": "Column Break" + }, + { + "description": "Shift Requests ending before this date will be excluded.", + "fieldname": "from_date", + "fieldtype": "Date", + "label": "From Date" + }, + { + "description": "Shift Requests starting after this date will be excluded.", + "fieldname": "to_date", + "fieldtype": "Date", + "label": "To Date" + }, + { + "depends_on": "eval:doc.action === \"Process Shift Requests\"", + "fieldname": "shift_request_filters_section", + "fieldtype": "Section Break", + "label": "Shift Request Filters" + }, + { + "depends_on": "eval:doc.action === \"Assign Shift\" || doc.action === \"Assign Shift Schedule\"", + "fieldname": "shift_assignment_details_section", + "fieldtype": "Section Break", + "label": "Shift Assignment Details" + }, + { + "fieldname": "grade", + "fieldtype": "Link", + "label": "Employee Grade", + "options": "Employee Grade" + }, + { + "fieldname": "select_rows_section", + "fieldtype": "Section Break", + "label": "Select Employees" + }, + { + "fieldname": "shift_location", + "fieldtype": "Link", + "label": "Shift Location", + "options": "Shift Location" + }, + { + "depends_on": "eval:doc.action === \"Assign Shift Schedule\"", + "fieldname": "shift_schedule", + "fieldtype": "Link", + "label": "Shift Schedule", + "mandatory_depends_on": "eval:doc.action === \"Assign Shift Schedule\"", + "options": "Shift Schedule" + } + ], + "hide_toolbar": 1, + "issingle": 1, + "links": [], + "modified": "2025-01-13 13:48:33.710186", + "modified_by": "Administrator", + "module": "HR", + "name": "Shift Assignment Tool", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "email": 1, + "print": 1, + "read": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "sort_field": "modified", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py new file mode 100644 index 000000000..4c84441d0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py @@ -0,0 +1,344 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from datetime import timedelta + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.query_builder import Case, Criterion, Interval +from frappe.query_builder.terms import SubQuery +from frappe.utils import get_link_to_form + +from erpnext.accounts.utils import build_qb_match_conditions + +from hrms.hr.utils import validate_bulk_tool_fields + + +class ShiftAssignmentTool(Document): + @frappe.whitelist() + def get_employees(self, advanced_filters: list | None = None) -> list: + if not advanced_filters: + advanced_filters = [] + + quick_filter_fields = [ + "company", + "branch", + "department", + "designation", + "grade", + "employment_type", + ] + filters = [[d, "=", self.get(d)] for d in quick_filter_fields if self.get(d)] + filters += advanced_filters + + if self.action == "Process Shift Requests": + return self.get_shift_requests(filters) + return self.get_employees_for_assigning_shift(filters) + + def get_employees_for_assigning_shift(self, filters): + Employee = frappe.qb.DocType("Employee") + query = frappe.qb.get_query( + Employee, + fields=[ + Employee.employee, + Employee.employee_name, + Employee.branch, + Employee.department, + Employee.default_shift, + ], + filters=filters, + ).where( + (Employee.status == "Active") + & (Employee.date_of_joining <= self.start_date) + & ((Employee.relieving_date >= self.start_date) | (Employee.relieving_date.isnull())) + ) + if self.end_date: + query = query.where( + (Employee.relieving_date >= self.end_date) | (Employee.relieving_date.isnull()) + ) + + self.allow_multiple_shifts = frappe.db.get_single_value( + "HR Settings", "allow_multiple_shift_assignments" + ) + if self.action == "Assign Shift Schedule": + query = query.where( + Employee.employee.notin(SubQuery(self.get_query_for_employees_with_same_shift_schedule())) + ) + elif self.status == "Active": + query = query.where(Employee.employee.notin(SubQuery(self.get_query_for_employees_with_shifts()))) + + query = query.where(Criterion.all(build_qb_match_conditions("Employee"))) + + return query.run(as_dict=True) + + def get_shift_requests(self, filters): + Employee = frappe.qb.DocType("Employee") + ShiftRequest = frappe.qb.DocType("Shift Request") + query = ( + frappe.qb.get_query( + Employee, + fields=[Employee.employee, Employee.employee_name], + filters=filters, + ) + .inner_join(ShiftRequest) + .on(ShiftRequest.employee == Employee.name) + .select( + ShiftRequest.name, + ShiftRequest.shift_type, + ShiftRequest.from_date, + ShiftRequest.to_date, + ) + .where(ShiftRequest.status == "Draft") + ) + + if self.shift_type_filter: + query = query.where(ShiftRequest.shift_type == self.shift_type_filter) + if self.approver: + query = query.where(ShiftRequest.approver == self.approver) + if self.from_date: + query = query.where((ShiftRequest.to_date >= self.from_date) | (ShiftRequest.to_date.isnull())) + if self.to_date: + query = query.where(ShiftRequest.from_date <= self.to_date) + + query = query.where(Criterion.all(build_qb_match_conditions("Employee"))) + + data = query.run(as_dict=True) + for d in data: + d.employee_name = d.employee + ": " + d.employee_name + d.shift_request = get_link_to_form("Shift Request", d.name) + + return data + + def get_query_for_employees_with_shifts(self): + ShiftAssignment = frappe.qb.DocType("Shift Assignment") + query = ( + frappe.qb.from_(ShiftAssignment) + .select(ShiftAssignment.employee) + .distinct() + .where( + (ShiftAssignment.status == "Active") + & (ShiftAssignment.docstatus == 1) + # check for overlapping dates + & ((ShiftAssignment.end_date >= self.start_date) | (ShiftAssignment.end_date.isnull())) + ) + ) + + if self.end_date: + query = query.where(ShiftAssignment.start_date <= self.end_date) + + if self.allow_multiple_shifts: + query = self.get_query_checking_overlapping_shift_timings(query, ShiftAssignment, self.shift_type) + + return query + + def get_query_for_employees_with_same_shift_schedule(self): + days = frappe.get_all("Assignment Rule Day", {"parent": self.shift_schedule}, pluck="day") + + ShiftScheduleAssignment = frappe.qb.DocType("Shift Schedule Assignment") + ShiftSchedule = frappe.qb.DocType("Shift Schedule") + Day = frappe.qb.DocType("Assignment Rule Day") + + query = ( + frappe.qb.from_(ShiftScheduleAssignment) + .left_join(ShiftSchedule) + .on(ShiftSchedule.name == ShiftScheduleAssignment.shift_schedule) + .left_join(Day) + .on(ShiftSchedule.name == Day.parent) + .select(ShiftScheduleAssignment.employee) + .distinct() + .where((ShiftScheduleAssignment.enabled == 1) & (Day.day.isin(days))) + ) + + if self.allow_multiple_shifts: + shift_type = frappe.db.get_value("Shift Schedule", self.shift_schedule, "shift_type") + query = self.get_query_checking_overlapping_shift_timings(query, ShiftSchedule, shift_type) + + return query + + def get_query_checking_overlapping_shift_timings(self, query, doctype, shift_type): + shift_start, shift_end = frappe.db.get_value("Shift Type", shift_type, ["start_time", "end_time"]) + # turn it into a 48 hour clock for easier conditioning while considering overnight shifts + if shift_end < shift_start: + shift_end += timedelta(hours=24) + + ShiftType = frappe.qb.DocType("Shift Type") + end_time_case = ( + Case() + .when(ShiftType.end_time < ShiftType.start_time, ShiftType.end_time + Interval(hours=24)) + .else_(ShiftType.end_time) + ) + + return ( + query.left_join(ShiftType) + .on(doctype.shift_type == ShiftType.name) + .where((end_time_case >= shift_start) & (ShiftType.start_time <= shift_end)) + ) + + @frappe.whitelist() + def bulk_assign(self, employees: list): + if self.action == "Assign Shift": + mandatory_fields = ["shift_type"] + doctype = "Shift Assignments" + + elif self.action == "Assign Shift Schedule": + mandatory_fields = ["shift_schedule"] + doctype = "Shift Schedule Assignments" + + else: + frappe.throw(_("Invalid Action")) + + mandatory_fields.extend(["company", "start_date"]) + + validate_bulk_tool_fields(self, mandatory_fields, employees, "start_date", "end_date") + + if self.action == "Assign Shift" and len(employees) <= 30: + return self._bulk_assign(employees) + + frappe.enqueue(self._bulk_assign, timeout=3000, employees=employees) + frappe.msgprint( + _("Creation of {0} has been queued. It may take a few minutes.").format(doctype), + alert=True, + indicator="blue", + ) + + def _bulk_assign(self, employees: list): + success, failure = [], [] + count = 0 + savepoint = "before_assignment" + if self.action == "Assign Shift": + doctype = "Shift Assignment" + event = "completed_bulk_shift_assignment" + else: + doctype = "Shift Schedule Assignment" + event = "completed_bulk_shift_schedule_assignment" + + for d in employees: + try: + frappe.db.savepoint(savepoint) + assignment = ( + self.create_shift_schedule_assignment(d) + if self.action == "Assign Shift Schedule" + else create_shift_assignment( + d, + self.company, + self.shift_type, + self.start_date, + self.end_date, + self.status, + self.shift_location, + ) + ) + if self.action == "Assign Shift Schedule": + assignment.create_shifts(self.start_date, self.end_date) + + except Exception: + frappe.db.rollback(save_point=savepoint) + frappe.log_error( + f"Bulk Assignment - {doctype} failed for employee {d}.", + reference_doctype=doctype, + ) + failure.append(d) + else: + success.append({"doc": get_link_to_form(doctype, assignment.name), "employee": d}) + + count += 1 + frappe.publish_progress(count * 100 / len(employees), title=_("Creating {0}...").format(doctype)) + + frappe.clear_messages() + frappe.publish_realtime( + event, + message={"success": success, "failure": failure}, + doctype="Shift Assignment Tool", + after_commit=True, + ) + + @frappe.whitelist() + def bulk_process_shift_requests(self, shift_requests: list, status: str): + if not shift_requests: + frappe.throw( + _("Please select at least one Shift Request to perform this action."), + title=_("No Shift Requests Selected"), + ) + + if len(shift_requests) <= 30: + return self._bulk_process_shift_requests(shift_requests, status) + + frappe.enqueue( + self._bulk_process_shift_requests, timeout=3000, shift_requests=shift_requests, status=status + ) + frappe.msgprint( + _("Processing of Shift Requests has been queued. It may take a few minutes."), + alert=True, + indicator="blue", + ) + + def _bulk_process_shift_requests(self, shift_requests: list, status: str): + success, failure = [], [] + count = 0 + + for d in shift_requests: + try: + shift_request = frappe.get_doc("Shift Request", d["shift_request"]) + shift_request.status = status + shift_request.save() + shift_request.submit() + + except Exception: + frappe.log_error( + f"Bulk Processing - Processing failed for Shift Request {d['shift_request']}.", + reference_doctype="Shift Request", + ) + failure.append(d["employee"]) + else: + success.append( + {"doc": get_link_to_form("Shift Request", shift_request.name), "employee": d["employee"]} + ) + + count += 1 + frappe.publish_progress(count * 100 / len(shift_requests), title=_("Processing Requests...")) + + frappe.clear_messages() + frappe.publish_realtime( + "completed_bulk_shift_request_processing", + message={"success": success, "failure": failure, "for_processing": True}, + doctype="Shift Assignment Tool", + after_commit=True, + ) + + def create_shift_schedule_assignment(self, employee: str) -> str: + assignment = frappe.new_doc("Shift Schedule Assignment") + assignment.shift_schedule = self.shift_schedule + assignment.employee = employee + assignment.company = self.company + assignment.shift_status = self.status + assignment.shift_location = self.shift_location + assignment.enabled = 0 if self.end_date else 1 + assignment.create_shifts_after = self.start_date + assignment.flags.ingore_validate = True + assignment.save() + return assignment + + +def create_shift_assignment( + employee: str, + company: str, + shift_type: str, + start_date: str, + end_date: str, + status: str, + shift_location: str | None = None, + shift_schedule_assignment: str | None = None, +) -> str: + assignment = frappe.new_doc("Shift Assignment") + assignment.employee = employee + assignment.company = company + assignment.shift_type = shift_type + assignment.start_date = start_date + assignment.end_date = end_date + assignment.status = status + assignment.shift_location = shift_location + assignment.shift_schedule_assignment = shift_schedule_assignment + assignment.save() + assignment.submit() + return assignment diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/test_shift_assignment_tool.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/test_shift_assignment_tool.py new file mode 100644 index 000000000..6bada97ad --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_assignment_tool/test_shift_assignment_tool.py @@ -0,0 +1,314 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase, change_settings +from frappe.utils import add_days, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.shift_assignment_tool.shift_assignment_tool import ShiftAssignmentTool +from hrms.hr.doctype.shift_request.test_shift_request import make_shift_request +from hrms.hr.doctype.shift_schedule.shift_schedule import get_or_insert_shift_schedule +from hrms.hr.doctype.shift_type.test_shift_type import make_shift_assignment, setup_shift_type +from hrms.tests.test_utils import create_company + + +class TestShiftAssignmentTool(IntegrationTestCase): + def setUp(self): + create_company() + create_company("_Test Company2") + self.shift1 = setup_shift_type(shift_type="Shift 1", start_time="08:00:00", end_time="12:00:00") + self.shift2 = setup_shift_type(shift_type="Shift 2", start_time="11:00:00", end_time="15:00:00") + self.shift3 = setup_shift_type(shift_type="Shift 3", start_time="14:00:00", end_time="18:00:00") + self.schedule1 = get_or_insert_shift_schedule(self.shift1.name, "Every Week", ["Monday"]) + self.schedule2 = get_or_insert_shift_schedule(self.shift2.name, "Every Week", ["Monday"]) + self.schedule3 = get_or_insert_shift_schedule(self.shift3.name, "Every Week", ["Monday"]) + self.schedule4 = get_or_insert_shift_schedule(self.shift1.name, "Every Week", ["Tuesday"]) + self.emp1 = make_employee("employee1@test.com", company="_Test Company") + self.emp2 = make_employee("employee2@test.com", company="_Test Company") + self.emp3 = make_employee("employee3@test.com", company="_Test Company") + self.emp4 = make_employee("employee4@test.com", company="_Test Company2") + self.emp5 = make_employee("employee5@test.io", company="_Test Company") + + def tearDown(self): + frappe.db.rollback() + + @change_settings("HR Settings", {"allow_multiple_shift_assignments": 0}) + def test_get_employees_for_assigning_shifts(self): + today = getdate() + + args = { + "doctype": "Shift Assignment Tool", + "action": "Assign Shift", + "company": "_Test Company", # excludes emp4 + "shift_type": self.shift1.name, + "status": "Active", + "start_date": today, + } + shift_assignment_tool = ShiftAssignmentTool(args) + advanced_filters = [["employee_name", "like", "%test.com%"]] # excludes emp5 + + # does not exclude emp1 as dates don't overlap + make_shift_assignment(self.shift3.name, self.emp1, add_days(today, -5), add_days(today, -1)) + # excludes emp2 due to overlapping dates + make_shift_assignment(self.shift3.name, self.emp2, add_days(today, 6)) + # excludes emp3 due to overlapping dates + make_shift_assignment(self.shift3.name, self.emp3, today) + + employees = shift_assignment_tool.get_employees(advanced_filters) + self.assertEqual(len(employees), 1) # emp1 + + # includes emp2 as dates don't overlap anymore + shift_assignment_tool.end_date = add_days(today, 5) + employees = shift_assignment_tool.get_employees(advanced_filters) + self.assertEqual(len(employees), 2) # emp1, emp2 + + # includes emp3 as multiple shifts in a day are allowed and timings don't overlap + frappe.db.set_single_value("HR Settings", "allow_multiple_shift_assignments", 1) + employees = shift_assignment_tool.get_employees(advanced_filters) + self.assertEqual(len(employees), 3) # emp1, emp2, emp3 + + # excludes emp3 due to overlapping shift timings + shift_assignment_tool.shift_type = self.shift2.name + employees = shift_assignment_tool.get_employees(advanced_filters) + self.assertEqual(len(employees), 2) # emp1, emp2 + + employee_names = [d.employee for d in employees] + self.assertIn(self.emp1, employee_names) + self.assertIn(self.emp2, employee_names) + + def test_get_employees_for_assigning_shift_schedule(self): + today = getdate() + + args = { + "doctype": "Shift Assignment Tool", + "action": "Assign Shift Schedule", + "company": "_Test Company", # excludes emp4 + "shift_schedule": self.schedule1, + "start_date": today, + } + shift_assignment_tool = ShiftAssignmentTool(args) + advanced_filters = [["employee_name", "like", "%test.com%"]] # excludes emp5 + + # does not exclude emp1 as days don't overlap + make_shift_schedule_assignment(self.schedule4, self.emp1) + # excludes emp2 due to overlapping days + make_shift_schedule_assignment(self.schedule2, self.emp2) + # excludes emp3 due to overlapping days + make_shift_schedule_assignment(self.schedule3, self.emp3) + + employees = shift_assignment_tool.get_employees(advanced_filters) + self.assertEqual(len(employees), 1) # emp1 + + # includes emp3 as multiple shifts in a day are allowed and timings don't overlap + frappe.db.set_single_value("HR Settings", "allow_multiple_shift_assignments", 1) + employees = shift_assignment_tool.get_employees(advanced_filters) + self.assertEqual(len(employees), 2) # emp1, emp3 + + employee_names = [d.employee for d in employees] + self.assertIn(self.emp1, employee_names) + self.assertIn(self.emp3, employee_names) + + def test_get_shift_requests(self): + today = getdate() + setup_shift_type(shift_type="Day Shift") + + for emp in [self.emp1, self.emp2, self.emp3, self.emp4, self.emp5]: + employee = frappe.get_doc("Employee", emp) + employee.shift_request_approver = "employee1@test.com" + employee.save() + + request1 = make_shift_request( + employee=self.emp1, + employee_name="employee1@test.com", + from_date=today, + to_date=add_days(today, 10), + status="Draft", + do_not_submit=1, + ) + # request2 + make_shift_request( + employee=self.emp2, + employee_name="employee2@test.com", + from_date=add_days(today, 6), + to_date=add_days(today, 10), + status="Draft", + do_not_submit=1, + ) + # request3 + make_shift_request( + employee=self.emp2, + employee_name="employee2@test.com", + from_date=add_days(today, -5), + to_date=add_days(today, -1), + status="Draft", + do_not_submit=1, + ) + # request4 + make_shift_request( + employee=self.emp4, + employee_name="employee4@test.com", + status="Approved", + ) + # request5 + make_shift_request( + employee=self.emp5, + employee_name="employee5@test.com", + status="Approved", + ) + # request excluded as it is approved + make_shift_request( + employee=self.emp3, + employee_name="employee3@test.com", + status="Approved", + ) + + args = { + "doctype": "Shift Assignment Tool", + "action": "Process Shift Requests", + "company": "_Test Company", # excludes request4 + } + shift_assignment_tool = ShiftAssignmentTool(args) + advanced_filters = [["employee_name", "like", "%test.com%"]] # excludes request5 + + shift_requests = shift_assignment_tool.get_employees(advanced_filters) + self.assertEqual(len(shift_requests), 3) # request1, request2, request3 + + # excludes request3 as it ends before from_date + shift_assignment_tool.from_date = today + shift_requests = shift_assignment_tool.get_employees(advanced_filters) + self.assertEqual(len(shift_requests), 2) # request1, request2 + + # excludes request2 as it starts after to_date + shift_assignment_tool.to_date = add_days(today, 5) + shift_requests = shift_assignment_tool.get_employees(advanced_filters) + self.assertEqual(len(shift_requests), 1) # request1 + self.assertEqual(shift_requests[0].name, request1.name) + + def test_bulk_assign_shift(self): + today = getdate() + + args = { + "doctype": "Shift Assignment Tool", + "action": "Assign Shift", + "company": "_Test Company", + "shift_type": self.shift1.name, + "status": "Active", + "start_date": today, + "end_date": add_days(today, 10), + } + shift_assignment_tool = ShiftAssignmentTool(args) + + employees = [self.emp1, self.emp2, self.emp3] + shift_assignment_tool.bulk_assign(employees) + shift_assignment_employees = frappe.get_list( + "Shift Assignment", + filters={ + "shift_type": self.shift1.name, + "status": "Active", + "start_date": today, + "end_date": add_days(today, 10), + "docstatus": 1, + }, + pluck="employee", + ) + self.assertIn(self.emp1, shift_assignment_employees) + self.assertIn(self.emp2, shift_assignment_employees) + self.assertIn(self.emp3, shift_assignment_employees) + + def test_bulk_assign_shift_schedule(self): + today = getdate() + + args = { + "doctype": "Shift Assignment Tool", + "action": "Assign Shift Schedule", + "company": "_Test Company", + "shift_schedule": self.schedule1, + "status": "Active", + "start_date": today, + "end_date": add_days(today, 10), + } + shift_assignment_tool = ShiftAssignmentTool(args) + + employees = [self.emp1, self.emp2, self.emp3] + shift_assignment_tool._bulk_assign(employees) + assigned_employees = frappe.get_list( + "Shift Schedule Assignment", + filters={ + "shift_schedule": self.schedule1, + "shift_status": "Active", + "enabled": 0, + }, + pluck="employee", + ) + self.assertIn(self.emp1, assigned_employees) + self.assertIn(self.emp2, assigned_employees) + self.assertIn(self.emp3, assigned_employees) + + def test_bulk_process_shift_requests(self): + for emp in [self.emp1, self.emp2, self.emp3]: + employee = frappe.get_doc("Employee", emp) + employee.shift_request_approver = "employee1@test.com" + employee.save() + + setup_shift_type(shift_type="Day Shift") + request1 = make_shift_request( + employee=self.emp1, + employee_name="employee1@test.com", + status="Draft", + do_not_submit=1, + ) + request2 = make_shift_request( + employee=self.emp2, + employee_name="employee2@test.com", + status="Draft", + do_not_submit=1, + ) + request3 = make_shift_request( + employee=self.emp3, + employee_name="employee3@test.com", + status="Draft", + do_not_submit=1, + ) + + args = { + "doctype": "Shift Assignment Tool", + "action": "Process Shift Requests", + "company": "_Test Company", + } + shift_assignment_tool = ShiftAssignmentTool(args) + + requests = [ + {"employee": self.emp1, "shift_request": request1.name}, + {"employee": self.emp2, "shift_request": request2.name}, + ] + shift_assignment_tool.bulk_process_shift_requests(requests, "Rejected") + processed_shift_requests = frappe.get_list( + "Shift Request", + filters={"status": "Rejected", "docstatus": 1}, + pluck="name", + ) + self.assertIn(request1.name, processed_shift_requests) + self.assertIn(request2.name, processed_shift_requests) + + requests = [{"employee": self.emp3, "shift_request": request3.name}] + shift_assignment_tool.bulk_process_shift_requests(requests, "Approved") + status, docstatus = frappe.db.get_value("Shift Request", request3.name, ["status", "docstatus"]) + self.assertEqual(status, "Approved") + self.assertEqual(docstatus, 1) + + shift_assignment = frappe.db.exists("Shift Assignment", {"shift_request": request3.name}) + self.assertTrue(shift_assignment) + + +def make_shift_schedule_assignment(schedule, employee, create_shifts_after=None, enabled=1): + assignment = frappe.new_doc("Shift Schedule Assignment") + assignment.shift_schedule = schedule + assignment.employee = employee + assignment.company = "_Test Company" + assignment.enabled = enabled + assignment.create_shifts_after = create_shifts_after or getdate() + assignment.save() + + return assignment.name diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location.js b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location.js new file mode 100644 index 000000000..dff91f02f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location.js @@ -0,0 +1,30 @@ +// Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Shift Location", { + refresh: async (frm) => { + const allow_geolocation_tracking = await frappe.db.get_single_value( + "HR Settings", + "allow_geolocation_tracking", + ); + + if (!allow_geolocation_tracking) + hide_field([ + "checkin_radius", + "fetch_geolocation", + "latitude", + "longitude", + "geolocation", + ]); + + if (!frm.doc.__islocal) + hrms.add_shift_tools_button_to_form(frm, { + action: "Assign Shift", + shift_location: frm.doc.name, + }); + }, + + fetch_geolocation: (frm) => { + hrms.fetch_geolocation(frm); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location.json b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location.json new file mode 100644 index 000000000..a977f6027 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location.json @@ -0,0 +1,125 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:location_name", + "creation": "2024-07-04 12:12:26.894513", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "location_name", + "checkin_radius", + "column_break_dlgd", + "latitude", + "longitude", + "section_break_xxli", + "fetch_geolocation", + "geolocation" + ], + "fields": [ + { + "fieldname": "location_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Location Name", + "reqd": 1, + "unique": 1 + }, + { + "description": "Radius within which check-in is allowed (in meters)", + "fieldname": "checkin_radius", + "fieldtype": "Int", + "label": "Checkin Radius" + }, + { + "fieldname": "column_break_dlgd", + "fieldtype": "Column Break" + }, + { + "fieldname": "longitude", + "fieldtype": "Float", + "label": "Longitude" + }, + { + "fieldname": "section_break_xxli", + "fieldtype": "Section Break" + }, + { + "fieldname": "geolocation", + "fieldtype": "Geolocation", + "label": "Geolocation" + }, + { + "fieldname": "latitude", + "fieldtype": "Float", + "label": "Latitude" + }, + { + "fieldname": "fetch_geolocation", + "fieldtype": "Button", + "label": "Fetch Geolocation" + } + ], + "links": [ + { + "link_doctype": "Shift Assignment", + "link_fieldname": "shift_location" + } + ], + "modified": "2024-10-10 12:54:26.209170", + "modified_by": "Administrator", + "module": "HR", + "name": "Shift Location", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location.py new file mode 100644 index 000000000..1f892b5da --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location.py @@ -0,0 +1,16 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe.model.document import Document + +from hrms.hr.utils import set_geolocation_from_coordinates + + +class ShiftLocation(Document): + def validate(self): + self.set_geolocation() + + @frappe.whitelist() + def set_geolocation(self): + set_geolocation_from_coordinates(self) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location_list.js new file mode 100644 index 000000000..291ee4997 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/shift_location_list.js @@ -0,0 +1,3 @@ +frappe.listview_settings["Shift Location"] = { + onload: (list_view) => hrms.add_shift_tools_button_to_list(list_view), +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/test_shift_location.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/test_shift_location.py new file mode 100644 index 000000000..bd6ecb76b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_location/test_shift_location.py @@ -0,0 +1,9 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestShiftLocation(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request.js b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request.js new file mode 100644 index 000000000..a98871673 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request.js @@ -0,0 +1,17 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Shift Request", { + setup: function (frm) { + frm.set_query("approver", function () { + return { + query: "hrms.hr.doctype.department_approver.department_approver.get_approvers", + filters: { + employee: frm.doc.employee, + doctype: frm.doc.doctype, + }, + }; + }); + frm.set_query("employee", erpnext.queries.employee); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request.json b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request.json new file mode 100644 index 000000000..8e2d15225 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request.json @@ -0,0 +1,156 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "HR-SHR-.YY.-.MM.-.#####", + "creation": "2018-04-13 16:32:27.974273", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "shift_type", + "employee", + "employee_name", + "department", + "status", + "column_break_4", + "company", + "approver", + "from_date", + "to_date", + "amended_from" + ], + "fields": [ + { + "fieldname": "shift_type", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Shift Type", + "options": "Shift Type", + "reqd": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "from_date", + "fieldtype": "Date", + "label": "From Date", + "reqd": 1 + }, + { + "fieldname": "to_date", + "fieldtype": "Date", + "label": "To Date" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Shift Request", + "print_hide": 1, + "read_only": 1 + }, + { + "default": "Draft", + "fieldname": "status", + "fieldtype": "Select", + "label": "Status", + "options": "Draft\nApproved\nRejected", + "reqd": 1 + }, + { + "fetch_from": "employee.shift_request_approver", + "fetch_if_empty": 1, + "fieldname": "approver", + "fieldtype": "Link", + "label": "Approver", + "options": "User", + "reqd": 1 + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:10:40.687344", + "modified_by": "Administrator", + "module": "HR", + "name": "Shift Request", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request.py new file mode 100644 index 000000000..9854c3c12 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request.py @@ -0,0 +1,136 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import get_link_to_form + +import hrms +from hrms.hr.doctype.shift_assignment.shift_assignment import has_overlapping_timings +from hrms.hr.utils import share_doc_with_approver, validate_active_employee +from hrms.mixins.pwa_notifications import PWANotificationsMixin + + +class OverlappingShiftRequestError(frappe.ValidationError): + pass + + +class ShiftRequest(Document, PWANotificationsMixin): + def validate(self): + validate_active_employee(self.employee) + self.validate_from_to_dates("from_date", "to_date") + self.validate_overlapping_shift_requests() + self.validate_approver() + self.validate_default_shift() + + def on_update(self): + share_doc_with_approver(self, self.approver) + self.notify_approval_status() + self.publish_update() + + def after_delete(self): + self.publish_update() + + def publish_update(self): + employee_user = frappe.db.get_value("Employee", self.employee, "user_id", cache=True) + hrms.refetch_resource("hrms:my_shift_requests", employee_user) + hrms.refetch_resource("hrms:team_shift_requests") + + def after_insert(self): + self.notify_approver() + + def on_submit(self): + if self.status not in ["Approved", "Rejected"]: + frappe.throw(_("Only Shift Request with status 'Approved' and 'Rejected' can be submitted")) + if self.status == "Approved": + assignment_doc = frappe.new_doc("Shift Assignment") + assignment_doc.company = self.company + assignment_doc.shift_type = self.shift_type + assignment_doc.employee = self.employee + assignment_doc.start_date = self.from_date + if self.to_date: + assignment_doc.end_date = self.to_date + assignment_doc.shift_request = self.name + assignment_doc.flags.ignore_permissions = 1 + assignment_doc.insert() + assignment_doc.submit() + + frappe.msgprint( + _("Shift Assignment: {0} created for Employee: {1}").format( + frappe.bold(assignment_doc.name), frappe.bold(self.employee) + ) + ) + + def on_cancel(self): + shift_assignment_list = frappe.db.get_all( + "Shift Assignment", {"employee": self.employee, "shift_request": self.name, "docstatus": 1} + ) + if shift_assignment_list: + for shift in shift_assignment_list: + shift_assignment_doc = frappe.get_doc("Shift Assignment", shift["name"]) + shift_assignment_doc.cancel() + + def on_discard(self): + self.db_set("status", "Cancelled") + + def validate_default_shift(self): + default_shift = frappe.get_value("Employee", self.employee, "default_shift") + if self.shift_type == default_shift: + frappe.throw( + _("You can not request for your Default Shift: {0}").format(frappe.bold(self.shift_type)) + ) + + def validate_approver(self): + department = frappe.get_value("Employee", self.employee, "department") + shift_approver = frappe.get_value("Employee", self.employee, "shift_request_approver") + approvers = frappe.db.sql( + """select approver from `tabDepartment Approver` where parent= %s and parentfield = 'shift_request_approver'""", + (department), + ) + approvers = [approver[0] for approver in approvers] + approvers.append(shift_approver) + if self.approver not in approvers: + frappe.throw(_("Only Approvers can Approve this Request.")) + + def validate_overlapping_shift_requests(self): + overlapping_dates = self.get_overlapping_dates() + if len(overlapping_dates): + # if dates are overlapping, check if timings are overlapping, else allow + for d in overlapping_dates: + if has_overlapping_timings(self.shift_type, d.shift_type): + self.throw_overlap_error(d) + + def get_overlapping_dates(self): + if not self.name: + self.name = "New Shift Request" + + shift = frappe.qb.DocType("Shift Request") + query = ( + frappe.qb.from_(shift) + .select(shift.name, shift.shift_type) + .where( + (shift.employee == self.employee) + & (shift.docstatus < 2) + & (shift.name != self.name) + & ((shift.to_date >= self.from_date) | (shift.to_date.isnull())) + ) + ) + + if self.to_date: + query = query.where(shift.from_date <= self.to_date) + + return query.run(as_dict=True) + + def throw_overlap_error(self, shift_details): + shift_details = frappe._dict(shift_details) + msg = _( + "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" + ).format( + frappe.bold(self.employee), + frappe.bold(shift_details.shift_type), + get_link_to_form("Shift Request", shift_details.name), + ) + + frappe.throw(msg, title=_("Overlapping Shift Requests"), exc=OverlappingShiftRequestError) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request_dashboard.py new file mode 100644 index 000000000..2859b8f77 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request_dashboard.py @@ -0,0 +1,7 @@ +def get_data(): + return { + "fieldname": "shift_request", + "transactions": [ + {"items": ["Shift Assignment"]}, + ], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request_list.js new file mode 100644 index 000000000..b456a2c4a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/shift_request_list.js @@ -0,0 +1,4 @@ +frappe.listview_settings["Shift Request"] = { + onload: (list_view) => + hrms.add_shift_tools_button_to_list(list_view, "Process Shift Requests"), +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/test_shift_request.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/test_shift_request.py new file mode 100644 index 000000000..00ccd6c13 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_request/test_shift_request.py @@ -0,0 +1,293 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import change_settings +from frappe.utils import add_days, nowdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.shift_request.shift_request import OverlappingShiftRequestError +from hrms.hr.doctype.shift_type.test_shift_type import setup_shift_type +from hrms.tests.utils import HRMSTestSuite + +test_dependencies = ["Shift Type"] + + +class TestShiftRequest(HRMSTestSuite): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.make_employees() + + def setUp(self): + for doctype in ["Shift Request", "Shift Assignment", "Shift Type"]: + frappe.db.delete(doctype) + + def test_make_shift_request(self): + "Test creation/updation of Shift Assignment from Shift Request." + setup_shift_type(shift_type="Day Shift") + department = frappe.get_value("Employee", "_T-Employee-00001", "department") + set_shift_approver(department) + approver = frappe.db.sql( + """select approver from `tabDepartment Approver` where parent= %s and parentfield = 'shift_request_approver'""", + (department), + )[0][0] + + shift_request = make_shift_request(approver) + + # Only one shift assignment is created against a shift request + shift_assignment = frappe.db.get_value( + "Shift Assignment", + filters={"shift_request": shift_request.name}, + fieldname=["employee", "docstatus"], + as_dict=True, + ) + self.assertEqual(shift_request.employee, shift_assignment.employee) + self.assertEqual(shift_assignment.docstatus, 1) + + shift_request.cancel() + + shift_assignment_docstatus = frappe.db.get_value( + "Shift Assignment", filters={"shift_request": shift_request.name}, fieldname="docstatus" + ) + self.assertEqual(shift_assignment_docstatus, 2) + self.assertEqual(shift_request.docstatus, 2) + + def test_shift_request_approver_perms(self): + setup_shift_type(shift_type="Day Shift") + employee = frappe.get_doc("Employee", "_T-Employee-00001") + user = "test_approver_perm_emp@example.com" + make_employee(user, "_Test Company") + + # set approver for employee + employee.reload() + employee.shift_request_approver = user + employee.save() + + shift_request = make_shift_request(user, do_not_submit=True) + self.assertTrue(shift_request.name in frappe.share.get_shared("Shift Request", user)) + + # check shared doc revoked + shift_request.reload() + department = frappe.get_value("Employee", "_T-Employee-00001", "department") + set_shift_approver(department) + department_approver = frappe.db.sql( + """select approver from `tabDepartment Approver` where parent= %s and parentfield = 'shift_request_approver'""", + (department), + )[0][0] + shift_request.approver = department_approver + shift_request.save() + self.assertTrue(shift_request.name not in frappe.share.get_shared("Shift Request", user)) + + shift_request.reload() + shift_request.approver = user + shift_request.save() + + frappe.set_user(user) + shift_request.reload() + shift_request.status = "Approved" + shift_request.submit() + + # unset approver + frappe.set_user("Administrator") + employee.reload() + employee.shift_request_approver = "" + employee.save() + + def test_overlap_for_request_without_to_date(self): + # shift should be Ongoing if Only from_date is present + user = "test_shift_request@example.com" + employee = make_employee(user, company="_Test Company", shift_request_approver=user) + setup_shift_type(shift_type="Day Shift") + + shift_request = frappe.get_doc( + { + "doctype": "Shift Request", + "shift_type": "Day Shift", + "company": "_Test Company", + "employee": employee, + "from_date": nowdate(), + "approver": user, + "status": "Approved", + } + ).submit() + + shift_request = frappe.get_doc( + { + "doctype": "Shift Request", + "shift_type": "Day Shift", + "company": "_Test Company", + "employee": employee, + "from_date": add_days(nowdate(), 2), + "approver": user, + "status": "Approved", + } + ) + + self.assertRaises(OverlappingShiftRequestError, shift_request.save) + + def test_overlap_for_request_with_from_and_to_dates(self): + user = "test_shift_request@example.com" + employee = make_employee(user, company="_Test Company", shift_request_approver=user) + setup_shift_type(shift_type="Day Shift") + + shift_request = frappe.get_doc( + { + "doctype": "Shift Request", + "shift_type": "Day Shift", + "company": "_Test Company", + "employee": employee, + "from_date": nowdate(), + "to_date": add_days(nowdate(), 30), + "approver": user, + "status": "Approved", + } + ).submit() + + shift_request = frappe.get_doc( + { + "doctype": "Shift Request", + "shift_type": "Day Shift", + "company": "_Test Company", + "employee": employee, + "from_date": add_days(nowdate(), 10), + "to_date": add_days(nowdate(), 35), + "approver": user, + "status": "Approved", + } + ) + + self.assertRaises(OverlappingShiftRequestError, shift_request.save) + + def test_overlapping_for_a_fixed_period_shift_and_ongoing_shift(self): + user = "test_shift_request@example.com" + employee = make_employee(user, company="_Test Company", shift_request_approver=user) + + # shift setup for 8-12 + shift_type = setup_shift_type(shift_type="Shift 1", start_time="08:00:00", end_time="12:00:00") + date = nowdate() + + # shift with end date + frappe.get_doc( + { + "doctype": "Shift Request", + "shift_type": shift_type.name, + "company": "_Test Company", + "employee": employee, + "from_date": date, + "to_date": add_days(date, 30), + "approver": user, + "status": "Approved", + } + ).submit() + + # shift setup for 11-15 + shift_type = setup_shift_type(shift_type="Shift 2", start_time="11:00:00", end_time="15:00:00") + shift2 = frappe.get_doc( + { + "doctype": "Shift Request", + "shift_type": shift_type.name, + "company": "_Test Company", + "employee": employee, + "from_date": date, + "approver": user, + "status": "Approved", + } + ) + + self.assertRaises(OverlappingShiftRequestError, shift2.insert) + + @change_settings("HR Settings", {"allow_multiple_shift_assignments": 1}) + def test_allow_non_overlapping_shift_requests_for_same_day(self): + user = "test_shift_request@example.com" + employee = make_employee(user, company="_Test Company", shift_request_approver=user) + + # shift setup for 8-12 + shift_type = setup_shift_type(shift_type="Shift 1", start_time="08:00:00", end_time="12:00:00") + date = nowdate() + + # shift with end date + frappe.get_doc( + { + "doctype": "Shift Request", + "shift_type": shift_type.name, + "company": "_Test Company", + "employee": employee, + "from_date": date, + "to_date": add_days(date, 30), + "approver": user, + "status": "Approved", + } + ).submit() + + # shift setup for 13-15 + shift_type = setup_shift_type(shift_type="Shift 2", start_time="13:00:00", end_time="15:00:00") + frappe.get_doc( + { + "doctype": "Shift Request", + "shift_type": shift_type.name, + "company": "_Test Company", + "employee": employee, + "from_date": date, + "approver": user, + "status": "Approved", + } + ).submit() + + def test_status_on_discard(self): + setup_shift_type(shift_type="Day Shift") + employee = frappe.get_doc("Employee", "_T-Employee-00001") + user = "test_approver_emp@example.com" + make_employee(user, "_Test Company") + + # set approver for employee + employee.reload() + employee.shift_request_approver = user + employee.save() + + shift_request = make_shift_request(user, do_not_submit=True) + shift_request.discard() + shift_request.reload() + self.assertEqual(shift_request.status, "Cancelled") + + +def set_shift_approver(department): + department_doc = frappe.get_doc("Department", department) + department_doc.append("shift_request_approver", {"approver": "test1@example.com"}) + department_doc.save() + department_doc.reload() + + +def make_shift_request( + approver=None, + employee="_T-Employee-00001", + employee_name="_Test Employee", + status="Approved", + from_date=None, + to_date=None, + do_not_submit=0, +): + from_date = from_date or nowdate() + to_date = to_date or add_days(nowdate(), 10) + approver = approver or frappe.db.get_value("Employee", employee, "shift_request_approver") + + shift_request = frappe.get_doc( + { + "doctype": "Shift Request", + "shift_type": "Day Shift", + "company": "_Test Company", + "employee": employee, + "employee_name": employee_name, + "from_date": from_date, + "to_date": to_date, + "approver": approver, + "status": status, + } + ).insert() + + if do_not_submit: + return shift_request + + shift_request.submit() + return shift_request diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule.js b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule.js new file mode 100644 index 000000000..df5c6e7d0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule.js @@ -0,0 +1,12 @@ +// Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Shift Schedule", { + refresh(frm) { + if (frm.doc.docstatus === 1) + hrms.add_shift_tools_button_to_form(frm, { + action: "Assign Shift Schedule", + shift_schedule: frm.doc.name, + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule.json b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule.json new file mode 100644 index 000000000..eacf1cd2a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule.json @@ -0,0 +1,114 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "prompt", + "creation": "2024-11-11 16:56:33.536882", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "schedule_settings_section", + "shift_type", + "column_break_iprq", + "frequency", + "repeat_on_days", + "amended_from" + ], + "fields": [ + { + "fieldname": "schedule_settings_section", + "fieldtype": "Section Break" + }, + { + "fieldname": "frequency", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Frequency", + "options": "Every Week\nEvery 2 Weeks\nEvery 3 Weeks\nEvery 4 Weeks", + "reqd": 1 + }, + { + "fieldname": "repeat_on_days", + "fieldtype": "Table", + "label": "Repeat On Days", + "options": "Assignment Rule Day", + "reqd": 1 + }, + { + "fieldname": "column_break_iprq", + "fieldtype": "Column Break" + }, + { + "fieldname": "shift_type", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Shift Type", + "options": "Shift Type", + "reqd": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Shift Schedule", + "print_hide": 1, + "read_only": 1, + "search_index": 1 + } + ], + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [ + { + "link_doctype": "Shift Schedule Assignment", + "link_fieldname": "shift_schedule" + } + ], + "modified": "2024-12-19 13:34:43.731635", + "modified_by": "Administrator", + "module": "HR", + "name": "Shift Schedule", + "naming_rule": "Set by user", + "owner": "Administrator", + "permissions": [ + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule.py new file mode 100644 index 000000000..d286c23f7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule.py @@ -0,0 +1,47 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe.model.document import Document +from frappe.utils import random_string + + +class ShiftSchedule(Document): + def before_validate(self): + to_be_deleted = [] + seen_days = set() + + for d in self.repeat_on_days: + if d.day in seen_days: + to_be_deleted.append(d) + else: + seen_days.add(d.day) + + for d in to_be_deleted: + self.remove(d) + + +def get_or_insert_shift_schedule(shift_type: str, frequency: str, repeat_on_days: list[str]) -> str: + shift_schedules = frappe.get_all( + "Shift Schedule", + pluck="name", + filters={"shift_type": shift_type, "frequency": frequency, "docstatus": 1}, + ) + + for shift_schedule in shift_schedules: + shift_schedule = frappe.get_doc("Shift Schedule", shift_schedule) + shift_schedule_days = [d.day for d in shift_schedule.repeat_on_days] + if sorted(repeat_on_days) == sorted(shift_schedule_days): + return shift_schedule.name + + doc = frappe.get_doc( + { + "doctype": "Shift Schedule", + "name": random_string(10), + "shift_type": shift_type, + "frequency": frequency, + "repeat_on_days": [{"day": day} for day in repeat_on_days], + } + ).insert() + doc.submit() + return doc.name diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule_list.js new file mode 100644 index 000000000..2b9044e24 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/shift_schedule_list.js @@ -0,0 +1,3 @@ +frappe.listview_settings["Shift Schedule"] = { + onload: (list_view) => hrms.add_shift_tools_button_to_list(list_view, "Assign Shift Schedule"), +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/test_shift_schedule.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/test_shift_schedule.py new file mode 100644 index 000000000..151b28bc3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule/test_shift_schedule.py @@ -0,0 +1,20 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase, UnitTestCase + +# On IntegrationTestCase, the doctype test records and all +# link-field test record depdendencies are recursively loaded +# Use these module variables to add/remove to/from that list +EXTRA_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] +IGNORE_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] + + +class TestShiftSchedule(IntegrationTestCase): + """ + Integration tests for ShiftSchedule. + Use this class for testing interactions between multiple components. + """ + + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.js b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.js new file mode 100644 index 000000000..bbc5b25f2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.js @@ -0,0 +1,8 @@ +// Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +// frappe.ui.form.on("Shift Schedule Assignment", { +// refresh(frm) { + +// }, +// }); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json new file mode 100644 index 000000000..273d064ec --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json @@ -0,0 +1,156 @@ +{ + "actions": [], + "autoname": "HR-SHSA-.YY.-.MM.-.#####", + "creation": "2024-11-11 17:33:00.330488", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "shift_details_section", + "employee", + "employee_name", + "column_break_toss", + "company", + "schedule_settings_section", + "shift_schedule", + "shift_location", + "shift_status", + "column_break_iprq", + "enabled", + "create_shifts_after" + ], + "fields": [ + { + "fieldname": "schedule_settings_section", + "fieldtype": "Section Break", + "label": "Shift Details" + }, + { + "fieldname": "column_break_iprq", + "fieldtype": "Column Break" + }, + { + "default": "1", + "description": "Select this if you want shift assignments to be automatically created indefinitely.", + "fieldname": "enabled", + "fieldtype": "Check", + "label": "Enabled" + }, + { + "default": "Today", + "depends_on": "eval:doc.enabled", + "description": "New shift assignments will be created after this date.", + "fieldname": "create_shifts_after", + "fieldtype": "Date", + "label": "Create Shifts After", + "mandatory_depends_on": "eval:doc.enabled" + }, + { + "fieldname": "shift_details_section", + "fieldtype": "Section Break", + "label": "Employee Details" + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fieldname": "column_break_toss", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company", + "read_only": 1, + "reqd": 1 + }, + { + "default": "Active", + "fieldname": "shift_status", + "fieldtype": "Select", + "label": "Shift Status", + "options": "Active\nInactive" + }, + { + "fieldname": "shift_schedule", + "fieldtype": "Link", + "label": "Shift Schedule", + "options": "Shift Schedule", + "reqd": 1 + }, + { + "fieldname": "shift_location", + "fieldtype": "Link", + "label": "Shift Location", + "options": "Shift Location" + } + ], + "index_web_pages_for_search": 1, + "links": [ + { + "link_doctype": "Shift Assignment", + "link_fieldname": "shift_schedule_assignment" + } + ], + "modified": "2025-07-10 18:48:42.170391", + "modified_by": "Administrator", + "module": "HR", + "name": "Shift Schedule Assignment", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py new file mode 100644 index 000000000..c090667bd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py @@ -0,0 +1,143 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import add_days, format_date, get_link_to_form, get_weekday, getdate, nowdate + +from hrms.hr.doctype.shift_assignment_tool.shift_assignment_tool import create_shift_assignment + + +class ShiftScheduleAssignment(Document): + def validate(self): + self.validate_existing_shift_assignments() + + def validate_existing_shift_assignments(self): + if self.has_value_changed("create_shifts_after") and not self.is_new(): + existing_shift_assignments, last_shift_end_date = self.get_existing_shift_assignments() + if existing_shift_assignments: + frappe.throw( + msg=_( + "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" + ).format( + frappe.bold(self.shift_schedule), + frappe.bold(self.create_shifts_after), + frappe.bold("Create Shifts After"), + frappe.bold(last_shift_end_date), + ( + "

    • " + + "
    • ".join( + get_link_to_form("Shift Assignment", shift) + for shift in existing_shift_assignments + ) + + "
    " + ), + ), + title=_("Existing Shift Assignments"), + ) + + def get_existing_shift_assignments(self): + shift_schedule_assignment = frappe.qb.DocType("Shift Schedule Assignment") + shift_assignment = frappe.qb.DocType("Shift Assignment") + + query = ( + frappe.qb.from_(shift_assignment) + .inner_join(shift_schedule_assignment) + .on(shift_assignment.shift_schedule_assignment == shift_schedule_assignment.name) + .select(shift_assignment.name, shift_assignment.end_date) + .where( + (shift_assignment.end_date >= self.create_shifts_after) + & (shift_assignment.status == "Active") + & (shift_assignment.employee == self.employee) + ) + .orderby(shift_assignment.end_date) + ) + + existing_shifts = query.run(as_dict=True) + + existing_shift_assignments = [shift.name for shift in existing_shifts] + last_shift_end_date = existing_shifts[-1].end_date if existing_shifts else None + + return existing_shift_assignments, last_shift_end_date + + def create_shifts(self, start_date: str, end_date: str | None = None) -> None: + shift_schedule = frappe.get_doc("Shift Schedule", self.shift_schedule) + gap = { + "Every Week": 0, + "Every 2 Weeks": 1, + "Every 3 Weeks": 2, + "Every 4 Weeks": 3, + }[shift_schedule.frequency] + + date = start_date + individual_assignment_start = None + week_end_day = get_weekday(getdate(add_days(start_date, -1))) + repeat_on_days = [day.day for day in shift_schedule.repeat_on_days] + + if not end_date: + end_date = add_days(start_date, 90) + + while date <= end_date: + weekday = get_weekday(getdate(date)) + if weekday in repeat_on_days: + if not individual_assignment_start: + individual_assignment_start = date + if date == end_date: + self.create_individual_assignment( + shift_schedule.shift_type, individual_assignment_start, date + ) + + elif individual_assignment_start: + self.create_individual_assignment( + shift_schedule.shift_type, individual_assignment_start, add_days(date, -1) + ) + individual_assignment_start = None + + if weekday == week_end_day and gap: + if individual_assignment_start: + self.create_individual_assignment( + shift_schedule.shift_type, individual_assignment_start, date + ) + individual_assignment_start = None + date = add_days(date, 7 * gap) + + date = add_days(date, 1) + + def create_individual_assignment(self, shift_type, start_date, end_date): + create_shift_assignment( + self.employee, + self.company, + shift_type, + start_date, + end_date, + self.shift_status, + self.shift_location, + self.name, + ) + self.db_set("create_shifts_after", end_date, update_modified=False) + + +def process_auto_shift_creation(): + shift_schedule_assignments = frappe.get_all( + "Shift Schedule Assignment", + filters={"enabled": 1, "create_shifts_after": ["<=", nowdate()]}, + pluck="name", + ) + for d in shift_schedule_assignments: + try: + doc = frappe.get_doc("Shift Schedule Assignment", d) + + start_date = doc.create_shifts_after + + doc.create_shifts(add_days(doc.create_shifts_after, 1)) + + text = _( + "Shift Assignments created for the schedule between {0} and {1} via background job" + ).format(frappe.bold(format_date(start_date)), frappe.bold(format_date(doc.create_shifts_after))) + + doc.add_comment(comment_type="Info", text=text) + except Exception as e: + frappe.log_error(e) + + continue diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment_list.js new file mode 100644 index 000000000..ecfd2d6d3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment_list.js @@ -0,0 +1,3 @@ +frappe.listview_settings["Shift Schedule Assignment"] = { + onload: (list_view) => hrms.add_shift_tools_button_to_list(list_view, "Assign Shift Schedule"), +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/test_shift_schedule_assignment.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/test_shift_schedule_assignment.py new file mode 100644 index 000000000..406307ac9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_schedule_assignment/test_shift_schedule_assignment.py @@ -0,0 +1,59 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.shift_schedule.shift_schedule import get_or_insert_shift_schedule +from hrms.hr.doctype.shift_type.test_shift_type import setup_shift_type + +# On IntegrationTestCase, the doctype test records and all +# link-field test record depdendencies are recursively loaded +# Use these module variables to add/remove to/from that list + + +class TestShiftScheduleAssignment(IntegrationTestCase): + def setUp(self): + for dt in ["Shift Type", "Shift Schedule", "Shift Schedule Assignment", "Shift Assignment"]: + frappe.db.delete(dt) + + self.employee = make_employee("test@scheduleassignment.com", company="_Test Company") + self.shift_type = setup_shift_type( + shift_type="Test Schedule Assignment", start_time="08:00:00", end_time="12:00:00" + ) + self.shift_schedule = get_or_insert_shift_schedule( + self.shift_type.name, "Every Week", ["Monday", "Tuesday", "Wednesday"] + ) + + def tearDown(self): + frappe.db.rollback() + + def test_existing_shift_assignment_validation(self): + shift_schedule_assignment = frappe.get_doc( + { + "doctype": "Shift Schedule Assignment", + "employee": self.employee, + "company": "_Test Company", + "shift_schedule": self.shift_schedule, + "shift_status": "Active", + "create_shifts_after": add_days(getdate(), -10), + } + ).insert() + create_shifts_after = shift_schedule_assignment.create_shifts_after + + shift_schedule_assignment.create_shifts( + add_days(create_shifts_after, 1), add_days(create_shifts_after, 15) + ) + + shift_schedule_assignment.reload() + shift_schedule_assignment.create_shifts_after = getdate() + + self.assertRaises(frappe.ValidationError, shift_schedule_assignment.save) + shift_schedule_assignment.reload() + shift_schedule_assignment.create_shifts_after = add_days(getdate(), 6) + + shift_schedule_assignment.save() + self.assertEqual(shift_schedule_assignment.create_shifts_after, add_days(getdate(), 6)) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type.js b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type.js new file mode 100644 index 000000000..2a3bcdd55 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type.js @@ -0,0 +1,54 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Shift Type", { + refresh: function (frm) { + if (frm.doc.__islocal) return; + + hrms.add_shift_tools_button_to_form(frm, { + action: "Assign Shift", + shift_type: frm.doc.name, + }); + + frm.add_custom_button(__("Mark Attendance"), () => { + if (!frm.doc.enable_auto_attendance) { + frm.scroll_to_field("enable_auto_attendance"); + frappe.throw(__("Please Enable Auto Attendance and complete the setup first.")); + } + + if (!frm.doc.process_attendance_after) { + frm.scroll_to_field("process_attendance_after"); + frappe.throw(__("Please set {0}.", [__("Process Attendance After").bold()])); + } + + if (!frm.doc.last_sync_of_checkin) { + frm.scroll_to_field("last_sync_of_checkin"); + frappe.throw(__("Please set {0}.", [__("Last Sync of Checkin").bold()])); + } + + frm.call({ + doc: frm.doc, + method: "process_auto_attendance", + freeze: true, + args: { + is_manually_triggered: true, + }, + callback: (r) => { + frappe.msgprint(__(r.message)); + }, + }); + }); + }, + + auto_update_last_sync: function (frm) { + if (frm.doc.auto_update_last_sync) { + frm.set_value("last_sync_of_checkin", ""); + } + }, + + allow_overtime: function (frm) { + if (!frm.doc.allow_overtime) { + frm.set_value("overtime_type", ""); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type.json b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type.json new file mode 100644 index 000000000..646327764 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type.json @@ -0,0 +1,259 @@ +{ + "actions": [], + "autoname": "prompt", + "creation": "2018-04-13 16:22:52.954783", + "doctype": "DocType", + "documentation": "https://docs.frappe.io/hr/shift-type", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "start_time", + "end_time", + "column_break_3", + "holiday_list", + "color", + "enable_auto_attendance", + "auto_attendance_settings_section", + "determine_check_in_and_check_out", + "working_hours_calculation_based_on", + "begin_check_in_before_shift_start_time", + "allow_check_out_after_shift_end_time", + "mark_auto_attendance_on_holidays", + "column_break_10", + "working_hours_threshold_for_half_day", + "working_hours_threshold_for_absent", + "process_attendance_after", + "last_sync_of_checkin", + "auto_update_last_sync", + "grace_period_settings_auto_attendance_section", + "enable_late_entry_marking", + "late_entry_grace_period", + "column_break_18", + "enable_early_exit_marking", + "early_exit_grace_period", + "overtime_section", + "allow_overtime", + "overtime_type" + ], + "fields": [ + { + "fieldname": "start_time", + "fieldtype": "Time", + "in_list_view": 1, + "label": "Start Time", + "reqd": 1 + }, + { + "fieldname": "end_time", + "fieldtype": "Time", + "in_list_view": 1, + "label": "End Time", + "reqd": 1 + }, + { + "fieldname": "holiday_list", + "fieldtype": "Link", + "label": "Holiday List", + "options": "Holiday List" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_10", + "fieldtype": "Column Break" + }, + { + "fieldname": "determine_check_in_and_check_out", + "fieldtype": "Select", + "label": "Determine Check-in and Check-out", + "options": "Alternating entries as IN and OUT during the same shift\nStrictly based on Log Type in Employee Checkin" + }, + { + "fieldname": "working_hours_calculation_based_on", + "fieldtype": "Select", + "label": "Working Hours Calculation Based On", + "options": "First Check-in and Last Check-out\nEvery Valid Check-in and Check-out" + }, + { + "description": "Working hours below which Half Day is marked. (Zero to disable)", + "fieldname": "working_hours_threshold_for_half_day", + "fieldtype": "Float", + "label": "Working Hours Threshold for Half Day", + "precision": "2" + }, + { + "description": "Working hours below which Absent is marked. (Zero to disable)", + "fieldname": "working_hours_threshold_for_absent", + "fieldtype": "Float", + "label": "Working Hours Threshold for Absent", + "precision": "2" + }, + { + "default": "60", + "description": "The time before the shift start time during which Employee Check-in is considered for attendance.", + "fieldname": "begin_check_in_before_shift_start_time", + "fieldtype": "Int", + "label": "Begin check-in before shift start time (in minutes)" + }, + { + "depends_on": "enable_late_entry_marking", + "description": "The time after the shift start time when check-in is considered as late (in minutes).", + "fieldname": "late_entry_grace_period", + "fieldtype": "Int", + "label": "Late Entry Grace Period" + }, + { + "fieldname": "column_break_18", + "fieldtype": "Column Break" + }, + { + "depends_on": "enable_early_exit_marking", + "description": "The time before the shift end time when check-out is considered as early (in minutes).", + "fieldname": "early_exit_grace_period", + "fieldtype": "Int", + "label": "Early Exit Grace Period" + }, + { + "default": "60", + "description": "Time after the end of shift during which check-out is considered for attendance.", + "fieldname": "allow_check_out_after_shift_end_time", + "fieldtype": "Int", + "label": "Allow check-out after shift end time (in minutes)" + }, + { + "depends_on": "enable_auto_attendance", + "fieldname": "auto_attendance_settings_section", + "fieldtype": "Section Break", + "label": "Auto Attendance Settings" + }, + { + "depends_on": "enable_auto_attendance", + "fieldname": "grace_period_settings_auto_attendance_section", + "fieldtype": "Section Break", + "label": "Late Entry & Early Exit Settings for Auto Attendance" + }, + { + "default": "0", + "description": "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift.", + "fieldname": "enable_auto_attendance", + "fieldtype": "Check", + "label": "Enable Auto Attendance" + }, + { + "default": "Today", + "description": "Attendance will be marked automatically only after this date.", + "fieldname": "process_attendance_after", + "fieldtype": "Date", + "label": "Process Attendance After", + "mandatory_depends_on": "enable_auto_attendance" + }, + { + "description": "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure.", + "fieldname": "last_sync_of_checkin", + "fieldtype": "Datetime", + "label": "Last Sync of Checkin", + "read_only_depends_on": "auto_update_last_sync" + }, + { + "default": "0", + "description": "If enabled, auto attendance will be marked on holidays if Employee Checkins exist", + "fieldname": "mark_auto_attendance_on_holidays", + "fieldtype": "Check", + "label": "Mark Auto Attendance on Holidays" + }, + { + "default": "0", + "fieldname": "enable_late_entry_marking", + "fieldtype": "Check", + "label": "Enable Late Entry Marking" + }, + { + "default": "0", + "fieldname": "enable_early_exit_marking", + "fieldtype": "Check", + "label": "Enable Early Exit Marking" + }, + { + "default": "Blue", + "fieldname": "color", + "fieldtype": "Select", + "label": "Roster Color", + "options": "Blue\nCyan\nFuchsia\nGreen\nLime\nOrange\nPink\nRed\nViolet\nYellow" + }, + { + "default": "0", + "description": "Recommended for a single biometric device / checkins via mobile app", + "fieldname": "auto_update_last_sync", + "fieldtype": "Check", + "label": "Automatically update Last Sync of Checkin" + }, + { + "fieldname": "overtime_section", + "fieldtype": "Section Break", + "label": "Overtime" + }, + { + "default": "0", + "fieldname": "allow_overtime", + "fieldtype": "Check", + "label": "Allow Overtime" + }, + { + "depends_on": "eval:doc.allow_overtime == 1", + "fieldname": "overtime_type", + "fieldtype": "Link", + "label": "Overtime Type", + "mandatory_depends_on": "eval:doc.allow_overtime == 1", + "options": "Overtime Type" + } + ], + "links": [], + "modified": "2025-12-16 16:32:49.169920", + "modified_by": "Administrator", + "module": "HR", + "name": "Shift Type", + "naming_rule": "Set by user", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type.py new file mode 100644 index 000000000..f6349fba4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type.py @@ -0,0 +1,465 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from datetime import datetime, timedelta +from itertools import groupby + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import ( + add_days, + cint, + create_batch, + flt, + get_datetime, + get_link_to_form, + get_time, + getdate, + time_diff, +) + +from erpnext.setup.doctype.employee.employee import get_holiday_list_for_employee +from erpnext.setup.doctype.holiday_list.holiday_list import is_half_holiday, is_holiday + +from hrms.hr.doctype.attendance.attendance import mark_attendance +from hrms.hr.doctype.employee_checkin.employee_checkin import ( + calculate_working_hours, + mark_attendance_and_link_log, +) +from hrms.hr.doctype.shift_assignment.shift_assignment import get_employee_shift, get_shift_details +from hrms.utils import get_date_range +from hrms.utils.holiday_list import get_holiday_dates_between + +EMPLOYEE_CHUNK_SIZE = 50 + + +class ShiftType(Document): + def validate(self): + start = get_time(self.start_time) + end = get_time(self.end_time) + self.validate_same_start_and_end(start, end) + self.validate_circular_shift(start, end) + self.validate_unlinked_logs() + + def validate_same_start_and_end(self, start_time: datetime.time, end_time: datetime.time): + if start_time == end_time: + frappe.throw( + title=_("Invalid Shift Times"), + msg=_("Start time and end time cannot be same."), + ) + + def validate_circular_shift(self, start_time: datetime.time, end_time: datetime.time): + shift_start, shift_end = self.get_shift_start_and_shift_end(start_time, end_time) + if self.get_total_shift_duration_in_minutes(shift_start, shift_end) >= 1440: + max_label = self.get_max_shift_buffer_label() + frappe.throw( + title=_("Invalid Shift Times"), + msg=_("Please reduce {0} to avoid shift time overlapping with itself").format( + frappe.bold(max_label) + ), + ) + + def get_shift_start_and_shift_end( + self, start_time: datetime.time, end_time: datetime.time + ) -> tuple[datetime]: + shift_start = datetime.combine(getdate(), start_time) + if start_time < end_time: + shift_end = datetime.combine(getdate(), end_time) + elif start_time > end_time: + shift_end = datetime.combine(add_days(getdate(), 1), end_time) + return shift_start, shift_end + + def get_total_shift_duration_in_minutes( + self, shift_start: datetime.time, shift_end: datetime.time + ) -> int: + return ( + (round(time_diff(shift_end, shift_start).total_seconds() / 60)) + + (self.allow_check_out_after_shift_end_time or 0) + + (self.begin_check_in_before_shift_start_time or 0) + ) + + def get_max_shift_buffer_label(self) -> str: + labels = { + _( + self.meta.get_label("allow_check_out_after_shift_end_time") + ): self.allow_check_out_after_shift_end_time, + _( + self.meta.get_label("begin_check_in_before_shift_start_time") + ): self.begin_check_in_before_shift_start_time, + } + return max(labels, key=labels.get) + + def validate_unlinked_logs(self): + if self.is_field_modified("start_time") and self.unlinked_checkins_exist(): + frappe.throw( + title=_("Unmarked Check-in Logs Found"), + msg=_("Mark attendance for existing check-in/out logs before changing shift settings"), + ) + + def is_field_modified(self, fieldname): + return not self.is_new() and self.has_value_changed(fieldname) + + def unlinked_checkins_exist(self): + return frappe.db.exists( + "Employee Checkin", + {"shift": self.name, "attendance": ["is", "not set"], "skip_auto_attendance": 0, "offshift": 0}, + ) + + @frappe.whitelist() + def process_auto_attendance(self, is_manually_triggered=False): + if self.has_incorrect_shift_config(): + return + + logs = self.get_employee_checkins() + if is_manually_triggered: + if len(logs) > 1000 or frappe.flags.test_bg_job: + job_id = "process_auto_attendance_" + self.name + job = frappe.enqueue(self._process, logs=logs, timeout=1200, job_id=job_id, deduplicate=True) + return f"Attendance marking has been queued. It may take a few minutes. You can monitor the job status {get_link_to_form('RQ Job',job.id,label='here')}" + else: + try: + self._process(logs) + return "Attendance has been marked as per employee check-ins." + except Exception as e: + error_log = frappe.log_error(e) + return f"An error occured during marking attendance. Refer the full error log {get_link_to_form('Error Log',error_log.name,label='here')}" + else: + self._process(logs) + + def has_incorrect_shift_config(self): + return ( + not cint(self.enable_auto_attendance) + or not self.process_attendance_after + or not self.last_sync_of_checkin + ) + + def _process(self, logs): + group_key = lambda x: (x["employee"], x["shift_start"]) # noqa + for key, group in groupby(sorted(logs, key=group_key), key=group_key): + single_shift_logs = list(group) + attendance_date = key[1].date() + employee = key[0] + + if not self.should_mark_attendance(employee, attendance_date): + continue + + working_hours_threshold_for_half_day = flt(self.working_hours_threshold_for_half_day) + working_hours_threshold_for_absent = flt(self.working_hours_threshold_for_absent) + + if self.is_half_holiday(employee, attendance_date): + working_hours_threshold_for_half_day = flt(self.working_hours_threshold_for_half_day) / 2 + working_hours_threshold_for_absent = flt(self.working_hours_threshold_for_absent) / 2 + + overtime_type = single_shift_logs[0].get("overtime_type") + ( + attendance_status, + working_hours, + late_entry, + early_exit, + in_time, + out_time, + ) = self.get_attendance( + single_shift_logs, working_hours_threshold_for_absent, working_hours_threshold_for_half_day + ) + + mark_attendance_and_link_log( + single_shift_logs, + attendance_status, + attendance_date, + working_hours, + late_entry, + early_exit, + in_time, + out_time, + self.name, + overtime_type, + ) + + # commit after processing checkin logs to avoid losing progress + frappe.db.commit() # nosemgrep + + assigned_employees = self.get_assigned_employees(self.process_attendance_after, True) + # mark absent in batches & commit to avoid losing progress since this tries to process remaining attendance + # right from "Process Attendance After" to "Last Sync of Checkin" + for batch in create_batch(assigned_employees, EMPLOYEE_CHUNK_SIZE): + for employee in batch: + self.mark_absent_for_dates_with_no_attendance(employee) + self.mark_absent_for_half_day_dates(employee) + + frappe.db.commit() # nosemgrep + + def is_half_holiday(self, employee, attendance_date): + holiday_list = self.get_holiday_list(employee, attendance_date) + if is_half_holiday(holiday_list, attendance_date): + return True + return False + + def get_employee_checkins(self) -> list[dict]: + return frappe.get_all( + "Employee Checkin", + fields=[ + "name", + "employee", + "log_type", + "time", + "shift", + "shift_start", + "shift_end", + "shift_actual_start", + "shift_actual_end", + "device_id", + "overtime_type", + ], + filters={ + "skip_auto_attendance": 0, + "attendance": ("is", "not set"), + "time": (">=", self.process_attendance_after), + "shift_actual_end": ("<", self.last_sync_of_checkin), + "shift": self.name, + "offshift": 0, + }, + order_by="employee,time", + ) + + def get_attendance(self, logs, working_hours_threshold_for_absent, working_hours_threshold_for_half_day): + """Return attendance_status, working_hours, late_entry, early_exit, in_time, out_time + for a set of logs belonging to a single shift. + Assumptions: + 1. These logs belongs to a single shift, single employee and it's not in a holiday date. + 2. Logs are in chronological order + """ + late_entry = early_exit = False + total_working_hours, in_time, out_time = calculate_working_hours( + logs, self.determine_check_in_and_check_out, self.working_hours_calculation_based_on + ) + if ( + cint(self.enable_late_entry_marking) + and in_time + and in_time > logs[0].shift_start + timedelta(minutes=cint(self.late_entry_grace_period)) + ): + late_entry = True + + if ( + cint(self.enable_early_exit_marking) + and out_time + and out_time < logs[0].shift_end - timedelta(minutes=cint(self.early_exit_grace_period)) + ): + early_exit = True + + if working_hours_threshold_for_absent and total_working_hours < working_hours_threshold_for_absent: + return "Absent", total_working_hours, late_entry, early_exit, in_time, out_time + + if ( + working_hours_threshold_for_half_day + and total_working_hours < working_hours_threshold_for_half_day + ): + return "Half Day", total_working_hours, late_entry, early_exit, in_time, out_time + + return "Present", total_working_hours, late_entry, early_exit, in_time, out_time + + def mark_absent_for_dates_with_no_attendance(self, employee: str): + """Marks Absents for the given employee on working days in this shift that have no attendance marked. + The Absent status is marked starting from 'process_attendance_after' or employee creation date. + """ + start_time = get_time(self.start_time) + dates = self.get_dates_for_attendance(employee) + + for date in dates: + timestamp = datetime.combine(date, start_time) + shift_details = get_employee_shift(employee, timestamp, True) + + if shift_details and shift_details.shift_type.name == self.name: + attendance = mark_attendance(employee, date, "Absent", self.name) + + if not attendance: + continue + + frappe.get_doc( + { + "doctype": "Comment", + "comment_type": "Comment", + "reference_doctype": "Attendance", + "reference_name": attendance, + "content": frappe._("Employee was marked Absent due to missing Employee Checkins."), + } + ).insert(ignore_permissions=True) + + def get_dates_for_attendance(self, employee: str) -> list[str]: + start_date, end_date = self.get_start_and_end_dates(employee) + + # no shift assignment found, no need to process absent attendance records + if start_date is None: + return [] + + date_range = get_date_range(start_date, end_date) + + # skip marking absent on holidays + holiday_list = self.get_holiday_list(employee) + holiday_dates = get_holiday_dates_between(holiday_list, start_date, end_date) + # skip dates with attendance + marked_attendance_dates = self.get_marked_attendance_dates_between(employee, start_date, end_date) + + return sorted(set(date_range) - set(holiday_dates) - set(marked_attendance_dates)) + + def get_start_and_end_dates(self, employee): + """Returns start and end dates for checking attendance and marking absent + return: start date = max of `process_attendance_after` and DOJ + return: end date = min of shift before `last_sync_of_checkin` and Relieving Date + """ + date_of_joining, relieving_date, employee_creation = frappe.get_cached_value( + "Employee", employee, ["date_of_joining", "relieving_date", "creation"] + ) + + if not date_of_joining: + date_of_joining = employee_creation.date() + + start_date = max(getdate(self.process_attendance_after), date_of_joining) + end_date = None + + shift_details = get_shift_details(self.name, get_datetime(self.last_sync_of_checkin)) + last_shift_time = ( + shift_details.actual_end if shift_details else get_datetime(self.last_sync_of_checkin) + ) + + # check if shift is found for 1 day before the last sync of checkin + # absentees are auto-marked 1 day after the shift to wait for any manual attendance records + prev_shift = get_employee_shift(employee, last_shift_time - timedelta(days=1), True, "reverse") + if prev_shift and prev_shift.shift_type.name == self.name: + end_date = ( + min(prev_shift.start_datetime.date(), relieving_date) + if relieving_date + else prev_shift.start_datetime.date() + ) + else: + # no shift found + return None, None + return start_date, end_date + + def get_marked_attendance_dates_between(self, employee: str, start_date: str, end_date: str) -> list[str]: + Attendance = frappe.qb.DocType("Attendance") + return ( + frappe.qb.from_(Attendance) + .select(Attendance.attendance_date) + .where( + (Attendance.employee == employee) + & (Attendance.docstatus < 2) + & (Attendance.attendance_date.between(start_date, end_date)) + & ((Attendance.shift.isnull()) | (Attendance.shift == self.name)) + ) + ).run(pluck=True) + + def get_assigned_employees(self, from_date: datetime.date, consider_default_shift=False) -> list[str]: + """Get all such employees who either have this shift assigned that hasn't ended or have this shift as default shift. + This may fetch some redundant employees who have another shift assigned that may have started or ended before or after the + attendance processing date. But this is done to avoid missing any employee who may have this shift as active shift.""" + filters = {"shift_type": self.name, "docstatus": "1", "status": "Active"} + + or_filters = [["end_date", ">=", from_date], ["end_date", "is", "not set"]] + + assigned_employees = frappe.get_all( + "Shift Assignment", filters=filters, or_filters=or_filters, pluck="employee" + ) + + if consider_default_shift: + default_shift_employees = frappe.get_all( + "Employee", filters={"default_shift": self.name, "status": "Active"}, pluck="name" + ) + assigned_employees = set(assigned_employees + default_shift_employees) + + # exclude inactive employees + inactive_employees = frappe.db.get_all("Employee", {"status": "Inactive"}, pluck="name") + + return list(set(assigned_employees) - set(inactive_employees)) + + def get_holiday_list(self, employee: str, date=None) -> str: + holiday_list_name = self.holiday_list or get_holiday_list_for_employee(employee, False, as_on=date) + return holiday_list_name + + def should_mark_attendance(self, employee: str, attendance_date: str) -> bool: + """Determines whether attendance should be marked on holidays or not""" + if self.mark_auto_attendance_on_holidays: + # no need to check if date is a holiday or not + # since attendance should be marked on all days + return True + + holiday_list = self.get_holiday_list(employee, attendance_date) + if is_holiday(holiday_list, attendance_date): + return False + return True + + def mark_absent_for_half_day_dates(self, employee): + half_day_attendances = frappe.get_all( + "Attendance", + filters={ + "employee": employee, + "status": "Half Day", + "modify_half_day_status": 1, + "attendance_date": ["<=", getdate(self.last_sync_of_checkin)], + }, + fields=["name", "attendance_date"], + ) + start_time = get_time(self.start_time) + for attendance in half_day_attendances: + timestamp = datetime.combine(attendance.attendance_date, start_time) + shift_details = get_employee_shift(employee, timestamp, True) + if shift_details and shift_details.shift_type.name == self.name: + frappe.db.set_value( + "Attendance", + attendance.name, + {"shift": self.name, "half_day_status": "Absent", "modify_half_day_status": 0}, + ) + frappe.get_doc( + { + "doctype": "Comment", + "comment_type": "Comment", + "reference_doctype": "Attendance", + "reference_name": attendance.name, + "content": frappe._( + "Employee was marked Absent for other half due to missing Employee Checkins." + ), + } + ).insert(ignore_permissions=True) + + +def update_last_sync_of_checkin(): + """Called from hooks""" + shifts = frappe.get_all( + "Shift Type", + filters={"enable_auto_attendance": 1, "auto_update_last_sync": 1}, + fields=["name", "last_sync_of_checkin", "start_time", "end_time"], + ) + current_datetime = frappe.flags.current_datetime or get_datetime() + for shift in shifts: + shift_end = get_actual_shift_end(shift, current_datetime) + update_last_sync = None + if shift.last_sync_of_checkin: + if get_datetime(shift.last_sync_of_checkin) < shift_end < current_datetime: + update_last_sync = True + elif shift_end < current_datetime: + update_last_sync = True + if update_last_sync: + frappe.db.set_value( + "Shift Type", shift.name, "last_sync_of_checkin", shift_end + timedelta(minutes=1) + ) + + +def get_actual_shift_end(shift, current_datetime): + time_within_shift = datetime.combine(current_datetime.date(), get_time(shift.start_time)) + shift_details = get_shift_details(shift.name, time_within_shift) + actual_shift_start = shift_details["actual_start"] + actual_shift_end = shift_details["actual_end"] + + if (actual_shift_start.date() < actual_shift_end.date()) or (current_datetime < actual_shift_start): + # shift start and end are on different days + actual_shift_end = add_days(actual_shift_end, -1) + return actual_shift_end + + +def process_auto_attendance_for_all_shifts(): + """Called from hooks""" + shift_list = frappe.get_all("Shift Type", filters={"enable_auto_attendance": "1"}, pluck="name") + for shift in shift_list: + doc = frappe.get_cached_doc("Shift Type", shift) + doc.process_auto_attendance() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type_dashboard.py new file mode 100644 index 000000000..f4f15f445 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type_dashboard.py @@ -0,0 +1,6 @@ +def get_data(): + return { + "fieldname": "shift", + "non_standard_fieldnames": {"Shift Request": "shift_type", "Shift Assignment": "shift_type"}, + "transactions": [{"items": ["Attendance", "Employee Checkin", "Shift Request", "Shift Assignment"]}], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type_list.js b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type_list.js new file mode 100644 index 000000000..858108916 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/shift_type_list.js @@ -0,0 +1,3 @@ +frappe.listview_settings["Shift Type"] = { + onload: (list_view) => hrms.add_shift_tools_button_to_list(list_view), +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/test_records.json b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/test_records.json new file mode 100644 index 000000000..9040b915a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/test_records.json @@ -0,0 +1,8 @@ +[ + { + "doctype": "Shift Type", + "name": "Day Shift", + "start_time": "9:00:00", + "end_time": "18:00:00" + } +] diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/test_shift_type.py b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/test_shift_type.py new file mode 100644 index 000000000..7a251be92 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/shift_type/test_shift_type.py @@ -0,0 +1,1032 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt +from datetime import datetime, timedelta + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import ( + add_days, + get_datetime, + get_time, + get_year_ending, + get_year_start, + getdate, + now_datetime, +) + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import assign_holiday_list +from hrms.hr.doctype.leave_application.test_leave_application import get_first_sunday +from hrms.hr.doctype.shift_type.shift_type import update_last_sync_of_checkin +from hrms.payroll.doctype.salary_slip.test_salary_slip import make_holiday_list +from hrms.tests.test_utils import add_date_to_holiday_list + + +class TestShiftType(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Shift Type") + frappe.db.delete("Shift Assignment") + frappe.db.delete("Employee Checkin") + frappe.db.delete("Attendance") + + from_date = get_year_start(getdate()) + to_date = get_year_ending(getdate()) + self.holiday_list = make_holiday_list(from_date=from_date, to_date=to_date) + make_holiday_list("_Test Half Day", from_date=from_date, to_date=to_date) + + def test_auto_update_last_sync_of_checkin_for_single_day_shift(self): + shift_type = setup_shift_type() + shift_type.last_sync_of_checkin = None + shift_type.auto_update_last_sync = 1 + shift_type.save() + + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + date = getdate() + make_shift_assignment(shift_type.name, employee, date) + + # case 1: last sync updates from none to shift end after the shift end time + frappe.flags.current_datetime = datetime.combine(getdate(), get_time("14:00:00")) + update_last_sync_of_checkin() + shift_type.reload() + # last sync should be updated to 13:00:00 + self.assertEqual(shift_type.last_sync_of_checkin, datetime.combine(getdate(), get_time("13:01:00"))) + + # case 2: last sync doesn't update in the middle of the shift + frappe.flags.current_datetime = add_days(datetime.combine(getdate(), get_time("12:00:00")), 1) + update_last_sync_of_checkin() + shift_type.reload() + self.assertEqual(shift_type.last_sync_of_checkin, datetime.combine(getdate(), get_time("13:01:00"))) + + def test_auto_update_last_sync_of_checkin_for_shifts_spanning_two_days_due_to_buffer(self): + shift_type = setup_shift_type( + shift_type="_Test Extra Buffer Shift", + start_time="11:00:00", + end_time="19:00:00", + allow_check_out_after_shift_end_time=360, + ) + shift_type.last_sync_of_checkin = None + shift_type.auto_update_last_sync = 1 + shift_type.save() + + employee = make_employee("test_employee_checkin3@example.com", company="_Test Company") + date = add_days(getdate(), -4) + make_shift_assignment(shift_type.name, employee, date) + + # case 1: last sync updates from none to shift end after the shift end time + frappe.flags.current_datetime = datetime.combine(getdate(), get_time("02:00:00")) + update_last_sync_of_checkin() + shift_type.reload() + # last sync should be updated to 01:01:00 + self.assertEqual(shift_type.last_sync_of_checkin, datetime.combine(getdate(), get_time("01:01:00"))) + + # case 2: last sync doesn't update in the middle of the shift + frappe.flags.current_datetime = datetime.combine(getdate(), get_time("19:00:00")) + update_last_sync_of_checkin() + shift_type.reload() + self.assertEqual(shift_type.last_sync_of_checkin, datetime.combine(getdate(), get_time("01:01:00"))) + + def test_auto_update_last_sync_of_checkin_for_two_day_shift(self): + shift_type = setup_shift_type( + shift_type="_Test Night Shift", start_time="22:00:00", end_time="06:00:00" + ) + shift_type.last_sync_of_checkin = None + shift_type.auto_update_last_sync = 1 + shift_type.save() + + employee = make_employee("test_employee_checkin2@example.com", company="_Test Company") + date = add_days(getdate(), -4) + make_shift_assignment(shift_type.name, employee, date) + + # case 1: last sync updates from none to shift end after the shift end time + frappe.flags.current_datetime = datetime.combine(getdate(), get_time("08:00:00")) + update_last_sync_of_checkin() + shift_type.reload() + # last sync should be updated to 07:01:00 + self.assertEqual(shift_type.last_sync_of_checkin, datetime.combine(getdate(), get_time("07:01:00"))) + + # case 2: last sync doesn't update in the middle of the shift + frappe.flags.current_datetime = add_days(datetime.combine(getdate(), get_time("01:00:00")), 1) + update_last_sync_of_checkin() + shift_type.reload() + self.assertEqual(shift_type.last_sync_of_checkin, datetime.combine(getdate(), get_time("07:01:00"))) + + def test_auto_update_last_sync_of_checkin_when_when_job_runs_on_the_next_day(self): + shift_type = setup_shift_type(shift_type="Test Long Shift", start_time="9:00:00", end_time="18:00:00") + shift_type.allow_check_out_after_shift_end_time = 330 + shift_type.last_sync_of_checkin = None + shift_type.auto_update_last_sync = 1 + shift_type.save() + + frappe.flags.current_datetime = datetime.combine(add_days(getdate(), 1), get_time("00:01:00")) + update_last_sync_of_checkin() + + shift_type.reload() + + self.assertEqual(shift_type.last_sync_of_checkin, datetime.combine(getdate(), get_time("23:31:00"))) + + def test_mark_attendance(self): + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + + shift_type = setup_shift_type() + date = getdate() + make_shift_assignment(shift_type.name, employee, date) + + timestamp = datetime.combine(date, get_time("08:00:00")) + log_in = make_checkin(employee, timestamp) + self.assertEqual(log_in.shift, shift_type.name) + + timestamp = datetime.combine(date, get_time("12:00:00")) + log_out = make_checkin(employee, timestamp) + self.assertEqual(log_out.shift, shift_type.name) + + shift_type.process_auto_attendance() + + attendance = frappe.db.get_value( + "Attendance", {"employee": employee, "shift": shift_type.name}, "status" + ) + self.assertEqual(attendance, "Present") + + def test_mark_attendance_with_different_shift_start_time(self): + """Tests whether attendance is marked correctly if shift configuration is changed midway""" + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + + shift_type = setup_shift_type(shift_type="Test Shift Start") + date = getdate() + make_shift_assignment(shift_type.name, employee, date) + + timestamp = datetime.combine(date, get_time("08:00:00")) + # log in + make_checkin(employee, timestamp) + + # change config before adding OUT log + shift_type.begin_check_in_before_shift_start_time = 120 + shift_type.save() + + timestamp = datetime.combine(date, get_time("12:00:00")) + # log out + make_checkin(employee, timestamp) + + shift_type.process_auto_attendance() + + attendance = frappe.db.get_value( + "Attendance", {"employee": employee, "shift": shift_type.name}, "status" + ) + self.assertEqual(attendance, "Present") + + def test_attendance_date_for_different_start_and_actual_start_date(self): + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + shift_type = setup_shift_type(shift_type="Midnight Shift", start_time="00:30:00", end_time="10:00:00") + + date = getdate() + make_shift_assignment(shift_type.name, employee, date, date) + + timestamp = datetime.combine(date, get_time("00:30:00")) + # log in + make_checkin(employee, timestamp) + + timestamp = datetime.combine(date, get_time("10:00:00")) + # log out + make_checkin(employee, timestamp) + + shift_type.process_auto_attendance() + + # even though actual start time starts on the prev date, + # attendance date should be the current date (start date of the shift) + attendance = frappe.db.get_value( + "Attendance", + {"shift": shift_type.name}, + ["attendance_date", "status"], + as_dict=True, + ) + self.assertEqual(attendance.status, "Present") + self.assertEqual(attendance.attendance_date, date) + + def test_entry_and_exit_grace(self): + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + + # doesn't mark late entry until 60 mins after shift start i.e. till 9 + # doesn't mark late entry until 60 mins before shift end i.e. 11 + shift_type = setup_shift_type( + enable_late_entry_marking=1, + enable_early_exit_marking=1, + late_entry_grace_period=60, + early_exit_grace_period=60, + ) + date = getdate() + make_shift_assignment(shift_type.name, employee, date) + + timestamp = datetime.combine(date, get_time("09:30:00")) + log_in = make_checkin(employee, timestamp) + self.assertEqual(log_in.shift, shift_type.name) + + timestamp = datetime.combine(date, get_time("10:30:00")) + log_out = make_checkin(employee, timestamp) + self.assertEqual(log_out.shift, shift_type.name) + + shift_type.process_auto_attendance() + + attendance = frappe.db.get_value( + "Attendance", + {"shift": shift_type.name, "employee": employee}, + ["status", "name", "late_entry", "early_exit"], + as_dict=True, + ) + self.assertEqual(attendance.status, "Present") + self.assertEqual(attendance.late_entry, 1) + self.assertEqual(attendance.early_exit, 1) + + def test_working_hours_threshold_for_half_day(self): + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + shift_type = setup_shift_type(shift_type="Half Day Test", working_hours_threshold_for_half_day=2) + date = getdate() + make_shift_assignment(shift_type.name, employee, date) + + timestamp = datetime.combine(date, get_time("08:00:00")) + log_in = make_checkin(employee, timestamp) + self.assertEqual(log_in.shift, shift_type.name) + + timestamp = datetime.combine(date, get_time("09:30:00")) + log_out = make_checkin(employee, timestamp) + self.assertEqual(log_out.shift, shift_type.name) + + shift_type.process_auto_attendance() + + attendance = frappe.db.get_value( + "Attendance", {"shift": shift_type.name}, ["status", "working_hours"], as_dict=True + ) + self.assertEqual(attendance.status, "Half Day") + self.assertEqual(attendance.working_hours, 1.5) + + def test_working_hours_threshold_for_absent(self): + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + shift_type = setup_shift_type(shift_type="Absent Test", working_hours_threshold_for_absent=2) + date = getdate() + make_shift_assignment(shift_type.name, employee, date) + + timestamp = datetime.combine(date, get_time("08:00:00")) + log_in = make_checkin(employee, timestamp) + self.assertEqual(log_in.shift, shift_type.name) + + timestamp = datetime.combine(date, get_time("09:30:00")) + log_out = make_checkin(employee, timestamp) + self.assertEqual(log_out.shift, shift_type.name) + + shift_type.process_auto_attendance() + + attendance = frappe.db.get_value( + "Attendance", {"shift": shift_type.name}, ["status", "working_hours"], as_dict=True + ) + self.assertEqual(attendance.status, "Absent") + self.assertEqual(attendance.working_hours, 1.5) + + def test_working_hours_threshold_for_absent_and_half_day_1(self): + # considers half day over absent + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + shift_type = setup_shift_type( + shift_type="Half Day + Absent Test", + working_hours_threshold_for_half_day=2, + working_hours_threshold_for_absent=1, + ) + date = getdate() + make_shift_assignment(shift_type.name, employee, date) + + timestamp = datetime.combine(date, get_time("08:00:00")) + log_in = make_checkin(employee, timestamp) + self.assertEqual(log_in.shift, shift_type.name) + + timestamp = datetime.combine(date, get_time("09:30:00")) + log_out = make_checkin(employee, timestamp) + self.assertEqual(log_out.shift, shift_type.name) + + shift_type.process_auto_attendance() + + attendance = frappe.db.get_value( + "Attendance", {"shift": shift_type.name}, ["status", "working_hours"], as_dict=True + ) + self.assertEqual(attendance.status, "Half Day") + self.assertEqual(attendance.working_hours, 1.5) + + def test_working_hours_threshold_for_absent_and_half_day_2(self): + # considers absent over half day + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + shift_type = setup_shift_type( + shift_type="Half Day + Absent Test", + working_hours_threshold_for_half_day=2, + working_hours_threshold_for_absent=1, + ) + date = getdate() + make_shift_assignment(shift_type.name, employee, date) + + timestamp = datetime.combine(date, get_time("08:00:00")) + log_in = make_checkin(employee, timestamp) + self.assertEqual(log_in.shift, shift_type.name) + + timestamp = datetime.combine(date, get_time("08:45:00")) + log_out = make_checkin(employee, timestamp) + self.assertEqual(log_out.shift, shift_type.name) + + shift_type.process_auto_attendance() + + attendance = frappe.db.get_value("Attendance", {"shift": shift_type.name}, "status") + self.assertEqual(attendance, "Absent") + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_mark_auto_attendance_on_holiday_enabled(self): + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + # add current date as holiday + date = getdate() + add_date_to_holiday_list(date, self.holiday_list) + + shift_type = setup_shift_type(shift_type="Test Holiday Shift", mark_auto_attendance_on_holidays=True) + shift_type.holiday_list = None + shift_type.save() + + employee = make_employee( + "test_shift_with_holiday@example.com", default_shift=shift_type.name, company="_Test Company" + ) + + # make logs + timestamp = datetime.combine(date, get_time("08:00:00")) + make_checkin(employee, timestamp) + timestamp = datetime.combine(date, get_time("12:00:00")) + make_checkin(employee, timestamp) + + shift_type.process_auto_attendance() + + attendance = frappe.db.get_value( + "Attendance", {"employee": employee, "attendance_date": date}, "status" + ) + self.assertEqual(attendance, "Present") + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_mark_auto_attendance_on_holiday_disabled(self): + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + # add current date as holiday + date = getdate() + add_date_to_holiday_list(date, self.holiday_list) + + shift_type = setup_shift_type(shift_type="Test Holiday Shift", mark_auto_attendance_on_holidays=False) + shift_type.holiday_list = None + shift_type.save() + + employee = make_employee( + "test_shift_with_holiday@example.com", default_shift=shift_type.name, company="_Test Company" + ) + + # make logs + timestamp = datetime.combine(date, get_time("08:00:00")) + make_checkin(employee, timestamp) + timestamp = datetime.combine(date, get_time("12:00:00")) + make_checkin(employee, timestamp) + + shift_type.process_auto_attendance() + + attendance = frappe.db.get_value( + "Attendance", {"employee": employee, "attendance_date": date}, "status" + ) + self.assertIsNone(attendance) + + def test_mark_absent_for_dates_with_no_attendance(self): + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + today = getdate() + shift_type = setup_shift_type( + shift_type="Test Absent with no Attendance", + process_attendance_after=add_days(today, -6), + last_sync_of_checkin=f"{today} 15:00:00", + ) + # single day assignment + date1 = add_days(today, -5) + make_shift_assignment(shift_type.name, employee, date1, date1) + + # assignment without end date + date2 = add_days(today, -4) + make_shift_assignment(shift_type.name, employee, date2) + + shift_type.process_auto_attendance() + yesterday = add_days(today, -1) + + # absentees are auto-marked one day after shift actual end to wait for any manual attendance records + # so all days should be marked as absent except today + absent_records = frappe.get_all( + "Attendance", + { + "attendance_date": ["between", [date1, yesterday]], + "employee": employee, + "status": "Absent", + }, + ) + self.assertEqual(len(absent_records), 5) + todays_attendance = frappe.db.get_value( + "Attendance", {"attendance_date": today, "employee": employee} + ) + self.assertIsNone(todays_attendance) + + def test_mark_absent_for_dates_with_no_attendance_for_midnight_shift(self): + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + today = getdate() + shift_type = setup_shift_type( + shift_type="Test Absent with no Attendance", + start_time="15:00:00", + end_time="23:30:00", + process_attendance_after=add_days(today, -8), + allow_check_out_after_shift_end_time=120, + last_sync_of_checkin=f"{today} 15:00:00", + ) + # single day assignment + date1 = add_days(today, -7) + make_shift_assignment(shift_type.name, employee, date1, date1) + + # assignment after a gap + date2 = add_days(today, -5) + make_shift_assignment(shift_type.name, employee, date2, date2) + + # assignment without end date + date3 = add_days(today, -3) + make_shift_assignment(shift_type.name, employee, date3) + + shift_type.process_auto_attendance() + absent_records = frappe.get_all( + "Attendance", + fields=["name", "employee", "attendance_date", "status", "shift"], + filters={ + "attendance_date": ["between", [date1, today]], + "employee": employee, + "status": "Absent", + }, + ) + + self.assertEqual(len(absent_records), 5) + # absent for first assignment + self.assertEqual( + frappe.db.get_value( + "Attendance", + {"attendance_date": date1, "shift": shift_type.name, "employee": employee}, + "status", + ), + "Absent", + ) + # no attendance for day after first assignment + self.assertIsNone( + frappe.db.get_value( + "Attendance", + {"attendance_date": add_days(date1, 1), "shift": shift_type.name, "employee": employee}, + ) + ) + # absent for second assignment + self.assertEqual( + frappe.db.get_value( + "Attendance", + {"attendance_date": date2, "shift": shift_type.name, "employee": employee}, + "status", + ), + "Absent", + ) + # no attendance for day after second assignment + self.assertIsNone( + frappe.db.get_value( + "Attendance", + {"attendance_date": add_days(date2, 1), "shift": shift_type.name, "employee": employee}, + ) + ) + # absent for third assignment + self.assertEqual( + frappe.db.get_value( + "Attendance", + {"attendance_date": date3, "shift": shift_type.name, "employee": employee}, + "status", + ), + "Absent", + ) + self.assertEqual( + frappe.db.get_value( + "Attendance", + {"attendance_date": add_days(date3, 1), "shift": shift_type.name, "employee": employee}, + "status", + ), + "Absent", + ) + + def test_do_not_mark_absent_before_shift_actual_end_time(self): + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + today = getdate() + yesterday = add_days(today, -1) + + # shift 1 + shift_1 = setup_shift_type(shift_type="Morning", start_time="07:00:00", end_time="12:30:00") + make_shift_assignment(shift_1.name, employee, add_days(yesterday, -1), yesterday) + + # shift 2 + shift_2 = setup_shift_type(shift_type="Afternoon", start_time="09:30:00", end_time="18:00:00") + make_shift_assignment(shift_2.name, employee, today, add_days(today, 1)) + + # update last sync of checkin for shift 2 + shift_2.process_attendance_after = add_days(today, -2) + shift_2.last_sync_of_checkin = datetime.combine(today, get_time("09:01:00")) + shift_2.save() + shift_2.process_auto_attendance() + + self.assertIsNone(frappe.db.get_value("Attendance", {"attendance_date": today, "employee": employee})) + + def test_do_not_mark_absent_before_shift_actual_end_time_for_midnight_shift(self): + """ + Tests employee is not marked absent for a shift spanning 2 days + before its actual end time + """ + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + curr_date = getdate() + + # this shift's valid checkout period (+60 mins) will be till 00:30:00 today, so it goes beyond a day + shift_type = setup_shift_type(shift_type="Test Absent", start_time="15:00:00", end_time="23:30:00") + shift_type.last_sync_of_checkin = datetime.combine(curr_date, get_time("00:30:00")) + shift_type.save() + + # assign shift for yesterday, actual end time is today at 00:30:00 + prev_date = add_days(getdate(), -1) + make_shift_assignment(shift_type.name, employee, prev_date) + + # make logs + timestamp = datetime.combine(prev_date, get_time("15:00:00")) + make_checkin(employee, timestamp) + timestamp = datetime.combine(prev_date, get_time("23:30:00")) + make_checkin(employee, timestamp) + + # last sync of checkin is 00:30:00 and the checkin logs are not applicable for attendance yet + # so it should not mark the employee as absent either + shift_type.process_auto_attendance() + attendance = frappe.db.get_value( + "Attendance", {"attendance_date": prev_date, "employee": employee}, "status" + ) + self.assertIsNone(attendance) + + # update last sync + shift_type.last_sync_of_checkin = datetime.combine(curr_date, get_time("01:00:00")) + shift_type.save() + shift_type.process_auto_attendance() + # employee marked present considering checkins + attendance = frappe.db.get_value( + "Attendance", {"attendance_date": prev_date, "employee": employee}, "status" + ) + self.assertEqual(attendance, "Present") + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_skip_marking_absent_on_a_holiday(self): + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + shift_type = setup_shift_type(shift_type="Test Absent with no Attendance") + shift_type.holiday_list = None + shift_type.save() + + # should not mark any attendance if no shift assignment is created + shift_type.process_auto_attendance() + attendance = frappe.db.get_value("Attendance", {"employee": employee}, "status") + self.assertIsNone(attendance) + + first_sunday = get_first_sunday(self.holiday_list, for_date=getdate()) + make_shift_assignment(shift_type.name, employee, first_sunday) + + shift_type.process_auto_attendance() + + attendance = frappe.db.get_value( + "Attendance", + {"attendance_date": first_sunday, "employee": employee}, + ) + self.assertIsNone(attendance) + + def test_skip_absent_marking_for_a_fallback_default_shift(self): + """ + Tests if an employee is not marked absent for default shift + when they have a valid shift assignment of another type. + Assigned shift takes precedence over default shift + """ + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + default_shift = setup_shift_type() + employee = make_employee( + "test_employee_checkin_default@example.com", + company="_Test Company", + default_shift=default_shift.name, + ) + + assigned_shift = setup_shift_type(shift_type="Test Absent with no Attendance") + date = getdate() + make_shift_assignment(assigned_shift.name, employee, date) + + timestamp = datetime.combine(date, get_time("08:00:00")) + # log in + make_checkin(employee, timestamp) + + timestamp = datetime.combine(date, get_time("10:00:00")) + # log out + make_checkin(employee, timestamp) + + default_shift.process_auto_attendance() + attendance = frappe.db.get_value( + "Attendance", {"employee": employee, "shift": default_shift.name}, "status" + ) + self.assertIsNone(attendance) + + assigned_shift.process_auto_attendance() + attendance = frappe.db.get_value( + "Attendance", {"employee": employee, "shift": assigned_shift.name}, "status" + ) + self.assertEqual(attendance, "Present") + + def test_skip_absent_marking_for_inactive_employee(self): + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + shift = setup_shift_type() + employee = make_employee("test_inactive_employee@example.com", company="_Test Company") + date = getdate() + make_shift_assignment(shift.name, employee, date) + + # mark employee as Inactive + frappe.db.set_value("Employee", employee, "status", "Inactive") + + shift.process_auto_attendance() + attendance = frappe.db.get_value("Attendance", {"employee": employee}, "status") + self.assertIsNone(attendance) + + def test_get_start_and_end_dates(self): + date = getdate() + + doj = add_days(date, -30) + relieving_date = add_days(date, -5) + employee = make_employee( + "test_employee_dates@example.com", + company="_Test Company", + date_of_joining=doj, + relieving_date=relieving_date, + ) + shift_type = setup_shift_type( + shift_type="Test Absent with no Attendance", process_attendance_after=add_days(doj, 2) + ) + + make_shift_assignment(shift_type.name, employee, add_days(date, -25)) + + shift_type.process_auto_attendance() + + # should not mark absent before shift assignment/process attendance after date + attendance = frappe.db.get_value("Attendance", {"attendance_date": doj, "employee": employee}, "name") + self.assertIsNone(attendance) + + # mark absent on Relieving Date + attendance = frappe.db.get_value( + "Attendance", {"attendance_date": relieving_date, "employee": employee}, "status" + ) + self.assertEqual(attendance, "Absent") + + # should not mark absent after Relieving Date + attendance = frappe.db.get_value( + "Attendance", {"attendance_date": add_days(relieving_date, 1), "employee": employee}, "name" + ) + self.assertIsNone(attendance) + + def test_skip_auto_attendance_for_duplicate_record(self): + # Skip auto attendance in case of duplicate attendance record + from hrms.hr.doctype.attendance.attendance import mark_attendance + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + + shift_type = setup_shift_type() + date = getdate() + + # mark attendance + mark_attendance(employee, date, "Present") + make_shift_assignment(shift_type.name, employee, date) + + timestamp = datetime.combine(date, get_time("08:00:00")) + log_in = make_checkin(employee, timestamp) + self.assertEqual(log_in.shift, shift_type.name) + + timestamp = datetime.combine(date, get_time("12:00:00")) + log_out = make_checkin(employee, timestamp) + self.assertEqual(log_out.shift, shift_type.name) + + # auto attendance should skip marking + shift_type.process_auto_attendance() + + log_in.reload() + log_out.reload() + self.assertEqual(log_in.skip_auto_attendance, 1) + self.assertEqual(log_out.skip_auto_attendance, 1) + + def test_skip_auto_attendance_for_overlapping_shift(self): + # Skip auto attendance in case of overlapping shift attendance record + # this case won't occur in case of shift assignment, since it will not allow overlapping shifts to be assigned + # can happen if manual attendance records are created + from hrms.hr.doctype.attendance.attendance import mark_attendance + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + employee = make_employee("test_employee_checkin@example.com", company="_Test Company") + shift_1 = setup_shift_type(shift_type="Shift 1", start_time="08:00:00", end_time="10:00:00") + shift_2 = setup_shift_type(shift_type="Shift 2", start_time="09:30:00", end_time="11:00:00") + + date = getdate() + + # mark attendance + mark_attendance(employee, date, "Present", shift=shift_1.name) + make_shift_assignment(shift_2.name, employee, date) + + timestamp = datetime.combine(date, get_time("09:30:00")) + log_in = make_checkin(employee, timestamp) + self.assertEqual(log_in.shift, shift_2.name) + + timestamp = datetime.combine(date, get_time("11:00:00")) + log_out = make_checkin(employee, timestamp) + self.assertEqual(log_out.shift, shift_2.name) + + # auto attendance should be skipped for shift 2 + # since it is already marked for overlapping shift 1 + shift_2.process_auto_attendance() + + log_in.reload() + log_out.reload() + self.assertEqual(log_in.skip_auto_attendance, 1) + self.assertEqual(log_out.skip_auto_attendance, 1) + + def test_mark_attendance_for_default_shift_when_shift_assignment_is_not_overlapping(self): + shift_1 = setup_shift_type(shift_type="Deafult Shift", start_time="08:00:00", end_time="12:00:00") + shift_2 = setup_shift_type(shift_type="Not Default Shift", start_time="10:00:00", end_time="18:00:00") + employee = make_employee( + "test_employee_attendance@example.com", company="_Test Company", default_shift=shift_1.name + ) + shift_assigned_date = add_days(getdate(), +1) + make_shift_assignment(shift_2.name, employee, shift_assigned_date) + from hrms.hr.doctype.attendance.attendance import mark_attendance + + mark_attendance(employee, add_days(getdate(), -1), "Present", shift=shift_1.name) + shift_1.process_auto_attendance() + self.assertEqual( + frappe.db.get_value( + "Attendance", + {"employee": employee, "attendance_date": getdate(), "shift": shift_1.name}, + "status", + ), + "Absent", + ) + + def test_validation_for_unlinked_logs_before_changing_important_shift_configuration(self): + # the important shift configuration is start time, it is used to sort logs chronologically + shift = setup_shift_type(shift_type="Test Shift", start_time="10:00:00", end_time="18:00:00") + employee = make_employee( + "test_employee4_attendance@example.com", company="_Test Company", default_shift=shift.name + ) + + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + in_time = datetime.combine(getdate(), get_time("10:00:00")) + check_in = make_checkin(employee, in_time) + check_in.fetch_shift() + # Case 1: raise valdiation error if shift time is being changed and checkin logs exists + shift.start_time = get_time("10:15:00") + self.assertRaises(frappe.ValidationError, shift.save) + + # don't raise validation error if something else is being changed + # even if checkin logs exists, it's probably fine + shift.reload() + shift.begin_check_in_before_shift_start_time = 120 + shift.save() + self.assertEqual( + frappe.get_value("Shift Type", shift.name, "begin_check_in_before_shift_start_time"), 120 + ) + out_time = datetime.combine(getdate(), get_time("18:00:00")) + check_out = make_checkin(employee, out_time) + check_out.fetch_shift() + shift.process_auto_attendance() + + # Case 2: allow shift time to change if no unlinked logs exist + shift.start_time = get_time("10:15:00") + shift.save() + self.assertEqual( + get_time(frappe.get_value("Shift Type", shift.name, "start_time")), get_time("10:15:00") + ) + + def test_circular_shift_times(self): + # single day shift + shift_type = frappe.get_doc( + { + "doctype": "Shift Type", + "__newname": "Test Shift Validation", + "start_time": "09:00:00", + "end_time": "18:00:00", + "enable_auto_attendance": 1, + "determine_check_in_and_check_out": "Alternating entries as IN and OUT during the same shift", + "working_hours_calculation_based_on": "First Check-in and Last Check-out", + "begin_check_in_before_shift_start_time": 500, + "allow_check_out_after_shift_end_time": 500, + "process_attendance_after": add_days(getdate(), -2), + "last_sync_of_checkin": now_datetime() + timedelta(days=1), + } + ) + + self.assertRaises(frappe.ValidationError, shift_type.save) + + # two day shift + shift_type = frappe.get_doc( + { + "doctype": "Shift Type", + "__newname": "Test Shift Validation", + "start_time": "18:00:00", + "end_time": "03:00:00", + "enable_auto_attendance": 1, + "determine_check_in_and_check_out": "Alternating entries as IN and OUT during the same shift", + "working_hours_calculation_based_on": "First Check-in and Last Check-out", + "begin_check_in_before_shift_start_time": 500, + "allow_check_out_after_shift_end_time": 500, + "process_attendance_after": add_days(getdate(), -2), + "last_sync_of_checkin": now_datetime() + timedelta(days=1), + } + ) + self.assertRaises(frappe.ValidationError, shift_type.save) + + def test_bg_job_creation_for_large_checkins(self): + shift = setup_shift_type(shift_type="Test Shift", start_time="10:00:00", end_time="18:00:00") + frappe.flags.test_bg_job = True + shift.process_auto_attendance(is_manually_triggered=True) + job = frappe.get_all("RQ Job", {"job_id": f"process_auto_attendance_{shift.name}"}) + self.assertTrue(job) + + def test_precision_for_working_hours_threshold(self): + shift = setup_shift_type( + start_time="10:00:00", + end_time="18:00:00", + working_hours_threshold_for_half_day=4.75, + working_hours_threshold_for_absent=1.25, + ) + employee = make_employee( + "test_working_hours@example.com", company="_Test Company", default_shift=shift.name + ) + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + in_time = datetime.combine(getdate(), get_time("10:00:00")) + make_checkin(employee, in_time) + + # checked out before completing absent hours threshold + out_time = datetime.combine(getdate(), get_time("11:14:00")) + check_out = make_checkin(employee, out_time) + shift.process_auto_attendance() + attendance = frappe.get_doc( + "Attendance", {"employee": employee, "shift": shift.name, "attendance_date": getdate()} + ) + self.assertEqual(attendance.status, "Absent") + attendance.cancel() + + # barely passed absent hour threshold + check_out.time = datetime.combine(getdate(), get_time("11:15:00")) + check_out.save() + shift.process_auto_attendance() + attendance = frappe.get_doc( + "Attendance", {"employee": employee, "shift": shift.name, "attendance_date": getdate()} + ) + self.assertEqual(attendance.status, "Half Day") + self.assertEqual(attendance.working_hours, 1.25) + attendance.cancel() + + # barely passed half day hour threshold + check_out.time = datetime.combine(getdate(), get_time("14:45:00")) + check_out.save() + shift.process_auto_attendance() + attendance = frappe.get_doc( + "Attendance", {"employee": employee, "shift": shift.name, "attendance_date": getdate()} + ) + self.assertEqual(attendance.status, "Present") + self.assertEqual(attendance.working_hours, 4.75) + + def test_working_hours_threshold_for_half_day_holiday(self): + from hrms.hr.doctype.employee_checkin.test_employee_checkin import make_checkin + + shift = setup_shift_type( + start_time="10:00:00", + end_time="18:00:00", + working_hours_threshold_for_half_day=6, + working_hours_threshold_for_absent=3, + holiday_list="_Test Half Day", + ) + employee1 = make_employee( + "test_working_hours@example.com", company="_Test Company", default_shift=shift.name + ) + employee2 = make_employee( + "test_working_hours2@example.com", company="_Test Company", default_shift=shift.name + ) + employee3 = make_employee( + "test_working_hours3@example.com", company="_Test Company", default_shift=shift.name + ) + + add_date_to_holiday_list(getdate(), "_Test Half Day", is_half_day=1) + # employee1 worked for 4 hours which is full threshold on half day + make_checkin(employee1, datetime.combine(getdate(), get_time("10:00:00"))) + make_checkin(employee1, datetime.combine(getdate(), get_time("14:00:00"))) + + # employee2 worked for 2 hours less than half day's threshold on half day + make_checkin(employee2, datetime.combine(getdate(), get_time("10:00:00"))) + make_checkin(employee2, datetime.combine(getdate(), get_time("12:00:00"))) + + # employee3 worked for 1 hour, less than the threshold for absent on half day + make_checkin(employee3, datetime.combine(getdate(), get_time("10:00:00"))) + make_checkin(employee3, datetime.combine(getdate(), get_time("11:00:00"))) + + shift.process_auto_attendance() + attendance1 = frappe.get_doc( + "Attendance", {"employee": employee1, "shift": shift.name, "attendance_date": getdate()} + ) + self.assertEqual(attendance1.working_hours, 4.00) + self.assertEqual(attendance1.status, "Present") + + attendance2 = frappe.get_doc( + "Attendance", {"employee": employee2, "shift": shift.name, "attendance_date": getdate()} + ) + self.assertEqual(attendance2.working_hours, 2) + self.assertEqual(attendance2.status, "Half Day") + + attendance3 = frappe.get_doc( + "Attendance", {"employee": employee3, "shift": shift.name, "attendance_date": getdate()} + ) + self.assertEqual(attendance3.working_hours, 1) + self.assertEqual(attendance3.status, "Absent") + + +def setup_shift_type(**args): + args = frappe._dict(args) + date = getdate() + if not frappe.db.get_value("Shift Type", args.shift_type): + shift_type = frappe.get_doc( + { + "doctype": "Shift Type", + "__newname": args.shift_type or "_Test Shift", + "start_time": args.start_time or "08:00:00", + "end_time": args.end_time or "12:00:00", + "enable_auto_attendance": 1, + "determine_check_in_and_check_out": "Alternating entries as IN and OUT during the same shift", + "working_hours_calculation_based_on": "First Check-in and Last Check-out", + "begin_check_in_before_shift_start_time": args.begin_check_in_before_shift_start_time or 60, + "allow_check_out_after_shift_end_time": args.allow_check_out_after_shift_end_time or 60, + "process_attendance_after": add_days(date, -2), + "last_sync_of_checkin": args.last_sync_of_checkin or now_datetime() + timedelta(days=1), + "mark_auto_attendance_on_holidays": args.mark_auto_attendance_on_holidays or 0, + "allow_overtime": args.allow_overtime or 0, + "overtime_type": args.overtime_type or None, + } + ) + else: + shift_type = frappe.get_doc("Shift Type", args.shift_type) + + holiday_list = "Employee Checkin Test Holiday List" + if not frappe.db.exists("Holiday List", "Employee Checkin Test Holiday List"): + holiday_list = frappe.get_doc( + { + "doctype": "Holiday List", + "holiday_list_name": "Employee Checkin Test Holiday List", + "from_date": get_year_start(date), + "to_date": get_year_ending(date), + } + ).insert() + holiday_list = holiday_list.name + + shift_type.holiday_list = holiday_list + shift_type.update(args) + shift_type.save() + + return shift_type + + +def make_shift_assignment( + shift_type, employee, start_date, end_date=None, do_not_submit=False, shift_location=None +): + shift_assignment = frappe.get_doc( + { + "doctype": "Shift Assignment", + "shift_type": shift_type, + "company": "_Test Company", + "employee": employee, + "start_date": start_date, + "end_date": end_date, + "shift_location": shift_location, + } + ) + if not do_not_submit: + shift_assignment.submit() + + return shift_assignment diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/skill/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/skill/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/skill/skill.js b/apps/erpnext/src/hrms/hrms/hr/doctype/skill/skill.js new file mode 100644 index 000000000..7f87a7d62 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/skill/skill.js @@ -0,0 +1,7 @@ +// Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Skill", { + // refresh: function(frm) { + // } +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/skill/skill.json b/apps/erpnext/src/hrms/hrms/hr/doctype/skill/skill.json new file mode 100644 index 000000000..c7bde916f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/skill/skill.json @@ -0,0 +1,64 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:skill_name", + "creation": "2019-04-16 09:54:39.486915", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "skill_name", + "description" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "skill_name", + "fieldtype": "Data", + "label": "Skill Name", + "unique": 1 + }, + { + "allow_in_quick_entry": 1, + "fieldname": "description", + "fieldtype": "Text", + "label": "Description" + } + ], + "links": [], + "modified": "2024-03-27 13:10:42.663583", + "modified_by": "Administrator", + "module": "HR", + "name": "Skill", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "ASC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/skill/skill.py b/apps/erpnext/src/hrms/hrms/hr/doctype/skill/skill.py new file mode 100644 index 000000000..d26e7ca49 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/skill/skill.py @@ -0,0 +1,10 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class Skill(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/skill_assessment/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/skill_assessment/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/skill_assessment/skill_assessment.json b/apps/erpnext/src/hrms/hrms/hr/doctype/skill_assessment/skill_assessment.json new file mode 100644 index 000000000..b9f44e950 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/skill_assessment/skill_assessment.json @@ -0,0 +1,42 @@ +{ + "actions": [], + "creation": "2021-04-12 17:07:39.656289", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "skill", + "rating" + ], + "fields": [ + { + "fieldname": "skill", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Skill", + "options": "Skill", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "rating", + "fieldtype": "Rating", + "in_list_view": 1, + "label": "Rating", + "reqd": 1 + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2024-03-27 13:10:42.784554", + "modified_by": "Administrator", + "module": "HR", + "name": "Skill Assessment", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/skill_assessment/skill_assessment.py b/apps/erpnext/src/hrms/hrms/hr/doctype/skill_assessment/skill_assessment.py new file mode 100644 index 000000000..13775be6b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/skill_assessment/skill_assessment.py @@ -0,0 +1,10 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class SkillAssessment(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan.js b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan.js new file mode 100644 index 000000000..f41f883c6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan.js @@ -0,0 +1,149 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Staffing Plan", { + setup: function (frm) { + frm.set_query("designation", "staffing_details", function () { + let designations = []; + (frm.doc.staffing_details || []).forEach(function (staff_detail) { + if (staff_detail.designation) { + designations.push(staff_detail.designation); + } + }); + // Filter out designations already selected in Staffing Plan Detail + return { + filters: [["Designation", "name", "not in", designations]], + }; + }); + + frm.set_query("department", function () { + return { + filters: { + company: frm.doc.company, + }, + }; + }); + }, + + get_job_requisitions: function (frm) { + new frappe.ui.form.MultiSelectDialog({ + doctype: "Job Requisition", + target: frm, + date_field: "posting_date", + add_filters_group: 1, + setters: { + designation: null, + requested_by: null, + }, + get_query() { + let filters = { + company: frm.doc.company, + status: ["in", ["Pending", "Open & Approved"]], + }; + + if (frm.doc.department) filters.department = frm.doc.department; + + return { + filters: filters, + }; + }, + action(selections) { + const plan_name = frm.doc.__newname; + frappe + .call({ + method: "set_job_requisitions", + doc: frm.doc, + args: selections, + }) + .then(() => { + // hack to retain prompt name that gets lost on frappe.call + frm.doc.__newname = plan_name; + refresh_field("staffing_details"); + }); + + cur_dialog.hide(); + }, + }); + }, +}); + +frappe.ui.form.on("Staffing Plan Detail", { + designation: function (frm, cdt, cdn) { + let child = locals[cdt][cdn]; + if (frm.doc.company && child.designation) { + set_number_of_positions(frm, cdt, cdn); + } + }, + + vacancies: function (frm, cdt, cdn) { + let child = locals[cdt][cdn]; + if (child.vacancies < child.current_openings) { + frappe.throw(__("Vacancies cannot be lower than the current openings")); + } + set_number_of_positions(frm, cdt, cdn); + }, + + current_count: function (frm, cdt, cdn) { + set_number_of_positions(frm, cdt, cdn); + }, + + estimated_cost_per_position: function (frm, cdt, cdn) { + set_total_estimated_cost(frm, cdt, cdn); + }, +}); + +var set_number_of_positions = function (frm, cdt, cdn) { + let child = locals[cdt][cdn]; + if (!child.designation) frappe.throw(__("Please enter the designation")); + frappe.call({ + method: "hrms.hr.doctype.staffing_plan.staffing_plan.get_designation_counts", + args: { + designation: child.designation, + company: frm.doc.company, + }, + callback: function (data) { + if (data.message) { + frappe.model.set_value(cdt, cdn, "current_count", data.message.employee_count); + frappe.model.set_value(cdt, cdn, "current_openings", data.message.job_openings); + let total_positions = cint(data.message.employee_count) + cint(child.vacancies); + if (cint(child.number_of_positions) < total_positions) { + frappe.model.set_value(cdt, cdn, "number_of_positions", total_positions); + } + } else { + // No employees for this designation + frappe.model.set_value(cdt, cdn, "current_count", 0); + frappe.model.set_value(cdt, cdn, "current_openings", 0); + } + }, + }); + refresh_field("staffing_details"); + set_total_estimated_cost(frm, cdt, cdn); +}; + +// Note: Estimated Cost is calculated on number of Vacancies +var set_total_estimated_cost = function (frm, cdt, cdn) { + let child = locals[cdt][cdn]; + if (child.vacancies > 0 && child.estimated_cost_per_position) { + frappe.model.set_value( + cdt, + cdn, + "total_estimated_cost", + child.vacancies * child.estimated_cost_per_position, + ); + } else { + frappe.model.set_value(cdt, cdn, "total_estimated_cost", 0); + } + set_total_estimated_budget(frm); +}; + +var set_total_estimated_budget = function (frm) { + let estimated_budget = 0.0; + if (frm.doc.staffing_details) { + (frm.doc.staffing_details || []).forEach(function (staff_detail) { + if (staff_detail.total_estimated_cost) { + estimated_budget += staff_detail.total_estimated_cost; + } + }); + frm.set_value("total_estimated_budget", estimated_budget); + } +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan.json b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan.json new file mode 100644 index 000000000..d64b88a24 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan.json @@ -0,0 +1,133 @@ +{ + "actions": [], + "autoname": "prompt", + "creation": "2018-04-13 18:07:21.582747", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "company", + "department", + "column_break_3", + "from_date", + "to_date", + "staffing_plan_details", + "get_job_requisitions", + "staffing_details", + "section_break_8", + "total_estimated_budget", + "amended_from" + ], + "fields": [ + { + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "from_date", + "fieldtype": "Date", + "label": "From Date", + "reqd": 1 + }, + { + "fieldname": "to_date", + "fieldtype": "Date", + "label": "To Date", + "reqd": 1 + }, + { + "fieldname": "staffing_plan_details", + "fieldtype": "Section Break", + "label": "Details" + }, + { + "fieldname": "staffing_details", + "fieldtype": "Table", + "label": "Staffing Details", + "options": "Staffing Plan Detail", + "reqd": 1 + }, + { + "fieldname": "section_break_8", + "fieldtype": "Section Break" + }, + { + "default": "0.00", + "fieldname": "total_estimated_budget", + "fieldtype": "Currency", + "label": "Total Estimated Budget", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Staffing Plan", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "get_job_requisitions", + "fieldtype": "Button", + "label": "Get Job Requisitions" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:10:43.405514", + "modified_by": "Administrator", + "module": "HR", + "name": "Staffing Plan", + "naming_rule": "Set by user", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan.py b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan.py new file mode 100644 index 000000000..f01ae9513 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan.py @@ -0,0 +1,243 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import cint, flt, getdate, nowdate +from frappe.utils.nestedset import get_descendants_of + + +class SubsidiaryCompanyError(frappe.ValidationError): + pass + + +class ParentCompanyError(frappe.ValidationError): + pass + + +class StaffingPlan(Document): + def validate(self): + self.validate_period() + self.validate_details() + self.set_total_estimated_budget() + + def validate_period(self): + # Validate Dates + if self.from_date and self.to_date and self.from_date > self.to_date: + frappe.throw(_("From Date cannot be greater than To Date")) + + def validate_details(self): + for detail in self.get("staffing_details"): + self.validate_overlap(detail) + self.validate_with_subsidiary_plans(detail) + self.validate_with_parent_plan(detail) + + def set_total_estimated_budget(self): + self.total_estimated_budget = 0 + + for detail in self.get("staffing_details"): + # Set readonly fields + designation_counts = get_designation_counts(detail.designation, self.company) + detail.current_count = designation_counts["employee_count"] + detail.current_openings = designation_counts["job_openings"] + self.set_number_of_positions(detail) + detail.total_estimated_cost = 0 + if detail.number_of_positions > 0: + if detail.vacancies and detail.estimated_cost_per_position: + detail.total_estimated_cost = cint(detail.vacancies) * flt( + detail.estimated_cost_per_position + ) + + self.total_estimated_budget += detail.total_estimated_cost + + def set_number_of_positions(self, detail): + detail.number_of_positions = cint(detail.vacancies) + cint(detail.current_count) + + def validate_overlap(self, staffing_plan_detail): + # Validate if any submitted Staffing Plan exist for any Designations in this plan + # and spd.vacancies>0 ? + overlap = frappe.db.sql( + """select spd.parent + from `tabStaffing Plan Detail` spd join `tabStaffing Plan` sp on spd.parent=sp.name + where spd.designation=%s and sp.docstatus=1 + and sp.to_date >= %s and sp.from_date <= %s and sp.company = %s + """, + (staffing_plan_detail.designation, self.from_date, self.to_date, self.company), + ) + if overlap and overlap[0][0]: + frappe.throw( + _("Staffing Plan {0} already exist for designation {1}").format( + overlap[0][0], staffing_plan_detail.designation + ) + ) + + def validate_with_parent_plan(self, staffing_plan_detail): + if not frappe.get_cached_value("Company", self.company, "parent_company"): + return # No parent, nothing to validate + + # Get staffing plan applicable for the company (Parent Company) + parent_plan_details = get_active_staffing_plan_details( + self.company, staffing_plan_detail.designation, self.from_date, self.to_date + ) + if not parent_plan_details: + return # no staffing plan for any parent Company in hierarchy + + # Fetch parent company which owns the staffing plan. NOTE: Parent could be higher up in the hierarchy + parent_company = frappe.db.get_value("Staffing Plan", parent_plan_details[0].name, "company") + # Parent plan available, validate with parent, siblings as well as children of staffing plan Company + if cint(staffing_plan_detail.vacancies) > cint(parent_plan_details[0].vacancies) or flt( + staffing_plan_detail.total_estimated_cost + ) > flt(parent_plan_details[0].total_estimated_cost): + frappe.throw( + _( + "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." + ).format( + cint(parent_plan_details[0].vacancies), + parent_plan_details[0].total_estimated_cost, + frappe.bold(staffing_plan_detail.designation), + parent_plan_details[0].name, + parent_company, + ), + ParentCompanyError, + ) + + # Get vacanices already planned for all companies down the hierarchy of Parent Company + lft, rgt = frappe.get_cached_value("Company", parent_company, ["lft", "rgt"]) + all_sibling_details = frappe.db.sql( + """select sum(spd.vacancies) as vacancies, + sum(spd.total_estimated_cost) as total_estimated_cost + from `tabStaffing Plan Detail` spd join `tabStaffing Plan` sp on spd.parent=sp.name + where spd.designation=%s and sp.docstatus=1 + and sp.to_date >= %s and sp.from_date <=%s + and sp.company in (select name from tabCompany where lft > %s and rgt < %s) + """, + (staffing_plan_detail.designation, self.from_date, self.to_date, lft, rgt), + as_dict=1, + )[0] + + if ( + cint(parent_plan_details[0].vacancies) + < (cint(staffing_plan_detail.vacancies) + cint(all_sibling_details.vacancies)) + ) or ( + flt(parent_plan_details[0].total_estimated_cost) + < (flt(staffing_plan_detail.total_estimated_cost) + flt(all_sibling_details.total_estimated_cost)) + ): + frappe.throw( + _( + "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." + ).format( + cint(all_sibling_details.vacancies), + all_sibling_details.total_estimated_cost, + frappe.bold(staffing_plan_detail.designation), + parent_company, + cint(parent_plan_details[0].vacancies), + parent_plan_details[0].total_estimated_cost, + parent_plan_details[0].name, + ) + ) + + def validate_with_subsidiary_plans(self, staffing_plan_detail): + # Valdate this plan with all child company plan + children_details = frappe.db.sql( + """select sum(spd.vacancies) as vacancies, + sum(spd.total_estimated_cost) as total_estimated_cost + from `tabStaffing Plan Detail` spd join `tabStaffing Plan` sp on spd.parent=sp.name + where spd.designation=%s and sp.docstatus=1 + and sp.to_date >= %s and sp.from_date <=%s + and sp.company in (select name from tabCompany where parent_company = %s) + """, + (staffing_plan_detail.designation, self.from_date, self.to_date, self.company), + as_dict=1, + )[0] + + if ( + children_details + and cint(staffing_plan_detail.vacancies) < cint(children_details.vacancies) + or flt(staffing_plan_detail.total_estimated_cost) < flt(children_details.total_estimated_cost) + ): + frappe.throw( + _( + "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" + ).format( + self.company, + cint(children_details.vacancies), + children_details.total_estimated_cost, + frappe.bold(staffing_plan_detail.designation), + ), + SubsidiaryCompanyError, + ) + + @frappe.whitelist() + def set_job_requisitions(self, job_reqs): + if job_reqs: + requisitions = frappe.db.get_list( + "Job Requisition", + filters={"name": ["in", job_reqs]}, + fields=["designation", "no_of_positions", "expected_compensation"], + ) + + self.staffing_details = [] + for req in requisitions: + current_count = get_designation_counts(req.designation, self.company)["employee_count"] + self.append( + "staffing_details", + { + "designation": req.designation, + "vacancies": req.no_of_positions, + "estimated_cost_per_position": req.expected_compensation, + "number_of_positions": cint(current_count) + cint(req.no_of_positions), + }, + ) + + return self + + +@frappe.whitelist() +def get_designation_counts(designation, company, job_opening=None): + if not designation: + return False + + company_set = get_descendants_of("Company", company) + company_set.append(company) + + employee_count = frappe.db.count( + "Employee", {"designation": designation, "status": "Active", "company": ("in", company_set)} + ) + + filters = {"designation": designation, "status": "Open", "company": ("in", company_set)} + if job_opening: + filters["name"] = ("!=", job_opening) + + job_openings = frappe.db.count("Job Opening", filters) + + return {"employee_count": employee_count, "job_openings": job_openings} + + +@frappe.whitelist() +def get_active_staffing_plan_details(company, designation, from_date=None, to_date=None): + if from_date is None: + from_date = getdate(nowdate()) + if to_date is None: + to_date = getdate(nowdate()) + if not company or not designation: + frappe.throw(_("Please select Company and Designation")) + + staffing_plan = frappe.db.sql( + """ + select sp.name, spd.vacancies, spd.total_estimated_cost + from `tabStaffing Plan Detail` spd join `tabStaffing Plan` sp on spd.parent=sp.name + where company=%s and spd.designation=%s and sp.docstatus=1 + and to_date >= %s and from_date <= %s """, + (company, designation, from_date, to_date), + as_dict=1, + ) + + if not staffing_plan: + parent_company = frappe.get_cached_value("Company", company, "parent_company") + if parent_company: + staffing_plan = get_active_staffing_plan_details(parent_company, designation, from_date, to_date) + + # Only a single staffing plan can be active for a designation on given date + return staffing_plan if staffing_plan else None diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan_dashboard.py new file mode 100644 index 000000000..0f555d9db --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/staffing_plan_dashboard.py @@ -0,0 +1,5 @@ +def get_data(): + return { + "fieldname": "staffing_plan", + "transactions": [{"items": ["Job Opening"]}], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/test_staffing_plan.py b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/test_staffing_plan.py new file mode 100644 index 000000000..5f8de74e5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan/test_staffing_plan.py @@ -0,0 +1,123 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, get_first_day, get_last_day, getdate, nowdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.staffing_plan.staffing_plan import ParentCompanyError, SubsidiaryCompanyError + +test_dependencies = ["Designation"] + + +class TestStaffingPlan(IntegrationTestCase): + def setUp(self): + for doctype in ["Staffing Plan", "Staffing Plan Detail"]: + frappe.db.delete(doctype) + make_company() + + def test_staffing_plan(self): + frappe.db.set_value("Company", "_Test Company 3", "is_group", 1) + if frappe.db.exists("Staffing Plan", "Test"): + return + staffing_plan = frappe.new_doc("Staffing Plan") + staffing_plan.company = "_Test Company 10" + staffing_plan.name = "Test" + staffing_plan.from_date = nowdate() + staffing_plan.to_date = add_days(nowdate(), 10) + staffing_plan.append( + "staffing_details", + {"designation": "Designer", "vacancies": 6, "estimated_cost_per_position": 50000}, + ) + staffing_plan.insert() + staffing_plan.submit() + self.assertEqual(staffing_plan.total_estimated_budget, 300000.00) + + def test_staffing_plan_subsidiary_company(self): + self.test_staffing_plan() + if frappe.db.exists("Staffing Plan", "Test 1"): + return + staffing_plan = frappe.new_doc("Staffing Plan") + staffing_plan.company = "_Test Company 3" + staffing_plan.name = "Test 1" + staffing_plan.from_date = nowdate() + staffing_plan.to_date = add_days(nowdate(), 10) + staffing_plan.append( + "staffing_details", + {"designation": "Designer", "vacancies": 3, "estimated_cost_per_position": 45000}, + ) + self.assertRaises(SubsidiaryCompanyError, staffing_plan.insert) + + def test_staffing_plan_parent_company(self): + if frappe.db.exists("Staffing Plan", "Test"): + return + staffing_plan = frappe.new_doc("Staffing Plan") + staffing_plan.company = "_Test Company 3" + staffing_plan.name = "Test" + staffing_plan.from_date = nowdate() + staffing_plan.to_date = add_days(nowdate(), 10) + staffing_plan.append( + "staffing_details", + {"designation": "Designer", "vacancies": 7, "estimated_cost_per_position": 50000}, + ) + staffing_plan.insert() + staffing_plan.submit() + self.assertEqual(staffing_plan.total_estimated_budget, 350000.00) + if frappe.db.exists("Staffing Plan", "Test 1"): + return + staffing_plan = frappe.new_doc("Staffing Plan") + staffing_plan.company = "_Test Company 10" + staffing_plan.name = "Test 1" + staffing_plan.from_date = nowdate() + staffing_plan.to_date = add_days(nowdate(), 10) + staffing_plan.append( + "staffing_details", + {"designation": "Designer", "vacancies": 7, "estimated_cost_per_position": 60000}, + ) + staffing_plan.insert() + self.assertRaises(ParentCompanyError, staffing_plan.submit) + + def test_staffing_details_from_job_requisition(self): + from hrms.hr.doctype.job_requisition.test_job_requisition import make_job_requisition + + employee = make_employee("test_sp@example.com", company="_Test Company", designation="Accountant") + requisition = make_job_requisition(requested_by=employee, designation="Accountant", no_of_positions=4) + staffing_plan = frappe.get_doc( + { + "doctype": "Staffing Plan", + "__newname": "Test JR", + "company": "_Test Company", + "from_date": get_first_day(getdate()), + "to_date": get_last_day(getdate()), + } + ) + staffing_plan.set_job_requisitions([requisition.name]) + staffing_plan.save() + staffing_plan_detail = frappe.db.get_values( + "Staffing Plan Detail", + {"parent": staffing_plan.name}, + ["designation", "vacancies", "current_count", "number_of_positions"], + as_dict=True, + )[0] + self.assertEqual(staffing_plan_detail.designation, "Accountant") + self.assertEqual(staffing_plan_detail.vacancies, 4) + self.assertEqual(staffing_plan_detail.current_count, 1) + self.assertEqual(staffing_plan_detail.number_of_positions, 5) + + +def make_company(name=None, abbr=None): + if not name: + name = "_Test Company 10" + + if frappe.db.exists("Company", name): + return + + company = frappe.new_doc("Company") + company.company_name = name + company.abbr = abbr or "_TC10" + company.parent_company = "_Test Company 3" + company.default_currency = "INR" + company.country = "Pakistan" + company.insert() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan_detail/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan_detail/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json new file mode 100644 index 000000000..b5cfd7155 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json @@ -0,0 +1,84 @@ +{ + "actions": [], + "creation": "2018-04-13 18:04:20.978931", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "designation", + "vacancies", + "estimated_cost_per_position", + "total_estimated_cost", + "column_break_5", + "current_count", + "current_openings", + "number_of_positions" + ], + "fields": [ + { + "fieldname": "designation", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Designation", + "options": "Designation", + "reqd": 1 + }, + { + "fieldname": "number_of_positions", + "fieldtype": "Int", + "in_list_view": 1, + "label": "Number Of Positions", + "read_only": 1 + }, + { + "fieldname": "estimated_cost_per_position", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Estimated Cost Per Position", + "options": "Company:company:default_currency" + }, + { + "fieldname": "column_break_5", + "fieldtype": "Column Break" + }, + { + "fieldname": "current_count", + "fieldtype": "Int", + "label": "Current Count", + "read_only": 1 + }, + { + "fieldname": "current_openings", + "fieldtype": "Int", + "label": "Current Openings", + "read_only": 1 + }, + { + "fieldname": "vacancies", + "fieldtype": "Int", + "in_list_view": 1, + "label": "Vacancies" + }, + { + "fieldname": "total_estimated_cost", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Total Estimated Cost", + "options": "Company:company:default_currency", + "read_only": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:10:43.565550", + "modified_by": "Administrator", + "module": "HR", + "name": "Staffing Plan Detail", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.py b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.py new file mode 100644 index 000000000..674969093 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class StaffingPlanDetail(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/test_training_event.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/test_training_event.py new file mode 100644 index 000000000..e89601fef --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/test_training_event.py @@ -0,0 +1,63 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, today + +from hrms.payroll.doctype.salary_structure.test_salary_structure import make_employee + + +class TestTrainingEvent(IntegrationTestCase): + def setUp(self): + create_training_program("Basic Training") + employee = make_employee("robert_loan@trainig.com") + employee2 = make_employee("suzie.tan@trainig.com") + self.attendees = [{"employee": employee}, {"employee": employee2}] + + def test_training_event_status_update(self): + training_event = create_training_event(self.attendees) + training_event.submit() + + training_event.event_status = "Completed" + training_event.save() + training_event.reload() + + for entry in training_event.employees: + self.assertEqual(entry.status, "Completed") + + training_event.event_status = "Scheduled" + training_event.save() + training_event.reload() + + for entry in training_event.employees: + self.assertEqual(entry.status, "Open") + + def tearDown(self): + frappe.db.rollback() + + +def create_training_program(training_program): + if not frappe.db.get_value("Training Program", training_program): + frappe.get_doc( + { + "doctype": "Training Program", + "training_program": training_program, + "description": training_program, + } + ).insert() + + +def create_training_event(attendees): + return frappe.get_doc( + { + "doctype": "Training Event", + "event_name": "Basic Training Event", + "training_program": "Basic Training", + "location": "Union Square", + "start_time": add_days(today(), 5), + "end_time": add_days(today(), 6), + "introduction": "Welcome to the Basic Training Event", + "employees": attendees, + } + ).insert() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event.js b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event.js new file mode 100644 index 000000000..50b7898cf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event.js @@ -0,0 +1,48 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Training Event", { + onload_post_render: function (frm) { + frm.get_field("employees").grid.set_multiple_add("employee"); + }, + refresh: function (frm) { + if (!frm.doc.__islocal) { + frm.add_custom_button(__("Training Result"), function () { + frappe.route_options = { + training_event: frm.doc.name, + }; + frappe.set_route("List", "Training Result"); + }); + frm.add_custom_button(__("Training Feedback"), function () { + frappe.route_options = { + training_event: frm.doc.name, + }; + frappe.set_route("List", "Training Feedback"); + }); + } + frm.events.set_employee_query(frm); + }, + + set_employee_query: function (frm) { + let emp = []; + for (let d in frm.doc.employees) { + if (frm.doc.employees[d].employee) { + emp.push(frm.doc.employees[d].employee); + } + } + frm.set_query("employee", "employees", function () { + return { + filters: { + name: ["NOT IN", emp], + status: "Active", + }, + }; + }); + }, +}); + +frappe.ui.form.on("Training Event Employee", { + employee: function (frm) { + frm.events.set_employee_query(frm); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event.json b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event.json new file mode 100644 index 000000000..546d04038 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event.json @@ -0,0 +1,231 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "field:event_name", + "creation": "2016-08-08 04:53:58.355206", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "event_name", + "training_program", + "event_status", + "has_certificate", + "column_break_2", + "type", + "level", + "company", + "section_break_4", + "trainer_name", + "trainer_email", + "column_break_7", + "supplier", + "contact_number", + "section_break_9", + "course", + "location", + "column_break_12", + "start_time", + "end_time", + "section_break_15", + "introduction", + "section_break_18", + "employees", + "amended_from", + "employee_emails" + ], + "fields": [ + { + "fieldname": "event_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Event Name", + "no_copy": 1, + "reqd": 1, + "unique": 1 + }, + { + "fieldname": "training_program", + "fieldtype": "Link", + "label": "Training Program", + "options": "Training Program" + }, + { + "allow_on_submit": 1, + "fieldname": "event_status", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Event Status", + "options": "Scheduled\nCompleted\nCancelled", + "reqd": 1 + }, + { + "default": "0", + "depends_on": "eval:doc.type == 'Seminar' || doc.type == 'Workshop' || doc.type == 'Conference' || doc.type == 'Exam'", + "fieldname": "has_certificate", + "fieldtype": "Check", + "label": "Has Certificate" + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "fieldname": "type", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Type", + "options": "Seminar\nTheory\nWorkshop\nConference\nExam\nInternet\nSelf-Study", + "reqd": 1 + }, + { + "depends_on": "eval:doc.type == 'Seminar' || doc.type == 'Workshop' || doc.type == 'Exam'", + "fieldname": "level", + "fieldtype": "Select", + "label": "Level", + "options": "\nBeginner\nIntermediate\nAdvance" + }, + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company" + }, + { + "fieldname": "section_break_4", + "fieldtype": "Section Break" + }, + { + "fieldname": "trainer_name", + "fieldtype": "Data", + "label": "Trainer Name" + }, + { + "fieldname": "trainer_email", + "fieldtype": "Data", + "label": "Trainer Email" + }, + { + "fieldname": "column_break_7", + "fieldtype": "Column Break" + }, + { + "fieldname": "supplier", + "fieldtype": "Link", + "label": "Supplier", + "options": "Supplier" + }, + { + "fieldname": "contact_number", + "fieldtype": "Data", + "label": "Contact Number" + }, + { + "fieldname": "section_break_9", + "fieldtype": "Section Break" + }, + { + "fieldname": "course", + "fieldtype": "Data", + "in_standard_filter": 1, + "label": "Course" + }, + { + "fieldname": "location", + "fieldtype": "Data", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Location", + "reqd": 1 + }, + { + "fieldname": "column_break_12", + "fieldtype": "Column Break" + }, + { + "fieldname": "start_time", + "fieldtype": "Datetime", + "label": "Start Time", + "reqd": 1 + }, + { + "fieldname": "end_time", + "fieldtype": "Datetime", + "label": "End Time", + "reqd": 1 + }, + { + "fieldname": "section_break_15", + "fieldtype": "Section Break" + }, + { + "fieldname": "introduction", + "fieldtype": "Text Editor", + "label": "Introduction", + "reqd": 1 + }, + { + "fieldname": "section_break_18", + "fieldtype": "Section Break", + "label": "Attendees" + }, + { + "allow_on_submit": 1, + "fieldname": "employees", + "fieldtype": "Table", + "label": "Employees", + "options": "Training Event Employee" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Training Event", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "employee_emails", + "fieldtype": "Small Text", + "hidden": 1, + "label": "Employee Emails", + "options": "Email" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:10:53.965453", + "modified_by": "Administrator", + "module": "HR", + "name": "Training Event", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "import": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "search_fields": "event_name", + "show_name_in_global_search": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "event_name" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event.py new file mode 100644 index 000000000..c97632844 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event.py @@ -0,0 +1,38 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import time_diff_in_seconds + +from erpnext.setup.doctype.employee.employee import get_employee_emails + + +class TrainingEvent(Document): + def validate(self): + self.set_employee_emails() + self.validate_period() + + def on_update_after_submit(self): + self.set_status_for_attendees() + + def set_employee_emails(self): + self.employee_emails = ", ".join(get_employee_emails([d.employee for d in self.employees])) + + def validate_period(self): + if time_diff_in_seconds(self.end_time, self.start_time) <= 0: + frappe.throw(_("End time cannot be before start time")) + + def set_status_for_attendees(self): + if self.event_status == "Completed": + for employee in self.employees: + if employee.attendance == "Present" and employee.status != "Feedback Submitted": + employee.status = "Completed" + + elif self.event_status == "Scheduled": + for employee in self.employees: + employee.status = "Open" + + self.db_update_all() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event_calendar.js b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event_calendar.js new file mode 100644 index 000000000..96c3232ae --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event_calendar.js @@ -0,0 +1,14 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.views.calendar["Training Event"] = { + field_map: { + start: "start_time", + end: "end_time", + id: "name", + title: "event_name", + allDay: "allDay", + }, + gantt: true, + get_events_method: "frappe.desk.calendar.get_events", +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event_dashboard.py new file mode 100644 index 000000000..ca13938e5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event/training_event_dashboard.py @@ -0,0 +1,7 @@ +def get_data(): + return { + "fieldname": "training_event", + "transactions": [ + {"items": ["Training Result", "Training Feedback"]}, + ], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_event_employee/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event_employee/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_event_employee/training_event_employee.json b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event_employee/training_event_employee.json new file mode 100644 index 000000000..c6a6519cd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event_employee/training_event_employee.json @@ -0,0 +1,82 @@ +{ + "actions": [], + "creation": "2016-08-08 05:33:39.965305", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "department", + "column_break_3", + "status", + "attendance", + "is_mandatory" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "no_copy": 1, + "options": "Employee" + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Read Only", + "label": "Employee Name" + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "allow_on_submit": 1, + "default": "Open", + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Status", + "no_copy": 1, + "options": "Open\nInvited\nCompleted\nFeedback Submitted" + }, + { + "fieldname": "attendance", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Attendance", + "options": "Present\nAbsent" + }, + { + "columns": 2, + "default": "1", + "fieldname": "is_mandatory", + "fieldtype": "Check", + "in_list_view": 1, + "label": "Is Mandatory" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2024-03-27 13:10:54.148593", + "modified_by": "Administrator", + "module": "HR", + "name": "Training Event Employee", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_event_employee/training_event_employee.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event_employee/training_event_employee.py new file mode 100644 index 000000000..5dce6e17c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_event_employee/training_event_employee.py @@ -0,0 +1,9 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class TrainingEventEmployee(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/test_training_feedback.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/test_training_feedback.py new file mode 100644 index 000000000..ea2eca4de --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/test_training_feedback.py @@ -0,0 +1,71 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase + +from hrms.hr.doctype.training_event.test_training_event import ( + create_training_event, + create_training_program, +) +from hrms.payroll.doctype.salary_structure.test_salary_structure import make_employee + + +class TestTrainingFeedback(IntegrationTestCase): + def setUp(self): + create_training_program("Basic Training") + self.employee = make_employee("robert_loan@trainig.com") + self.employee2 = make_employee("suzie.tan@trainig.com") + self.attendees = [{"employee": self.employee}] + + def test_employee_validations_for_feedback(self): + training_event = create_training_event(self.attendees) + training_event.submit() + + training_event.event_status = "Completed" + training_event.save() + training_event.reload() + + # should not allow creating feedback since employee2 was not part of the event + feedback = create_training_feedback(training_event.name, self.employee2) + self.assertRaises(frappe.ValidationError, feedback.save) + + # cannot record feedback for absent employee + employee = frappe.db.get_value( + "Training Event Employee", {"parent": training_event.name, "employee": self.employee}, "name" + ) + + frappe.db.set_value("Training Event Employee", employee, "attendance", "Absent") + feedback = create_training_feedback(training_event.name, self.employee) + self.assertRaises(frappe.ValidationError, feedback.save) + + def test_training_feedback_status(self): + training_event = create_training_event(self.attendees) + training_event.submit() + + training_event.event_status = "Completed" + training_event.save() + training_event.reload() + + feedback = create_training_feedback(training_event.name, self.employee) + feedback.submit() + + status = frappe.db.get_value( + "Training Event Employee", {"parent": training_event.name, "employee": self.employee}, "status" + ) + + self.assertEqual(status, "Feedback Submitted") + + def tearDown(self): + frappe.db.rollback() + + +def create_training_feedback(event, employee): + return frappe.get_doc( + { + "doctype": "Training Feedback", + "training_event": event, + "employee": employee, + "feedback": "Test", + } + ) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/training_feedback.js b/apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/training_feedback.js new file mode 100644 index 000000000..abf338a6a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/training_feedback.js @@ -0,0 +1,10 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Training Feedback", { + onload: function (frm) { + frm.add_fetch("training_event", "course", "course"); + frm.add_fetch("training_event", "event_name", "event_name"); + frm.add_fetch("training_event", "trainer_name", "trainer_name"); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/training_feedback.json b/apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/training_feedback.json new file mode 100644 index 000000000..5e9541fbc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/training_feedback.json @@ -0,0 +1,143 @@ +{ + "actions": [], + "autoname": "HR-TRF-.YYYY.-.#####", + "creation": "2022-01-27 13:14:35.935580", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "department", + "course", + "column_break_3", + "training_event", + "event_name", + "trainer_name", + "section_break_6", + "feedback", + "amended_from" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_global_search": 1, + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Read Only", + "in_global_search": 1, + "label": "Employee Name" + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fetch_from": "training_event.course", + "fieldname": "course", + "fieldtype": "Data", + "label": "Course", + "read_only": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "training_event", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Training Event", + "options": "Training Event", + "reqd": 1 + }, + { + "fetch_from": "training_event.event_name", + "fieldname": "event_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Event Name", + "read_only": 1 + }, + { + "fetch_from": "training_event.trainer_name", + "fieldname": "trainer_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Trainer Name", + "read_only": 1 + }, + { + "fieldname": "section_break_6", + "fieldtype": "Section Break" + }, + { + "fieldname": "feedback", + "fieldtype": "Text", + "label": "Feedback", + "reqd": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Training Feedback", + "print_hide": 1, + "read_only": 1 + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:10:54.277257", + "modified_by": "Administrator", + "module": "HR", + "name": "Training Feedback", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "search_fields": "employee_name, training_event, event_name", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/training_feedback.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/training_feedback.py new file mode 100644 index 000000000..d5de28ed2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_feedback/training_feedback.py @@ -0,0 +1,47 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document + + +class TrainingFeedback(Document): + def validate(self): + training_event = frappe.get_doc("Training Event", self.training_event) + if training_event.docstatus != 1: + frappe.throw(_("{0} must be submitted").format(_("Training Event"))) + + emp_event_details = frappe.db.get_value( + "Training Event Employee", + {"parent": self.training_event, "employee": self.employee}, + ["name", "attendance"], + as_dict=True, + ) + + if not emp_event_details: + frappe.throw( + _("Employee {0} not found in Training Event Participants.").format( + frappe.bold(self.employee_name) + ) + ) + + if emp_event_details.attendance == "Absent": + frappe.throw(_("Feedback cannot be recorded for an absent Employee.")) + + def on_submit(self): + employee = frappe.db.get_value( + "Training Event Employee", {"parent": self.training_event, "employee": self.employee} + ) + + if employee: + frappe.db.set_value("Training Event Employee", employee, "status", "Feedback Submitted") + + def on_cancel(self): + employee = frappe.db.get_value( + "Training Event Employee", {"parent": self.training_event, "employee": self.employee} + ) + + if employee: + frappe.db.set_value("Training Event Employee", employee, "status", "Completed") diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/test_training_program.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/test_training_program.py new file mode 100644 index 000000000..472322dc1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/test_training_program.py @@ -0,0 +1,8 @@ +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestTrainingProgram(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program.js b/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program.js new file mode 100644 index 000000000..c15678dbf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program.js @@ -0,0 +1,4 @@ +// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Training Program", {}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program.json b/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program.json new file mode 100644 index 000000000..982b69fad --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program.json @@ -0,0 +1,130 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:training_program", + "creation": "2017-10-11 04:43:17.230065", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "training_program", + "status", + "column_break_3", + "company", + "section_break_5", + "trainer_name", + "trainer_email", + "column_break_8", + "supplier", + "contact_number", + "section_break_11", + "description", + "amended_from" + ], + "fields": [ + { + "fieldname": "training_program", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Training Program", + "reqd": 1, + "unique": 1 + }, + { + "allow_on_submit": 1, + "bold": 1, + "default": "Scheduled", + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Status", + "options": "Scheduled\nCompleted\nCancelled" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "section_break_5", + "fieldtype": "Section Break" + }, + { + "fieldname": "trainer_name", + "fieldtype": "Data", + "label": "Trainer Name" + }, + { + "fieldname": "trainer_email", + "fieldtype": "Data", + "label": "Trainer Email" + }, + { + "fieldname": "column_break_8", + "fieldtype": "Column Break" + }, + { + "fieldname": "supplier", + "fieldtype": "Link", + "label": "Supplier", + "options": "Supplier" + }, + { + "fieldname": "contact_number", + "fieldtype": "Data", + "label": "Contact Number" + }, + { + "fieldname": "section_break_11", + "fieldtype": "Section Break" + }, + { + "fieldname": "description", + "fieldtype": "Text Editor", + "label": "Description", + "reqd": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Training Program", + "print_hide": 1, + "read_only": 1 + } + ], + "links": [], + "modified": "2024-03-27 13:10:54.420468", + "modified_by": "Administrator", + "module": "HR", + "name": "Training Program", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + } + ], + "show_name_in_global_search": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "training_program", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program.py new file mode 100644 index 000000000..96b2fd700 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program.py @@ -0,0 +1,9 @@ +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class TrainingProgram(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program_dashboard.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program_dashboard.py new file mode 100644 index 000000000..1735db18e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_program/training_program_dashboard.py @@ -0,0 +1,10 @@ +from frappe import _ + + +def get_data(): + return { + "fieldname": "training_program", + "transactions": [ + {"label": _("Training Events"), "items": ["Training Event"]}, + ], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_result/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_result/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_result/test_training_result.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_result/test_training_result.py new file mode 100644 index 000000000..1fdde26bf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_result/test_training_result.py @@ -0,0 +1,10 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + +# test_records = frappe.get_test_records('Training Result') + + +class TestTrainingResult(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_result/training_result.js b/apps/erpnext/src/hrms/hrms/hr/doctype/training_result/training_result.js new file mode 100644 index 000000000..6ed1386f9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_result/training_result.js @@ -0,0 +1,30 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Training Result", { + training_event: function (frm) { + if (frm.doc.training_event && !frm.doc.docstatus) { + frappe.call({ + method: "hrms.hr.doctype.training_result.training_result.get_employees", + args: { + training_event: frm.doc.training_event, + }, + callback: function (r) { + frm.set_value("employees", ""); + if (r.message) { + $.each(r.message, function (i, d) { + var row = frappe.model.add_child( + frm.doc, + "Training Result Employee", + "employees", + ); + row.employee = d.employee; + row.employee_name = d.employee_name; + }); + } + refresh_field("employees"); + }, + }); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_result/training_result.json b/apps/erpnext/src/hrms/hrms/hr/doctype/training_result/training_result.json new file mode 100644 index 000000000..5080de20e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_result/training_result.json @@ -0,0 +1,83 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "HR-TRR-.YYYY.-.#####", + "creation": "2016-11-04 02:13:48.407576", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "training_event", + "section_break_3", + "employees", + "amended_from", + "employee_emails" + ], + "fields": [ + { + "fieldname": "training_event", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Training Event", + "options": "Training Event", + "reqd": 1, + "unique": 1 + }, + { + "fieldname": "section_break_3", + "fieldtype": "Section Break" + }, + { + "fieldname": "employees", + "fieldtype": "Table", + "label": "Employees", + "options": "Training Result Employee" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Training Result", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "employee_emails", + "fieldtype": "Small Text", + "hidden": 1, + "label": "Employee Emails", + "options": "Email" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:10:54.562111", + "modified_by": "Administrator", + "module": "HR", + "name": "Training Result", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "search_fields": "training_event", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "training_event" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_result/training_result.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_result/training_result.py new file mode 100644 index 000000000..ffcf1d3d2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_result/training_result.py @@ -0,0 +1,34 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document + +from erpnext.setup.doctype.employee.employee import get_employee_emails + + +class TrainingResult(Document): + def validate(self): + training_event = frappe.get_doc("Training Event", self.training_event) + if training_event.docstatus != 1: + frappe.throw(_("{0} must be submitted").format(_("Training Event"))) + + self.employee_emails = ", ".join(get_employee_emails([d.employee for d in self.employees])) + + def on_submit(self): + training_event = frappe.get_doc("Training Event", self.training_event) + training_event.status = "Completed" + for e in self.employees: + for e1 in training_event.employees: + if e1.employee == e.employee: + e1.status = "Completed" + break + + training_event.save() + + +@frappe.whitelist() +def get_employees(training_event): + return frappe.get_doc("Training Event", training_event).employees diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_result_employee/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_result_employee/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_result_employee/training_result_employee.json b/apps/erpnext/src/hrms/hrms/hr/doctype/training_result_employee/training_result_employee.json new file mode 100644 index 000000000..37b859868 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_result_employee/training_result_employee.json @@ -0,0 +1,86 @@ +{ + "actions": [], + "creation": "2016-11-04 02:39:12.825569", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "column_break_2", + "employee_name", + "department", + "section_break_5", + "hours", + "grade", + "column_break_7", + "comments" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee" + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Read Only", + "label": "Employee Name" + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "section_break_5", + "fieldtype": "Section Break" + }, + { + "allow_on_submit": 1, + "fieldname": "hours", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Hours" + }, + { + "allow_on_submit": 1, + "fieldname": "grade", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Grade" + }, + { + "fieldname": "column_break_7", + "fieldtype": "Column Break" + }, + { + "allow_on_submit": 1, + "fieldname": "comments", + "fieldtype": "Text", + "in_list_view": 1, + "label": "Comments" + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:10:54.698397", + "modified_by": "Administrator", + "module": "HR", + "name": "Training Result Employee", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/training_result_employee/training_result_employee.py b/apps/erpnext/src/hrms/hrms/hr/doctype/training_result_employee/training_result_employee.py new file mode 100644 index 000000000..e048ff534 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/training_result_employee/training_result_employee.py @@ -0,0 +1,9 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class TrainingResultEmployee(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/travel_itinerary/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_itinerary/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/travel_itinerary/travel_itinerary.json b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_itinerary/travel_itinerary.json new file mode 100644 index 000000000..275bb8ec7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_itinerary/travel_itinerary.json @@ -0,0 +1,124 @@ +{ + "actions": [], + "creation": "2018-05-15 07:40:59.181192", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "travel_from", + "travel_to", + "mode_of_travel", + "meal_preference", + "travel_advance_required", + "advance_amount", + "column_break_6", + "departure_date", + "arrival_date", + "lodging_required", + "preferred_area_for_lodging", + "check_in_date", + "check_out_date", + "section_break_14", + "other_details" + ], + "fields": [ + { + "fieldname": "travel_from", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Travel From" + }, + { + "fieldname": "travel_to", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Travel To" + }, + { + "fieldname": "mode_of_travel", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Mode of Travel", + "options": "\nFlight\nTrain\nTaxi\nRented Car" + }, + { + "fieldname": "meal_preference", + "fieldtype": "Select", + "label": "Meal Preference", + "options": "\nVegetarian\nNon-Vegetarian\nGluten Free\nNon Diary" + }, + { + "default": "0", + "fieldname": "travel_advance_required", + "fieldtype": "Check", + "label": "Travel Advance Required" + }, + { + "depends_on": "travel_advance_required", + "fieldname": "advance_amount", + "fieldtype": "Data", + "label": "Advance Amount" + }, + { + "fieldname": "column_break_6", + "fieldtype": "Column Break" + }, + { + "fieldname": "departure_date", + "fieldtype": "Datetime", + "in_list_view": 1, + "label": "Departure Datetime" + }, + { + "fieldname": "arrival_date", + "fieldtype": "Datetime", + "label": "Arrival Datetime" + }, + { + "default": "0", + "fieldname": "lodging_required", + "fieldtype": "Check", + "label": "Lodging Required" + }, + { + "depends_on": "lodging_required", + "fieldname": "preferred_area_for_lodging", + "fieldtype": "Data", + "label": "Preferred Area for Lodging" + }, + { + "depends_on": "lodging_required", + "fieldname": "check_in_date", + "fieldtype": "Date", + "label": "Check-in Date" + }, + { + "depends_on": "lodging_required", + "fieldname": "check_out_date", + "fieldtype": "Date", + "label": "Check-out Date" + }, + { + "fieldname": "section_break_14", + "fieldtype": "Section Break" + }, + { + "fieldname": "other_details", + "fieldtype": "Small Text", + "label": "Other Details" + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:10:55.239685", + "modified_by": "Administrator", + "module": "HR", + "name": "Travel Itinerary", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/travel_itinerary/travel_itinerary.py b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_itinerary/travel_itinerary.py new file mode 100644 index 000000000..529909b0e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_itinerary/travel_itinerary.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class TravelItinerary(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/test_travel_request.py b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/test_travel_request.py new file mode 100644 index 000000000..86f798fe6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/test_travel_request.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestTravelRequest(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/travel_request.js b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/travel_request.js new file mode 100644 index 000000000..05eb0d0eb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/travel_request.js @@ -0,0 +1,6 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Travel Request", { + refresh: function (frm) {}, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/travel_request.json b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/travel_request.json new file mode 100644 index 000000000..ac4f49ac6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/travel_request.json @@ -0,0 +1,254 @@ +{ + "actions": [], + "autoname": "HR-TRQ-.YYYY.-.#####", + "creation": "2018-05-15 06:32:33.950356", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "travel_type", + "travel_funding", + "travel_proof", + "column_break_2", + "purpose_of_travel", + "details_of_sponsor", + "employee_details", + "employee", + "employee_name", + "cell_number", + "prefered_email", + "company", + "column_break_7", + "date_of_birth", + "personal_id_type", + "personal_id_number", + "passport_number", + "section_break_4", + "description", + "travel_itinerary", + "itinerary", + "costing_details", + "costings", + "accounting_dimensions_section", + "cost_center", + "dimension_col_break", + "event_details", + "name_of_organizer", + "address_of_organizer", + "other_details", + "amended_from" + ], + "fields": [ + { + "fieldname": "travel_type", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Travel Type", + "options": "\nDomestic\nInternational", + "reqd": 1 + }, + { + "fieldname": "travel_funding", + "fieldtype": "Select", + "label": "Travel Funding", + "options": "\nRequire Full Funding\nFully Sponsored\nPartially Sponsored, Require Partial Funding" + }, + { + "fieldname": "travel_proof", + "fieldtype": "Attach", + "label": "Copy of Invitation/Announcement" + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "fieldname": "purpose_of_travel", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Purpose of Travel", + "options": "Purpose of Travel", + "reqd": 1 + }, + { + "fieldname": "details_of_sponsor", + "fieldtype": "Data", + "label": "Details of Sponsor (Name, Location)" + }, + { + "collapsible": 1, + "fieldname": "section_break_4", + "fieldtype": "Section Break", + "label": "Description" + }, + { + "fieldname": "description", + "fieldtype": "Small Text", + "label": "Any other details" + }, + { + "collapsible": 1, + "fieldname": "employee_details", + "fieldtype": "Section Break", + "label": "Employee Details" + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.cell_number", + "fieldname": "cell_number", + "fieldtype": "Data", + "label": "Contact Number" + }, + { + "fetch_from": "employee.prefered_email", + "fieldname": "prefered_email", + "fieldtype": "Data", + "label": "Contact Email" + }, + { + "fieldname": "column_break_7", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.date_of_birth", + "fieldname": "date_of_birth", + "fieldtype": "Date", + "label": "Date of Birth", + "read_only": 1 + }, + { + "fieldname": "personal_id_type", + "fieldtype": "Link", + "label": "Identification Document Type", + "options": "Identification Document Type" + }, + { + "fieldname": "personal_id_number", + "fieldtype": "Data", + "label": "Identification Document Number" + }, + { + "fetch_from": "employee.passport_number", + "fieldname": "passport_number", + "fieldtype": "Data", + "label": "Passport Number" + }, + { + "fieldname": "travel_itinerary", + "fieldtype": "Section Break", + "label": "Travel Itinerary" + }, + { + "fieldname": "itinerary", + "fieldtype": "Table", + "options": "Travel Itinerary" + }, + { + "fieldname": "costing_details", + "fieldtype": "Section Break", + "label": "Costing Details" + }, + { + "fieldname": "cost_center", + "fieldtype": "Link", + "label": "Cost Center", + "options": "Cost Center" + }, + { + "fieldname": "costings", + "fieldtype": "Table", + "label": "Costing", + "options": "Travel Request Costing" + }, + { + "collapsible": 1, + "fieldname": "event_details", + "fieldtype": "Section Break", + "label": "Event Details" + }, + { + "fieldname": "name_of_organizer", + "fieldtype": "Data", + "label": "Name of Organizer" + }, + { + "fieldname": "address_of_organizer", + "fieldtype": "Data", + "label": "Address of Organizer" + }, + { + "fieldname": "other_details", + "fieldtype": "Text", + "label": "Other Details" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Travel Request", + "print_hide": 1, + "read_only": 1 + }, + { + "collapsible": 1, + "fieldname": "accounting_dimensions_section", + "fieldtype": "Section Break", + "label": "Accounting Dimensions" + }, + { + "fieldname": "dimension_col_break", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "read_only": 1 + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-05-24 17:09:09.480838", + "modified_by": "Administrator", + "module": "HR", + "name": "Travel Request", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "search_fields": "employee_name", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/travel_request.py b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/travel_request.py new file mode 100644 index 000000000..ecac86c0f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request/travel_request.py @@ -0,0 +1,12 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + +from hrms.hr.utils import validate_active_employee + + +class TravelRequest(Document): + def validate(self): + validate_active_employee(self.employee) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request_costing/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request_costing/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request_costing/travel_request_costing.json b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request_costing/travel_request_costing.json new file mode 100644 index 000000000..ea4b28337 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request_costing/travel_request_costing.json @@ -0,0 +1,72 @@ +{ + "actions": [], + "creation": "2018-05-15 10:28:37.429581", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "expense_type", + "column_break_2", + "sponsored_amount", + "funded_amount", + "total_amount", + "section_break_4", + "comments" + ], + "fields": [ + { + "fieldname": "expense_type", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Expense Type", + "options": "Expense Claim Type" + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "fieldname": "sponsored_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Sponsored Amount", + "options": "Company:company:default_currency" + }, + { + "fieldname": "funded_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Funded Amount", + "options": "Company:company:default_currency" + }, + { + "fieldname": "total_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Total Amount", + "options": "Company:company:default_currency" + }, + { + "fieldname": "section_break_4", + "fieldtype": "Section Break" + }, + { + "fieldname": "comments", + "fieldtype": "Small Text", + "label": "Comments" + } + ], + "istable": 1, + "links": [], + "modified": "2024-05-24 12:00:47.413806", + "modified_by": "Administrator", + "module": "HR", + "name": "Travel Request Costing", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request_costing/travel_request_costing.py b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request_costing/travel_request_costing.py new file mode 100644 index 000000000..0d1a592c8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/travel_request_costing/travel_request_costing.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class TravelRequestCosting(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/README.md b/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/README.md new file mode 100644 index 000000000..d0b372101 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/README.md @@ -0,0 +1 @@ +Tool to upload attendance via csv file. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/test_upload_attendance.py b/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/test_upload_attendance.py new file mode 100644 index 000000000..18394d4e2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/test_upload_attendance.py @@ -0,0 +1,43 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import getdate + +import erpnext +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.upload_attendance.upload_attendance import get_data + +test_dependencies = ["Holiday List"] + + +class TestUploadAttendance(IntegrationTestCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + frappe.db.set_value( + "Company", erpnext.get_default_company(), "default_holiday_list", "_Test Holiday List" + ) + + def test_date_range(self): + employee = make_employee("test_employee@company.com") + employee_doc = frappe.get_doc("Employee", employee) + date_of_joining = "2018-01-02" + relieving_date = "2018-01-03" + from_date = "2018-01-01" + to_date = "2018-01-04" + employee_doc.date_of_joining = date_of_joining + employee_doc.relieving_date = relieving_date + employee_doc.save() + args = {"from_date": from_date, "to_date": to_date} + data = get_data(args) + filtered_data = [] + for row in data: + if row[1] == employee: + filtered_data.append(row) + for row in filtered_data: + self.assertTrue( + getdate(row[3]) >= getdate(date_of_joining) and getdate(row[3]) <= getdate(relieving_date) + ) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/upload_attendance.js b/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/upload_attendance.js new file mode 100644 index 000000000..b9268fc2c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/upload_attendance.js @@ -0,0 +1,77 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.provide("hrms.hr"); + +hrms.hr.AttendanceControlPanel = class AttendanceControlPanel extends frappe.ui.form.Controller { + onload() { + this.frm.set_value("att_fr_date", frappe.datetime.get_today()); + this.frm.set_value("att_to_date", frappe.datetime.get_today()); + } + + refresh() { + this.frm.disable_save(); + this.show_upload(); + this.setup_import_progress(); + } + + get_template() { + if (!this.frm.doc.att_fr_date || !this.frm.doc.att_to_date) { + frappe.msgprint(__("Attendance From Date and Attendance To Date is mandatory")); + return; + } + window.location.href = repl( + frappe.request.url + "?cmd=%(cmd)s&from_date=%(from_date)s&to_date=%(to_date)s", + { + cmd: "hrms.hr.doctype.upload_attendance.upload_attendance.get_template", + from_date: this.frm.doc.att_fr_date, + to_date: this.frm.doc.att_to_date, + }, + ); + } + + show_upload() { + let $wrapper = $(this.frm.fields_dict.upload_html.wrapper).empty(); + new frappe.ui.FileUploader({ + wrapper: $wrapper, + method: "hrms.hr.doctype.upload_attendance.upload_attendance.upload", + }); + $wrapper.addClass("pb-5"); + } + + setup_import_progress() { + var $log_wrapper = $(this.frm.fields_dict.import_log.wrapper).empty(); + + frappe.realtime.on("import_attendance", (data) => { + if (data.progress) { + this.frm.dashboard.show_progress( + "Import Attendance", + (data.progress / data.total) * 100, + __("Importing {0} of {1}", [data.progress, data.total]), + ); + if (data.progress === data.total) { + this.frm.dashboard.hide_progress("Import Attendance"); + } + } else if (data.error) { + this.frm.dashboard.hide(); + let messages = [`${__("Error in some rows")}`] + .concat( + data.messages + .filter((message) => message.includes("Error")) + .map((message) => `${message}`), + ) + .join(""); + $log_wrapper.append('' + messages); + } else if (data.messages) { + this.frm.dashboard.hide(); + let messages = [``] + .concat(data.messages.map((message) => ``)) + .join(""); + $log_wrapper.append('
    ${__("Import Successful")}
    ${message}
    ' + messages); + } + }); + } +}; + +// nosemgrep: frappe-semgrep-rules.rules.frappe-cur-frm-usage +cur_frm.cscript = new hrms.hr.AttendanceControlPanel({ frm: cur_frm }); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/upload_attendance.json b/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/upload_attendance.json new file mode 100644 index 000000000..fc77ccace --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/upload_attendance.json @@ -0,0 +1,88 @@ +{ + "actions": [], + "allow_copy": 1, + "creation": "2013-01-25 11:34:53", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "download_template", + "att_fr_date", + "att_to_date", + "get_template", + "upload_attendance_data", + "upload_html", + "import_log" + ], + "fields": [ + { + "fieldname": "download_template", + "fieldtype": "Section Break", + "label": "Download Template" + }, + { + "fieldname": "att_fr_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Attendance From Date", + "oldfieldname": "attenadnce_date", + "oldfieldtype": "Date", + "reqd": 1 + }, + { + "fieldname": "att_to_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Attendance To Date", + "reqd": 1 + }, + { + "fieldname": "get_template", + "fieldtype": "Button", + "label": "Get Template", + "oldfieldtype": "Button" + }, + { + "fieldname": "upload_attendance_data", + "fieldtype": "Section Break", + "label": "Import Attendance" + }, + { + "fieldname": "upload_html", + "fieldtype": "HTML", + "label": "Upload HTML" + }, + { + "fieldname": "import_log", + "fieldtype": "HTML", + "label": "Import Log" + } + ], + "hide_toolbar": 1, + "icon": "fa fa-upload-alt", + "idx": 1, + "issingle": 1, + "links": [], + "max_attachments": 1, + "modified": "2024-03-27 13:10:57.888823", + "modified_by": "Administrator", + "module": "HR", + "name": "Upload Attendance", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "read": 1, + "role": "HR User", + "write": 1 + }, + { + "create": 1, + "read": 1, + "role": "HR Manager", + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/upload_attendance.py b/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/upload_attendance.py new file mode 100644 index 000000000..ca897ff4c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/upload_attendance/upload_attendance.py @@ -0,0 +1,221 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import add_days, cstr, date_diff, getdate +from frappe.utils.csvutils import UnicodeWriter + +from erpnext.setup.doctype.employee.employee import get_holiday_list_for_employee + +from hrms.hr.utils import get_holiday_dates_for_employee + + +class UploadAttendance(Document): + pass + + +@frappe.whitelist() +def get_template(): + if not frappe.has_permission("Attendance", "create"): + raise frappe.PermissionError + + args = frappe.local.form_dict + + if getdate(args.from_date) > getdate(args.to_date): + frappe.throw(_("To Date should be greater than From Date")) + + w = UnicodeWriter() + w = add_header(w) + + try: + w = add_data(w, args) + except Exception as e: + frappe.clear_messages() + frappe.respond_as_web_page("Holiday List Missing", html=e) + return + + # write out response as a type csv + frappe.response["result"] = cstr(w.getvalue()) + frappe.response["type"] = "csv" + frappe.response["doctype"] = "Attendance" + + +def add_header(w): + status = ", ".join((frappe.get_meta("Attendance").get_field("status").options or "").strip().split("\n")) + w.writerow(["Notes:"]) + w.writerow(["Please do not change the template headings"]) + w.writerow(["Status should be one of these values: " + status]) + w.writerow(["If you are overwriting existing attendance records, 'ID' column mandatory"]) + w.writerow( + ["ID", "Employee", "Employee Name", "Date", "Status", "Leave Type", "Company", "Naming Series"] + ) + return w + + +def add_data(w, args): + data = get_data(args) + writedata(w, data) + return w + + +def get_data(args): + dates = get_dates(args) + employees = get_active_employees() + holidays = get_holidays_for_employees( + [employee.name for employee in employees], args["from_date"], args["to_date"] + ) + existing_attendance_records = get_existing_attendance_records(args) + data = [] + for date in dates: + for employee in employees: + if getdate(date) < getdate(employee.date_of_joining): + continue + if employee.relieving_date: + if getdate(date) > getdate(employee.relieving_date): + continue + existing_attendance = {} + if ( + existing_attendance_records + and tuple([getdate(date), employee.name]) in existing_attendance_records + and getdate(employee.date_of_joining) <= getdate(date) + and getdate(employee.relieving_date) >= getdate(date) + ): + existing_attendance = existing_attendance_records[tuple([getdate(date), employee.name])] + + employee_holiday_list = get_holiday_list_for_employee(employee.name) + + row = [ + existing_attendance and existing_attendance.name or "", + employee.name, + employee.employee_name, + date, + existing_attendance and existing_attendance.status or "", + existing_attendance and existing_attendance.leave_type or "", + employee.company, + existing_attendance and existing_attendance.naming_series or get_naming_series(), + ] + if date in holidays[employee_holiday_list]: + row[4] = "Holiday" + data.append(row) + + return data + + +def get_holidays_for_employees(employees, from_date, to_date): + holidays = {} + for employee in employees: + holiday_list = get_holiday_list_for_employee(employee) + holiday = get_holiday_dates_for_employee(employee, getdate(from_date), getdate(to_date)) + if holiday_list not in holidays: + holidays[holiday_list] = holiday + + return holidays + + +def writedata(w, data): + for row in data: + w.writerow(row) + + +def get_dates(args): + """get list of dates in between from date and to date""" + no_of_days = date_diff(add_days(args["to_date"], 1), args["from_date"]) + dates = [add_days(args["from_date"], i) for i in range(0, no_of_days)] + return dates + + +def get_active_employees(): + employees = frappe.db.get_all( + "Employee", + fields=["name", "employee_name", "date_of_joining", "company", "relieving_date"], + filters={"docstatus": ["<", 2], "status": "Active"}, + ) + return employees + + +def get_existing_attendance_records(args): + attendance = frappe.db.sql( + """select name, attendance_date, employee, status, leave_type, naming_series + from `tabAttendance` where attendance_date between %s and %s and docstatus < 2""", + (args["from_date"], args["to_date"]), + as_dict=1, + ) + + existing_attendance = {} + for att in attendance: + existing_attendance[tuple([att.attendance_date, att.employee])] = att + + return existing_attendance + + +def get_naming_series(): + series = frappe.get_meta("Attendance").get_field("naming_series").options.strip().split("\n") + if not series: + frappe.throw(_("Please setup numbering series for Attendance via Setup > Numbering Series")) + return series[0] + + +@frappe.whitelist() +def upload(): + if not frappe.has_permission("Attendance", "create"): + raise frappe.PermissionError + + from frappe.utils.csvutils import read_csv_content + + rows = read_csv_content(frappe.local.uploaded_file) + if not rows: + frappe.throw(_("Please select a csv file")) + frappe.enqueue(import_attendances, rows=rows, now=True if len(rows) < 200 else False) + + +def import_attendances(rows): + def remove_holidays(rows): + rows = [row for row in rows if row[4] != "Holiday"] + return rows + + from frappe.modules import scrub + + rows = list(filter(lambda x: x and any(x), rows)) + columns = [scrub(f) for f in rows[4]] + columns[0] = "name" + columns[3] = "attendance_date" + rows = rows[5:] + ret = [] + error = False + + rows = remove_holidays(rows) + + from frappe.utils.csvutils import check_record, import_doc + + for i, row in enumerate(rows): + if not row: + continue + row_idx = i + 5 + d = frappe._dict(zip(columns, row, strict=False)) + + d["doctype"] = "Attendance" + if d.name: + d["docstatus"] = frappe.db.get_value("Attendance", d.name, "docstatus") + + try: + check_record(d) + ret.append(import_doc(d, "Attendance", 1, row_idx, submit=True)) + frappe.publish_realtime("import_attendance", dict(progress=i, total=len(rows))) + except AttributeError: + pass + except Exception as e: + error = True + ret.append("Error for row (#%d) %s : %s" % (row_idx, len(row) > 1 and row[1] or "", cstr(e))) + frappe.errprint(frappe.get_traceback()) + + if error: + frappe.db.rollback() + else: + frappe.db.commit() + + frappe.publish_realtime("import_attendance", dict(messages=ret, error=error)) diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/test_vehicle_log.py b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/test_vehicle_log.py new file mode 100644 index 000000000..9551f24c0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/test_vehicle_log.py @@ -0,0 +1,129 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import cstr, flt, nowdate, random_string + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.vehicle_log.vehicle_log import make_expense_claim + + +class TestVehicleLog(IntegrationTestCase): + def setUp(self): + employee_id = frappe.db.sql("""select name from `tabEmployee` where name='testdriver@example.com'""") + self.employee_id = employee_id[0][0] if employee_id else None + + if not self.employee_id: + self.employee_id = make_employee("testdriver@example.com", company="_Test Company") + + self.license_plate = get_vehicle(self.employee_id) + + def tearDown(self): + frappe.delete_doc("Vehicle", self.license_plate, force=1) + frappe.delete_doc("Employee", self.employee_id, force=1) + + def test_make_vehicle_log_and_syncing_of_odometer_value(self): + vehicle_log = make_vehicle_log(self.license_plate, self.employee_id) + + # checking value of vehicle odometer value on submit. + vehicle = frappe.get_doc("Vehicle", self.license_plate) + self.assertEqual(vehicle.last_odometer, vehicle_log.odometer) + + # checking value vehicle odometer on vehicle log cancellation. + last_odometer = vehicle_log.last_odometer + current_odometer = vehicle_log.odometer + distance_travelled = current_odometer - last_odometer + + vehicle_log.cancel() + vehicle.reload() + + self.assertEqual(vehicle.last_odometer, current_odometer - distance_travelled) + + vehicle_log.delete() + + def test_vehicle_log_fuel_expense(self): + vehicle_log = make_vehicle_log(self.license_plate, self.employee_id) + + expense_claim = make_expense_claim(vehicle_log.name) + fuel_expense = expense_claim.expenses[0].amount + self.assertEqual(fuel_expense, 50 * 500) + + vehicle_log.cancel() + frappe.delete_doc("Expense Claim", expense_claim.name) + frappe.delete_doc("Vehicle Log", vehicle_log.name) + + def test_vehicle_log_with_service_expenses(self): + vehicle_log = make_vehicle_log(self.license_plate, self.employee_id, with_services=True) + + expense_claim = make_expense_claim(vehicle_log.name) + expenses = expense_claim.expenses[0].amount + self.assertEqual(expenses, 27000) + + vehicle_log.cancel() + frappe.delete_doc("Expense Claim", expense_claim.name) + frappe.delete_doc("Vehicle Log", vehicle_log.name) + + +def get_vehicle(employee_id): + license_plate = random_string(10).upper() + vehicle = frappe.get_doc( + { + "doctype": "Vehicle", + "license_plate": cstr(license_plate), + "make": "Maruti", + "model": "PCM", + "employee": employee_id, + "last_odometer": 5000, + "acquisition_date": nowdate(), + "location": "Mumbai", + "chassis_no": "1234ABCD", + "uom": "Litre", + "vehicle_value": flt(500000), + } + ) + try: + vehicle.insert(ignore_if_duplicate=True) + except frappe.DuplicateEntryError: + pass + return license_plate + + +def make_vehicle_log(license_plate, employee_id, with_services=False): + vehicle_log = frappe.get_doc( + { + "doctype": "Vehicle Log", + "license_plate": cstr(license_plate), + "employee": employee_id, + "date": nowdate(), + "odometer": 5010, + "fuel_qty": flt(50), + "price": flt(500), + } + ) + + if with_services: + vehicle_log.append( + "service_detail", + { + "service_item": "Oil Change", + "type": "Inspection", + "frequency": "Mileage", + "expense_amount": flt(500), + }, + ) + vehicle_log.append( + "service_detail", + { + "service_item": "Wheels", + "type": "Change", + "frequency": "Half Yearly", + "expense_amount": flt(1500), + }, + ) + + vehicle_log.save() + vehicle_log.submit() + + return vehicle_log diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/vehicle_log.js b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/vehicle_log.js new file mode 100644 index 000000000..1a544594f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/vehicle_log.js @@ -0,0 +1,39 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Vehicle Log", { + setup: function (frm) { + frm.set_query("employee", function () { + return { + filters: { + status: "Active", + }, + }; + }); + }, + refresh: function (frm) { + if (frm.doc.docstatus == 1) { + frm.add_custom_button( + __("Expense Claim"), + function () { + frm.events.expense_claim(frm); + }, + __("Create"), + ); + frm.page.set_inner_btn_group_as_primary(__("Create")); + } + }, + + expense_claim: function (frm) { + frappe.call({ + method: "hrms.hr.doctype.vehicle_log.vehicle_log.make_expense_claim", + args: { + docname: frm.doc.name, + }, + callback: function (r) { + var doc = frappe.model.sync(r.message); + frappe.set_route("Form", "Expense Claim", r.message.name); + }, + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/vehicle_log.json b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/vehicle_log.json new file mode 100644 index 000000000..ce97a9e52 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/vehicle_log.json @@ -0,0 +1,192 @@ +{ + "actions": [], + "autoname": "naming_series:", + "creation": "2016-09-03 14:14:51.788550", + "doctype": "DocType", + "document_type": "Document", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "vehicle_section", + "naming_series", + "license_plate", + "employee", + "column_break_7", + "model", + "make", + "odometer_reading", + "date", + "odometer", + "column_break_12", + "last_odometer", + "refuelling_details", + "fuel_qty", + "price", + "column_break_15", + "supplier", + "invoice", + "service_details", + "service_detail", + "amended_from" + ], + "fields": [ + { + "fieldname": "vehicle_section", + "fieldtype": "Section Break", + "options": "fa fa-user" + }, + { + "fieldname": "naming_series", + "fieldtype": "Select", + "label": "Series", + "no_copy": 1, + "options": "HR-VLOG-.YYYY.-", + "print_hide": 1, + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "license_plate", + "fieldtype": "Link", + "in_global_search": 1, + "in_list_view": 1, + "label": "License Plate", + "options": "Vehicle", + "reqd": 1 + }, + { + "fetch_from": "license_plate.employee", + "fetch_if_empty": 1, + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fieldname": "column_break_7", + "fieldtype": "Column Break" + }, + { + "fetch_from": "license_plate.model", + "fieldname": "model", + "fieldtype": "Read Only", + "label": "Model" + }, + { + "fetch_from": "license_plate.make", + "fieldname": "make", + "fieldtype": "Read Only", + "label": "Make" + }, + { + "fieldname": "odometer_reading", + "fieldtype": "Section Break", + "label": "Odometer Reading" + }, + { + "fieldname": "date", + "fieldtype": "Date", + "label": "Date", + "reqd": 1 + }, + { + "fieldname": "odometer", + "fieldtype": "Int", + "label": "Current Odometer value ", + "reqd": 1 + }, + { + "collapsible": 1, + "fieldname": "refuelling_details", + "fieldtype": "Section Break", + "label": "Refuelling Details" + }, + { + "fieldname": "fuel_qty", + "fieldtype": "Float", + "label": "Fuel Qty" + }, + { + "fieldname": "price", + "fieldtype": "Currency", + "label": "Fuel Price" + }, + { + "fieldname": "column_break_15", + "fieldtype": "Column Break" + }, + { + "fieldname": "supplier", + "fieldtype": "Link", + "label": "Supplier", + "options": "Supplier" + }, + { + "fieldname": "invoice", + "fieldtype": "Data", + "label": "Invoice Ref" + }, + { + "collapsible": 1, + "fieldname": "service_details", + "fieldtype": "Section Break", + "label": "Service Details" + }, + { + "fieldname": "service_detail", + "fieldtype": "Table", + "options": "Vehicle Service" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Vehicle Log", + "print_hide": 1, + "read_only": 1 + }, + { + "fetch_from": "license_plate.last_odometer", + "fieldname": "last_odometer", + "fieldtype": "Int", + "label": "Last Odometer Value ", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "column_break_12", + "fieldtype": "Column Break" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:10:58.330593", + "modified_by": "Administrator", + "module": "HR", + "name": "Vehicle Log", + "owner": "Administrator", + "permissions": [ + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Fleet Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/vehicle_log.py b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/vehicle_log.py new file mode 100644 index 000000000..b6bb4358d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_log/vehicle_log.py @@ -0,0 +1,53 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import flt + + +class VehicleLog(Document): + def validate(self): + if flt(self.odometer) < flt(self.last_odometer): + frappe.throw( + _("Current Odometer Value should be greater than Last Odometer Value {0}").format( + self.last_odometer + ) + ) + + def on_submit(self): + frappe.db.set_value("Vehicle", self.license_plate, "last_odometer", self.odometer) + + def on_cancel(self): + distance_travelled = self.odometer - self.last_odometer + if distance_travelled > 0: + updated_odometer_value = ( + int(frappe.db.get_value("Vehicle", self.license_plate, "last_odometer")) - distance_travelled + ) + frappe.db.set_value("Vehicle", self.license_plate, "last_odometer", updated_odometer_value) + + +@frappe.whitelist() +def make_expense_claim(docname): + expense_claim = frappe.db.exists("Expense Claim", {"vehicle_log": docname}) + if expense_claim: + frappe.throw(_("Expense Claim {0} already exists for the Vehicle Log").format(expense_claim)) + + vehicle_log = frappe.get_doc("Vehicle Log", docname) + service_expense = sum([flt(d.expense_amount) for d in vehicle_log.service_detail]) + refuelling_expense = flt(vehicle_log.price) * flt(vehicle_log.fuel_qty) + claim_amount = service_expense + refuelling_expense + if not claim_amount: + frappe.throw(_("No additional expenses has been added")) + + exp_claim = frappe.new_doc("Expense Claim") + exp_claim.employee = vehicle_log.employee + exp_claim.vehicle_log = vehicle_log.name + exp_claim.remark = _("Expense Claim for Vehicle Log {0}").format(vehicle_log.name) + exp_claim.append( + "expenses", + {"expense_date": vehicle_log.date, "description": _("Vehicle Expenses"), "amount": claim_amount}, + ) + return exp_claim.as_dict() diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service/vehicle_service.json b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service/vehicle_service.json new file mode 100644 index 000000000..104ad4900 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service/vehicle_service.json @@ -0,0 +1,60 @@ +{ + "actions": [], + "creation": "2016-09-03 19:20:14.561962", + "doctype": "DocType", + "document_type": "Document", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "service_item", + "type", + "frequency", + "expense_amount" + ], + "fields": [ + { + "fieldname": "service_item", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Service Item", + "options": "Vehicle Service Item", + "reqd": 1 + }, + { + "fieldname": "type", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Type", + "options": "\nInspection\nService\nChange", + "reqd": 1 + }, + { + "fieldname": "frequency", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Frequency", + "options": "\nMileage\nMonthly\nQuarterly\nHalf Yearly\nYearly", + "reqd": 1 + }, + { + "fieldname": "expense_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Expense", + "reqd": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:10:58.510355", + "modified_by": "Administrator", + "module": "HR", + "name": "Vehicle Service", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service/vehicle_service.py b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service/vehicle_service.py new file mode 100644 index 000000000..fdd4e39dd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service/vehicle_service.py @@ -0,0 +1,9 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class VehicleService(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/__init__.py b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/test_vehicle_service_item.py b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/test_vehicle_service_item.py new file mode 100644 index 000000000..2a7c98ea8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/test_vehicle_service_item.py @@ -0,0 +1,9 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestVehicleServiceItem(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/vehicle_service_item.js b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/vehicle_service_item.js new file mode 100644 index 000000000..f7fe37bbb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/vehicle_service_item.js @@ -0,0 +1,7 @@ +// Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Vehicle Service Item", { + // refresh: function(frm) { + // } +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json new file mode 100644 index 000000000..e2102a53d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json @@ -0,0 +1,50 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:service_item", + "creation": "2023-08-02 18:01:01.161734", + "default_view": "List", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "service_item" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "service_item", + "fieldtype": "Data", + "in_filter": 1, + "in_list_view": 1, + "label": "Service Item", + "reqd": 1, + "unique": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2024-03-27 13:10:58.630841", + "modified_by": "Administrator", + "module": "HR", + "name": "Vehicle Service Item", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/vehicle_service_item.py b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/vehicle_service_item.py new file mode 100644 index 000000000..e440bba7d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/doctype/vehicle_service_item/vehicle_service_item.py @@ -0,0 +1,9 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class VehicleServiceItem(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/employee_property_update.js b/apps/erpnext/src/hrms/hrms/hr/employee_property_update.js new file mode 100644 index 000000000..23f182aa9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/employee_property_update.js @@ -0,0 +1,209 @@ +frappe.ui.form.on(cur_frm.doctype, { + setup: function (frm) { + frm.set_query("employee", function () { + return { + filters: { + status: "Active", + }, + }; + }); + }, + + onload: function (frm) { + if (frm.doc.__islocal && !frm.doc.amended_from) frm.trigger("clear_property_table"); + }, + + employee: function (frm) { + frm.trigger("clear_property_table"); + }, + + clear_property_table: function (frm) { + let table = frm.doctype == "Employee Promotion" ? "promotion_details" : "transfer_details"; + frm.clear_table(table); + frm.refresh_field(table); + + frm.fields_dict[table].grid.wrapper.find(".grid-add-row").hide(); + }, + + refresh: function (frm) { + let table; + if (frm.doctype == "Employee Promotion") { + table = "promotion_details"; + } else if (frm.doctype == "Employee Transfer") { + table = "transfer_details"; + } + + if (!table) return; + + frm.fields_dict[table].grid.wrapper.find(".grid-add-row").hide(); + frm.events.setup_employee_property_button(frm, table); + }, + + setup_employee_property_button: function (frm, table) { + frm.fields_dict[table].grid.add_custom_button(__("Add Employee Property"), () => { + if (!frm.doc.employee) { + frappe.msgprint(__("Please select Employee first.")); + return; + } + + const allowed_fields = []; + const exclude_fields = [ + "naming_series", + "employee", + "first_name", + "middle_name", + "last_name", + "marital_status", + "ctc", + "employee_name", + "status", + "image", + "gender", + "date_of_birth", + "date_of_joining", + "lft", + "rgt", + "old_parent", + ]; + + const exclude_field_types = [ + "HTML", + "Section Break", + "Column Break", + "Button", + "Read Only", + "Tab Break", + "Table", + ]; + + frappe.model.with_doctype("Employee", () => { + const field_label_map = {}; + frappe.get_meta("Employee").fields.forEach((d) => { + field_label_map[d.fieldname] = + __(d.label, null, d.parent) + ` (${d.fieldname})`; + if ( + !exclude_field_types.includes(d.fieldtype) && + !exclude_fields.includes(d.fieldname) && + !d.hidden && + !d.read_only + ) { + allowed_fields.push({ + label: field_label_map[d.fieldname], + value: d.fieldname, + }); + } + }); + + show_dialog(frm, table, allowed_fields); + }); + }); + }, +}); + +var show_dialog = function (frm, table, field_labels) { + var d = new frappe.ui.Dialog({ + title: "Update Property", + fields: [ + { + fieldname: "property", + label: __("Select Property"), + fieldtype: "Autocomplete", + options: field_labels, + }, + { fieldname: "current", fieldtype: "Data", label: __("Current"), read_only: true }, + { fieldname: "new_value", fieldtype: "Data", label: __("New") }, + ], + primary_action_label: __("Add to Details"), + primary_action: () => { + d.get_primary_btn().attr("disabled", true); + if (d.data) { + d.data.new = d.get_values().new_value; + add_to_details(frm, d, table); + } + }, + }); + + d.fields_dict["property"].df.onchange = () => { + let property = d.get_values().property; + d.data.fieldname = property; + if (!property) { + return; + } + frappe.call({ + method: "hrms.hr.utils.get_employee_field_property", + args: { employee: frm.doc.employee, fieldname: property }, + callback: function (r) { + if (r.message) { + d.data.current = r.message.value; + d.data.property = r.message.label; + + d.set_value("current", r.message.value); + render_dynamic_field(d, r.message.datatype, r.message.options, property); + d.get_primary_btn().attr("disabled", false); + } + }, + }); + }; + d.get_primary_btn().attr("disabled", true); + d.data = {}; + d.show(); +}; + +var render_dynamic_field = function (d, fieldtype, options, fieldname) { + d.data.new = null; + var dynamic_field = frappe.ui.form.make_control({ + df: { + fieldtype: fieldtype, + fieldname: fieldname, + options: options || "", + label: __("New"), + }, + parent: d.fields_dict.new_value.wrapper, + only_input: false, + }); + dynamic_field.make_input(); + d.replace_field("new_value", dynamic_field.df); +}; + +var add_to_details = function (frm, d, table) { + let data = d.data; + if (data.fieldname) { + if (validate_duplicate(frm, table, data.fieldname)) { + frappe.show_alert({ message: __("Property already added"), indicator: "orange" }); + return false; + } + if (data.current == data.new) { + frappe.show_alert({ message: __("Nothing to change"), indicator: "orange" }); + d.get_primary_btn().attr("disabled", false); + return false; + } + frm.add_child(table, { + fieldname: data.fieldname, + property: data.property, + current: data.current, + new: data.new, + }); + frm.refresh_field(table); + + frm.fields_dict[table].grid.wrapper.find(".grid-add-row").hide(); + + d.fields_dict.new_value.$wrapper.html(""); + d.set_value("property", ""); + d.set_value("current", ""); + frappe.show_alert({ message: __("Added to details"), indicator: "green" }); + d.data = {}; + } else { + frappe.show_alert({ message: __("Value missing"), indicator: "red" }); + } +}; + +var validate_duplicate = function (frm, table, fieldname) { + let duplicate = false; + $.each(frm.doc[table], function (i, detail) { + if (detail.fieldname === fieldname) { + duplicate = true; + return; + } + }); + return duplicate; +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/attendance/attendance.json b/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/attendance/attendance.json new file mode 100644 index 000000000..486424563 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/attendance/attendance.json @@ -0,0 +1,46 @@ +{ + "cards": [ + { + "card": "Total Present (This Month)" + }, + { + "card": "Total Absent (This Month)" + }, + { + "card": "Late Entry (This Month)" + }, + { + "card": "Early Exit (This Month)" + } + ], + "charts": [ + { + "chart": "Attendance Count", + "width": "Full" + }, + { + "chart": "Timesheet Activity Breakup", + "width": "Half" + }, + { + "chart": "Shift Assignment Breakup", + "width": "Half" + }, + { + "chart": "Department wise Timesheet Hours", + "width": "Full" + } + ], + "creation": "2022-08-21 14:13:18.835357", + "dashboard_name": "Attendance", + "docstatus": 0, + "doctype": "Dashboard", + "idx": 0, + "is_default": 0, + "is_standard": 1, + "modified": "2022-08-21 18:12:38.531243", + "modified_by": "Administrator", + "module": "HR", + "name": "Attendance", + "owner": "Administrator" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/employee_lifecycle/employee_lifecycle.json b/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/employee_lifecycle/employee_lifecycle.json new file mode 100644 index 000000000..4fe0fb59b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/employee_lifecycle/employee_lifecycle.json @@ -0,0 +1,49 @@ +{ + "cards": [ + { + "card": "Onboardings (This Month)" + }, + { + "card": "Separations (This Month)" + }, + { + "card": "Promotions (This Month)" + }, + { + "card": "Transfers (This Month)" + }, + { + "card": "Trainings (This Month)" + } + ], + "charts": [ + { + "chart": "Grievance Type", + "width": "Half" + }, + { + "chart": "Training Type", + "width": "Half" + }, + { + "chart": "Y-O-Y Transfers", + "width": "Half" + }, + { + "chart": "Y-O-Y Promotions", + "width": "Half" + } + ], + "creation": "2022-08-21 12:07:21.614561", + "dashboard_name": "Employee Lifecycle", + "docstatus": 0, + "doctype": "Dashboard", + "idx": 0, + "is_default": 0, + "is_standard": 1, + "modified": "2022-08-22 11:05:25.627559", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Lifecycle", + "owner": "Administrator" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/expense_claims/expense_claims.json b/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/expense_claims/expense_claims.json new file mode 100644 index 000000000..f56321ad0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/expense_claims/expense_claims.json @@ -0,0 +1,43 @@ +{ + "cards": [ + { + "card": "Expense Claims (This Month)" + }, + { + "card": "Approved Claims (This Month)" + }, + { + "card": "Rejected Claims (This Month)" + } + ], + "charts": [ + { + "chart": "Expense Claims", + "width": "Full" + }, + { + "chart": "Claims by Type", + "width": "Half" + }, + { + "chart": "Employee Advance Status", + "width": "Half" + }, + { + "chart": "Department wise Expense Claims", + "width": "Full" + } + ], + "creation": "2022-08-31 23:00:07.341160", + "dashboard_name": "Expense Claims", + "docstatus": 0, + "doctype": "Dashboard", + "idx": 0, + "is_default": 0, + "is_standard": 1, + "modified": "2022-09-16 11:36:44.704033", + "modified_by": "Administrator", + "module": "HR", + "name": "Expense Claims", + "owner": "Administrator" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/human_resource/human_resource.json b/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/human_resource/human_resource.json new file mode 100644 index 000000000..ba6562d1f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/human_resource/human_resource.json @@ -0,0 +1,65 @@ +{ + "cards": [ + { + "card": "Total Employees" + }, + { + "card": "New Hires (This Year)" + }, + { + "card": "Employee Exits (This Year)" + }, + { + "card": "Employees Joining (This Quarter)" + }, + { + "card": "Employees Relieving (This Quarter)" + } + ], + "charts": [ + { + "chart": "Hiring vs Attrition Count", + "width": "Full" + }, + { + "chart": "Employees by Age", + "width": "Full" + }, + { + "chart": "Gender Diversity Ratio", + "width": "Half" + }, + { + "chart": "Employees by Type", + "width": "Half" + }, + { + "chart": "Employees by Grade", + "width": "Half" + }, + { + "chart": "Employees by Branch", + "width": "Half" + }, + { + "chart": "Designation Wise Employee Count", + "width": "Half" + }, + { + "chart": "Department Wise Employee Count", + "width": "Half" + } + ], + "creation": "2023-11-17 14:10:56.741833", + "dashboard_name": "Human Resource", + "docstatus": 0, + "doctype": "Dashboard", + "idx": 0, + "is_default": 0, + "is_standard": 1, + "modified": "2024-01-08 14:06:32.104261", + "modified_by": "Administrator", + "module": "HR", + "name": "Human Resource", + "owner": "Administrator" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/recruitment/recruitment.json b/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/recruitment/recruitment.json new file mode 100644 index 000000000..8abc1cc26 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/hr_dashboard/recruitment/recruitment.json @@ -0,0 +1,78 @@ +{ + "cards": [ + { + "card": "Job Openings" + }, + { + "card": "Total Applicants (This month)" + }, + { + "card": "Accepted Job Applicants" + }, + { + "card": "Rejected Job Applicants" + }, + { + "card": "Job Offers (This Month)" + }, + { + "card": "Applicant-to-Hire Percentage" + }, + { + "card": "Job Offer Acceptance Rate" + }, + { + "card": "Time to Fill" + } + ], + "charts": [ + { + "chart": "Job Applicant Pipeline", + "width": "Half" + }, + { + "chart": "Job Applicant Source", + "width": "Half" + }, + { + "chart": "Job Applicants by Country", + "width": "Half" + }, + { + "chart": "Job Application Status", + "width": "Half" + }, + { + "chart": "Job Offer Status", + "width": "Half" + }, + { + "chart": "Interview Status", + "width": "Half" + }, + { + "chart": "Job Application Frequency", + "width": "Full" + }, + { + "chart": "Department Wise Openings", + "width": "Half" + }, + { + "chart": "Designation Wise Openings", + "width": "Half" + } + ], + "creation": "2022-08-20 21:07:07.337973", + "dashboard_name": "Recruitment", + "docstatus": 0, + "doctype": "Dashboard", + "idx": 0, + "is_default": 0, + "is_standard": 1, + "modified": "2022-08-29 23:28:26.765572", + "modified_by": "Administrator", + "module": "HR", + "name": "Recruitment", + "owner": "Administrator" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/__init__.py b/apps/erpnext/src/hrms/hrms/hr/notification/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/__init__.py b/apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/exit_interview_scheduled.json b/apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/exit_interview_scheduled.json new file mode 100644 index 000000000..8323ef069 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/exit_interview_scheduled.json @@ -0,0 +1,29 @@ +{ + "attach_print": 0, + "channel": "Email", + "condition": "doc.date and doc.email and doc.docstatus != 2 and doc.status == 'Scheduled'", + "creation": "2021-12-05 22:11:47.263933", + "date_changed": "date", + "days_in_advance": 1, + "docstatus": 0, + "doctype": "Notification", + "document_type": "Exit Interview", + "enabled": 1, + "event": "Days Before", + "idx": 0, + "is_standard": 1, + "message": "
    \n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n
    \n\t\t\t
    \n\t\t\t\t{{_(\"Exit Interview Scheduled:\")}} {{ doc.name }}\n\t\t\t
    \n\t\t
    \n\n\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n
    \n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • {{_(\"Employee\")}}: {{ doc.employee }} - {{ doc.employee_name }}
    • \n\t\t\t\t\t
    • {{_(\"Date\")}}: {{ doc.date }}
    • \n\t\t\t\t\t
    • {{_(\"Interviewers\")}}:
    • \n\t\t\t\t\t{% for entry in doc.interviewers %}\n\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t
      • {{ entry.user }}
      • \n\t\t\t\t\t\t
      \n\t\t\t\t\t{% endfor %}\n\t\t\t\t\t
    • {{ _(\"Interview Document\") }}: {{ frappe.utils.get_link_to_form(doc.doctype, doc.name) }}
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n", + "modified": "2021-12-05 22:26:57.096159", + "modified_by": "Administrator", + "module": "HR", + "name": "Exit Interview Scheduled", + "owner": "Administrator", + "recipients": [ + { + "receiver_by_document_field": "email" + } + ], + "send_system_notification": 0, + "send_to_all_assignees": 1, + "subject": "Exit Interview Scheduled: {{ doc.name }}" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/exit_interview_scheduled.md b/apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/exit_interview_scheduled.md new file mode 100644 index 000000000..6d6db4014 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/exit_interview_scheduled.md @@ -0,0 +1,37 @@ + + + + + + + + +
    +
    +

    {{_("Exit Interview Scheduled:")}} {{ doc.name }}

    +
    +
    + + + + + + + + + +
    +
    +
      +
    • {{_("Employee")}}: {{ doc.employee }} - {{ doc.employee_name }}
    • +
    • {{_("Date")}}: {{ frappe.utils.formatdate(doc.date) }}
    • +
    • {{_("Interviewers")}}:
    • + {% for entry in doc.interviewers %} +
        +
      • {{ entry.user }}
      • +
      + {% endfor %} +
    • {{ _("Interview Document") }}: {{ frappe.utils.get_link_to_form(doc.doctype, doc.name) }}
    • +
    +
    +
    diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/exit_interview_scheduled.py b/apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/exit_interview_scheduled.py new file mode 100644 index 000000000..5f697c961 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/notification/exit_interview_scheduled/exit_interview_scheduled.py @@ -0,0 +1,6 @@ +# import frappe + + +def get_context(context): + # do your magic here + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/__init__.py b/apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.html b/apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.html new file mode 100644 index 000000000..b49662a6e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.html @@ -0,0 +1,6 @@ +

    {{ _("Hello") }},

    + +

    You attended training {{ frappe.utils.get_link_to_form( + "Training Event", doc.training_event) }}

    + +

    {{ _("Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'") }}

    diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.json b/apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.json new file mode 100644 index 000000000..92b68a98a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.json @@ -0,0 +1,25 @@ +{ + "attach_print": 0, + "channel": "Email", + "creation": "2017-08-11 03:17:11.769210", + "days_in_advance": 0, + "docstatus": 0, + "doctype": "Notification", + "document_type": "Training Result", + "enabled": 1, + "event": "Submit", + "idx": 0, + "is_standard": 1, + "message": "

    {{_(\"Training Event\")}}

    \n

    {{ message }}

    \n\n

    {{_(\"Details\")}}

    \n{{_(\"Event Name\")}}: {{ name }}\n
    {{_(\"Event Location\")}}: {{ location }}\n
    {{_(\"Start Time\")}}: {{ start_time }}\n
    {{_(\"End Time\")}}: {{ end_time }}\n
    {{_(\"Attendance\")}}: {{ attendance }}\n", + "modified": "2017-08-11 04:26:58.194793", + "modified_by": "Administrator", + "module": "HR", + "name": "Training Feedback", + "owner": "Administrator", + "recipients": [ + { + "email_by_document_field": "employee_emails" + } + ], + "subject": "Please Share your Feedback For {{ doc.training_event }}" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.md b/apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.md new file mode 100644 index 000000000..bcadf7df5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.md @@ -0,0 +1,9 @@ +

    {{_("Training Event")}}

    +

    {{ message }}

    + +

    {{_("Details")}}

    +{{_("Event Name")}}: {{ name }} +
    {{_("Event Location")}}: {{ location }} +
    {{_("Start Time")}}: {{ start_time }} +
    {{_("End Time")}}: {{ end_time }} +
    {{_("Attendance")}}: {{ attendance }} diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.py b/apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.py new file mode 100644 index 000000000..02e3e9333 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/notification/training_feedback/training_feedback.py @@ -0,0 +1,3 @@ +def get_context(context): + # do your magic here + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/__init__.py b/apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.html b/apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.html new file mode 100644 index 000000000..50f6d07a4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.html @@ -0,0 +1,44 @@ + + + + + + + + +
    +
    + {{_("Training Event:")}} {{ doc.event_name }} +
    +
    + + + + + + + + + +
    +
    + {{ doc.introduction }} +
      +
    • {{_("Event Location")}}: {{ doc.location }}
    • + {% set start = frappe.utils.get_datetime(doc.start_time) %} + {% set end = frappe.utils.get_datetime(doc.end_time) %} + {% if start.date() == end.date() %} +
    • {{_("Date")}}: {{ start.strftime("%A, %d %b %Y") }}
    • +
    • + {{_("Timing")}}: {{ start.strftime("%I:%M %p") + ' to ' + end.strftime("%I:%M %p") }} +
    • + {% else %} +
    • {{_("Start Time")}}: {{ start.strftime("%A, %d %b %Y at %I:%M %p") }} +
    • +
    • {{_("End Time")}}: {{ end.strftime("%A, %d %b %Y at %I:%M %p") }} +
    • + {% endif %} +
    • {{ _('Event Link') }}: {{ frappe.utils.get_link_to_form(doc.doctype, doc.name) }}
    • +
    +
    +
    diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.json b/apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.json new file mode 100644 index 000000000..f3650038f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.json @@ -0,0 +1,28 @@ +{ + "attach_print": 0, + "channel": "Email", + "condition": "", + "creation": "2017-08-11 03:13:40.519614", + "days_in_advance": 0, + "docstatus": 0, + "doctype": "Notification", + "document_type": "Training Event", + "enabled": 1, + "event": "Submit", + "idx": 0, + "is_standard": 1, + "message": "\n \n \n \n \n \n \n \n
    \n
    \n {{_(\"Training Event:\")}} {{ doc.event_name }}\n
    \n
    \n\n\n \n \n \n \n \n \n \n
    \n
    \n {{ doc.introduction }}\n
      \n
    • {{_(\"Event Location\")}}: {{ doc.location }}
    • \n {% set start = frappe.utils.get_datetime(doc.start_time) %}\n {% set end = frappe.utils.get_datetime(doc.end_time) %}\n {% if start.date() == end.date() %}\n
    • {{_(\"Date\")}}: {{ start.strftime(\"%A, %d %b %Y\") }}
    • \n
    • \n {{_(\"Timing\")}}: {{ start.strftime(\"%I:%M %p\") + ' to ' + end.strftime(\"%I:%M %p\") }}\n
    • \n {% else %}\n
    • \n {{_(\"Start Time\")}}: {{ start.strftime(\"%A, %d %b %Y at %I:%M %p\") }}\n
    • \n
    • {{_(\"End Time\")}}: {{ end.strftime(\"%A, %d %b %Y at %I:%M %p\") }}
    • \n {% endif %}\n
    • {{ _(\"Event Link\") }}: {{ frappe.utils.get_link_to_form(doc.doctype, doc.name) }}
    • \n {% if doc.is_mandatory %}\n
    • {{ _(\"Note: This Training Event is mandatory\") }}
    • \n {% endif %}\n
    \n
    \n
    ", + "modified": "2021-06-16 14:08:12.933367", + "modified_by": "Administrator", + "module": "HR", + "name": "Training Scheduled", + "owner": "Administrator", + "recipients": [ + { + "receiver_by_document_field": "employee_emails" + } + ], + "send_system_notification": 0, + "send_to_all_assignees": 0, + "subject": "Training Scheduled: {{ doc.name }}" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.md b/apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.md new file mode 100644 index 000000000..b9ba846be --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.md @@ -0,0 +1,47 @@ + + + + + + + + +
    +
    + {{_("Training Event:")}} {{ doc.event_name }} +
    +
    + + + + + + + + + +
    +
    + {{ doc.introduction }} +
      +
    • {{_("Event Location")}}: {{ doc.location }}
    • + {% set start = frappe.utils.get_datetime(doc.start_time) %} + {% set end = frappe.utils.get_datetime(doc.end_time) %} + {% if start.date() == end.date() %} +
    • {{_("Date")}}: {{ start.strftime("%A, %d %b %Y") }}
    • +
    • + {{_("Timing")}}: {{ start.strftime("%I:%M %p") + ' to ' + end.strftime("%I:%M %p") }} +
    • + {% else %} +
    • + {{_("Start Time")}}: {{ start.strftime("%A, %d %b %Y at %I:%M %p") }} +
    • +
    • {{_("End Time")}}: {{ end.strftime("%A, %d %b %Y at %I:%M %p") }}
    • + {% endif %} +
    • {{ _("Event Link") }}: {{ frappe.utils.get_link_to_form(doc.doctype, doc.name) }}
    • + {% if doc.is_mandatory %} +
    • {{ _("Note: This Training Event is mandatory") }}
    • + {% endif %} +
    +
    +
    diff --git a/apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.py b/apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.py new file mode 100644 index 000000000..02e3e9333 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/notification/training_scheduled/training_scheduled.py @@ -0,0 +1,3 @@ +def get_context(context): + # do your magic here + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/accepted_job_applicants/accepted_job_applicants.json b/apps/erpnext/src/hrms/hrms/hr/number_card/accepted_job_applicants/accepted_job_applicants.json new file mode 100644 index 000000000..0ec582d06 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/accepted_job_applicants/accepted_job_applicants.json @@ -0,0 +1,25 @@ +{ + "aggregate_function_based_on": "", + "color": "#29CD42", + "creation": "2022-08-20 21:26:43.114245", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Job Applicant", + "dynamic_filters_json": "[]", + "filters_json": "[[\"Job Applicant\",\"status\",\"=\",\"Accepted\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Accepted Job Applicants", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Accepted Job Applicants", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/applicant_to_hire_percentage/applicant_to_hire_percentage.json b/apps/erpnext/src/hrms/hrms/hr/number_card/applicant_to_hire_percentage/applicant_to_hire_percentage.json new file mode 100644 index 000000000..529beba45 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/applicant_to_hire_percentage/applicant_to_hire_percentage.json @@ -0,0 +1,26 @@ +{ + "aggregate_function_based_on": "", + "creation": "2022-08-21 21:05:23.450263", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Job Applicant", + "dynamic_filters_json": "[]", + "filters_json": "[]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Applicant-to-Hire Percentage", + "method": "hrms.hr.doctype.job_applicant.job_applicant.get_applicant_to_hire_percentage", + "modified": "2025-09-17 19:03:25.915647", + "modified_by": "Administrator", + "module": "HR", + "name": "Applicant-to-Hire Percentage", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_full_number": 0, + "show_percentage_stats": 1, + "stats_time_interval": "Daily", + "type": "Custom" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/approved_claims_(this_month)/approved_claims_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/approved_claims_(this_month)/approved_claims_(this_month).json new file mode 100644 index 000000000..9620ec769 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/approved_claims_(this_month)/approved_claims_(this_month).json @@ -0,0 +1,25 @@ +{ + "aggregate_function_based_on": "", + "color": "#29CD42", + "creation": "2022-08-31 23:03:18.120203", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Expense Claim", + "dynamic_filters_json": "[]", + "filters_json": "[[\"Expense Claim\",\"approval_status\",\"=\",\"Approved\"],[\"Expense Claim\",\"posting_date\",\"Timespan\",\"this month\"],[\"Expense Claim\",\"docstatus\",\"=\",\"1\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Approved Claims (This Month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Approved Claims (This Month)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/early_exit_(this_month)/early_exit_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/early_exit_(this_month)/early_exit_(this_month).json new file mode 100644 index 000000000..ffe0c380d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/early_exit_(this_month)/early_exit_(this_month).json @@ -0,0 +1,25 @@ +{ + "aggregate_function_based_on": "", + "color": "#CB2929", + "creation": "2022-08-21 14:20:48.708808", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Attendance", + "dynamic_filters_json": "[[\"Attendance\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Attendance\",\"docstatus\",\"=\",\"1\"],[\"Attendance\",\"early_exit\",\"=\",1],[\"Attendance\",\"attendance_date\",\"Timespan\",\"this month\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Early Exit (This Month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Early Exit (This Month)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/employee_exits_(this_year)/employee_exits_(this_year).json b/apps/erpnext/src/hrms/hrms/hr/number_card/employee_exits_(this_year)/employee_exits_(this_year).json new file mode 100644 index 000000000..c20a6b88b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/employee_exits_(this_year)/employee_exits_(this_year).json @@ -0,0 +1,21 @@ +{ + "creation": "2020-07-22 11:56:32.947790", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Employee", + "dynamic_filters_json": "[[\"Employee\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee\",\"relieving_date\",\"Timespan\",\"this year\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Employee Exits (This Year)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Exits (This Year)", + "owner": "Administrator", + "show_percentage_stats": 1, + "stats_time_interval": "Yearly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/employees_joining_(this_quarter)/employees_joining_(this_quarter).json b/apps/erpnext/src/hrms/hrms/hr/number_card/employees_joining_(this_quarter)/employees_joining_(this_quarter).json new file mode 100644 index 000000000..3979f6e6e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/employees_joining_(this_quarter)/employees_joining_(this_quarter).json @@ -0,0 +1,24 @@ +{ + "aggregate_function_based_on": "", + "creation": "2023-11-17 14:10:57.027579", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Employee", + "dynamic_filters_json": "[[\"Employee\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee\",\"date_of_joining\",\"Timespan\",\"this quarter\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Employees Joining (This Quarter)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Employees Joining (This Quarter)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 0, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/employees_relieving_(this_quarter)/employees_relieving_(this_quarter).json b/apps/erpnext/src/hrms/hrms/hr/number_card/employees_relieving_(this_quarter)/employees_relieving_(this_quarter).json new file mode 100644 index 000000000..10d72e9ab --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/employees_relieving_(this_quarter)/employees_relieving_(this_quarter).json @@ -0,0 +1,24 @@ +{ + "aggregate_function_based_on": "", + "creation": "2023-11-17 14:10:57.129602", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Employee", + "dynamic_filters_json": "[[\"Employee\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee\",\"relieving_date\",\"Timespan\",\"this quarter\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Employees Relieving (This Quarter)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Employees Relieving (This Quarter)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 0, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/expense_claims_(this_month)/expense_claims_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/expense_claims_(this_month)/expense_claims_(this_month).json new file mode 100644 index 000000000..9f933d0cf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/expense_claims_(this_month)/expense_claims_(this_month).json @@ -0,0 +1,24 @@ +{ + "aggregate_function_based_on": "", + "creation": "2022-08-31 23:02:41.310392", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Expense Claim", + "dynamic_filters_json": "[]", + "filters_json": "[[\"Expense Claim\",\"docstatus\",\"=\",\"1\"],[\"Expense Claim\",\"posting_date\",\"Timespan\",\"this month\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Expense Claims (This Month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Expense Claims (This Month)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/holidays_in_this_month/holidays_in_this_month.json b/apps/erpnext/src/hrms/hrms/hr/number_card/holidays_in_this_month/holidays_in_this_month.json new file mode 100644 index 000000000..c0c15d6cb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/holidays_in_this_month/holidays_in_this_month.json @@ -0,0 +1,24 @@ +{ + "creation": "2026-01-12 14:53:08.618520", + "currency": "", + "docstatus": 0, + "doctype": "Number Card", + "filters_config": "[]", + "filters_json": "{}", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Holidays in this month", + "method": "hrms.utils.custom_method_for_charts.get_upcoming_holidays", + "modified": "2026-01-15 15:31:22.114881", + "modified_by": "Administrator", + "module": "HR", + "name": "Holidays in this month", + "owner": "Administrator", + "report_function": "Sum", + "show_full_number": 1, + "show_percentage_stats": 1, + "stats_time_interval": "Daily", + "type": "Custom" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/job_offer_acceptance_rate/job_offer_acceptance_rate.json b/apps/erpnext/src/hrms/hrms/hr/number_card/job_offer_acceptance_rate/job_offer_acceptance_rate.json new file mode 100644 index 000000000..ae24259b8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/job_offer_acceptance_rate/job_offer_acceptance_rate.json @@ -0,0 +1,27 @@ +{ + "aggregate_function_based_on": "", + "creation": "2022-08-21 21:21:00.295719", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Job Offer", + "dynamic_filters_json": "[]", + "filters_config": "[{\n\tfieldname: \"company\",\n\tlabel: __(\"Company\"),\n\tfieldtype: \"Link\",\n\toptions: \"Company\",\n\tdefault: frappe.defaults.get_user_default(\"Company\")\n},\n{\n\tfieldname: \"department\",\n\tlabel: __(\"Department\"),\n\tfieldtype: \"Link\",\n\toptions: \"Department\"\n}]", + "filters_json": "[]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Job Offer Acceptance Rate", + "method": "hrms.hr.doctype.job_offer.job_offer.get_offer_acceptance_rate", + "modified": "2025-09-17 19:04:19.372554", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Offer Acceptance Rate", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_full_number": 0, + "show_percentage_stats": 1, + "stats_time_interval": "Daily", + "type": "Custom" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/job_offers_(this_month)/job_offers_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/job_offers_(this_month)/job_offers_(this_month).json new file mode 100644 index 000000000..882041367 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/job_offers_(this_month)/job_offers_(this_month).json @@ -0,0 +1,24 @@ +{ + "aggregate_function_based_on": "", + "creation": "2022-08-20 21:38:34.963486", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Job Offer", + "dynamic_filters_json": "[[\"Job Offer\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Job Offer\",\"offer_date\",\"Timespan\",\"this month\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Job Offers (This Month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Offers (This Month)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/job_openings/job_openings.json b/apps/erpnext/src/hrms/hrms/hr/number_card/job_openings/job_openings.json new file mode 100644 index 000000000..fcf5119d5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/job_openings/job_openings.json @@ -0,0 +1,24 @@ +{ + "aggregate_function_based_on": "", + "creation": "2022-08-20 21:24:35.929507", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Job Opening", + "dynamic_filters_json": "[[\"Job Opening\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Job Opening\",\"status\",\"=\",\"Open\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Job Openings", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Openings", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/late_entry_(this_month)/late_entry_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/late_entry_(this_month)/late_entry_(this_month).json new file mode 100644 index 000000000..328a5a437 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/late_entry_(this_month)/late_entry_(this_month).json @@ -0,0 +1,25 @@ +{ + "aggregate_function_based_on": "", + "color": "#CB2929", + "creation": "2022-08-21 14:20:15.678344", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Attendance", + "dynamic_filters_json": "[[\"Attendance\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Attendance\",\"docstatus\",\"=\",\"1\"],[\"Attendance\",\"late_entry\",\"=\",1],[\"Attendance\",\"attendance_date\",\"Timespan\",\"this month\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Late Entry (This Month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Late Entry (This Month)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/new_hires_(this_year)/new_hires_(this_year).json b/apps/erpnext/src/hrms/hrms/hr/number_card/new_hires_(this_year)/new_hires_(this_year).json new file mode 100644 index 000000000..123006c96 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/new_hires_(this_year)/new_hires_(this_year).json @@ -0,0 +1,21 @@ +{ + "creation": "2020-07-22 11:56:32.914057", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Employee", + "dynamic_filters_json": "[[\"Employee\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee\",\"date_of_joining\",\"Timespan\",\"this year\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "New Hires (This Year)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "New Hires (This Year)", + "owner": "Administrator", + "show_percentage_stats": 1, + "stats_time_interval": "Yearly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/number_of_employees_on_leave_(this_month)/number_of_employees_on_leave_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/number_of_employees_on_leave_(this_month)/number_of_employees_on_leave_(this_month).json new file mode 100644 index 000000000..83eaf1984 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/number_of_employees_on_leave_(this_month)/number_of_employees_on_leave_(this_month).json @@ -0,0 +1,26 @@ +{ + "aggregate_function_based_on": "", + "creation": "2026-01-09 23:00:12.873808", + "currency": "INR", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Leave Application", + "dynamic_filters_json": "[]", + "filters_json": "[[\"Leave Application\",\"docstatus\",\"=\",\"1\"],[\"Leave Application\",\"status\",\"=\",\"Approved\"],[\"Leave Application\",\"from_date\",\"Timespan\",\"this month\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Number of Employees on Leave (This Month)", + "modified": "2026-01-09 23:00:12.873808", + "modified_by": "Administrator", + "module": "HR", + "name": "Number of Employees on Leave (This Month)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_full_number": 0, + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/number_of_employees_on_leave_(today)/number_of_employees_on_leave_(today).json b/apps/erpnext/src/hrms/hrms/hr/number_card/number_of_employees_on_leave_(today)/number_of_employees_on_leave_(today).json new file mode 100644 index 000000000..0dd60ffaf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/number_of_employees_on_leave_(today)/number_of_employees_on_leave_(today).json @@ -0,0 +1,26 @@ +{ + "aggregate_function_based_on": "", + "creation": "2026-01-09 23:08:03.464490", + "currency": "INR", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Leave Application", + "dynamic_filters_json": "[[\"Leave Application\",\"from_date\",\"<=\",\"frappe.datetime.get_today()\"],[\"Leave Application\",\"to_date\",\">=\",\"frappe.datetime.get_today()\"],[\"Leave Application\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Leave Application\",\"docstatus\",\"=\",\"1\"],[\"Leave Application\",\"status\",\"=\",\"Approved\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Number of Employees on Leave (Today)", + "modified": "2026-01-09 23:18:03.464490", + "modified_by": "Administrator", + "module": "HR", + "name": "Number of Employees on Leave (Today)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_full_number": 0, + "show_percentage_stats": 1, + "stats_time_interval": "Daily", + "type": "Document Type" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/onboardings_(this_month)/onboardings_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/onboardings_(this_month)/onboardings_(this_month).json new file mode 100644 index 000000000..5cac4979a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/onboardings_(this_month)/onboardings_(this_month).json @@ -0,0 +1,24 @@ +{ + "aggregate_function_based_on": "", + "creation": "2022-08-21 13:11:40.726412", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Employee Onboarding", + "dynamic_filters_json": "[[\"Employee Onboarding\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee Onboarding\",\"boarding_begins_on\",\"Timespan\",\"this month\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Onboardings (This Month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Onboardings (This Month)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/promotions_(this_month)/promotions_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/promotions_(this_month)/promotions_(this_month).json new file mode 100644 index 000000000..dfcdbee15 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/promotions_(this_month)/promotions_(this_month).json @@ -0,0 +1,24 @@ +{ + "aggregate_function_based_on": "", + "creation": "2022-08-21 13:13:59.611516", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Employee Promotion", + "dynamic_filters_json": "[[\"Employee Promotion\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee Promotion\",\"promotion_date\",\"Timespan\",\"last month\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Promotions (This Month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Promotions (This Month)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/rejected_claims_(this_month)/rejected_claims_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/rejected_claims_(this_month)/rejected_claims_(this_month).json new file mode 100644 index 000000000..019793502 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/rejected_claims_(this_month)/rejected_claims_(this_month).json @@ -0,0 +1,25 @@ +{ + "aggregate_function_based_on": "", + "color": "#CB2929", + "creation": "2022-08-31 23:03:51.721886", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Expense Claim", + "dynamic_filters_json": "[]", + "filters_json": "[[\"Expense Claim\",\"approval_status\",\"=\",\"Rejected\"],[\"Expense Claim\",\"posting_date\",\"Timespan\",\"this month\"],[\"Expense Claim\",\"docstatus\",\"=\",\"1\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Rejected Claims (This Month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Rejected Claims (This Month)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/rejected_job_applicants/rejected_job_applicants.json b/apps/erpnext/src/hrms/hrms/hr/number_card/rejected_job_applicants/rejected_job_applicants.json new file mode 100644 index 000000000..022eddde7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/rejected_job_applicants/rejected_job_applicants.json @@ -0,0 +1,25 @@ +{ + "aggregate_function_based_on": "", + "color": "#CB2929", + "creation": "2022-08-20 21:27:56.516752", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Job Applicant", + "dynamic_filters_json": "[]", + "filters_json": "[[\"Job Applicant\",\"status\",\"=\",\"Rejected\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Rejected Job Applicants", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Rejected Job Applicants", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/separations_(this_month)/separations_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/separations_(this_month)/separations_(this_month).json new file mode 100644 index 000000000..2f64245b7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/separations_(this_month)/separations_(this_month).json @@ -0,0 +1,24 @@ +{ + "aggregate_function_based_on": "", + "creation": "2022-08-21 13:13:09.342388", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Employee Separation", + "dynamic_filters_json": "[[\"Employee Separation\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee Separation\",\"boarding_begins_on\",\"Timespan\",\"this month\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Separations (This Month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Separations (This Month)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/time_to_fill/time_to_fill.json b/apps/erpnext/src/hrms/hrms/hr/number_card/time_to_fill/time_to_fill.json new file mode 100644 index 000000000..10250107c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/time_to_fill/time_to_fill.json @@ -0,0 +1,27 @@ +{ + "aggregate_function_based_on": "", + "creation": "2022-08-29 23:28:14.869725", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Job Requisition", + "dynamic_filters_json": "[]", + "filters_config": "[{\n\tfieldname: \"company\",\n\tlabel: __(\"Company\"),\n\tfieldtype: \"Link\",\n\toptions: \"Company\",\n\tdefault: frappe.defaults.get_user_default(\"Company\")\n},\n{\n\tfieldname: \"department\",\n\tlabel: __(\"Department\"),\n\tfieldtype: \"Link\",\n\toptions: \"Department\"\n},\n{\n fieldname: \"designation\",\n\tlabel: __(\"Designation\"),\n\tfieldtype: \"Link\",\n\toptions: \"Designation\"\n}]", + "filters_json": "[]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Time to Fill", + "method": "hrms.hr.doctype.job_requisition.job_requisition.get_avg_time_to_fill", + "modified": "2025-09-17 19:05:34.012311", + "modified_by": "Administrator", + "module": "HR", + "name": "Time to Fill", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_full_number": 0, + "show_percentage_stats": 1, + "stats_time_interval": "Daily", + "type": "Custom" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/total_absent_(this_month)/total_absent_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/total_absent_(this_month)/total_absent_(this_month).json new file mode 100644 index 000000000..5bb2886dd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/total_absent_(this_month)/total_absent_(this_month).json @@ -0,0 +1,25 @@ +{ + "aggregate_function_based_on": "", + "color": "#CB2929", + "creation": "2022-08-21 14:19:21.786541", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Attendance", + "dynamic_filters_json": "[[\"Attendance\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Attendance\",\"docstatus\",\"=\",\"1\"],[\"Attendance\",\"status\",\"=\",\"Absent\"],[\"Attendance\",\"attendance_date\",\"Timespan\",\"this month\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Total Absent (This Month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Total Absent (This Month)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/total_applicants_(this_month)/total_applicants_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/total_applicants_(this_month)/total_applicants_(this_month).json new file mode 100644 index 000000000..2ecc5035a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/total_applicants_(this_month)/total_applicants_(this_month).json @@ -0,0 +1,21 @@ +{ + "creation": "2020-07-22 11:56:32.977716", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Job Applicant", + "dynamic_filters_json": "", + "filters_json": "[[\"Job Applicant\",\"creation\",\"Timespan\",\"this month\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Total Applicants (This Month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Total Applicants (This month)", + "owner": "Administrator", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/total_employees/total_employees.json b/apps/erpnext/src/hrms/hrms/hr/number_card/total_employees/total_employees.json new file mode 100644 index 000000000..a9ffd251d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/total_employees/total_employees.json @@ -0,0 +1,21 @@ +{ + "creation": "2020-07-22 11:56:32.874849", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Employee", + "dynamic_filters_json": "[[\"Employee\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee\",\"status\",\"=\",\"Active\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Active Employees", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Total Employees", + "owner": "Administrator", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/total_present_(this_month)/total_present_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/total_present_(this_month)/total_present_(this_month).json new file mode 100644 index 000000000..ad421349b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/total_present_(this_month)/total_present_(this_month).json @@ -0,0 +1,25 @@ +{ + "aggregate_function_based_on": "", + "color": "#29CD42", + "creation": "2022-08-21 14:18:52.965856", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Attendance", + "dynamic_filters_json": "[[\"Attendance\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Attendance\",\"docstatus\",\"=\",\"1\"],[\"Attendance\",\"status\",\"=\",\"Present\"],[\"Attendance\",\"attendance_date\",\"Timespan\",\"this month\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Total Present (This Month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Total Present (This Month)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/trainings_(this_month)/trainings_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/trainings_(this_month)/trainings_(this_month).json new file mode 100644 index 000000000..a6ea58673 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/trainings_(this_month)/trainings_(this_month).json @@ -0,0 +1,24 @@ +{ + "aggregate_function_based_on": "", + "creation": "2022-08-21 13:15:23.077773", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Training Event", + "dynamic_filters_json": "[[\"Training Event\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Training Event\",\"start_time\",\"Timespan\",\"this month\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Trainings (This Month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Trainings (This Month)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/number_card/transfers_(this_month)/transfers_(this_month).json b/apps/erpnext/src/hrms/hrms/hr/number_card/transfers_(this_month)/transfers_(this_month).json new file mode 100644 index 000000000..ae1603ea6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/number_card/transfers_(this_month)/transfers_(this_month).json @@ -0,0 +1,24 @@ +{ + "aggregate_function_based_on": "", + "creation": "2022-08-21 13:14:36.205338", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Employee Transfer", + "dynamic_filters_json": "[[\"Employee Transfer\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee Transfer\",\"transfer_date\",\"Timespan\",\"this month\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Transfers (This Month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "HR", + "name": "Transfers (This Month)", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/page/__init__.py b/apps/erpnext/src/hrms/hrms/hr/page/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/__init__.py b/apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/organizational_chart.js b/apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/organizational_chart.js new file mode 100644 index 000000000..85fdf1c3a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/organizational_chart.js @@ -0,0 +1,23 @@ +frappe.pages["organizational-chart"].on_page_load = function (wrapper) { + frappe.ui.make_app_page({ + parent: wrapper, + title: __("Organizational Chart"), + single_column: true, + }); + + $(wrapper).bind("show", () => { + frappe.require("hierarchy-chart.bundle.js", () => { + let organizational_chart; + let method = "hrms.hr.page.organizational_chart.organizational_chart.get_children"; + + if (frappe.is_mobile()) { + organizational_chart = new hrms.HierarchyChartMobile("Employee", wrapper, method); + } else { + organizational_chart = new hrms.HierarchyChart("Employee", wrapper, method); + } + + frappe.breadcrumbs.add("HR"); + organizational_chart.show(); + }); + }); +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/organizational_chart.json b/apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/organizational_chart.json new file mode 100644 index 000000000..af08b21cf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/organizational_chart.json @@ -0,0 +1,29 @@ +{ + "content": null, + "creation": "2021-05-25 10:53:10.107241", + "docstatus": 0, + "doctype": "Page", + "idx": 0, + "modified": "2026-01-24 18:44:07.197592", + "modified_by": "Administrator", + "module": "HR", + "name": "organizational-chart", + "owner": "Administrator", + "page_name": "Organizational Chart", + "roles": [ + { + "role": "HR User" + }, + { + "role": "HR Manager" + }, + { + "role": "Employee" + } + ], + "script": null, + "standard": "Yes", + "style": null, + "system_page": 0, + "title": "Organizational Chart" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/organizational_chart.py b/apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/organizational_chart.py new file mode 100644 index 000000000..8be480210 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/organizational_chart.py @@ -0,0 +1,49 @@ +import frappe +from frappe.query_builder.functions import Count + + +@frappe.whitelist() +def get_children(parent=None, company=None, exclude_node=None): + filters = [["status", "=", "Active"]] + if company and company != "All Companies": + filters.append(["company", "=", company]) + + if parent and company and parent != company: + filters.append(["reports_to", "=", parent]) + else: + filters.append(["reports_to", "=", ""]) + + if exclude_node: + filters.append(["name", "!=", exclude_node]) + + employees = frappe.get_all( + "Employee", + fields=[ + "employee_name as name", + "name as id", + "lft", + "rgt", + "reports_to", + "image", + "designation as title", + ], + filters=filters, + order_by="name", + ) + + for employee in employees: + employee.connections = get_connections(employee.id, employee.lft, employee.rgt) + employee.expandable = bool(employee.connections) + + return employees + + +def get_connections(employee: str, lft: int, rgt: int) -> int: + Employee = frappe.qb.DocType("Employee") + query = ( + frappe.qb.from_(Employee) + .select(Count(Employee.name)) + .where((Employee.lft > lft) & (Employee.rgt < rgt) & (Employee.status == "Active")) + ).run() + + return query[0][0] diff --git a/apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/test_organizational_chart.py b/apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/test_organizational_chart.py new file mode 100644 index 000000000..4440b76de --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/page/organizational_chart/test_organizational_chart.py @@ -0,0 +1,37 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe +from frappe.tests import IntegrationTestCase + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.page.organizational_chart.organizational_chart import get_children +from hrms.tests.test_utils import create_company + + +class TestOrganizationalChart(IntegrationTestCase): + def setUp(self): + self.company = create_company("Test Org Chart").name + frappe.db.delete("Employee", {"company": self.company}) + + def test_get_children(self): + create_company("Test Org Chart").name + emp1 = make_employee("testemp1@mail.com", company=self.company) + emp2 = make_employee("testemp2@mail.com", company=self.company, reports_to=emp1) + emp3 = make_employee("testemp3@mail.com", company=self.company, reports_to=emp1) + make_employee("testemp4@mail.com", company=self.company, reports_to=emp2) + + # root node + children = get_children(company=self.company) + self.assertEqual(len(children), 1) + self.assertEqual(children[0].id, emp1) + self.assertEqual(children[0].connections, 3) + + # root's children + children = get_children(parent=emp1, company=self.company) + self.assertEqual(len(children), 2) + self.assertEqual(children[0].id, emp2) + self.assertEqual(children[0].connections, 1) + self.assertEqual(children[1].id, emp3) + self.assertEqual(children[1].connections, 0) diff --git a/apps/erpnext/src/hrms/hrms/hr/page/team_updates/__init__.py b/apps/erpnext/src/hrms/hrms/hr/page/team_updates/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_update_row.html b/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_update_row.html new file mode 100644 index 000000000..4f367541b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_update_row.html @@ -0,0 +1,15 @@ +
    +
    + {%= date_sep || "" %}
    +
    +
    +
    + {{ avatar }} +
    +
    + {{ content }} +
    +
    +
    +
    diff --git a/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.css b/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.css new file mode 100644 index 000000000..9fe2de8b6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.css @@ -0,0 +1,57 @@ +.date-indicator { + background: none; + font-size: 12px; + vertical-align: middle; + font-weight: bold; + color: #6c7680; +} +.date-indicator::after { + margin: 0 -4px 0 12px; + content: ""; + display: inline-block; + height: 8px; + width: 8px; + border-radius: 8px; + background: #d1d8dd; +} + +.date-indicator.blue { + color: #5e64ff; +} + +.date-indicator.blue::after { + background: #5e64ff; +} + +.activity-row { +} + +.activity-message { + border-left: 1px solid #d1d8dd; +} + +.activity-message .row { + padding: 15px; + margin-right: 0px; + border-bottom: 1px solid #d1d8dd; +} + +.activity-row:last-child .activity-message .row { + border-bottom: none; +} + +.activity-row .content { + padding-left: 0px; + padding-right: 30px; +} + +.activity-date { + padding: 15px; + padding-right: 0px; + z-index: 1; +} + +.for-more { + border-top: 1px solid #d1d8dd; + padding: 10px; +} diff --git a/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.js b/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.js new file mode 100644 index 000000000..8973d538c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.js @@ -0,0 +1,91 @@ +frappe.pages["team-updates"].on_page_load = function (wrapper) { + var page = frappe.ui.make_app_page({ + parent: wrapper, + title: __("Team Updates"), + single_column: true, + }); + + frappe.team_updates.make(page); + frappe.team_updates.run(); + + if (frappe.model.can_read("Daily Work Summary Group")) { + page.add_menu_item(__("Daily Work Summary Group"), function () { + frappe.set_route("Form", "Daily Work Summary Group"); + }); + } +}; + +frappe.team_updates = { + start: 0, + make: function (page) { + var me = frappe.team_updates; + me.page = page; + me.body = $("
    ").appendTo(me.page.main); + me.more = $( + '
    ", + ) + .appendTo(me.page.main) + .find(".btn-more") + .on("click", function () { + me.start += 40; + me.run(); + }); + }, + run: function () { + var me = frappe.team_updates; + frappe.call({ + method: "hrms.hr.page.team_updates.team_updates.get_data", + args: { + start: me.start, + }, + callback: function (r) { + if (r.message && r.message.length > 0) { + r.message.forEach(function (d) { + me.add_row(d); + }); + } else { + frappe.show_alert({ message: __("No more updates"), indicator: "gray" }); + me.more.parent().addClass("hidden"); + } + }, + }); + }, + add_row: function (data) { + var me = frappe.team_updates; + + data.by = frappe.user.full_name(data.sender); + data.avatar = frappe.avatar(data.sender); + data.when = comment_when(data.creation); + + var date = frappe.datetime.str_to_obj(data.creation); + var last = me.last_feed_date; + + if ( + (last && frappe.datetime.obj_to_str(last) != frappe.datetime.obj_to_str(date)) || + !last + ) { + var diff = frappe.datetime.get_day_diff( + frappe.datetime.get_today(), + frappe.datetime.obj_to_str(date), + ); + var pdate; + if (diff < 1) { + pdate = "Today"; + } else if (diff < 2) { + pdate = "Yesterday"; + } else { + pdate = frappe.datetime.global_date_format(date); + } + data.date_sep = pdate; + data.date_class = pdate == "Today" ? "date-indicator blue" : "date-indicator"; + } else { + data.date_sep = null; + data.date_class = ""; + } + me.last_feed_date = date; + + $(frappe.render_template("team_update_row", data)).appendTo(me.body); + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.json b/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.json new file mode 100644 index 000000000..167c67fb4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.json @@ -0,0 +1,25 @@ +{ + "content": null, + "creation": "2017-01-31 11:02:31.614045", + "docstatus": 0, + "doctype": "Page", + "idx": 0, + "modified": "2017-01-31 11:25:01.983200", + "modified_by": "Administrator", + "module": "HR", + "name": "team-updates", + "owner": "Administrator", + "page_name": "team-updates", + "roles": [ + { + "role": "Employee" + }, + { + "role": "System Manager" + } + ], + "script": null, + "standard": "Yes", + "style": null, + "title": "Team Updates" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.py b/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.py new file mode 100644 index 000000000..9c32f9ae2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/page/team_updates/team_updates.py @@ -0,0 +1,23 @@ +from email_reply_parser import EmailReplyParser + +import frappe + + +@frappe.whitelist() +def get_data(start=0): + # frappe.only_for('Employee', 'System Manager') + data = frappe.get_all( + "Communication", + fields=("content", "text_content", "sender", "creation"), + filters=dict(reference_doctype="Daily Work Summary"), + order_by="creation desc", + limit=40, + start=start, + ) + + for d in data: + d.sender_name = frappe.db.get_value("Employee", {"user_id": d.sender}, "employee_name") or d.sender + if d.text_content: + d.content = frappe.utils.md_to_html(EmailReplyParser.parse_reply(d.text_content)) + + return data diff --git a/apps/erpnext/src/hrms/hrms/hr/print_format/__init__.py b/apps/erpnext/src/hrms/hrms/hr/print_format/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/print_format/job_offer/__init__.py b/apps/erpnext/src/hrms/hrms/hr/print_format/job_offer/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/print_format/job_offer/job_offer.json b/apps/erpnext/src/hrms/hrms/hr/print_format/job_offer/job_offer.json new file mode 100644 index 000000000..0a922306b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/print_format/job_offer/job_offer.json @@ -0,0 +1,21 @@ +{ + "align_labels_right": 0, + "creation": "2015-03-05 14:34:26.751210", + "custom_format": 1, + "disabled": 0, + "doc_type": "Job Offer", + "docstatus": 0, + "doctype": "Print Format", + "html": "{% set terms_exist = doc.terms and (doc.terms|striptags).strip() or \"\" %}\n\n{% if letter_head and not no_letterhead -%}\n
    {{ letter_head }}
    \n
    \n{%- endif %}\n\n
    \n

    \n\n\nDate: {{ doc.offer_date }}\n

    \n\nDear {{ doc.applicant_name }}, \n\n

    \n\nWe are pleased to appoint you in the services of {{ doc.company }} on the terms and conditions detailed in this letter.\n\n

    \n\nYour designation shall be {{ doc.designation }}.\n\n

    \n\n\n\n{%- if doc.offer_terms -%}\n {%- for row in doc.offer_terms -%}\n {{ row.offer_term }}: {{ row.value }}\n\n
    \n {%- endfor -%}\n{%- endif -%}\n\n
    \n\n\n\n\nPlease read the detailed terms as below. If you have any queries, feel free to get in touch with us.\nWe look forward to your long and fruitful career association with our organisation.\nIf you decide to join us, 'Welcome to {{ doc.company }} !'\n\n

    \n\n

    \n\nYours truly,\n\n



    \n\nAuthorized Signatory\n\n
    \n\n{{ doc.company }}\n\n\n\n

    \n
    \n\n\n{% if terms_exist %}\n
    {{ doc.terms }}
    \n{% endif %}", + "idx": 0, + "line_breaks": 0, + "modified": "2018-02-15 03:03:55.844085", + "modified_by": "Administrator", + "module": "HR", + "name": "Job Offer", + "owner": "Administrator", + "print_format_builder": 0, + "print_format_type": "Jinja", + "show_section_headings": 0, + "standard": "Yes" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/print_format/standard_appointment_letter/__init__.py b/apps/erpnext/src/hrms/hrms/hr/print_format/standard_appointment_letter/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/print_format/standard_appointment_letter/standard_appointment_letter.html b/apps/erpnext/src/hrms/hrms/hr/print_format/standard_appointment_letter/standard_appointment_letter.html new file mode 100644 index 000000000..87daafcaa --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/print_format/standard_appointment_letter/standard_appointment_letter.html @@ -0,0 +1,38 @@ +{%- from "templates/print_formats/standard_macros.html" import add_header -%} + +

    Appointment Letter

    +
    +
    + {{ doc.applicant_name }}, +
    +
    + Date: {{ doc.appointment_date }} +
    +
    +
    + {{ doc.introduction }} +
    +
    +
      + {% for content in doc.terms %} +
    • + + {{ content.title }}: {{ content.description }} + +
    • + {% endfor %} +
    +
    +
    +Your sincerely,
    +For {{ doc.company }} +
    + +
    + {{ doc.closing_notes }} +
    + +
    + ________________
    + {{ doc.applicant_name }} +
    diff --git a/apps/erpnext/src/hrms/hrms/hr/print_format/standard_appointment_letter/standard_appointment_letter.json b/apps/erpnext/src/hrms/hrms/hr/print_format/standard_appointment_letter/standard_appointment_letter.json new file mode 100644 index 000000000..1813e711f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/print_format/standard_appointment_letter/standard_appointment_letter.json @@ -0,0 +1,23 @@ +{ + "align_labels_right": 0, + "creation": "2019-12-26 15:22:44.200332", + "custom_format": 0, + "default_print_language": "en", + "disabled": 0, + "doc_type": "Appointment Letter", + "docstatus": 0, + "doctype": "Print Format", + "font": "Default", + "idx": 0, + "line_breaks": 0, + "modified": "2020-01-21 17:24:16.705082", + "modified_by": "Administrator", + "module": "HR", + "name": "Standard Appointment Letter", + "owner": "Administrator", + "print_format_builder": 0, + "print_format_type": "Jinja", + "raw_printing": 0, + "show_section_headings": 0, + "standard": "Yes" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/appraisal_overview.js b/apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/appraisal_overview.js new file mode 100644 index 000000000..61cbd3391 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/appraisal_overview.js @@ -0,0 +1,40 @@ +// Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Appraisal Overview"] = { + filters: [ + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + reqd: 1, + default: frappe.defaults.get_user_default("Company"), + }, + { + fieldname: "appraisal_cycle", + fieldtype: "Link", + label: __("Appraisal Cycle"), + options: "Appraisal Cycle", + }, + { + fieldname: "employee", + fieldtype: "Link", + label: __("Employee"), + options: "Employee", + }, + { + fieldname: "department", + label: __("Department"), + fieldtype: "Link", + options: "Department", + }, + { + fieldname: "designation", + label: __("Designation"), + fieldtype: "Link", + options: "Designation", + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/appraisal_overview.json b/apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/appraisal_overview.json new file mode 100644 index 000000000..c61cf170b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/appraisal_overview.json @@ -0,0 +1,39 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2023-03-24 11:04:25.623467", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "modified": "2023-03-30 18:50:42.394262", + "modified_by": "Administrator", + "module": "HR", + "name": "Appraisal Overview", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Appraisal", + "reference_report": "", + "report_name": "Appraisal Overview", + "report_script": "", + "report_type": "Script Report", + "roles": [ + { + "role": "Employee" + }, + { + "role": "System Manager" + }, + { + "role": "HR User" + }, + { + "role": "Employee Self Service" + }, + { + "role": "HR Manager" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/appraisal_overview.py b/apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/appraisal_overview.py new file mode 100644 index 000000000..db29196ac --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/appraisal_overview.py @@ -0,0 +1,131 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ + + +def execute(filters: dict | None = None) -> tuple: + filters = frappe._dict(filters or {}) + columns = get_columns() + data = get_data(filters) + chart = get_chart_data(data) + + return columns, data, None, chart + + +def get_columns() -> list[dict]: + return [ + { + "fieldname": "employee", + "fieldtype": "Link", + "label": _("Employee"), + "options": "Employee", + "width": 100, + }, + {"fieldname": "employee_name", "fieldtype": "Data", "label": _("Employee Name"), "width": 0}, + { + "fieldname": "designation", + "fieldtype": "Link", + "label": _("Designation"), + "options": "Designation", + "width": 100, + }, + { + "fieldname": "appraisal_cycle", + "fieldtype": "Link", + "label": _("Appraisal Cycle"), + "options": "Appraisal Cycle", + "width": 100, + }, + { + "fieldname": "appraisal", + "fieldtype": "Link", + "label": _("Appraisal"), + "options": "Appraisal", + "width": 0, + }, + {"fieldname": "feedback_count", "fieldtype": "Int", "label": _("Feedback Count"), "width": 0}, + { + "fieldname": "avg_feedback_score", + "fieldtype": "Float", + "label": _("Avg Feedback Score"), + "width": 0, + }, + {"fieldname": "goal_score", "fieldtype": "Float", "label": _("Goal Score"), "width": 0}, + {"fieldname": "self_score", "fieldtype": "Float", "label": _("Self Score"), "width": 0}, + {"fieldname": "final_score", "fieldtype": "Float", "label": _("Final Score"), "width": 0}, + { + "fieldname": "department", + "fieldtype": "Link", + "label": _("Department"), + "options": "Department", + "width": 150, + }, + ] + + +def get_data(filters: dict | None = None) -> list[dict]: + Appraisal = frappe.qb.DocType("Appraisal") + query = ( + frappe.qb.from_(Appraisal) + .select( + Appraisal.employee, + Appraisal.employee_name, + Appraisal.designation, + Appraisal.department, + Appraisal.appraisal_cycle, + Appraisal.name.as_("appraisal"), + Appraisal.avg_feedback_score, + Appraisal.total_score.as_("goal_score"), + Appraisal.self_score, + Appraisal.final_score, + ) + .where(Appraisal.docstatus != 2) + ) + + for condition in ["appraisal_cycle", "employee", "department", "designation", "company"]: + if filters.get(condition): + query = query.where(Appraisal[condition] == filters.get(condition)) + + query = query.orderby(Appraisal.appraisal_cycle) + query = query.orderby(Appraisal.final_score, order=frappe.qb.desc) + appraisals = query.run(as_dict=True) + + for row in appraisals: + row["feedback_count"] = frappe.db.count( + "Employee Performance Feedback", {"appraisal": row.appraisal, "docstatus": 1} + ) + + return appraisals + + +def get_chart_data(data: list[dict]) -> dict: + labels = [] + goal_score = [] + self_score = [] + feedback_score = [] + final_score = [] + + # show only top 10 in the chart for better readability + for row in data[:10]: + labels.append(row.employee_name) + goal_score.append(row.goal_score) + self_score.append(row.self_score) + feedback_score.append(row.avg_feedback_score) + final_score.append(row.final_score) + + return { + "data": { + "labels": labels, + "datasets": [ + {"name": _("Goal Score"), "values": goal_score}, + {"name": _("Self Score"), "values": self_score}, + {"name": _("Feedback Score"), "values": feedback_score}, + {"name": _("Final Score"), "values": final_score}, + ], + }, + "type": "bar", + "barOptions": {"spaceRatio": 0.7}, + "height": 250, + } diff --git a/apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/test_appraisal_overview.py b/apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/test_appraisal_overview.py new file mode 100644 index 000000000..23e49fb32 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/appraisal_overview/test_appraisal_overview.py @@ -0,0 +1,96 @@ +import frappe +from frappe.tests import IntegrationTestCase + +from erpnext.setup.doctype.designation.test_designation import create_designation +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.appraisal_cycle.test_appraisal_cycle import create_appraisal_cycle +from hrms.hr.doctype.appraisal_template.test_appraisal_template import create_appraisal_template +from hrms.hr.doctype.employee_performance_feedback.test_employee_performance_feedback import ( + create_performance_feedback, +) +from hrms.hr.report.appraisal_overview.appraisal_overview import execute +from hrms.tests.test_utils import create_company + + +class TestAppraisalOverview(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Goal") + frappe.db.delete("Appraisal") + + self.company = create_company("_Test Appraisal").name + + engineer = create_designation(designation_name="Engineer") + engineer.appraisal_template = create_appraisal_template().name + engineer.save() + + consultant = create_designation(designation_name="Consultant") + consultant.appraisal_template = create_appraisal_template("Consultant").name + consultant.save() + + self.employee1 = make_employee("employee1@example.com", company=self.company, designation="Engineer") + self.employee2 = make_employee( + "employee3@example.com", company=self.company, designation="Consultant" + ) + self.reviewer = make_employee("reviewer@example.com", company=self.company, designation="Engineer") + + def test_appraisal_overview(self): + cycle = create_appraisal_cycle(kra_evaluation_method="Manual Rating") + cycle.create_appraisals() + + appraisal = frappe.get_doc("Appraisal", {"employee": self.employee1}) + appraisal = frappe.get_doc("Appraisal", appraisal.name) + + self.create_appraisal_data(appraisal) + report = execute() + data = report[1] + + expected_data = { + "employee": self.employee1, + "employee_name": appraisal.employee_name, + "designation": appraisal.designation, + "department": appraisal.department, + "appraisal_cycle": cycle.name, + "appraisal": appraisal.name, + "avg_feedback_score": 3.85, + "goal_score": 3.6, + "self_score": 3.85, + "final_score": 3.767, + "feedback_count": 1, + } + + self.assertEqual(len(data), 3) + self.assertEqual(data[0], expected_data) + + def test_appraisal_filters(self): + cycle = create_appraisal_cycle(kra_evaluation_method="Manual Rating") + cycle.create_appraisals() + + report = execute({"designation": "Consultant"}) + data = report[1] + + self.assertEqual(len(data), 1) + self.assertEqual(data[0].employee, self.employee2) + + def create_appraisal_data(self, appraisal): + # GOAL SCORE + appraisal.goals[0].score = 5 # 30% weightage + appraisal.goals[1].score = 3 # 70% weightage + + # SELF APPRAISAL SCORE + ratings = appraisal.self_ratings + ratings[0].rating = 0.8 # 70% weightage + ratings[1].rating = 0.7 # 30% weightage + + appraisal.save() + + # FEEDBACK SCORE + feedback = create_performance_feedback( + self.employee1, + self.reviewer, + appraisal.name, + ) + ratings = feedback.feedback_ratings + ratings[0].rating = 0.8 # 70% weightage + ratings[1].rating = 0.7 # 30% weightage + feedback.submit() diff --git a/apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.js b/apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.js new file mode 100644 index 000000000..2b477fb02 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.js @@ -0,0 +1,21 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +/* eslint-disable */ +frappe.query_reports["Daily Work Summary Replies"] = { + filters: [ + { + fieldname: "group", + label: __("Group"), + fieldtype: "Link", + options: "Daily Work Summary Group", + reqd: 1, + }, + { + fieldname: "range", + label: __("Date Range"), + fieldtype: "DateRange", + reqd: 1, + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json b/apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json new file mode 100644 index 000000000..04c88506d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json @@ -0,0 +1,25 @@ +{ + "add_total_row": 0, + "creation": "2018-06-04 10:30:25.673452", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 0, + "is_standard": "Yes", + "modified": "2018-06-04 10:44:04.694509", + "modified_by": "Administrator", + "module": "HR", + "name": "Daily Work Summary Replies", + "owner": "Administrator", + "ref_doctype": "Daily Work Summary", + "report_name": "Daily Work Summary Replies", + "report_type": "Script Report", + "roles": [ + { + "role": "Employee" + }, + { + "role": "HR User" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py b/apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py new file mode 100644 index 000000000..48072fdc9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py @@ -0,0 +1,61 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ + +from hrms.hr.doctype.daily_work_summary.daily_work_summary import get_user_emails_from_group + + +def execute(filters=None): + if not filters.group: + return [], [] + columns, data = get_columns(), get_data(filters) + return columns, data + + +def get_columns(filters=None): + columns = [ + {"label": _("User"), "fieldname": "user", "fieldtype": "Data", "width": 300}, + { + "label": _("Replies"), + "fieldname": "count", + "fieldtype": "data", + "width": 100, + "align": "right", + }, + { + "label": _("Total"), + "fieldname": "total", + "fieldtype": "data", + "width": 100, + "align": "right", + }, + ] + return columns + + +def get_data(filters): + daily_summary_emails = frappe.get_all( + "Daily Work Summary", fields=["name"], filters=[["creation", "Between", filters.range]] + ) + daily_summary_emails = [d.get("name") for d in daily_summary_emails] + replies = frappe.get_all( + "Communication", + fields=["content", "text_content", "sender"], + filters=[ + ["reference_doctype", "=", "Daily Work Summary"], + ["reference_name", "in", daily_summary_emails], + ["communication_type", "=", "Communication"], + ["sent_or_received", "=", "Received"], + ], + order_by="creation asc", + ) + data = [] + total = len(daily_summary_emails) + for user in get_user_emails_from_group(filters.group): + user_name = frappe.get_value("User", user, "full_name") + count = len([d for d in replies if d.sender == user]) + data.append([user_name, count, total]) + return data diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/employee_advance_summary.js b/apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/employee_advance_summary.js new file mode 100644 index 000000000..75b783143 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/employee_advance_summary.js @@ -0,0 +1,42 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Employee Advance Summary"] = { + filters: [ + { + fieldname: "employee", + label: __("Employee"), + fieldtype: "Link", + options: "Employee", + width: "80", + }, + { + fieldname: "from_date", + label: __("From Date"), + fieldtype: "Date", + default: erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[1], + width: "80", + }, + { + fieldname: "to_date", + label: __("To Date"), + fieldtype: "Date", + default: frappe.datetime.get_today(), + }, + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_user_default("Company"), + reqd: 1, + }, + { + fieldname: "status", + label: __("Status"), + fieldtype: "Select", + options: "\nDraft\nPaid\nUnpaid\nClaimed\nCancelled", + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/employee_advance_summary.json b/apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/employee_advance_summary.json new file mode 100644 index 000000000..60afd59d6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/employee_advance_summary.json @@ -0,0 +1,26 @@ +{ + "add_total_row": 1, + "apply_user_permissions": 1, + "creation": "2018-02-21 07:12:37.299923", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 0, + "is_standard": "Yes", + "modified": "2018-02-22 13:33:41.532005", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Advance Summary", + "owner": "Administrator", + "ref_doctype": "Employee Advance", + "report_name": "Employee Advance Summary", + "report_type": "Script Report", + "roles": [ + { + "role": "Employee" + }, + { + "role": "Expense Approver" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/employee_advance_summary.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/employee_advance_summary.py new file mode 100644 index 000000000..1a0997ea1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_advance_summary/employee_advance_summary.py @@ -0,0 +1,143 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from pypika import Order + +import frappe +from frappe import _, msgprint + + +def execute(filters=None): + if not filters: + filters = {} + + advances_list = get_advances(filters) + columns = get_columns() + + if not advances_list: + msgprint(_("No record found")) + return columns, advances_list + + data = [] + for advance in advances_list: + row = [ + advance.name, + advance.employee, + advance.company, + advance.posting_date, + advance.advance_amount, + advance.paid_amount, + advance.claimed_amount, + advance.return_amount, + advance.status, + advance.currency, + ] + data.append(row) + + return columns, data + + +def get_columns(): + return [ + { + "label": _("Title"), + "fieldname": "title", + "fieldtype": "Link", + "options": "Employee Advance", + "width": 120, + }, + { + "label": _("Employee"), + "fieldname": "employee", + "fieldtype": "Link", + "options": "Employee", + "width": 120, + }, + { + "label": _("Company"), + "fieldname": "company", + "fieldtype": "Link", + "options": "Company", + "width": 120, + }, + {"label": _("Posting Date"), "fieldname": "posting_date", "fieldtype": "Date", "width": 120}, + { + "label": _("Advance Amount"), + "fieldname": "advance_amount", + "fieldtype": "Currency", + "options": "currency", + "width": 120, + }, + { + "label": _("Paid Amount"), + "fieldname": "paid_amount", + "fieldtype": "Currency", + "options": "currency", + "width": 120, + }, + { + "label": _("Claimed Amount"), + "fieldname": "claimed_amount", + "fieldtype": "Currency", + "options": "currency", + "width": 120, + }, + { + "label": _("Returned Amount"), + "fieldname": "return_amount", + "fieldtype": "Currency", + "options": "currency", + "width": 120, + }, + {"label": _("Status"), "fieldname": "status", "fieldtype": "Data", "width": 120}, + { + "label": _("Currency"), + "fieldtype": "Link", + "fieldname": "currency", + "options": "Currency", + "hidden": 1, + "width": 120, + }, + ] + + +def get_advances(filters): + EmployeeAdvance = frappe.qb.DocType("Employee Advance") + + query = ( + frappe.qb.from_(EmployeeAdvance) + .select( + EmployeeAdvance.name, + EmployeeAdvance.employee, + EmployeeAdvance.paid_amount, + EmployeeAdvance.status, + EmployeeAdvance.advance_amount, + EmployeeAdvance.claimed_amount, + EmployeeAdvance.return_amount, + EmployeeAdvance.company, + EmployeeAdvance.posting_date, + EmployeeAdvance.purpose, + EmployeeAdvance.currency, + ) + .where(EmployeeAdvance.docstatus < 2) + ) + + if filters.get("employee"): + query = query.where(EmployeeAdvance.employee == filters.employee) + + if filters.get("company"): + query = query.where(EmployeeAdvance.company == filters.company) + + if filters.get("status"): + query = query.where(EmployeeAdvance.status == filters.status) + + if filters.get("from_date"): + query = query.where(EmployeeAdvance.posting_date >= filters.from_date) + + if filters.get("to_date"): + query = query.where(EmployeeAdvance.posting_date <= filters.to_date) + + return query.orderby(EmployeeAdvance.posting_date, EmployeeAdvance.name, order=Order.desc).run( + as_dict=True + ) diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/employee_analytics.js b/apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/employee_analytics.js new file mode 100644 index 000000000..63564f45c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/employee_analytics.js @@ -0,0 +1,23 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Employee Analytics"] = { + filters: [ + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_user_default("Company"), + reqd: 1, + }, + { + fieldname: "parameter", + label: __("Parameter"), + fieldtype: "Select", + options: ["Branch", "Grade", "Department", "Designation", "Employment Type"], + reqd: 1, + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/employee_analytics.json b/apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/employee_analytics.json new file mode 100644 index 000000000..5a7ab9a25 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/employee_analytics.json @@ -0,0 +1,30 @@ +{ + "add_total_row": 0, + "creation": "2020-05-12 13:52:50.631086", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 0, + "is_standard": "Yes", + "modified": "2020-05-12 13:52:50.631086", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Analytics", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Employee", + "report_name": "Employee Analytics", + "report_type": "Script Report", + "roles": [ + { + "role": "Employee" + }, + { + "role": "HR User" + }, + { + "role": "HR Manager" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/employee_analytics.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/employee_analytics.py new file mode 100644 index 000000000..e777b1185 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/employee_analytics.py @@ -0,0 +1,101 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt +from copy import deepcopy + +import frappe +from frappe import _ +from frappe.query_builder import Criterion +from frappe.query_builder.functions import Count + +from erpnext.accounts.utils import build_qb_match_conditions + + +def execute(filters=None): + if not filters: + filters = {} + + if not filters["company"]: + frappe.throw(_("{0} is mandatory").format(_("Company"))) + + columns = get_columns() + employees = get_employees(filters) + parameters = get_parameters(filters) + + chart = get_chart_data(parameters, filters) + return columns, employees, None, chart + + +def get_columns(): + return [ + _("Employee") + ":Link/Employee:120", + _("Name") + ":Data:200", + _("Date of Birth") + ":Date:100", + _("Branch") + ":Link/Branch:120", + _("Department") + ":Link/Department:120", + _("Designation") + ":Link/Designation:120", + _("Gender") + "::100", + _("Company") + ":Link/Company:120", + ] + + +def get_employees(filters): + filters_for_employees = frappe._dict(deepcopy(filters) or {}) + filters_for_employees["status"] = "Active" + filters_for_employees[filters.get("parameter").lower().replace(" ", "_")] = ["is", "set"] + filters_for_employees.pop("parameter") + return frappe.get_list( + "Employee", + filters=filters_for_employees, + fields=[ + "name", + "employee_name", + "date_of_birth", + "branch", + "department", + "designation", + "gender", + "company", + ], + as_list=True, + ) + + +def get_parameters(filters): + if filters.get("parameter") == "Grade": + parameter = "Employee Grade" + else: + parameter = filters.get("parameter") + return frappe.get_all(parameter, pluck="name") + + +def get_chart_data(parameters, filters): + if not parameters: + parameters = [] + datasets = [] + parameter_field_name = filters.get("parameter").lower().replace(" ", "_") + label = [] + employee = frappe.qb.DocType("Employee") + for parameter in parameters: + if parameter: + total_employee = ( + frappe.qb.from_(employee) + .select(Count(employee.name).as_("count")) + .where(employee.company == filters.get("company")) + .where(employee.status == "Active") + .where(employee[parameter_field_name] == parameter) + .where(Criterion.all(build_qb_match_conditions("Employee"))) + ).run() + if total_employee[0][0]: + label.append(parameter) + datasets.append(total_employee[0][0]) + + values = [value for value in datasets if value != 0] + + total_employee = frappe.db.count("Employee", {"status": "Active", "company": filters.get("company")}) + others = total_employee - sum(values) + + label.append("Not Set") + values.append(others) + chart = {"data": {"labels": label, "datasets": [{"name": "Employees", "values": values}]}} + chart["type"] = "donut" + return chart diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/test_employee_analytics.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/test_employee_analytics.py new file mode 100644 index 000000000..c266bc412 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_analytics/test_employee_analytics.py @@ -0,0 +1,98 @@ +import frappe +from frappe import _ +from frappe.desk.page.setup_wizard.setup_wizard import make_records +from frappe.tests import IntegrationTestCase + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.report.employee_analytics.employee_analytics import execute + + +class TestEmployeeAnalytics(IntegrationTestCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + create_branches() + create_employee_grade() + + def setUp(self): + self.company = "_Test Company" + self.company_2 = create_company("_Test Company 2") + + def test_branches(self): + make_employee("test_analytics1@example.com", company=self.company, branch="Test Branch 1") + make_employee("test_analytics2@example.com", company=self.company, branch="Test Branch 2") + make_employee("test_analytics3@example.com", company=self.company, branch="Test Branch 2") + make_employee("test_analytics4@Eexample.com", company=self.company_2) + + employees_with_no_branch = get_employees_without_set_parameter("branch", self.company) + + filters = frappe._dict({"company": self.company, "parameter": "Branch"}) + + report = execute(filters=filters) + employees_in_report = report[1] + self.assertEqual(len(employees_in_report), 3) + + chart_data = report[3]["data"] + + values_to_assert = {"Test Branch 1": 1, "Test Branch 2": 2, "Not Set": employees_with_no_branch} + test_data(self, values_to_assert, chart_data) + + def test_employee_grade(self): + make_employee("test_analytics1@example.com", company=self.company, grade="1") + make_employee("test_analytics2@example.com", company=self.company, grade="2") + make_employee("test_analytics3@example.com", company=self.company, grade="2") + + employees_with_no_grade = get_employees_without_set_parameter("grade", self.company) + values_to_assert = {"1": 1, "2": 2, "Not Set": employees_with_no_grade} + filters = frappe._dict({"company": self.company, "parameter": "Grade"}) + report = execute(filters=filters) + + chart_data = report[3]["data"] + test_data(self, values_to_assert, chart_data) + + +def test_data(self, values_to_assert, chart_data): + values = list(zip(chart_data["labels"], chart_data["datasets"][0]["values"], strict=False)) + + self.assertCountEqual(chart_data["labels"], values_to_assert.keys()) + + for label, value in values: + self.assertEqual(value, values_to_assert.get(label)) + + +def create_employee_grade(): + records = [ + {"doctype": "Employee Grade", "name": "1"}, + {"doctype": "Employee Grade", "name": "2"}, + ] + make_records(records) + + +def create_branches(): + records = [ + {"doctype": "Branch", "branch": "Test Branch 1"}, + {"doctype": "Branch", "branch": "Test Branch 2"}, + ] + make_records(records) + + +def get_employees_without_set_parameter(parameter, company): + return frappe.db.count("Employee", {parameter: ("is", "not set"), "company": company, "status": "Active"}) + + +def create_company(company_name): + if frappe.db.exists("Company", company_name): + company = frappe.get_doc("Company", company_name) + else: + company = frappe.get_doc( + { + "doctype": "Company", + "company_name": company_name, + "country": "India", + "default_currency": "INR", + "create_chart_of_accounts_based_on": "Standard Template", + "chart_of_accounts": "Standard", + } + ) + company = company.save() diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/employee_birthday.js b/apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/employee_birthday.js new file mode 100644 index 000000000..6ce733aaa --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/employee_birthday.js @@ -0,0 +1,34 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.query_reports["Employee Birthday"] = { + filters: [ + { + fieldname: "month", + label: __("Month"), + fieldtype: "Select", + options: "Jan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug\nSep\nOct\nNov\nDec", + default: [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", + ][frappe.datetime.str_to_obj(frappe.datetime.get_today()).getMonth()], + }, + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_user_default("Company"), + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/employee_birthday.json b/apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/employee_birthday.json new file mode 100644 index 000000000..7946a6a55 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/employee_birthday.json @@ -0,0 +1,29 @@ +{ + "add_total_row": 0, + "apply_user_permissions": 1, + "creation": "2013-05-06 17:56:03", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 3, + "is_standard": "Yes", + "modified": "2017-02-24 20:18:13.011024", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Birthday", + "owner": "Administrator", + "ref_doctype": "Employee", + "report_name": "Employee Birthday", + "report_type": "Script Report", + "roles": [ + { + "role": "Employee" + }, + { + "role": "HR User" + }, + { + "role": "HR Manager" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/employee_birthday.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/employee_birthday.py new file mode 100644 index 000000000..d35428c92 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/employee_birthday.py @@ -0,0 +1,76 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe +from frappe import _ +from frappe.query_builder import Criterion +from frappe.query_builder.functions import Extract + +from erpnext.accounts.utils import build_qb_match_conditions + + +def execute(filters=None): + if not filters: + filters = {} + if not filters["company"]: + frappe.throw(_("{0} is mandatory").format(_("Company"))) + columns = get_columns() + data = get_employees(filters) + + return columns, data + + +def get_columns(): + return [ + _("Employee") + ":Link/Employee:120", + _("Name") + ":Data:200", + _("Date of Birth") + ":Date:100", + _("Branch") + ":Link/Branch:120", + _("Department") + ":Link/Department:120", + _("Designation") + ":Link/Designation:120", + _("Gender") + "::60", + _("Company") + ":Link/Company:120", + ] + + +def get_employees(filters): + month = get_filtered_month(filters) + + employee = frappe.qb.DocType("Employee") + employees = ( + frappe.qb.from_(employee) + .select( + employee.name, + employee.employee_name, + employee.date_of_birth, + employee.branch, + employee.department, + employee.designation, + employee.gender, + employee.company, + ) + .where(employee.company == filters.get("company")) + .where(employee.status == "Active") + .where(Extract("month", employee.date_of_birth) == month) + .where(Criterion.all(build_qb_match_conditions("Employee"))) + ).run() + + return employees + + +def get_filtered_month(filters): + return [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", + ].index(filters["month"]) + 1 diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/test_employee_birthday.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/test_employee_birthday.py new file mode 100644 index 000000000..00dc3120a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_birthday/test_employee_birthday.py @@ -0,0 +1,63 @@ +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.staffing_plan.test_staffing_plan import make_company +from hrms.hr.report.employee_birthday.employee_birthday import execute + + +class TestEmployeeBirthday(IntegrationTestCase): + def setUp(self): + make_company(name="_New Test Company", abbr="_NTC") + self.company = "_New Test Company" + self.birthdate = getdate().replace(year=1990) + + def test_employee_birth_day_report(self): + employee_1 = make_employee( + "test_employee_birth_day1@example.com", company=self.company, date_of_birth=self.birthdate + ) + employee_2 = make_employee( + "test_employee_birth_day2@example.com", company=self.company, date_of_birth=self.birthdate + ) + employee_3 = make_employee( + "test_employee_birth_day3@example.com", company=self.company, date_of_birth=self.birthdate + ) + + filters = frappe._dict( + { + "month": self.birthdate.strftime("%b"), + "company": self.company, + } + ) + data = execute(filters=filters)[1] + self.assertEqual(len(data), 3) + self.assertEqual(data[0][0], employee_1) + self.assertEqual(data[1][0], employee_2) + self.assertEqual(data[2][0], employee_3) + + def test_user_permissions_on_employees(self): + employee_1 = make_employee( + "test_employee_birth_day1@example.com", company=self.company, date_of_birth=self.birthdate + ) + make_employee( + "test_employee_birth_day2@example.com", + company=self.company, + date_of_birth=self.birthdate, + reports_to=employee_1, + ) + + frappe.set_user("test_employee_birth_day1@example.com") + filters = frappe._dict( + { + "month": self.birthdate.strftime("%b"), + "company": self.company, + } + ) + data = execute(filters=filters)[1] + self.assertEqual(len(data), 2) + + frappe.set_user("test_employee_birth_day2@example.com") + data = execute(filters=filters)[1] + self.assertEqual(len(data), 1) diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_exits/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_exits/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_exits/employee_exits.js b/apps/erpnext/src/hrms/hrms/hr/report/employee_exits/employee_exits.js new file mode 100644 index 000000000..a85be5a0d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_exits/employee_exits.js @@ -0,0 +1,77 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Employee Exits"] = { + filters: [ + { + fieldname: "from_date", + label: __("From Date"), + fieldtype: "Date", + default: frappe.datetime.add_months(frappe.datetime.nowdate(), -12), + }, + { + fieldname: "to_date", + label: __("To Date"), + fieldtype: "Date", + default: frappe.datetime.nowdate(), + }, + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + }, + { + fieldname: "department", + label: __("Department"), + fieldtype: "Link", + options: "Department", + }, + { + fieldname: "designation", + label: __("Designation"), + fieldtype: "Link", + options: "Designation", + }, + { + fieldname: "employee", + label: __("Employee"), + fieldtype: "Link", + options: "Employee", + }, + { + fieldname: "reports_to", + label: __("Reports To"), + fieldtype: "Link", + options: "Employee", + }, + { + fieldname: "interview_status", + label: __("Interview Status"), + fieldtype: "Select", + options: ["", "Pending", "Scheduled", "Completed"], + }, + { + fieldname: "final_decision", + label: __("Final Decision"), + fieldtype: "Select", + options: ["", "Employee Retained", "Exit Confirmed"], + }, + { + fieldname: "exit_interview_pending", + label: __("Exit Interview Pending"), + fieldtype: "Check", + }, + { + fieldname: "questionnaire_pending", + label: __("Exit Questionnaire Pending"), + fieldtype: "Check", + }, + { + fieldname: "fnf_pending", + label: __("FnF Pending"), + fieldtype: "Check", + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_exits/employee_exits.json b/apps/erpnext/src/hrms/hrms/hr/report/employee_exits/employee_exits.json new file mode 100644 index 000000000..4fe9a853c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_exits/employee_exits.json @@ -0,0 +1,33 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2021-12-05 19:47:18.332319", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "letter_head": "Test", + "modified": "2021-12-05 19:47:18.332319", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Exits", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Exit Interview", + "report_name": "Employee Exits", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + }, + { + "role": "HR Manager" + }, + { + "role": "HR User" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_exits/employee_exits.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_exits/employee_exits.py new file mode 100644 index 000000000..21203e9a9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_exits/employee_exits.py @@ -0,0 +1,237 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# License: MIT. See LICENSE + +from pypika import functions as fn + +import frappe +from frappe import _ +from frappe.query_builder import Order +from frappe.utils import getdate + + +def execute(filters=None): + columns = get_columns() + data = get_data(filters) + chart = get_chart_data(data) + report_summary = get_report_summary(data) + + return columns, data, None, chart, report_summary + + +def get_columns(): + return [ + { + "label": _("Employee"), + "fieldname": "employee", + "fieldtype": "Link", + "options": "Employee", + "width": 150, + }, + {"label": _("Employee Name"), "fieldname": "employee_name", "fieldtype": "Data", "width": 150}, + { + "label": _("Date of Joining"), + "fieldname": "date_of_joining", + "fieldtype": "Date", + "width": 120, + }, + {"label": _("Relieving Date"), "fieldname": "relieving_date", "fieldtype": "Date", "width": 120}, + { + "label": _("Exit Interview"), + "fieldname": "exit_interview", + "fieldtype": "Link", + "options": "Exit Interview", + "width": 150, + }, + { + "label": _("Interview Status"), + "fieldname": "interview_status", + "fieldtype": "Data", + "width": 130, + }, + { + "label": _("Final Decision"), + "fieldname": "employee_status", + "fieldtype": "Data", + "width": 150, + }, + { + "label": _("Full and Final Statement"), + "fieldname": "full_and_final_statement", + "fieldtype": "Link", + "options": "Full and Final Statement", + "width": 180, + }, + { + "label": _("Department"), + "fieldname": "department", + "fieldtype": "Link", + "options": "Department", + "width": 120, + }, + { + "label": _("Designation"), + "fieldname": "designation", + "fieldtype": "Link", + "options": "Designation", + "width": 120, + }, + { + "label": _("Reports To"), + "fieldname": "reports_to", + "fieldtype": "Link", + "options": "Employee", + "width": 120, + }, + ] + + +def get_data(filters): + employee = frappe.qb.DocType("Employee") + interview = frappe.qb.DocType("Exit Interview") + fnf = frappe.qb.DocType("Full and Final Statement") + + query = ( + frappe.qb.from_(employee) + .left_join(interview) + .on(interview.employee == employee.name) + .left_join(fnf) + .on(fnf.employee == employee.name) + .select( + employee.name.as_("employee"), + employee.employee_name.as_("employee_name"), + employee.date_of_joining.as_("date_of_joining"), + employee.relieving_date.as_("relieving_date"), + employee.department.as_("department"), + employee.designation.as_("designation"), + employee.reports_to.as_("reports_to"), + interview.name.as_("exit_interview"), + interview.status.as_("interview_status"), + interview.employee_status.as_("employee_status"), + interview.reference_document_name.as_("questionnaire"), + fnf.name.as_("full_and_final_statement"), + ) + .distinct() + .where( + (fn.Coalesce(fn.Cast(employee.relieving_date, "char"), "") != "") + & ((interview.name.isnull()) | ((interview.name.isnotnull()) & (interview.docstatus != 2))) + & ((fnf.name.isnull()) | ((fnf.name.isnotnull()) & (fnf.docstatus != 2))) + ) + .orderby(employee.relieving_date, order=Order.asc) + ) + + query = get_conditions(filters, query, employee, interview, fnf) + result = query.run(as_dict=True) + + return result + + +def get_conditions(filters, query, employee, interview, fnf): + if filters.get("from_date") and filters.get("to_date"): + query = query.where( + employee.relieving_date[getdate(filters.get("from_date")) : getdate(filters.get("to_date"))] + ) + + elif filters.get("from_date"): + query = query.where(employee.relieving_date >= filters.get("from_date")) + + elif filters.get("to_date"): + query = query.where(employee.relieving_date <= filters.get("to_date")) + + if filters.get("company"): + query = query.where(employee.company == filters.get("company")) + + if filters.get("department"): + query = query.where(employee.department == filters.get("department")) + + if filters.get("designation"): + query = query.where(employee.designation == filters.get("designation")) + + if filters.get("employee"): + query = query.where(employee.name == filters.get("employee")) + + if filters.get("reports_to"): + query = query.where(employee.reports_to == filters.get("reports_to")) + + if filters.get("interview_status"): + query = query.where(interview.status == filters.get("interview_status")) + + if filters.get("final_decision"): + query = query.where(interview.employee_status == filters.get("final_decision")) + + if filters.get("exit_interview_pending"): + query = query.where((interview.name == "") | (interview.name.isnull())) + + if filters.get("questionnaire_pending"): + query = query.where( + (interview.reference_document_name == "") | (interview.reference_document_name.isnull()) + ) + + if filters.get("fnf_pending"): + query = query.where((fnf.name == "") | (fnf.name.isnull())) + + return query + + +def get_chart_data(data): + if not data: + return None + + retained = 0 + exit_confirmed = 0 + pending = 0 + + for entry in data: + if entry.employee_status == "Employee Retained": + retained += 1 + elif entry.employee_status == "Exit Confirmed": + exit_confirmed += 1 + else: + pending += 1 + + chart = { + "data": { + "labels": [_("Retained"), _("Exit Confirmed"), _("Decision Pending")], + "datasets": [{"name": _("Employee Status"), "values": [retained, exit_confirmed, pending]}], + }, + "type": "donut", + "colors": ["green", "red", "blue"], + } + + return chart + + +def get_report_summary(data): + if not data: + return None + + total_resignations = len(data) + interviews_pending = len([entry.name for entry in data if not entry.exit_interview]) + fnf_pending = len([entry.name for entry in data if not entry.full_and_final_statement]) + questionnaires_pending = len([entry.name for entry in data if not entry.questionnaire]) + + return [ + { + "value": total_resignations, + "label": _("Total Resignations"), + "indicator": "Red" if total_resignations > 0 else "Green", + "datatype": "Int", + }, + { + "value": interviews_pending, + "label": _("Pending Interviews"), + "indicator": "Blue" if interviews_pending > 0 else "Green", + "datatype": "Int", + }, + { + "value": fnf_pending, + "label": _("Pending FnF"), + "indicator": "Blue" if fnf_pending > 0 else "Green", + "datatype": "Int", + }, + { + "value": questionnaires_pending, + "label": _("Pending Questionnaires"), + "indicator": "Blue" if questionnaires_pending > 0 else "Green", + "datatype": "Int", + }, + ] diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_exits/test_employee_exits.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_exits/test_employee_exits.py new file mode 100644 index 000000000..15872fea8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_exits/test_employee_exits.py @@ -0,0 +1,235 @@ +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.exit_interview.test_exit_interview import create_exit_interview +from hrms.hr.doctype.full_and_final_statement.test_full_and_final_statement import ( + create_full_and_final_statement, +) +from hrms.hr.report.employee_exits.employee_exits import execute +from hrms.tests.test_utils import create_company + + +class TestEmployeeExits(IntegrationTestCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + create_company("Test Company") + frappe.db.delete("Employee", {"company": "Test Company"}) + frappe.db.delete("Full and Final Statement", {"company": "Test Company"}) + frappe.db.delete("Exit Interview", {"company": "Test Company"}) + + cls.create_records() + + @classmethod + def tearDownClass(cls): + frappe.db.rollback() + + @classmethod + def create_records(cls): + cls.emp1 = make_employee( + "employeeexit1@example.com", + company="Test Company", + date_of_joining=getdate("01-10-2021"), + relieving_date=add_days(getdate(), 14), + designation="Accountant", + ) + cls.emp2 = make_employee( + "employeeexit2@example.com", + company="Test Company", + date_of_joining=getdate("01-12-2021"), + relieving_date=add_days(getdate(), 15), + designation="Accountant", + ) + + cls.emp3 = make_employee( + "employeeexit3@example.com", + company="Test Company", + date_of_joining=getdate("02-12-2021"), + relieving_date=add_days(getdate(), 29), + designation="Engineer", + ) + cls.emp4 = make_employee( + "employeeexit4@example.com", + company="Test Company", + date_of_joining=getdate("01-12-2021"), + relieving_date=add_days(getdate(), 30), + designation="Engineer", + ) + + # exit interview for 3 employees only + cls.interview1 = create_exit_interview(cls.emp1) + cls.interview2 = create_exit_interview(cls.emp2) + cls.interview3 = create_exit_interview(cls.emp3) + + # create fnf for some records + cls.fnf1 = create_full_and_final_statement(cls.emp1) + cls.fnf2 = create_full_and_final_statement(cls.emp2) + + # link questionnaire for a few records + # setting employee doctype as reference instead of creating a questionnaire + # since this is just for a test + frappe.db.set_value( + "Exit Interview", + cls.interview1.name, + {"ref_doctype": "Employee", "reference_document_name": cls.emp1}, + ) + + frappe.db.set_value( + "Exit Interview", + cls.interview2.name, + {"ref_doctype": "Employee", "reference_document_name": cls.emp2}, + ) + + frappe.db.set_value( + "Exit Interview", + cls.interview3.name, + {"ref_doctype": "Employee", "reference_document_name": cls.emp3}, + ) + + def test_employee_exits_summary(self): + filters = { + "company": "Test Company", + "from_date": getdate(), + "to_date": add_days(getdate(), 15), + "designation": "Accountant", + } + + report = execute(filters) + + employee1 = frappe.get_doc("Employee", self.emp1) + employee2 = frappe.get_doc("Employee", self.emp2) + expected_data = [ + { + "employee": employee1.name, + "employee_name": employee1.employee_name, + "date_of_joining": employee1.date_of_joining, + "relieving_date": employee1.relieving_date, + "department": employee1.department, + "designation": employee1.designation, + "reports_to": None, + "exit_interview": self.interview1.name, + "interview_status": self.interview1.status, + "employee_status": "", + "questionnaire": employee1.name, + "full_and_final_statement": self.fnf1.name, + }, + { + "employee": employee2.name, + "employee_name": employee2.employee_name, + "date_of_joining": employee2.date_of_joining, + "relieving_date": employee2.relieving_date, + "department": employee2.department, + "designation": employee2.designation, + "reports_to": None, + "exit_interview": self.interview2.name, + "interview_status": self.interview2.status, + "employee_status": "", + "questionnaire": employee2.name, + "full_and_final_statement": self.fnf2.name, + }, + ] + + self.assertEqual(expected_data, report[1]) # rows + + def test_pending_exit_interviews_summary(self): + filters = { + "company": "Test Company", + "from_date": getdate(), + "to_date": add_days(getdate(), 30), + "exit_interview_pending": 1, + } + + report = execute(filters) + + employee4 = frappe.get_doc("Employee", self.emp4) + expected_data = [ + { + "employee": employee4.name, + "employee_name": employee4.employee_name, + "date_of_joining": employee4.date_of_joining, + "relieving_date": employee4.relieving_date, + "department": employee4.department, + "designation": employee4.designation, + "reports_to": None, + "exit_interview": None, + "interview_status": None, + "employee_status": None, + "questionnaire": None, + "full_and_final_statement": None, + } + ] + + self.assertEqual(expected_data, report[1]) # rows + + def test_pending_exit_questionnaire_summary(self): + filters = { + "company": "Test Company", + "from_date": getdate(), + "to_date": add_days(getdate(), 30), + "questionnaire_pending": 1, + } + + report = execute(filters) + + employee4 = frappe.get_doc("Employee", self.emp4) + expected_data = [ + { + "employee": employee4.name, + "employee_name": employee4.employee_name, + "date_of_joining": employee4.date_of_joining, + "relieving_date": employee4.relieving_date, + "department": employee4.department, + "designation": employee4.designation, + "reports_to": None, + "exit_interview": None, + "interview_status": None, + "employee_status": None, + "questionnaire": None, + "full_and_final_statement": None, + } + ] + + self.assertEqual(expected_data, report[1]) # rows + + def test_pending_fnf_summary(self): + filters = {"company": "Test Company", "fnf_pending": 1} + + report = execute(filters) + + employee3 = frappe.get_doc("Employee", self.emp3) + employee4 = frappe.get_doc("Employee", self.emp4) + expected_data = [ + { + "employee": employee3.name, + "employee_name": employee3.employee_name, + "date_of_joining": employee3.date_of_joining, + "relieving_date": employee3.relieving_date, + "department": employee3.department, + "designation": employee3.designation, + "reports_to": None, + "exit_interview": self.interview3.name, + "interview_status": self.interview3.status, + "employee_status": "", + "questionnaire": employee3.name, + "full_and_final_statement": None, + }, + { + "employee": employee4.name, + "employee_name": employee4.employee_name, + "date_of_joining": employee4.date_of_joining, + "relieving_date": employee4.relieving_date, + "department": employee4.department, + "designation": employee4.designation, + "reports_to": None, + "exit_interview": None, + "interview_status": None, + "employee_status": None, + "questionnaire": None, + "full_and_final_statement": None, + }, + ] + + self.assertEqual(expected_data, report[1]) # rows diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js b/apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js new file mode 100644 index 000000000..9b45702f4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js @@ -0,0 +1,48 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Employee Hours Utilization Based On Timesheet"] = { + filters: [ + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_user_default("Company"), + reqd: 1, + }, + { + fieldname: "from_date", + label: __("From Date"), + fieldtype: "Date", + default: frappe.datetime.add_months(frappe.datetime.get_today(), -1), + reqd: 1, + }, + { + fieldname: "to_date", + label: __("To Date"), + fieldtype: "Date", + default: frappe.datetime.now_date(), + reqd: 1, + }, + { + fieldname: "employee", + label: __("Employee"), + fieldtype: "Link", + options: "Employee", + }, + { + fieldname: "department", + label: __("Department"), + fieldtype: "Link", + options: "Department", + }, + { + fieldname: "project", + label: __("Project"), + fieldtype: "Link", + options: "Project", + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json b/apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json new file mode 100644 index 000000000..6b80943f8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json @@ -0,0 +1,29 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2021-04-05 19:23:43.838623", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "modified": "2022-06-23 20:11:16.295495", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Hours Utilization Based On Timesheet", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Timesheet", + "report_name": "Employee Hours Utilization Based On Timesheet", + "report_type": "Script Report", + "roles": [ + { + "role": "HR User" + }, + { + "role": "HR Manager" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py new file mode 100644 index 000000000..981441121 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py @@ -0,0 +1,256 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.utils import flt, getdate + + +def execute(filters=None): + return EmployeeHoursReport(filters).run() + + +class EmployeeHoursReport: + """Employee Hours Utilization Report Based On Timesheet""" + + def __init__(self, filters=None): + self.filters = frappe._dict(filters or {}) + + self.from_date = getdate(self.filters.from_date) + self.to_date = getdate(self.filters.to_date) + + self.validate_dates() + self.validate_standard_working_hours() + + def validate_dates(self): + self.day_span = (self.to_date - self.from_date).days + + if self.day_span <= 0: + frappe.throw(_("From Date must come before To Date")) + + def validate_standard_working_hours(self): + self.standard_working_hours = frappe.db.get_single_value("HR Settings", "standard_working_hours") + if not self.standard_working_hours: + msg = _("The metrics for this report are calculated based on {0}. Please set {0} in {1}.").format( + frappe.bold(_("Standard Working Hours")), + frappe.utils.get_link_to_form("HR Settings", "HR Settings"), + ) + + frappe.throw(msg) + + def run(self): + self.generate_columns() + self.generate_data() + self.generate_report_summary() + self.generate_chart_data() + + return self.columns, self.data, None, self.chart, self.report_summary + + def generate_columns(self): + self.columns = [ + { + "label": _("Employee"), + "options": "Employee", + "fieldname": "employee", + "fieldtype": "Link", + "width": 230, + }, + { + "label": _("Department"), + "options": "Department", + "fieldname": "department", + "fieldtype": "Link", + "width": 120, + }, + {"label": _("Total Hours (T)"), "fieldname": "total_hours", "fieldtype": "Float", "width": 120}, + { + "label": _("Billed Hours (B)"), + "fieldname": "billed_hours", + "fieldtype": "Float", + "width": 170, + }, + { + "label": _("Non-Billed Hours (NB)"), + "fieldname": "non_billed_hours", + "fieldtype": "Float", + "width": 170, + }, + { + "label": _("Untracked Hours (U)"), + "fieldname": "untracked_hours", + "fieldtype": "Float", + "width": 170, + }, + { + "label": _("% Utilization (B + NB) / T"), + "fieldname": "per_util", + "fieldtype": "Percentage", + "width": 200, + }, + { + "label": _("% Utilization (B / T)"), + "fieldname": "per_util_billed_only", + "fieldtype": "Percentage", + "width": 200, + }, + ] + + def generate_data(self): + self.generate_filtered_time_logs() + self.generate_stats_by_employee() + self.set_employee_department_and_name() + + if self.filters.department: + self.filter_stats_by_department() + + self.calculate_utilizations() + + self.data = [] + + for emp, data in self.stats_by_employee.items(): + row = frappe._dict() + row["employee"] = emp + row.update(data) + self.data.append(row) + + # Sort by descending order of percentage utilization + self.data.sort(key=lambda x: x["per_util"], reverse=True) + + def filter_stats_by_department(self): + filtered_data = frappe._dict() + for emp, data in self.stats_by_employee.items(): + if data["department"] == self.filters.department: + filtered_data[emp] = data + + # Update stats + self.stats_by_employee = filtered_data + + def generate_filtered_time_logs(self): + additional_filters = "" + + filter_fields = ["employee", "project", "company"] + + for field in filter_fields: + if self.filters.get(field): + if field == "project": + additional_filters += f" AND ttd.{field} = {self.filters.get(field)!r}" + else: + additional_filters += f" AND tt.{field} = {self.filters.get(field)!r}" + + # nosemgrep: frappe-semgrep-rules.rules.frappe-using-db-sql + self.filtered_time_logs = frappe.db.sql( + f""" + SELECT tt.employee AS employee, ttd.hours AS hours, ttd.is_billable AS is_billable, ttd.project AS project + FROM `tabTimesheet Detail` AS ttd + JOIN `tabTimesheet` AS tt + ON ttd.parent = tt.name + WHERE tt.employee IS NOT NULL + AND tt.start_date BETWEEN '{self.filters.from_date}' AND '{self.filters.to_date}' + AND tt.end_date BETWEEN '{self.filters.from_date}' AND '{self.filters.to_date}' + {additional_filters} + """ + ) + + def generate_stats_by_employee(self): + self.stats_by_employee = frappe._dict() + + for emp, hours, is_billable, __ in self.filtered_time_logs: + self.stats_by_employee.setdefault(emp, frappe._dict()).setdefault("billed_hours", 0.0) + + self.stats_by_employee[emp].setdefault("non_billed_hours", 0.0) + + if is_billable: + self.stats_by_employee[emp]["billed_hours"] += flt(hours, 2) + else: + self.stats_by_employee[emp]["non_billed_hours"] += flt(hours, 2) + + def set_employee_department_and_name(self): + for emp in self.stats_by_employee: + emp_name = frappe.db.get_value("Employee", emp, "employee_name") + emp_dept = frappe.db.get_value("Employee", emp, "department") + + self.stats_by_employee[emp]["department"] = emp_dept + self.stats_by_employee[emp]["employee_name"] = emp_name + + def calculate_utilizations(self): + TOTAL_HOURS = flt(self.standard_working_hours * self.day_span, 2) + for __, data in self.stats_by_employee.items(): + data["total_hours"] = TOTAL_HOURS + data["untracked_hours"] = flt(TOTAL_HOURS - data["billed_hours"] - data["non_billed_hours"], 2) + + # To handle overtime edge-case + if data["untracked_hours"] < 0: + data["untracked_hours"] = 0.0 + + data["per_util"] = flt(((data["billed_hours"] + data["non_billed_hours"]) / TOTAL_HOURS) * 100, 2) + data["per_util_billed_only"] = flt((data["billed_hours"] / TOTAL_HOURS) * 100, 2) + + def generate_report_summary(self): + self.report_summary = [] + + if not self.data: + return + + avg_utilization = 0.0 + avg_utilization_billed_only = 0.0 + total_billed, total_non_billed = 0.0, 0.0 + total_untracked = 0.0 + + for row in self.data: + avg_utilization += row["per_util"] + avg_utilization_billed_only += row["per_util_billed_only"] + total_billed += row["billed_hours"] + total_non_billed += row["non_billed_hours"] + total_untracked += row["untracked_hours"] + + avg_utilization /= len(self.data) + avg_utilization = flt(avg_utilization, 2) + + avg_utilization_billed_only /= len(self.data) + avg_utilization_billed_only = flt(avg_utilization_billed_only, 2) + + THRESHOLD_PERCENTAGE = 70.0 + self.report_summary = [ + { + "value": f"{avg_utilization}%", + "indicator": "Red" if avg_utilization < THRESHOLD_PERCENTAGE else "Green", + "label": _("Avg Utilization"), + "datatype": "Percentage", + }, + { + "value": f"{avg_utilization_billed_only}%", + "indicator": "Red" if avg_utilization_billed_only < THRESHOLD_PERCENTAGE else "Green", + "label": _("Avg Utilization (Billed Only)"), + "datatype": "Percentage", + }, + {"value": total_billed, "label": _("Total Billed Hours"), "datatype": "Float"}, + {"value": total_non_billed, "label": _("Total Non-Billed Hours"), "datatype": "Float"}, + ] + + def generate_chart_data(self): + self.chart = {} + + labels = [] + billed_hours = [] + non_billed_hours = [] + untracked_hours = [] + + for row in self.data: + labels.append(row.get("employee_name")) + billed_hours.append(row.get("billed_hours")) + non_billed_hours.append(row.get("non_billed_hours")) + untracked_hours.append(row.get("untracked_hours")) + + self.chart = { + "data": { + "labels": labels[:30], + "datasets": [ + {"name": _("Billed Hours"), "values": billed_hours[:30]}, + {"name": _("Non-Billed Hours"), "values": non_billed_hours[:30]}, + {"name": _("Untracked Hours"), "values": untracked_hours[:30]}, + ], + }, + "type": "bar", + "barOptions": {"stacked": True}, + } diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/test_employee_util.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/test_employee_util.py new file mode 100644 index 000000000..885abadf1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_hours_utilization_based_on_timesheet/test_employee_util.py @@ -0,0 +1,200 @@ +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils.make_random import get_random + +from erpnext.projects.doctype.project.test_project import make_project +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.report.employee_hours_utilization_based_on_timesheet.employee_hours_utilization_based_on_timesheet import ( + execute, +) + + +class TestEmployeeUtilization(IntegrationTestCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + # Create test employee + cls.test_emp1 = make_employee("test1@employeeutil.com", "_Test Company") + cls.test_emp2 = make_employee("test2@employeeutil.com", "_Test Company") + + # Create test project + cls.test_project = make_project({"project_name": "_Test Project"}) + + # Create test timesheets + cls.create_test_timesheets() + + frappe.db.set_single_value("HR Settings", "standard_working_hours", 9) + + @classmethod + def create_test_timesheets(cls): + timesheet1 = frappe.new_doc("Timesheet") + timesheet1.employee = cls.test_emp1 + timesheet1.company = "_Test Company" + + timesheet1.append( + "time_logs", + { + "activity_type": get_random("Activity Type"), + "hours": 5, + "is_billable": 1, + "from_time": "2021-04-01 13:30:00.000000", + "to_time": "2021-04-01 18:30:00.000000", + }, + ) + + timesheet1.save() + timesheet1.submit() + + timesheet2 = frappe.new_doc("Timesheet") + timesheet2.employee = cls.test_emp2 + timesheet2.company = "_Test Company" + + timesheet2.append( + "time_logs", + { + "activity_type": get_random("Activity Type"), + "hours": 10, + "is_billable": 0, + "from_time": "2021-04-01 13:30:00.000000", + "to_time": "2021-04-01 23:30:00.000000", + "project": cls.test_project.name, + }, + ) + + timesheet2.save() + timesheet2.submit() + + @classmethod + def tearDownClass(cls): + # Delete time logs + frappe.db.sql( + """ + DELETE FROM `tabTimesheet Detail` + WHERE parent IN ( + SELECT name + FROM `tabTimesheet` + WHERE company = '_Test Company' + ) + """ + ) + + frappe.db.sql("DELETE FROM `tabTimesheet` WHERE company='_Test Company'") + frappe.db.sql(f"DELETE FROM `tabProject` WHERE name='{cls.test_project.name}'") + + def test_utilization_report_with_required_filters_only(self): + filters = {"company": "_Test Company", "from_date": "2021-04-01", "to_date": "2021-04-03"} + + report = execute(filters) + + expected_data = self.get_expected_data_for_test_employees() + self.assertEqual(report[1], expected_data) + + def test_utilization_report_for_single_employee(self): + filters = { + "company": "_Test Company", + "from_date": "2021-04-01", + "to_date": "2021-04-03", + "employee": self.test_emp1, + } + + report = execute(filters) + + emp1_data = frappe.get_doc("Employee", self.test_emp1) + expected_data = [ + { + "employee": self.test_emp1, + "employee_name": "test1@employeeutil.com", + "billed_hours": 5.0, + "non_billed_hours": 0.0, + "department": emp1_data.department, + "total_hours": 18.0, + "untracked_hours": 13.0, + "per_util": 27.78, + "per_util_billed_only": 27.78, + } + ] + + self.assertEqual(report[1], expected_data) + + def test_utilization_report_for_project(self): + filters = { + "company": "_Test Company", + "from_date": "2021-04-01", + "to_date": "2021-04-03", + "project": self.test_project.name, + } + + report = execute(filters) + + emp2_data = frappe.get_doc("Employee", self.test_emp2) + expected_data = [ + { + "employee": self.test_emp2, + "employee_name": "test2@employeeutil.com", + "billed_hours": 0.0, + "non_billed_hours": 10.0, + "department": emp2_data.department, + "total_hours": 18.0, + "untracked_hours": 8.0, + "per_util": 55.56, + "per_util_billed_only": 0.0, + } + ] + + self.assertEqual(report[1], expected_data) + + def test_utilization_report_for_department(self): + emp1_data = frappe.get_doc("Employee", self.test_emp1) + filters = { + "company": "_Test Company", + "from_date": "2021-04-01", + "to_date": "2021-04-03", + "department": emp1_data.department, + } + + report = execute(filters) + + expected_data = self.get_expected_data_for_test_employees() + self.assertEqual(report[1], expected_data) + + def test_report_summary_data(self): + filters = {"company": "_Test Company", "from_date": "2021-04-01", "to_date": "2021-04-03"} + + report = execute(filters) + summary = report[4] + expected_summary_values = ["41.67%", "13.89%", 5.0, 10.0] + + self.assertEqual(len(summary), 4) + + for i in range(4): + self.assertEqual(summary[i]["value"], expected_summary_values[i]) + + def get_expected_data_for_test_employees(self): + emp1_data = frappe.get_doc("Employee", self.test_emp1) + emp2_data = frappe.get_doc("Employee", self.test_emp2) + + return [ + { + "employee": self.test_emp2, + "employee_name": "test2@employeeutil.com", + "billed_hours": 0.0, + "non_billed_hours": 10.0, + "department": emp2_data.department, + "total_hours": 18.0, + "untracked_hours": 8.0, + "per_util": 55.56, + "per_util_billed_only": 0.0, + }, + { + "employee": self.test_emp1, + "employee_name": "test1@employeeutil.com", + "billed_hours": 5.0, + "non_billed_hours": 0.0, + "department": emp1_data.department, + "total_hours": 18.0, + "untracked_hours": 13.0, + "per_util": 27.78, + "per_util_billed_only": 27.78, + }, + ] diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_information/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_information/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_information/employee_information.json b/apps/erpnext/src/hrms/hrms/hr/report/employee_information/employee_information.json new file mode 100644 index 000000000..ee68af3b6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_information/employee_information.json @@ -0,0 +1,27 @@ +{ + "add_total_row": 0, + "apply_user_permissions": 1, + "creation": "2013-05-06 18:43:53", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 3, + "is_standard": "Yes", + "json": "{\"add_total_row\": 0, \"sort_by\": \"Employee.bank_ac_no\", \"sort_order\": \"desc\", \"sort_by_next\": \"\", \"filters\": [], \"sort_order_next\": \"desc\", \"columns\": [[\"name\", \"Employee\"], [\"employee_number\", \"Employee\"], [\"date_of_joining\", \"Employee\"], [\"branch\", \"Employee\"], [\"department\", \"Employee\"], [\"designation\", \"Employee\"], [\"gender\", \"Employee\"], [\"status\", \"Employee\"], [\"company\", \"Employee\"], [\"employment_type\", \"Employee\"], [\"reports_to\", \"Employee\"], [\"company_email\", \"Employee\"]]}", + "modified": "2017-02-24 20:01:38.681441", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Information", + "owner": "Administrator", + "ref_doctype": "Employee", + "report_name": "Employee Information", + "report_type": "Report Builder", + "roles": [ + { + "role": "HR User" + }, + { + "role": "HR Manager" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/employee_leave_balance.js b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/employee_leave_balance.js new file mode 100644 index 000000000..6e2964af6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/employee_leave_balance.js @@ -0,0 +1,77 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.query_reports["Employee Leave Balance"] = { + filters: [ + { + fieldname: "from_date", + label: __("From Date"), + fieldtype: "Date", + reqd: 1, + }, + { + fieldname: "to_date", + label: __("To Date"), + fieldtype: "Date", + reqd: 1, + }, + { + label: __("Company"), + fieldname: "company", + fieldtype: "Link", + options: "Company", + reqd: 1, + default: frappe.defaults.get_user_default("Company"), + }, + { + fieldname: "department", + label: __("Department"), + fieldtype: "Link", + options: "Department", + }, + { + fieldname: "employee", + label: __("Employee"), + fieldtype: "Link", + options: "Employee", + }, + { + fieldname: "employee_status", + label: __("Employee Status"), + fieldtype: "Select", + options: [ + "", + { value: "Active", label: __("Active") }, + { value: "Inactive", label: __("Inactive") }, + { value: "Suspended", label: __("Suspended") }, + { value: "Left", label: __("Left", null, "Employee") }, + ], + default: "Active", + }, + { + fieldname: "consolidate_leave_types", + label: __("Consolidate Leave Types"), + fieldtype: "Check", + default: 1, + depends_on: "eval: !doc.employee", + }, + ], + onload: () => { + const today = frappe.datetime.now_date(); + + frappe.call({ + type: "GET", + method: "hrms.hr.utils.get_leave_period", + args: { + from_date: today, + to_date: today, + company: frappe.defaults.get_user_default("Company"), + }, + freeze: true, + callback: (data) => { + frappe.query_report.set_filter_value("from_date", data.message[0].from_date); + frappe.query_report.set_filter_value("to_date", data.message[0].to_date); + }, + }); + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/employee_leave_balance.json b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/employee_leave_balance.json new file mode 100644 index 000000000..577f6a7b7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/employee_leave_balance.json @@ -0,0 +1,32 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2013-02-22 15:29:34", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 3, + "is_standard": "Yes", + "letterhead": null, + "modified": "2023-11-17 13:28:40.669200", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Leave Balance", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Employee", + "report_name": "Employee Leave Balance", + "report_type": "Script Report", + "roles": [ + { + "role": "HR User" + }, + { + "role": "HR Manager" + }, + { + "role": "Employee" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/employee_leave_balance.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/employee_leave_balance.py new file mode 100644 index 000000000..879d2f332 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/employee_leave_balance.py @@ -0,0 +1,284 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from itertools import groupby + +import frappe +from frappe import _ +from frappe.query_builder.functions import Abs, Sum +from frappe.utils import add_days, cint, flt, getdate + +from hrms.hr.doctype.leave_allocation.leave_allocation import get_previous_allocation +from hrms.hr.doctype.leave_application.leave_application import ( + get_leave_balance_on, + get_leaves_for_period, +) + +Filters = frappe._dict + + +def execute(filters: Filters | None = None) -> tuple: + if filters.to_date <= filters.from_date: + frappe.throw(_('"From Date" can not be greater than or equal to "To Date"')) + + columns = get_columns() + data = get_data(filters) + charts = get_chart_data(data, filters) + return columns, data, None, charts + + +def get_columns() -> list[dict]: + return [ + { + "label": _("Leave Type"), + "fieldtype": "Link", + "fieldname": "leave_type", + "width": 200, + "options": "Leave Type", + }, + { + "label": _("Employee"), + "fieldtype": "Link", + "fieldname": "employee", + "width": 100, + "options": "Employee", + }, + { + "label": _("Employee Name"), + "fieldtype": "Dynamic Link", + "fieldname": "employee_name", + "width": 100, + "options": "employee", + }, + { + "label": _("Opening Balance"), + "fieldtype": "float", + "fieldname": "opening_balance", + "width": 150, + }, + { + "label": _("New Leave(s) Allocated"), + "fieldtype": "float", + "fieldname": "leaves_allocated", + "width": 200, + }, + { + "label": _("Leave(s) Taken"), + "fieldtype": "float", + "fieldname": "leaves_taken", + "width": 150, + }, + { + "label": _("Leave(s) Expired"), + "fieldtype": "float", + "fieldname": "leaves_expired", + "width": 150, + }, + { + "label": _("Closing Balance"), + "fieldtype": "float", + "fieldname": "closing_balance", + "width": 150, + }, + ] + + +def get_data(filters: Filters) -> list: + leave_types = get_leave_types() + active_employees = get_employees(filters) + + precision = cint(frappe.db.get_single_value("System Settings", "float_precision")) + consolidate_leave_types = len(active_employees) > 1 and filters.consolidate_leave_types + row = None + + data = [] + + for leave_type in leave_types: + if consolidate_leave_types: + data.append({"leave_type": leave_type}) + else: + row = frappe._dict({"leave_type": leave_type}) + + for employee in active_employees: + if consolidate_leave_types: + row = frappe._dict() + else: + row = frappe._dict({"leave_type": leave_type}) + + row.employee = employee.name + row.employee_name = employee.employee_name + + leaves_taken = ( + get_leaves_for_period(employee.name, leave_type, filters.from_date, filters.to_date) * -1 + ) + + new_allocation, expired_leaves, carry_forwarded_leaves = get_allocated_and_expired_leaves( + filters.from_date, filters.to_date, employee.name, leave_type + ) + opening = get_opening_balance(employee.name, leave_type, filters, carry_forwarded_leaves) + + row.leaves_allocated = flt(new_allocation, precision) + row.leaves_expired = flt(expired_leaves, precision) + row.opening_balance = flt(opening, precision) + row.leaves_taken = flt(leaves_taken, precision) + + closing = new_allocation + opening - (row.leaves_expired + leaves_taken) + row.closing_balance = flt(closing, precision) + row.indent = 1 + data.append(row) + + return data + + +def get_leave_types() -> list[str]: + LeaveType = frappe.qb.DocType("Leave Type") + return (frappe.qb.from_(LeaveType).select(LeaveType.name).orderby(LeaveType.name)).run(pluck="name") + + +def get_employees(filters: Filters) -> list[dict]: + Employee = frappe.qb.DocType("Employee") + query = frappe.qb.from_(Employee).select( + Employee.name, + Employee.employee_name, + Employee.department, + ) + + for field in ["company", "department"]: + if filters.get(field): + query = query.where(getattr(Employee, field) == filters.get(field)) + + if filters.get("employee"): + query = query.where(Employee.name == filters.get("employee")) + + if filters.get("employee_status"): + query = query.where(Employee.status == filters.get("employee_status")) + + return query.run(as_dict=True) + + +def get_opening_balance( + employee: str, leave_type: str, filters: Filters, carry_forwarded_leaves: float +) -> float: + # allocation boundary condition + # opening balance is the closing leave balance 1 day before the filter start date + opening_balance_date = add_days(filters.from_date, -1) + allocation = get_previous_allocation(filters.from_date, leave_type, employee) + + if ( + allocation + and allocation.get("to_date") + and opening_balance_date + and getdate(allocation.get("to_date")) == getdate(opening_balance_date) + ): + # if opening balance date is same as the previous allocation's expiry + # then opening balance should only consider carry forwarded leaves + opening_balance = carry_forwarded_leaves + else: + # else directly get leave balance on the previous day + opening_balance = get_leave_balance_on(employee, leave_type, opening_balance_date) + + return opening_balance + + +def get_allocated_and_expired_leaves( + from_date: str, to_date: str, employee: str, leave_type: str +) -> tuple[float, float, float]: + new_allocation = 0 + expired_leaves = 0 + carry_forwarded_leaves = 0 + + new_allocation = get_allocated_leaves(from_date, to_date, employee, leave_type) + expired_leaves = get_expired_leaves(from_date, to_date, employee, leave_type) + carry_forwarded_leaves = get_cf_leaves(from_date, to_date, employee, leave_type) + + return new_allocation, expired_leaves, carry_forwarded_leaves + + +def get_allocated_leaves(from_date, to_date, employee, leave_type): + ledger = frappe.qb.DocType("Leave Ledger Entry") + allocated_leaves = ( + frappe.qb.from_(ledger) + .select(Sum(ledger.leaves)) + .where( + (ledger.docstatus == 1) + & (ledger.transaction_type == "Leave Allocation") + & (ledger.employee == employee) + & (ledger.leave_type == leave_type) + & ((ledger.from_date[from_date:to_date]) | (ledger.to_date[from_date:to_date])) + & ((ledger.is_expired == 0) & (ledger.is_carry_forward == 0)) + ) + ).run()[0][0] + return allocated_leaves if allocated_leaves else 0.0 + + +def get_expired_leaves(from_date, to_date, employee, leave_type): + ledger = frappe.qb.DocType("Leave Ledger Entry") + expired_leaves = ( + frappe.qb.from_(ledger) + .select(Abs(Sum(ledger.leaves))) + .where( + (ledger.docstatus == 1) + & (ledger.transaction_type == "Leave Allocation") + & (ledger.employee == employee) + & (ledger.leave_type == leave_type) + & ((ledger.from_date[from_date:to_date]) | (ledger.to_date[from_date:to_date])) + & (ledger.is_expired == 1) + ) + ).run()[0][0] + return expired_leaves if expired_leaves else 0.0 + + +def get_cf_leaves(from_date, to_date, employee, leave_type): + ledger = frappe.qb.DocType("Leave Ledger Entry") + cf_leaves = ( + frappe.qb.from_(ledger) + .select(Sum(ledger.leaves)) + .where( + (ledger.docstatus == 1) + & (ledger.transaction_type == "Leave Allocation") + & (ledger.employee == employee) + & (ledger.leave_type == leave_type) + & ((ledger.from_date[from_date:to_date]) | (ledger.to_date[from_date:to_date])) + & ((ledger.is_expired == 0) & (ledger.is_carry_forward == 1)) + ) + ).run()[0][0] + return cf_leaves if cf_leaves else 0.0 + + +def get_chart_data(data: list, filters: Filters) -> dict: + labels = [] + datasets = [] + employee_data = data + + if not data: + return None + + if data and filters.employee: + get_dataset_for_chart(employee_data, datasets, labels) + + chart = { + "data": {"labels": labels, "datasets": datasets}, + "type": "bar", + "colors": ["#456789", "#EE8888", "#7E77BF"], + } + + return chart + + +def get_dataset_for_chart(employee_data: list, datasets: list, labels: list) -> list: + leaves = [] + employee_data = sorted(employee_data, key=lambda k: k["employee_name"]) + + for key, group in groupby(employee_data, lambda x: x["employee_name"]): + for grp in group: + if grp.closing_balance: + leaves.append( + frappe._dict({"leave_type": grp.leave_type, "closing_balance": grp.closing_balance}) + ) + + if leaves: + labels.append(key) + + for leave in leaves: + datasets.append({"name": leave.leave_type, "values": [leave.closing_balance]}) diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/test_employee_leave_balance.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/test_employee_leave_balance.py new file mode 100644 index 000000000..23b5d2f22 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance/test_employee_leave_balance.py @@ -0,0 +1,284 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, add_months, flt, get_year_ending, get_year_start, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import assign_holiday_list +from hrms.hr.doctype.leave_application.test_leave_application import make_allocation_record +from hrms.hr.doctype.leave_ledger_entry.leave_ledger_entry import ( + expire_allocation, + process_expired_allocation, +) +from hrms.hr.doctype.leave_type.test_leave_type import create_leave_type +from hrms.hr.report.employee_leave_balance.employee_leave_balance import execute +from hrms.payroll.doctype.salary_slip.test_salary_slip import ( + make_holiday_list, + make_leave_application, +) +from hrms.tests.test_utils import get_first_day, get_first_sunday, get_last_day + +test_records = frappe.get_test_records("Leave Type") + + +class TestEmployeeLeaveBalance(IntegrationTestCase): + def setUp(self): + for dt in [ + "Leave Application", + "Leave Allocation", + "Salary Slip", + "Leave Ledger Entry", + "Leave Type", + ]: + frappe.db.delete(dt) + + frappe.set_user("Administrator") + + self.employee_id = make_employee("test_emp_leave_balance@example.com", company="_Test Company") + + self.date = getdate() + self.year_start = getdate(get_year_start(self.date)) + self.mid_year = add_months(self.year_start, 6) + self.year_end = getdate(get_year_ending(self.date)) + + self.holiday_list = make_holiday_list( + "_Test Emp Balance Holiday List", self.year_start, self.year_end + ) + + def tearDown(self): + frappe.db.rollback() + + @assign_holiday_list("_Test Emp Balance Holiday List", "_Test Company") + def test_employee_leave_balance(self): + frappe.get_doc(test_records[0]).insert() + + # 5 leaves + allocation1 = make_allocation_record( + employee=self.employee_id, + from_date=add_days(self.year_start, -11), + to_date=add_days(self.year_start, -1), + leaves=5, + ) + # 30 leaves + allocation2 = make_allocation_record( + employee=self.employee_id, from_date=self.year_start, to_date=self.year_end + ) + # expires 5 leaves + process_expired_allocation() + + # 4 days leave + first_sunday = get_first_sunday(self.holiday_list, for_date=self.year_start) + leave_application = make_leave_application( + self.employee_id, add_days(first_sunday, 1), add_days(first_sunday, 4), "_Test Leave Type" + ) + leave_application.reload() + + filters = frappe._dict( + { + "from_date": allocation1.from_date, + "to_date": allocation2.to_date, + "employee": self.employee_id, + } + ) + + report = execute(filters) + + expected_data = [ + { + "leave_type": "_Test Leave Type", + "employee": self.employee_id, + "employee_name": "test_emp_leave_balance@example.com", + "leaves_allocated": flt(allocation1.new_leaves_allocated + allocation2.new_leaves_allocated), + "leaves_expired": flt(allocation1.new_leaves_allocated), + "opening_balance": flt(0), + "leaves_taken": flt(leave_application.total_leave_days), + "closing_balance": flt(allocation2.new_leaves_allocated - leave_application.total_leave_days), + "indent": 1, + } + ] + + self.assertEqual(report[1], expected_data) + + @assign_holiday_list("_Test Emp Balance Holiday List", "_Test Company") + def test_opening_balance_on_alloc_boundary_dates(self): + frappe.get_doc(test_records[0]).insert() + + # 30 leaves allocated + allocation1 = make_allocation_record( + employee=self.employee_id, from_date=self.year_start, to_date=self.year_end + ) + # 4 days leave application in the first allocation + first_sunday = get_first_sunday(self.holiday_list, for_date=self.year_start) + leave_application = make_leave_application( + self.employee_id, add_days(first_sunday, 1), add_days(first_sunday, 4), "_Test Leave Type" + ) + leave_application.reload() + + # Case 1: opening balance for first alloc boundary + filters = frappe._dict( + {"from_date": self.year_start, "to_date": self.year_end, "employee": self.employee_id} + ) + report = execute(filters) + self.assertEqual(report[1][0].opening_balance, 0) + + # Case 2: opening balance after leave application date + filters = frappe._dict( + { + "from_date": add_days(leave_application.to_date, 1), + "to_date": self.year_end, + "employee": self.employee_id, + } + ) + report = execute(filters) + self.assertEqual( + report[1][0].opening_balance, + (allocation1.new_leaves_allocated - leave_application.total_leave_days), + ) + + # Case 3: leave balance shows actual balance and not consumption balance as per remaining days near alloc end date + # eg: 3 days left for alloc to end, leave balance should still be 26 and not 3 + filters = frappe._dict( + { + "from_date": add_days(self.year_end, -3), + "to_date": self.year_end, + "employee": self.employee_id, + } + ) + report = execute(filters) + self.assertEqual( + report[1][0].opening_balance, + (allocation1.new_leaves_allocated - leave_application.total_leave_days), + ) + + @assign_holiday_list("_Test Emp Balance Holiday List", "_Test Company") + def test_opening_balance_considers_carry_forwarded_leaves(self): + leave_type = create_leave_type(leave_type_name="_Test_CF_leave_expiry", is_carry_forward=1) + + # 30 leaves allocated for first half of the year + allocation1 = make_allocation_record( + employee=self.employee_id, + from_date=self.year_start, + to_date=self.mid_year, + leave_type=leave_type.name, + ) + # 4 days leave application in the first allocation + first_sunday = get_first_sunday(self.holiday_list, for_date=self.year_start) + leave_application = make_leave_application( + self.employee_id, first_sunday, add_days(first_sunday, 3), leave_type.name + ) + leave_application.reload() + # 30 leaves allocated for second half of the year + carry forward leaves (26) from the previous allocation + allocation2 = make_allocation_record( + employee=self.employee_id, + from_date=add_days(self.mid_year, 1), + to_date=self.year_end, + carry_forward=True, + leave_type=leave_type.name, + ) + + # Case 1: carry forwarded leaves considered in opening balance for second alloc + filters = frappe._dict( + { + "from_date": add_days(self.mid_year, 1), + "to_date": self.year_end, + "employee": self.employee_id, + } + ) + report = execute(filters) + # available leaves from old alloc + opening_balance = allocation1.new_leaves_allocated - leave_application.total_leave_days + self.assertEqual(report[1][0].opening_balance, opening_balance) + + # Case 2: opening balance one day after alloc boundary = carry forwarded leaves + new leaves alloc + filters = frappe._dict( + { + "from_date": add_days(self.mid_year, 2), + "to_date": self.year_end, + "employee": self.employee_id, + } + ) + report = execute(filters) + # available leaves from old alloc + opening_balance = allocation2.new_leaves_allocated + ( + allocation1.new_leaves_allocated - leave_application.total_leave_days + ) + self.assertEqual(report[1][0].opening_balance, opening_balance) + + @assign_holiday_list("_Test Emp Balance Holiday List", "_Test Company") + def test_employee_status_filter(self): + frappe.get_doc(test_records[0]).insert() + inactive_emp = make_employee("test_emp_status@example.com", company="_Test Company") + + allocation = make_allocation_record( + employee=inactive_emp, + from_date=self.year_start, + to_date=self.year_end, + leaves=5, + ) + + # set employee as inactive + frappe.db.set_value("Employee", inactive_emp, "status", "Inactive") + + filters = frappe._dict( + { + "from_date": allocation.from_date, + "to_date": allocation.to_date, + "employee": inactive_emp, + "employee_status": "Active", + } + ) + report = execute(filters) + self.assertEqual(len(report[1]), 0) + + filters = frappe._dict( + { + "from_date": allocation.from_date, + "to_date": allocation.to_date, + "employee": inactive_emp, + "employee_status": "Inactive", + } + ) + report = execute(filters) + self.assertEqual(len(report[1]), 1) + + def test_manually_expired_leaves(self): + leave_type = create_leave_type(leave_type_name="Compensatory off") + employee = make_employee("test_expired_leaves@example.com", company="_Test Company") + leave_allocation = make_allocation_record( + employee=employee, + leave_type=leave_type.name, + leaves=5, + from_date=get_first_day(getdate()), + to_date=get_last_day(getdate()), + ) + + expire_allocation(leave_allocation, expiry_date=add_days(get_first_day(getdate()), 15)) + + # closing balance should be 5 before allocation expiry date + filters = frappe._dict( + { + "from_date": get_first_day(getdate()), + "to_date": add_days(get_first_day(getdate()), 10), + "employee": employee, + } + ) + report = execute(filters) + self.assertEqual(report[1][0].closing_balance, 5) + self.assertEqual(report[1][0].leaves_expired, 0) + + # closing balance should be 0 after allocation expiry date + filters = frappe._dict( + { + "from_date": get_first_day(getdate()), + "to_date": get_last_day(getdate()), + "employee": employee, + } + ) + report = execute(filters) + + self.assertEqual(report[1][0].closing_balance, 0) + self.assertEqual(report[1][0].leaves_expired, 5) diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js new file mode 100644 index 000000000..368ff55cd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js @@ -0,0 +1,48 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Employee Leave Balance Summary"] = { + filters: [ + { + fieldname: "date", + label: __("Date"), + fieldtype: "Date", + reqd: 1, + default: frappe.datetime.now_date(), + }, + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + reqd: 1, + default: frappe.defaults.get_user_default("Company"), + }, + { + fieldname: "employee", + label: __("Employee"), + fieldtype: "Link", + options: "Employee", + }, + { + fieldname: "department", + label: __("Department"), + fieldtype: "Link", + options: "Department", + }, + { + fieldname: "employee_status", + label: __("Employee Status"), + fieldtype: "Select", + options: [ + "", + { value: "Active", label: __("Active") }, + { value: "Inactive", label: __("Inactive") }, + { value: "Suspended", label: __("Suspended") }, + { value: "Left", label: __("Left", null, "Employee") }, + ], + default: "Active", + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json new file mode 100644 index 000000000..1c22ecef1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json @@ -0,0 +1,33 @@ +{ + "add_total_row": 0, + "creation": "2019-09-05 11:18:06.209397", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 0, + "is_standard": "Yes", + "modified": "2019-09-06 11:18:06.209397", + "modified_by": "Administrator", + "module": "HR", + "name": "Employee Leave Balance Summary", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Employee", + "report_name": "Employee Leave Balance Summary", + "report_type": "Script Report", + "roles": [ + { + "role": "Employee" + }, + { + "role": "HR Manager" + }, + { + "role": "HR User" + }, + { + "role": "Leave Approver" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py new file mode 100644 index 000000000..e991571c0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py @@ -0,0 +1,70 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe +from frappe import _ + +from hrms.hr.doctype.leave_application.leave_application import get_leave_details + + +def execute(filters=None): + leave_types = frappe.db.sql_list("select name from `tabLeave Type` order by name asc") + + columns = get_columns(leave_types) + data = get_data(filters, leave_types) + + return columns, data + + +def get_columns(leave_types): + columns = [ + _("Employee") + ":Link/Employee:150", + _("Employee Name") + "::200", + _("Department") + ":Link/Department:150", + ] + + for leave_type in leave_types: + columns.append(_(leave_type) + ":Float:160") + + return columns + + +def get_conditions(filters): + conditions = { + "company": filters.company, + } + if filters.get("employee_status"): + conditions.update({"status": filters.get("employee_status")}) + if filters.get("department"): + conditions.update({"department": filters.get("department")}) + if filters.get("employee"): + conditions.update({"employee": filters.get("employee")}) + + return conditions + + +def get_data(filters, leave_types): + conditions = get_conditions(filters) + + active_employees = frappe.get_list( + "Employee", + filters=conditions, + fields=["name", "employee_name", "department", "user_id"], + ) + + data = [] + for employee in active_employees: + row = [employee.name, employee.employee_name, employee.department] + available_leave = get_leave_details(employee.name, filters.date) + for leave_type in leave_types: + remaining = 0 + if leave_type in available_leave["leave_allocation"]: + # opening balance + remaining = available_leave["leave_allocation"][leave_type]["remaining_leaves"] + + row += [remaining] + + data.append(row) + + return data diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/test_employee_leave_balance_summary.py b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/test_employee_leave_balance_summary.py new file mode 100644 index 000000000..41cfa8cb5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employee_leave_balance_summary/test_employee_leave_balance_summary.py @@ -0,0 +1,179 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, flt, get_year_ending, get_year_start, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import assign_holiday_list +from hrms.hr.doctype.leave_application.test_leave_application import make_allocation_record +from hrms.hr.doctype.leave_ledger_entry.leave_ledger_entry import process_expired_allocation +from hrms.hr.report.employee_leave_balance_summary.employee_leave_balance_summary import execute +from hrms.payroll.doctype.salary_slip.test_salary_slip import ( + make_holiday_list, + make_leave_application, +) +from hrms.tests.test_utils import get_first_sunday + +test_records = frappe.get_test_records("Leave Type") + + +class TestEmployeeLeaveBalance(IntegrationTestCase): + def setUp(self): + for dt in [ + "Leave Application", + "Leave Allocation", + "Salary Slip", + "Leave Ledger Entry", + "Leave Type", + ]: + frappe.db.delete(dt) + + frappe.set_user("Administrator") + + self.employee_id = make_employee("test_emp_leave_balance@example.com", company="_Test Company") + + self.date = getdate() + self.year_start = getdate(get_year_start(self.date)) + self.year_end = getdate(get_year_ending(self.date)) + + self.holiday_list = make_holiday_list( + "_Test Emp Balance Holiday List", self.year_start, self.year_end + ) + + def tearDown(self): + frappe.db.rollback() + + @assign_holiday_list("_Test Emp Balance Holiday List", "_Test Company") + def test_employee_leave_balance_summary(self): + frappe.get_doc(test_records[0]).insert() + + # 5 leaves + allocation1 = make_allocation_record( + employee=self.employee_id, + from_date=add_days(self.year_start, -11), + to_date=add_days(self.year_start, -1), + leaves=5, + ) + # 30 leaves + allocation2 = make_allocation_record( + employee=self.employee_id, from_date=self.year_start, to_date=self.year_end + ) + + # 2 days leave within the first allocation + leave_application1 = make_leave_application( + self.employee_id, + add_days(self.year_start, -11), + add_days(self.year_start, -10), + "_Test Leave Type", + ) + leave_application1.reload() + + # expires 3 leaves + process_expired_allocation() + + # 4 days leave within the second allocation + first_sunday = get_first_sunday(self.holiday_list, for_date=self.year_start) + leave_application2 = make_leave_application( + self.employee_id, add_days(first_sunday, 1), add_days(first_sunday, 4), "_Test Leave Type" + ) + leave_application2.reload() + + filters = frappe._dict( + { + "date": add_days(leave_application2.to_date, 1), + "company": "_Test Company", + "employee": self.employee_id, + } + ) + + report = execute(filters) + + expected_data = [ + [ + self.employee_id, + "test_emp_leave_balance@example.com", + frappe.db.get_value("Employee", self.employee_id, "department"), + flt( + allocation1.new_leaves_allocated # allocated = 5 + + allocation2.new_leaves_allocated # allocated = 30 + - leave_application1.total_leave_days # leaves taken in the 1st alloc = 2 + - ( + allocation1.new_leaves_allocated - leave_application1.total_leave_days + ) # leaves expired from 1st alloc = 3 + - leave_application2.total_leave_days # leaves taken in the 2nd alloc = 4 + ), + ] + ] + + self.assertEqual(report[1], expected_data) + + @assign_holiday_list("_Test Emp Balance Holiday List", "_Test Company") + def test_get_leave_balance_near_alloc_expiry(self): + frappe.get_doc(test_records[0]).insert() + + # 30 leaves allocated + allocation = make_allocation_record( + employee=self.employee_id, from_date=self.year_start, to_date=self.year_end + ) + # 4 days leave application in the first allocation + first_sunday = get_first_sunday(self.holiday_list, for_date=self.year_start) + leave_application = make_leave_application( + self.employee_id, add_days(first_sunday, 1), add_days(first_sunday, 4), "_Test Leave Type" + ) + leave_application.reload() + + # Leave balance should show actual balance, and not "consumption balance as per remaining days", near alloc end date + # eg: 3 days left for alloc to end, leave balance should still be 26 and not 3 + filters = frappe._dict( + {"date": add_days(self.year_end, -3), "company": "_Test Company", "employee": self.employee_id} + ) + report = execute(filters) + + expected_data = [ + [ + self.employee_id, + "test_emp_leave_balance@example.com", + frappe.db.get_value("Employee", self.employee_id, "department"), + flt(allocation.new_leaves_allocated - leave_application.total_leave_days), + ] + ] + + self.assertEqual(report[1], expected_data) + + @assign_holiday_list("_Test Emp Balance Holiday List", "_Test Company") + def test_employee_status_filter(self): + frappe.get_doc(test_records[0]).insert() + + inactive_emp = make_employee("test_emp_status@example.com", company="_Test Company") + allocation = make_allocation_record( + employee=inactive_emp, from_date=self.year_start, to_date=self.year_end + ) + + # set employee as inactive + frappe.db.set_value("Employee", inactive_emp, "status", "Inactive") + + filters = frappe._dict( + { + "date": allocation.from_date, + "company": "_Test Company", + "employee": inactive_emp, + "employee_status": "Active", + } + ) + report = execute(filters) + self.assertEqual(len(report[1]), 0) + + filters = frappe._dict( + { + "date": allocation.from_date, + "company": "_Test Company", + "employee": inactive_emp, + "employee_status": "Inactive", + } + ) + report = execute(filters) + self.assertEqual(len(report[1]), 1) diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.js b/apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.js new file mode 100644 index 000000000..6f1137c71 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.js @@ -0,0 +1,41 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.query_reports["Employees working on a holiday"] = { + filters: [ + { + fieldname: "from_date", + label: __("From Date"), + fieldtype: "Date", + reqd: 1, + default: frappe.datetime.year_start(), + }, + { + fieldname: "to_date", + label: __("To Date"), + fieldtype: "Date", + reqd: 1, + default: frappe.datetime.year_end(), + }, + { + fieldname: "holiday_list", + label: __("Holiday List"), + fieldtype: "Link", + options: "Holiday List", + }, + { + fieldname: "department", + label: __("Department"), + fieldtype: "Link", + options: "Department", + }, + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + reqd: 1, + default: frappe.defaults.get_user_default("Company"), + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json b/apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json new file mode 100644 index 000000000..6c9f7ff7e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json @@ -0,0 +1,29 @@ +{ + "add_total_row": 0, + "apply_user_permissions": 1, + "creation": "2016-07-14 12:03:56.967739", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 2, + "is_standard": "Yes", + "modified": "2017-02-24 20:05:17.833885", + "modified_by": "Administrator", + "module": "HR", + "name": "Employees working on a holiday", + "owner": "Administrator", + "ref_doctype": "Attendance", + "report_name": "Employees working on a holiday", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + }, + { + "role": "HR User" + }, + { + "role": "HR Manager" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py b/apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py new file mode 100644 index 000000000..3fa87892c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py @@ -0,0 +1,90 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ + +from erpnext.setup.doctype.employee.employee import get_holiday_list_for_employee + + +def execute(filters=None): + if not filters: + filters = {} + + columns = get_columns() + data = get_data(filters) + return columns, data + + +def get_columns(): + return [ + { + "label": _("Employee"), + "fieldtype": "Link", + "fieldname": "employee", + "options": "Employee", + "width": 300, + }, + { + "label": _("Employee Name"), + "fieldtype": "Data", + "width": 0, + "hidden": 1, + }, + { + "label": _("Date"), + "fieldtype": "Date", + "width": 120, + }, + { + "label": _("Status"), + "fieldtype": "Data", + "width": 100, + }, + { + "label": _("Holiday"), + "fieldtype": "Data", + "width": 200, + }, + ] + + +def get_data(filters): + Attendance = frappe.qb.DocType("Attendance") + Holiday = frappe.qb.DocType("Holiday") + + data = [] + + employee_filters = {"company": filters.company} + if filters.department: + employee_filters["department"] = filters.department + + for employee in frappe.get_list("Employee", filters=employee_filters, pluck="name"): + holiday_list = get_holiday_list_for_employee(employee, raise_exception=False) + if not holiday_list or (filters.holiday_list and filters.holiday_list != holiday_list): + continue + + working_days = ( + frappe.qb.from_(Attendance) + .inner_join(Holiday) + .on(Attendance.attendance_date == Holiday.holiday_date) + .select( + Attendance.employee, + Attendance.employee_name, + Attendance.attendance_date, + Attendance.status, + Holiday.description, + ) + .where( + (Attendance.employee == employee) + & (Attendance.attendance_date[filters.from_date : filters.to_date]) + & (Attendance.status.notin(["Absent", "On Leave"])) + & (Attendance.docstatus == 1) + & (Holiday.parent == holiday_list) + ) + .run(as_list=True) + ) + data.extend(working_days) + + return data diff --git a/apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/test_employees_working_on_a_holiday.py b/apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/test_employees_working_on_a_holiday.py new file mode 100644 index 000000000..57949fa63 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/employees_working_on_a_holiday/test_employees_working_on_a_holiday.py @@ -0,0 +1,75 @@ +from dateutil.relativedelta import relativedelta + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, get_year_ending, get_year_start, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.attendance.attendance import mark_attendance +from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import ( + create_holiday_list_assignment, +) +from hrms.hr.report.employees_working_on_a_holiday.employees_working_on_a_holiday import execute +from hrms.payroll.doctype.salary_slip.test_salary_slip import make_holiday_list +from hrms.tests.test_utils import get_first_sunday + + +class TestEmployeesWorkingOnAHoliday(IntegrationTestCase): + def setUp(self): + self.company = "_Test Company" + frappe.db.delete("Attendance") + + def test_report(self): + date = getdate() + from_date = get_year_start(date) + to_date = get_year_ending(date) + sunday_off = make_holiday_list("Sunday Off", from_date, to_date, True) + monday_off = make_holiday_list("Monday Off", from_date, to_date, True, ["Monday"]) + tuesday_off = make_holiday_list("Tuesday Off", from_date, to_date, True, ["Tuesday"]) + + emp1 = make_employee("testemp@sunday.com", company=self.company) + create_holiday_list_assignment("Employee", emp1, sunday_off) + emp2 = make_employee("testemp2@monday.com", company=self.company) + create_holiday_list_assignment("Employee", emp2, monday_off) + emp3 = make_employee("testemp3@tuesday.com", company=self.company) + create_holiday_list_assignment("Employee", emp3, tuesday_off) + + first_sunday = get_first_sunday() + # i realise this might not be the first monday and tuesday but doesn't matter for this test + first_monday = add_days(first_sunday, 1) + first_tuesday = add_days(first_monday, 1) + second_sunday = add_days(first_sunday, 7) + second_tuesday = add_days(first_tuesday, 7) + + # employees working on holidays + mark_attendance(emp1, first_sunday, "Present") + mark_attendance(emp1, second_sunday, "Present") + mark_attendance(emp2, first_monday, "Present") + mark_attendance(emp3, second_tuesday, "Present") + + # employees working on working days + mark_attendance(emp1, first_tuesday, "Present") + mark_attendance(emp2, first_sunday, "Present") + mark_attendance(emp3, first_monday, "Present") + + filters = frappe._dict( + { + "from_date": from_date, + "to_date": to_date, + "company": self.company, + } + ) + report = execute(filters=filters) + rows = report[1] + + self.assertEqual(len(rows), 4) + + weekly_offs = { + emp1: "Sunday", + emp2: "Monday", + emp3: "Tuesday", + } + + for d in rows: + self.assertEqual(weekly_offs[d[0]], d[4]) diff --git a/apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/leave_ledger.js b/apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/leave_ledger.js new file mode 100644 index 000000000..5e81aa187 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/leave_ledger.js @@ -0,0 +1,108 @@ +// Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.query_reports["Leave Ledger"] = { + filters: [ + { + fieldname: "from_date", + label: __("From Date"), + fieldtype: "Date", + reqd: 1, + default: frappe.defaults.get_default("year_start_date"), + }, + { + fieldname: "to_date", + label: __("To Date"), + fieldtype: "Date", + reqd: 1, + default: frappe.defaults.get_default("year_end_date"), + }, + { + fieldname: "leave_type", + label: __("Leave Type"), + fieldtype: "Link", + options: "Leave Type", + }, + { + fieldname: "employee", + label: __("Employee"), + fieldtype: "Link", + options: "Employee", + }, + { + fieldname: "status", + label: __("Employee Status"), + fieldtype: "Select", + options: [ + "", + { value: "Active", label: __("Active") }, + { value: "Inactive", label: __("Inactive") }, + { value: "Suspended", label: __("Suspended") }, + { value: "Left", label: __("Left", null, "Employee") }, + ], + default: "Active", + }, + { + label: __("Company"), + fieldname: "company", + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_user_default("Company"), + }, + { + fieldname: "department", + label: __("Department"), + fieldtype: "Link", + options: "Department", + }, + { + fieldname: "transaction_type", + label: __("Transaction Type"), + fieldtype: "Select", + options: [ + "", + "Leave Allocation", + "Leave Application", + "Leave Encashment", + "Leave Adjustment", + ], + }, + { + fieldname: "transaction_name", + label: __("Transaction Name"), + fieldtype: "Data", + }, + ], + formatter: (value, row, column, data, default_formatter) => { + value = default_formatter(value, row, column, data); + if (column.fieldname === "leaves") { + if (data?.leaves < 0) value = `${value}`; + else value = `${value}`; + } + return value; + }, + onload: () => { + if ( + frappe.query_report.get_filter_value("from_date") && + frappe.query_report.get_filter_value("to_date") + ) + return; + + const today = frappe.datetime.now_date(); + + frappe.call({ + type: "GET", + method: "hrms.hr.utils.get_leave_period", + args: { + from_date: today, + to_date: today, + company: frappe.defaults.get_user_default("Company"), + }, + freeze: true, + callback: (data) => { + frappe.query_report.set_filter_value("from_date", data.message[0].from_date); + frappe.query_report.set_filter_value("to_date", data.message[0].to_date); + }, + }); + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/leave_ledger.json b/apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/leave_ledger.json new file mode 100644 index 000000000..cc64cc8d1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/leave_ledger.json @@ -0,0 +1,36 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2024-02-03 23:07:59.972957", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "letter_head": "Frappe", + "letterhead": null, + "modified": "2024-04-07 14:46:16.056637", + "modified_by": "Administrator", + "module": "HR", + "name": "Leave Ledger", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Leave Ledger Entry", + "report_name": "Leave Ledger", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + }, + { + "role": "HR Manager" + }, + { + "role": "HR User" + }, + { + "role": "Employee" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/leave_ledger.py b/apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/leave_ledger.py new file mode 100644 index 000000000..ba3457ca3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/leave_ledger.py @@ -0,0 +1,196 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.query_builder.functions import Date + +Filters = frappe._dict + + +def execute(filters: Filters = None) -> tuple: + columns = get_columns() + data = get_data(filters) + + return columns, data + + +def get_columns() -> list[dict]: + return [ + { + "label": _("Leave Ledger Entry"), + "fieldname": "leave_ledger_entry", + "fieldtype": "Link", + "options": "Leave Ledger Entry", + "hidden": 1, + }, + { + "label": _("Employee"), + "fieldname": "employee", + "fieldtype": "Link", + "options": "Employee", + "width": 240, + }, + { + "label": _("Employee Name"), + "fieldname": "employee_name", + "fieldtype": "Data", + "hidden": 1, + }, + { + "label": _("Creation Date"), + "fieldname": "date", + "fieldtype": "Date", + "width": 120, + }, + { + "label": _("From Date"), + "fieldname": "from_date", + "fieldtype": "Date", + "width": 120, + }, + { + "label": _("To Date"), + "fieldname": "to_date", + "fieldtype": "Date", + "width": 120, + }, + { + "label": _("Leaves"), + "fieldname": "leaves", + "fieldtype": "Float", + "width": 80, + }, + { + "label": _("Leave Type"), + "fieldname": "leave_type", + "fieldtype": "Link", + "options": "Leave Type", + "width": 150, + }, + { + "label": _("Transaction Type"), + "fieldname": "transaction_type", + "fieldtype": "Data", + "width": 130, + }, + { + "label": _("Transaction Name"), + "fieldname": "transaction_name", + "fieldtype": "Dynamic Link", + "options": "transaction_type", + "width": 180, + }, + { + "label": _("Is Carry Forward"), + "fieldname": "is_carry_forward", + "fieldtype": "Check", + "width": 80, + }, + { + "label": _("Is Expired"), + "fieldname": "is_expired", + "fieldtype": "Check", + "width": 80, + }, + { + "label": _("Is Leave Without Pay"), + "fieldname": "is_lwp", + "fieldtype": "Check", + "width": 80, + }, + { + "label": _("Company"), + "fieldname": "company", + "fieldtype": "Link", + "options": "Company", + "width": 150, + }, + { + "label": _("Holiday List"), + "fieldname": "holiday_list", + "fieldtype": "Link", + "options": "Holiday List", + "width": 150, + }, + ] + + +def get_data(filters: Filters) -> list[dict]: + Employee = frappe.qb.DocType("Employee") + Ledger = frappe.qb.DocType("Leave Ledger Entry") + + from_date, to_date = filters.get("from_date"), filters.get("to_date") + + query = ( + frappe.qb.from_(Ledger) + .inner_join(Employee) + .on(Ledger.employee == Employee.name) + .select( + Ledger.name.as_("leave_ledger_entry"), + Ledger.employee, + Ledger.employee_name, + Date(Ledger.creation).as_("date"), + Ledger.from_date, + Ledger.to_date, + Ledger.leave_type, + Ledger.transaction_type, + Ledger.transaction_name, + Ledger.leaves, + Ledger.is_carry_forward, + Ledger.is_expired, + Ledger.is_lwp, + Ledger.company, + Ledger.holiday_list, + ) + .where( + (Ledger.docstatus == 1) + & (Ledger.from_date[from_date:to_date]) + & (Ledger.to_date[from_date:to_date]) + ) + ) + + for field in ("employee", "leave_type", "company", "transaction_type", "transaction_name"): + if filters.get(field): + query = query.where(Ledger[field] == filters.get(field)) + + for field in ("department", "status"): + if filters.get(field): + query = query.where(Employee[field] == filters.get(field)) + + query = query.orderby(Ledger.employee, Ledger.leave_type, Ledger.from_date) + result = query.run(as_dict=True) + + result = add_total_row(result, filters) + + return result + + +def add_total_row(result: list[dict], filters: Filters) -> list[dict]: + add_total_row = False + leave_type = filters.get("leave_type") + + if filters.get("employee") and filters.get("leave_type"): + add_total_row = True + + if not add_total_row: + if not filters.get("employee"): + # check if all rows have the same employee + employees_from_result = list(set([row.employee for row in result])) + if len(employees_from_result) != 1: + return result + + # check if all rows have the same leave type + leave_types_from_result = list(set([row.leave_type for row in result])) + if len(leave_types_from_result) == 1: + leave_type = leave_types_from_result[0] + add_total_row = True + + if not add_total_row: + return result + + total_row = frappe._dict({"employee": _("Total Leaves ({0})").format(leave_type)}) + total_row["leaves"] = sum((row.get("leaves") or 0) for row in result) + + result.append(total_row) + return result diff --git a/apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/test_leave_ledger.py b/apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/test_leave_ledger.py new file mode 100644 index 000000000..bf3a9962e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/leave_ledger/test_leave_ledger.py @@ -0,0 +1,195 @@ +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, add_months, flt, get_year_ending, get_year_start, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import ( + create_holiday_list_assignment, +) +from hrms.hr.doctype.leave_allocation.test_earned_leaves import ( + allocate_earned_leaves_for_months, + create_earned_leave_type, + make_policy_assignment, +) +from hrms.hr.doctype.leave_allocation.test_leave_allocation import create_leave_allocation +from hrms.hr.doctype.leave_application.test_leave_application import make_leave_application +from hrms.hr.doctype.leave_type.test_leave_type import create_leave_type +from hrms.hr.report.leave_ledger.leave_ledger import execute +from hrms.payroll.doctype.salary_slip.test_salary_slip import make_holiday_list + + +class TestLeaveLedger(IntegrationTestCase): + def setUp(self): + for dt in [ + "Leave Application", + "Leave Allocation", + "Leave Ledger Entry", + "Leave Period", + ]: + frappe.db.delete(dt) + + frappe.db.delete("Employee", {"company": "_Test Company"}) + + self.date = getdate() + self.year_start = getdate(get_year_start(self.date)) + self.year_end = getdate(get_year_ending(self.date)) + + holiday_list = make_holiday_list( + "_Test Emp Balance Holiday List", + self.year_start, + self.year_end, + add_weekly_offs=False, + ) + self.employee_1 = frappe.get_doc( + "Employee", make_employee("test_emp_1@example.com", company="_Test Company") + ) + create_holiday_list_assignment("Employee", self.employee_1.name, holiday_list) + self.employee_2 = frappe.get_doc( + "Employee", make_employee("test_emp_2@example.com", company="_Test Company") + ) + create_holiday_list_assignment("Employee", self.employee_2.name, holiday_list) + + # create leave type + self.earned_leave = "Test Earned Leave" + self.casual_leave = "_Test Leave Type" + create_leave_type(leave_type=self.earned_leave) + create_leave_type(leave_type=self.casual_leave) + + self.create_earned_leave_allocation() + self.create_casual_leave_allocation() + self.create_leave_applications() + + def create_earned_leave_allocation(self): + # emp 1 - earned leave allocation + frappe.flags.current_date = add_months(self.year_start, 2) + # 3 leaves allocated + assignments = make_policy_assignment( + self.employee_1, + annual_allocation=12, + allocate_on_day="First Day", + start_date=self.year_start, + end_date=self.year_end, + ) + + # 7 more leaves allocated in the subsequent months + allocate_earned_leaves_for_months(1) + + allocation = frappe.db.get_value( + "Leave Allocation", {"leave_policy_assignment": assignments[0]}, "name" + ) + self.earned_leave_allocation = frappe.get_doc("Leave Allocation", allocation) + + def create_casual_leave_allocation(self): + allocation = create_leave_allocation( + leave_type=self.casual_leave, + employee=self.employee_2.name, + from_date=self.year_start, + to_date=self.year_end, + ) + allocation.submit() + self.casual_leave_allocation = allocation + + def create_leave_applications(self): + from_date = add_months(self.year_start, 2) + to_date = add_days(from_date, 1) + self.earned_leave_appl_1 = make_leave_application( + self.employee_1.name, from_date, to_date, self.earned_leave + ) + + self.casual_leave_appl_2 = make_leave_application( + self.employee_2.name, from_date, to_date, self.casual_leave + ) + + def test_report_with_filters(self): + filters = frappe._dict( + { + "from_date": self.year_start, + "to_date": self.year_end, + "employee": self.employee_1.name, + "leave_type": self.earned_leave, + } + ) + + report = execute(filters) + result = report[1][:-1] + + self.assertTrue(all(row.employee == self.employee_1.name for row in result)) + self.assertTrue(all(row.leave_type == self.earned_leave for row in result)) + + actual_result = [] + for row in result: + actual_result.append( + { + "transaction_type": row.transaction_type, + "transaction_name": row.transaction_name, + "leaves": row.leaves, + } + ) + + expected_result = [ + { + "transaction_type": "Leave Allocation", + "transaction_name": self.earned_leave_allocation.name, + "leaves": 3, + }, + { + "transaction_type": "Leave Application", + "transaction_name": self.earned_leave_appl_1.name, + "leaves": -2, + }, + { + "transaction_type": "Leave Allocation", + "transaction_name": self.earned_leave_allocation.name, + "leaves": 1, + }, + ] + + self.assertEqual(actual_result, expected_result) + + def test_totals(self): + def get_total_row(filters): + report = execute(filters) + return report[1][-1] + + # CASE 1: no filters, skip total row + filters = frappe._dict( + { + "from_date": self.year_start, + "to_date": self.year_end, + } + ) + + total_row = get_total_row(filters) + self.assertNotIn("Total", total_row.employee) + + # CASE 2: employee filter, add total row + filters = frappe._dict( + { + "from_date": self.year_start, + "to_date": self.year_end, + "employee": self.employee_1.name, + } + ) + + total_row = get_total_row(filters) + self.assertIn(f"Total Leaves ({self.earned_leave})", total_row.employee) + # 4 leaves allocated, 2 leaves taken + self.assertEqual(total_row.leaves, 2) + + # CASE 3: leave type filter with only 1 allocation, add total row + filters = frappe._dict( + { + "from_date": self.year_start, + "to_date": self.year_end, + "leave_type": self.casual_leave, + } + ) + + total_row = get_total_row(filters) + self.assertEqual(f"Total Leaves ({self.casual_leave})", total_row.employee) + # 15 leave allocated, 2 leave taken + self.assertEqual(total_row.leaves, 13) + + def tearDown(self): + frappe.flags.current_date = None diff --git a/apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js b/apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js new file mode 100644 index 000000000..37f35dcc2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js @@ -0,0 +1,171 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.query_reports["Monthly Attendance Sheet"] = { + filters: [ + { + fieldname: "filter_based_on", + label: __("Filter Based On"), + fieldtype: "Select", + options: ["Month", "Date Range"], + default: "Month", + reqd: 1, + on_change: (report) => { + let filter_based_on = frappe.query_report.get_filter_value("filter_based_on"); + + if (filter_based_on == "Month") { + set_reqd_filter("month", true); + set_reqd_filter("year", true); + set_reqd_filter("start_date", false); + set_reqd_filter("end_date", false); + } + if (filter_based_on == "Date Range") { + set_reqd_filter("month", false); + set_reqd_filter("year", false); + set_reqd_filter("start_date", true); + set_reqd_filter("end_date", true); + } + report.refresh(); + }, + }, + { + fieldname: "month", + label: __("Month"), + fieldtype: "Select", + options: [ + { value: 1, label: __("Jan") }, + { value: 2, label: __("Feb") }, + { value: 3, label: __("Mar") }, + { value: 4, label: __("Apr") }, + { value: 5, label: __("May") }, + { value: 6, label: __("June") }, + { value: 7, label: __("July") }, + { value: 8, label: __("Aug") }, + { value: 9, label: __("Sep") }, + { value: 10, label: __("Oct") }, + { value: 11, label: __("Nov") }, + { value: 12, label: __("Dec") }, + ], + default: frappe.datetime.str_to_obj(frappe.datetime.get_today()).getMonth() + 1, + depends_on: "eval:doc.filter_based_on == 'Month'", + }, + { + fieldname: "start_date", + label: __("Start Date"), + fieldtype: "Date", + depends_on: "eval:doc.filter_based_on == 'Date Range'", + on_change: validate_date_range, + }, + { + fieldname: "end_date", + label: __("End Date"), + fieldtype: "Date", + depends_on: "eval:doc.filter_based_on == 'Date Range'", + on_change: validate_date_range, + }, + { + fieldname: "year", + label: __("Year"), + fieldtype: "Select", + depends_on: "eval:doc.filter_based_on == 'Month'", + }, + { + fieldname: "employee", + label: __("Employee"), + fieldtype: "Link", + options: "Employee", + get_query: () => { + var company = frappe.query_report.get_filter_value("company"); + return { + filters: { + company: company, + }, + }; + }, + }, + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_user_default("Company"), + reqd: 1, + }, + { + fieldname: "group_by", + label: __("Group By"), + fieldtype: "Select", + options: ["", "Branch", "Grade", "Department", "Designation"], + }, + { + fieldname: "include_company_descendants", + label: __("Include Company Descendants"), + fieldtype: "Check", + default: 1, + }, + { + fieldname: "summarized_view", + label: __("Summarized View"), + fieldtype: "Check", + default: 0, + }, + ], + onload: function () { + return frappe.call({ + method: "hrms.hr.report.monthly_attendance_sheet.monthly_attendance_sheet.get_attendance_years", + callback: function (r) { + var year_filter = frappe.query_report.get_filter("year"); + year_filter.df.options = r.message; + year_filter.df.default = r.message.split("\n")[0]; + year_filter.refresh(); + year_filter.set_input(year_filter.df.default); + }, + }); + }, + formatter: function (value, row, column, data, default_formatter) { + value = default_formatter(value, row, column, data); + const summarized_view = frappe.query_report.get_filter_value("summarized_view"); + const group_by = frappe.query_report.get_filter_value("group_by"); + + if (group_by && column.colIndex === 1) { + value = "" + value + ""; + } + + if (!summarized_view) { + if ((group_by && column.colIndex > 3) || (!group_by && column.colIndex > 2)) { + if (value == "HD/P") value = "" + value + ""; + else if (value == "HD/A") + value = "" + value + ""; + else if (value == "P" || value == "WFH") + value = "" + value + ""; + else if (value == "A") value = "" + value + ""; + else if (value == "L") value = "" + value + ""; + else value = "" + value + ""; + } + } + + return value; + }, +}; +function set_reqd_filter(fieldname, is_reqd) { + let filter = frappe.query_report.get_filter(fieldname); + filter.df.reqd = is_reqd; + filter.refresh(); +} +function validate_date_range(report) { + let start_date = frappe.query_report.get_filter_value("start_date"); + let end_date = frappe.query_report.get_filter_value("end_date"); + if (!(start_date && end_date)) return; + + let start = frappe.datetime.str_to_obj(start_date); + let end = frappe.datetime.str_to_obj(end_date); + let milli_seconds_in_a_day = 24 * 60 * 60 * 1000; + let day_diff = Math.floor((end - start) / milli_seconds_in_a_day); + if (day_diff > 90) { + frappe.throw({ + message: __("Please set a date range less than 90 days."), + title: __("Date Range Exceeded"), + }); + } + report.refresh(); +} diff --git a/apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json b/apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json new file mode 100644 index 000000000..4daab813f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json @@ -0,0 +1,29 @@ +{ + "add_total_row": 0, + "apply_user_permissions": 1, + "creation": "2013-05-13 14:04:03", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 3, + "is_standard": "Yes", + "modified": "2017-02-24 20:16:50.550242", + "modified_by": "Administrator", + "module": "HR", + "name": "Monthly Attendance Sheet", + "owner": "Administrator", + "ref_doctype": "Attendance", + "report_name": "Monthly Attendance Sheet", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + }, + { + "role": "HR User" + }, + { + "role": "HR Manager" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py b/apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py new file mode 100644 index 000000000..7ce1b169a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py @@ -0,0 +1,739 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +from calendar import monthrange +from datetime import date +from itertools import groupby + +from pypika import Field +from pypika.terms import Criterion + +import frappe +from frappe import _ +from frappe.query_builder import Case +from frappe.query_builder.functions import Count, Extract, Sum +from frappe.utils import cint, cstr, formatdate, getdate +from frappe.utils.nestedset import get_descendants_of + +from hrms.utils import date_diff, get_date_range + +Filters = frappe._dict + +status_map = { + "Present": "P", + "Absent": "A", + "Half Day/Other Half Absent": "HD/A", + "Half Day/Other Half Present": "HD/P", + "Work From Home": "WFH", + "On Leave": "L", + "Holiday": "H", + "Weekly Off": "WO", +} + +day_abbr = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"] + + +def execute(filters: Filters | None = None) -> tuple: + filters = frappe._dict(filters or {}) + + if not filters.filter_based_on: + frappe.throw(_("Please select Filter Based On")) + + if filters.filter_based_on == "Month" and not (filters.month and filters.year): + frappe.throw(_("Please select month and year.")) + + if filters.filter_based_on == "Date Range": + if not (filters.start_date and filters.end_date): + frappe.throw(_("Please set the date range.")) + if getdate(filters.start_date) > getdate(filters.end_date): + frappe.throw(_("Start date cannot be greater than end date.")) + if date_diff(filters.end_date, filters.start_date) > 90: + frappe.throw(_("Please set a date range less than 90 days.")) + + if not filters.company: + frappe.throw(_("Please select company.")) + + if filters.company: + filters.companies = [filters.company] + if filters.include_company_descendants: + filters.companies.extend(get_descendants_of("Company", filters.company)) + + attendance_map = get_attendance_map(filters) + if not attendance_map: + frappe.msgprint(_("No attendance records found."), alert=True, indicator="orange") + return [], [], None, None + + columns = get_columns(filters) + data = get_data(filters, attendance_map) + + if not data: + frappe.msgprint(_("No attendance records found for this criteria."), alert=True, indicator="orange") + return columns, [], None, None + + message = get_message() if not filters.summarized_view else "" + chart = get_chart_data(attendance_map, filters) + + return columns, data, message, chart + + +def get_message() -> str: + message = "" + colors = [ + "green", + "red", + "orange", + "#914EE3", + "green", + "#3187D8", + "#878787", + "#878787", + ] + + count = 0 + for status, abbr in status_map.items(): + message += f""" + + {_(status)} - {abbr} + + """ + count += 1 + + return message + + +def get_columns(filters: Filters) -> list[dict]: + columns = [] + + if filters.group_by: + options_mapping = { + "Branch": "Branch", + "Grade": "Employee Grade", + "Department": "Department", + "Designation": "Designation", + } + options = options_mapping.get(filters.group_by) + columns.append( + { + "label": _(filters.group_by), + "fieldname": frappe.scrub(filters.group_by), + "fieldtype": "Link", + "options": options, + "width": 120, + } + ) + + columns.extend( + [ + { + "label": _("Employee"), + "fieldname": "employee", + "fieldtype": "Link", + "options": "Employee", + "width": 135, + }, + {"label": _("Employee Name"), "fieldname": "employee_name", "fieldtype": "Data", "width": 120}, + ] + ) + + if filters.summarized_view: + columns.extend( + [ + { + "label": _("Total Present"), + "fieldname": "total_present", + "fieldtype": "Float", + "width": 110, + }, + {"label": _("Total Leaves"), "fieldname": "total_leaves", "fieldtype": "Float", "width": 110}, + {"label": _("Total Absent"), "fieldname": "total_absent", "fieldtype": "Float", "width": 110}, + { + "label": _("Total Holidays"), + "fieldname": "total_holidays", + "fieldtype": "Float", + "width": 120, + }, + { + "label": _("Unmarked Days"), + "fieldname": "unmarked_days", + "fieldtype": "Float", + "width": 130, + }, + ] + ) + columns.extend(get_columns_for_leave_types()) + columns.extend( + [ + { + "label": _("Total Late Entries"), + "fieldname": "total_late_entries", + "fieldtype": "Float", + "width": 140, + }, + { + "label": _("Total Early Exits"), + "fieldname": "total_early_exits", + "fieldtype": "Float", + "width": 140, + }, + ] + ) + else: + columns.append({"label": _("Shift"), "fieldname": "shift", "fieldtype": "Data", "width": 120}) + columns.extend(get_columns_for_days(filters)) + + return columns + + +def get_columns_for_leave_types() -> list[dict]: + leave_types = frappe.db.get_all("Leave Type", pluck="name") + types = [] + for entry in leave_types: + types.append({"label": entry, "fieldname": frappe.scrub(entry), "fieldtype": "Float", "width": 120}) + + return types + + +def get_columns_for_days(filters: Filters) -> list[dict]: + days = [] + dates_in_period = get_dates_in_period(filters) + for d in dates_in_period: + d = getdate(d) + # gets abbr from weekday number + abbr_weekday = day_abbr[d.weekday()] + # sets days as 1 Mon, 2 Tue, 3 Wed + label = f"{d.day} {abbr_weekday}" + days.append({"label": label, "fieldtype": "Data", "fieldname": d.strftime("%d-%m-%Y"), "width": 65}) + + return days + + +def get_dates_in_period(filters: Filters) -> list[str]: + dates_in_period = [] + if filters.filter_based_on == "Month": + total_days = get_total_days_in_month(filters) + # forms the datelist from selected year and month from filters + dates_in_period = [ + f"{cstr(filters.year)}-{cstr(filters.month)}-{cstr(day)}" for day in range(1, total_days + 1) + ] + if filters.filter_based_on == "Date Range": + dates_in_period = get_date_range(filters.start_date, filters.end_date) + + return dates_in_period + + +def get_total_days_in_month(filters: Filters) -> int: + return monthrange(cint(filters.year), cint(filters.month))[1] + + +def get_date_condition(docfield: Field, filters: Filters) -> Criterion: + if filters.filter_based_on == "Month": + return (Extract("month", docfield) == filters.month) & (Extract("year", docfield) == filters.year) + if filters.filter_based_on == "Date Range": + return (docfield >= filters.start_date) & (docfield <= filters.end_date) + + +def get_data(filters: Filters, attendance_map: dict) -> list[dict]: + employee_details, group_by_param_values = get_employee_related_details(filters) + holiday_map = get_holiday_map(filters) + data = [] + + if filters.group_by: + group_by_column = frappe.scrub(filters.group_by) + + for value in group_by_param_values: + if not value: + continue + + records = get_rows(employee_details[value], filters, holiday_map, attendance_map) + + if records: + data.append({group_by_column: value}) + data.extend(records) + + else: + data = get_rows(employee_details, filters, holiday_map, attendance_map) + + return data + + +def get_attendance_map(filters: Filters) -> dict: + """Returns a dictionary of employee wise attendance map as per shifts for all the days of the month like + { + 'employee1': { + 'Morning Shift': {1: 'Present', 2: 'Absent', ...} + 'Evening Shift': {1: 'Absent', 2: 'Present', ...} + }, + 'employee2': { + 'Afternoon Shift': {1: 'Present', 2: 'Absent', ...} + 'Night Shift': {1: 'Absent', 2: 'Absent', ...} + }, + 'employee3': { + None: {1: 'On Leave'} + } + } + """ + attendance_list = get_attendance_records(filters) + attendance_map = {} + leave_map = {} + + for d in attendance_list: + if d.status == "On Leave": + leave_map.setdefault(d.employee, {}).setdefault(d.shift, []).append(d.attendance_date) + continue + + if d.shift is None: + d.shift = "" + + attendance_map.setdefault(d.employee, {}).setdefault(d.shift, {}) + attendance_map[d.employee][d.shift][d.attendance_date] = d.status + + # leave is applicable for the entire day so all shifts should show the leave entry + + for employee, leave_days in leave_map.items(): + for assigned_shift, dates in leave_days.items(): + # no attendance records exist except leaves + if employee not in attendance_map: + attendance_map.setdefault(employee, {}).setdefault(assigned_shift, {}) + + for d in dates: + for shift in attendance_map[employee].keys(): + attendance_map[employee][shift][d] = "On Leave" + + return attendance_map + + +def get_attendance_records(filters: Filters) -> list[dict]: + Attendance = frappe.qb.DocType("Attendance") + attendance_date_condition = get_date_condition(Attendance.attendance_date, filters) + status = ( + frappe.qb.terms.Case() + .when( + ((Attendance.status == "Half Day") & (Attendance.half_day_status == "Present")), + "Half Day/Other Half Present", + ) + .when( + ((Attendance.status == "Half Day") & (Attendance.half_day_status == "Absent")), + "Half Day/Other Half Absent", + ) + .else_(Attendance.status) + ) + query = ( + frappe.qb.from_(Attendance) + .select( + Attendance.employee, + Attendance.attendance_date, + (status).as_("status"), + Attendance.shift, + ) + .where( + (Attendance.docstatus == 1) + & (Attendance.company.isin(filters.companies)) + & (attendance_date_condition) + ) + ) + + if filters.employee: + query = query.where(Attendance.employee == filters.employee) + query = query.orderby(Attendance.employee, Attendance.attendance_date) + + return query.run(as_dict=1) + + +def get_employee_related_details(filters: Filters) -> tuple[dict, list]: + """Returns + 1. nested dict for employee details + 2. list of values for the group by filter + """ + Employee = frappe.qb.DocType("Employee") + + joining_date_condition = get_date_condition(Employee.date_of_joining, filters) + + query = ( + frappe.qb.from_(Employee) + .select( + Employee.name, + Employee.employee_name, + Employee.designation, + Employee.grade, + Employee.department, + Employee.branch, + Employee.company, + Employee.holiday_list, + (Employee.date_of_joining).as_("joined_date"), + Case() + .when( + joining_date_condition, + 1, + ) + .else_(0) + .as_("joined_in_current_period"), + ) + .where(Employee.company.isin(filters.companies)) + ) + + if filters.employee: + query = query.where(Employee.name == filters.employee) + + group_by = filters.group_by + if group_by: + group_by = group_by.lower() + query = query.orderby(group_by) + + employee_details = query.run(as_dict=True) + + group_by_param_values = [] + emp_map = {} + + if group_by: + group_key = lambda d: "" if d[group_by] is None else d[group_by] # noqa + for parameter, employees in groupby(sorted(employee_details, key=group_key), key=group_key): + group_by_param_values.append(parameter) + emp_map.setdefault(parameter, frappe._dict()) + + for emp in employees: + emp_map[parameter][emp.name] = emp + else: + for emp in employee_details: + emp_map[emp.name] = emp + + return emp_map, group_by_param_values + + +def get_holiday_map(filters: Filters) -> dict[str, list[dict]]: + """ + Returns a dict of holidays falling in the filter month and year + with list name as key and list of holidays as values like + { + 'Holiday List 1': [ + {'day_of_month': '0' , 'weekly_off': 1}, + {'day_of_month': '1', 'weekly_off': 0} + ], + 'Holiday List 2': [ + {'day_of_month': '0' , 'weekly_off': 1}, + {'day_of_month': '1', 'weekly_off': 0} + ] + } + """ + # add default holiday list too + holiday_lists = frappe.db.get_all("Holiday List", pluck="name") + default_holiday_list = frappe.get_cached_value("Company", filters.company, "default_holiday_list") + holiday_lists.append(default_holiday_list) + + holiday_map = frappe._dict() + Holiday = frappe.qb.DocType("Holiday") + + holiday_condition = get_date_condition(Holiday.holiday_date, filters) + + for d in holiday_lists: + if not d: + continue + + holidays = ( + frappe.qb.from_(Holiday) + .select(Holiday.holiday_date, Holiday.weekly_off) + .where((Holiday.parent == d) & (holiday_condition)) + ).run(as_dict=True) + holiday_map.setdefault(d, holidays) + + return holiday_map + + +def get_rows(employee_details: dict, filters: Filters, holiday_map: dict, attendance_map: dict) -> list[dict]: + records = [] + default_holiday_list = frappe.get_cached_value("Company", filters.company, "default_holiday_list") + + for employee, details in employee_details.items(): + emp_holiday_list = details.holiday_list or default_holiday_list + holidays = holiday_map.get(emp_holiday_list) + + if filters.summarized_view: + attendance = get_attendance_status_for_summarized_view( + employee, filters, holidays, details.joined_in_current_period, details.joined_date + ) + if not attendance: + continue + + leave_summary = get_leave_summary(employee, filters) + entry_exits_summary = get_entry_exits_summary(employee, filters) + + row = {"employee": employee, "employee_name": details.employee_name} + set_defaults_for_summarized_view(filters, row) + row.update(attendance) + row.update(leave_summary) + row.update(entry_exits_summary) + + records.append(row) + else: + employee_attendance = attendance_map.get(employee) + if not employee_attendance: + continue + + attendance_for_employee = get_attendance_status_for_detailed_view( + employee, filters, employee_attendance, holidays + ) + # set employee details in the first row + for record in attendance_for_employee: + record.update({"employee": employee, "employee_name": details.employee_name}) + + records.extend(attendance_for_employee) + + return records + + +def set_defaults_for_summarized_view(filters, row): + for entry in get_columns(filters): + if entry.get("fieldtype") == "Float": + row[entry.get("fieldname")] = 0.0 + + +def get_attendance_status_for_summarized_view( + employee: str, filters: Filters, holidays: list, joined_in_current_period: int, joined_date: int +) -> dict: + """Returns dict of attendance status for employee like + {'total_present': 1.5, 'total_leaves': 0.5, 'total_absent': 13.5, 'total_holidays': 8, 'unmarked_days': 5} + """ + summary, attendance_days = get_attendance_summary_and_days(employee, filters) + if not any(summary.values()): + return {} + + total_days = get_dates_in_period(filters) + total_holidays = total_unmarked_days = 0 + + for d in total_days: + d = getdate(d) + if d.day in attendance_days or (joined_in_current_period and d < joined_date): + continue + + status = get_holiday_status(d, holidays) + if status in ["Weekly Off", "Holiday"]: + total_holidays += 1 + elif not status: + total_unmarked_days += 1 + + return { + "total_present": summary.total_present + summary.total_half_days, + "total_leaves": summary.total_leaves + summary.total_half_days, + "total_absent": summary.total_absent, + "total_holidays": total_holidays, + "unmarked_days": total_unmarked_days, + } + + +def get_attendance_summary_and_days(employee: str, filters: Filters) -> tuple[dict, list]: + Attendance = frappe.qb.DocType("Attendance") + + present_case = ( + frappe.qb.terms.Case() + .when(((Attendance.status == "Present") | (Attendance.status == "Work From Home")), 1) + .else_(0) + ) + sum_present = Sum(present_case).as_("total_present") + + absent_case = frappe.qb.terms.Case().when(Attendance.status == "Absent", 1).else_(0) + sum_absent = Sum(absent_case).as_("total_absent") + + leave_case = frappe.qb.terms.Case().when(Attendance.status == "On Leave", 1).else_(0) + sum_leave = Sum(leave_case).as_("total_leaves") + + half_day_case = frappe.qb.terms.Case().when(Attendance.status == "Half Day", 0.5).else_(0) + sum_half_day = Sum(half_day_case).as_("total_half_days") + + attendance_date_condition = get_date_condition(Attendance.attendance_date, filters) + + summary = ( + frappe.qb.from_(Attendance) + .select( + sum_present, + sum_absent, + sum_leave, + sum_half_day, + ) + .where( + (Attendance.docstatus == 1) + & (Attendance.employee == employee) + & (Attendance.company.isin(filters.companies)) + & (attendance_date_condition) + ) + ).run(as_dict=True) + + days = ( + frappe.qb.from_(Attendance) + .select(Extract("day", Attendance.attendance_date).as_("day_of_month")) + .distinct() + .where( + (Attendance.docstatus == 1) + & (Attendance.employee == employee) + & (Attendance.company.isin(filters.companies)) + & (attendance_date_condition) + ) + ).run(pluck=True) + + return summary[0], days + + +def get_attendance_status_for_detailed_view( + employee: str, filters: Filters, employee_attendance: dict, holidays: list +) -> list[dict]: + """Returns list of shift-wise attendance status for employee + [ + {'shift': 'Morning Shift', 1: 'A', 2: 'P', 3: 'A'....}, + {'shift': 'Evening Shift', 1: 'P', 2: 'A', 3: 'P'....} + ] + """ + total_days = get_dates_in_period(filters) + attendance_values = [] + + for shift, status_dict in employee_attendance.items(): + row = {"shift": shift} + """{ + 'Morning Shift': {1: 'Present', 2: 'Absent', ...} + 'Evening Shift': {1: 'Absent', 2: 'Present', ...} + },""" + for d in total_days: + d = getdate(d) + + status = status_dict.get(d) + + if status is None and holidays: + status = get_holiday_status(d, holidays) + + abbr = status_map.get(status, "") + row[d.strftime("%d-%m-%Y")] = abbr + + attendance_values.append(row) + + return attendance_values + + +def get_holiday_status(holiday_date: date, holidays: list) -> str: + status = None + if holidays: + for holiday in holidays: + if holiday_date == holiday.get("holiday_date"): + if holiday.get("weekly_off"): + status = "Weekly Off" + else: + status = "Holiday" + break + return status + + +def get_leave_summary(employee: str, filters: Filters) -> dict[str, float]: + """Returns a dict of leave type and corresponding leaves taken by employee like: + {'leave_without_pay': 1.0, 'sick_leave': 2.0} + """ + Attendance = frappe.qb.DocType("Attendance") + day_case = frappe.qb.terms.Case().when(Attendance.status == "Half Day", 0.5).else_(1) + sum_leave_days = Sum(day_case).as_("leave_days") + + attendance_date_condition = get_date_condition(Attendance.attendance_date, filters) + + leave_details = ( + frappe.qb.from_(Attendance) + .select(Attendance.leave_type, sum_leave_days) + .where( + (Attendance.employee == employee) + & (Attendance.docstatus == 1) + & (Attendance.company.isin(filters.companies)) + & ((Attendance.leave_type.isnotnull()) | (Attendance.leave_type != "")) + & (attendance_date_condition) + ) + .groupby(Attendance.leave_type) + ).run(as_dict=True) + + leaves = {} + for d in leave_details: + leave_type = frappe.scrub(d.leave_type) + leaves[leave_type] = d.leave_days + + return leaves + + +def get_entry_exits_summary(employee: str, filters: Filters) -> dict[str, float]: + """Returns total late entries and total early exits for employee like: + {'total_late_entries': 5, 'total_early_exits': 2} + """ + Attendance = frappe.qb.DocType("Attendance") + + late_entry_case = frappe.qb.terms.Case().when(Attendance.late_entry == "1", "1") + count_late_entries = Count(late_entry_case).as_("total_late_entries") + + early_exit_case = frappe.qb.terms.Case().when(Attendance.early_exit == "1", "1") + count_early_exits = Count(early_exit_case).as_("total_early_exits") + + attendance_date_condition = get_date_condition(Attendance.attendance_date, filters) + + entry_exits = ( + frappe.qb.from_(Attendance) + .select(count_late_entries, count_early_exits) + .where( + (Attendance.docstatus == 1) + & (Attendance.employee == employee) + & (Attendance.company.isin(filters.companies)) + & (attendance_date_condition) + ) + ).run(as_dict=True) + + return entry_exits[0] + + +@frappe.whitelist() +def get_attendance_years() -> str: + """Returns all the years for which attendance records exist""" + Attendance = frappe.qb.DocType("Attendance") + year_list = ( + frappe.qb.from_(Attendance).select(Extract("year", Attendance.attendance_date).as_("year")).distinct() + ).run(as_dict=True) + + if year_list: + year_list.sort(key=lambda d: d.year, reverse=True) + else: + year_list = [frappe._dict({"year": getdate().year})] + + return "\n".join(cstr(entry.year) for entry in year_list) + + +def get_chart_data(attendance_map: dict, filters: Filters) -> dict: + days = get_columns_for_days(filters) + labels = [] + absent = [] + present = [] + leave = [] + + for day in days: + labels.append(day["label"]) + total_absent_on_day = total_leaves_on_day = total_present_on_day = 0 + + for __, attendance_dict in attendance_map.items(): + for __, attendance in attendance_dict.items(): + attendance_on_day = attendance.get(getdate(day["fieldname"], parse_day_first=True)) + + if attendance_on_day == "On Leave": + # leave should be counted only once for the entire day + total_leaves_on_day += 1 + break + elif attendance_on_day == "Absent": + total_absent_on_day += 1 + elif attendance_on_day in ["Present", "Work From Home"]: + total_present_on_day += 1 + elif attendance_on_day == "Half Day": + total_present_on_day += 0.5 + total_leaves_on_day += 0.5 + + absent.append(total_absent_on_day) + present.append(total_present_on_day) + leave.append(total_leaves_on_day) + + return { + "data": { + "labels": labels, + "datasets": [ + {"name": _("Absent"), "values": absent}, + {"name": _("Present"), "values": present}, + {"name": _("Leave"), "values": leave}, + ], + }, + "type": "line", + "colors": ["red", "green", "blue"], + } diff --git a/apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/test_monthly_attendance_sheet.py b/apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/test_monthly_attendance_sheet.py new file mode 100644 index 000000000..df2e40945 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/monthly_attendance_sheet/test_monthly_attendance_sheet.py @@ -0,0 +1,591 @@ +from dateutil.relativedelta import relativedelta + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, get_year_ending, get_year_start, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.attendance.attendance import mark_attendance +from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import assign_holiday_list +from hrms.hr.doctype.leave_allocation.leave_allocation import OverlapError +from hrms.hr.doctype.leave_application.test_leave_application import make_allocation_record +from hrms.hr.doctype.shift_type.test_shift_type import setup_shift_type +from hrms.hr.report.monthly_attendance_sheet.monthly_attendance_sheet import execute +from hrms.payroll.doctype.salary_slip.test_salary_slip import ( + make_holiday_list, + make_leave_application, +) +from hrms.tests.test_utils import create_company, get_first_day_for_prev_month + + +class TestMonthlyAttendanceSheet(IntegrationTestCase): + def setUp(self): + self.company = "_Test Company" + self.employee = make_employee("test_employee@example.com", company=self.company) + self.filter_based_on = "Month" + for dt in ("Attendance", "Leave Application"): + frappe.db.delete(dt) + + if not frappe.db.exists("Shift Type", "Day Shift"): + setup_shift_type(shift_type="Day Shift") + + date = getdate() + from_date = get_year_start(date) + to_date = get_year_ending(date) + make_holiday_list(from_date=from_date, to_date=to_date) + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_monthly_attendance_sheet_report(self): + previous_month_first = get_first_day_for_prev_month() + + # mark different attendance status on first 3 days of previous month + mark_attendance(self.employee, previous_month_first, "Absent") + mark_attendance(self.employee, previous_month_first + relativedelta(days=1), "Present") + mark_attendance(self.employee, previous_month_first + relativedelta(days=2), "On Leave") + + employee_on_leave_with_shift = make_employee("employee@leave.com", company=self.company) + mark_attendance(employee_on_leave_with_shift, previous_month_first, "On Leave", "Day Shift") + + filters = frappe._dict( + { + "month": previous_month_first.month, + "year": previous_month_first.year, + "company": self.company, + "filter_based_on": self.filter_based_on, + } + ) + report = execute(filters=filters) + + datasets = report[3]["data"]["datasets"] + + absent = datasets[0]["values"] + present = datasets[1]["values"] + leaves = datasets[2]["values"] + + # ensure correct attendance is reflected on the report + self.assertEqual(self.employee, report[1][0].get("employee")) + self.assertEqual("Day Shift", report[1][1].get("shift")) + self.assertEqual(absent[0], 1) + self.assertEqual(present[1], 1) + self.assertEqual(leaves[2], 1) + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_detailed_view(self): + previous_month_first = get_first_day_for_prev_month() + + # attendance with shift + mark_attendance(self.employee, previous_month_first, "Absent", "Day Shift") + mark_attendance(self.employee, previous_month_first + relativedelta(days=1), "Present", "Day Shift") + + # attendance without shift + mark_attendance(self.employee, previous_month_first + relativedelta(days=2), "On Leave") + mark_attendance(self.employee, previous_month_first + relativedelta(days=3), "Present") + + filters = frappe._dict( + { + "month": previous_month_first.month, + "year": previous_month_first.year, + "company": self.company, + "filter_based_on": self.filter_based_on, + } + ) + report = execute(filters=filters) + + day_shift_row = report[1][0] + row_without_shift = report[1][1] + + self.assertEqual(day_shift_row["shift"], "Day Shift") + self.assertEqual( + day_shift_row[date_key(previous_month_first)], "A" + ) # absent on the 1st day of the month + self.assertEqual( + day_shift_row[date_key(add_days(previous_month_first, 1))], "P" + ) # present on the 2nd day + + self.assertEqual(row_without_shift["shift"], "") + self.assertEqual( + row_without_shift[date_key(add_days(previous_month_first, 3))], "P" + ) # present on the 4th day + + # leave should be shown against every shift + self.assertTrue( + day_shift_row[date_key(add_days(previous_month_first, 2))] + == row_without_shift[date_key(add_days(previous_month_first, 2))] + == "L" + ) + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_single_shift_with_leaves_in_detailed_view(self): + previous_month_first = get_first_day_for_prev_month() + + # attendance with shift + mark_attendance(self.employee, previous_month_first, "Absent", "Day Shift") + mark_attendance(self.employee, previous_month_first + relativedelta(days=1), "Present", "Day Shift") + + # attendance without shift + mark_attendance(self.employee, previous_month_first + relativedelta(days=2), "On Leave") + + filters = frappe._dict( + { + "month": previous_month_first.month, + "year": previous_month_first.year, + "company": self.company, + "filter_based_on": self.filter_based_on, + } + ) + report = execute(filters=filters) + # do not split for leave record + self.assertEqual(len(report[1]), 1) + + day_shift_row = report[1][0] + + self.assertEqual(day_shift_row["shift"], "Day Shift") + self.assertEqual( + day_shift_row[date_key(previous_month_first)], "A" + ) # absent on the 1st day of the month + self.assertEqual( + day_shift_row[date_key(add_days(previous_month_first, 1))], "P" + ) # present on the 2nd day + self.assertEqual( + day_shift_row[date_key(add_days(previous_month_first, 2))], "L" + ) # leave on the 3rd day + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_single_leave_record(self): + previous_month_first = get_first_day_for_prev_month() + + # attendance without shift + mark_attendance(self.employee, previous_month_first, "On Leave") + + filters = frappe._dict( + { + "month": previous_month_first.month, + "year": previous_month_first.year, + "company": self.company, + "filter_based_on": self.filter_based_on, + } + ) + report = execute(filters=filters) + + # single row with leave record + self.assertEqual(len(report[1]), 1) + row = report[1][0] + + self.assertIsNone(row["shift"]) + self.assertEqual(row[date_key(previous_month_first)], "L") + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_summarized_view(self): + previous_month_first = get_first_day_for_prev_month() + + # attendance with shift + mark_attendance(self.employee, previous_month_first, "Absent", "Day Shift") + mark_attendance(self.employee, previous_month_first + relativedelta(days=1), "Present", "Day Shift") + mark_attendance(self.employee, previous_month_first + relativedelta(days=2), "Half Day") # half day + + mark_attendance( + self.employee, previous_month_first + relativedelta(days=3), "Present" + ) # attendance without shift + mark_attendance( + self.employee, previous_month_first + relativedelta(days=4), "Present", late_entry=1 + ) # late entry + mark_attendance( + self.employee, previous_month_first + relativedelta(days=5), "Present", early_exit=1 + ) # early exit + + leave_application = get_leave_application(self.employee) + + filters = frappe._dict( + { + "month": previous_month_first.month, + "year": previous_month_first.year, + "company": self.company, + "summarized_view": 1, + "filter_based_on": self.filter_based_on, + } + ) + report = execute(filters=filters) + + row = report[1][0] + self.assertEqual(row["employee"], self.employee) + + # 4 present + half day absent 0.5 + self.assertEqual(row["total_present"], 4.5) + # 1 present + self.assertEqual(row["total_absent"], 1) + # leave days + half day leave 0.5 + self.assertEqual(row["total_leaves"], leave_application.total_leave_days + 0.5) + + self.assertEqual(row["_test_leave_type"], leave_application.total_leave_days) + self.assertEqual(row["total_late_entries"], 1) + self.assertEqual(row["total_early_exits"], 1) + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_attendance_with_group_by_filter(self): + previous_month_first = get_first_day_for_prev_month() + + # attendance with shift + mark_attendance(self.employee, previous_month_first, "Absent", "Day Shift") + mark_attendance(self.employee, previous_month_first + relativedelta(days=1), "Present", "Day Shift") + + # attendance without shift + mark_attendance(self.employee, previous_month_first + relativedelta(days=2), "On Leave") + mark_attendance(self.employee, previous_month_first + relativedelta(days=3), "Present") + + departmentless_employee = make_employee( + "emp@departmentless.com", company=self.company, department=None + ) + mark_attendance(departmentless_employee, previous_month_first + relativedelta(days=3), "Present") + + filters = frappe._dict( + { + "month": previous_month_first.month, + "year": previous_month_first.year, + "company": self.company, + "group_by": "Department", + "filter_based_on": self.filter_based_on, + } + ) + report = execute(filters=filters) + + department = frappe.db.get_value("Employee", self.employee, "department") + department_row = report[1][0] + self.assertIn(department, department_row["department"]) + + day_shift_row = report[1][1] + row_without_shift = report[1][2] + + self.assertEqual(day_shift_row["shift"], "Day Shift") + self.assertEqual( + day_shift_row[date_key(previous_month_first)], "A" + ) # absent on the 1st day of the month + self.assertEqual( + day_shift_row[date_key(add_days(previous_month_first, 1))], "P" + ) # present on the 2nd day + + self.assertEqual(row_without_shift["shift"], "") + self.assertEqual( + row_without_shift[date_key(add_days(previous_month_first, 2))], "L" + ) # on leave on the 3rd day + self.assertEqual( + row_without_shift[date_key(add_days(previous_month_first, 3))], "P" + ) # present on the 4th day + + def test_attendance_with_employee_filter(self): + previous_month_first = get_first_day_for_prev_month() + + employee2 = make_employee("test_employee2@example.com", company=self.company) + employee3 = make_employee("test_employee3@example.com", company=self.company) + + # mark different attendance status on first 3 days of previous month for employee1 + mark_attendance(self.employee, previous_month_first, "Absent") + mark_attendance(self.employee, previous_month_first + relativedelta(days=1), "Present") + mark_attendance(self.employee, previous_month_first + relativedelta(days=2), "On Leave") + + # mark different attendance status on first 3 days of previous month for employee2 + mark_attendance(employee2, previous_month_first, "Absent") + mark_attendance(employee2, previous_month_first + relativedelta(days=1), "Present") + mark_attendance(employee2, previous_month_first + relativedelta(days=2), "On Leave") + + # mark different attendance status on first 3 days of previous month for employee3 + mark_attendance(employee3, previous_month_first, "Absent") + mark_attendance(employee3, previous_month_first + relativedelta(days=1), "Present") + mark_attendance(employee3, previous_month_first + relativedelta(days=2), "On Leave") + + filters = frappe._dict( + { + "month": previous_month_first.month, + "year": previous_month_first.year, + "company": self.company, + "employee": self.employee, + "filter_based_on": self.filter_based_on, + } + ) + report = execute(filters=filters) + + record = report[1][0] + datasets = report[3]["data"]["datasets"] + absent = datasets[0]["values"] + present = datasets[1]["values"] + leaves = datasets[2]["values"] + + # ensure that only show the attendance for the specified employee + self.assertEqual(len(report[1]), 1) + + # ensure correct attendance is reflected on the report + self.assertEqual(self.employee, record.get("employee")) + self.assertEqual(absent[0], 1) + self.assertEqual(present[1], 1) + self.assertEqual(leaves[2], 1) + + def test_attendance_with_company_filter(self): + create_company("Test Parent Company", is_group=1) + create_company("Test Child Company", is_group=1, parent_company="Test Parent Company") + create_company("Test Grandchild Company", parent_company="Test Child Company") + + employee1 = make_employee("test_employee@parent.com", company="Test Parent Company") + employee2 = make_employee("test_employee@child.com", company="Test Child Company") + employee3 = make_employee("test_employee@grandchild.com", company="Test Grandchild Company") + + previous_month_first = get_first_day_for_prev_month() + mark_attendance(employee1, previous_month_first, "Present") + mark_attendance(employee2, previous_month_first, "Present") + mark_attendance(employee3, previous_month_first, "Present") + + filters = frappe._dict( + { + "month": previous_month_first.month, + "year": previous_month_first.year, + "company": "Test Parent Company", + "include_company_descendants": 1, + "filter_based_on": self.filter_based_on, + } + ) + report = execute(filters=filters) + self.assertEqual(len(report[1]), 3) + + filters.include_company_descendants = 0 + report = execute(filters=filters) + self.assertEqual(len(report[1]), 1) + + def test_attendance_with_employee_filter_and_summarized_view(self): + previous_month_first = get_first_day_for_prev_month() + + employee2 = make_employee("test_employee2@example.com", company=self.company) + employee3 = make_employee("test_employee3@example.com", company=self.company) + + # mark different attendance status on first 3 days of previous month for employee1 + mark_attendance(self.employee, previous_month_first, "Absent") + mark_attendance(self.employee, previous_month_first + relativedelta(days=1), "Present") + mark_attendance(self.employee, previous_month_first + relativedelta(days=2), "On Leave") + + # mark different attendance status on first 3 days of previous month for employee2 + mark_attendance(employee2, previous_month_first, "Absent") + mark_attendance(employee2, previous_month_first + relativedelta(days=1), "Present") + mark_attendance(employee2, previous_month_first + relativedelta(days=2), "On Leave") + + # mark different attendance status on first 3 days of previous month for employee3 + mark_attendance(employee3, previous_month_first, "Absent") + mark_attendance(employee3, previous_month_first + relativedelta(days=1), "Present") + mark_attendance(employee3, previous_month_first + relativedelta(days=2), "On Leave") + + filters = frappe._dict( + { + "month": previous_month_first.month, + "year": previous_month_first.year, + "company": self.company, + "employee": self.employee, + "summarized_view": 1, + "filter_based_on": self.filter_based_on, + } + ) + report = execute(filters=filters) + + record = report[1][0] + datasets = report[3]["data"]["datasets"] + absent = datasets[0]["values"] + present = datasets[1]["values"] + leaves = datasets[2]["values"] + + # ensure that only show the attendance for the specified employee + self.assertEqual(len(report[1]), 1) + + # ensure correct attendance is reflected on the report + self.assertEqual(self.employee, record.get("employee")) + self.assertEqual(absent[0], 1) + self.assertEqual(present[1], 1) + self.assertEqual(leaves[2], 1) + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_validations(self): + # validation error for filters without filter based on + self.assertRaises( + frappe.ValidationError, execute_report_with_invalid_filters, invalid_filter_name="filter_based_on" + ) + + # validation error for filters without month and year + self.assertRaises( + frappe.ValidationError, execute_report_with_invalid_filters, invalid_filter_name="month" + ) + + # validation error for filters without start date + self.assertRaises( + frappe.ValidationError, execute_report_with_invalid_filters, invalid_filter_name="start_date" + ) + + # validation error for date range greater than 90 days + filters = frappe._dict( + { + "start_date": getdate(), + "end_date": add_days(getdate(), 100), + "company": self.company, + "group_by": "Department", + "filter_based_on": "Date Range", + } + ) + self.assertRaises(frappe.ValidationError, execute, filters=filters) + # execute report without attendance record + previous_month_first = get_first_day_for_prev_month() + + filters = frappe._dict( + { + "month": previous_month_first.month, + "year": previous_month_first.year, + "company": self.company, + "group_by": "Department", + "filter_based_on": self.filter_based_on, + } + ) + report = execute(filters=filters) + self.assertEqual(report, ([], [], None, None)) + + def test_summarised_view_with_date_range_filter(self): + previous_month_first = get_first_day_for_prev_month() + + # attendance with shift + mark_attendance(self.employee, previous_month_first, "Absent", "Day Shift") + mark_attendance(self.employee, previous_month_first + relativedelta(days=1), "Present", "Day Shift") + mark_attendance(self.employee, previous_month_first + relativedelta(days=2), "Half Day") # half day + + mark_attendance( + self.employee, previous_month_first + relativedelta(days=3), "Present" + ) # attendance without shift + mark_attendance( + self.employee, previous_month_first + relativedelta(days=4), "Present", late_entry=1 + ) # late entry + mark_attendance( + self.employee, previous_month_first + relativedelta(days=5), "Present", early_exit=1 + ) # early exit + + leave_application = get_leave_application(self.employee, previous_month_first) + + filters = frappe._dict( + { + "start_date": add_days(previous_month_first, -1), + "end_date": add_days(previous_month_first, 30), + "company": self.company, + "summarized_view": 1, + "filter_based_on": "Date Range", + } + ) + report = execute(filters=filters) + + row = report[1][0] + self.assertEqual(row["employee"], self.employee) + + # 4 present + half day absent 0.5 + self.assertEqual(row["total_present"], 4.5) + # 1 present + self.assertEqual(row["total_absent"], 1) + # leave days + half day leave 0.5 + self.assertEqual(row["total_leaves"], leave_application.total_leave_days + 0.5) + + self.assertEqual(row["_test_leave_type"], leave_application.total_leave_days) + self.assertEqual(row["total_late_entries"], 1) + self.assertEqual(row["total_early_exits"], 1) + + def test_detailed_view_with_date_range_filter(self): + today = getdate() + mark_attendance(self.employee, today, "Absent", "Day Shift") + mark_attendance(self.employee, today + relativedelta(days=1), "Present", "Day Shift") + + # attendance without shift + mark_attendance(self.employee, today + relativedelta(days=2), "On Leave") + mark_attendance(self.employee, today + relativedelta(days=3), "Present") + filters = frappe._dict( + { + "filter_based_on": "Date Range", + "start_date": add_days(today, -1), + "end_date": add_days(today, 30), + "company": self.company, + } + ) + report = execute(filters=filters) + day_shift_row = report[1][0] + row_without_shift = report[1][1] + + self.assertEqual(day_shift_row["shift"], "Day Shift") + self.assertEqual(day_shift_row[date_key(today)], "A") # absent on the 1st day of the month + self.assertEqual(day_shift_row[date_key(add_days(today, 1))], "P") # present on the 2nd day + + self.assertEqual(row_without_shift["shift"], "") + self.assertEqual(row_without_shift[date_key(add_days(today, 3))], "P") # present on the 4th day + + # leave should be shown against every shift + self.assertTrue( + day_shift_row[date_key(add_days(today, 2))] + == row_without_shift[date_key(add_days(today, 2))] + == "L" + ) + + def test_detailed_view_with_date_range_and_group_by_filter(self): + today = getdate() + mark_attendance(self.employee, today, "Absent", "Day Shift") + mark_attendance(self.employee, today + relativedelta(days=1), "Present", "Day Shift") + + # attendance without shift + mark_attendance(self.employee, today + relativedelta(days=2), "On Leave") + mark_attendance(self.employee, today + relativedelta(days=3), "Present") + filters = frappe._dict( + { + "filter_based_on": "Date Range", + "start_date": add_days(today, -1), + "end_date": add_days(today, 30), + "company": self.company, + "group_by": "Department", + } + ) + report = execute(filters=filters) + day_shift_row = report[1][1] + row_without_shift = report[1][2] + + self.assertEqual(day_shift_row["shift"], "Day Shift") + self.assertEqual(day_shift_row[date_key(today)], "A") # absent on the 1st day of the month + self.assertEqual(day_shift_row[date_key(add_days(today, 1))], "P") # present on the 2nd day + + self.assertEqual(row_without_shift["shift"], "") + self.assertEqual(row_without_shift[date_key(add_days(today, 3))], "P") # present on the 4th day + + # leave should be shown against every shift + self.assertTrue( + day_shift_row[date_key(add_days(today, 2))] + == row_without_shift[date_key(add_days(today, 2))] + == "L" + ) + + +def get_leave_application(employee, date=None): + if not date: + date = get_first_day_for_prev_month() + + year_start = getdate(get_year_start(date)) + year_end = getdate(get_year_ending(date)) + try: + make_allocation_record(employee=employee, from_date=year_start, to_date=year_end) + except OverlapError: + pass + from_date = date.replace(day=7) + to_date = date.replace(day=8) + + return make_leave_application(employee, from_date, to_date, "_Test Leave Type") + + +def execute_report_with_invalid_filters(invalid_filter_name): + match invalid_filter_name: + case "filter_based_on": + filters = frappe._dict({"company": "_Test Company", "group_by": "Department"}) + case "month": + filters = frappe._dict( + {"filter_based_on": "Month", "company": "_Test Company", "group_by": "Department"} + ) + case "start_date": + filters = frappe._dict( + {"filter_based_on": "Date Range", "company": "_Test Company", "group_by": "Department"} + ) + + execute(filters=filters) + + +def date_key(date_obj): + return date_obj.strftime("%d-%m-%Y") diff --git a/apps/erpnext/src/hrms/hrms/hr/report/project_profitability/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/project_profitability/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/project_profitability/project_profitability.js b/apps/erpnext/src/hrms/hrms/hr/report/project_profitability/project_profitability.js new file mode 100644 index 000000000..a55639fcc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/project_profitability/project_profitability.js @@ -0,0 +1,48 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Project Profitability"] = { + filters: [ + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_user_default("Company"), + reqd: 1, + }, + { + fieldname: "start_date", + label: __("Start Date"), + fieldtype: "Date", + reqd: 1, + default: frappe.datetime.add_months(frappe.datetime.get_today(), -1), + }, + { + fieldname: "end_date", + label: __("End Date"), + fieldtype: "Date", + reqd: 1, + default: frappe.datetime.now_date(), + }, + { + fieldname: "customer", + label: __("Customer"), + fieldtype: "Link", + options: "Customer", + }, + { + fieldname: "employee", + label: __("Employee"), + fieldtype: "Link", + options: "Employee", + }, + { + fieldname: "project", + label: __("Project"), + fieldtype: "Link", + options: "Project", + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/project_profitability/project_profitability.json b/apps/erpnext/src/hrms/hrms/hr/report/project_profitability/project_profitability.json new file mode 100644 index 000000000..40e5ee7ff --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/project_profitability/project_profitability.json @@ -0,0 +1,44 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2021-04-16 15:50:28.914872", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "modified": "2022-06-23 15:50:48.490866", + "modified_by": "Administrator", + "module": "HR", + "name": "Project Profitability", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Timesheet", + "report_name": "Project Profitability", + "report_type": "Script Report", + "roles": [ + { + "role": "HR User" + }, + { + "role": "Accounts User" + }, + { + "role": "Employee" + }, + { + "role": "Projects User" + }, + { + "role": "Manufacturing User" + }, + { + "role": "Employee Self Service" + }, + { + "role": "HR Manager" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/project_profitability/project_profitability.py b/apps/erpnext/src/hrms/hrms/hr/report/project_profitability/project_profitability.py new file mode 100644 index 000000000..699541cc1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/project_profitability/project_profitability.py @@ -0,0 +1,210 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.utils import cint, flt + + +def execute(filters=None): + data = get_data(filters) + columns = get_columns() + charts = get_chart_data(data) + return columns, data, None, charts + + +def get_data(filters): + data = get_rows(filters) + data = calculate_cost_and_profit(data) + return data + + +def get_rows(filters): + Timesheet = frappe.qb.DocType("Timesheet") + SalarySlip = frappe.qb.DocType("Salary Slip") + SalesInvoice = frappe.qb.DocType("Sales Invoice") + SalesInvoiceTimesheet = frappe.qb.DocType("Sales Invoice Timesheet") + SalarySlipTimesheet = frappe.qb.DocType("Salary Slip Timesheet") + + query = ( + frappe.qb.from_(SalarySlipTimesheet) + .inner_join(Timesheet) + .on(SalarySlipTimesheet.time_sheet == Timesheet.name) + .inner_join(SalarySlip) + .on(SalarySlipTimesheet.parent == SalarySlip.name) + .inner_join(SalesInvoiceTimesheet) + .on(SalesInvoiceTimesheet.time_sheet == Timesheet.name) + .inner_join(SalesInvoice) + .on(SalesInvoiceTimesheet.parent == SalesInvoice.name) + .select( + SalesInvoice.customer_name, + SalesInvoice.base_grand_total, + SalesInvoice.name.as_("voucher_no"), + Timesheet.employee, + Timesheet.title.as_("employee_name"), + Timesheet.parent_project.as_("project"), + Timesheet.start_date, + Timesheet.end_date, + Timesheet.total_billed_hours, + Timesheet.name.as_("timesheet"), + SalarySlip.base_gross_pay, + SalarySlip.total_working_days, + Timesheet.total_billed_hours, + ) + .distinct() + .where((SalesInvoice.docstatus == 1) & (SalarySlip.docstatus == 1)) + ) + + if filters.get("company"): + query = query.where(Timesheet.company == filters.get("company")) + + if filters.get("start_date"): + query = query.where(Timesheet.start_date >= filters.get("start_date")) + + if filters.get("end_date"): + query = query.where(Timesheet.end_date <= filters.get("end_date")) + + if filters.get("customer"): + query = query.where(SalesInvoice.customer == filters.get("customer")) + + if filters.get("employee"): + query = query.where(Timesheet.employee == filters.get("employee")) + + if filters.get("project"): + query = query.where(Timesheet.parent_project == filters.get("project")) + + return query.run(as_dict=True) + + +def calculate_cost_and_profit(data): + standard_working_hours = get_standard_working_hours() + precision = cint(frappe.db.get_default("float_precision")) or 2 + + for row in data: + row.utilization = flt( + flt(row.total_billed_hours) / (flt(row.total_working_days) * flt(standard_working_hours)), + precision, + ) + row.fractional_cost = flt(flt(row.base_gross_pay) * flt(row.utilization), precision) + + row.profit = flt( + flt(row.base_grand_total) - flt(row.base_gross_pay) * flt(row.utilization), precision + ) + + return data + + +def get_standard_working_hours() -> float | None: + standard_working_hours = frappe.db.get_single_value("HR Settings", "standard_working_hours") + if not standard_working_hours: + frappe.throw( + _("The metrics for this report are calculated based on the {0}. Please set {0} in {1}.").format( + frappe.bold(_("Standard Working Hours")), + frappe.utils.get_link_to_form("HR Settings", "HR Settings"), + ) + ) + + return standard_working_hours + + +def get_chart_data(data): + if not data: + return None + + labels = [] + utilization = [] + + for entry in data: + labels.append(f"{entry.get('employee_name')} - {entry.get('end_date')}") + utilization.append(entry.get("utilization")) + + charts = { + "data": {"labels": labels, "datasets": [{"name": "Utilization", "values": utilization}]}, + "type": "bar", + "colors": ["#84BDD5"], + } + return charts + + +def get_columns(): + return [ + { + "fieldname": "customer_name", + "label": _("Customer"), + "fieldtype": "Link", + "options": "Customer", + "width": 150, + }, + { + "fieldname": "employee", + "label": _("Employee"), + "fieldtype": "Link", + "options": "Employee", + "width": 130, + }, + {"fieldname": "employee_name", "label": _("Employee Name"), "fieldtype": "Data", "width": 120}, + { + "fieldname": "voucher_no", + "label": _("Sales Invoice"), + "fieldtype": "Link", + "options": "Sales Invoice", + "width": 120, + }, + { + "fieldname": "timesheet", + "label": _("Timesheet"), + "fieldtype": "Link", + "options": "Timesheet", + "width": 120, + }, + { + "fieldname": "project", + "label": _("Project"), + "fieldtype": "Link", + "options": "Project", + "width": 100, + }, + { + "fieldname": "base_grand_total", + "label": _("Bill Amount"), + "fieldtype": "Currency", + "options": "currency", + "width": 100, + }, + { + "fieldname": "base_gross_pay", + "label": _("Cost"), + "fieldtype": "Currency", + "options": "currency", + "width": 100, + }, + { + "fieldname": "profit", + "label": _("Profit"), + "fieldtype": "Currency", + "options": "currency", + "width": 100, + }, + {"fieldname": "utilization", "label": _("Utilization"), "fieldtype": "Percentage", "width": 100}, + { + "fieldname": "fractional_cost", + "label": _("Fractional Cost"), + "fieldtype": "Int", + "width": 120, + }, + { + "fieldname": "total_billed_hours", + "label": _("Total Billed Hours"), + "fieldtype": "Int", + "width": 150, + }, + {"fieldname": "start_date", "label": _("Start Date"), "fieldtype": "Date", "width": 100}, + {"fieldname": "end_date", "label": _("End Date"), "fieldtype": "Date", "width": 100}, + { + "label": _("Currency"), + "fieldname": "currency", + "fieldtype": "Link", + "options": "Currency", + "width": 80, + }, + ] diff --git a/apps/erpnext/src/hrms/hrms/hr/report/project_profitability/test_project_profitability.py b/apps/erpnext/src/hrms/hrms/hr/report/project_profitability/test_project_profitability.py new file mode 100644 index 000000000..f7509fd63 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/project_profitability/test_project_profitability.py @@ -0,0 +1,79 @@ +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, getdate + +from erpnext.projects.doctype.timesheet.test_timesheet import make_timesheet +from erpnext.projects.doctype.timesheet.timesheet import make_sales_invoice +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.report.project_profitability.project_profitability import execute +from hrms.payroll.doctype.salary_slip.salary_slip import make_salary_slip_from_timesheet +from hrms.payroll.doctype.salary_slip.test_salary_slip import make_salary_structure_for_timesheet + +test_dependencies = ["Customer"] + + +class TestProjectProfitability(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Timesheet") + emp = make_employee("test_employee_9@salary.com", company="_Test Company") + + frappe.db.set_single_value("HR Settings", "standard_working_hours", 8) + frappe.db.set_single_value("Payroll Settings", "include_holidays_in_total_working_days", 0) + + if not frappe.db.exists("Salary Component", "Timesheet Component"): + frappe.get_doc( + {"doctype": "Salary Component", "salary_component": "Timesheet Component"} + ).insert() + + make_salary_structure_for_timesheet(emp, company="_Test Company") + date = getdate() + + activity_type = create_activity_type("_Test Employee Timesheet") + self.timesheet = make_timesheet(emp, is_billable=1, activity_type=activity_type) + self.salary_slip = make_salary_slip_from_timesheet(self.timesheet.name) + self.salary_slip.submit() + + self.sales_invoice = make_sales_invoice( + self.timesheet.name, "_Test Item", "_Test Customer", currency="INR" + ) + self.sales_invoice.due_date = date + self.sales_invoice.submit() + + def test_project_profitability(self): + filters = { + "company": "_Test Company", + "start_date": add_days(self.timesheet.start_date, -3), + "end_date": add_days(self.timesheet.end_date, 1), + } + + report = execute(filters) + + row = report[1][0] + timesheet = frappe.get_doc("Timesheet", self.timesheet.name) + + self.assertEqual(self.sales_invoice.customer, row.customer_name) + self.assertEqual(timesheet.title, row.employee_name) + self.assertEqual(self.sales_invoice.base_grand_total, row.base_grand_total) + self.assertEqual(self.salary_slip.base_gross_pay, row.base_gross_pay) + self.assertEqual(timesheet.total_billed_hours, row.total_billed_hours) + self.assertEqual(self.salary_slip.total_working_days, row.total_working_days) + + standard_working_hours = frappe.db.get_single_value("HR Settings", "standard_working_hours") + utilization = timesheet.total_billed_hours / ( + self.salary_slip.total_working_days * standard_working_hours + ) + self.assertEqual(utilization, row.utilization) + + profit = self.sales_invoice.base_grand_total - self.salary_slip.base_gross_pay * utilization + self.assertEqual(profit, row.profit) + + fractional_cost = self.salary_slip.base_gross_pay * utilization + self.assertEqual(fractional_cost, row.fractional_cost) + + +def create_activity_type(activity_type: str) -> str: + doc = frappe.new_doc("Activity Type") + doc.activity_type = activity_type + doc.insert() + return doc.name diff --git a/apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/recruitment_analytics.js b/apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/recruitment_analytics.js new file mode 100644 index 000000000..83ed31159 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/recruitment_analytics.js @@ -0,0 +1,23 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Recruitment Analytics"] = { + filters: [ + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_user_default("Company"), + reqd: 1, + }, + { + fieldname: "on_date", + label: __("On Date"), + fieldtype: "Date", + default: frappe.datetime.now_date(), + reqd: 1, + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/recruitment_analytics.json b/apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/recruitment_analytics.json new file mode 100644 index 000000000..30a8e17eb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/recruitment_analytics.json @@ -0,0 +1,27 @@ +{ + "add_total_row": 0, + "creation": "2020-05-14 16:28:45.743869", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 0, + "is_standard": "Yes", + "modified": "2020-05-14 16:28:45.743869", + "modified_by": "Administrator", + "module": "HR", + "name": "Recruitment Analytics", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Staffing Plan", + "report_name": "Recruitment Analytics", + "report_type": "Script Report", + "roles": [ + { + "role": "HR Manager" + }, + { + "role": "HR User" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/recruitment_analytics.py b/apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/recruitment_analytics.py new file mode 100644 index 000000000..0995d0772 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/recruitment_analytics/recruitment_analytics.py @@ -0,0 +1,204 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ + + +def execute(filters=None): + if not filters: + filters = {} + filters = frappe._dict(filters) + + columns = get_columns() + + data = get_data(filters) + + return columns, data + + +def get_columns(): + return [ + { + "label": _("Staffing Plan"), + "fieldtype": "Link", + "fieldname": "staffing_plan", + "options": "Staffing Plan", + "width": 150, + }, + { + "label": _("Job Opening"), + "fieldtype": "Link", + "fieldname": "job_opening", + "options": "Job Opening", + "width": 105, + }, + { + "label": _("Job Applicant"), + "fieldtype": "Link", + "fieldname": "job_applicant", + "options": "Job Applicant", + "width": 150, + }, + {"label": _("Applicant name"), "fieldtype": "data", "fieldname": "applicant_name", "width": 130}, + { + "label": _("Application Status"), + "fieldtype": "Data", + "fieldname": "application_status", + "width": 150, + }, + { + "label": _("Job Offer"), + "fieldtype": "Link", + "fieldname": "job_offer", + "options": "job Offer", + "width": 150, + }, + {"label": _("Designation"), "fieldtype": "Data", "fieldname": "designation", "width": 100}, + {"label": _("Offer Date"), "fieldtype": "date", "fieldname": "offer_date", "width": 100}, + { + "label": _("Job Offer status"), + "fieldtype": "Data", + "fieldname": "job_offer_status", + "width": 150, + }, + ] + + +def get_data(filters): + data = [] + staffing_plan_details = get_staffing_plan(filters) + staffing_plan_list = list(set([details["name"] for details in staffing_plan_details])) + sp_jo_map, jo_list = get_job_opening(staffing_plan_list, filters) + jo_ja_map, ja_list = get_job_applicant(jo_list) + ja_joff_map = get_job_offer(ja_list, filters) + + for sp in sp_jo_map.keys(): + parent_row = get_parent_row(sp_jo_map, sp, jo_ja_map, ja_joff_map) + data += parent_row + + return data + + +def get_parent_row(sp_jo_map, sp, jo_ja_map, ja_joff_map): + data = [] + if sp in sp_jo_map.keys(): + for jo in sp_jo_map[sp]: + row = { + "staffing_plan": sp, + "job_opening": jo["name"], + } + data.append(row) + child_row = get_child_row(jo["name"], jo_ja_map, ja_joff_map) + data += child_row + return data + + +def get_child_row(jo, jo_ja_map, ja_joff_map): + data = [] + if jo in jo_ja_map.keys(): + for ja in jo_ja_map[jo]: + row = { + "indent": 1, + "job_applicant": ja.name, + "applicant_name": ja.applicant_name, + "application_status": ja.status, + } + if ja.name in ja_joff_map.keys(): + jo_detail = ja_joff_map[ja.name][0] + row["job_offer"] = jo_detail.name + row["job_offer_status"] = jo_detail.status + row["offer_date"] = jo_detail.offer_date.strftime("%d-%m-%Y") + row["designation"] = jo_detail.designation + + data.append(row) + return data + + +def get_staffing_plan(filters): + # nosemgrep: frappe-semgrep-rules.rules.frappe-using-db-sql + StaffingPlan = frappe.qb.DocType("Staffing Plan") + StaffingPlanDetail = frappe.qb.DocType("Staffing Plan Detail") + + query = ( + frappe.qb.from_(StaffingPlanDetail) + .join(StaffingPlan) + .on(StaffingPlanDetail.parent == StaffingPlan.name) + .where(StaffingPlan.to_date > filters.on_date) + .where(StaffingPlan.company == filters.company) + .select( + StaffingPlan.name, + StaffingPlan.department, + StaffingPlanDetail.designation, + StaffingPlanDetail.vacancies, + StaffingPlanDetail.current_count, + StaffingPlanDetail.parent, + StaffingPlan.to_date, + ) + ) + + staffing_plan = query.run(as_dict=True) + + return staffing_plan + + +def get_job_opening(sp_list, filters): + job_opening_filters = [["staffing_plan", "IN", sp_list], ["company", "=", filters.company]] + + job_openings = frappe.get_all( + "Job Opening", filters=job_opening_filters, fields=["name", "staffing_plan"] + ) + + sp_jo_map = {} + jo_list = [] + + for openings in job_openings: + if openings.staffing_plan not in sp_jo_map.keys(): + sp_jo_map[openings.staffing_plan] = [openings] + else: + sp_jo_map[openings.staffing_plan].append(openings) + + jo_list.append(openings.name) + + return sp_jo_map, jo_list + + +def get_job_applicant(jo_list): + jo_ja_map = {} + ja_list = [] + + applicants = frappe.get_all( + "Job Applicant", + filters=[["job_title", "IN", jo_list]], + fields=["name", "job_title", "applicant_name", "status"], + ) + + for applicant in applicants: + if applicant.job_title not in jo_ja_map.keys(): + jo_ja_map[applicant.job_title] = [applicant] + else: + jo_ja_map[applicant.job_title].append(applicant) + + ja_list.append(applicant.name) + + return jo_ja_map, ja_list + + +def get_job_offer(ja_list, filters=None): + ja_joff_map = {} + job_offer_filters = [["job_applicant", "IN", ja_list], ["company", "=", filters.company]] + + offers = frappe.get_all( + "Job Offer", + filters=job_offer_filters, + fields=["name", "job_applicant", "status", "offer_date", "designation"], + ) + + for offer in offers: + if offer.job_applicant not in ja_joff_map.keys(): + ja_joff_map[offer.job_applicant] = [offer] + else: + ja_joff_map[offer.job_applicant].append(offer) + + return ja_joff_map diff --git a/apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/shift_attendance.js b/apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/shift_attendance.js new file mode 100644 index 000000000..8a56f8a6e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/shift_attendance.js @@ -0,0 +1,79 @@ +// Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.query_reports["Shift Attendance"] = { + filters: [ + { + fieldname: "from_date", + label: __("From Date"), + fieldtype: "Date", + reqd: 1, + default: frappe.datetime.month_start(), + }, + { + fieldname: "to_date", + label: __("To Date"), + fieldtype: "Date", + reqd: 1, + default: frappe.datetime.month_end(), + }, + { + fieldname: "employee", + label: __("Employee"), + fieldtype: "Link", + options: "Employee", + }, + { + fieldname: "shift", + label: __("Shift Type"), + fieldtype: "Link", + options: "Shift Type", + }, + { + fieldname: "department", + label: __("Department"), + fieldtype: "Link", + options: "Department", + }, + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + reqd: 1, + default: frappe.defaults.get_user_default("Company"), + }, + { + fieldname: "late_entry", + label: __("Late Entry"), + fieldtype: "Check", + }, + { + fieldname: "early_exit", + label: __("Early Exit"), + fieldtype: "Check", + }, + { + fieldname: "consider_grace_period", + label: __("Consider Grace Period"), + fieldtype: "Check", + default: 1, + }, + { + fieldname: "include_attendance_without_checkins", + label: __("Include Shift Attendance Without Checkins"), + fieldtype: "Check", + default: 0, + }, + ], + formatter: (value, row, column, data, default_formatter) => { + value = default_formatter(value, row, column, data); + if ( + (column.fieldname === "in_time" && data.late_entry) || + (column.fieldname === "out_time" && data.early_exit) + ) { + value = `${value}`; + } + return value; + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/shift_attendance.json b/apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/shift_attendance.json new file mode 100644 index 000000000..ee139fb0b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/shift_attendance.json @@ -0,0 +1,38 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2023-08-04 11:29:44.327488", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "letterhead": null, + "modified": "2023-08-04 11:29:44.327488", + "modified_by": "Administrator", + "module": "HR", + "name": "Shift Attendance", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Attendance", + "report_name": "Shift Attendance", + "report_type": "Script Report", + "roles": [ + { + "role": "HR User" + }, + { + "role": "System Manager" + }, + { + "role": "HR Manager" + }, + { + "role": "Employee Self Service" + }, + { + "role": "Employee" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/shift_attendance.py b/apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/shift_attendance.py new file mode 100644 index 000000000..592b097da --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/shift_attendance.py @@ -0,0 +1,362 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from datetime import timedelta + +import frappe +from frappe import _ +from frappe.query_builder import Criterion +from frappe.utils import cint, flt, format_datetime, format_duration + +from erpnext.accounts.utils import build_qb_match_conditions + + +def execute(filters=None): + columns = get_columns() + data = get_data(filters) + chart = get_chart_data(data) + report_summary = get_report_summary(data) + return columns, data, None, chart, report_summary + + +def get_columns(): + return [ + { + "label": _("Employee"), + "fieldname": "employee", + "fieldtype": "Link", + "options": "Employee", + "width": 220, + }, + { + "fieldname": "employee_name", + "fieldtype": "Data", + "label": _("Employee Name"), + "width": 0, + "hidden": 1, + }, + { + "label": _("Shift"), + "fieldname": "shift", + "fieldtype": "Link", + "options": "Shift Type", + "width": 120, + }, + { + "label": _("Attendance Date"), + "fieldname": "attendance_date", + "fieldtype": "Date", + "width": 130, + }, + { + "label": _("Status"), + "fieldname": "status", + "fieldtype": "Data", + "width": 80, + }, + { + "label": _("Shift Start Time"), + "fieldname": "shift_start", + "fieldtype": "Data", + "width": 125, + }, + { + "label": _("Shift End Time"), + "fieldname": "shift_end", + "fieldtype": "Data", + "width": 125, + }, + { + "label": _("In Time"), + "fieldname": "in_time", + "fieldtype": "Data", + "width": 120, + }, + { + "label": _("Out Time"), + "fieldname": "out_time", + "fieldtype": "Data", + "width": 120, + }, + { + "label": _("Total Working Hours"), + "fieldname": "working_hours", + "fieldtype": "Data", + "width": 100, + }, + { + "label": _("Late Entry By"), + "fieldname": "late_entry_hrs", + "fieldtype": "Data", + "width": 120, + }, + { + "label": _("Early Exit By"), + "fieldname": "early_exit_hrs", + "fieldtype": "Data", + "width": 120, + }, + { + "label": _("Department"), + "fieldname": "department", + "fieldtype": "Link", + "options": "Department", + "width": 150, + }, + { + "label": _("Company"), + "fieldname": "company", + "fieldtype": "Link", + "options": "Company", + "width": 150, + }, + { + "label": _("Shift Actual Start Time"), + "fieldname": "shift_actual_start", + "fieldtype": "Data", + "width": 165, + }, + { + "label": _("Shift Actual End Time"), + "fieldname": "shift_actual_end", + "fieldtype": "Data", + "width": 165, + }, + { + "label": _("Attendance ID"), + "fieldname": "name", + "fieldtype": "Link", + "options": "Attendance", + "width": 150, + }, + ] + + +def get_data(filters): + data = get_attendance_with_checkins(filters) + data = update_data(data, filters) + if filters.include_attendance_without_checkins: + data.extend(get_attendance_without_checkins(filters)) + return data + + +def get_report_summary(data): + if not data: + return None + + present_records = half_day_records = absent_records = late_entries = early_exits = 0 + + for entry in data: + if entry.status == "Present": + present_records += 1 + elif entry.status == "Half Day": + half_day_records += 1 + else: + absent_records += 1 + + if entry.late_entry: + late_entries += 1 + if entry.early_exit: + early_exits += 1 + + return [ + { + "value": present_records, + "indicator": "Green", + "label": _("Present Records"), + "datatype": "Int", + }, + { + "value": half_day_records, + "indicator": "Blue", + "label": _("Half Day Records"), + "datatype": "Int", + }, + { + "value": absent_records, + "indicator": "Red", + "label": _("Absent Records"), + "datatype": "Int", + }, + { + "value": late_entries, + "indicator": "Red", + "label": _("Late Entries"), + "datatype": "Int", + }, + { + "value": early_exits, + "indicator": "Red", + "label": _("Early Exits"), + "datatype": "Int", + }, + ] + + +def get_chart_data(data): + if not data: + return None + + total_shift_records = {} + for entry in data: + total_shift_records.setdefault(entry.shift, 0) + total_shift_records[entry.shift] += 1 + + labels = [_(d) for d in list(total_shift_records)] + chart = { + "data": { + "labels": labels, + "datasets": [{"name": _("Shift"), "values": list(total_shift_records.values())}], + }, + "type": "percentage", + } + return chart + + +def get_attendance_with_checkins(filters): + attendance = frappe.qb.DocType("Attendance") + checkin = frappe.qb.DocType("Employee Checkin") + shift_type = frappe.qb.DocType("Shift Type") + + query = ( + get_base_attendance_query(filters) + .inner_join(checkin) + .on(checkin.attendance == attendance.name) + .select( + checkin.shift_start, + checkin.shift_end, + checkin.shift_actual_start, + checkin.shift_actual_end, + shift_type.enable_late_entry_marking, + shift_type.late_entry_grace_period, + shift_type.enable_early_exit_marking, + shift_type.early_exit_grace_period, + ) + ) + for field in filters: + if field == "late_entry" and not filters.consider_grace_period: + query = query.where(attendance.in_time > checkin.shift_start) + elif field == "early_exit" and not filters.consider_grace_period: + query = query.where(attendance.out_time < checkin.shift_end) + result = query.run(as_dict=True) + return result + + +def get_base_attendance_query(filters): + attendance = frappe.qb.DocType("Attendance") + shift_type = frappe.qb.DocType("Shift Type") + + query = ( + frappe.qb.from_(attendance) + .inner_join(shift_type) + .on(attendance.shift == shift_type.name) + .select( + attendance.name, + attendance.employee, + attendance.employee_name, + attendance.shift, + attendance.attendance_date, + attendance.status, + attendance.in_time, + attendance.out_time, + attendance.working_hours, + attendance.late_entry, + attendance.early_exit, + attendance.department, + attendance.company, + ) + .where(attendance.docstatus == 1) + .groupby(attendance.name) + ) + + for field in filters: + if field == "from_date": + query = query.where(attendance.attendance_date >= filters.from_date) + elif field == "to_date": + query = query.where(attendance.attendance_date <= filters.to_date) + elif field in ["consider_grace_period", "include_attendance_without_checkins"]: + continue + else: + query = query.where(attendance[field] == filters[field]) + + query = query.where(Criterion.all(build_qb_match_conditions("Attendance"))) + return query + + +def get_attendance_without_checkins(filters): + attendance = frappe.qb.DocType("Attendance") + checkin = frappe.qb.DocType("Employee Checkin") + + query = ( + get_base_attendance_query(filters) + .left_join(checkin) + .on(checkin.attendance == attendance.name) + .where(checkin.attendance.isnull()) + ) + result = query.run(as_dict=True) + return result + + +def update_data(data, filters): + for d in data: + update_late_entry(d, filters.consider_grace_period) + update_early_exit(d, filters.consider_grace_period) + + d.working_hours = format_float_precision(d.working_hours) + d.in_time, d.out_time = format_in_out_time(d.in_time, d.out_time, d.attendance_date) + d.shift_start, d.shift_end = convert_datetime_to_time_for_same_date(d.shift_start, d.shift_end) + d.shift_actual_start, d.shift_actual_end = convert_datetime_to_time_for_same_date( + d.shift_actual_start, d.shift_actual_end + ) + return data + + +def format_float_precision(value): + precision = cint(frappe.db.get_default("float_precision")) or 2 + return flt(value, precision) + + +def format_in_out_time(in_time, out_time, attendance_date): + if in_time and not out_time and in_time.date() == attendance_date: + in_time = in_time.time() + elif out_time and not in_time and out_time.date() == attendance_date: + out_time = out_time.time() + else: + in_time, out_time = convert_datetime_to_time_for_same_date(in_time, out_time) + return in_time, out_time + + +def convert_datetime_to_time_for_same_date(start, end): + if start and end and start.date() == end.date(): + start = start.time() + end = end.time() + else: + start = format_datetime(start) + end = format_datetime(end) + return start, end + + +def update_late_entry(entry, consider_grace_period): + if consider_grace_period: + if entry.late_entry: + entry_grace_period = entry.late_entry_grace_period if entry.enable_late_entry_marking else 0 + start_time = entry.shift_start + timedelta(minutes=entry_grace_period) + entry.late_entry_hrs = entry.in_time - start_time + elif entry.in_time and entry.in_time > entry.shift_start: + entry.late_entry = 1 + entry.late_entry_hrs = entry.in_time - entry.shift_start + if entry.late_entry_hrs: + entry.late_entry_hrs = format_duration(entry.late_entry_hrs.total_seconds()) + + +def update_early_exit(entry, consider_grace_period): + if consider_grace_period: + if entry.early_exit: + exit_grace_period = entry.early_exit_grace_period if entry.enable_early_exit_marking else 0 + end_time = entry.shift_end - timedelta(minutes=exit_grace_period) + entry.early_exit_hrs = end_time - entry.out_time + elif entry.out_time and entry.out_time < entry.shift_end: + entry.early_exit = 1 + entry.early_exit_hrs = entry.shift_end - entry.out_time + if entry.early_exit_hrs: + entry.early_exit_hrs = format_duration(entry.early_exit_hrs.total_seconds()) diff --git a/apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/test_shift_attendance.py b/apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/test_shift_attendance.py new file mode 100644 index 000000000..84151696c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/shift_attendance/test_shift_attendance.py @@ -0,0 +1,289 @@ +from datetime import date, datetime, time + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import format_datetime + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.attendance.attendance import mark_attendance +from hrms.hr.doctype.shift_type.test_shift_type import setup_shift_type +from hrms.hr.report.shift_attendance.shift_attendance import execute +from hrms.tests.test_utils import create_company + + +class TestShiftAttendance(IntegrationTestCase): + @classmethod + def setUpClass(cls): + create_company() + super().setUpClass() + frappe.db.delete("Employee", {"company": "_Test Company"}) + frappe.db.delete("Attendance") + cls.create_records() + + @classmethod + def tearDownClass(cls): + frappe.db.rollback() + + @classmethod + def create_records(cls): + cls.shift1 = setup_shift_type( + shift_type="Shift 1", + start_time="08:00:00", + end_time="12:00:00", + working_hours_threshold_for_half_day=2, + working_hours_threshold_for_absent=1, + enable_late_entry_marking=1, + enable_early_exit_marking=1, + process_attendance_after="2023-01-01", + last_sync_of_checkin="2023-01-04 04:00:00", + ) + cls.shift2 = setup_shift_type( + shift_type="Shift 2", + start_time="22:00:00", + end_time="02:00:00", + working_hours_threshold_for_half_day=2, + working_hours_threshold_for_absent=1, + enable_late_entry_marking=1, + enable_early_exit_marking=1, + process_attendance_after="2023-01-01", + last_sync_of_checkin="2023-01-04 04:00:00", + ) + + cls.emp1 = make_employee( + "employee1@example.com", + company="_Test Company", + default_shift="Shift 1", + ) + cls.emp2 = make_employee( + "employee2@example.com", + company="_Test Company", + default_shift="Shift 2", + ) + + # Present | Early Entry | Late Exit + make_checkin(cls.emp1, datetime(2023, 1, 1, 7, 30), "IN") + make_checkin(cls.emp1, datetime(2023, 1, 1, 12, 30), "OUT") + # Present | Late Entry | Late Exit + make_checkin(cls.emp1, datetime(2023, 1, 2, 8, 30), "IN") + make_checkin(cls.emp1, datetime(2023, 1, 2, 12, 30), "OUT") + # Present | Early Entry | Early Exit + make_checkin(cls.emp1, datetime(2023, 1, 3, 7, 30), "IN") + make_checkin(cls.emp1, datetime(2023, 1, 3, 11, 30), "OUT") + # Present | Late Entry | Early Exit + make_checkin(cls.emp2, datetime(2023, 1, 1, 22, 30), "IN") + make_checkin(cls.emp2, datetime(2023, 1, 2, 1, 30), "OUT") + # Half Day | Early Entry | Early Exit + make_checkin(cls.emp2, datetime(2023, 1, 2, 21, 30), "IN") + make_checkin(cls.emp2, datetime(2023, 1, 2, 23, 15), "OUT") + # Absent | Early Entry | Early Exit + make_checkin(cls.emp2, datetime(2023, 1, 3, 21, 30), "IN") + make_checkin(cls.emp2, datetime(2023, 1, 3, 22, 15), "OUT") + + cls.shift1.process_auto_attendance() + cls.shift2.process_auto_attendance() + + def test_data(self): + filters = frappe._dict( + { + "company": "_Test Company", + "from_date": date(2023, 1, 1), + "to_date": date(2023, 1, 3), + } + ) + report = execute(filters) + data = report[1] + for i, d in enumerate(data): + data[i] = {k: d[k] for k in ("shift", "attendance_date", "status", "in_time", "out_time")} + expected_data = [ + { + "shift": "Shift 1", + "attendance_date": date(2023, 1, 1), + "status": "Present", + "in_time": time(7, 30), + "out_time": time(12, 30), + }, + { + "shift": "Shift 1", + "attendance_date": date(2023, 1, 2), + "status": "Present", + "in_time": time(8, 30), + "out_time": time(12, 30), + }, + { + "shift": "Shift 1", + "attendance_date": date(2023, 1, 3), + "status": "Present", + "in_time": time(7, 30), + "out_time": time(11, 30), + }, + { + "shift": "Shift 2", + "attendance_date": date(2023, 1, 1), + "status": "Present", + "in_time": format_datetime(datetime(2023, 1, 1, 22, 30)), + "out_time": format_datetime(datetime(2023, 1, 2, 1, 30)), + }, + { + "shift": "Shift 2", + "attendance_date": date(2023, 1, 2), + "status": "Half Day", + "in_time": time(21, 30), + "out_time": time(23, 15), + }, + { + "shift": "Shift 2", + "attendance_date": date(2023, 1, 3), + "status": "Absent", + "in_time": time(21, 30), + "out_time": time(22, 15), + }, + ] + self.assertEqual(expected_data, data) + + def test_chart(self): + filters = frappe._dict( + { + "company": "_Test Company", + "from_date": date(2023, 1, 1), + "to_date": date(2023, 1, 3), + } + ) + report = execute(filters) + chart_data = report[3]["data"] + expected_labels = ["Shift 1", "Shift 2"] + self.assertEqual(expected_labels, chart_data["labels"]) + expected_values = [3, 3] + self.assertEqual(expected_values, chart_data["datasets"][0]["values"]) + + def test_report_summary(self): + filters = frappe._dict( + { + "company": "_Test Company", + "from_date": date(2023, 1, 1), + "to_date": date(2023, 1, 3), + } + ) + report = execute(filters) + chart_data = get_chart_data(report) + + self.assertEqual(4, chart_data.present_records) + self.assertEqual(1, chart_data.half_day_records) + self.assertEqual(1, chart_data.absent_records) + self.assertEqual(2, chart_data.late_entries) + self.assertEqual(4, chart_data.early_exits) + + def test_user_permission_on_attendance_records(self): + manager = frappe.get_doc("Employee", {"user_id": "employee1@example.com"}) + assistant = frappe.get_doc("Employee", {"user_id": "employee2@example.com"}) + + filters = frappe._dict( + { + "company": "_Test Company", + "from_date": date(2023, 1, 1), + "to_date": date(2023, 1, 3), + } + ) + + frappe.set_user("employee1@example.com") # only see their own records + report = execute(filters) + chart_data = get_chart_data(report) + self.assertEqual(3, chart_data.total_records) + self.assertEqual(3, chart_data.present_records) + self.assertEqual(0, chart_data.half_day_records) + self.assertEqual(0, chart_data.absent_records) + self.assertEqual(1, chart_data.late_entries) + self.assertEqual(1, chart_data.early_exits) + + frappe.set_user("employee2@example.com") # only see their own records + report = execute(filters) + chart_data = get_chart_data(report) + + self.assertEqual(3, chart_data.total_records) + self.assertEqual(1, chart_data.present_records) + self.assertEqual(1, chart_data.half_day_records) + self.assertEqual(1, chart_data.absent_records) + self.assertEqual(1, chart_data.late_entries) + self.assertEqual(3, chart_data.early_exits) + + frappe.set_user("Administrator") + assistant.reports_to = manager.name + assistant.save() + + frappe.set_user("employee1@example.com") # see their own and their reporter's records + report = execute(filters) + chart_data = get_chart_data(report) + + self.assertEqual(6, chart_data.total_records) + self.assertEqual(4, chart_data.present_records) + self.assertEqual(1, chart_data.half_day_records) + self.assertEqual(1, chart_data.absent_records) + self.assertEqual(2, chart_data.late_entries) + self.assertEqual(4, chart_data.early_exits) + + frappe.set_user("Administrator") + assistant.reports_to = "" + assistant.save() + + def test_get_attendance_records_without_checkins(self): + emp = make_employee("test_shift_report@example.com", company="_Test Company") + + mark_attendance(emp, date(2023, 1, 1), "Present", "Shift 1", late_entry=1, early_exit=0) + mark_attendance(emp, date(2023, 1, 2), "Half Day", "Shift 2", late_entry=0, early_exit=1) + mark_attendance(emp, date(2023, 1, 2), "Absent", "Shift 1", late_entry=1, early_exit=1) + + filters = frappe._dict( + { + "company": "_Test Company", + "from_date": date(2023, 1, 1), + "to_date": date(2023, 1, 3), + "include_attendance_without_checkins": 1, + } + ) + + report = execute(filters) + table_data = report[1] + self.assertEqual(len(table_data), 9) + + chart_data = get_chart_data(report) + self.assertEqual(chart_data.present_records, 5) + self.assertEqual(chart_data.half_day_records, 2) + self.assertEqual(chart_data.absent_records, 2) + self.assertEqual(chart_data.late_entries, 4) + self.assertEqual(chart_data.early_exits, 6) + + # filter by shift + filters["shift"] = "Shift 1" + report = execute(filters) + table_data = report[1] + self.assertEqual(len(table_data), 5) + + chart_data = get_chart_data(report) + + self.assertEqual(chart_data.present_records, 4) + self.assertEqual(chart_data.half_day_records, 0) + self.assertEqual(chart_data.absent_records, 1) + self.assertEqual(chart_data.late_entries, 3) + self.assertEqual(chart_data.early_exits, 2) + + +def get_chart_data(report): + return frappe._dict( + total_records=len(report[1]), + present_records=report[4][0]["value"], + half_day_records=report[4][1]["value"], + absent_records=report[4][2]["value"], + late_entries=report[4][3]["value"], + early_exits=report[4][4]["value"], + ) + + +def make_checkin(employee, time, log_type): + frappe.get_doc( + { + "doctype": "Employee Checkin", + "employee": employee, + "time": time, + "log_type": log_type, + } + ).insert() diff --git a/apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.js b/apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.js new file mode 100644 index 000000000..83fb711a4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.js @@ -0,0 +1,13 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.query_reports["Unpaid Expense Claim"] = { + filters: [ + { + fieldname: "employee", + label: __("Employee"), + fieldtype: "Link", + options: "Employee", + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json b/apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json new file mode 100644 index 000000000..d2da88210 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json @@ -0,0 +1,29 @@ +{ + "add_total_row": 0, + "apply_user_permissions": 1, + "creation": "2017-01-04 16:26:18.309717", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 2, + "is_standard": "Yes", + "modified": "2022-06-23 19:59:29.747039", + "modified_by": "Administrator", + "module": "HR", + "name": "Unpaid Expense Claim", + "owner": "Administrator", + "ref_doctype": "Expense Claim", + "report_name": "Unpaid Expense Claim", + "report_type": "Script Report", + "roles": [ + { + "role": "HR Manager" + }, + { + "role": "Expense Approver" + }, + { + "role": "HR User" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py b/apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py new file mode 100644 index 000000000..bd63fc760 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py @@ -0,0 +1,52 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.query_builder.functions import Sum + + +def execute(filters=None): + columns, data = [], [] + columns = get_columns() + data = get_unclaimed_expese_claims(filters) + return columns, data + + +def get_columns(): + return [ + _("Employee") + ":Link/Employee:120", + _("Employee Name") + "::120", + _("Expense Claim") + ":Link/Expense Claim:120", + _("Sanctioned Amount") + ":Currency:120", + _("Paid Amount") + ":Currency:120", + _("Outstanding Amount") + ":Currency:150", + ] + + +def get_unclaimed_expese_claims(filters): + ec = frappe.qb.DocType("Expense Claim") + ple = frappe.qb.DocType("Payment Ledger Entry") + + query = ( + frappe.qb.from_(ec) + .join(ple) + .on((ec.name == ple.against_voucher_no) & (ple.against_voucher_type == "Expense Claim")) + .select( + ec.employee, + ec.employee_name, + ec.name, + ec.total_sanctioned_amount, + ec.total_amount_reimbursed, + Sum(ple.amount).as_("outstanding_amt"), + ) + .where((ec.docstatus == 1) & (ec.is_paid == 0) & (ple.delinked == 0)) + .groupby(ec.name) + .having(Sum(ple.amount) != 0) + ) + + if filters.get("employee"): + query = query.where(ec.employee == filters.get("employee")) + + return query.run() diff --git a/apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/__init__.py b/apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/test_vehicle_expenses.py b/apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/test_vehicle_expenses.py new file mode 100644 index 000000000..1acfbc5d7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/test_vehicle_expenses.py @@ -0,0 +1,76 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import getdate + +from erpnext.accounts.utils import get_fiscal_year +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.vehicle_log.test_vehicle_log import get_vehicle, make_vehicle_log +from hrms.hr.doctype.vehicle_log.vehicle_log import make_expense_claim +from hrms.hr.report.vehicle_expenses.vehicle_expenses import execute + + +class TestVehicleExpenses(IntegrationTestCase): + @classmethod + def setUpClass(self): + super().setUpClass() + frappe.db.sql("delete from `tabVehicle Log`") + + employee_id = frappe.db.sql("""select name from `tabEmployee` where name='testdriver@example.com'""") + self.employee_id = employee_id[0][0] if employee_id else None + if not self.employee_id: + self.employee_id = make_employee("testdriver@example.com", company="_Test Company") + + self.license_plate = get_vehicle(self.employee_id) + + def test_vehicle_expenses_based_on_fiscal_year(self): + vehicle_log = make_vehicle_log(self.license_plate, self.employee_id, with_services=True) + expense_claim = make_expense_claim(vehicle_log.name) + + # Based on Fiscal Year + filters = {"filter_based_on": "Fiscal Year", "fiscal_year": get_fiscal_year(getdate())[0]} + + report = execute(filters) + + expected_data = [ + { + "vehicle": self.license_plate, + "make": "Maruti", + "model": "PCM", + "location": "Mumbai", + "log_name": vehicle_log.name, + "odometer": 5010, + "date": getdate(), + "fuel_qty": 50.0, + "fuel_price": 500.0, + "fuel_expense": 25000.0, + "service_expense": 2000.0, + "employee": self.employee_id, + } + ] + + self.assertEqual(report[1], expected_data) + + # Based on Date Range + fiscal_year = get_fiscal_year(getdate(), as_dict=True) + filters = { + "filter_based_on": "Date Range", + "from_date": fiscal_year.year_start_date, + "to_date": fiscal_year.year_end_date, + } + + report = execute(filters) + self.assertEqual(report[1], expected_data) + + # clean up + vehicle_log.cancel() + frappe.delete_doc("Expense Claim", expense_claim.name) + frappe.delete_doc("Vehicle Log", vehicle_log.name) + + def tearDown(self): + frappe.delete_doc("Vehicle", self.license_plate, force=1) + frappe.delete_doc("Employee", self.employee_id, force=1) diff --git a/apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/vehicle_expenses.js b/apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/vehicle_expenses.js new file mode 100644 index 000000000..8e95988e7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/vehicle_expenses.js @@ -0,0 +1,68 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +frappe.query_reports["Vehicle Expenses"] = { + filters: [ + { + fieldname: "filter_based_on", + label: __("Filter Based On"), + fieldtype: "Select", + options: ["Fiscal Year", "Date Range"], + default: ["Fiscal Year"], + reqd: 1, + on_change: () => { + let filter_based_on = frappe.query_report.get_filter_value("filter_based_on"); + + if (filter_based_on == "Fiscal Year") { + set_reqd_filter("fiscal_year", true); + set_reqd_filter("from_date", false); + set_reqd_filter("to_date", false); + } + if (filter_based_on == "Date Range") { + set_reqd_filter("fiscal_year", false); + set_reqd_filter("from_date", true); + set_reqd_filter("to_date", true); + } + }, + }, + { + fieldname: "fiscal_year", + label: __("Fiscal Year"), + fieldtype: "Link", + options: "Fiscal Year", + default: frappe.defaults.get_user_default("fiscal_year"), + depends_on: "eval: doc.filter_based_on == 'Fiscal Year'", + }, + { + fieldname: "from_date", + label: __("From Date"), + fieldtype: "Date", + depends_on: "eval: doc.filter_based_on == 'Date Range'", + default: frappe.datetime.add_months(frappe.datetime.nowdate(), -12), + }, + { + fieldname: "to_date", + label: __("To Date"), + fieldtype: "Date", + depends_on: "eval: doc.filter_based_on == 'Date Range'", + default: frappe.datetime.nowdate(), + }, + { + fieldname: "vehicle", + label: __("Vehicle"), + fieldtype: "Link", + options: "Vehicle", + }, + { + fieldname: "employee", + label: __("Employee"), + fieldtype: "Link", + options: "Employee", + }, + ], +}; + +function set_reqd_filter(fieldname, is_reqd) { + let filter = frappe.query_report.get_filter(fieldname); + filter.df.reqd = is_reqd; + filter.refresh(); +} diff --git a/apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/vehicle_expenses.json b/apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/vehicle_expenses.json new file mode 100644 index 000000000..1a3e5a93b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/vehicle_expenses.json @@ -0,0 +1,26 @@ +{ + "add_total_row": 1, + "columns": [], + "creation": "2016-09-09 03:33:40.605734", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 2, + "is_standard": "Yes", + "modified": "2021-05-16 22:48:22.767535", + "modified_by": "Administrator", + "module": "HR", + "name": "Vehicle Expenses", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Vehicle", + "report_name": "Vehicle Expenses", + "report_type": "Script Report", + "roles": [ + { + "role": "Fleet Manager" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/vehicle_expenses.py b/apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/vehicle_expenses.py new file mode 100644 index 000000000..8fec0140a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/report/vehicle_expenses/vehicle_expenses.py @@ -0,0 +1,176 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.utils import flt + +from erpnext.accounts.report.financial_statements import get_period_list + + +def execute(filters=None): + filters = frappe._dict(filters or {}) + + columns = get_columns() + data = get_vehicle_log_data(filters) + chart = get_chart_data(data, filters) + + return columns, data, None, chart + + +def get_columns(): + return [ + { + "fieldname": "vehicle", + "fieldtype": "Link", + "label": _("Vehicle"), + "options": "Vehicle", + "width": 150, + }, + {"fieldname": "make", "fieldtype": "Data", "label": _("Make"), "width": 100}, + {"fieldname": "model", "fieldtype": "Data", "label": _("Model"), "width": 80}, + {"fieldname": "location", "fieldtype": "Data", "label": _("Location"), "width": 100}, + { + "fieldname": "log_name", + "fieldtype": "Link", + "label": _("Vehicle Log"), + "options": "Vehicle Log", + "width": 100, + }, + {"fieldname": "odometer", "fieldtype": "Int", "label": _("Odometer Value"), "width": 120}, + {"fieldname": "date", "fieldtype": "Date", "label": _("Date"), "width": 100}, + {"fieldname": "fuel_qty", "fieldtype": "Float", "label": _("Fuel Qty"), "width": 80}, + {"fieldname": "fuel_price", "fieldtype": "Float", "label": _("Fuel Price"), "width": 100}, + {"fieldname": "fuel_expense", "fieldtype": "Currency", "label": _("Fuel Expense"), "width": 150}, + { + "fieldname": "service_expense", + "fieldtype": "Currency", + "label": _("Service Expense"), + "width": 150, + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "label": _("Employee"), + "options": "Employee", + "width": 150, + }, + ] + + +def get_vehicle_log_data(filters): + start_date, end_date = get_period_dates(filters) + conditions, values = get_conditions(filters) + + # nosemgrep: frappe-semgrep-rules.rules.frappe-using-db-sql + data = frappe.db.sql( + f""" + SELECT + vhcl.license_plate as vehicle, vhcl.make, vhcl.model, + vhcl.location, log.name as log_name, log.odometer, + log.date, log.employee, log.fuel_qty, + log.price as fuel_price, + log.fuel_qty * log.price as fuel_expense + FROM + `tabVehicle` vhcl,`tabVehicle Log` log + WHERE + vhcl.license_plate = log.license_plate + and log.docstatus = 1 + and date between %(start_date)s and %(end_date)s + {conditions} + ORDER BY date""", + values, + as_dict=1, + ) + + for row in data: + row["service_expense"] = get_service_expense(row.log_name) + + return data + + +def get_conditions(filters): + conditions = "" + + start_date, end_date = get_period_dates(filters) + values = {"start_date": start_date, "end_date": end_date} + + if filters.employee: + conditions += " and log.employee = %(employee)s" + values["employee"] = filters.employee + + if filters.vehicle: + conditions += " and vhcl.license_plate = %(vehicle)s" + values["vehicle"] = filters.vehicle + + return conditions, values + + +def get_period_dates(filters): + if filters.filter_based_on == "Fiscal Year" and filters.fiscal_year: + fy = frappe.db.get_value( + "Fiscal Year", filters.fiscal_year, ["year_start_date", "year_end_date"], as_dict=True + ) + return fy.year_start_date, fy.year_end_date + else: + return filters.from_date, filters.to_date + + +def get_service_expense(logname): + expense_amount = frappe.db.sql( + """ + SELECT sum(expense_amount) + FROM + `tabVehicle Log` log, `tabVehicle Service` service + WHERE + service.parent=log.name and log.name=%s + """, + logname, + ) + + return flt(expense_amount[0][0]) if expense_amount else 0.0 + + +def get_chart_data(data, filters): + period_list = get_period_list( + filters.fiscal_year, + filters.fiscal_year, + filters.from_date, + filters.to_date, + filters.filter_based_on, + "Monthly", + ) + + fuel_data, service_data = [], [] + + for period in period_list: + total_fuel_exp = 0 + total_service_exp = 0 + + for row in data: + if row.date <= period.to_date and row.date >= period.from_date: + total_fuel_exp += flt(row.fuel_expense) + total_service_exp += flt(row.service_expense) + + fuel_data.append([period.key, total_fuel_exp]) + service_data.append([period.key, total_service_exp]) + + labels = [period.label for period in period_list] + fuel_exp_data = [row[1] for row in fuel_data] + service_exp_data = [row[1] for row in service_data] + + datasets = [] + if fuel_exp_data: + datasets.append({"name": _("Fuel Expenses"), "values": fuel_exp_data}) + + if service_exp_data: + datasets.append({"name": _("Service Expenses"), "values": service_exp_data}) + + chart = { + "data": {"labels": labels, "datasets": datasets}, + "type": "line", + "fieldtype": "Currency", + } + + return chart diff --git a/apps/erpnext/src/hrms/hrms/hr/utils.py b/apps/erpnext/src/hrms/hrms/hr/utils.py new file mode 100644 index 000000000..7b5a8bb5d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/utils.py @@ -0,0 +1,1042 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import calendar +import datetime + +import frappe +from frappe import _, qb +from frappe.model.document import Document +from frappe.query_builder import Criterion +from frappe.query_builder.custom import ConstantColumn +from frappe.query_builder.functions import Count +from frappe.utils import ( + add_days, + add_months, + comma_and, + cstr, + flt, + format_datetime, + formatdate, + get_datetime, + get_first_day, + get_last_day, + get_link_to_form, + get_number_format_info, + get_quarter_ending, + get_quarter_start, + get_year_ending, + get_year_start, + getdate, + nowdate, +) + +import erpnext +from erpnext import get_company_currency +from erpnext.setup.doctype.employee.employee import ( + InactiveEmployeeStatusError, + get_holiday_list_for_employee, +) + +from hrms.hr.doctype.leave_policy_assignment.leave_policy_assignment import ( + calculate_pro_rated_leaves, +) + +DateTimeLikeObject = str | datetime.date | datetime.datetime + + +class DuplicateDeclarationError(frappe.ValidationError): + pass + + +class OverAllocationError(frappe.ValidationError): + pass + + +def set_employee_name(doc): + if doc.employee and not doc.employee_name: + doc.employee_name = frappe.db.get_value("Employee", doc.employee, "employee_name") + + +def update_employee_work_history(employee, details, date=None, cancel=False): + if not details: + return employee + + if not employee.internal_work_history and not cancel: + employee.append( + "internal_work_history", + { + "branch": employee.branch, + "designation": employee.designation, + "department": employee.department, + "from_date": employee.date_of_joining, + }, + ) + + internal_work_history = {} + for item in details: + field = frappe.get_meta("Employee").get_field(item.fieldname) + if not field: + continue + + new_value = item.new if not cancel else item.current + new_value = get_formatted_value(new_value, field.fieldtype) + setattr(employee, item.fieldname, new_value) + + if item.fieldname in ["department", "designation", "branch"]: + internal_work_history[item.fieldname] = item.new + + if internal_work_history and not cancel: + internal_work_history["from_date"] = date + employee.append("internal_work_history", internal_work_history) + + if cancel: + delete_employee_work_history(details, employee, date) + + update_to_date_in_work_history(employee, cancel) + + return employee + + +def get_formatted_value(value, fieldtype): + """ + Since the fields in Internal Work History table are `Data` fields + format them as per relevant field types + """ + if not value: + return + + if fieldtype == "Date": + value = getdate(value) + elif fieldtype == "Datetime": + value = get_datetime(value) + elif fieldtype in ["Currency", "Float"]: + # in case of currency/float, the value might be in user's prefered number format + # instead of machine readable format. Convert it into a machine readable format + number_format = frappe.db.get_default("number_format") or "#,###.##" + decimal_str, comma_str, _number_format_precision = get_number_format_info(number_format) + + if comma_str == "." and decimal_str == ",": + value = value.replace(",", "#$") + value = value.replace(".", ",") + value = value.replace("#$", ".") + + value = flt(value) + + return value + + +def delete_employee_work_history(details, employee, date): + filters = {} + for d in details: + for history in employee.internal_work_history: + if d.property == "Department" and history.department == d.new: + department = d.new + filters["department"] = department + if d.property == "Designation" and history.designation == d.new: + designation = d.new + filters["designation"] = designation + if d.property == "Branch" and history.branch == d.new: + branch = d.new + filters["branch"] = branch + if date and date == history.from_date: + filters["from_date"] = date + if filters: + frappe.db.delete("Employee Internal Work History", filters) + employee.save() + + +def update_to_date_in_work_history(employee, cancel): + if not employee.internal_work_history: + return + + for idx, row in enumerate(employee.internal_work_history): + if not row.from_date or idx == 0: + continue + + prev_row = employee.internal_work_history[idx - 1] + if not prev_row.to_date: + prev_row.to_date = add_days(row.from_date, -1) + + if cancel: + employee.internal_work_history[-1].to_date = None + + +@frappe.whitelist() +def get_employee_field_property(employee, fieldname): + if not (employee and fieldname): + return + + field = frappe.get_meta("Employee").get_field(fieldname) + if not field: + return + + doc = frappe.get_doc("Employee", employee, check_permission=True) + value = doc.get(fieldname) + + if field.fieldtype == "Date": + value = formatdate(value) + elif field.fieldtype == "Datetime": + value = format_datetime(value) + + return { + "value": value, + "datatype": field.fieldtype, + "label": field.label, + "options": field.options, + } + + +def validate_dates(doc, from_date, to_date, restrict_future_dates=True): + date_of_joining, relieving_date = frappe.db.get_value( + "Employee", doc.employee, ["date_of_joining", "relieving_date"] + ) + if getdate(from_date) > getdate(to_date): + frappe.throw(_("To date can not be less than from date")) + elif getdate(from_date) > getdate(nowdate()) and restrict_future_dates: + frappe.throw(_("Future dates not allowed")) + elif date_of_joining and getdate(from_date) < getdate(date_of_joining): + frappe.throw(_("From date can not be less than employee's joining date")) + elif relieving_date and getdate(to_date) > getdate(relieving_date): + frappe.throw(_("To date can not greater than employee's relieving date")) + + +def validate_overlap(doc, from_date, to_date, company=None): + query = """ + select name + from `tab{0}` + where name != %(name)s + """ + query += get_doc_condition(doc.doctype) + + if not doc.name: + # hack! if name is null, it could cause problems with != + doc.name = "New " + doc.doctype + + overlap_doc = frappe.db.sql( + query.format(doc.doctype), + { + "employee": doc.get("employee"), + "from_date": from_date, + "to_date": to_date, + "name": doc.name, + "company": company, + }, + as_dict=1, + ) + + if overlap_doc: + if doc.get("employee"): + exists_for = doc.employee + if company: + exists_for = company + throw_overlap_error(doc, exists_for, overlap_doc[0].name, from_date, to_date) + + +def get_doc_condition(doctype): + if doctype == "Compensatory Leave Request": + return "and employee = %(employee)s and docstatus < 2 \ + and (work_from_date between %(from_date)s and %(to_date)s \ + or work_end_date between %(from_date)s and %(to_date)s \ + or (work_from_date < %(from_date)s and work_end_date > %(to_date)s))" + elif doctype == "Leave Period": + return "and company = %(company)s and (from_date between %(from_date)s and %(to_date)s \ + or to_date between %(from_date)s and %(to_date)s \ + or (from_date < %(from_date)s and to_date > %(to_date)s))" + + +def throw_overlap_error(doc, exists_for, overlap_doc, from_date, to_date): + msg = ( + _("A {0} exists between {1} and {2} (").format( + doc.doctype, formatdate(from_date), formatdate(to_date) + ) + + f""" {overlap_doc}""" + + _(") for {0}").format(exists_for) + ) + frappe.throw(msg) + + +def validate_duplicate_exemption_for_payroll_period(doctype, docname, payroll_period, employee): + existing_record = frappe.db.exists( + doctype, + { + "payroll_period": payroll_period, + "employee": employee, + "docstatus": ["<", 2], + "name": ["!=", docname], + }, + ) + if existing_record: + frappe.throw( + _("{0} already exists for employee {1} and period {2}").format(doctype, employee, payroll_period), + DuplicateDeclarationError, + ) + + +def validate_tax_declaration(declarations): + subcategories = [] + for d in declarations: + if d.exemption_sub_category in subcategories: + frappe.throw(_("More than one selection for {0} not allowed").format(d.exemption_sub_category)) + subcategories.append(d.exemption_sub_category) + + +def get_total_exemption_amount(declarations): + exemptions = frappe._dict() + for d in declarations: + exemptions.setdefault(d.exemption_category, frappe._dict()) + category_max_amount = exemptions.get(d.exemption_category).max_amount + if not category_max_amount: + category_max_amount = frappe.db.get_value( + "Employee Tax Exemption Category", d.exemption_category, "max_amount" + ) + exemptions.get(d.exemption_category).max_amount = category_max_amount + sub_category_exemption_amount = ( + d.max_amount if (d.max_amount and flt(d.amount) > flt(d.max_amount)) else d.amount + ) + + exemptions.get(d.exemption_category).setdefault("total_exemption_amount", 0.0) + exemptions.get(d.exemption_category).total_exemption_amount += flt(sub_category_exemption_amount) + + if ( + category_max_amount + and exemptions.get(d.exemption_category).total_exemption_amount > category_max_amount + ): + exemptions.get(d.exemption_category).total_exemption_amount = category_max_amount + + total_exemption_amount = sum([flt(d.total_exemption_amount) for d in exemptions.values()]) + return total_exemption_amount + + +@frappe.whitelist() +def get_leave_period(from_date, to_date, company): + leave_period = frappe.db.sql( + """ + select name, from_date, to_date + from `tabLeave Period` + where company=%(company)s and is_active=1 + and (from_date between %(from_date)s and %(to_date)s + or to_date between %(from_date)s and %(to_date)s + or (from_date < %(from_date)s and to_date > %(to_date)s)) + """, + {"from_date": from_date, "to_date": to_date, "company": company}, + as_dict=1, + ) + + if leave_period: + return leave_period + + +def generate_leave_encashment(): + """Generates a draft leave encashment on allocation expiry""" + from hrms.hr.doctype.leave_encashment.leave_encashment import create_leave_encashment + + if frappe.db.get_single_value("HR Settings", "auto_leave_encashment"): + leave_type = frappe.get_all("Leave Type", filters={"allow_encashment": 1}, fields=["name"]) + leave_type = [l["name"] for l in leave_type] + + leave_allocation = frappe.get_all( + "Leave Allocation", + filters=[ + ["to_date", "=", add_days(getdate(), -1)], + ["leave_type", "in", leave_type], + ], + fields=[ + "employee", + "leave_period", + "leave_type", + "to_date", + "total_leaves_allocated", + "new_leaves_allocated", + ], + ) + + create_leave_encashment(leave_allocation=leave_allocation) + + +def allocate_earned_leaves(): + """Allocate earned leaves to Employees""" + e_leave_types = get_earned_leaves() + today = frappe.flags.current_date or getdate() + failed_allocations = [] + for e_leave_type in e_leave_types: + leave_allocations = get_leave_allocations(today, e_leave_type.name) + for allocation in leave_allocations: + if allocation.earned_leave_schedule_exists: + allocation_date, earned_leaves = get_upcoming_earned_leave_from_schedule( + allocation.name, today + ) or (None, None) + annual_allocation = get_annual_allocation_from_policy(allocation, e_leave_type) + else: + date_of_joining = frappe.db.get_value("Employee", allocation.employee, "date_of_joining") + allocation_date = get_expected_allocation_date_for_period( + e_leave_type.earned_leave_frequency, e_leave_type.allocate_on_day, today, date_of_joining + ) + annual_allocation = get_annual_allocation_from_policy(allocation, e_leave_type) + earned_leaves = calculate_upcoming_earned_leave(allocation, e_leave_type, date_of_joining) + + if not allocation_date or allocation_date != today: + continue + try: + update_previous_leave_allocation( + allocation, annual_allocation, e_leave_type, earned_leaves, today + ) + except Exception as e: + log_allocation_error(allocation.name, e) + failed_allocations.append(allocation.name) + if failed_allocations: + send_email_for_failed_allocations(failed_allocations) + + +def get_upcoming_earned_leave_from_schedule(allocation_name, today): + return frappe.db.get_value( + "Earned Leave Schedule", + {"parent": allocation_name, "attempted": 0, "allocation_date": today}, + ["allocation_date", "number_of_leaves"], + ) + + +def get_annual_allocation_from_policy(allocation, e_leave_type): + return frappe.db.get_value( + "Leave Policy Detail", + filters={"parent": allocation.leave_policy, "leave_type": e_leave_type.name}, + fieldname=["annual_allocation"], + ) + + +def calculate_upcoming_earned_leave(allocation, e_leave_type, date_of_joining): + annual_allocation = get_annual_allocation_from_policy(allocation, e_leave_type) + earned_leave = get_monthly_earned_leave( + date_of_joining, + annual_allocation, + e_leave_type.earned_leave_frequency, + e_leave_type.rounding, + ) + return earned_leave + + +def update_previous_leave_allocation(allocation, annual_allocation, e_leave_type, earned_leaves, today): + allocation = frappe.get_doc("Leave Allocation", allocation.name) + annual_allocation = flt(annual_allocation, allocation.precision("total_leaves_allocated")) + + new_allocation = flt(allocation.total_leaves_allocated) + flt(earned_leaves) + new_allocation_without_cf = flt( + flt(allocation.get_existing_leave_count()) + flt(earned_leaves), + allocation.precision("total_leaves_allocated"), + ) + + if new_allocation > e_leave_type.max_leaves_allowed and e_leave_type.max_leaves_allowed > 0: + frappe.throw( + _( + "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." + ), + OverAllocationError, + ) + if ( + # annual allocation as per policy should not be exceeded except for yearly leaves + new_allocation_without_cf > annual_allocation and e_leave_type.earned_leave_frequency != "Yearly" + ): + frappe.throw( + _("Allocation was skipped due to exceeding annual allocation set in leave policy"), + OverAllocationError, + ) + + allocation.db_set("total_leaves_allocated", new_allocation, update_modified=False) + create_additional_leave_ledger_entry(allocation, earned_leaves, today) + earned_leave_schedule = qb.DocType("Earned Leave Schedule") + qb.update(earned_leave_schedule).where( + (earned_leave_schedule.parent == allocation.name) & (earned_leave_schedule.allocation_date == today) + ).set(earned_leave_schedule.is_allocated, 1).set(earned_leave_schedule.attempted, 1).set( + earned_leave_schedule.allocated_via, "Scheduler" + ).run() + + +def log_allocation_error(allocation_name, error): + error_log = frappe.log_error(error, reference_doctype="Leave Allocation") + text = _("{0}. Check error log for more details.").format(error_log.method) + earned_leave_schedule = qb.DocType("Earned Leave Schedule") + today = getdate(frappe.flags.current_date) or getdate() + + qb.update(earned_leave_schedule).where( + (earned_leave_schedule.parent == allocation_name) & (earned_leave_schedule.allocation_date == today) + ).set(earned_leave_schedule.attempted, 1).set(earned_leave_schedule.failed, 1).set( + earned_leave_schedule.failure_reason, text + ).run() + + +def send_email_for_failed_allocations(failed_allocations): + allocations = comma_and([get_link_to_form("Leave Allocation", x) for x in failed_allocations]) + User = frappe.qb.DocType("User") + HasRole = frappe.qb.DocType("Has Role") + query = ( + frappe.qb.from_(HasRole) + .left_join(User) + .on(HasRole.parent == User.name) + .select(HasRole.parent) + .distinct() + .where((HasRole.parenttype == "User") & (User.enabled == 1) & (HasRole.role == "HR Manager")) + ) + hr_managers = query.run(pluck=True) + + frappe.sendmail( + recipients=hr_managers, + subject=_("Failure of Automatic Allocation of Earned Leaves"), + message=_( + "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." + ).format(allocations, get_link_to_form("Error Log", label="Error Log List")), + ) + + +@frappe.whitelist() +def get_monthly_earned_leave( + date_of_joining, + annual_leaves, + frequency, + rounding, + period_start_date=None, + period_end_date=None, + pro_rated=True, +): + earned_leaves = 0.0 + divide_by_frequency = {"Yearly": 1, "Half-Yearly": 2, "Quarterly": 4, "Monthly": 12} + if annual_leaves: + earned_leaves = flt(annual_leaves) / divide_by_frequency[frequency] + + if pro_rated: + if not (period_start_date or period_end_date): + today_date = frappe.flags.current_date or getdate() + period_start_date, period_end_date = get_sub_period_start_and_end(today_date, frequency) + + earned_leaves = calculate_pro_rated_leaves( + earned_leaves, date_of_joining, period_start_date, period_end_date, is_earned_leave=True + ) + + earned_leaves = round_earned_leaves(earned_leaves, rounding) + + return earned_leaves + + +def get_sub_period_start_and_end(date, frequency): + return { + "Monthly": (get_first_day(date), get_last_day(date)), + "Quarterly": (get_quarter_start(date), get_quarter_ending(date)), + "Half-Yearly": (get_semester_start(date), get_semester_end(date)), + "Yearly": (get_year_start(date), get_year_ending(date)), + }.get(frequency) + + +def round_earned_leaves(earned_leaves, rounding): + if not rounding: + return earned_leaves + + if rounding == "0.25": + earned_leaves = round(earned_leaves * 4) / 4 + elif rounding == "0.5": + earned_leaves = round(earned_leaves * 2) / 2 + else: + earned_leaves = round(earned_leaves) + + return earned_leaves + + +def get_leave_allocations(date, leave_type): + employee = frappe.qb.DocType("Employee") + leave_allocation = frappe.qb.DocType("Leave Allocation") + earned_leave_schedule = frappe.qb.DocType("Earned Leave Schedule") + + query = ( + frappe.qb.from_(leave_allocation) + .join(employee) + .on(leave_allocation.employee == employee.name) + .left_join(earned_leave_schedule) + .on(leave_allocation.name == earned_leave_schedule.parent) + .select( + leave_allocation.name, + leave_allocation.employee, + leave_allocation.from_date, + leave_allocation.to_date, + leave_allocation.leave_policy_assignment, + leave_allocation.leave_policy, + Count(earned_leave_schedule.parent).as_("earned_leave_schedule_exists"), + ) + .where( + (date >= leave_allocation.from_date) + & (date <= leave_allocation.to_date) + & (leave_allocation.docstatus == 1) + & (leave_allocation.leave_type == leave_type) + & (leave_allocation.leave_policy_assignment.isnotnull()) + & (leave_allocation.leave_policy.isnotnull()) + & (employee.status != "Left") + ) + .groupby(leave_allocation.name) + ) + return query.run(as_dict=1) or [] + + +def get_earned_leaves(): + return frappe.get_all( + "Leave Type", + fields=[ + "name", + "max_leaves_allowed", + "earned_leave_frequency", + "rounding", + "allocate_on_day", + ], + filters={"is_earned_leave": 1}, + ) + + +def create_additional_leave_ledger_entry(allocation, leaves, date): + """Create leave ledger entry for leave types""" + allocation.new_leaves_allocated = leaves + allocation.from_date = date + allocation.unused_leaves = 0 + allocation.create_leave_ledger_entry() + + +def get_expected_allocation_date_for_period(frequency, allocate_on_day, date, date_of_joining=None): + try: + doj = date_of_joining.replace(month=date.month, year=date.year) + except ValueError: + doj = datetime.date(date.year, date.month, calendar.monthrange(date.year, date.month)[1]) + return { + "Monthly": { + "First Day": get_first_day(date), + "Last Day": get_last_day(date), + "Date of Joining": doj, + }, + "Quarterly": { + "First Day": get_quarter_start(date), + "Last Day": get_quarter_ending(date), + }, + "Half-Yearly": {"First Day": get_semester_start(date), "Last Day": get_semester_end(date)}, + "Yearly": {"First Day": get_year_start(date), "Last Day": get_year_ending(date)}, + }[frequency][allocate_on_day] + + +def get_salary_assignments(employee, payroll_period): + start_date, end_date = frappe.db.get_value("Payroll Period", payroll_period, ["start_date", "end_date"]) + assignments = frappe.get_all( + "Salary Structure Assignment", + filters={"employee": employee, "docstatus": 1, "from_date": ["between", (start_date, end_date)]}, + fields=["*"], + order_by="from_date", + ) + + if not assignments or getdate(assignments[0].from_date) > getdate(start_date): + # if no assignments found for the given period + # or the assignment has started in the middle of the period + # get the last one assigned before the period start date + past_assignment = frappe.get_all( + "Salary Structure Assignment", + filters={"employee": employee, "docstatus": 1, "from_date": ["<", start_date]}, + fields=["*"], + order_by="from_date desc", + limit=1, + ) + + if past_assignment: + assignments = past_assignment + assignments + + return assignments + + +def get_sal_slip_total_benefit_given(employee, payroll_period, component=False): + total_given_benefit_amount = 0 + query = """ + select sum(sd.amount) as total_amount + from `tabSalary Slip` ss, `tabSalary Detail` sd + where ss.employee=%(employee)s + and ss.docstatus = 1 and ss.name = sd.parent + and sd.is_flexible_benefit = 1 and sd.parentfield = "earnings" + and sd.parenttype = "Salary Slip" + and (ss.start_date between %(start_date)s and %(end_date)s + or ss.end_date between %(start_date)s and %(end_date)s + or (ss.start_date < %(start_date)s and ss.end_date > %(end_date)s)) + """ + + if component: + query += "and sd.salary_component = %(component)s" + + sum_of_given_benefit = frappe.db.sql( + query, + { + "employee": employee, + "start_date": payroll_period.start_date, + "end_date": payroll_period.end_date, + "component": component, + }, + as_dict=True, + ) + + if sum_of_given_benefit and flt(sum_of_given_benefit[0].total_amount) > 0: + total_given_benefit_amount = sum_of_given_benefit[0].total_amount + return total_given_benefit_amount + + +def get_holiday_dates_for_employee(employee, start_date, end_date): + """return a list of holiday dates for the given employee between start_date and end_date""" + # return only date + holidays = get_holidays_for_employee(employee, start_date, end_date) + + return [cstr(h.holiday_date) for h in holidays] + + +def get_holidays_for_employee(employee, start_date, end_date, raise_exception=True, only_non_weekly=False): + """Get Holidays for a given employee + + `employee` (str) + `start_date` (str or datetime) + `end_date` (str or datetime) + `raise_exception` (bool) + `only_non_weekly` (bool) + + return: list of dicts with `holiday_date` and `description` + """ + holiday_list = get_holiday_list_for_employee(employee, raise_exception=raise_exception) + + if not holiday_list: + return [] + + filters = {"parent": holiday_list, "holiday_date": ("between", [start_date, end_date])} + + if only_non_weekly: + filters["weekly_off"] = False + + holidays = frappe.get_all( + "Holiday", fields=["description", "holiday_date"], filters=filters, order_by="holiday_date" + ) + + return holidays + + +@erpnext.allow_regional +def calculate_annual_eligible_hra_exemption(doc): + # Don't delete this method, used for localization + # Indian HRA Exemption Calculation + return {} + + +@erpnext.allow_regional +def calculate_hra_exemption_for_period(doc): + # Don't delete this method, used for localization + # Indian HRA Exemption Calculation + return {} + + +@erpnext.allow_regional +def calculate_tax_with_marginal_relief(tax_slab, tax_amount, annual_taxable_earning): + # Don't delete this method, used for localization + # Indian TDS Calculation + return None + + +def get_previous_claimed_amount(employee, payroll_period, non_pro_rata=False, component=False): + total_claimed_amount = 0 + query = """ + select sum(claimed_amount) as 'total_amount' + from `tabEmployee Benefit Claim` + where employee=%(employee)s + and docstatus = 1 + and (claim_date between %(start_date)s and %(end_date)s) + """ + if non_pro_rata: + query += "and pay_against_benefit_claim = 1" + if component: + query += "and earning_component = %(component)s" + + sum_of_claimed_amount = frappe.db.sql( + query, + { + "employee": employee, + "start_date": payroll_period.start_date, + "end_date": payroll_period.end_date, + "component": component, + }, + as_dict=True, + ) + if sum_of_claimed_amount and flt(sum_of_claimed_amount[0].total_amount) > 0: + total_claimed_amount = sum_of_claimed_amount[0].total_amount + return total_claimed_amount + + +def share_doc_with_approver(doc, user): + if not user: + return + + # if approver does not have permissions, share + if not frappe.has_permission(doc=doc, ptype="submit", user=user): + frappe.share.add_docshare( + doc.doctype, doc.name, user, submit=1, flags={"ignore_share_permission": True} + ) + + frappe.msgprint( + _("Shared document with the user {0} with 'Submit' permission").format(user), alert=True + ) + + # remove shared doc if approver changes + doc_before_save = doc.get_doc_before_save() + if doc_before_save: + approvers = { + "Leave Application": "leave_approver", + "Expense Claim": "expense_approver", + "Shift Request": "approver", + } + + approver = approvers.get(doc.doctype) + if doc_before_save.get(approver) != doc.get(approver): + frappe.share.remove(doc.doctype, doc.name, doc_before_save.get(approver)) + + +def validate_active_employee(employee, method=None): + if isinstance(employee, dict | Document): + employee = employee.get("employee") + + if employee and frappe.db.get_value("Employee", employee, "status") == "Inactive": + frappe.throw( + _("Transactions cannot be created for an Inactive Employee {0}.").format( + get_link_to_form("Employee", employee) + ), + InactiveEmployeeStatusError, + ) + + +def validate_loan_repay_from_salary(doc, method=None): + if doc.applicant_type == "Employee" and doc.repay_from_salary: + from hrms.payroll.doctype.salary_structure_assignment.salary_structure_assignment import ( + get_employee_currency, + ) + + if not doc.applicant: + frappe.throw(_("Please select an Applicant")) + + if not doc.company: + frappe.throw(_("Please select a Company")) + + employee_currency = get_employee_currency(doc.applicant) + company_currency = erpnext.get_company_currency(doc.company) + if employee_currency != company_currency: + frappe.throw( + _( + "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" + ).format(doc.applicant, employee_currency) + ) + + if not doc.is_term_loan and doc.repay_from_salary: + frappe.throw(_("Repay From Salary can be selected only for term loans")) + + +def get_matching_queries( + bank_account, + company, + transaction, + document_types, + exact_match, + account_from_to=None, + from_date=None, + to_date=None, + filter_by_reference_date=None, + from_reference_date=None, + to_reference_date=None, + common_filters=None, +): + """Returns matching queries for Bank Reconciliation""" + queries = [] + if transaction.withdrawal > 0: + if "expense_claim" in document_types: + ec_amount_matching = get_ec_matching_query( + bank_account, company, exact_match, from_date, to_date, common_filters + ) + queries.extend([ec_amount_matching]) + + return queries + + +def get_ec_matching_query( + bank_account, company, exact_match, from_date=None, to_date=None, common_filters=None +): + # get matching Expense Claim query + filters = [] + ec = qb.DocType("Expense Claim") + + mode_of_payments = [ + x["parent"] + for x in frappe.db.get_all( + "Mode of Payment Account", filters={"default_account": bank_account}, fields=["parent"] + ) + ] + company_currency = get_company_currency(company) + + filters.append(ec.docstatus == 1) + filters.append(ec.is_paid == 1) + filters.append(ec.clearance_date.isnull()) + if mode_of_payments: + filters.append(ec.mode_of_payment.isin(mode_of_payments)) + + if common_filters: + ref_rank = frappe.qb.terms.Case().when(ec.employee == common_filters.party, 1).else_(0) + 1 + + if exact_match: + filters.append(ec.total_amount_reimbursed == common_filters.amount) + else: + filters.append(ec.total_amount_reimbursed.gt(common_filters.amount)) + else: + ref_rank = ConstantColumn(1) + + if from_date and to_date: + filters.append(ec.posting_date[from_date:to_date]) + + ec_query = ( + qb.from_(ec) + .select( + ref_rank.as_("rank"), + ConstantColumn("Expense Claim").as_("doctype"), + ec.name, + ec.total_sanctioned_amount.as_("paid_amount"), + ConstantColumn("").as_("reference_no"), + ConstantColumn("").as_("reference_date"), + ec.employee.as_("party"), + ConstantColumn("Employee").as_("party_type"), + ec.posting_date, + ConstantColumn(company_currency).as_("currency"), + ) + .where(Criterion.all(filters)) + ) + + if from_date and to_date: + ec_query = ec_query.orderby(ec.posting_date) + + return ec_query + + +def validate_bulk_tool_fields( + self, fields: list, employees: list, from_date: str | None = None, to_date: str | None = None +) -> None: + for d in fields: + if not self.get(d): + frappe.throw(_("{0} is required").format(_(self.meta.get_label(d))), title=_("Missing Field")) + if self.get(from_date) and self.get(to_date): + self.validate_from_to_dates(from_date, to_date) + if not employees: + frappe.throw( + _("Please select at least one employee to perform this action."), + title=_("No Employees Selected"), + ) + + +def notify_bulk_action_status(doctype: str, failure: list, success: list) -> None: + frappe.clear_messages() + + msg = "" + title = "" + if failure: + msg += _("Failed to create/submit {0} for employees:").format(doctype) + msg += " " + comma_and(failure, False) + "
    " + msg += ( + _("Check {0} for more details") + .format("{1}") + .format(doctype, _("Error Log")) + ) + + if success: + title = _("Partial Success") + msg += "
    " + else: + title = _("Creation Failed") + else: + title = _("Success") + + if success: + msg += _("Successfully created {0} for employees:").format(doctype) + msg += " " + comma_and(success, False) + + if failure: + indicator = "orange" if success else "red" + else: + indicator = "green" + + frappe.msgprint( + msg, + indicator=indicator, + title=title, + is_minimizable=True, + ) + + +@frappe.whitelist() +def set_geolocation_from_coordinates(doc): + if not frappe.db.get_single_value("HR Settings", "allow_geolocation_tracking"): + return + + if not (doc.latitude and doc.longitude): + return + + doc.geolocation = frappe.json.dumps( + { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + # geojson needs coordinates in reverse order: long, lat instead of lat, long + "geometry": {"type": "Point", "coordinates": [doc.longitude, doc.latitude]}, + } + ], + } + ) + + +def get_distance_between_coordinates(lat1, long1, lat2, long2): + from math import asin, cos, pi, sqrt + + r = 6371 + p = pi / 180 + + a = 0.5 - cos((lat2 - lat1) * p) / 2 + cos(lat1 * p) * cos(lat2 * p) * (1 - cos((long2 - long1) * p)) / 2 + return 2 * r * asin(sqrt(a)) * 1000 + + +def check_app_permission(): + """Check if user has permission to access the app (for showing the app on app screen)""" + if frappe.session.user == "Administrator": + return True + + # Website Users cannot access desk routes, so don't show the app to them + # This prevents redirect to /desk/people followed by 403 Forbidden + user_type = frappe.get_cached_value("User", frappe.session.user, "user_type") + if user_type == "Website User": + return False + + if frappe.has_permission("Employee", ptype="read"): + return True + + return False + + +def get_exact_month_diff(string_ed_date: DateTimeLikeObject, string_st_date: DateTimeLikeObject) -> int: + """Return the difference between given two dates in months.""" + ed_date = getdate(string_ed_date) + st_date = getdate(string_st_date) + diff = (ed_date.year - st_date.year) * 12 + ed_date.month - st_date.month + + # count the last month only if end date's day > start date's day + # to handle cases like 16th Jul 2024 - 15th Jul 2025 + # where framework's month_diff will calculate diff as 13 months + if ed_date.day >= st_date.day: + diff += 1 + return diff + + +def get_semester_start(date): + if date.month <= 6: + return get_year_start(date) + else: + return add_months(get_year_start(date), 6) + + +def get_semester_end(date): + if date.month > 6: + return get_year_ending(date) + else: + return add_months(get_year_ending(date), -6) diff --git a/apps/erpnext/src/hrms/hrms/hr/web_form/__init__.py b/apps/erpnext/src/hrms/hrms/hr/web_form/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/web_form/job_application/__init__.py b/apps/erpnext/src/hrms/hrms/hr/web_form/job_application/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/hr/web_form/job_application/job_application.js b/apps/erpnext/src/hrms/hrms/hr/web_form/job_application/job_application.js new file mode 100644 index 000000000..8f56ebb35 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/web_form/job_application/job_application.js @@ -0,0 +1,3 @@ +frappe.ready(function () { + // bind events here +}); diff --git a/apps/erpnext/src/hrms/hrms/hr/web_form/job_application/job_application.json b/apps/erpnext/src/hrms/hrms/hr/web_form/job_application/job_application.json new file mode 100644 index 000000000..512ba5c55 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/web_form/job_application/job_application.json @@ -0,0 +1,200 @@ +{ + "accept_payment": 0, + "allow_comments": 1, + "allow_delete": 0, + "allow_edit": 1, + "allow_incomplete": 0, + "allow_multiple": 1, + "allow_print": 0, + "amount": 0.0, + "amount_based_on_field": 0, + "apply_document_permissions": 0, + "client_script": "frappe.web_form.on('resume_link', (field, value) => {\n if (!frappe.utils.is_url(value)) {\n frappe.msgprint(__('Resume link not valid'));\n }\n});\n", + "creation": "2016-09-10 02:53:16.598314", + "doc_type": "Job Applicant", + "docstatus": 0, + "doctype": "Web Form", + "idx": 0, + "introduction_text": "", + "is_standard": 1, + "login_required": 0, + "max_attachment_size": 0, + "modified": "2020-10-07 19:27:17.143355", + "modified_by": "Administrator", + "module": "HR", + "name": "job-application", + "owner": "Administrator", + "published": 1, + "route": "job_application", + "route_to_success_link": 0, + "show_attachments": 0, + "show_in_grid": 0, + "show_sidebar": 1, + "sidebar_items": [], + "success_message": "Thank you for applying.", + "success_url": "/jobs", + "title": "Job Application", + "web_form_fields": [ + { + "allow_read_on_all_link_options": 0, + "fieldname": "job_title", + "fieldtype": "Data", + "hidden": 0, + "label": "Job Opening", + "max_length": 0, + "max_value": 0, + "options": "", + "read_only": 1, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "applicant_name", + "fieldtype": "Data", + "hidden": 0, + "label": "Applicant Name", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 1, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "email_id", + "fieldtype": "Data", + "hidden": 0, + "label": "Email Address", + "max_length": 0, + "max_value": 0, + "options": "Email", + "read_only": 0, + "reqd": 1, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "phone_number", + "fieldtype": "Data", + "hidden": 0, + "label": "Phone Number", + "max_length": 0, + "max_value": 0, + "options": "Phone", + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "country", + "fieldtype": "Link", + "hidden": 0, + "label": "Country of Residence", + "max_length": 0, + "max_value": 0, + "options": "Country", + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "cover_letter", + "fieldtype": "Text", + "hidden": 0, + "label": "Cover Letter", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "resume_link", + "fieldtype": "Data", + "hidden": 0, + "label": "Resume Link", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "", + "fieldtype": "Section Break", + "hidden": 0, + "label": "Expected Salary Range per month", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 1, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "currency", + "fieldtype": "Link", + "hidden": 0, + "label": "Currency", + "max_length": 0, + "max_value": 0, + "options": "Currency", + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "", + "fieldtype": "Column Break", + "hidden": 0, + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "lower_range", + "fieldtype": "Currency", + "hidden": 0, + "label": "Lower Range", + "max_length": 0, + "max_value": 0, + "options": "currency", + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "", + "fieldtype": "Column Break", + "hidden": 0, + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "upper_range", + "fieldtype": "Currency", + "hidden": 0, + "label": "Upper Range", + "max_length": 0, + "max_value": 0, + "options": "currency", + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/hr/web_form/job_application/job_application.py b/apps/erpnext/src/hrms/hrms/hr/web_form/job_application/job_application.py new file mode 100644 index 000000000..02e3e9333 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/web_form/job_application/job_application.py @@ -0,0 +1,3 @@ +def get_context(context): + # do your magic here + pass diff --git a/apps/erpnext/src/hrms/hrms/hr/workspace/expenses/expenses.json b/apps/erpnext/src/hrms/hrms/hr/workspace/expenses/expenses.json new file mode 100644 index 000000000..be3f6cf48 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/workspace/expenses/expenses.json @@ -0,0 +1,274 @@ +{ + "app": "hrms", + "charts": [ + { + "chart_name": "Expense Claims", + "label": "Expense Claims" + } + ], + "content": "[{\"id\":\"L2zVuWBp7u\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Expense Claims\",\"col\":12}},{\"id\":\"xrNOam-5qD\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"sQTzb1f7Y_\",\"type\":\"header\",\"data\":{\"text\":\"Masters & Reports\",\"col\":12}},{\"id\":\"DuIKEI2BM-\",\"type\":\"card\",\"data\":{\"card_name\":\"Claims\",\"col\":4}},{\"id\":\"YLUHzAMPPI\",\"type\":\"card\",\"data\":{\"card_name\":\"Advances\",\"col\":4}},{\"id\":\"gRpeo_qpkn\",\"type\":\"card\",\"data\":{\"card_name\":\"Fleet Management\",\"col\":4}},{\"id\":\"ZSjP2Kct-c\",\"type\":\"card\",\"data\":{\"card_name\":\"Travel\",\"col\":4}},{\"id\":\"xcW_x4wuLQ\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}},{\"id\":\"KgfEHHa8pF\",\"type\":\"card\",\"data\":{\"card_name\":\"Accounting Reports\",\"col\":4}}]", + "creation": "2022-08-20 16:28:40.701015", + "custom_blocks": [], + "docstatus": 0, + "doctype": "Workspace", + "for_user": "", + "hide_custom": 1, + "icon": "expenses", + "idx": 0, + "is_hidden": 0, + "label": "Expenses", + "links": [ + { + "hidden": 0, + "is_query_report": 0, + "label": "Claims", + "link_count": 2, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Expense Claim", + "link_count": 0, + "link_to": "Expense Claim", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Expense Claim Type", + "link_count": 0, + "link_to": "Expense Claim Type", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Travel", + "link_count": 2, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Travel Request", + "link_count": 0, + "link_to": "Travel Request", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Purpose of Travel", + "link_count": 0, + "link_to": "Purpose of Travel", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Advances", + "link_count": 4, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Advance", + "link_count": 0, + "link_to": "Employee Advance", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Payment Entry", + "link_count": 0, + "link_to": "Payment Entry", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Journal Entry", + "link_count": 0, + "link_to": "Journal Entry", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Additional Salary", + "link_count": 0, + "link_to": "Additional Salary", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Reports", + "link_count": 3, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Employee Advance Summary", + "link_count": 0, + "link_to": "Employee Advance Summary", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Unpaid Expense Claim", + "link_count": 0, + "link_to": "Unpaid Expense Claim", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Vehicle Expenses", + "link_count": 0, + "link_to": "Vehicle Expenses", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Accounting Reports", + "link_count": 3, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Accounts Receivable", + "link_count": 0, + "link_to": "Accounts Receivable", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Accounts Payable", + "link_count": 0, + "link_to": "Accounts Payable", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "General Ledger", + "link_count": 0, + "link_to": "General Ledger", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Fleet Management", + "link_count": 5, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Vehicle", + "link_count": 0, + "link_to": "Vehicle", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Driver", + "link_count": 0, + "link_to": "Driver", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Vehicle Service Item", + "link_count": 0, + "link_to": "Vehicle Service Item", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Vehicle Log", + "link_count": 0, + "link_to": "Vehicle Log", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Vehicle Expenses", + "link_count": 0, + "link_to": "Vehicle Expenses", + "link_type": "Report", + "onboard": 0, + "type": "Link" + } + ], + "modified": "2026-01-09 18:02:46.503270", + "modified_by": "Administrator", + "module": "HR", + "name": "Expenses", + "number_cards": [], + "owner": "Administrator", + "parent_page": "", + "public": 1, + "quick_lists": [], + "roles": [], + "sequence_id": 6.0, + "shortcuts": [], + "title": "Expenses", + "type": "Workspace" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/workspace/leaves/leaves.json b/apps/erpnext/src/hrms/hrms/hr/workspace/leaves/leaves.json new file mode 100644 index 000000000..f4a545898 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/workspace/leaves/leaves.json @@ -0,0 +1,216 @@ +{ + "app": "hrms", + "charts": [], + "content": "[{\"id\":\"jk-EYIaS51\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Employees on leave today\",\"col\":4}},{\"id\":\"PbGeXHd7Rt\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Employees on leave this month\",\"col\":4}},{\"id\":\"XiEIWA4fuD\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Holidays in this month\",\"col\":4}},{\"id\":\"d_Tfw7CrG_\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"IzQ_B9PEiJ\",\"type\":\"header\",\"data\":{\"text\":\"Masters & Reports\",\"col\":12}},{\"id\":\"UZU5aC1En3\",\"type\":\"card\",\"data\":{\"card_name\":\"Setup\",\"col\":4}},{\"id\":\"gBEhmJgb_7\",\"type\":\"card\",\"data\":{\"card_name\":\"Allocation\",\"col\":4}},{\"id\":\"rtrjT9ZnNs\",\"type\":\"card\",\"data\":{\"card_name\":\"Application\",\"col\":4}},{\"id\":\"xHXxbkgNg3\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}}]", + "creation": "2022-08-20 16:06:26.672497", + "custom_blocks": [], + "docstatus": 0, + "doctype": "Workspace", + "for_user": "", + "hide_custom": 0, + "icon": "non-profit", + "idx": 0, + "is_hidden": 0, + "label": "Leaves", + "links": [ + { + "hidden": 0, + "is_query_report": 0, + "label": "Setup", + "link_count": 5, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Holiday List", + "link_count": 0, + "link_to": "Holiday List", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Leave Type", + "link_count": 0, + "link_to": "Leave Type", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Leave Period", + "link_count": 0, + "link_to": "Leave Period", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Leave Policy", + "link_count": 0, + "link_to": "Leave Policy", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Leave Block List", + "link_count": 0, + "link_to": "Leave Block List", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Application", + "link_count": 2, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Leave Application", + "link_count": 0, + "link_to": "Leave Application", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Compensatory Leave Request", + "link_count": 0, + "link_to": "Compensatory Leave Request", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Reports", + "link_count": 3, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Employee Leave Balance", + "link_count": 0, + "link_to": "Employee Leave Balance", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Employee Leave Balance Summary", + "link_count": 0, + "link_to": "Employee Leave Balance Summary", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Employees working on a holiday", + "link_count": 0, + "link_to": "Employees working on a holiday", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Allocation", + "link_count": 4, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Leave Allocation", + "link_count": 0, + "link_to": "Leave Allocation", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Leave Policy Assignment", + "link_count": 0, + "link_to": "Leave Policy Assignment", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Leave Control Panel", + "link_count": 0, + "link_to": "Leave Control Panel", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Leave Encashment", + "link_count": 0, + "link_to": "Leave Encashment", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + } + ], + "modified": "2026-01-12 14:53:42.279653", + "modified_by": "Administrator", + "module": "HR", + "name": "Leaves", + "number_cards": [ + { + "label": "Holidays in this month", + "number_card_name": "Holidays in this month" + }, + { + "label": "Employees on leave this month", + "number_card_name": "Number of Employees on Leave (This Month)" + }, + { + "label": "Employees on leave today", + "number_card_name": "Number of Employees on Leave (Today)" + } + ], + "owner": "Administrator", + "parent_page": "", + "public": 1, + "quick_lists": [], + "roles": [], + "sequence_id": 5.0, + "shortcuts": [], + "title": "Leaves", + "type": "Workspace" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/workspace/people/people.json b/apps/erpnext/src/hrms/hrms/hr/workspace/people/people.json new file mode 100644 index 000000000..c51538300 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/workspace/people/people.json @@ -0,0 +1,402 @@ +{ + "app": "hrms", + "charts": [], + "content": "[{\"id\":\"HSmKHOvqMN\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"lKeffKf1va\",\"type\":\"card\",\"data\":{\"card_name\":\"Setup\",\"col\":4}},{\"id\":\"UnVtsnxLo_\",\"type\":\"card\",\"data\":{\"card_name\":\"Employee\",\"col\":4}},{\"id\":\"YXISc0V2sT\",\"type\":\"card\",\"data\":{\"card_name\":\"Leaves\",\"col\":4}},{\"id\":\"TH5ZW37wDA\",\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}},{\"id\":\"vx8pBTHNsf\",\"type\":\"card\",\"data\":{\"card_name\":\"Attendance\",\"col\":4}},{\"id\":\"wv3Sy37NgW\",\"type\":\"card\",\"data\":{\"card_name\":\"Expense Claim\",\"col\":4}},{\"id\":\"v82YqH3rek\",\"type\":\"card\",\"data\":{\"card_name\":\"Key Reports\",\"col\":4}},{\"id\":\"60GScqYEk0\",\"type\":\"card\",\"data\":{\"card_name\":\"Other Reports\",\"col\":4}}]", + "creation": "2020-03-02 15:48:58.322521", + "custom_blocks": [], + "docstatus": 0, + "doctype": "Workspace", + "for_user": "", + "hide_custom": 0, + "icon": "hr", + "idx": 1, + "is_hidden": 0, + "label": "People", + "links": [ + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee", + "link_count": 3, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee", + "link_count": 0, + "link_to": "Employee", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Group", + "link_count": 0, + "link_to": "Employee Group", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Grade", + "link_count": 0, + "link_to": "Employee Grade", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Key Reports", + "link_count": 7, + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "Attendance", + "hidden": 0, + "is_query_report": 1, + "label": "Monthly Attendance Sheet", + "link_count": 0, + "link_to": "Monthly Attendance Sheet", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Staffing Plan", + "hidden": 0, + "is_query_report": 1, + "label": "Recruitment Analytics", + "link_count": 0, + "link_to": "Recruitment Analytics", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Employee", + "hidden": 0, + "is_query_report": 1, + "label": "Employee Analytics", + "link_count": 0, + "link_to": "Employee Analytics", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Employee", + "hidden": 0, + "is_query_report": 1, + "label": "Employee Leave Balance", + "link_count": 0, + "link_to": "Employee Leave Balance", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Employee", + "hidden": 0, + "is_query_report": 1, + "label": "Employee Leave Balance Summary", + "link_count": 0, + "link_to": "Employee Leave Balance Summary", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Employee Advance", + "hidden": 0, + "is_query_report": 1, + "label": "Employee Advance Summary", + "link_count": 0, + "link_to": "Employee Advance Summary", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Employee Exits", + "link_count": 0, + "link_to": "Employee Exits", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Other Reports", + "link_count": 4, + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "Employee", + "hidden": 0, + "is_query_report": 1, + "label": "Employee Information", + "link_count": 0, + "link_to": "Employee Information", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Employee", + "hidden": 0, + "is_query_report": 1, + "label": "Employee Birthday", + "link_count": 0, + "link_to": "Employee Birthday", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Employee", + "hidden": 0, + "is_query_report": 1, + "label": "Employees Working on a Holiday", + "link_count": 0, + "link_to": "Employees working on a holiday", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Daily Work Summary", + "hidden": 0, + "is_query_report": 1, + "label": "Daily Work Summary Replies", + "link_count": 0, + "link_to": "Daily Work Summary Replies", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Setup", + "link_count": 4, + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Company", + "link_count": 0, + "link_to": "Company", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Branch", + "link_count": 0, + "link_to": "Branch", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Department", + "link_count": 0, + "link_to": "Department", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Designation", + "link_count": 0, + "link_to": "Designation", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Leaves", + "link_count": 2, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Leave Application", + "link_count": 0, + "link_to": "Leave Application", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Compensatory Leave Request", + "link_count": 0, + "link_to": "Compensatory Leave Request", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Attendance", + "link_count": 3, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Attendance", + "link_count": 0, + "link_to": "Attendance", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Attendance Request", + "link_count": 0, + "link_to": "Attendance Request", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Checkin", + "link_count": 0, + "link_to": "Employee Checkin", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Expense Claim", + "link_count": 3, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Expense Claim", + "link_count": 0, + "link_to": "Expense Claim", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Advance", + "link_count": 0, + "link_to": "Employee Advance", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Travel Request", + "link_count": 0, + "link_to": "Travel Request", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Settings", + "link_count": 3, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "HR Settings", + "link_count": 0, + "link_to": "HR Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Payroll Settings", + "link_count": 0, + "link_to": "Payroll Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Daily Work Summary Group", + "link_count": 0, + "link_to": "Daily Work Summary Group", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + } + ], + "modified": "2026-01-10 15:08:35.595514", + "modified_by": "Administrator", + "module": "HR", + "name": "People", + "number_cards": [], + "owner": "Administrator", + "parent_page": "", + "public": 1, + "quick_lists": [], + "restrict_to_domain": "", + "roles": [], + "sequence_id": 1.0, + "shortcuts": [], + "title": "People", + "type": "Workspace" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/workspace/performance/performance.json b/apps/erpnext/src/hrms/hrms/hr/workspace/performance/performance.json new file mode 100644 index 000000000..0bd4bd5e2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/workspace/performance/performance.json @@ -0,0 +1,35 @@ +{ + "app": "hrms", + "charts": [ + { + "chart_name": "Appraisal Overview", + "label": "Appraisal Overview" + } + ], + "content": "[{\"id\":\"BxEOYNUrLP\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Appraisal Overview\",\"col\":12}}]", + "creation": "2022-08-20 16:17:20.159886", + "custom_blocks": [], + "docstatus": 0, + "doctype": "Workspace", + "for_user": "", + "hide_custom": 0, + "icon": "star", + "idx": 0, + "is_hidden": 0, + "label": "Performance", + "links": [], + "modified": "2026-01-10 14:52:39.835713", + "modified_by": "Administrator", + "module": "HR", + "name": "Performance", + "number_cards": [], + "owner": "Administrator", + "parent_page": "", + "public": 1, + "quick_lists": [], + "roles": [], + "sequence_id": 7.0, + "shortcuts": [], + "title": "Performance", + "type": "Workspace" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/workspace/recruitment/recruitment.json b/apps/erpnext/src/hrms/hrms/hr/workspace/recruitment/recruitment.json new file mode 100644 index 000000000..8aee5de70 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/workspace/recruitment/recruitment.json @@ -0,0 +1,207 @@ +{ + "app": "hrms", + "charts": [ + { + "chart_name": "Department Wise Openings", + "label": "Department Wise Openings" + } + ], + "content": "[{\"id\":\"5vtWWuFVl5\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Department Wise Openings\",\"col\":12}},{\"id\":\"ZEoAw35RfK\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"B0A1wqOP8R\",\"type\":\"quick_list\",\"data\":{\"quick_list_name\":\"Interviews (This Week)\",\"col\":6}},{\"id\":\"BSfCSxeOZN\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"ouzRaGAJJl\",\"type\":\"header\",\"data\":{\"text\":\"Masters & Reports\",\"col\":12}},{\"id\":\"0akZyj1E4k\",\"type\":\"card\",\"data\":{\"card_name\":\"Jobs\",\"col\":4}},{\"id\":\"3Q-ITUYR-W\",\"type\":\"card\",\"data\":{\"card_name\":\"Interviews\",\"col\":4}},{\"id\":\"06gIuB5svR\",\"type\":\"card\",\"data\":{\"card_name\":\"Appointment\",\"col\":4}},{\"id\":\"Q4msp7F8vF\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}}]", + "creation": "2022-08-20 13:28:59.962164", + "custom_blocks": [], + "docstatus": 0, + "doctype": "Workspace", + "for_user": "", + "hide_custom": 0, + "icon": "users", + "idx": 4, + "is_hidden": 0, + "label": "Recruitment", + "links": [ + { + "hidden": 0, + "is_query_report": 0, + "label": "Interviews", + "link_count": 4, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Interview Type", + "link_count": 0, + "link_to": "Interview Type", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Interview Round", + "link_count": 0, + "link_to": "Interview Round", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Interview Type, Interview Round", + "hidden": 0, + "is_query_report": 0, + "label": "Interview", + "link_count": 0, + "link_to": "Interview", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Interview", + "hidden": 0, + "is_query_report": 0, + "label": "Interview Feedback", + "link_count": 0, + "link_to": "Interview Feedback", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Appointment", + "link_count": 2, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Appointment Letter Template", + "link_count": 0, + "link_to": "Appointment Letter Template", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Job Applicant", + "hidden": 0, + "is_query_report": 0, + "label": "Appointment Letter", + "link_count": 0, + "link_to": "Appointment Letter", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Reports", + "link_count": 1, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Recruitment Analytics", + "link_count": 0, + "link_to": "Recruitment Analytics", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Jobs", + "link_count": 6, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Staffing Plan", + "link_count": 0, + "link_to": "Staffing Plan", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Job Requisition", + "link_count": 0, + "link_to": "Job Requisition", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Job Opening", + "link_count": 0, + "link_to": "Job Opening", + "link_type": "DocType", + "onboard": 1, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Job Applicant", + "link_count": 0, + "link_to": "Job Applicant", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Job Offer", + "link_count": 0, + "link_to": "Job Offer", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Referral", + "link_count": 0, + "link_to": "Employee Referral", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + } + ], + "modified": "2026-01-09 18:00:59.928738", + "modified_by": "Administrator", + "module": "HR", + "name": "Recruitment", + "number_cards": [], + "owner": "Administrator", + "parent_page": "", + "public": 1, + "quick_lists": [ + { + "document_type": "Interview", + "label": "Interviews (This Week)", + "quick_list_filter": "{\"scheduled_on\":[\"Timespan\",\"this week\"],\"docstatus\":[\"!=\",\"2\"]}" + } + ], + "roles": [], + "sequence_id": 3.0, + "shortcuts": [], + "title": "Recruitment", + "type": "Workspace" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json b/apps/erpnext/src/hrms/hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json new file mode 100644 index 000000000..7798fd54e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json @@ -0,0 +1,288 @@ +{ + "app": "hrms", + "charts": [ + { + "chart_name": "Attendance Count", + "label": "Attendance Count" + } + ], + "content": "[{\"id\":\"r0a57m9-Yx\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Attendance Count\",\"col\":12}},{\"id\":\"9_DQbkhJgn\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"mYz7o2zWVf\",\"type\":\"header\",\"data\":{\"text\":\"Masters & Reports\",\"col\":12}},{\"id\":\"iBvYqY6Ul6\",\"type\":\"card\",\"data\":{\"card_name\":\"Shifts\",\"col\":4}},{\"id\":\"aCKU8VAUu8\",\"type\":\"card\",\"data\":{\"card_name\":\"Attendance\",\"col\":4}},{\"id\":\"CMPmxSUFjB\",\"type\":\"card\",\"data\":{\"card_name\":\"Time\",\"col\":4}},{\"id\":\"v61fwPM9fG\",\"type\":\"card\",\"data\":{\"card_name\":\"Overtime\",\"col\":4}},{\"id\":\"WAO9X_IrfP\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}}]", + "creation": "2022-08-20 15:50:06.598086", + "custom_blocks": [], + "docstatus": 0, + "doctype": "Workspace", + "for_user": "", + "hide_custom": 1, + "icon": "milestone", + "idx": 2, + "is_hidden": 0, + "label": "Shift & Attendance", + "links": [ + { + "hidden": 0, + "is_query_report": 0, + "label": "Attendance", + "link_count": 5, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Attendance", + "link_count": 0, + "link_to": "Attendance", + "link_type": "DocType", + "onboard": 1, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Attendance Request", + "link_count": 0, + "link_to": "Attendance Request", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Checkin", + "link_count": 0, + "link_to": "Employee Checkin", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Attendance Tool", + "link_count": 0, + "link_to": "Employee Attendance Tool", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Upload Attendance", + "link_count": 0, + "link_to": "Upload Attendance", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Time", + "link_count": 2, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Timesheet", + "link_count": 0, + "link_to": "Timesheet", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Activity Type", + "link_count": 0, + "link_to": "Activity Type", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Reports", + "link_count": 5, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Monthly Attendance Sheet", + "link_count": 0, + "link_to": "Monthly Attendance Sheet", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Shift Attendance", + "link_count": 0, + "link_to": "Shift Attendance", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Employee Hours Utilization Based On Timesheet", + "link_count": 0, + "link_to": "Employee Hours Utilization Based On Timesheet", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Project Profitability", + "link_count": 0, + "link_to": "Project Profitability", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Employees working on a holiday", + "link_count": 0, + "link_to": "Employees working on a holiday", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Shifts", + "link_count": 6, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Shift Type", + "link_count": 0, + "link_to": "Shift Type", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Shift Location", + "link_count": 0, + "link_to": "Shift Location", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Shift Assignment", + "link_count": 0, + "link_to": "Shift Assignment", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Shift Schedule", + "link_count": 0, + "link_to": "Shift Schedule", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Shift Schedule Assignment", + "link_count": 0, + "link_to": "Shift Schedule Assignment", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Shift Request", + "link_count": 0, + "link_to": "Shift Request", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Shift Assignment Tool", + "link_count": 0, + "link_to": "Shift Assignment Tool", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Overtime", + "link_count": 2, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Overtime Type", + "link_count": 0, + "link_to": "Overtime Type", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Overtime Slip", + "link_count": 0, + "link_to": "Overtime Slip", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + } + ], + "modified": "2026-01-09 18:01:42.721780", + "modified_by": "Administrator", + "module": "HR", + "name": "Shift & Attendance", + "number_cards": [], + "owner": "Administrator", + "parent_page": "", + "public": 1, + "quick_lists": [], + "roles": [], + "sequence_id": 4.0, + "shortcuts": [], + "title": "Shift & Attendance", + "type": "Workspace" +} diff --git a/apps/erpnext/src/hrms/hrms/hr/workspace/tenure/tenure.json b/apps/erpnext/src/hrms/hrms/hr/workspace/tenure/tenure.json new file mode 100644 index 000000000..19b6e68bd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/hr/workspace/tenure/tenure.json @@ -0,0 +1,247 @@ +{ + "app": "hrms", + "charts": [], + "content": "[{\"id\":\"Do0km6oB3q\",\"type\":\"quick_list\",\"data\":{\"quick_list_name\":\"New Hires (This Month)\",\"col\":4}},{\"id\":\"90EyF0WfYs\",\"type\":\"quick_list\",\"data\":{\"quick_list_name\":\"Exits (This Month)\",\"col\":4}},{\"id\":\"lWsQRmsSwR\",\"type\":\"quick_list\",\"data\":{\"quick_list_name\":\"Trainings (This Week)\",\"col\":4}},{\"id\":\"TYoNVyW88z\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"_xgabKIxxZ\",\"type\":\"header\",\"data\":{\"text\":\"Masters & Reports\",\"col\":12}},{\"id\":\"ZOaOHWAzNZ\",\"type\":\"card\",\"data\":{\"card_name\":\"Onboarding\",\"col\":4}},{\"id\":\"-9CR3Papyq\",\"type\":\"card\",\"data\":{\"card_name\":\"Grievance\",\"col\":4}},{\"id\":\"0s3iKnHDOj\",\"type\":\"card\",\"data\":{\"card_name\":\"Training\",\"col\":4}},{\"id\":\"TqvQSf8hTP\",\"type\":\"card\",\"data\":{\"card_name\":\"Daily Work Summary\",\"col\":4}},{\"id\":\"DBbEdPsl3o\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}}]", + "creation": "2022-08-20 14:06:34.309347", + "custom_blocks": [], + "docstatus": 0, + "doctype": "Workspace", + "for_user": "", + "hide_custom": 0, + "icon": "customer", + "idx": 0, + "is_hidden": 0, + "label": "Tenure", + "links": [ + { + "hidden": 0, + "is_query_report": 0, + "label": "Onboarding", + "link_count": 3, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Onboarding Template", + "link_count": 0, + "link_to": "Employee Onboarding Template", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Onboarding", + "link_count": 0, + "link_to": "Employee Onboarding", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Skill Map", + "link_count": 0, + "link_to": "Employee Skill Map", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Grievance", + "link_count": 2, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Grievance Type", + "link_count": 0, + "link_to": "Grievance Type", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Grievance", + "link_count": 0, + "link_to": "Employee Grievance", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Training", + "link_count": 4, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Training Program", + "link_count": 0, + "link_to": "Training Program", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Training Event", + "link_count": 0, + "link_to": "Training Event", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Training Feedback", + "link_count": 0, + "link_to": "Training Feedback", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Training Result", + "link_count": 0, + "link_to": "Training Result", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Daily Work Summary", + "link_count": 3, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Daily Work Summary", + "link_count": 0, + "link_to": "Daily Work Summary", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Daily Work Summary Group", + "link_count": 0, + "link_to": "Daily Work Summary Group", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Daily Work Summary Replies", + "link_count": 0, + "link_to": "Daily Work Summary Replies", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Reports", + "link_count": 4, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Employee Exits", + "link_count": 0, + "link_to": "Employee Exits", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Employee Birthday", + "link_count": 0, + "link_to": "Employee Birthday", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Employee Information", + "link_count": 0, + "link_to": "Employee Information", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Employee Analytics", + "link_count": 0, + "link_to": "Employee Analytics", + "link_type": "Report", + "onboard": 0, + "type": "Link" + } + ], + "modified": "2026-01-09 17:45:33.210388", + "modified_by": "Administrator", + "module": "HR", + "name": "Tenure", + "number_cards": [], + "owner": "Administrator", + "parent_page": "", + "public": 1, + "quick_lists": [ + { + "document_type": "Employee", + "label": "New Hires (This Month)", + "quick_list_filter": "{\"date_of_joining\":[\"Timespan\",\"this month\"]}" + }, + { + "document_type": "Training Event", + "label": "Trainings (This Week)", + "quick_list_filter": "{\"start_time\":[\"Timespan\",\"this week\"]}" + }, + { + "document_type": "Employee", + "label": "Exits (This Month)", + "quick_list_filter": "{\"relieving_date\":[\"Timespan\",\"this month\"]}" + } + ], + "roles": [], + "sequence_id": 2.0, + "shortcuts": [], + "title": "Tenure", + "type": "Workspace" +} diff --git a/apps/erpnext/src/hrms/hrms/hrms.png b/apps/erpnext/src/hrms/hrms/hrms.png new file mode 100644 index 0000000000000000000000000000000000000000..5564fe66a33ae1de9738c7cf8c7e0ea0cda21e22 GIT binary patch literal 1180791 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�ny~;|a@GZUFZ$HGov1xyM7tA)LYV9%?c5#1y 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%0AM3%@(K>2rys1@k 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

    4o3h@wtR(21Jg@pI@Bfu%+nP8cL=`AVqa| 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

    5J2@X?M2qbpNFW6=1Dg0ZZ4gs;q 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 z%0A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 z�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�o%C#`7i?Jy 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/install.py b/apps/erpnext/src/hrms/hrms/install.py new file mode 100644 index 000000000..dacb20e53 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/install.py @@ -0,0 +1,21 @@ +import click + +from hrms.setup import after_install as setup + + +def after_install(): + try: + print("Setting up Frappe HR...") + setup() + + click.secho("Thank you for installing Frappe HR!", fg="green") + + except Exception as e: + BUG_REPORT_URL = "https://github.com/frappe/hrms/issues/new" + click.secho( + "Installation for Frappe HR app failed due to an error." + " Please try re-installing the app or" + f" report the issue on {BUG_REPORT_URL} if not resolved.", + fg="bright_red", + ) + raise e diff --git a/apps/erpnext/src/hrms/hrms/locale/af.po b/apps/erpnext/src/hrms/hrms/locale/af.po new file mode 100644 index 000000000..093461a32 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/af.po @@ -0,0 +1,16958 @@ +# Translations template for Frappe HR. +# Copyright (C) 2024 Frappe Technologies Pvt. Ltd. +# This file is distributed under the same license as the Frappe HR project. +# FIRST AUTHOR , 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: Frappe HR VERSION\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2024-01-11 19:17+0553\n" +"PO-Revision-Date: 2024-01-11 19:17+0553\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: contact@frappe.io\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.13.1\n" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:32 +msgid "" +"\n" +"\t\t\t\t\t\tNot found any salary slip record(s) for the employee {0}.

    \n" +"\t\t\t\t\t\tPlease specify {1} and {2} (if any),\n" +"\t\t\t\t\t\tfor the correct tax calculation in future salary slips.\n" +"\t\t\t\t\t\t" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:22 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: public/frontend/assets/EmployeeAdvanceItem-2a5ba80f.js:1 +msgid "$dayjs" +msgstr "" + +#: public/frontend/assets/LeaveBalance-6bf8cabc.js:1 +msgid "$employee" +msgstr "" + +#: public/frontend/assets/LeaveBalance-6bf8cabc.js:1 +msgid "$socket" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:88 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:94 +msgid "% Utilization (B / T)" +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:84 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "'werknemer_veld_waarde' en 'tydstempel' word vereis." + +#: hr/doctype/leave_application/leave_application.py:1264 +msgid "(Half Day)" +msgstr "(Halwe dag)" + +#: hr/utils.py:234 payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") vir {0}" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "0.25" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "0.5" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "00:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "01:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "02:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "03:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "04:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "05:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "06:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "07:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "08:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "09:00" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "1.0" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "10:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "11:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "12:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "13:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "14:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "15:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "16:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "17:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "18:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "19:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "20:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "21:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "22:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "23:00" +msgstr "" + +#. Description of a Data field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "Voorbeeld: SAL- {first_name} - {date_of_birth.year}
    Dit sal 'n wagwoord soos SAL-Jane-1972 genereer" + +#: hr/doctype/leave_allocation/leave_allocation.py:276 +#: hr/doctype/leave_allocation/leave_allocation.py:282 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Description of the Onboarding Step 'Data Import' +#: hr/onboarding_step/data_import/data_import.json +msgid "" +"

    Data Import

    \n" +"\n" +"Data import is the tool to migrate your existing data like Employee, Customer, Supplier, and a lot more to our ERPNext system.\n" +"Go through the video for a detailed explanation of this tool." +msgstr "" + +#. Description of the Onboarding Step 'Create Employee' +#: hr/onboarding_step/create_employee/create_employee.json +msgid "" +"

    Employee

    \n" +"\n" +"An individual who works and is recognized for his rights and duties in your company is your Employee. You can manage the Employee master. It captures the demographic, personal and professional details, joining and leave details, etc." +msgstr "" + +#. Description of the Onboarding Step 'HR Settings' +#: hr/onboarding_step/hr_settings/hr_settings.json +msgid "" +"

    HR Settings

    \n" +"\n" +"Hr Settings consists of major settings related to Employee Lifecycle, Leave Management, etc. Click on Explore, to explore Hr Settings." +msgstr "" + +#. Content of an HTML field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "" +"

    Help

    \n" +"\n" +"

    Notes:

    \n" +"\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n" +"\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Description of the Onboarding Step 'Create Holiday List' +#: hr/onboarding_step/create_holiday_list/create_holiday_list.json +msgid "" +"

    Holiday List.

    \n" +"\n" +"Holiday List is a list which contains the dates of holidays. Most organizations have a standard Holiday List for their employees. However, some of them may have different holiday lists based on different Locations or Departments. In ERPNext, you can configure multiple Holiday Lists." +msgstr "" + +#. Description of the Onboarding Step 'Create Leave Allocation' +#: hr/onboarding_step/create_leave_allocation/create_leave_allocation.json +msgid "" +"

    Leave Allocation

    \n" +"\n" +"Leave Allocation enables you to allocate a specific number of leaves of a particular type to an Employee so that, an employee will be able to create a Leave Application only if Leaves are allocated. " +msgstr "" + +#. Description of the Onboarding Step 'Create Leave Application' +#: hr/onboarding_step/create_leave_application/create_leave_application.json +msgid "" +"

    Leave Application

    \n" +"\n" +"Leave Application is a formal document created by an Employee to apply for Leaves for a particular time period based on there leave allocation and leave type according to there need." +msgstr "" + +#. Description of the Onboarding Step 'Create Leave Type' +#: hr/onboarding_step/create_leave_type/create_leave_type.json +msgid "" +"

    Leave Type

    \n" +"\n" +"Leave type is defined based on many factors and features like encashment, earned leaves, partially paid, without pay and, a lot more. To check other options and to define your leave type click on Show Tour." +msgstr "" + +#. Content of an HTML field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "" +"

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: controllers/employee_reminders.py:123 controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hr/utils.py:230 payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "'N {0} bestaan tussen {1} en {2} (" + +#. Label of a Data field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Abbr" +msgstr "" + +#. Label of a Data field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Abbr" +msgstr "" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Absent" +msgstr "afwesig" + +#. Option for a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Absent" +msgstr "afwesig" + +#. Option for a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Absent" +msgstr "afwesig" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Absent" +msgstr "afwesig" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Absent Days" +msgstr "Afwesige dae" + +#: hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#. Name of a role +#: hr/doctype/interest/interest.json +msgid "Academics User" +msgstr "" + +#: overrides/employee_master.py:64 overrides/employee_master.py:80 +msgid "Accepted" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Accepted" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Accepted" +msgstr "" + +#. Option for a Select field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Accepted" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Account" +msgstr "" + +#. Label of a Link field in DocType 'Salary Component Account' +#: payroll/doctype/salary_component_account/salary_component_account.json +msgctxt "Salary Component Account" +msgid "Account" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Account" +msgstr "" + +#. Label of a Link field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Account Head" +msgstr "" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +msgid "Account No" +msgstr "Rekening nommer" + +#: payroll/doctype/payroll_entry/payroll_entry.py:89 +msgid "Account type cannot be set for payroll payable account {0}, please remove and try again" +msgstr "" + +#: overrides/company.py:115 +msgid "Account {0} does not belong to company: {1}" +msgstr "" + +#: hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of a Card Break in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Accounting" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Accounting" +msgstr "" + +#. Label of a Tab Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Accounting" +msgstr "" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Accounting Details" +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Accounting Dimension" +msgid "Accounting Dimension" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Accounting Dimensions" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Accounting Dimensions" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Accounting Dimensions" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Accounting Dimensions" +msgstr "" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Accounting Dimensions" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.js:216 +msgid "Accounting Ledger" +msgstr "" + +#. Label of a Card Break in the Expense Claims Workspace +#. Label of a Card Break in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Accounting Reports" +msgstr "" + +#. Label of a Table field in DocType 'Expense Claim Type' +#: hr/doctype/expense_claim_type/expense_claim_type.json +msgctxt "Expense Claim Type" +msgid "Accounts" +msgstr "" + +#. Label of a Section Break field in DocType 'Salary Component' +#. Label of a Table field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Accounts" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Accounts Payable" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Accounts Receivable" +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Accounts Settings" +msgid "Accounts Settings" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:565 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "Toevallingsjoernaal Inskrywing vir salarisse vanaf {0} tot {1}" + +#: hr/doctype/interview/interview.js:32 +#: hr/doctype/job_requisition/job_requisition.js:36 +#: hr/doctype/job_requisition/job_requisition.js:60 +#: hr/doctype/job_requisition/job_requisition.js:62 +#: payroll/doctype/salary_structure/salary_structure.js:108 +#: payroll/doctype/salary_structure/salary_structure.js:112 +msgid "Actions" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:46 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:40 +msgid "Active" +msgstr "" + +#. Option for a Select field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Active" +msgstr "" + +#. Label of a Table field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Activities" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Onboarding Template' +#. Label of a Table field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Activities" +msgstr "" + +#. Label of a Table field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Activities" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Separation Template' +#. Label of a Table field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Activities" +msgstr "" + +#. Label of a Data field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Activity Name" +msgstr "Aktiwiteit Naam" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Activity Type" +msgid "Activity Type" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Proof +#. Submission Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Actual Amount" +msgstr "Werklike bedrag" + +#: hr/doctype/leave_encashment/leave_encashment.py:136 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of a Float field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Actual Encashable Days" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:399 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of a Button field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Add Day-wise Dates" +msgstr "" + +#: hr/employee_property_update.js:45 +msgid "Add Employee Property" +msgstr "" + +#: public/js/performance/performance_feedback.js:93 +msgid "Add Feedback" +msgstr "" + +#: hr/employee_property_update.js:88 +msgid "Add to Details" +msgstr "Voeg by Besonderhede" + +#. Label of a Check field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Add unused leaves from previous allocations" +msgstr "Voeg ongebruikte blare by vorige toekennings by" + +#. Label of a Check field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Add unused leaves from previous allocations" +msgstr "Voeg ongebruikte blare by vorige toekennings by" + +#. Description of a Check field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Added On" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1255 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hr/employee_property_update.js:163 +msgid "Added to details" +msgstr "Bygevoeg aan besonderhede" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Additional Amount" +msgstr "Bykomende bedrag" + +#. Label of a Section Break field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Additional Information " +msgstr "" + +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:34 +msgid "Additional PF" +msgstr "Bykomende PF" + +#. Name of a DocType +#: payroll/doctype/additional_salary/additional_salary.json +msgid "Additional Salary" +msgstr "Bykomende Salaris" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Additional Salary" +msgid "Additional Salary" +msgstr "Bykomende Salaris" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Additional Salary" +msgstr "Bykomende Salaris" + +#. Label of a Link field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Additional Salary " +msgstr "Bykomende salaris" + +#: payroll/doctype/additional_salary/additional_salary.py:110 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: payroll/doctype/additional_salary/additional_salary.py:132 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: payroll/doctype/additional_salary/additional_salary.py:62 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "Bykomende salaris: {0} bestaan reeds vir salariskomponent: {1} vir periode {2} en {3}" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Address of Organizer" +msgstr "Adres van organiseerder" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Advance" +msgstr "bevorder" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Advance Account" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Advance Account" +msgstr "" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:62 +msgid "Advance Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Advance Amount" +msgstr "" + +#. Label of a Data field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Advance Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Advance Paid" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Advance Payments" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Advanced Filters" +msgstr "" + +#. Label of a Card Break in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgid "Advances" +msgstr "" + +#. Label of a Table field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Advances" +msgstr "" + +#. Name of a role +#: hr/doctype/leave_application/leave_application.json +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgid "All" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:219 +msgid "All Goals" +msgstr "" + +#: hr/doctype/job_opening/job_opening.py:106 +msgid "All Jobs" +msgstr "Alle Werk" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:40 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of a Check field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.js:206 +msgid "Allocate Leave" +msgstr "" + +#. Label of a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allocate on Day" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Allocated Amount" +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:79 +msgid "Allocated Leaves" +msgstr "Toegewysde blare" + +#: hr/utils.py:405 +msgid "Allocated {0} leave(s) via scheduler on {1} based on the 'Allocate on Day' option set to {2}" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.js:228 +msgid "Allocating Leave" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgid "Allocation" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Allocation" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:56 +msgid "Allocation Expired!" +msgstr "Toekenning verval!" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allow Encashment" +msgstr "Laat Encashment toe" + +#: hr/doctype/shift_assignment/shift_assignment.py:60 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allow Negative Balance" +msgstr "Laat Negatiewe Saldo toe" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allow Over Allocation" +msgstr "" + +#. Label of a Check field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Allow Tax Exemption" +msgstr "Laat belastingvrystelling toe" + +#. Label of a Link field in DocType 'Leave Block List Allow' +#: hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgctxt "Leave Block List Allow" +msgid "Allow User" +msgstr "Laat gebruiker toe" + +#. Label of a Section Break field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Allow Users" +msgstr "Laat gebruikers toe" + +#. Label of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Allow check-out after shift end time (in minutes)" +msgstr "Laat uitklok toe na afloop van die skof (in minute)" + +#. Description of a Section Break field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "Laat die volgende gebruikers toe om Laat aansoeke vir blokdae goed te keur." + +#. Description of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "Wissel inskrywings as IN en UIT tydens dieselfde skof" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Policy' +#: hr/doctype/leave_policy/leave_policy.json +msgctxt "Leave Policy" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Training Result' +#: hr/doctype/training_result/training_result.json +msgctxt "Training Result" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Amended From" +msgstr "" + +#: payroll/report/professional_tax_deductions/professional_tax_deductions.py:32 +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Application Detail' +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgctxt "Employee Benefit Application Detail" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Amount" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:34 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Amount based on formula" +msgstr "Bedrag gebaseer op formule" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Amount based on formula" +msgstr "Bedrag gebaseer op formule" + +#: payroll/doctype/additional_salary/additional_salary.py:31 +msgid "Amount should not be less than zero" +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:58 +msgid "An amount of {0} already claimed for the component {1}, set the amount equal or greater than {2}" +msgstr "" + +#. Label of a Float field in DocType 'Leave Policy Detail' +#: hr/doctype/leave_policy_detail/leave_policy_detail.json +msgctxt "Leave Policy Detail" +msgid "Annual Allocation" +msgstr "Jaarlikse toekenning" + +#: setup.py:395 +msgid "Annual Salary" +msgstr "Jaarlikse salaris" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of a Small Text field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Any other details" +msgstr "Enige ander besonderhede" + +#. Description of a Text field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Applicable After (Working Days)" +msgstr "Toepaslike Na (Werkdae)" + +#. Label of a Table MultiSelect field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Applicable For" +msgstr "" + +#. Description of a Check field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Applicable in the case of Employee Onboarding" +msgstr "Toepaslik in die geval van werknemer aan boord" + +#. Label of a Data field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Applicant Email Address" +msgstr "Aansoeker se e-posadres" + +#. Label of a Data field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Applicant Name" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Applicant Name" +msgstr "" + +#. Label of a Data field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Applicant Name" +msgstr "" + +#. Label of a Rating field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Applicant Rating" +msgstr "" + +#: hr/report/recruitment_analytics/recruitment_analytics.py:45 +msgid "Applicant name" +msgstr "Aansoeker naam" + +#. Label of a Card Break in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hr/report/recruitment_analytics/recruitment_analytics.py:47 +msgid "Application Status" +msgstr "Toepassingsstatus" + +#: hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be across two allocation records" +msgstr "Aansoekperiode kan nie oor twee toekenningsrekords wees nie" + +#: hr/doctype/leave_application/leave_application.py:204 +msgid "Application period cannot be outside leave allocation period" +msgstr "Aansoek tydperk kan nie buite verlof toekenning tydperk" + +#: templates/generators/job_opening.html:152 +msgid "Applications Received" +msgstr "" + +#: www/jobs/index.html:211 +msgid "Applications received:" +msgstr "" + +#. Label of a Check field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Applies to Company" +msgstr "Van toepassing op Maatskappy" + +#: templates/generators/job_opening.html:21 +#: templates/generators/job_opening.html:25 +msgid "Apply Now" +msgstr "Doen nou aansoek" + +#. Label of a Card Break in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Appointment" +msgstr "" + +#. Label of a Date field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Appointment Date" +msgstr "Aanstellingsdatum" + +#. Name of a DocType +#: hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Letter" +msgstr "Aanstellingsbrief" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Appointment Letter" +msgid "Appointment Letter" +msgstr "Aanstellingsbrief" + +#. Name of a DocType +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Appointment Letter Template" +msgstr "Aanstellingsbriefsjabloon" + +#. Label of a Link field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Appointment Letter Template" +msgstr "Aanstellingsbriefsjabloon" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Appointment Letter Template" +msgid "Appointment Letter Template" +msgstr "Aanstellingsbriefsjabloon" + +#. Name of a DocType +#: hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Inhoud van die aanstellingsbrief" + +#. Name of a DocType +#. Label of a Card Break in the Performance Workspace +#: hr/doctype/appraisal/appraisal.json +#: hr/report/appraisal_overview/appraisal_overview.py:44 +#: hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "evaluering" + +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Appraisal" +msgid "Appraisal" +msgstr "evaluering" + +#. Linked DocType in Appraisal Cycle's connections +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Appraisal" +msgstr "evaluering" + +#. Linked DocType in Appraisal Template's connections +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Appraisal" +msgstr "evaluering" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Appraisal" +msgstr "evaluering" + +#. Name of a DocType +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/goal/goal_tree.js:17 hr/doctype/goal/goal_tree.js:107 +#: hr/report/appraisal_overview/appraisal_overview.js:18 +#: hr/report/appraisal_overview/appraisal_overview.py:37 +msgid "Appraisal Cycle" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Appraisal Cycle" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Appraisal Cycle" +msgid "Appraisal Cycle" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Appraisal Cycle" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "Evalueringsdoel" + +#. Name of a DocType +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:98 +msgid "Appraisal Linking" +msgstr "" + +#. Label of a Section Break field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#. Label of a Link in the Performance Workspace +#: hr/report/appraisal_overview/appraisal_overview.json +#: hr/workspace/performance/performance.json +msgid "Appraisal Overview" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Appraisal Template" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Appraisal Template" +msgid "Appraisal Template" +msgstr "" + +#. Label of a Link field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "Evalueringsjabloon doel" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of a Data field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Appraisal Template Title" +msgstr "Appraisal Template Titel" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:54 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:44 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:113 +msgid "Appraisees: {0}" +msgstr "" + +#: setup.py:387 +msgid "Apprentice" +msgstr "vakleerling" + +#. Label of a Section Break field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Approval" +msgstr "" + +#. Label of a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Approval Status" +msgstr "Goedkeuring Status" + +#: hr/doctype/expense_claim/expense_claim.py:118 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "Goedkeuringsstatus moet 'Goedgekeur' of 'Afgekeur' wees" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Approved" +msgstr "" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Approved" +msgstr "" + +#. Option for a Select field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Approved" +msgstr "" + +#. Label of a Link field in DocType 'Department Approver' +#: hr/doctype/department_approver/department_approver.json +msgctxt "Department Approver" +msgid "Approver" +msgstr "Goedkeurder" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Approver" +msgstr "Goedkeurder" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:16 +#: public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "Apr." + +#: hr/doctype/goal/goal.js:68 +msgid "Archive" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Archived" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip_list.js:11 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:87 +msgid "Are you sure you want to proceed?" +msgstr "" + +#: hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Label of a Datetime field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Arrival Datetime" +msgstr "Aankoms Datum Tyd" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:41 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "Volgens u toegewysde Salarisstruktuur kan u nie vir voordele aansoek doen nie" + +#. Label of a Data field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Asset Name" +msgstr "" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Assets Allocated" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:162 +msgid "Assign" +msgstr "Toewys" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/assign_salary_structure/assign_salary_structure.json +msgid "Assign Salary Structure" +msgstr "Ken Salarisstruktuur toe" + +#: payroll/doctype/salary_structure/salary_structure.js:103 +msgid "Assign to Employee" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:250 +msgid "Assigning Structures..." +msgstr "Strukture ken ..." + +#. Label of a Select field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Assignment based on" +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.js:38 +#: hr/doctype/job_requisition/job_requisition.js:59 +msgid "Associate Job Opening" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Associated Document" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Associated Document Type" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:107 +msgid "Atleast one interview has to be selected." +msgstr "" + +#. Label of a Attach field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Attachments" +msgstr "" + +#. Label of a Attach field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Attachments" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#: hr/doctype/attendance/attendance.json hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +#: overrides/dashboard_overrides.py:10 templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "Bywoning" + +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Attendance" +msgid "Attendance" +msgstr "Bywoning" + +#. Option for a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Attendance" +msgstr "Bywoning" + +#. Label of a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Attendance" +msgstr "Bywoning" + +#. Label of a chart in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Attendance Dashboard" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "Bywoningsdatum" + +#. Label of a Date field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Attendance Date" +msgstr "Bywoningsdatum" + +#. Label of a Date field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Attendance From Date" +msgstr "Bywoning vanaf datum" + +#: hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "Bywoning vanaf datum en bywoning tot datum is verpligtend" + +#: hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#: hr/doctype/attendance/attendance_list.js:115 +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:177 +msgid "Attendance Marked" +msgstr "Bywoning gemerk" + +#. Label of a Link field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Attendance Marked" +msgstr "Bywoning gemerk" + +#. Name of a DocType +#: hr/doctype/attendance_request/attendance_request.json +msgid "Attendance Request" +msgstr "Bywoningsversoek" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Attendance Request" +msgstr "Bywoningsversoek" + +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Attendance Request" +msgid "Attendance Request" +msgstr "Bywoningsversoek" + +#. Label of a Date field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Attendance To Date" +msgstr "Bywoning tot datum" + +#: hr/doctype/attendance_request/attendance_request.py:105 +msgid "Attendance Updated" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hr/doctype/attendance/attendance.py:56 +msgid "Attendance can not be marked for future dates: {0}" +msgstr "" + +#: hr/doctype/attendance/attendance.py:62 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:176 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hr/doctype/attendance/attendance.py:113 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hr/doctype/attendance/attendance.py:74 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:545 +msgid "Attendance for employee {0} is already marked for this day" +msgstr "Bywoning vir werknemer {0} is reeds gemerk vir hierdie dag" + +#: hr/doctype/attendance/attendance_list.js:95 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hr/doctype/shift_type/shift_type.js:29 +msgid "Attendance has been marked as per employee check-ins" +msgstr "Die bywoning is volgens die werknemers se inboeke gemerk" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:218 +msgid "Attendance marked successfully" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:123 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "Bywoning is nie vir {0} ingedien nie aangesien dit 'n Vakansiedag is." + +#: hr/doctype/attendance_request/attendance_request.py:132 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of a Date field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Attendance will be marked automatically only after this date." +msgstr "Bywoning word slegs na hierdie datum outomaties gemerk." + +#. Label of a Section Break field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Attendees" +msgstr "deelnemers" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:45 +msgid "Attrition Count" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:20 +#: public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "Aug." + +#. Label of a Section Break field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Auto Attendance Settings" +msgstr "Instellings vir outo-bywoning" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Auto Leave Encashment" +msgstr "Verlaat omhulsel outomaties" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Automated Based on Goal Progress" +msgstr "" + +#. Description of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Available Leave(s)" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Average Feedback Score" +msgstr "" + +#. Label of a Rating field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Average Rating" +msgstr "" + +#. Description of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score (out of 5)" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:223 +msgid "Avg Utilization" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:229 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for a Select field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Awaiting Response" +msgstr "In afwagting van antwoord" + +#: hr/doctype/leave_application/leave_application.py:166 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:48 +msgid "Bank" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Bank Account" +msgstr "" + +#. Label of a Data field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Bank Account No" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Bank Details" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.js:89 +msgid "Bank Entries" +msgstr "Bankinskrywings" + +#: payroll/report/bank_remittance/bank_remittance.py:33 +msgid "Bank Name" +msgstr "" + +#. Label of a Data field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Bank Name" +msgstr "" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/bank_remittance/bank_remittance.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Bank Remittance" +msgstr "Bankoorbetaling" + +#: payroll/doctype/salary_structure/salary_structure.js:143 +msgid "Base" +msgstr "Basis" + +#. Label of a Currency field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Base" +msgstr "Basis" + +#. Label of a Section Break field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Base & Variable" +msgstr "" + +#. Label of a Int field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Begin On (Days)" +msgstr "" + +#. Label of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Begin check-in before shift start time (in minutes)" +msgstr "Begin inklok voor die begin van die skof (in minute)" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Beginner" +msgstr "Beginner" + +#: controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: overrides/dashboard_overrides.py:30 +msgid "Benefit" +msgstr "voordeel" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Benefits" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Benefits" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:171 +msgid "Bill Amount" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:254 +msgid "Billed Hours" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:70 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Bimonthly" +msgstr "tweemaandelikse" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Bimonthly" +msgstr "tweemaandelikse" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Bimonthly" +msgstr "tweemaandelikse" + +#: controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "Verjaardag Herinnering" + +#: controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Birthdays" +msgstr "" + +#. Label of a Date field in DocType 'Leave Block List Date' +#: hr/doctype/leave_block_list_date/leave_block_list_date.json +msgctxt "Leave Block List Date" +msgid "Block Date" +msgstr "Blok Datum" + +#. Label of a Section Break field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Block Days" +msgstr "Blokdae" + +#. Label of a Section Break field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Body" +msgstr "" + +#. Label of a Section Break field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Bonus" +msgstr "" + +#. Label of a Currency field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Bonus Amount" +msgstr "Bonusbedrag" + +#. Label of a Date field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Bonus Payment Date" +msgstr "Bonus Betalingsdatum" + +#: payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "Bonus Betalingsdatum kan nie 'n vervaldatum wees nie" + +#: hr/report/employee_analytics/employee_analytics.py:33 +#: hr/report/employee_birthday/employee_birthday.py:24 +#: payroll/doctype/salary_structure/salary_structure.js:133 +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:29 +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:21 +#: payroll/report/salary_register/salary_register.py:135 +#: public/js/salary_slip_deductions_report_filters.js:48 +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Branch" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Branch" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Branch" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:180 +msgid "Branch: {0}" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:99 +msgid "Bulk Assign Structure" +msgstr "" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:130 +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#: payroll/report/income_tax_computation/income_tax_computation.py:515 +msgid "CTC" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "CTC" +msgstr "" + +#. Label of a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Calculate Payroll Working Days Based On" +msgstr "Bereken werkdae op grond van" + +#. Description of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Calculated in days" +msgstr "In dae bereken" + +#: setup.py:323 +msgid "Calls" +msgstr "oproepe" + +#: setup.py:392 +msgid "Campaign" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:116 +msgid "Cancellation Queued" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Cancelled" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:255 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:258 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:200 +msgid "Cannot create or change transactions against a {0} Appraisal Cycle." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:552 +msgid "Cannot find active Leave Period" +msgstr "Kan nie aktiewe verlofperiode vind nie" + +#: hr/doctype/attendance/attendance.py:145 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:59 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:138 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hr/doctype/goal/goal_list.js:104 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of a Check field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Carry Forward" +msgstr "Voort te sit" + +#. Label of a Section Break field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Carry Forward" +msgstr "Voort te sit" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Carry Forwarded Leaves" +msgstr "Dra aanstuurblare" + +#: setup.py:338 setup.py:339 +msgid "Casual Leave" +msgstr "Toevallige verlof" + +#. Label of a Text field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Cause of Grievance" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Change" +msgstr "" + +#: hr/doctype/goal/goal.js:96 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Account" +msgid "Chart of Accounts" +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Cost Center" +msgid "Chart of Cost Centers" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1355 +msgid "Check Error Log {0} for more details." +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Check Vacancies On Job Offer Creation" +msgstr "Kyk na vakatures met die skep van werksaanbiedinge" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:119 +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:329 +msgid "Check {0} for more details" +msgstr "" + +#. Label of a Date field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Check-in Date" +msgstr "Incheckdatum" + +#. Label of a Date field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Check-out Date" +msgstr "Check-out datum" + +#: hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Claim Benefit For" +msgstr "Eisvoordeel vir" + +#. Label of a Date field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Claim Date" +msgstr "Eisdatum" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Claimed" +msgstr "beweer" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:69 +msgid "Claimed Amount" +msgstr "Eisbedrag" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Claimed Amount" +msgstr "Eisbedrag" + +#. Label of a Currency field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Claimed Amount" +msgstr "Eisbedrag" + +#. Label of a Card Break in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: overrides/dashboard_overrides.py:81 +msgid "Claims" +msgstr "" + +#: www/jobs/index.html:20 +msgid "Clear All" +msgstr "" + +#. Label of a Date field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Clearance Date" +msgstr "" + +#. Option for a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Cleared" +msgstr "" + +#. Option for a Select field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Cleared" +msgstr "" + +#: hr/doctype/goal/goal.js:75 +msgid "Close" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Closed" +msgstr "" + +#. Option for a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Closed" +msgstr "" + +#: templates/generators/job_opening.html:170 +msgid "Closed On" +msgstr "" + +#. Label of a Date field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Closed On" +msgstr "" + +#: templates/generators/job_opening.html:170 +msgid "Closes On" +msgstr "" + +#. Label of a Date field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Closes On" +msgstr "" + +#: www/jobs/index.html:216 +msgid "Closes on:" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:78 +msgid "Closing Balance" +msgstr "" + +#. Label of a Text field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Closing Notes" +msgstr "Sluitingsnotas" + +#. Label of a Text field in DocType 'Appointment Letter Template' +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgctxt "Appointment Letter Template" +msgid "Closing Notes" +msgstr "Sluitingsnotas" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:117 +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:122 +msgid "Collapse All" +msgstr "" + +#. Label of a Color field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Color" +msgstr "" + +#. Label of a Text field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Comments" +msgstr "" + +#. Label of a Small Text field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Comments" +msgstr "" + +#: setup.py:384 +msgid "Commission" +msgstr "" + +#: hr/dashboard_chart_source/employees_by_age/employees_by_age.js:8 +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js:8 +#: hr/doctype/goal/goal_tree.js:10 +#: hr/doctype/leave_control_panel/leave_control_panel.js:172 +#: hr/report/appraisal_overview/appraisal_overview.js:9 +#: hr/report/employee_advance_summary/employee_advance_summary.js:29 +#: hr/report/employee_advance_summary/employee_advance_summary.py:54 +#: hr/report/employee_analytics/employee_analytics.js:9 +#: hr/report/employee_analytics/employee_analytics.py:14 +#: hr/report/employee_analytics/employee_analytics.py:37 +#: hr/report/employee_birthday/employee_birthday.js:16 +#: hr/report/employee_birthday/employee_birthday.py:28 +#: hr/report/employee_exits/employee_exits.js:21 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:9 +#: hr/report/employee_leave_balance/employee_leave_balance.js:21 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:16 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:50 +#: hr/report/project_profitability/project_profitability.js:9 +#: hr/report/recruitment_analytics/recruitment_analytics.js:9 +#: hr/report/shift_attendance/shift_attendance.js:40 +#: hr/report/shift_attendance/shift_attendance.py:104 +#: payroll/report/bank_remittance/bank_remittance.js:9 +#: payroll/report/income_tax_computation/income_tax_computation.js:9 +#: payroll/report/salary_register/salary_register.js:39 +#: payroll/report/salary_register/salary_register.py:156 +#: public/js/salary_slip_deductions_report_filters.js:7 +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Company" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Company" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Account' +#: hr/doctype/expense_claim_account/expense_claim_account.json +msgctxt "Expense Claim Account" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Period' +#: payroll/doctype/payroll_period/payroll_period.json +msgctxt "Payroll Period" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Salary Component Account' +#: payroll/doctype/salary_component_account/salary_component_account.json +msgctxt "Salary Component Account" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Company" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Company Details" +msgstr "" + +#. Name of a DocType +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Compensatory Leave Request" +msgstr "Vergoedingsverlofversoek" + +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgctxt "Compensatory Leave Request" +msgid "Compensatory Leave Request" +msgstr "Vergoedingsverlofversoek" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Compensatory Leave Request" +msgstr "Vergoedingsverlofversoek" + +#: setup.py:347 setup.py:348 +msgid "Compensatory Off" +msgstr "Kompenserende Off" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Completed" +msgstr "" + +#. Label of a Date field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Completed On" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.js:95 +msgid "Completing onboarding" +msgstr "" + +#. Label of a Data field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Component" +msgstr "komponent" + +#. Label of a Link field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Component" +msgstr "komponent" + +#. Label of a Section Break field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Component properties and references " +msgstr "Komponenteienskappe en verwysings" + +#. Label of a Code field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Condition" +msgstr "" + +#. Label of a Code field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Condition" +msgstr "" + +#. Label of a Code field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "Condition" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Condition & Formula" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:13 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of a Section Break field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Condition and formula" +msgstr "Toestand en formule" + +#. Label of a Section Break field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Conditions" +msgstr "voorwaardes" + +#. Label of a HTML field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Conditions and Formula variable and example" +msgstr "Voorwaardes en formule veranderlike en voorbeeld" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Conference" +msgstr "Konferensie" + +#. Label of a Tab Break field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Connections" +msgstr "" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Connections" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: payroll/report/income_tax_computation/income_tax_computation.js:40 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Consider Unmarked Attendance As" +msgstr "Oorweeg ongemerkte bywoning as" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:55 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Contact Email" +msgstr "" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Contact No." +msgstr "" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Contact Number" +msgstr "Kontak nommer" + +#. Label of a Data field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Contact Number" +msgstr "Kontak nommer" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Contact Number" +msgstr "Kontak nommer" + +#: setup.py:383 +msgid "Contract" +msgstr "" + +#. Label of a Attach field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Copy of Invitation/Announcement" +msgstr "Afskrif van Uitnodiging / Aankondiging" + +#: hr/report/project_profitability/project_profitability.py:178 +msgid "Cost" +msgstr "" + +#. Label of a Link field in DocType 'Employee Cost Center' +#: payroll/doctype/employee_cost_center/employee_cost_center.json +msgctxt "Employee Cost Center" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Cost Center" +msgstr "" + +#. Label of a Table field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Cost Centers" +msgstr "" + +#. Label of a Table field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Costing" +msgstr "" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Costing Details" +msgstr "Koste Besonderhede" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1416 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:299 +msgid "Could not update Goal" +msgstr "" + +#: hr/doctype/goal/goal_list.js:138 +msgid "Could not update goals" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Country" +msgstr "" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Course" +msgstr "Kursus" + +#. Label of a Data field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Course" +msgstr "Kursus" + +#. Label of a Text field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Cover Letter" +msgstr "Dekbrief" + +#: hr/doctype/employee_advance/employee_advance.js:50 +#: hr/doctype/employee_advance/employee_advance.js:61 +#: hr/doctype/employee_advance/employee_advance.js:72 +#: hr/doctype/employee_advance/employee_advance.js:76 +#: hr/doctype/employee_onboarding/employee_onboarding.js:44 +#: hr/doctype/employee_onboarding/employee_onboarding.js:45 +#: hr/doctype/expense_claim/expense_claim.js:235 +#: hr/doctype/job_applicant/job_applicant.js:26 +#: hr/doctype/job_applicant/job_applicant.js:46 +#: hr/doctype/vehicle_log/vehicle_log.js:9 +#: hr/doctype/vehicle_log/vehicle_log.js:10 +#: public/js/erpnext/delivery_trip.js:12 +msgid "Create" +msgstr "" + +#: hr/doctype/employee_referral/employee_referral.js:39 +msgid "Create Additional Salary" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:35 +msgid "Create Appraisals" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_department/create_department.json +msgid "Create Department" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_designation/create_designation.json +msgid "Create Designation" +msgstr "" + +#. Title of an Onboarding Step +#: hr/doctype/job_offer/job_offer.js:40 +#: hr/onboarding_step/create_employee/create_employee.json +#: payroll/onboarding_step/create_employee/create_employee.json +msgid "Create Employee" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_holiday_list/create_holiday_list.json +msgid "Create Holiday List" +msgstr "" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_income_tax_slab/create_income_tax_slab.json +msgid "Create Income Tax Slab" +msgstr "" + +#: hr/doctype/interview_round/interview_round.js:7 +msgid "Create Interview" +msgstr "" + +#: hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.js:31 +msgid "Create Job Opening" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.js:10 +msgid "Create Journal Entry" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_leave_allocation/create_leave_allocation.json +msgid "Create Leave Allocation" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_leave_application/create_leave_application.json +msgid "Create Leave Application" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_leave_type/create_leave_type.json +msgid "Create Leave Type" +msgstr "" + +#. Label of a Check field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Create New Employee Id" +msgstr "Skep nuwe werknemer-ID" + +#: payroll/doctype/gratuity/gratuity.js:36 +msgid "Create Payment Entry" +msgstr "" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_payroll_period/create_payroll_period.json +msgid "Create Payroll Period" +msgstr "" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_salary_component/create_salary_component.json +msgid "Create Salary Component" +msgstr "" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_salary_slip/create_salary_slip.json +#: public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "Skep Salaris Slip" + +#: payroll/doctype/payroll_entry/payroll_entry.js:72 +#: payroll/doctype/payroll_entry/payroll_entry.js:79 +#: payroll/doctype/payroll_entry/payroll_entry.js:146 +msgid "Create Salary Slips" +msgstr "Skep Salarisstrokies" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_salary_structure/create_salary_structure.json +msgid "Create Salary Structure" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Create Separate Payment Entry Against Benefit Claim" +msgstr "Skep 'n afsonderlike betaling inskrywing teen voordeel eis" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:191 +msgid "Creating Appraisals" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:412 +msgid "Creating Payment Entries......" +msgstr "Die skep van betalingsinskrywings ......" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1378 +msgid "Creating Salary Slips..." +msgstr "Skep Salarisstrokies ..." + +#: hr/doctype/leave_control_panel/leave_control_panel.py:128 +msgid "Creation Failed" +msgstr "" + +#: hr/doctype/appraisal_template/appraisal_template.py:23 +msgid "Criteria" +msgstr "" + +#. Label of a Data field in DocType 'Employee Feedback Criteria' +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgctxt "Employee Feedback Criteria" +msgid "Criteria" +msgstr "" + +#. Label of a Link field in DocType 'Employee Feedback Rating' +#: hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgctxt "Employee Feedback Rating" +msgid "Criteria" +msgstr "" + +#. Description of a Table field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:206 +#: payroll/report/bank_remittance/bank_remittance.py:48 +#: payroll/report/salary_register/salary_register.js:26 +#: payroll/report/salary_register/salary_register.py:244 +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Currency" +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Currency" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grade' +#: hr/doctype/employee_grade/employee_grade.json +msgctxt "Employee Grade" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Currency" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Currency " +msgstr "" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:99 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#: hr/employee_property_update.js:85 +msgid "Current" +msgstr "Huidige" + +#. Label of a Data field in DocType 'Employee Property History' +#: hr/doctype/employee_property_history/employee_property_history.json +msgctxt "Employee Property History" +msgid "Current" +msgstr "Huidige" + +#. Label of a Currency field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Current CTC" +msgstr "" + +#. Label of a Int field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Current Count" +msgstr "Huidige telling" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Current Employer " +msgstr "" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Current Job Title" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Current Month Income Tax" +msgstr "" + +#: hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "Huidige kilometerstandwaarde moet groter wees as die laaste kilometerstandwaarde {0}" + +#. Label of a Int field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Current Odometer value " +msgstr "Huidige afstandmeterwaarde" + +#. Label of a Int field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Current Openings" +msgstr "Huidige openings" + +#. Option for a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Current Slab" +msgstr "" + +#. Label of a Int field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Current Work Experience" +msgstr "" + +#. Label of a Table field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Current Work Experience" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for a Select field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Custom Range" +msgstr "" + +#: hr/report/project_profitability/project_profitability.js:31 +#: hr/report/project_profitability/project_profitability.py:135 +msgid "Customer" +msgstr "" + +#. Label of a Data field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Cycle Name" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Daily" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Daily" +msgstr "" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Daily" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/doctype/daily_work_summary/daily_work_summary.json +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Daily Work Summary" +msgstr "Daaglikse werkopsomming" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Daily Work Summary" +msgid "Daily Work Summary" +msgstr "Daaglikse werkopsomming" + +#. Name of a DocType +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hr/page/team_updates/team_updates.js:12 +msgid "Daily Work Summary Group" +msgstr "Daaglikse werkopsommingsgroep" + +#. Label of a Link field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Daily Work Summary Group" +msgstr "Daaglikse werkopsommingsgroep" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgctxt "Daily Work Summary Group" +msgid "Daily Work Summary Group" +msgstr "Daaglikse werkopsommingsgroep" + +#. Name of a DocType +#: hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "Daaglikse werkopsomminggroepgebruiker" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Daily Work Summary Replies" +msgstr "Daaglikse Werkopsomming Antwoorde" + +#. Label of a shortcut in the Employee Lifecycle Workspace +#. Label of a shortcut in the Expense Claims Workspace +#. Label of a shortcut in the Recruitment Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Label of a shortcut in the Payroll Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/expense_claims/expense_claims.json +#: hr/workspace/recruitment/recruitment.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +#: payroll/workspace/payroll/payroll.json +msgid "Dashboard" +msgstr "" + +#. Label of a Tab Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Dashboard" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/data_import/data_import.json +msgid "Data Import" +msgstr "" + +#: hr/notification/training_scheduled/training_scheduled.html:27 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:9 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:22 +#: hr/report/vehicle_expenses/vehicle_expenses.py:42 +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Date" +msgstr "" + +#. Label of a Datetime field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Date " +msgstr "" + +#: hr/doctype/goal/goal_tree.js:38 +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.js:16 +msgid "Date Range" +msgstr "Datumreeks" + +#: hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "Datum word herhaal" + +#: hr/report/employee_analytics/employee_analytics.py:32 +#: hr/report/employee_birthday/employee_birthday.py:23 +msgid "Date of Birth" +msgstr "" + +#. Label of a Date field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Date of Birth" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:32 +#: payroll/report/income_tax_computation/income_tax_computation.py:507 +#: payroll/report/salary_register/salary_register.py:129 setup.py:394 +msgid "Date of Joining" +msgstr "" + +#. Label of a Date field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Date of Joining" +msgstr "" + +#. Label of a Date field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Date of Joining" +msgstr "" + +#. Label of a Date field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Date of Joining" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Date of Joining" +msgstr "" + +#. Label of a Data field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Date of Joining" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Dates & Reason" +msgstr "" + +#. Label of a Select field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Dates Based On" +msgstr "" + +#: payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "Debiet-A / C-nommer" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:24 +#: public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "Des" + +#: hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of a Table field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Declarations" +msgstr "verklarings" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Declaration +#. Category' +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Declared Amount" +msgstr "Verklaarde bedrag" + +#. Label of a Check field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Trek die volle belasting af op die geselekteerde betaalstaatdatum" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Trek die volle belasting af op die geselekteerde betaalstaatdatum" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Trek die volle belasting af op die geselekteerde betaalstaatdatum" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Deduct Tax For Unclaimed Employee Benefits" +msgstr "Aftrekbelasting vir Onopgeëiste Werknemervoordele" + +#. Label of a Check field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Deduct Tax For Unclaimed Employee Benefits" +msgstr "Aftrekbelasting vir Onopgeëiste Werknemervoordele" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "Aftrekbelasting vir nie-aangemelde belastingvrystellingbewys" + +#. Label of a Check field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "Aftrekbelasting vir nie-aangemelde belastingvrystellingbewys" + +#: payroll/report/salary_register/salary_register.py:84 +#: payroll/report/salary_register/salary_register.py:91 +msgid "Deduction" +msgstr "aftrekking" + +#. Option for a Select field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Deduction" +msgstr "aftrekking" + +#. Label of a Card Break in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Deduction Reports" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.js:74 +msgid "Deduction from Salary" +msgstr "" + +#. Label of a Table field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Deductions" +msgstr "aftrekkings" + +#. Label of a Table field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Deductions" +msgstr "aftrekkings" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Account' +#: hr/doctype/expense_claim_account/expense_claim_account.json +msgctxt "Expense Claim Account" +msgid "Default Account" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Default Account" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Default Amount" +msgstr "Verstekbedrag" + +#. Description of a Link field in DocType 'Salary Component Account' +#: payroll/doctype/salary_component_account/salary_component_account.json +msgctxt "Salary Component Account" +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "Verstekbank / Kontantrekening sal outomaties opgedateer word in Salarisjoernaalinskrywing wanneer hierdie modus gekies word." + +#. Label of a Currency field in DocType 'Employee Grade' +#: hr/doctype/employee_grade/employee_grade.json +msgctxt "Employee Grade" +msgid "Default Base Pay" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grade' +#: hr/doctype/employee_grade/employee_grade.json +msgctxt "Employee Grade" +msgid "Default Salary Structure" +msgstr "Standaard Salarisstruktuur" + +#. Label of a Check field in DocType 'Expense Claim Type' +#: hr/doctype/expense_claim_type/expense_claim_type.json +msgctxt "Expense Claim Type" +msgid "Deferred Expense Account" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Define Opening Balance for Earning and Deductions" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Delivery Trip" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.js:177 +#: hr/report/appraisal_overview/appraisal_overview.js:29 +#: hr/report/appraisal_overview/appraisal_overview.py:61 +#: hr/report/employee_analytics/employee_analytics.py:34 +#: hr/report/employee_birthday/employee_birthday.py:25 +#: hr/report/employee_exits/employee_exits.js:27 +#: hr/report/employee_exits/employee_exits.py:65 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:37 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:62 +#: hr/report/employee_leave_balance/employee_leave_balance.js:30 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:30 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py:24 +#: hr/report/shift_attendance/shift_attendance.js:34 +#: hr/report/shift_attendance/shift_attendance.py:97 +#: payroll/doctype/salary_structure/salary_structure.js:135 +#: payroll/report/income_tax_computation/income_tax_computation.js:33 +#: payroll/report/income_tax_computation/income_tax_computation.py:494 +#: payroll/report/salary_register/salary_register.py:142 +#: public/js/salary_slip_deductions_report_filters.js:42 setup.py:400 +#: templates/generators/job_opening.html:82 +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Department" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Department" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Employee Detail' +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgctxt "Payroll Employee Detail" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Department" +msgstr "" + +#. Name of a DocType +#: hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "Departement Goedkeuring" + +#. Label of a chart in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:182 +msgid "Department: {0}" +msgstr "" + +#. Label of a Datetime field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Departure Datetime" +msgstr "Vertrek Datum Tyd" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Depends on Payment Days" +msgstr "Hang af van die betalingsdae" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Depends on Payment Days" +msgstr "Hang af van die betalingsdae" + +#: hr/doctype/goal/goal_tree.js:156 +msgid "Description" +msgstr "" + +#. Label of a Long Text field in DocType 'Appointment Letter content' +#: hr/doctype/appointment_letter_content/appointment_letter_content.json +msgctxt "Appointment Letter content" +msgid "Description" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Description" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Description" +msgstr "" + +#. Label of a Text Editor field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Description" +msgstr "" + +#. Label of a Text field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Expected Skill Set' +#: hr/doctype/expected_skill_set/expected_skill_set.json +msgctxt "Expected Skill Set" +msgid "Description" +msgstr "" + +#. Label of a Text Editor field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Expense Claim Type' +#: hr/doctype/expense_claim_type/expense_claim_type.json +msgctxt "Expense Claim Type" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Description" +msgstr "" + +#. Label of a Section Break field in DocType 'Goal' +#. Label of a Text Editor field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Description" +msgstr "" + +#. Label of a Text field in DocType 'Grievance Type' +#: hr/doctype/grievance_type/grievance_type.json +msgctxt "Grievance Type" +msgid "Description" +msgstr "" + +#. Label of a Data field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Description" +msgstr "" + +#. Label of a Text field in DocType 'Interview Type' +#: hr/doctype/interview_type/interview_type.json +msgctxt "Interview Type" +msgid "Description" +msgstr "" + +#. Label of a Text Editor field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'KRA' +#: hr/doctype/kra/kra.json +msgctxt "KRA" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Description" +msgstr "" + +#. Label of a Text field in DocType 'Skill' +#: hr/doctype/skill/skill.json +msgctxt "Skill" +msgid "Description" +msgstr "" + +#. Label of a Text Editor field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Description" +msgstr "" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Description" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.js:35 +#: hr/report/appraisal_overview/appraisal_overview.py:30 +#: hr/report/employee_analytics/employee_analytics.py:35 +#: hr/report/employee_birthday/employee_birthday.py:26 +#: hr/report/employee_exits/employee_exits.js:33 +#: hr/report/employee_exits/employee_exits.py:72 +#: hr/report/recruitment_analytics/recruitment_analytics.py:59 +#: payroll/doctype/salary_structure/salary_structure.js:134 +#: payroll/report/income_tax_computation/income_tax_computation.py:501 +#: payroll/report/salary_register/salary_register.py:149 +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Designation" +msgstr "" + +#. Linked DocType in Appraisal Template's connections +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Designation" +msgstr "" + +#. Label of a Data field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Designation" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Designation" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Designation" +msgstr "" + +#. Label of a Read Only field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Designation" +msgstr "" + +#. Label of a Data field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Designation" +msgstr "" + +#. Label of a Data field in DocType 'Payroll Employee Detail' +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgctxt "Payroll Employee Detail" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Designation" +msgstr "" + +#. Name of a DocType +#: hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "Aanwysingsvaardigheid" + +#: payroll/doctype/payroll_entry/payroll_entry.py:184 +msgid "Designation: {0}" +msgstr "" + +#: templates/emails/training_event.html:4 +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Details" +msgstr "" + +#. Label of a Text Editor field in DocType 'Job Applicant Source' +#: hr/doctype/job_applicant_source/job_applicant_source.json +msgctxt "Job Applicant Source" +msgid "Details" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Details" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Details of Sponsor (Name, Location)" +msgstr "Besonderhede van Borg (Naam, Plek)" + +#. Label of a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Determine Check-in and Check-out" +msgstr "Bepaal die in-en uitklok" + +#. Label of a Check field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Disable" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Disable Rounded Total" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:96 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:39 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#. Label of a Check field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Disabled" +msgstr "" + +#. Label of a Check field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Disabled" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Disabled" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Dispensed Amount (Pro-rated)" +msgstr "Uitgestelde bedrag (Pro-gegradeerde)" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Do Not Include in Total" +msgstr "Moenie in totaal insluit nie" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Do not include in total" +msgstr "Sluit nie in totaal in nie" + +#: hr/doctype/goal/goal.js:98 +msgid "Do you still want to proceed?" +msgstr "" + +#: hr/doctype/interview/interview.py:70 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: payroll/report/salary_register/salary_register.js:48 +msgid "Document Status" +msgstr "Dokument Status" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Domestic" +msgstr "binnelandse" + +#. Label of a Section Break field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Download Template" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Draft" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Driver" +msgid "Driver" +msgstr "" + +#: hr/doctype/attendance/attendance.py:79 +msgid "Duplicate Attendance" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:60 +msgid "Duplicate Entry" +msgstr "Dubbele inskrywing" + +#: hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: payroll/doctype/additional_salary/additional_salary.py:139 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#. Label of a Int field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Duration (Days)" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "Vroeë uitgang" + +#. Label of a Check field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Early Exit" +msgstr "Vroeë uitgang" + +#. Label of a Check field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Early Exit" +msgstr "Vroeë uitgang" + +#: hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Early Exit Grace Period" +msgstr "Genade tydperk vir vroeë uitgang" + +#: hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Earned Leave" +msgstr "Verdien Verlof" + +#. Label of a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Earned Leave Frequency" +msgstr "Verdienstelike verloffrekwensie" + +#: hr/doctype/leave_allocation/leave_allocation.py:139 +msgid "Earned Leaves" +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:34 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:142 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hr/doctype/leave_type/leave_type.js:36 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#: payroll/report/salary_register/salary_register.py:84 +#: payroll/report/salary_register/salary_register.py:90 +msgid "Earning" +msgstr "verdien" + +#. Option for a Select field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Earning" +msgstr "verdien" + +#. Label of a Link field in DocType 'Employee Benefit Application Detail' +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgctxt "Employee Benefit Application Detail" +msgid "Earning Component" +msgstr "Verdien komponent" + +#. Label of a Link field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Earning Component" +msgstr "Verdien komponent" + +#: payroll/doctype/additional_salary/additional_salary.py:106 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of a Table field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Earnings" +msgstr "verdienste" + +#. Label of a Table field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Earnings" +msgstr "verdienste" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Earnings & Deductions" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Earnings & Deductions" +msgstr "" + +#. Label of a Section Break field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Earnings and Taxation " +msgstr "" + +#. Label of a Date field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Effective From" +msgstr "" + +#. Label of a Date field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Effective To" +msgstr "" + +#. Label of a Date field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Effective from" +msgstr "Effektief vanaf" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Email" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Email" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Email Address" +msgstr "" + +#. Label of a Data field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Email ID" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Email Salary Slip to Employee" +msgstr "E-pos Salarisstrokie aan Werknemer" + +#: payroll/doctype/salary_slip/salary_slip_list.js:5 +msgid "Email Salary Slips" +msgstr "" + +#. Label of a Code field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Email Sent To" +msgstr "E-pos gestuur na" + +#: hr/doctype/leave_application/leave_application.py:648 +msgid "Email sent to {0}" +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "E-pos salarisstrokie aan werknemer gebaseer op voorkeur e-pos gekies in Werknemer" + +#. Name of a role +#. Label of a Card Break in the HR Workspace +#: hr/doctype/appraisal/appraisal.json +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/appraisal_template/appraisal_template.json +#: hr/doctype/attendance_request/attendance_request.json +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hr/doctype/daily_work_summary/daily_work_summary.json +#: hr/doctype/employee_advance/employee_advance.json +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:139 +#: hr/doctype/employee_checkin/employee_checkin.json +#: hr/doctype/employee_grievance/employee_grievance.json +#: hr/doctype/employee_onboarding/employee_onboarding.js:26 +#: hr/doctype/employee_onboarding/employee_onboarding.js:39 +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hr/doctype/employee_promotion/employee_promotion.json +#: hr/doctype/employee_referral/employee_referral.json +#: hr/doctype/employee_separation/employee_separation.js:14 +#: hr/doctype/employee_transfer/employee_transfer.json +#: hr/doctype/expense_claim/expense_claim.json +#: hr/doctype/expense_claim_type/expense_claim_type.json +#: hr/doctype/goal/goal.json hr/doctype/goal/goal_tree.js:33 +#: hr/doctype/goal/goal_tree.js:62 +#: hr/doctype/grievance_type/grievance_type.json +#: hr/doctype/interest/interest.json +#: hr/doctype/leave_application/leave_application.json +#: hr/doctype/leave_control_panel/leave_control_panel.js:162 +#: hr/doctype/leave_encashment/leave_encashment.json +#: hr/doctype/leave_type/leave_type.json +#: hr/doctype/pwa_notification/pwa_notification.json +#: hr/doctype/shift_assignment/shift_assignment.json +#: hr/doctype/shift_request/shift_request.json +#: hr/doctype/shift_type/shift_type.json +#: hr/doctype/training_feedback/training_feedback.json +#: hr/report/appraisal_overview/appraisal_overview.js:24 +#: hr/report/appraisal_overview/appraisal_overview.py:22 +#: hr/report/employee_advance_summary/employee_advance_summary.js:9 +#: hr/report/employee_advance_summary/employee_advance_summary.py:47 +#: hr/report/employee_analytics/employee_analytics.py:30 +#: hr/report/employee_birthday/employee_birthday.py:21 +#: hr/report/employee_exits/employee_exits.js:39 +#: hr/report/employee_exits/employee_exits.py:24 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:31 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:55 +#: hr/report/employee_leave_balance/employee_leave_balance.js:36 +#: hr/report/employee_leave_balance/employee_leave_balance.py:40 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:24 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py:22 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:20 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:88 +#: hr/report/project_profitability/project_profitability.js:37 +#: hr/report/project_profitability/project_profitability.py:142 +#: hr/report/shift_attendance/shift_attendance.js:22 +#: hr/report/shift_attendance/shift_attendance.py:22 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.js:8 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:18 +#: hr/report/vehicle_expenses/vehicle_expenses.js:46 +#: hr/report/vehicle_expenses/vehicle_expenses.py:55 hr/workspace/hr/hr.json +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: payroll/doctype/employee_incentive/employee_incentive.json +#: payroll/doctype/employee_other_income/employee_other_income.json +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: payroll/doctype/retention_bonus/retention_bonus.json +#: payroll/doctype/salary_component/salary_component.json +#: payroll/doctype/salary_slip/salary_slip.json +#: payroll/doctype/salary_structure/salary_structure.js:137 +#: payroll/doctype/salary_structure/salary_structure.js:200 +#: payroll/report/income_tax_computation/income_tax_computation.js:26 +#: payroll/report/income_tax_computation/income_tax_computation.py:481 +#: payroll/report/income_tax_deductions/income_tax_deductions.py:25 +#: payroll/report/professional_tax_deductions/professional_tax_deductions.py:21 +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:20 +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:35 +#: payroll/report/salary_register/salary_register.js:32 +#: payroll/report/salary_register/salary_register.py:116 +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Employee" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Employee" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#. Label of a Section Break field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#. Label of a Tab Break field in DocType 'Employee Tax Exemption Proof +#. Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Employee Detail' +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgctxt "Payroll Employee Detail" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#. Label of a Section Break field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Employee" +msgstr "" + +#: payroll/report/bank_remittance/bank_remittance.py:35 +msgid "Employee A/C Number" +msgstr "A / C nommer van die werknemer" + +#. Name of a DocType +#: hr/doctype/employee_advance/employee_advance.json +msgid "Employee Advance" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a shortcut in the Expense Claims Workspace +#. Label of a Link in the HR Workspace +#: hr/workspace/expense_claims/expense_claims.json hr/workspace/hr/hr.json +msgctxt "Employee Advance" +msgid "Employee Advance" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Employee Advance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_advance_summary/employee_advance_summary.json +#: hr/workspace/expense_claims/expense_claims.json hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "Werknemersvoordeelopsomming" + +#: overrides/company.py:104 +msgid "Employee Advances" +msgstr "" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_analytics/employee_analytics.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employee Attendance Tool" +msgstr "Werknemersbywoningsinstrument" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Employee Attendance Tool" +msgid "Employee Attendance Tool" +msgstr "Werknemersbywoningsinstrument" + +#. Name of a DocType +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Employee Benefit Application" +msgstr "Werknemervoordeel Aansoek" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Benefit Application" +msgid "Employee Benefit Application" +msgstr "Werknemervoordeel Aansoek" + +#. Name of a DocType +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "Werknemervoordeel-aansoekbesonderhede" + +#. Name of a DocType +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Employee Benefit Claim" +msgstr "Werknemersvoordeel-eis" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Benefit Claim" +msgid "Employee Benefit Claim" +msgstr "Werknemersvoordeel-eis" + +#: setup.py:397 +msgid "Employee Benefits" +msgstr "Werknemervoordele" + +#. Label of a Table field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Employee Benefits" +msgstr "Werknemervoordele" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_birthday/employee_birthday.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "Werknemervoordrag" + +#. Name of a DocType +#: hr/doctype/employee_checkin/employee_checkin.json +msgid "Employee Checkin" +msgstr "Werknemer Checkin" + +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Employee Checkin" +msgid "Employee Checkin" +msgstr "Werknemer Checkin" + +#. Name of a DocType +#: payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee Details" +msgstr "Werknemersbesonderhede" + +#. Label of a Section Break field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Employee Details" +msgstr "Werknemersbesonderhede" + +#. Label of a Tab Break field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Employee Details" +msgstr "Werknemersbesonderhede" + +#. Label of a Section Break field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Employee Details" +msgstr "Werknemersbesonderhede" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Employee Details" +msgstr "Werknemersbesonderhede" + +#. Label of a Section Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Employee Details" +msgstr "Werknemersbesonderhede" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Employee Details" +msgstr "Werknemersbesonderhede" + +#. Label of a Small Text field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Employee Emails" +msgstr "Werknemende e-posse" + +#. Label of a Small Text field in DocType 'Training Result' +#: hr/doctype/training_result/training_result.json +msgctxt "Training Result" +msgid "Employee Emails" +msgstr "Werknemende e-posse" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_exits/employee_exits.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Employee Feedback Criteria" +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:132 +msgid "Employee Filters" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_grade/employee_grade.json +#: payroll/doctype/salary_structure/salary_structure.js:136 +msgid "Employee Grade" +msgstr "Werknemersgraad" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Employee Grade" +msgid "Employee Grade" +msgstr "Werknemersgraad" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee Grade" +msgstr "Werknemersgraad" + +#. Label of a Link field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Employee Grade" +msgstr "Werknemersgraad" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Employee Grade" +msgstr "Werknemersgraad" + +#. Label of a Link field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Employee Grade" +msgstr "Werknemersgraad" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Employee Grade" +msgstr "Werknemersgraad" + +#. Name of a DocType +#: hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Grievance" +msgstr "" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a shortcut in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Grievance" +msgid "Employee Grievance" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Employee Group" +msgid "Employee Group" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "Werknemer Gesondheidsversekering" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of a Attach Image field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/employee_incentive/employee_incentive.json +msgid "Employee Incentive" +msgstr "Werknemers aansporing" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Employee Incentive" +msgid "Employee Incentive" +msgstr "Werknemers aansporing" + +#. Label of a Section Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_information/employee_information.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Employee Information" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hr/report/employee_leave_balance/employee_leave_balance.json +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#. Name of a Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Employee Lifecycle" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Employee Lifecycle Dashboard" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:26 +#: hr/report/employee_exits/employee_exits.py:30 +#: hr/report/employee_leave_balance/employee_leave_balance.py:47 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py:23 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:94 +#: hr/report/project_profitability/project_profitability.py:147 +#: hr/report/shift_attendance/shift_attendance.py:31 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:19 +#: payroll/report/bank_remittance/bank_remittance.py:27 +#: payroll/report/income_tax_computation/income_tax_computation.py:488 +#: payroll/report/income_tax_deductions/income_tax_deductions.py:32 +#: payroll/report/professional_tax_deductions/professional_tax_deductions.py:28 +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:27 +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:28 +#: payroll/report/salary_register/salary_register.py:123 +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Payroll Employee Detail' +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgctxt "Payroll Employee Detail" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Employee Name" +msgstr "" + +#. Label of a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee Naming By" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee Number" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Employee Onboarding" +msgstr "Werknemer aan boord" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a shortcut in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Onboarding" +msgid "Employee Onboarding" +msgstr "Werknemer aan boord" + +#. Name of a DocType +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgid "Employee Onboarding Template" +msgstr "Werknemer Aan boord Sjabloon" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee Onboarding Template" +msgstr "Werknemer Aan boord Sjabloon" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Onboarding Template" +msgid "Employee Onboarding Template" +msgstr "Werknemer Aan boord Sjabloon" + +#: hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "Ander werknemers se inkomste" + +#. Name of a DocType +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Linked DocType in Appraisal Cycle's connections +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Employee Performance Feedback" +msgstr "" + +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Employee Performance Feedback" +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion" +msgstr "Werknemersbevordering" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the Performance Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/performance/performance.json +msgctxt "Employee Promotion" +msgid "Employee Promotion" +msgstr "Werknemersbevordering" + +#. Label of a Section Break field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Employee Promotion Details" +msgstr "Werknemersbevorderingsbesonderhede" + +#: hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "Werknemer Eiendomsgeskiedenis" + +#. Name of a DocType +#: hr/doctype/employee_referral/employee_referral.json setup.py:391 +msgid "Employee Referral" +msgstr "Werknemer verwysing" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Employee Referral" +msgid "Employee Referral" +msgstr "Werknemer verwysing" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Employee Referral" +msgstr "Werknemer verwysing" + +#: payroll/doctype/additional_salary/additional_salary.py:102 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Employee Responsible " +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_separation/employee_separation.json +msgid "Employee Separation" +msgstr "Werknemersskeiding" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a shortcut in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Separation" +msgid "Employee Separation" +msgstr "Werknemersskeiding" + +#. Name of a DocType +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgid "Employee Separation Template" +msgstr "Medewerkers skeiding sjabloon" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Employee Separation Template" +msgstr "Medewerkers skeiding sjabloon" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Separation Template" +msgid "Employee Separation Template" +msgstr "Medewerkers skeiding sjabloon" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee Settings" +msgstr "Werknemer instellings" + +#. Name of a DocType +#: hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "Vaardigheid van werknemers" + +#. Name of a DocType +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skill Map" +msgstr "Kaart van werknemersvaardighede" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Skill Map" +msgid "Employee Skill Map" +msgstr "Kaart van werknemersvaardighede" + +#. Label of a Table field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Employee Skills" +msgstr "Werknemervaardighede" + +#: hr/report/employee_exits/employee_exits.py:194 +#: hr/report/employee_leave_balance/employee_leave_balance.js:42 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +msgid "Employee Tax Exemption Category" +msgstr "Werknemersbelastingvrystellingskategorie" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Employee Tax Exemption Declaration" +msgstr "Werknemersbelastingvrystelling Verklaring" + +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Employee Tax Exemption Declaration" +msgstr "Werknemersbelastingvrystelling Verklaring" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "Werknemersbelastingvrystelling Verklaringskategorie" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Employee Tax Exemption Declaration Category" +msgstr "Werknemersbelastingvrystelling Verklaringskategorie" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "Werknemersbelastingvrystelling Bewysvoorlegging" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Employee Tax Exemption Proof Submission" +msgstr "Werknemersbelastingvrystelling Bewysvoorlegging" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "Werknemersbelastingvrystelling Bewysinligtingsbesonderhede" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Employee Tax Exemption Sub Category" +msgstr "Werknemersbelastingvrystelling Subkategorie" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Tax Exemption Sub Category" +msgid "Employee Tax Exemption Sub Category" +msgstr "Werknemersbelastingvrystelling Subkategorie" + +#. Name of a DocType +#: hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "Opleiding van werknemers" + +#. Name of a DocType +#: hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer" +msgstr "Werknemersoordrag" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Transfer" +msgid "Employee Transfer" +msgstr "Werknemersoordrag" + +#. Label of a Table field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Employee Transfer Detail" +msgstr "Werknemersoordragbesonderhede" + +#. Label of a Section Break field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Employee Transfer Details" +msgstr "Werknemersoordragbesonderhede" + +#: hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of a Data field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Employee name" +msgstr "" + +#. Description of a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee records are created using the selected option" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:548 +msgid "Employee relieved on {0} must be set as 'Left'" +msgstr "Werknemer verlig op {0} moet gestel word as 'Links'" + +#: hr/doctype/shift_type/shift_type.py:168 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:161 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:52 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hr/doctype/shift_assignment/shift_assignment.py:116 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:151 +msgid "Employee {0} already submited an apllication {1} for the payroll period {2}" +msgstr "Werknemer {0} het reeds 'n aantekening {1} ingedien vir die betaalperiode {2}" + +#: hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:455 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:25 +msgid "Employee {0} has no maximum benefit amount" +msgstr "Werknemer {0} het geen maksimum voordeelbedrag nie" + +#: hr/doctype/attendance/attendance.py:198 +msgid "Employee {0} is not active or does not exist" +msgstr "Werknemer {0} is nie aktief of bestaan nie" + +#: hr/doctype/attendance/attendance.py:178 +msgid "Employee {0} is on Leave on {1}" +msgstr "Werknemer {0} is op verlof op {1}" + +#: hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hr/doctype/attendance/attendance.py:173 +msgid "Employee {0} on Half day on {1}" +msgstr "Werknemer {0} op Halwe dag op {1}" + +#. Subtitle of the Module Onboarding 'Human Resource' +#: hr/module_onboarding/human_resource/human_resource.json +msgid "Employee, Leaves, and more." +msgstr "" + +#: payroll/doctype/gratuity/gratuity.py:195 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#: hr/dashboard_chart_source/employees_by_age/employees_by_age.py:42 +msgid "Employees" +msgstr "Werknemers" + +#. Label of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Employees" +msgstr "Werknemers" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Employees" +msgstr "Werknemers" + +#. Label of a Table field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Employees" +msgstr "Werknemers" + +#. Label of a Table field in DocType 'Training Result' +#: hr/doctype/training_result/training_result.json +msgctxt "Training Result" +msgid "Employees" +msgstr "Werknemers" + +#. Label of a HTML field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Employees HTML" +msgstr "Werknemers HTML" + +#. Label of a HTML field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Employees HTML" +msgstr "Werknemers HTML" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:31 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.py:79 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:115 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:116 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hr/workspace/leaves/leaves.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "Werknemers wat op vakansie werk" + +#. Name of a DocType +#: hr/doctype/employment_type/employment_type.json +#: templates/generators/job_opening.html:134 +msgid "Employment Type" +msgstr "" + +#. Label of a Data field in DocType 'Employment Type' +#: hr/doctype/employment_type/employment_type.json +msgctxt "Employment Type" +msgid "Employment Type" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Employment Type" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Employment Type" +msgstr "" + +#. Label of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Enable Auto Attendance" +msgstr "Aktiveer outo-bywoning" + +#. Label of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Enable Late Entry Marking" +msgstr "" + +#. Label of a Check field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Enabled" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Encashment" +msgstr "Die betaling" + +#. Label of a Currency field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Encashment Amount" +msgstr "Encashment Bedrag" + +#. Label of a Date field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Encashment Date" +msgstr "" + +#. Label of a Float field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Encashment Days" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:135 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:125 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Encrypt Salary Slips in Emails" +msgstr "Enkripteer salarisstrokies in e-pos" + +#: hr/doctype/attendance/attendance_list.js:58 +msgid "End" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:93 +#: hr/report/project_profitability/project_profitability.js:24 +#: hr/report/project_profitability/project_profitability.py:204 +#: payroll/report/salary_register/salary_register.py:169 +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Period' +#: payroll/doctype/payroll_period/payroll_period.json +msgctxt "Payroll Period" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Period Date' +#: payroll/doctype/payroll_period_date/payroll_period_date.json +msgctxt "Payroll Period Date" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "End Date" +msgstr "" + +#: hr/notification/training_scheduled/training_scheduled.html:34 +#: templates/emails/training_event.html:8 +msgid "End Time" +msgstr "" + +#. Label of a Time field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "End Time" +msgstr "" + +#. Label of a Datetime field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "End Time" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:188 +msgid "End date: {0}" +msgstr "" + +#: hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "Eindtyd kan nie voor die begintyd wees nie" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Energy Point Log" +msgid "Energy Point Log" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Energy Point Rule" +msgid "Energy Point Rule" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Energy Point Settings" +msgid "Energy Point Settings" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hr/workspace/performance/performance.json +msgid "Energy Points" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.js:32 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:136 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#: hr/doctype/goal/goal_list.js:103 hr/doctype/goal/goal_list.js:113 +#: payroll/doctype/additional_salary/additional_salary.py:234 +msgid "Error" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:121 +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:331 +msgid "Error Log" +msgstr "" + +#. Label of a Small Text field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Error Message" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1177 +msgid "Error in formula or condition" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2117 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2196 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of a Currency field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Estimated Cost Per Position" +msgstr "Geskatte koste per posisie" + +#: overrides/dashboard_overrides.py:47 +msgid "Evaluation" +msgstr "evaluering" + +#. Label of a Date field in DocType 'Employee Skill' +#: hr/doctype/employee_skill/employee_skill.json +msgctxt "Employee Skill" +msgid "Evaluation Date" +msgstr "Evalueringsdatum" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Event Details" +msgstr "Gebeurtenisbesonderhede" + +#: hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "Gebeurtenisskakel" + +#: hr/notification/training_scheduled/training_scheduled.html:23 +#: templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "Gebeurtenis Plek" + +#: templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "Gebeurtenis Naam" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Event Name" +msgstr "Gebeurtenis Naam" + +#. Label of a Data field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Event Name" +msgstr "Gebeurtenis Naam" + +#. Label of a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Event Status" +msgstr "Gebeurtenis Status" + +#. Option for a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Every Valid Check-in and Check-out" +msgstr "Elke geldige in- en uitklok" + +#: controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Exam" +msgstr "eksamen" + +#. Label of a Float field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Exchange Rate" +msgstr "" + +#. Label of a Float field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Exchange Rate" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Exchange Rate" +msgstr "" + +#: hr/doctype/attendance/attendance_list.js:78 +msgid "Exclude Holidays" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:111 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Exempted from Income Tax" +msgstr "Vrygestel van inkomstebelasting" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Exempted from Income Tax" +msgstr "Vrygestel van inkomstebelasting" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration +#. Category' +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Exemption Category" +msgstr "Vrystellingskategorie" + +#. Label of a Read Only field in DocType 'Employee Tax Exemption Proof +#. Submission Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Exemption Category" +msgstr "Vrystellingskategorie" + +#. Label of a Tab Break field in DocType 'Employee Tax Exemption Proof +#. Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Exemption Proofs" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration +#. Category' +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Exemption Sub Category" +msgstr "Vrystelling Subkategorie" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission +#. Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Exemption Sub Category" +msgstr "Vrystelling Subkategorie" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: overrides/dashboard_overrides.py:25 +msgid "Exit" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Exit Confirmed" +msgstr "" + +#. Name of a DocType +#: hr/doctype/exit_interview/exit_interview.json +#: hr/report/employee_exits/employee_exits.py:39 +msgid "Exit Interview" +msgstr "" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Exit Interview" +msgid "Exit Interview" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of a Text Editor field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Exit Interview Summary" +msgstr "Uittreksel onderhoudsopsomming" + +#: hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:145 +msgid "Exit Questionnaire" +msgstr "" + +#. Label of a Section Break field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Exit Questionnaire" +msgstr "" + +#: hr/doctype/exit_interview/test_exit_interview.py:108 +#: hr/doctype/exit_interview/test_exit_interview.py:118 +#: hr/doctype/exit_interview/test_exit_interview.py:120 setup.py:472 +#: setup.py:474 setup.py:495 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Exit Questionnaire Web Form" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:112 +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:116 +msgid "Expand All" +msgstr "" + +#. Label of a Rating field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Expected Average Rating" +msgstr "" + +#. Label of a Rating field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Expected Average Rating" +msgstr "" + +#. Label of a Date field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Expected By" +msgstr "" + +#. Label of a Currency field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Expected Compensation" +msgstr "" + +#. Name of a DocType +#: hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Expected Skillset" +msgstr "" + +#: overrides/dashboard_overrides.py:29 +msgid "Expense" +msgstr "" + +#. Label of a Currency field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Expense" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Expense Account" +msgstr "" + +#. Name of a role +#: hr/doctype/employee_advance/employee_advance.json +#: hr/doctype/expense_claim/expense_claim.json +msgid "Expense Approver" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Expense Approver" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "Uitgawe Goedkeuring Verpligte Uitgawe Eis" + +#. Name of a DocType +#. Label of a Card Break in the HR Workspace +#: hr/doctype/employee_advance/employee_advance.js:57 +#: hr/doctype/expense_claim/expense_claim.json +#: hr/doctype/vehicle_log/vehicle_log.js:7 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:20 +#: hr/workspace/hr/hr.json public/js/erpnext/delivery_trip.js:7 +msgid "Expense Claim" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a shortcut in the Expense Claims Workspace +#. Label of a Link in the HR Workspace +#: hr/workspace/expense_claims/expense_claims.json hr/workspace/hr/hr.json +msgctxt "Expense Claim" +msgid "Expense Claim" +msgstr "" + +#. Name of a DocType +#: hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "Koste-eisrekening" + +#. Name of a DocType +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "Koste Eis Voorskot" + +#. Name of a DocType +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "Koste eis Detail" + +#. Name of a DocType +#: hr/doctype/expense_claim_type/expense_claim_type.json +msgid "Expense Claim Type" +msgstr "Koste eis Tipe" + +#. Label of a Link field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Expense Claim Type" +msgstr "Koste eis Tipe" + +#. Label of a Data field in DocType 'Expense Claim Type' +#. Label of a Link in the Expense Claims Workspace +#: hr/doctype/expense_claim_type/expense_claim_type.json +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Expense Claim Type" +msgid "Expense Claim Type" +msgstr "Koste eis Tipe" + +#: hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "Uitgawe Eis vir Voertuiglogboek {0}" + +#: hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "Uitgawe Eis {0} bestaan reeds vir die Voertuiglogboek" + +#. Name of a Workspace +#. Label of a chart in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgid "Expense Claims" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Expense Claims Dashboard" +msgstr "" + +#. Label of a Date field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Expense Date" +msgstr "Uitgawe Datum" + +#. Label of a Section Break field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Expense Proof" +msgstr "Uitgawe Bewys" + +#. Name of a DocType +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "Belasting en heffings" + +#. Label of a Table field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Expense Taxes and Charges" +msgstr "Belasting en heffings" + +#. Label of a Link field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Expense Type" +msgstr "Uitgawe Tipe" + +#. Label of a Table field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Expenses" +msgstr "" + +#. Label of a Tab Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Expenses & Advances" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:32 +msgid "Expire Allocation" +msgstr "Toewysing verval" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "Verval gestuur blare (dae)" + +#: hr/doctype/leave_allocation/leave_allocation_list.js:8 +msgid "Expired" +msgstr "" + +#. Label of a Check field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Expired" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Expired Leave(s)" +msgstr "" + +#. Label of a Small Text field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Explanation" +msgstr "verduideliking" + +#. Label of an action in the Onboarding Step 'HR Settings' +#: hr/onboarding_step/hr_settings/hr_settings.json +msgid "Explore" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:108 +msgid "Export" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:129 +msgid "Exporting..." +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Failed" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:116 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: overrides/company.py:37 +msgid "Failed to delete defaults for country {0}. Please contact support." +msgstr "" + +#: api/__init__.py:589 +msgid "Failed to download Salary Slip PDF" +msgstr "" + +#: hr/doctype/interview/interview.py:119 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: overrides/company.py:52 +msgid "Failed to setup defaults for country {0}. Please contact support." +msgstr "" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:326 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hr/doctype/interview/interview.py:212 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Failure Details" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:14 +#: public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "Feb." + +#: hr/doctype/interview/interview.js:151 +msgid "Feedback" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Feedback" +msgstr "" + +#. Label of a Tab Break field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Feedback" +msgstr "" + +#. Label of a Tab Break field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Feedback" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Feedback" +msgstr "" + +#. Label of a Text field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Feedback" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of a HTML field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Feedback HTML" +msgstr "" + +#. Label of a HTML field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Feedback HTML" +msgstr "" + +#. Label of a Table field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Feedback Ratings" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Feedback Submitted" +msgstr "Terugvoer ingedien" + +#: hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: public/js/performance/performance_feedback.js:117 +msgid "Feedback {0} added successfully" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:64 +#: payroll/doctype/payroll_entry/payroll_entry.js:110 +msgid "Fetching Employees" +msgstr "" + +#. Label of a Data field in DocType 'Employee Property History' +#: hr/doctype/employee_property_history/employee_property_history.json +msgctxt "Employee Property History" +msgid "Field Name" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.js:106 +#: hr/doctype/leave_application/leave_application.js:104 +#: hr/doctype/leave_encashment/leave_encashment.js:28 +msgid "Fill the form and save it" +msgstr "Vul die vorm in en stoor dit" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Filled" +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.js:7 +msgid "Filter Based On" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Filter Employees" +msgstr "" + +#. Label of a HTML field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Filter List" +msgstr "" + +#: www/jobs/index.html:19 +msgid "Filters" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Filters" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Filters" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:57 +#: hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Final Decision" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:57 +#: hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Final Score" +msgstr "" + +#. Option for a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "First Check-in and Last Check-out" +msgstr "Eerste inklok en laaste uitklok" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "First Day" +msgstr "" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "First Name " +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.js:15 +msgid "Fiscal Year" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1310 +msgid "Fiscal Year {0} not found" +msgstr "Fiskale jaar {0} nie gevind nie" + +#. Label of a Card Break in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgid "Fleet Management" +msgstr "" + +#. Name of a role +#: hr/doctype/vehicle_log/vehicle_log.json +msgid "Fleet Manager" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Flexible Benefits" +msgstr "Buigsame Voordele" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Flight" +msgstr "Flight" + +#: hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of a Check field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Follow via Email" +msgstr "Volg via e-pos" + +#: setup.py:324 +msgid "Food" +msgstr "Kos" + +#. Label of a Link field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "For Designation " +msgstr "" + +#: hr/doctype/attendance/attendance_list.js:29 +msgid "For Employee" +msgstr "Vir Werknemer" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "For Employee" +msgstr "Vir Werknemer" + +#. Description of a Float field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +#, python-format +msgctxt "Leave Type" +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of a Code field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Formula" +msgstr "formule" + +#. Label of a Code field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Formula" +msgstr "formule" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Fortnightly" +msgstr "tweeweeklikse" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Fortnightly" +msgstr "tweeweeklikse" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Fortnightly" +msgstr "tweeweeklikse" + +#. Label of a Float field in DocType 'Gratuity Rule Slab' +#: payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgctxt "Gratuity Rule Slab" +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of a Float field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Fraction of Daily Salary for Half Day" +msgstr "Fraksie van die daaglikse salaris vir 'n halwe dag" + +#. Label of a Float field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:193 +msgid "Fractional Cost" +msgstr "" + +#. Label of a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Frequency" +msgstr "" + +#: hr/doctype/leave_block_list/leave_block_list.js:57 +msgid "Friday" +msgstr "" + +#: payroll/report/salary_register/salary_register.js:8 +msgid "From" +msgstr "" + +#. Label of a Currency field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "From Amount" +msgstr "Uit Bedrag" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js:15 +#: hr/report/employee_advance_summary/employee_advance_summary.js:16 +#: hr/report/employee_exits/employee_exits.js:9 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:17 +#: hr/report/employee_leave_balance/employee_leave_balance.js:8 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.js:8 +#: hr/report/shift_attendance/shift_attendance.js:8 +#: hr/report/vehicle_expenses/vehicle_expenses.js:24 +#: payroll/doctype/salary_structure/salary_structure.js:140 +#: payroll/report/bank_remittance/bank_remittance.js:17 +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "From Date" +msgstr "" + +#: hr/doctype/staffing_plan/staffing_plan.py:29 +#: payroll/doctype/salary_structure/salary_structure.js:257 +msgid "From Date cannot be greater than To Date" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:74 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "Vanaf datum {0} kan nie na werknemer se verligting wees nie Datum {1}" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:66 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "Vanaf datum {0} kan nie voor werknemer se aanvangsdatum wees nie {1}" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "From Employee" +msgstr "" + +#. Label of a Time field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "From Time" +msgstr "" + +#. Label of a Link field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "From User" +msgstr "" + +#: hr/utils.py:179 +msgid "From date can not be less than employee's joining date" +msgstr "Vanaf datum kan nie minder wees as werknemer se inskrywingsdatum nie" + +#: payroll/doctype/additional_salary/additional_salary.py:83 +msgid "From date can not be less than employee's joining date." +msgstr "Van datum kan nie minder wees as die aansluitdatum van die werknemer nie." + +#: hr/doctype/leave_type/leave_type.js:31 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#. Label of a Int field in DocType 'Gratuity Rule Slab' +#: payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgctxt "Gratuity Rule Slab" +msgid "From(Year)" +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "Brandstofuitgawes" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:166 +msgid "Fuel Expenses" +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "Brandstofprys" + +#. Label of a Currency field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Fuel Price" +msgstr "Brandstofprys" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "Brandstof Aantal" + +#. Label of a Float field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Fuel Qty" +msgstr "Brandstof Aantal" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Full Name" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Full Name" +msgstr "" + +#. Name of a DocType +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Full and Final Statement" +msgid "Full and Final Settlement" +msgstr "" + +#. Name of a DocType +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hr/report/employee_exits/employee_exits.py:58 +msgid "Full and Final Statement" +msgstr "" + +#: setup.py:380 +msgid "Full-time" +msgstr "Voltyds" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Fully Sponsored" +msgstr "Volledig Sponsored" + +#. Label of a Currency field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Funded Amount" +msgstr "Gefinansierde Bedrag" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Future Income Tax" +msgstr "" + +#: hr/utils.py:177 +msgid "Future dates not allowed" +msgstr "Toekomstige datums nie toegelaat nie" + +#: hr/report/employee_analytics/employee_analytics.py:36 +#: hr/report/employee_birthday/employee_birthday.py:27 +msgid "Gender" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "General Ledger" +msgstr "" + +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:44 +msgid "Get Details From Declaration" +msgstr "Kry besonderhede uit verklaring" + +#: payroll/doctype/payroll_entry/payroll_entry.js:57 +msgid "Get Employees" +msgstr "Kry Werknemers" + +#. Label of a Button field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Get Employees" +msgstr "Kry Werknemers" + +#. Label of a Button field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Get Job Requisitions" +msgstr "" + +#. Label of a Button field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Get Template" +msgstr "Kry Sjabloon" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Gluten Free" +msgstr "Glutenvry" + +#. Name of a DocType +#: hr/doctype/goal/goal.json hr/doctype/goal/goal_tree.js:45 +msgid "Goal" +msgstr "" + +#. Linked DocType in Appraisal Cycle's connections +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Goal" +msgstr "" + +#. Label of a Small Text field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Goal" +msgstr "" + +#. Label of a Data field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hr/doctype/goal/goal.json hr/workspace/performance/performance.json +msgctxt "Goal" +msgid "Goal" +msgstr "" + +#. Label of a Percent field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "Goal Completion (%)" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:55 +#: hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Goal Score (%)" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "Goal Score (weighted)" +msgstr "" + +#: hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hr/doctype/goal/goal_tree.js:295 +msgid "Goal updated successfully" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:130 +msgid "Goals" +msgstr "Doelwitte" + +#. Label of a Table field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Goals" +msgstr "Doelwitte" + +#: hr/doctype/goal/goal_list.js:134 +msgid "Goals updated successfully" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Grade" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Grade" +msgstr "" + +#. Label of a Data field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Grade" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Grand Total" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/gratuity/gratuity.json +#: payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Label of a Tab Break field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Gratuity" +msgstr "" + +#. Label of a Section Break field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Grievance" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Grievance Against" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Grievance Against Party" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Grievance Details" +msgstr "" + +#. Name of a DocType +#: hr/doctype/grievance_type/grievance_type.json +msgid "Grievance Type" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Grievance Type" +msgstr "" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Grievance Type" +msgid "Grievance Type" +msgstr "" + +#: payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: payroll/report/salary_register/salary_register.py:201 +msgid "Gross Pay" +msgstr "Bruto besoldiging" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Gross Pay" +msgstr "Bruto besoldiging" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Gross Year To Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.js:9 +msgid "Group" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:58 +msgid "Group By" +msgstr "" + +#: hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a role +#: hr/doctype/job_opening/job_opening.json +msgid "Guest" +msgstr "gaste" + +#. Name of a Workspace +#: hr/workspace/hr/hr.json +msgid "HR" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a role +#: hr/doctype/appointment_letter/appointment_letter.json +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hr/doctype/appraisal/appraisal.json +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/appraisal_template/appraisal_template.json +#: hr/doctype/attendance/attendance.json +#: hr/doctype/attendance_request/attendance_request.json +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hr/doctype/employee_checkin/employee_checkin.json +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +#: hr/doctype/employee_grade/employee_grade.json +#: hr/doctype/employee_grievance/employee_grievance.json +#: hr/doctype/employee_health_insurance/employee_health_insurance.json +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hr/doctype/employee_promotion/employee_promotion.json +#: hr/doctype/employee_referral/employee_referral.json +#: hr/doctype/employee_transfer/employee_transfer.json +#: hr/doctype/employment_type/employment_type.json +#: hr/doctype/expense_claim/expense_claim.json +#: hr/doctype/expense_claim_type/expense_claim_type.json +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hr/doctype/goal/goal.json hr/doctype/grievance_type/grievance_type.json +#: hr/doctype/interest/interest.json hr/doctype/interview/interview.json +#: hr/doctype/interview_feedback/interview_feedback.json +#: hr/doctype/interview_round/interview_round.json +#: hr/doctype/interview_type/interview_type.json +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +#: hr/doctype/leave_allocation/leave_allocation.json +#: hr/doctype/leave_application/leave_application.json +#: hr/doctype/leave_encashment/leave_encashment.json +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hr/doctype/leave_period/leave_period.json +#: hr/doctype/leave_policy/leave_policy.json +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hr/doctype/leave_type/leave_type.json +#: hr/doctype/shift_assignment/shift_assignment.json +#: hr/doctype/shift_request/shift_request.json +#: hr/doctype/shift_type/shift_type.json hr/doctype/skill/skill.json +#: hr/doctype/staffing_plan/staffing_plan.json +#: hr/doctype/training_event/training_event.json +#: hr/doctype/training_feedback/training_feedback.json +#: hr/doctype/training_program/training_program.json +#: hr/doctype/training_result/training_result.json +#: hr/doctype/upload_attendance/upload_attendance.json +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: payroll/doctype/employee_incentive/employee_incentive.json +#: payroll/doctype/employee_other_income/employee_other_income.json +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: payroll/doctype/gratuity/gratuity.json +#: payroll/doctype/gratuity_rule/gratuity_rule.json +#: payroll/doctype/income_tax_slab/income_tax_slab.json +#: payroll/doctype/payroll_entry/payroll_entry.json +#: payroll/doctype/payroll_period/payroll_period.json +#: payroll/doctype/retention_bonus/retention_bonus.json +#: payroll/doctype/salary_slip/salary_slip.json +#: payroll/doctype/salary_structure/salary_structure.json +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "HR Manager" +msgstr "" + +#. Name of a DocType +#. Title of an Onboarding Step +#: hr/doctype/hr_settings/hr_settings.json +#: hr/onboarding_step/hr_settings/hr_settings.json +msgid "HR Settings" +msgstr "HR instellings" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "HR Settings" +msgid "HR Settings" +msgstr "HR instellings" + +#. Name of a role +#: hr/doctype/appraisal/appraisal.json +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/appraisal_template/appraisal_template.json +#: hr/doctype/attendance/attendance.json +#: hr/doctype/attendance_request/attendance_request.json +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hr/doctype/daily_work_summary/daily_work_summary.json +#: hr/doctype/employee_checkin/employee_checkin.json +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +#: hr/doctype/employee_grade/employee_grade.json +#: hr/doctype/employee_grievance/employee_grievance.json +#: hr/doctype/employee_health_insurance/employee_health_insurance.json +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hr/doctype/employee_promotion/employee_promotion.json +#: hr/doctype/employee_referral/employee_referral.json +#: hr/doctype/employee_transfer/employee_transfer.json +#: hr/doctype/employment_type/employment_type.json +#: hr/doctype/expense_claim/expense_claim.json +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hr/doctype/goal/goal.json hr/doctype/grievance_type/grievance_type.json +#: hr/doctype/interest/interest.json hr/doctype/interview/interview.json +#: hr/doctype/interview_feedback/interview_feedback.json +#: hr/doctype/interview_round/interview_round.json +#: hr/doctype/interview_type/interview_type.json +#: hr/doctype/job_applicant/job_applicant.json +#: hr/doctype/job_applicant_source/job_applicant_source.json +#: hr/doctype/job_offer/job_offer.json hr/doctype/job_opening/job_opening.json +#: hr/doctype/leave_allocation/leave_allocation.json +#: hr/doctype/leave_application/leave_application.json +#: hr/doctype/leave_block_list/leave_block_list.json +#: hr/doctype/leave_control_panel/leave_control_panel.json +#: hr/doctype/leave_encashment/leave_encashment.json +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hr/doctype/leave_period/leave_period.json +#: hr/doctype/leave_policy/leave_policy.json +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hr/doctype/leave_type/leave_type.json hr/doctype/offer_term/offer_term.json +#: hr/doctype/shift_assignment/shift_assignment.json +#: hr/doctype/shift_request/shift_request.json +#: hr/doctype/shift_type/shift_type.json +#: hr/doctype/staffing_plan/staffing_plan.json +#: hr/doctype/upload_attendance/upload_attendance.json +#: payroll/doctype/additional_salary/additional_salary.json +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: payroll/doctype/employee_incentive/employee_incentive.json +#: payroll/doctype/employee_other_income/employee_other_income.json +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: payroll/doctype/gratuity/gratuity.json +#: payroll/doctype/gratuity_rule/gratuity_rule.json +#: payroll/doctype/income_tax_slab/income_tax_slab.json +#: payroll/doctype/payroll_period/payroll_period.json +#: payroll/doctype/retention_bonus/retention_bonus.json +#: payroll/doctype/salary_component/salary_component.json +#: payroll/doctype/salary_slip/salary_slip.json +#: payroll/doctype/salary_structure/salary_structure.json +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "HR User" +msgstr "" + +#. Option for a Select field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "HR-ADS-.YY.-.MM.-" +msgstr "HR-ADS-.YY .-. MM.-" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "HR-APR-.YYYY.-" +msgstr "" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "HR-ATT-.YYYY.-" +msgstr "HR-ATT-.YYYY.-" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "HR-EAD-.YYYY.-" +msgstr "HR-EAD-.YYYY.-" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "HR-EXIT-INT-" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "HR-EXP-.YYYY.-" +msgstr "HR-EXP-.YYYY.-" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "HR-HIREQ-" +msgstr "" + +#. Option for a Select field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "HR-LAL-.YYYY.-" +msgstr "HR-LAL-.YYYY.-" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "HR-LAP-.YYYY.-" +msgstr "HR-LAP-.YYYY.-" + +#. Option for a Select field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "HR-VLOG-.YYYY.-" +msgstr "HR-VLOG-.YYYY.-" + +#: config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Half Day" +msgstr "Halwe dag" + +#. Label of a Check field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Half Day" +msgstr "Halwe dag" + +#. Label of a Check field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Half Day" +msgstr "Halwe dag" + +#. Option for a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Half Day" +msgstr "Halwe dag" + +#. Label of a Check field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Half Day" +msgstr "Halwe dag" + +#. Label of a Date field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Half Day Date" +msgstr "Halfdag Datum" + +#. Label of a Date field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Half Day Date" +msgstr "Halfdag Datum" + +#. Label of a Date field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Half Day Date" +msgstr "Halfdag Datum" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:26 +msgid "Half Day Date is mandatory" +msgstr "Halfdag Datum is verpligtend" + +#: hr/doctype/leave_application/leave_application.py:191 +msgid "Half Day Date should be between From Date and To Date" +msgstr "Halfdag Datum moet tussen Datum en Datum wees" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:30 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "Halfdag Datum moet tussen werk van datum en werk einddatum wees" + +#: hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Half Yearly" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:29 +msgid "Half day date should be in between from date and to date" +msgstr "Die halwe dag moet tussen die datum en die datum wees" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Half-Yearly" +msgstr "" + +#. Label of a Check field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Has Certificate" +msgstr "Het sertifikaat" + +#. Label of a Data field in DocType 'Employee Health Insurance' +#: hr/doctype/employee_health_insurance/employee_health_insurance.json +msgctxt "Employee Health Insurance" +msgid "Health Insurance Name" +msgstr "Gesondheidsversekeringsnaam" + +#: hr/notification/training_feedback/training_feedback.html:1 +msgid "Hello" +msgstr "hallo" + +#. Label of a HTML field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Help" +msgstr "" + +#: controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:44 +msgid "Hiring Count" +msgstr "" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Hiring Settings" +msgstr "Instellings huur" + +#. Label of a chart in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Hiring vs Attrition Count" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Hold" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:1304 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:24 +msgid "Holiday" +msgstr "" + +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.js:22 +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Holiday List" +msgstr "" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Holiday List" +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "Holiday List for Optional Leave" +msgstr "Vakansie Lys vir Opsionele Verlof" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Holidays" +msgstr "" + +#: controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Hour Rate" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Hour Rate" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of a Float field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Hours" +msgstr "" + +#: regional/india/utils.py:182 +msgid "House rent paid days overlapping with {0}" +msgstr "Huis huur betaal dae oorvleuel met {0}" + +#: regional/india/utils.py:160 +msgid "House rented dates required for exemption calculation" +msgstr "Huis gehuurde datums benodig vir vrystelling berekening" + +#: regional/india/utils.py:163 +msgid "House rented dates should be atleast 15 days apart" +msgstr "Huis gehuurde datums moet ten minste 15 dae uitmekaar wees" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:53 +msgid "IFSC" +msgstr "IFSC" + +#: payroll/report/bank_remittance/bank_remittance.py:44 +msgid "IFSC Code" +msgstr "IFSC-kode" + +#. Option for a Select field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "IN" +msgstr "in" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Identification Document Number" +msgstr "Identifikasienommer" + +#. Name of a DocType +#: hr/doctype/identification_document_type/identification_document_type.json +msgid "Identification Document Type" +msgstr "Identifikasiedokument Tipe" + +#. Label of a Data field in DocType 'Identification Document Type' +#: hr/doctype/identification_document_type/identification_document_type.json +msgctxt "Identification Document Type" +msgid "Identification Document Type" +msgstr "Identifikasiedokument Tipe" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Identification Document Type" +msgstr "Identifikasiedokument Tipe" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "As dit gemerk is, verberg en deaktiveer u die veld Afgeronde totaal in salarisstrokies" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "As dit gekontroleer word, sal die volle bedrag van die belasbare inkomste afgetrek word voordat inkomstebelasting bereken word sonder enige verklaring of bewys." + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If checked, then the system will enable the provision to set the opening balance for earnings and deductions till date while creating a Salary Structure Assignment (if any)" +msgstr "" + +#. Description of a Check field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "As dit aangeskakel is, sal belastingvrystellingsverklaring oorweeg word vir die berekening van inkomstebelasting." + +#. Description of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of a Check field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "Indien nie gekontroleer nie, moet die lys by elke Departement gevoeg word waar dit toegepas moet word." + +#. Description of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Indien gekies, sal die waarde wat in hierdie komponent gespesifiseer of bereken word, nie bydra tot die verdienste of aftrekkings nie. Die waarde daarvan kan egter verwys word deur ander komponente wat bygevoeg of afgetrek kan word." + +#. Description of a Date field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of a Section Break field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Import Attendance" +msgstr "Invoer Bywoning" + +#. Label of a HTML field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Import Log" +msgstr "" + +#: hr/doctype/upload_attendance/upload_attendance.js:46 +msgid "Importing {0} of {1}" +msgstr "Voer {0} van {1} in" + +#. Option for a Select field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "In Process" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "In Process" +msgstr "" + +#. Option for a Select field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "In Process" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "In Progress" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "In Progress" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "Betyds" + +#. Label of a Datetime field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "In Time" +msgstr "Betyds" + +#: payroll/doctype/payroll_entry/payroll_entry.py:110 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:41 +msgid "Inactive" +msgstr "" + +#. Option for a Select field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Inactive" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Incentive" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Incentive Amount" +msgstr "Aansporingsbedrag" + +#. Label of a Card Break in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json setup.py:405 +msgid "Incentives" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Include holidays in Total no. of Working Days" +msgstr "Sluit vakansiedae in Totaal nr. van werksdae" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Include holidays within leaves as leaves" +msgstr "Sluit vakansiedae in blare in as blare" + +#. Label of a Section Break field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Income Source" +msgstr "" + +#: payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "Inkomstebelastingbedrag" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Income Tax Breakup" +msgstr "" + +#: payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "Inkomstebelasting-komponent" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: payroll/report/income_tax_computation/income_tax_computation.json +#: payroll/workspace/salary_payout/salary_payout.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/report/income_tax_deductions/income_tax_deductions.json +#: payroll/workspace/salary_payout/salary_payout.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "Inkomstebelastingaftrekkings" + +#. Name of a DocType +#: payroll/doctype/income_tax_slab/income_tax_slab.json +#: payroll/doctype/salary_structure/salary_structure.js:141 +#: payroll/report/income_tax_computation/income_tax_computation.py:509 +msgid "Income Tax Slab" +msgstr "Inkomstebelastingblad" + +#. Label of a Link in the Salary Payout Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/salary_payout/salary_payout.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Income Tax Slab" +msgid "Income Tax Slab" +msgstr "Inkomstebelastingblad" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Income Tax Slab" +msgstr "Inkomstebelastingblad" + +#. Name of a DocType +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "Inkomstebelastingblad Ander heffings" + +#: payroll/doctype/salary_slip/salary_slip.py:1482 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "Inkomstebelastingblad moet van krag wees voor of op die begindatum van die betaalstaatperiode: {0}" + +#: payroll/doctype/salary_slip/salary_slip.py:1471 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "Inkomstebelastingblad word nie in die opdrag van salarisstruktuur gestel nie: {0}" + +#: payroll/doctype/salary_slip/salary_slip.py:1478 +msgid "Income Tax Slab: {0} is disabled" +msgstr "Inkomstebelastingblad: {0} is uitgeskakel" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Income from Other Sources" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:154 +#: hr/doctype/appraisal_template/appraisal_template.py:28 +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:55 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Inspection" +msgstr "inspeksie" + +#: hr/doctype/leave_application/leave_application.py:412 +msgid "Insufficient Balance" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:410 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interest/interest.json +msgid "Interest" +msgstr "" + +#. Label of a Data field in DocType 'Interest' +#: hr/doctype/interest/interest.json +msgctxt "Interest" +msgid "Interest" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Interest Amount" +msgstr "Rente Bedrag" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Interest Income Account" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Intermediate" +msgstr "Intermediêre" + +#: setup.py:386 +msgid "Intern" +msgstr "intern" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "International" +msgstr "internasionale" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Internet" +msgstr "internet" + +#. Name of a DocType +#: hr/doctype/interview/interview.json +#: hr/doctype/job_applicant/job_applicant.js:24 +msgid "Interview" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Interview" +msgid "Interview" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of a Section Break field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interview_feedback/interview_feedback.json +msgid "Interview Feedback" +msgstr "" + +#. Linked DocType in Interview's connections +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Interview Feedback" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Interview Feedback" +msgid "Interview Feedback" +msgstr "" + +#: hr/doctype/interview/test_interview.py:300 +#: hr/doctype/interview/test_interview.py:309 +#: hr/doctype/interview/test_interview.py:311 +#: hr/doctype/interview/test_interview.py:318 setup.py:458 setup.py:460 +#: setup.py:493 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hr/doctype/interview/interview.py:349 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hr/doctype/interview/interview.py:89 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hr/doctype/interview/test_interview.py:284 +#: hr/doctype/interview/test_interview.py:293 +#: hr/doctype/interview/test_interview.py:295 +#: hr/doctype/interview/test_interview.py:317 setup.py:446 setup.py:448 +#: setup.py:489 +msgid "Interview Reminder" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interview_round/interview_round.json +msgid "Interview Round" +msgstr "" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Interview Round" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Interview Round" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Interview Round" +msgid "Interview Round" +msgstr "" + +#. Linked DocType in Interview Type's connections +#: hr/doctype/interview_type/interview_type.json +msgctxt "Interview Type" +msgid "Interview Round" +msgstr "" + +#: hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:51 +#: hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#: hr/doctype/job_applicant/job_applicant.js:65 +msgid "Interview Summary" +msgstr "" + +#. Label of a Text Editor field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Interview Summary" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Interview Summary" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interview_type/interview_type.json +msgid "Interview Type" +msgstr "" + +#. Label of a Link field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Interview Type" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Interview Type" +msgid "Interview Type" +msgstr "" + +#: hr/doctype/interview/interview.py:105 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Name of a DocType +#: hr/doctype/interview/interview.json +#: hr/doctype/interview_feedback/interview_feedback.json +#: hr/doctype/interview_round/interview_round.json +#: hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of a Link field in DocType 'Interview Detail' +#: hr/doctype/interview_detail/interview_detail.json +msgctxt "Interview Detail" +msgid "Interviewer" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Interviewer" +msgstr "" + +#. Label of a Table MultiSelect field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Interviewers" +msgstr "" + +#. Label of a Table field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Interviewers" +msgstr "" + +#. Label of a Table MultiSelect field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a Long Text field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Introduction" +msgstr "" + +#. Label of a Long Text field in DocType 'Appointment Letter Template' +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgctxt "Appointment Letter Template" +msgid "Introduction" +msgstr "" + +#. Label of a Text Editor field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Introduction" +msgstr "" + +#. Option for a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Invalid" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:281 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#. Option for a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Investigated" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Investigation Details" +msgstr "" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Invited" +msgstr "Genooi" + +#. Label of a Data field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Invoice Ref" +msgstr "Faktuur Ref" + +#. Label of a Check field in DocType 'Employee Tax Exemption Category' +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +msgctxt "Employee Tax Exemption Category" +msgid "Is Active" +msgstr "" + +#. Label of a Check field in DocType 'Employee Tax Exemption Sub Category' +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgctxt "Employee Tax Exemption Sub Category" +msgid "Is Active" +msgstr "" + +#. Label of a Check field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "Is Active" +msgstr "" + +#. Label of a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Is Active" +msgstr "" + +#. Label of a Check field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of a Check field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Is Carry Forward" +msgstr "Is vorentoe" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Carry Forward" +msgstr "Is vorentoe" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Compensatory" +msgstr "Is kompensatories" + +#: hr/doctype/leave_type/leave_type.py:40 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Is Default" +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:40 +msgid "Is Earned Leave" +msgstr "Is Verdien Verlof" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Earned Leave" +msgstr "Is Verdien Verlof" + +#. Label of a Check field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Is Expired" +msgstr "Is verval" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Is Flexible Benefit" +msgstr "Is Buigsame Voordeel" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Is Flexible Benefit" +msgstr "Is Buigsame Voordeel" + +#: hr/doctype/goal/goal_tree.js:51 +msgid "Is Group" +msgstr "" + +#. Label of a Check field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Is Group" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Is Income Tax Component" +msgstr "Is inkomstebelasting komponent" + +#. Label of a Check field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Is Leave Without Pay" +msgstr "Is Leave Without Pay" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Leave Without Pay" +msgstr "Is Leave Without Pay" + +#. Label of a Check field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Is Mandatory" +msgstr "" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Optional Leave" +msgstr "Is opsionele verlof" + +#. Label of a Check field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Is Paid" +msgstr "" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of a Check field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Is Recurring" +msgstr "Is herhalend" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Is Tax Applicable" +msgstr "Is Belasting van toepassing" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Is Tax Applicable" +msgstr "Is Belasting van toepassing" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:13 +#: public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "Jan." + +#. Name of a DocType +#: hr/doctype/job_applicant/job_applicant.json +#: hr/report/recruitment_analytics/recruitment_analytics.py:39 +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Job Applicant" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "Job Applikant Bron" + +#: hr/doctype/employee_referral/employee_referral.py:51 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Label of a Data field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Job Application Route" +msgstr "" + +#: setup.py:401 +msgid "Job Description" +msgstr "Pos beskrywing" + +#. Label of a Tab Break field in DocType 'Job Requisition' +#. Label of a Text Editor field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Job Description" +msgstr "Pos beskrywing" + +#. Name of a DocType +#: hr/doctype/job_applicant/job_applicant.js:33 +#: hr/doctype/job_applicant/job_applicant.js:39 +#: hr/doctype/job_offer/job_offer.json +#: hr/report/recruitment_analytics/recruitment_analytics.py:53 +msgid "Job Offer" +msgstr "Werksaanbod" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Job Offer" +msgstr "Werksaanbod" + +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Job Offer" +msgid "Job Offer" +msgstr "Werksaanbod" + +#. Name of a DocType +#: hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "Job Aanbod Termyn" + +#. Name of a DocType +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Job Offer Term Template" +msgstr "" + +#. Label of a Table field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Job Offer Terms" +msgstr "Werkaanbod Terme" + +#: hr/report/recruitment_analytics/recruitment_analytics.py:62 +msgid "Job Offer status" +msgstr "Posaanbodstatus" + +#: hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "Posaanbod: {0} is reeds vir werksaansoeker: {1}" + +#. Name of a DocType +#: hr/doctype/job_opening/job_opening.json +#: hr/doctype/job_requisition/job_requisition.js:40 +#: hr/report/recruitment_analytics/recruitment_analytics.py:32 +msgid "Job Opening" +msgstr "Job Opening" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Job Opening" +msgstr "Job Opening" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Job Opening" +msgstr "Job Opening" + +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Job Opening" +msgid "Job Opening" +msgstr "Job Opening" + +#. Linked DocType in Job Requisition's connections +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Job Opening" +msgstr "Job Opening" + +#: hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#: www/jobs/index.html:2 www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hr/doctype/job_opening/job_opening.py:87 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Name of a DocType +#: hr/doctype/job_requisition/job_requisition.json +msgid "Job Requisition" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Job Requisition" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Job Requisition" +msgid "Job Requisition" +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Label of a Data field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Job Title" +msgstr "" + +#. Description of a Text Editor field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Job profile, qualifications required etc." +msgstr "Werkprofiel, kwalifikasies benodig ens." + +#. Label of a Card Break in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "Jobs" + +#. Option for a Select field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Joining Date" +msgstr "Aansluitingsdatum" + +#. Option for a Select field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Joining Date" +msgstr "Aansluitingsdatum" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Journal Entry" +msgid "Journal Entry" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Journal Entry" +msgstr "" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Journey" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:19 +#: public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "Julie" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:18 +#: public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "Junie" + +#. Name of a DocType +#: hr/doctype/goal/goal_tree.js:136 hr/doctype/kra/kra.json +msgid "KRA" +msgstr "KRA" + +#. Label of a Link field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "KRA" +msgstr "KRA" + +#. Label of a Link field in DocType 'Appraisal Template Goal' +#: hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgctxt "Appraisal Template Goal" +msgid "KRA" +msgstr "KRA" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "KRA" +msgstr "KRA" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "KRA" +msgid "KRA" +msgstr "KRA" + +#. Label of a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "KRA Evaluation Method" +msgstr "" + +#: hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of a Table field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "KRA vs Goals" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:140 +#: hr/doctype/appraisal_template/appraisal_template.py:23 +msgid "KRAs" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "KRAs" +msgstr "" + +#. Label of a Table field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "KRAs" +msgstr "" + +#. Description of a Link field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "Key Performance Area" +msgstr "Sleutelprestasie-area" + +#. Label of a Card Break in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Key Reports" +msgstr "" + +#. Description of a Small Text field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Key Responsibility Area" +msgstr "Sleutelverantwoordelikheidsgebied" + +#. Description of a Link field in DocType 'Appraisal Template Goal' +#: hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgctxt "Appraisal Template Goal" +msgid "Key Result Area" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Last Day" +msgstr "" + +#. Description of a Datetime field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "Laaste bekende suksesvolle sinkronisering van werknemerverslag Herstel dit slegs as u seker is dat alle logboeke vanaf al die liggings gesinkroniseer is. Moet dit asseblief nie verander as u onseker is nie." + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Last Name" +msgstr "" + +#. Label of a Int field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Last Odometer Value " +msgstr "" + +#. Label of a Datetime field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Last Sync of Checkin" +msgstr "Laaste synchronisasie van Checkin" + +#: hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "Laat ingang" + +#. Label of a Check field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Late Entry" +msgstr "Laat ingang" + +#. Label of a Check field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Late Entry" +msgstr "Laat ingang" + +#. Label of a Section Break field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Late Entry Grace Period" +msgstr "Genade tydperk vir laat ingang" + +#: overrides/dashboard_overrides.py:12 +msgid "Leave" +msgstr "Verlaat" + +#. Option for a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Leave" +msgstr "Verlaat" + +#. Name of a DocType +#: hr/doctype/leave_allocation/leave_allocation.json +msgid "Leave Allocation" +msgstr "Verlof toekenning" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Leave Allocation" +msgstr "Verlof toekenning" + +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Allocation" +msgid "Leave Allocation" +msgstr "Verlof toekenning" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Leave Allocation" +msgstr "Verlof toekenning" + +#. Label of a Section Break field in DocType 'Leave Policy' +#: hr/doctype/leave_policy/leave_policy.json +msgctxt "Leave Policy" +msgid "Leave Allocations" +msgstr "Verlof toekennings" + +#. Name of a DocType +#: hr/doctype/leave_application/leave_application.json +msgid "Leave Application" +msgstr "Los aansoek" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Leave Application" +msgstr "Los aansoek" + +#. Label of a Link in the HR Workspace +#. Label of a shortcut in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgctxt "Leave Application" +msgid "Leave Application" +msgstr "Los aansoek" + +#: hr/doctype/leave_application/leave_application.py:705 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: setup.py:423 setup.py:425 setup.py:485 +msgid "Leave Approval Notification" +msgstr "Laat Goedkeuring Kennisgewing" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Leave Approval Notification Template" +msgstr "Verlaat goedkeuringskennisgewingsjabloon" + +#. Name of a role +#: hr/doctype/leave_application/leave_application.json +msgid "Leave Approver" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Leave Approver" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Leave Approver Mandatory In Leave Application" +msgstr "Verlaat Goedkeuring Verpligtend In Verlof Aansoek" + +#. Label of a Data field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Leave Approver Name" +msgstr "Verlaat Goedgekeur Naam" + +#. Label of a Float field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Leave Balance" +msgstr "Verlofbalans" + +#. Label of a Float field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Leave Balance Before Application" +msgstr "Verlaatbalans voor aansoek" + +#. Name of a DocType +#: hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List" +msgstr "" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Block List" +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "Laat blokblokkering toe" + +#. Label of a Table field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Leave Block List Allowed" +msgstr "Laat blokkie lys toegelaat" + +#. Name of a DocType +#: hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "Laat blokkie lys datum" + +#. Label of a Table field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Leave Block List Dates" +msgstr "Los blokkie lys datums" + +#. Label of a Data field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Leave Block List Name" +msgstr "Verlaat bloklys naam" + +#: hr/doctype/leave_application/leave_application.py:1281 +msgid "Leave Blocked" +msgstr "Verlaat geblokkeer" + +#. Name of a DocType +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Leave Control Panel" +msgstr "Verlaat beheerpaneel" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Control Panel" +msgid "Leave Control Panel" +msgstr "Verlaat beheerpaneel" + +#. Label of a Table field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#: hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Encashment" +msgstr "Verlaat Encashment" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Encashment" +msgid "Leave Encashment" +msgstr "Verlaat Encashment" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Leave Encashment Amount Per Day" +msgstr "Verlof Encashment Bedrag per dag" + +#. Name of a DocType +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgid "Leave Ledger Entry" +msgstr "Verlaat Grootboekinskrywing" + +#. Name of a DocType +#: hr/doctype/leave_period/leave_period.json +msgid "Leave Period" +msgstr "Verlofperiode" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Leave Period" +msgstr "Verlofperiode" + +#. Option for a Select field in DocType 'Leave Control Panel' +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Leave Period" +msgstr "Verlofperiode" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Leave Period" +msgstr "Verlofperiode" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Period" +msgid "Leave Period" +msgstr "Verlofperiode" + +#. Option for a Select field in DocType 'Leave Policy Assignment' +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Leave Period" +msgstr "Verlofperiode" + +#. Name of a DocType +#: hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy" +msgstr "Verlofbeleid" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Leave Policy" +msgstr "Verlofbeleid" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Leave Policy" +msgstr "Verlofbeleid" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Policy" +msgid "Leave Policy" +msgstr "Verlofbeleid" + +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Leave Policy" +msgstr "Verlofbeleid" + +#. Name of a DocType +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leave Policy Assignment" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Leave Policy Assignment" +msgstr "" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Policy Assignment" +msgid "Leave Policy Assignment" +msgstr "" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:63 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "Verlaat beleidsdetail" + +#. Label of a Table field in DocType 'Leave Policy' +#: hr/doctype/leave_policy/leave_policy.json +msgctxt "Leave Policy" +msgid "Leave Policy Details" +msgstr "Verlaat beleidsbesonderhede" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:57 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: setup.py:432 setup.py:434 setup.py:486 +msgid "Leave Status Notification" +msgstr "Verlofstatus kennisgewing" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Leave Status Notification Template" +msgstr "Verstek Status Notifikasie Sjabloon" + +#. Name of a DocType +#: hr/doctype/leave_type/leave_type.json +#: hr/report/employee_leave_balance/employee_leave_balance.py:33 +msgid "Leave Type" +msgstr "Verlaat Tipe" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Leave Type" +msgstr "Verlaat Tipe" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Leave Type" +msgstr "Verlaat Tipe" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Leave Type" +msgstr "Verlaat Tipe" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Leave Type" +msgstr "Verlaat Tipe" + +#. Label of a Link field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Leave Type" +msgstr "Verlaat Tipe" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Leave Type" +msgstr "Verlaat Tipe" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Leave Type" +msgstr "Verlaat Tipe" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Leave Type" +msgstr "Verlaat Tipe" + +#. Label of a Link field in DocType 'Leave Policy Detail' +#: hr/doctype/leave_policy_detail/leave_policy_detail.json +msgctxt "Leave Policy Detail" +msgid "Leave Type" +msgstr "Verlaat Tipe" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Type" +msgid "Leave Type" +msgstr "Verlaat Tipe" + +#. Label of a Link field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Leave Type" +msgstr "Verlaat Tipe" + +#. Label of a Data field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Leave Type Name" +msgstr "Verlaat tipe naam" + +#: hr/doctype/leave_type/leave_type.py:33 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:45 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:35 +msgid "Leave Type is madatory" +msgstr "Verlof Tipe is madatory" + +#: hr/doctype/leave_allocation/leave_allocation.py:183 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "Verlof tipe {0} kan nie toegeken word nie aangesien dit verlof is sonder betaling" + +#: hr/doctype/leave_allocation/leave_allocation.py:395 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "Verlof tipe {0} kan nie deurstuur word nie" + +#: hr/doctype/leave_encashment/leave_encashment.py:101 +msgid "Leave Type {0} is not encashable" +msgstr "Verlof tipe {0} is nie opsluitbaar nie" + +#: payroll/report/salary_register/salary_register.py:175 setup.py:372 +#: setup.py:373 +msgid "Leave Without Pay" +msgstr "Los sonder betaling" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Leave Without Pay" +msgstr "Los sonder betaling" + +#: payroll/doctype/salary_slip/salary_slip.py:460 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "Verlof sonder betaling stem nie ooreen met goedgekeurde {} rekords nie" + +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.py:42 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:26 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "Verlof-aansoek word gekoppel aan verlof-toekennings {0}. Verlof aansoek kan nie as verlof sonder betaling opgestel word nie" + +#: hr/doctype/leave_allocation/leave_allocation.py:223 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Verlof kan nie voor {0} toegeken word nie, aangesien verlofbalans reeds in die toekomstige verlofrekordrekord {1} oorgedra is." + +#: hr/doctype/leave_application/leave_application.py:245 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Verlof kan nie voor {0} toegepas / gekanselleer word nie, aangesien verlofbalans reeds in die toekomstige verlofrekordrekord {1} oorgedra is." + +#: hr/doctype/leave_application/leave_application.py:482 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:72 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:66 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#: hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgid "Leaves" +msgstr "blare" + +#. Label of a Float field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Leaves" +msgstr "blare" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Leaves" +msgstr "blare" + +#. Label of a Check field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Leaves Allocated" +msgstr "Blare toegeken" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:76 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: setup.py:403 +msgid "Leaves per Year" +msgstr "Blare per jaar" + +#: hr/doctype/leave_type/leave_type.js:26 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave request. Click" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:49 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +msgid "Left" +msgstr "" + +#. Label of a Int field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Left" +msgstr "" + +#. Title of the Module Onboarding 'Human Resource' +#: hr/module_onboarding/human_resource/human_resource.json +msgid "Let's Set Up the Human Resource Module. " +msgstr "" + +#. Title of the Module Onboarding 'Payroll' +#: payroll/module_onboarding/payroll/payroll.json +msgid "Let's Set Up the Payroll Module. " +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Letter Head" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Letter Head" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Letter Head" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Letter Head" +msgstr "" + +#. Label of a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Level" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "License Plate" +msgstr "" + +#: overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "Lewens siklus" + +#: hr/doctype/goal/goal_tree.js:99 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#. Description of a Section Break field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Loan" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Loan Account" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Loan Product" +msgstr "" + +#: payroll/report/salary_register/salary_register.py:223 +msgid "Loan Repayment" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Loan Repayment Entry" +msgstr "Terugbetaling van lenings" + +#: hr/utils.py:702 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:33 +#: templates/generators/job_opening.html:61 +msgid "Location" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Location" +msgstr "" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Location" +msgstr "" + +#. Label of a Data field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Location / Device ID" +msgstr "Ligging / toestel-ID" + +#. Label of a Check field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Lodging Required" +msgstr "Akkommodasie benodig" + +#. Label of a Select field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Log Type" +msgstr "Logtipe" + +#: hr/doctype/employee_checkin/employee_checkin.py:50 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "Logtipe is nodig vir die insae wat in die skof val: {0}." + +#. Label of a Currency field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Lower Range" +msgstr "" + +#. Label of a Currency field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Lower Range" +msgstr "" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:54 +msgid "MICR" +msgstr "MICR" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:31 +msgid "Make" +msgstr "" + +#. Label of a Read Only field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Make" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:161 +msgid "Make Bank Entry" +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:186 +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:193 +#: hr/doctype/goal/goal.js:88 +msgid "Mandatory" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:187 +msgid "Mandatory fields required in {0}" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Manual Rating" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:15 +#: public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "Mrt" + +#: hr/doctype/attendance/attendance_list.js:17 +#: hr/doctype/attendance/attendance_list.js:25 +#: hr/doctype/attendance/attendance_list.js:128 +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:173 +#: hr/doctype/shift_type/shift_type.js:7 +msgid "Mark Attendance" +msgstr "Puntbywoning" + +#. Label of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:48 +#: hr/doctype/employee_onboarding/employee_onboarding.js:48 +#: hr/doctype/goal/goal_tree.js:262 +msgid "Mark as Completed" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:52 +msgid "Mark as In Progress" +msgstr "" + +#: hr/doctype/interview/interview.py:75 +msgid "Mark as {0}" +msgstr "" + +#: hr/doctype/attendance/attendance_list.js:102 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "Merk bywoning gebaseer op 'Werknemer-aanmelding' vir werknemers wat aan hierdie skof toegewys is." + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:204 +msgid "Mark the cycle as {0} if required." +msgstr "" + +#: hr/doctype/goal/goal_tree.js:269 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hr/doctype/goal/goal_list.js:84 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Marked Attendance" +msgstr "Gemerkte Bywoning" + +#. Label of a HTML field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Marked Attendance HTML" +msgstr "Gemerkte Bywoning HTML" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:215 +msgid "Marking Attendance" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#. Label of a Card Break in the Salary Payout Workspace +#: hr/workspace/performance/performance.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Masters" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Max Amount Eligible" +msgstr "Maksimum Bedrag" + +#. Label of a Currency field in DocType 'Employee Benefit Application Detail' +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgctxt "Employee Benefit Application Detail" +msgid "Max Benefit Amount" +msgstr "Maksimum Voordeelbedrag" + +#. Label of a Currency field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Max Benefit Amount (Yearly)" +msgstr "Maksimum Voordeelbedrag (Jaarliks)" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Max Benefits (Amount)" +msgstr "Maksimum Voordele (Bedrag)" + +#. Label of a Currency field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Max Benefits (Yearly)" +msgstr "Maksimum Voordele (Jaarliks)" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Category' +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +msgctxt "Employee Tax Exemption Category" +msgid "Max Exemption Amount" +msgstr "Maksimum vrystellingsbedrag" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Sub Category' +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgctxt "Employee Tax Exemption Sub Category" +msgid "Max Exemption Amount" +msgstr "Maksimum vrystellingsbedrag" + +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "Maksimum vrystellingsbedrag mag nie groter wees as die maksimum vrystellingsbedrag {0} van die belastingvrystellingskategorie {1}" + +#. Label of a Currency field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Max Taxable Income" +msgstr "Maksimum belasbare inkomste" + +#: payroll/doctype/salary_structure/salary_structure.py:147 +msgid "Max benefits should be greater than zero to dispense benefits" +msgstr "Maksimum voordele moet groter as nul wees om voordele te verdeel" + +#. Label of a Float field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Max working hours against Timesheet" +msgstr "Maksimum werksure teen Timesheet" + +#. Label of a Float field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Maximum Carry Forwarded Leaves" +msgstr "Maksimum draadjies wat deur gestuur word" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:490 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Declaration +#. Category' +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Maximum Exempted Amount" +msgstr "Maksimum vrygestelde bedrag" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Proof +#. Submission Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Maximum Exemption Amount" +msgstr "Maksimum vrystellingsbedrag" + +#. Label of a Float field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Maximum Leave Allocation Allowed" +msgstr "" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:65 +msgid "Maximum amount eligible for the component {0} exceeds {1}" +msgstr "Die maksimum bedrag wat in aanmerking kom vir die komponent {0}, oorskry {1}" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:139 +msgid "Maximum benefit amount of component {0} exceeds {1}" +msgstr "Maksimum voordeelbedrag van komponent {0} oorskry {1}" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:119 +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:54 +msgid "Maximum benefit amount of employee {0} exceeds {1}" +msgstr "Maksimum voordeelbedrag van werknemer {0} oorskry {1}" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:85 +msgid "Maximum benefit of employee {0} exceeds {1} by the sum {2} of benefit application pro-rata component amount and previous claimed amount" +msgstr "" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:46 +msgid "Maximum benefit of employee {0} exceeds {1} by the sum {2} of previous claimed amount" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:122 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "Maksimum verlof toegelaat in die verlof tipe {0} is {1}" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:17 +#: public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "Mei" + +#. Label of a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Meal Preference" +msgstr "Maaltydvoorkeur" + +#: setup.py:325 +msgid "Medical" +msgstr "Medies" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1388 +msgid "Message" +msgstr "" + +#. Label of a Text Editor field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Message" +msgstr "" + +#. Label of a Text Editor field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "Message" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Mileage" +msgstr "kilometers" + +#. Label of a Currency field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Min Taxable Income" +msgstr "Min Belasbare Inkomste" + +#. Label of a Int field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Minimum Year for Gratuity" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:200 +msgid "Missing Fields" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:29 +msgid "Missing Relieving Date" +msgstr "" + +#. Label of a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Mode Of Payment" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Mode of Payment" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Mode of Payment" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Mode of Payment" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Mode of Payment" +msgstr "" + +#. Label of a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Mode of Travel" +msgstr "Reismodus" + +#: hr/doctype/expense_claim/expense_claim.py:287 +msgid "Mode of payment is required to make a payment" +msgstr "Betaalmetode is nodig om betaling te maak" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:32 +msgid "Model" +msgstr "" + +#. Label of a Read Only field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Model" +msgstr "" + +#: hr/doctype/leave_block_list/leave_block_list.js:37 +msgid "Monday" +msgstr "" + +#: hr/report/employee_birthday/employee_birthday.js:8 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:9 +#: public/js/salary_slip_deductions_report_filters.js:15 +msgid "Month" +msgstr "" + +#. Option for a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Month" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Month To Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Monthly" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "Maandelikse Bywoningsblad" + +#: hr/page/team_updates/team_updates.js:25 +msgid "More" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "More Info" +msgstr "" + +#. Label of a Tab Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "More Info" +msgstr "" + +#: hr/utils.py:262 +msgid "More than one selection for {0} not allowed" +msgstr "Meer as een keuse vir {0} word nie toegelaat nie" + +#: payroll/doctype/additional_salary/additional_salary.py:231 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hr/doctype/shift_assignment/shift_assignment.py:65 +msgid "Multiple Shift Assignments" +msgstr "" + +#: www/jobs/index.py:11 +msgid "My Account" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.js:167 +#: hr/report/employee_analytics/employee_analytics.py:31 +#: hr/report/employee_birthday/employee_birthday.py:22 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:21 +msgid "Name" +msgstr "" + +#. Label of a Data field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Name" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1163 +#: payroll/doctype/salary_slip/salary_slip.py:2112 +msgid "Name error" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Name of Organizer" +msgstr "Naam van die organiseerder" + +#. Label of a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Naming Series" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Naming Series" +msgstr "" + +#. Label of a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Naming Series" +msgstr "" + +#: payroll/report/salary_register/salary_register.py:237 +msgid "Net Pay" +msgstr "Netto salaris" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Net Pay" +msgstr "Netto salaris" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Net Pay" +msgstr "Netto salaris" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Net Pay Info" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:181 +msgid "Net Pay cannot be less than 0" +msgstr "Netto betaal kan nie minder as 0 wees nie" + +#: payroll/report/bank_remittance/bank_remittance.py:50 +msgid "Net Salary Amount" +msgstr "Netto salarisbedrag" + +#: payroll/doctype/salary_structure/salary_structure.py:78 +msgid "Net pay cannot be negative" +msgstr "Netto salaris kan nie negatief wees nie" + +#: hr/employee_property_update.js:86 hr/employee_property_update.js:129 +msgid "New" +msgstr "" + +#. Label of a Data field in DocType 'Employee Property History' +#: hr/doctype/employee_property_history/employee_property_history.json +msgctxt "Employee Property History" +msgid "New" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "New Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "New Employee ID" +msgstr "Nuwe werknemer ID" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:60 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "New Leaves Allocated" +msgstr "Nuwe blare toegeken" + +#. Label of a Float field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "New Leaves Allocated (In Days)" +msgstr "Nuwe blare toegeken (in dae)" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "No" +msgstr "" + +#: payroll/doctype/gratuity/gratuity.py:310 +msgid "No Applicable Component is present in last month salary slip" +msgstr "" + +#: payroll/doctype/gratuity/gratuity.py:283 +msgid "No Applicable Earnings Component found for Gratuity Rule: {0}" +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:122 +#: hr/doctype/leave_control_panel/leave_control_panel.js:144 +msgid "No Data" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:224 +msgid "No Employee Found" +msgstr "Geen werknemer gevind nie" + +#: hr/doctype/employee_checkin/employee_checkin.py:96 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "Geen werknemer gevind vir die gegewe werknemer se veldwaarde nie. '{}': {}" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "No Employees Selected" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:145 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "Geen blare word aan werknemer toegeken nie: {0} vir verloftipe: {1}" + +#: payroll/doctype/gratuity/gratuity.py:297 +msgid "No Salary Slip is found for Employee: {0}" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:30 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "Geen personeelplanne vir hierdie aanwysing gevind nie" + +#: payroll/doctype/gratuity/gratuity.py:270 +msgid "No Suitable Slab found for Calculation of gratuity amount in Gratuity Rule: {0}" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:380 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "Geen aktiewe of standaard Salarestruktuur vir werknemer {0} vir die gegewe datums gevind nie" + +#: hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "Geen addisionele uitgawes is bygevoeg nie" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:45 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:37 +msgid "No attendance records found." +msgstr "" + +#: hr/doctype/interview/interview.py:89 +msgid "No changes found in timings." +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:33 +msgid "No employee(s) selected" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:189 +msgid "No employees found" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:172 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: payroll/report/income_tax_computation/income_tax_computation.py:70 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: hr/doctype/goal/goal_list.js:97 +msgid "No items selected" +msgstr "" + +#: hr/doctype/attendance/attendance.py:184 +msgid "No leave record found for employee {0} on {1}" +msgstr "Geen verlofrekord gevind vir werknemer {0} op {1}" + +#: hr/page/team_updates/team_updates.js:44 +msgid "No more updates" +msgstr "Geen verdere opdaterings nie" + +#. Label of a Int field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "No of. Positions" +msgstr "" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:17 +msgid "No record found" +msgstr "" + +#: hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "Geen antwoorde van" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1404 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "Geen salarisstrokie gevind vir die bogenoemde geselekteerde kriteria OF salarisstrokie wat reeds ingedien is nie" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Non Diary" +msgstr "Nie Dagboek" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Non Taxable Earnings" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:255 +msgid "Non-Billed Hours" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:76 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Non-Vegetarian" +msgstr "Nie-Vegetaries" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:28 +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:206 hr/doctype/goal/goal.py:67 +#: hr/doctype/goal/goal.py:71 hr/doctype/goal/goal.py:76 +#: hr/doctype/interview/interview.py:27 +#: hr/doctype/job_applicant/job_applicant.py:49 +#: hr/doctype/leave_allocation/leave_allocation.py:145 +#: hr/doctype/leave_type/leave_type.py:42 +#: hr/doctype/leave_type/leave_type.py:45 +msgid "Not Allowed" +msgstr "" + +#: utils/hierarchy_chart.py:15 +msgid "Not Permitted" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Not Started" +msgstr "" + +#. Description of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:154 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Notes" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Notes" +msgstr "" + +#: hr/employee_property_update.js:146 +msgid "Nothing to change" +msgstr "Niks om te verander nie" + +#: setup.py:404 +msgid "Notice Period" +msgstr "Kennis tydperk" + +#. Label of a Check field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Notify users by email" +msgstr "Stel gebruikers per e-pos in kennis" + +#. Label of a Check field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Notify users by email" +msgstr "Stel gebruikers per e-pos in kennis" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:23 +#: public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "Nov." + +#. Label of a Int field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Number Of Employees" +msgstr "Aantal werknemers" + +#. Label of a Int field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Number Of Positions" +msgstr "Aantal posisies" + +#. Description of a Float field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#. Option for a Select field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "OUT" +msgstr "UIT" + +#. Label of a Rating field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Obtained Average Rating" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:22 +#: public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "Okt." + +#. Label of a Section Break field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Odometer Reading" +msgstr "Odometer Reading" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hr/report/recruitment_analytics/recruitment_analytics.py:60 +msgid "Offer Date" +msgstr "" + +#. Label of a Date field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Offer Date" +msgstr "" + +#. Name of a DocType +#: hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "Aanbod Termyn" + +#. Label of a Link field in DocType 'Job Offer Term' +#: hr/doctype/job_offer_term/job_offer_term.json +msgctxt "Job Offer Term" +msgid "Offer Term" +msgstr "Aanbod Termyn" + +#. Label of a Data field in DocType 'Offer Term' +#: hr/doctype/offer_term/offer_term.json +msgctxt "Offer Term" +msgid "Offer Term" +msgstr "Aanbod Termyn" + +#. Label of a Table field in DocType 'Job Offer Term Template' +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +msgctxt "Job Offer Term Template" +msgid "Offer Terms" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Old Parent" +msgstr "" + +#: hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "Op datum" + +#. Option for a Select field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "On Duty" +msgstr "Op diens" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "On Hold" +msgstr "" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "On Leave" +msgstr "Op verlof" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Onboarding" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Onboarding Activities" +msgstr "" + +#. Label of a Date field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Onboarding Begins On" +msgstr "" + +#: hr/doctype/shift_request/shift_request.py:78 +msgid "Only Approvers can Approve this Request." +msgstr "Slegs kandidate kan hierdie versoek goedkeur." + +#: hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hr/doctype/interview/interview.py:331 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "Slegs verlof aansoeke met status 'Goedgekeur' en 'Afgekeur' kan ingedien word" + +#: hr/doctype/shift_request/shift_request.py:32 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "Slegs skuifversoek met die status 'Goedgekeur' en 'Afgewys' kan ingedien word" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Only Tax Impact (Cannot Claim But Part of Taxable Income)" +msgstr "Slegs Belasting Impak (Kan nie eis nie, maar deel van Belasbare inkomste)" + +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.py:21 +msgid "Only expired allocation can be cancelled" +msgstr "Slegs vervalste toekenning kan gekanselleer word" + +#: hr/doctype/interview/interview.js:69 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:174 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "Slegs gebruikers met die {0} -rol kan verouderde verloftoepassings skep" + +#: hr/doctype/goal/goal_list.js:115 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Open & Approved" +msgstr "" + +#: hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:54 +msgid "Opening Balance" +msgstr "" + +#: templates/generators/job_opening.html:34 +msgid "Opening closed." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:558 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "Opsionele vakansie lys nie vasgestel vir verlofperiode nie {0}" + +#: hr/doctype/leave_type/leave_type.js:21 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Other Details" +msgstr "" + +#. Label of a Small Text field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Other Details" +msgstr "" + +#. Label of a Text field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Other Details" +msgstr "" + +#. Label of a Card Break in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Other Reports" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Other Settings" +msgstr "" + +#. Label of a Table field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Other Taxes and Charges" +msgstr "Ander belastings en heffings" + +#: setup.py:326 +msgid "Others" +msgstr "ander" + +#: hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "Uittyd" + +#. Label of a Datetime field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Out Time" +msgstr "Uittyd" + +#. Description of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Out of 5" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:23 +msgid "Outstanding Amount" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:284 +msgid "Over Allocation" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:60 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hr/doctype/attendance/attendance.py:118 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hr/doctype/shift_assignment/shift_assignment.py:123 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Overview" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Overview" +msgstr "" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Overview" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Overview" +msgstr "" + +#. Label of a Check field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Overwrite Salary Structure Amount" +msgstr "Oorskryf Salarisstruktuurbedrag" + +#. Option for a Select field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Owned" +msgstr "" + +#: payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "PAN-nommer" + +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:31 +msgid "PF Account" +msgstr "PF-rekening" + +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:32 +msgid "PF Amount" +msgstr "PF bedrag" + +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:39 +msgid "PF Loan" +msgstr "PF-lening" + +#. Name of a DocType +#: hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Paid" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Paid" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Paid" +msgstr "" + +#. Option for a Select field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Paid" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Paid" +msgstr "" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:67 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Paid Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Paid Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Paid Amount" +msgstr "" + +#. Label of a Check field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Paid via Salary Slip" +msgstr "" + +#: hr/report/employee_analytics/employee_analytics.js:17 +msgid "Parameter" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Parent Goal" +msgstr "" + +#: setup.py:381 +msgid "Part-time" +msgstr "Deeltyds" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:125 +msgid "Partial Success" +msgstr "" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Partially Sponsored, Require Partial Funding" +msgstr "Gedeeltelik geborg, vereis gedeeltelike befondsing" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Passport Number" +msgstr "" + +#. Label of a Data field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Password Policy" +msgstr "Wagwoordbeleid" + +#: payroll/doctype/payroll_settings/payroll_settings.js:24 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "Wagwoordbeleid kan nie spasies of gelyktydige koppeltekens bevat nie. Die formaat sal outomaties herstruktureer word" + +#: payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "Wagwoordbeleid vir Salarisstrokies is nie ingestel nie" + +#. Label of a Check field in DocType 'Employee Benefit Application Detail' +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgctxt "Employee Benefit Application Detail" +msgid "Pay Against Benefit Claim" +msgstr "Betaal teen voordeel eis" + +#. Label of a Check field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Pay Against Benefit Claim" +msgstr "Betaal teen voordeel eis" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Pay Against Benefit Claim" +msgstr "Betaal teen voordeel eis" + +#. Label of a Check field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Pay via Salary Slip" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Payable Account" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Payable Account" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:100 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Payables" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.js:47 +#: hr/doctype/expense_claim/expense_claim.js:234 +#: hr/doctype/expense_claim/expense_claim_dashboard.py:9 +#: payroll/doctype/gratuity/gratuity_dashboard.py:10 +msgid "Payment" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Payment Account" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Payment Account" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:415 +msgid "Payment Account is mandatory" +msgstr "Betaalrekening is verpligtend" + +#: payroll/report/bank_remittance/bank_remittance.py:25 +msgid "Payment Date" +msgstr "" + +#: payroll/report/salary_register/salary_register.py:181 +msgid "Payment Days" +msgstr "Betalingsdae" + +#. Label of a Float field in DocType 'Salary Slip' +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payment Days" +msgstr "Betalingsdae" + +#. Label of a HTML field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payment Days Calculation Help" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:101 +msgid "Payment Days Dependency" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Payment Entry" +msgid "Payment Entry" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Payment Entry" +msgstr "" + +#. Label of a Tab Break field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Payment and Accounting" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:979 +msgid "Payment of {0} from {1} to {2}" +msgstr "Betaling van {0} van {1} na {2}" + +#. Name of a Workspace +#. Label of a Card Break in the Salary Payout Workspace +#: overrides/dashboard_overrides.py:32 overrides/dashboard_overrides.py:74 +#: payroll/workspace/payroll/payroll.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Payroll" +msgstr "betaalstaat" + +#. Label of a Section Break field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Payroll" +msgstr "betaalstaat" + +#. Label of a Section Break field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a Date field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Payroll Date" +msgstr "Betaaldatum" + +#. Label of a Date field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Payroll Date" +msgstr "Betaaldatum" + +#. Label of a Date field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Payroll Date" +msgstr "Betaaldatum" + +#. Name of a DocType +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "Betaalstaat Werknemer Detail" + +#. Name of a DocType +#: payroll/doctype/payroll_entry/payroll_entry.json +msgid "Payroll Entry" +msgstr "" + +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Salary Payout Workspace +#. Label of a shortcut in the Salary Payout Workspace +#: payroll/workspace/payroll/payroll.json +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Payroll Entry" +msgid "Payroll Entry" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payroll Entry" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:108 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Payroll Frequency" +msgstr "Payroll Frequency" + +#. Label of a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payroll Frequency" +msgstr "Payroll Frequency" + +#. Label of a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Payroll Frequency" +msgstr "Payroll Frequency" + +#. Label of a Section Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payroll Info" +msgstr "" + +#: payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "Betaalnommer" + +#: overrides/company.py:97 +#: patches/post_install/updates_for_multi_currency_payroll.py:68 +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:113 +msgid "Payroll Payable" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:138 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Payroll Payable Account" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Payroll Payable Account" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/payroll_period/payroll_period.json +#: payroll/report/income_tax_computation/income_tax_computation.js:18 +msgid "Payroll Period" +msgstr "Loonstaat Periode" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Payroll Period" +msgstr "Loonstaat Periode" + +#. Label of a Link field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Payroll Period" +msgstr "Loonstaat Periode" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Payroll Period" +msgstr "Loonstaat Periode" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Payroll Period" +msgstr "Loonstaat Periode" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Payroll Period" +msgid "Payroll Period" +msgstr "Loonstaat Periode" + +#. Name of a DocType +#: payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "Betaalstaat Periode Datum" + +#. Label of a Section Break field in DocType 'Payroll Period' +#. Label of a Table field in DocType 'Payroll Period' +#: payroll/doctype/payroll_period/payroll_period.json +msgctxt "Payroll Period" +msgid "Payroll Periods" +msgstr "Payroll Periods" + +#. Label of a Card Break in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Payroll Reports" +msgstr "" + +#. Name of a DocType +#. Title of an Onboarding Step +#: payroll/doctype/payroll_settings/payroll_settings.json +#: payroll/onboarding_step/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "Loonstaatinstellings" + +#. Label of a Link in the Payroll Workspace +#: payroll/workspace/payroll/payroll.json +msgctxt "Payroll Settings" +msgid "Payroll Settings" +msgstr "Loonstaatinstellings" + +#: payroll/doctype/additional_salary/additional_salary.py:89 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "Die betaaldatum kan nie langer wees as die werkdag se aflosdatum nie." + +#: payroll/doctype/additional_salary/additional_salary.py:81 +msgid "Payroll date can not be less than employee's joining date." +msgstr "Die betaalstaatdatum kan nie minder wees as die aansluitdatum van die werknemer nie." + +#. Option for a Select field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Pending" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Pending Amount" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of a Percent field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Percent" +msgstr "persent" + +#. Label of a Percent field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "Percent Deduction" +msgstr "Persent aftrekking" + +#. Label of a Int field in DocType 'Employee Cost Center' +#: payroll/doctype/employee_cost_center/employee_cost_center.json +msgctxt "Employee Cost Center" +msgid "Percentage (%)" +msgstr "" + +#. Name of a Workspace +#: hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Phone Number" +msgstr "" + +#: setup.py:385 +msgid "Piecework" +msgstr "stukwerk" + +#. Label of a Int field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Planned number of Positions" +msgstr "Beplande aantal posisies" + +#: hr/doctype/shift_type/shift_type.js:11 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:94 +msgid "Please add the remaining benefits {0} to any of the existing component" +msgstr "Voeg asseblief die oorblywende voordele {0} by enige van die bestaande komponente by" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:106 +msgid "Please add the remaining benefits {0} to the application as pro-rata component" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:729 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "Bevestig asseblief as jy jou opleiding voltooi het" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hr/doctype/employee_transfer/employee_transfer.py:57 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "Aktiveer asseblief die standaard inkomende rekening voordat u 'n Daaglikse werkopsommingsgroep skep" + +#: hr/doctype/staffing_plan/staffing_plan.js:98 +msgid "Please enter the designation" +msgstr "Voer die benaming in" + +#: hr/doctype/staffing_plan/staffing_plan.py:224 +msgid "Please select Company and Designation" +msgstr "Kies asseblief Maatskappy en Aanwysing" + +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "Kies asseblief Werknemer" + +#: hr/doctype/department_approver/department_approver.py:19 +#: hr/employee_property_update.js:47 +msgid "Please select Employee first." +msgstr "Kies eers Werknemer." + +#: hr/utils.py:696 +msgid "Please select a Company" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_mobile.js:229 +msgid "Please select a company first" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:95 +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:290 +msgid "Please select a company first." +msgstr "" + +#: hr/doctype/upload_attendance/upload_attendance.py:174 +msgid "Please select a csv file" +msgstr "Kies asseblief 'n CSV-lêer" + +#: hr/doctype/attendance/attendance.py:308 +msgid "Please select a date." +msgstr "" + +#: hr/utils.py:693 +msgid "Please select an Applicant" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.js:16 +msgid "Please select employee first" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:33 +msgid "Please select month and year." +msgstr "" + +#: hr/doctype/goal/goal.js:87 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:192 +msgid "Please select the attendance status." +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:185 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip_list.js:7 +msgid "Please select the salary slips to email" +msgstr "" + +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:19 +msgid "Please select {0}" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:271 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:49 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:444 +msgid "Please set Payroll based on in Payroll settings" +msgstr "Stel Payroll in volgens die Payroll-instellings" + +#: payroll/doctype/gratuity/gratuity.py:152 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.py:172 +#: hr/doctype/employee_advance/employee_advance.py:276 +msgid "Please set a Default Cash Account in Company defaults" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:297 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:612 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "Stel asb. Standaard sjabloon vir verlofgoedkeuring kennisgewing in MH-instellings in." + +#: hr/doctype/leave_application/leave_application.py:588 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "Stel asb. Standaard sjabloon vir verlofstatus kennisgewing in MH-instellings in." + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.js:41 +msgid "Please set the Company" +msgstr "Stel asseblief die Maatskappy in" + +#: payroll/doctype/salary_slip/salary_slip.py:251 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "Stel asseblief die datum van aansluiting vir werknemer {0}" + +#: controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.js:17 +#: hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:124 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:25 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hr/doctype/department_approver/department_approver.py:86 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hr/doctype/shift_type/shift_type.js:16 +#: hr/doctype/shift_type/shift_type.js:21 +msgid "Please set {0}." +msgstr "" + +#: overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "Stel asseblief 'n naamstelsel vir werknemers in vir menslike hulpbronne> HR-instellings" + +#: hr/doctype/upload_attendance/upload_attendance.py:161 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "Stel nommeringreekse op vir bywoning via Setup> Numbering Series" + +#: hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "Deel asseblief u terugvoering aan die opleiding deur op 'Training Feedback' te klik en dan 'New'" + +#: hr/doctype/interview/interview.py:198 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "Dateer asseblief u status op vir hierdie opleidingsgebeurtenis" + +#. Label of a Datetime field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Posted On" +msgstr "" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:60 +#: payroll/report/income_tax_deductions/income_tax_deductions.py:60 +#: www/jobs/index.html:93 +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Posting date" +msgstr "" + +#. Label of a Data field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Preferred Area for Lodging" +msgstr "Voorkeurarea vir Akkommodasie" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Present" +msgstr "teenwoordig" + +#. Option for a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Present" +msgstr "teenwoordig" + +#. Option for a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Present" +msgstr "teenwoordig" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Present" +msgstr "teenwoordig" + +#: hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:110 +#: payroll/doctype/salary_structure/salary_structure.js:197 +msgid "Preview Salary Slip" +msgstr "Preview Salary Slip" + +#. Label of a Currency field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Principal Amount" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Print Heading" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Printing Details" +msgstr "" + +#: setup.py:364 setup.py:365 +msgid "Privilege Leave" +msgstr "Privilege Verlof" + +#: setup.py:382 +msgid "Probation" +msgstr "Proef" + +#: setup.py:396 +msgid "Probationary Period" +msgstr "Proeftydperk" + +#. Label of a Date field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Process Attendance After" +msgstr "Prosesbywoning na" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Professional Tax Deductions" +msgstr "Professionele belastingaftrekkings" + +#. Label of a Rating field in DocType 'Employee Skill' +#: hr/doctype/employee_skill/employee_skill.json +msgctxt "Employee Skill" +msgid "Proficiency" +msgstr "vaardigheid" + +#: hr/report/project_profitability/project_profitability.py:185 +msgid "Profit" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:78 +msgid "Progress" +msgstr "" + +#. Label of a Percent field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Progress" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.js:31 +#: hr/doctype/employee_separation/employee_separation.js:19 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:43 +#: hr/report/project_profitability/project_profitability.js:43 +#: hr/report/project_profitability/project_profitability.py:164 +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Project" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/project_profitability/project_profitability.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of a Date field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Promotion Date" +msgstr "Bevorderingsdatum" + +#. Label of a Data field in DocType 'Employee Property History' +#: hr/doctype/employee_property_history/employee_property_history.json +msgctxt "Employee Property History" +msgid "Property" +msgstr "eiendom" + +#: hr/employee_property_update.js:142 +msgid "Property already added" +msgstr "Eiendom is reeds bygevoeg" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Provident Fund Deductions" +msgstr "Voorsieningsfondsaftrekkings" + +#. Label of a Check field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Publish Salary Range" +msgstr "" + +#. Label of a Check field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Publish on website" +msgstr "Publiseer op die webwerf" + +#. Label of a Small Text field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Purpose" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#: hr/doctype/purpose_of_travel/purpose_of_travel.json +msgid "Purpose of Travel" +msgstr "Doel van reis" + +#. Label of a Data field in DocType 'Purpose of Travel' +#. Label of a Link in the Expense Claims Workspace +#: hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Purpose of Travel" +msgid "Purpose of Travel" +msgstr "Doel van reis" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Purpose of Travel" +msgstr "Doel van reis" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Quarterly" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Quarterly" +msgstr "" + +#. Label of a Check field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Questionnaire Email Sent" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Queued" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Quick Filters" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: payroll/workspace/payroll/payroll.json +msgid "Quick Links" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Raised By" +msgstr "" + +#. Label of a Float field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Rate" +msgstr "" + +#. Label of a Check field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Rate Goals Manually" +msgstr "" + +#: hr/doctype/interview/interview.js:191 +msgid "Rating" +msgstr "" + +#. Label of a Rating field in DocType 'Employee Feedback Rating' +#: hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgctxt "Employee Feedback Rating" +msgid "Rating" +msgstr "" + +#. Label of a Rating field in DocType 'Skill Assessment' +#: hr/doctype/skill_assessment/skill_assessment.json +msgctxt "Skill Assessment" +msgid "Rating" +msgstr "" + +#. Label of a Table field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Rating Criteria" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Ratings" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Ratings" +msgstr "" + +#. Label of a Check field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Re-allocate Leaves" +msgstr "Herlei toekennings" + +#. Label of a Check field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "Read" +msgstr "" + +#. Label of a Section Break field in DocType 'Attendance Request' +#. Label of a Select field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Reason" +msgstr "" + +#. Label of a Small Text field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Reason" +msgstr "" + +#. Label of a Small Text field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Reason" +msgstr "" + +#. Label of a Text field in DocType 'Leave Block List Date' +#: hr/doctype/leave_block_list_date/leave_block_list_date.json +msgctxt "Leave Block List Date" +msgid "Reason" +msgstr "" + +#. Label of a Text field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Reason for Requesting" +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:251 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Receivables" +msgstr "" + +#. Name of a Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hr/report/recruitment_analytics/recruitment_analytics.json +#: hr/workspace/hr/hr.json hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "Werwingsanalise" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Recruitment Dashboard" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim_dashboard.py:10 +#: hr/doctype/leave_allocation/leave_allocation.py:207 +msgid "Reference" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Reference" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Reference Document" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Full and Final Outstanding +#. Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Reference Document" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Reference Document Name" +msgstr "" + +#. Label of a Data field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "Reference Document Name" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Reference Document Type" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Reference Document Type" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Reference Document Type" +msgstr "" + +#. Label of a Link field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "Reference Document Type" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:486 +#: payroll/doctype/additional_salary/additional_salary.py:136 +msgid "Reference: {0}" +msgstr "" + +#. Label of a Section Break field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "References" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "References" +msgstr "" + +#. Label of a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referral Details" +msgstr "" + +#. Label of a Link field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referrer" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referrer Details" +msgstr "" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referrer Name" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Reflections" +msgstr "" + +#. Label of a Section Break field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Refuelling Details" +msgstr "Aanwending besonderhede" + +#: hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Rejected" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:26 +#: hr/report/employee_exits/employee_exits.py:37 +msgid "Relieving Date" +msgstr "" + +#. Label of a Date field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Relieving Date" +msgstr "" + +#. Label of a Date field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Relieving Date " +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.js:19 +#: hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Remaining Benefits (Yearly)" +msgstr "Resterende Voordele (Jaarliks)" + +#. Label of a Small Text field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Remark" +msgstr "" + +#. Label of a Small Text field in DocType 'Full and Final Outstanding +#. Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Remark" +msgstr "" + +#. Label of a Text field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Remarks" +msgstr "" + +#. Label of a Time field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Remind Before" +msgstr "Herinner Voor" + +#. Label of a Check field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Reminded" +msgstr "herinner" + +#. Label of a Section Break field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Reminder" +msgstr "herinnering" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Reminders" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Rented Car" +msgstr "Huurde motor" + +#: hr/doctype/goal/goal.js:61 +msgid "Reopen" +msgstr "" + +#: hr/utils.py:708 +msgid "Repay From Salary can be selected only for term loans" +msgstr "Terugbetaling uit salaris kan slegs vir termynlenings gekies word" + +#. Label of a Check field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Replied" +msgstr "" + +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "antwoorde" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#. Label of a Card Break in the Expense Claims Workspace +#. Label of a Card Break in the Leaves Workspace +#. Label of a Card Break in the Performance Workspace +#. Label of a Card Break in the Recruitment Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Card Break in the Tax & Benefits Workspace +#: hr/doctype/leave_application/leave_application_dashboard.py:8 +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/expense_claims/expense_claims.json +#: hr/workspace/leaves/leaves.json hr/workspace/performance/performance.json +#: hr/workspace/recruitment/recruitment.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Reports" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:45 +#: hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Reports To" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Reports To" +msgstr "" + +#. Label of a Link field in DocType 'Job Requisition' +#. Label of a Section Break field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Requested By" +msgstr "" + +#. Label of a Data field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Requested By (Name)" +msgstr "" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Require Full Funding" +msgstr "Vereis Volledige Befondsing" + +#. Label of a Check field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Required for Employee Creation" +msgstr "Benodig vir die skep van werknemers" + +#: hr/doctype/interview/interview.js:29 +msgid "Reschedule Interview" +msgstr "" + +#. Label of a Date field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Resignation Letter Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Resolution Date" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Grievance' +#. Label of a Small Text field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Resolution Details" +msgstr "" + +#. Option for a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Resolved" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Resolved By" +msgstr "" + +#: setup.py:402 +msgid "Responsibilities" +msgstr "verantwoordelikhede" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Restrict Backdated Leave Application" +msgstr "" + +#: hr/doctype/interview/interview.js:145 +msgid "Result" +msgstr "gevolg" + +#. Label of a Select field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Result" +msgstr "gevolg" + +#. Label of a Attach field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Resume" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Resume" +msgstr "" + +#. Label of a Attach field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Resume Attachment" +msgstr "Hersien aanhangsel" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Resume Link" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Resume Link" +msgstr "" + +#. Label of a Data field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Resume link" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/retention_bonus/retention_bonus.json +msgid "Retention Bonus" +msgstr "Retensie Bonus" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Retention Bonus" +msgid "Retention Bonus" +msgstr "Retensie Bonus" + +#. Label of a Data field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Retirement Age (In Years)" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.js:70 +msgid "Return" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.py:126 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Returned" +msgstr "" + +#. Option for a Select field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Returned" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Returned Amount" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.js:37 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Reviewer" +msgstr "" + +#. Label of a Data field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Reviewer Name" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Revised CTC" +msgstr "" + +#. Label of a Int field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Right" +msgstr "" + +#. Label of a Link field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Role" +msgstr "Rol" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "Die rol wat toegelaat word om 'n aansoek om verouderde verlof te skep" + +#. Label of a Data field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Round Name" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Round off Work Experience" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Round to the Nearest Integer" +msgstr "Rond tot die naaste heelgetal" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Rounded Total" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Rounded Total (Company Currency)" +msgstr "" + +#. Label of a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Rounding" +msgstr "afronding" + +#. Label of a Data field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Route" +msgstr "" + +#. Description of a Data field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:71 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "Ry # {0}: kan nie bedrag of formule vir salariskomponent {1} stel met veranderlikes gebaseer op belasbare salaris nie" + +#: payroll/doctype/salary_structure/salary_structure.py:90 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:116 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:580 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:347 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "Ry {0} # Toegewysde hoeveelheid {1} kan nie groter wees as onopgeëiste bedrag nie {2}" + +#: payroll/doctype/gratuity/gratuity.py:127 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.py:121 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "Ry {0} # Betaalbedrag kan nie groter wees as gevraagde voorskotbedrag nie" + +#: payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:133 +msgid "Row {0}: Goal Score cannot be greater than 5" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip_loan_utils.py:54 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:280 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "Ry {0}: {1} word in die uitgawetabel vereis om 'n uitgaweis te bespreek." + +#. Label of a Section Break field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Rules" +msgstr "" + +#. Label of a Section Break field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Salary" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_component/salary_component.json +msgid "Salary Component" +msgstr "Salaris Komponent" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Salary Component" +msgstr "Salaris Komponent" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Salary Component" +msgstr "Salaris Komponent" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Salary Component" +msgstr "Salaris Komponent" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Salary Component" +msgstr "Salaris Komponent" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Salary Component" +msgid "Salary Component" +msgstr "Salaris Komponent" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Salary Component" +msgstr "Salaris Komponent" + +#. Label of a Link field in DocType 'Gratuity Applicable Component' +#: payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgctxt "Gratuity Applicable Component" +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "Salaris Komponentrekening" + +#. Label of a Data field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Salary Component Type" +msgstr "Salaris Komponent Tipe" + +#. Description of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Salary Component for timesheet based payroll." +msgstr "Salaris Komponent vir tydlaar-gebaseerde betaalstaat." + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Salary Currency" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "Salarisdetail" + +#. Label of a Section Break field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Salary Details" +msgstr "Salaris Besonderhede" + +#. Label of a Section Break field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Salary Expectation" +msgstr "" + +#. Label of a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Salary Payments Based On Payment Mode" +msgstr "Salarisbetalings gebaseer op betalingsmodus" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Salary Payments via ECS" +msgstr "Salarisbetalings via ECS" + +#. Name of a Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Salary Payout" +msgstr "" + +#: templates/generators/job_opening.html:103 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a shortcut in the Payroll Workspace +#. Label of a Link in the Salary Payout Workspace +#. Label of a shortcut in the Salary Payout Workspace +#: payroll/report/salary_register/salary_register.json +#: payroll/workspace/payroll/payroll.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Salary Register" +msgstr "Salarisregister" + +#. Name of a DocType +#: payroll/doctype/salary_slip/salary_slip.json +msgid "Salary Slip" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Salary Slip" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Salary Slip" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Salary Slip" +msgstr "" + +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Salary Payout Workspace +#. Label of a shortcut in the Salary Payout Workspace +#: payroll/workspace/payroll/payroll.json +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Salary Slip" +msgid "Salary Slip" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Salary Slip Based on Timesheet" +msgstr "Salarisstrokie gebaseer op tydsopgawe" + +#. Label of a Check field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Salary Slip Based on Timesheet" +msgstr "Salarisstrokie gebaseer op tydsopgawe" + +#. Label of a Check field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Salary Slip Based on Timesheet" +msgstr "Salarisstrokie gebaseer op tydsopgawe" + +#: payroll/report/salary_register/salary_register.py:109 +msgid "Salary Slip ID" +msgstr "Salaris Slip ID" + +#. Name of a DocType +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "Salaris Slip Lening" + +#. Name of a DocType +#: payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "Salaris Slip Timesheet" + +#. Label of a Table field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Salary Slip Timesheet" +msgstr "Salaris Slip Timesheet" + +#: payroll/doctype/payroll_entry/payroll_entry.py:84 +msgid "Salary Slip already exists for {0}" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:230 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:285 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "Salaris Slip van werknemer {0} wat reeds vir hierdie tydperk geskep is" + +#: payroll/doctype/salary_slip/salary_slip.py:291 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "Salaris Slip van werknemer {0} reeds geskep vir tydskrif {1}" + +#: payroll/doctype/payroll_entry/payroll_entry.py:275 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1343 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:95 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Salary Slips Created" +msgstr "Salarisstrokies geskep" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Salary Slips Submitted" +msgstr "Salarisstrokies ingedien" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1385 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1410 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Structure" +msgstr "Salarisstruktuur" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Salary Structure" +msgstr "Salarisstruktuur" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Salary Structure" +msgid "Salary Structure" +msgstr "Salarisstruktuur" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Salary Structure" +msgstr "Salarisstruktuur" + +#. Name of a DocType +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Salary Structure Assignment" +msgstr "Salarisstruktuuropdrag" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Salary Structure Assignment" +msgid "Salary Structure Assignment" +msgstr "Salarisstruktuuropdrag" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:62 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "Salarisstruktuuropdrag vir Werknemer bestaan reeds" + +#: payroll/doctype/salary_slip/salary_slip.py:383 +msgid "Salary Structure Missing" +msgstr "Salarisstruktuur ontbreek" + +#: regional/india/utils.py:30 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:349 +msgid "Salary Structure not found for employee {0} and date {1}" +msgstr "Salarisstruktuur nie gevind vir werknemer {0} en datum {1}" + +#: payroll/doctype/salary_structure/salary_structure.py:156 +msgid "Salary Structure should have flexible benefit component(s) to dispense benefit amount" +msgstr "Salarisstruktuur moet buigsame voordeelkomponent (e) hê om die voordeelbedrag te verdeel" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:330 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "Salaris wat reeds vir die tydperk tussen {0} en {1} verwerk is, kan die verlengde aansoekperiode nie tussen hierdie datumreeks wees nie." + +#. Description of a Tab Break field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Salary breakup based on Earning and Deduction." +msgstr "Salarisuitval gebaseer op verdienste en aftrekking." + +#. Description of a Table MultiSelect field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2265 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Subtitle of the Module Onboarding 'Payroll' +#: payroll/module_onboarding/payroll/payroll.json +msgid "Salary, Compensation, and more." +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:150 +msgid "Sales Invoice" +msgstr "" + +#: hr/doctype/expense_claim_type/expense_claim_type.py:22 +msgid "Same Company is entered more than once" +msgstr "" + +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:21 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Sanctioned Amount" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:369 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "Gekonfekteerde bedrag kan nie groter wees as eisbedrag in ry {0} nie." + +#: hr/doctype/leave_block_list/leave_block_list.js:62 +msgid "Saturday" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Scheduled" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Scheduled" +msgstr "" + +#. Option for a Select field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Scheduled" +msgstr "" + +#. Label of a Date field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Scheduled On" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Score (0-5)" +msgstr "Telling (0-5)" + +#. Label of a Float field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Score Earned" +msgstr "Telling verdien" + +#: hr/doctype/appraisal/appraisal.js:124 +msgid "Score must be less than or equal to 5" +msgstr "Die telling moet minder as of gelyk wees aan 5" + +#: hr/doctype/appraisal/appraisal.js:96 +msgid "Scores" +msgstr "" + +#: www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:78 +#: public/js/hierarchy_chart/hierarchy_chart_mobile.js:69 +msgid "Select Company" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Select Employees" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Select Employees" +msgstr "" + +#: hr/doctype/interview/interview.js:206 +msgid "Select Interview Round First" +msgstr "" + +#: hr/doctype/interview_feedback/interview_feedback.js:50 +msgid "Select Interview first" +msgstr "" + +#. Description of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Select Payment Account to make Bank Entry" +msgstr "Kies Betaalrekening om Bankinskrywing te maak" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1544 +msgid "Select Payroll Frequency." +msgstr "" + +#: hr/employee_property_update.js:84 +msgid "Select Property" +msgstr "Kies Eiendom" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Select Terms and Conditions" +msgstr "Kies Terme en Voorwaardes" + +#. Label of a Section Break field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Select Users" +msgstr "Kies gebruikers" + +#: hr/doctype/expense_claim/expense_claim.js:370 +msgid "Select an employee to get the employee advance." +msgstr "Kies 'n werknemer om die werknemer vooraf te kry." + +#: hr/doctype/leave_allocation/leave_allocation.js:116 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:247 +msgid "Select the Employee." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:121 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:131 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:126 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:262 +msgid "Select the end date for your Leave Application." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:257 +msgid "Select the start date for your Leave Application." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:252 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:272 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Self Appraisal" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Self Appraisal" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:114 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:56 +#: hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Self-Study" +msgstr "Selfstudie" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Seminar" +msgstr "seminaar" + +#. Label of a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Send Emails At" +msgstr "Stuur e-pos aan" + +#: hr/doctype/exit_interview/exit_interview.js:7 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Send Interview Reminder" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Send Leave Notification" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Sender" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Sender" +msgstr "" + +#. Label of a Data field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Sender Email" +msgstr "" + +#. Label of a Data field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Sender Email" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Sent" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:21 +#: public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "Sep." + +#. Label of a Section Break field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Separation Activities" +msgstr "" + +#. Label of a Date field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Separation Begins On" +msgstr "" + +#. Label of a Select field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Series" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Service" +msgstr "" + +#. Label of a Section Break field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Service Details" +msgstr "Diensbesonderhede" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "Diensuitgawes" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:169 +msgid "Service Expenses" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Service Item" +msgstr "Diens Item" + +#. Label of a Data field in DocType 'Vehicle Service Item' +#: hr/doctype/vehicle_service_item/vehicle_service_item.json +msgctxt "Vehicle Service Item" +msgid "Service Item" +msgstr "Diens Item" + +#. Description of a Table field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Set Attendance Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Set Leave Details" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:54 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Set attendance details for the employees select above" +msgstr "" + +#. Description of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:490 +msgid "Set the default account for the {0} {1}" +msgstr "Stel die standaardrekening vir die {0} {1}" + +#. Label of a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of a Section Break field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#. Label of a Card Break in the HR Workspace +#. Label of a Card Break in the Payroll Workspace +#: hr/workspace/hr/hr.json payroll/workspace/payroll/payroll.json +msgid "Settings" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Settings" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:129 +msgid "Settings Missing" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:35 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#. Option for a Select field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Settled" +msgstr "" + +#. Label of a Card Break in the HR Workspace +#. Label of a Card Break in the Leaves Workspace +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgid "Setup" +msgstr "" + +#: hr/utils.py:656 +msgid "Shared with the user {0} with {1} access" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:141 +#: hr/report/shift_attendance/shift_attendance.py:36 +#: hr/report/shift_attendance/shift_attendance.py:205 +#: overrides/dashboard_overrides.py:28 +msgid "Shift" +msgstr "verskuiwing" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Shift" +msgstr "verskuiwing" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Shift" +msgstr "verskuiwing" + +#. Label of a Link field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Shift" +msgstr "verskuiwing" + +#. Label of a Link field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift" +msgstr "verskuiwing" + +#. Name of a Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift Actual End" +msgstr "Wissel werklike einde" + +#: hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift Actual Start" +msgstr "Skuif die werklike begin" + +#: hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#: hr/doctype/shift_assignment/shift_assignment.json +msgid "Shift Assignment" +msgstr "Shift Opdrag" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Shift Assignment" +msgid "Shift Assignment" +msgstr "Shift Opdrag" + +#: hr/doctype/shift_request/shift_request.py:47 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "Skoftoewysing: {0} geskep vir werknemer: {1}" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/shift_attendance/shift_attendance.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift End" +msgstr "Shift End" + +#: hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Name of a DocType +#: hr/doctype/shift_request/shift_request.json +msgid "Shift Request" +msgstr "Verskuiwing Versoek" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Shift Request" +msgstr "Verskuiwing Versoek" + +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Shift Request" +msgid "Shift Request" +msgstr "Verskuiwing Versoek" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Shift Settings" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift Start" +msgstr "Skof begin" + +#: hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Name of a DocType +#: hr/doctype/shift_type/shift_type.json +#: hr/report/shift_attendance/shift_attendance.js:28 +msgid "Shift Type" +msgstr "Shift Type" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Shift Type" +msgstr "Shift Type" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Shift Type" +msgstr "Shift Type" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Shift Type" +msgid "Shift Type" +msgstr "Shift Type" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "" + +#: hr/doctype/job_offer/job_offer.js:48 +msgid "Show Employee" +msgstr "Wys Werknemer" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "Toon blare van alle Departementslede in die Jaarboek" + +#: payroll/doctype/salary_structure/salary_structure.js:207 +msgid "Show Salary Slip" +msgstr "Toon Salary Slip" + +#. Label of an action in the Onboarding Step 'Create Employee' +#. Label of an action in the Onboarding Step 'Create Holiday List' +#. Label of an action in the Onboarding Step 'Create Leave Allocation' +#. Label of an action in the Onboarding Step 'Create Leave Application' +#. Label of an action in the Onboarding Step 'Create Leave Type' +#: hr/onboarding_step/create_employee/create_employee.json +#: hr/onboarding_step/create_holiday_list/create_holiday_list.json +#: hr/onboarding_step/create_leave_allocation/create_leave_allocation.json +#: hr/onboarding_step/create_leave_application/create_leave_application.json +#: hr/onboarding_step/create_leave_type/create_leave_type.json +msgid "Show Tour" +msgstr "" + +#: www/jobs/index.html:103 +msgid "Showing" +msgstr "" + +#: setup.py:356 setup.py:357 +msgid "Sick Leave" +msgstr "Siekverlof" + +#. Name of a DocType +#: hr/doctype/interview/interview.js:186 hr/doctype/skill/skill.json +msgid "Skill" +msgstr "vaardigheid" + +#. Label of a Link field in DocType 'Designation Skill' +#: hr/doctype/designation_skill/designation_skill.json +msgctxt "Designation Skill" +msgid "Skill" +msgstr "vaardigheid" + +#. Label of a Link field in DocType 'Employee Skill' +#: hr/doctype/employee_skill/employee_skill.json +msgctxt "Employee Skill" +msgid "Skill" +msgstr "vaardigheid" + +#. Label of a Link field in DocType 'Expected Skill Set' +#: hr/doctype/expected_skill_set/expected_skill_set.json +msgctxt "Expected Skill Set" +msgid "Skill" +msgstr "vaardigheid" + +#. Label of a Link field in DocType 'Skill Assessment' +#: hr/doctype/skill_assessment/skill_assessment.json +msgctxt "Skill Assessment" +msgid "Skill" +msgstr "vaardigheid" + +#. Name of a DocType +#: hr/doctype/interview/interview.js:134 +#: hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Skill Assessment" +msgstr "" + +#. Label of a Data field in DocType 'Skill' +#: hr/doctype/skill/skill.json +msgctxt "Skill" +msgid "Skill Name" +msgstr "Vaardigheidsnaam" + +#. Label of a Section Break field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Skills" +msgstr "" + +#. Label of a Check field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Skip Auto Attendance" +msgstr "Slaan motorbywoning oor" + +#: payroll/doctype/salary_structure/salary_structure.py:313 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "Salarisstruktuuropdrag oor te slaan vir die volgende werknemers, aangesien daar reeds rekords teen salarisstruktuur daarteen bestaan. {0}" + +#. Label of a Data field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Source" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Source" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Source Name" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant Source' +#: hr/doctype/job_applicant_source/job_applicant_source.json +msgctxt "Job Applicant Source" +msgid "Source Name" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Source and Rating" +msgstr "" + +#. Label of a Currency field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Sponsored Amount" +msgstr "Gekonsentreerde bedrag" + +#. Label of a Table field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Staffing Details" +msgstr "" + +#. Name of a DocType +#: hr/doctype/staffing_plan/staffing_plan.json +#: hr/report/recruitment_analytics/recruitment_analytics.py:25 +msgid "Staffing Plan" +msgstr "Personeelplan" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Staffing Plan" +msgstr "Personeelplan" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Staffing Plan" +msgid "Staffing Plan" +msgstr "Personeelplan" + +#. Name of a DocType +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "Personeelplanbesonderhede" + +#: hr/doctype/staffing_plan/staffing_plan.py:70 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "Personeelplan {0} bestaan reeds vir aanwysing {1}" + +#. Label of a Currency field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Standard Tax Exemption Amount" +msgstr "Standaard Belastingvrystellingsbedrag" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Standard Tax Exemption Amount" +msgstr "Standaard Belastingvrystellingsbedrag" + +#. Label of a Float field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Standard Working Hours" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:43 +#: hr/doctype/attendance/attendance_list.js:46 +msgid "Start" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:86 +#: hr/report/project_profitability/project_profitability.js:17 +#: hr/report/project_profitability/project_profitability.py:203 +#: payroll/report/salary_register/salary_register.py:163 +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Period' +#: payroll/doctype/payroll_period/payroll_period.json +msgctxt "Payroll Period" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Period Date' +#: payroll/doctype/payroll_period_date/payroll_period_date.json +msgctxt "Payroll Period Date" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Start Date" +msgstr "" + +#: hr/notification/training_scheduled/training_scheduled.html:32 +#: templates/emails/training_event.html:7 +msgid "Start Time" +msgstr "" + +#. Label of a Time field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Start Time" +msgstr "" + +#. Label of a Datetime field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Start Time" +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:263 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}" +msgstr "Begin- en einddatums wat nie binne 'n geldige betaalperiode is nie, kan nie {0} bereken nie" + +#: payroll/doctype/salary_slip/salary_slip.py:1416 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "Begin en einddatum nie in 'n geldige betaalstaat nie, kan nie {0} bereken nie." + +#: payroll/doctype/payroll_entry/payroll_entry.py:186 +msgid "Start date: {0}" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Statistical Component" +msgstr "Statistiese komponent" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Statistical Component" +msgstr "Statistiese komponent" + +#: hr/doctype/attendance/attendance_list.js:71 +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:150 +#: hr/doctype/goal/goal.js:57 hr/doctype/goal/goal.js:64 +#: hr/doctype/goal/goal.js:71 hr/doctype/goal/goal.js:78 +#: hr/report/employee_advance_summary/employee_advance_summary.js:35 +#: hr/report/employee_advance_summary/employee_advance_summary.py:74 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:23 +#: hr/report/shift_attendance/shift_attendance.py:49 +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Status" +msgstr "" + +#: setup.py:399 +msgid "Stock Options" +msgstr "Voorraadopsies" + +#. Description of a Section Break field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Stop users from making Leave Applications on following days." +msgstr "Stop gebruikers om verloftoepassings op die volgende dae te maak." + +#. Option for a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "Streng gebaseer op die logtipe in die werknemer-checkin" + +#: payroll/doctype/salary_structure/salary_structure.py:254 +msgid "Structures have been assigned successfully" +msgstr "Strukture is suksesvol toegewys" + +#. Label of a Data field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Subject" +msgstr "" + +#. Label of a Data field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Subject" +msgstr "" + +#. Label of a Date field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Submission Date" +msgstr "Inhandigingsdatum" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:337 +msgid "Submission Failed" +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.js:59 +#: public/js/performance/performance_feedback.js:97 +msgid "Submit" +msgstr "" + +#: hr/doctype/interview/interview.js:50 hr/doctype/interview/interview.js:129 +msgid "Submit Feedback" +msgstr "" + +#: hr/doctype/exit_interview/exit_questionnaire_notification_template.html:15 +msgid "Submit Now" +msgstr "" + +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "Bewys indien" + +#: payroll/doctype/payroll_entry/payroll_entry.js:142 +msgid "Submit Salary Slip" +msgstr "Dien Salarisstrokie in" + +#: hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "Dien dit in om die Werknemers rekord te skep" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Submitted" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Submitted" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Submitted" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Submitted" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Submitted" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:383 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "Dien salarisstrokies in en skep joernaalinskrywing ..." + +#: payroll/doctype/payroll_entry/payroll_entry.py:1460 +msgid "Submitting Salary Slips..." +msgstr "Inhandiging van salarisstrokies ..." + +#: hr/doctype/staffing_plan/staffing_plan.py:162 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hr/doctype/employee_referral/employee_referral.py:54 +#: hr/doctype/leave_control_panel/leave_control_panel.py:130 +msgid "Success" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:133 +msgid "Successfully created {0} records for:" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Sum of all previous slabs" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:64 +msgid "Summarized View" +msgstr "Samevattende aansig" + +#: hr/doctype/leave_block_list/leave_block_list.js:67 +msgid "Sunday" +msgstr "" + +#. Label of a Link field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Supplier" +msgstr "" + +#. Label of a Link field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Supplier" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Supplier" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:48 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:42 +msgid "Suspended" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1170 +msgid "Syntax error" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2115 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Name of a role +#: hr/doctype/appointment_letter/appointment_letter.json +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hr/doctype/appraisal/appraisal.json +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/attendance/attendance.json +#: hr/doctype/attendance_request/attendance_request.json +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hr/doctype/employee_checkin/employee_checkin.json +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +#: hr/doctype/employee_grade/employee_grade.json +#: hr/doctype/employee_grievance/employee_grievance.json +#: hr/doctype/employee_onboarding/employee_onboarding.json +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hr/doctype/employee_referral/employee_referral.json +#: hr/doctype/employee_separation/employee_separation.json +#: hr/doctype/employee_separation_template/employee_separation_template.json +#: hr/doctype/employee_skill_map/employee_skill_map.json +#: hr/doctype/exit_interview/exit_interview.json +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hr/doctype/goal/goal.json hr/doctype/grievance_type/grievance_type.json +#: hr/doctype/hr_settings/hr_settings.json +#: hr/doctype/identification_document_type/identification_document_type.json +#: hr/doctype/interview/interview.json +#: hr/doctype/interview_type/interview_type.json +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +#: hr/doctype/job_requisition/job_requisition.json hr/doctype/kra/kra.json +#: hr/doctype/leave_encashment/leave_encashment.json +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hr/doctype/leave_period/leave_period.json +#: hr/doctype/leave_policy/leave_policy.json +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hr/doctype/pwa_notification/pwa_notification.json +#: hr/doctype/skill/skill.json hr/doctype/travel_request/travel_request.json +#: hr/doctype/vehicle_service_item/vehicle_service_item.json +#: payroll/doctype/additional_salary/additional_salary.json +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: payroll/doctype/income_tax_slab/income_tax_slab.json +#: payroll/doctype/payroll_period/payroll_period.json +#: payroll/doctype/payroll_settings/payroll_settings.json +#: payroll/doctype/retention_bonus/retention_bonus.json +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "System Manager" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Take Exact Completed Years" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.js:34 +#: hr/doctype/employee_separation/employee_separation.js:22 +msgid "Task" +msgstr "" + +#. Label of a Link field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Task" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Task" +msgstr "" + +#. Label of a Float field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Task Weight" +msgstr "" + +#. Name of a Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:41 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Sub Category' +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgctxt "Employee Tax Exemption Sub Category" +msgid "Tax Exemption Category" +msgstr "Belastingvrystellingskategorie" + +#. Label of a Tab Break field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of a Table field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Tax Exemption Proofs" +msgstr "Belastingvrystellingbewyse" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Tax on additional salary" +msgstr "Belasting op addisionele salaris" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Tax on flexible benefit" +msgstr "Belasting op buigsame voordeel" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:40 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "Belasbare Salarisplak" + +#. Label of a Section Break field in DocType 'Income Tax Slab' +#. Label of a Table field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Taxable Salary Slabs" +msgstr "Belasbare Salarisplakkers" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Taxes & Charges" +msgstr "" + +#. Label of a Section Break field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Taxes and Charges on Income Tax" +msgstr "Belasting en heffings op inkomstebelasting" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Taxi" +msgstr "taxi" + +#. Label of a Link in the HR Workspace +#: hr/page/team_updates/team_updates.js:4 hr/workspace/hr/hr.json +msgid "Team Updates" +msgstr "Span Updates" + +#. Label of a Data field in DocType 'Appointment Letter Template' +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgctxt "Appointment Letter Template" +msgid "Template Name" +msgstr "" + +#. Label of a Table field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Terms" +msgstr "" + +#. Label of a Table field in DocType 'Appointment Letter Template' +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgctxt "Appointment Letter Template" +msgid "Terms" +msgstr "" + +#. Label of a Text Editor field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Terms and Conditions" +msgstr "" + +#: templates/emails/training_event.html:20 +msgid "Thank you" +msgstr "Dankie" + +#. Success message of the Module Onboarding 'Human Resource' +#: hr/module_onboarding/human_resource/human_resource.json +msgid "The Human Resource Module is all set up!" +msgstr "" + +#. Success message of the Module Onboarding 'Payroll' +#: payroll/module_onboarding/payroll/payroll.json +msgid "The Payroll Module is all set up!" +msgstr "" + +#. Description of a Date field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:368 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "Die dag (en) waarop u aansoek doen om verlof, is vakansiedae. Jy hoef nie aansoek te doen vir verlof nie." + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:65 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:50 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of a Float field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "Die fraksie van die daaglikse lone wat betaal moet word vir die bywoning van 'n halfdag" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +#: hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the Standard Working Hours. Please set {0} in {1}." +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "Die salarisstrokie wat aan die werknemer per e-pos gestuur word, sal met 'n wagwoord beskerm word, die wagwoord word gegenereer op grond van die wagwoordbeleid." + +#. Description of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "Die tyd na die verskuiwing begin tyd wanneer die inklok as laat (in minute) beskou word." + +#. Description of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "Die tyd voor die eindtyd van die verskuiwing wanneer die uitcheck as vroeg (in minute) beskou word." + +#. Description of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "Die tyd voor die aanvangstyd van die skof waartydens werknemers-inklok in aanmerking kom vir die bywoning." + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Theory" +msgstr "teorie" + +#: payroll/doctype/salary_slip/salary_slip.py:441 +msgid "There are more holidays than working days this month." +msgstr "Daar is meer vakansiedae as werksdae hierdie maand." + +#: hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "Daar is geen vakatures onder die personeelplan {0}" + +#: payroll/doctype/additional_salary/additional_salary.py:36 +#: payroll/doctype/employee_incentive/employee_incentive.py:20 +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:218 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Stucture." +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:376 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:85 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:35 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "Hierdie werknemer het reeds 'n logboek met dieselfde tydstempel. {0}" + +#: payroll/doctype/salary_slip/salary_slip.py:1178 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1171 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1164 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hr/doctype/leave_type/leave_type.js:16 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hr/doctype/leave_type/leave_type.js:11 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: overrides/dashboard_overrides.py:57 +msgid "This is based on the attendance of this Employee" +msgstr "Dit is gebaseer op die bywoning van hierdie Werknemer" + +#: payroll/doctype/payroll_entry/payroll_entry.js:376 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "Dit sal salarisstrokies indien en toevallingsjoernaalinskrywing skep. Wil jy voortgaan?" + +#: hr/doctype/leave_block_list/leave_block_list.js:52 +msgid "Thursday" +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Time" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Time" +msgstr "" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js:28 +msgid "Time Interval" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Timesheet' +#: payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgctxt "Salary Slip Timesheet" +msgid "Time Sheet" +msgstr "" + +#. Description of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "Tyd na die beëindiging van die skof waartydens u uitklok vir die bywoning oorweeg word." + +#. Description of a Duration field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of a Duration field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Time to Fill" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Timelines" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:157 +msgid "Timesheet" +msgstr "" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Timesheet" +msgid "Timesheet" +msgstr "" + +#. Label of a Section Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Timesheet Details" +msgstr "" + +#: hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "tydsberekening" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:40 +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Appointment Letter content' +#: hr/doctype/appointment_letter_content/appointment_letter_content.json +msgctxt "Appointment Letter content" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Job Offer Term Template' +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +msgctxt "Job Offer Term Template" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'KRA' +#: hr/doctype/kra/kra.json +msgctxt "KRA" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Leave Policy' +#: hr/doctype/leave_policy/leave_policy.json +msgctxt "Leave Policy" +msgid "Title" +msgstr "" + +#: payroll/report/salary_register/salary_register.js:16 +msgid "To" +msgstr "" + +#. Label of a Currency field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "To Amount" +msgstr "Om Bedrag" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js:22 +#: hr/report/employee_advance_summary/employee_advance_summary.js:23 +#: hr/report/employee_exits/employee_exits.js:15 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:24 +#: hr/report/employee_leave_balance/employee_leave_balance.js:15 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.js:15 +#: hr/report/shift_attendance/shift_attendance.js:15 +#: hr/report/vehicle_expenses/vehicle_expenses.js:32 +#: payroll/report/bank_remittance/bank_remittance.js:22 +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "To Date" +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:201 +msgid "To Date cannot be less than From Date" +msgstr "" + +#: hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "Tot op datum moet groter wees as vanaf datum" + +#. Label of a Time field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "To Time" +msgstr "" + +#. Label of a Link field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "To User" +msgstr "" + +#: hr/doctype/shift_assignment/shift_assignment.py:59 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:267 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "Tot op datum kan nie gelyk of minder as van datum wees nie" + +#: payroll/doctype/additional_salary/additional_salary.py:87 +msgid "To date can not be greater than employee's relieving date." +msgstr "Tot op hede kan dit nie groter wees as die werkdag se aflosdatum nie." + +#: hr/utils.py:175 +msgid "To date can not be less than from date" +msgstr "Tot op datum kan nie minder as van datum wees nie" + +#: hr/utils.py:181 +msgid "To date can not greater than employee's relieving date" +msgstr "Tot op datum kan nie groter as werknemer se ontslagdatum nie" + +#: hr/doctype/leave_allocation/leave_allocation.py:178 +#: hr/doctype/leave_application/leave_application.py:180 +msgid "To date cannot be before from date" +msgstr "" + +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.py:14 +msgid "To date needs to be before from date" +msgstr "Tot op datum moet dit voor die datum wees" + +#. Label of a Int field in DocType 'Gratuity Rule Slab' +#: payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgctxt "Gratuity Rule Slab" +msgid "To(Year)" +msgstr "" + +#: payroll/doctype/gratuity_rule/gratuity_rule.js:37 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: controllers/employee_reminders.py:258 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.py:29 +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:40 +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:40 +msgid "Total" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Total" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:108 +msgid "Total Absent" +msgstr "Totaal Afwesig" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Proof +#. Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Total Actual Amount" +msgstr "Totale werklike bedrag" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Advance Amount" +msgstr "Totale voorskotbedrag" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Total Allocated Leave(s)" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Total Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Total Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Total Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Amount Reimbursed" +msgstr "Totale Bedrag vergoed" + +#: payroll/doctype/gratuity/gratuity.py:94 +msgid "Total Amount can not be zero" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:232 +#: hr/report/project_profitability/project_profitability.py:199 +msgid "Total Billed Hours" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Claimed Amount" +msgstr "Totale eisbedrag" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Total Declared Amount" +msgstr "Totale verklaarde bedrag" + +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:151 +#: payroll/report/salary_register/salary_register.py:230 +msgid "Total Deduction" +msgstr "Totale aftrekking" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Deduction" +msgstr "Totale aftrekking" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Total Deduction" +msgstr "Totale aftrekking" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:133 +msgid "Total Early Exits" +msgstr "Totale vroeë uitgange" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Total Earning" +msgstr "Totale verdienste" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Earnings" +msgstr "" + +#. Label of a Currency field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Total Estimated Budget" +msgstr "Totale geraamde begroting" + +#. Label of a Currency field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Total Estimated Cost" +msgstr "Totale beraamde koste" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Total Exemption Amount" +msgstr "Totale Vrystellingsbedrag" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Proof +#. Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Total Exemption Amount" +msgstr "Totale Vrystellingsbedrag" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Total Goal Score" +msgstr "" + +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:144 +msgid "Total Gross Pay" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:110 +msgid "Total Holidays" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Total Hours (T)" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Income Tax" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:127 +msgid "Total Late Entries" +msgstr "Totale laat inskrywings" + +#. Label of a Float field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Total Leave Days" +msgstr "Totale Verlofdae" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:107 +msgid "Total Leaves" +msgstr "Totale blare" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Total Leaves Allocated" +msgstr "Totale blare toegeken" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Total Leaves Encashed" +msgstr "Totale blare ingesluit" + +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:158 +msgid "Total Net Pay" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:233 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of a Currency field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Total Payable Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Total Payment" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:102 +msgid "Total Present" +msgstr "Totaal Aanwesig" + +#. Label of a Currency field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Total Receivable Amount" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Sanctioned Amount" +msgstr "Totale Sanctioned Amount" + +#. Label of a Float field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Total Score" +msgstr "Totale telling" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Total Self Score" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Taxes and Charges" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:79 +msgid "Total Working Hours" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Working Hours" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:363 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "Totale voorskotbedrag kan nie groter wees as die totale sanksiebedrag nie" + +#: hr/doctype/leave_allocation/leave_allocation.py:71 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:160 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:150 +msgid "Total flexible benefit component amount {0} should not be less than max benefits {1}" +msgstr "Die totale bedrag vir komponent van buigsame voordele {0} mag nie minder wees as die maksimum voordele nie {1}" + +#. Label of a Data field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total in words" +msgstr "Totaal in woorde" + +#. Label of a Data field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total in words (Company Currency)" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:248 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "Totale blare wat toegeken is, is verpligtend vir Verlof Tipe {0}" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:141 +msgid "Total percentage against cost centers should be 100" +msgstr "" + +#. Description of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:52 +msgid "Total weightage for all criteria must add up to 100. Currently, it is {0}%" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:151 +#: hr/doctype/appraisal_template/appraisal_template.py:25 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of a Int field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Total working Days Per Year" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:162 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "Totale werksure moet nie groter wees nie as maksimum werksure {0}" + +#. Label of a Section Break field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Totals" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Totals" +msgstr "" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Totals" +msgstr "" + +#. Label of a Section Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Totals" +msgstr "" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Train" +msgstr "trein" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Trainer Email" +msgstr "Trainer E-pos" + +#. Label of a Data field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Trainer Email" +msgstr "Trainer E-pos" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Trainer Name" +msgstr "Afrigter Naam" + +#. Label of a Data field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Trainer Name" +msgstr "Afrigter Naam" + +#. Label of a Data field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Trainer Name" +msgstr "Afrigter Naam" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: overrides/dashboard_overrides.py:44 +msgid "Training" +msgstr "opleiding" + +#. Label of a Link field in DocType 'Employee Training' +#: hr/doctype/employee_training/employee_training.json +msgctxt "Employee Training" +msgid "Training" +msgstr "opleiding" + +#. Label of a Date field in DocType 'Employee Training' +#: hr/doctype/employee_training/employee_training.json +msgctxt "Employee Training" +msgid "Training Date" +msgstr "Opleidingsdatum" + +#. Name of a DocType +#: hr/doctype/training_event/training_event.json +#: hr/doctype/training_feedback/training_feedback.py:14 +#: hr/doctype/training_result/training_result.py:16 +#: templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "Opleidingsgebeurtenis" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Training Event" +msgid "Training Event" +msgstr "Opleidingsgebeurtenis" + +#. Label of a Link field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Training Event" +msgstr "Opleidingsgebeurtenis" + +#. Label of a Link field in DocType 'Training Result' +#: hr/doctype/training_result/training_result.json +msgctxt "Training Result" +msgid "Training Event" +msgstr "Opleidingsgebeurtenis" + +#. Name of a DocType +#: hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "Opleiding Event Werknemer" + +#: hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "Opleidingsgeleentheid:" + +#: hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "Opleidingsgebeure" + +#. Name of a DocType +#: hr/doctype/training_event/training_event.js:16 +#: hr/doctype/training_feedback/training_feedback.json +msgid "Training Feedback" +msgstr "Opleiding Terugvoer" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Training Feedback" +msgid "Training Feedback" +msgstr "Opleiding Terugvoer" + +#. Name of a DocType +#: hr/doctype/training_program/training_program.json +msgid "Training Program" +msgstr "Opleidingsprogram" + +#. Label of a Link field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Training Program" +msgstr "Opleidingsprogram" + +#. Label of a Data field in DocType 'Training Program' +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/doctype/training_program/training_program.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Training Program" +msgid "Training Program" +msgstr "Opleidingsprogram" + +#. Name of a DocType +#: hr/doctype/training_event/training_event.js:10 +#: hr/doctype/training_result/training_result.json +msgid "Training Result" +msgstr "Opleidingsresultaat" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Training Result" +msgid "Training Result" +msgstr "Opleidingsresultaat" + +#. Name of a DocType +#: hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "Opleiding Resultaat Werknemer" + +#. Label of a Section Break field in DocType 'Employee Skill Map' +#. Label of a Table field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Trainings" +msgstr "opleiding" + +#. Label of a Date field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Transaction Date" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Transaction Name" +msgstr "Naam van transaksie" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Transaction Type" +msgstr "" + +#: hr/doctype/leave_period/leave_period_dashboard.py:7 +msgid "Transactions" +msgstr "" + +#: hr/utils.py:679 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of a Date field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Transfer Date" +msgstr "Oordragdatum" + +#. Label of a Card Break in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json setup.py:327 +msgid "Travel" +msgstr "Reis" + +#. Label of a Check field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Travel Advance Required" +msgstr "Vereis reisvoordeel" + +#. Label of a Data field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Travel From" +msgstr "Reis Van" + +#. Label of a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Travel Funding" +msgstr "Reisbefondsing" + +#. Name of a DocType +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Itinerary" +msgstr "Reisplan" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Travel Itinerary" +msgstr "Reisplan" + +#. Name of a DocType +#: hr/doctype/travel_request/travel_request.json +msgid "Travel Request" +msgstr "Reisversoek" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the HR Workspace +#: hr/workspace/expense_claims/expense_claims.json hr/workspace/hr/hr.json +msgctxt "Travel Request" +msgid "Travel Request" +msgstr "Reisversoek" + +#. Name of a DocType +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "Reisversoek Koste" + +#. Label of a Data field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Travel To" +msgstr "Reis na" + +#. Label of a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Travel Type" +msgstr "Reis Tipe" + +#: hr/doctype/leave_block_list/leave_block_list.js:42 +msgid "Tuesday" +msgstr "" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.js:10 +msgid "Type" +msgstr "" + +#. Label of a Select field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Type" +msgstr "" + +#. Label of a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Type" +msgstr "" + +#. Label of a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Type" +msgstr "" + +#. Label of a Data field in DocType 'Employee Tax Exemption Proof Submission +#. Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Type of Proof" +msgstr "Soort bewyse" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:116 +msgid "Unable to find Salary Component {0}" +msgstr "Kan nie die salariskomponent {0} vind nie" + +#: hr/doctype/goal/goal.js:54 +msgid "Unarchive" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Unclaimed Amount" +msgstr "" + +#. Option for a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Under Review" +msgstr "" + +#: hr/doctype/attendance/attendance.py:218 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hr/doctype/attendance/attendance.py:221 +msgid "Unlinked logs" +msgstr "" + +#. Description of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Unmarked Attendance" +msgstr "Ongemerkte Bywoning" + +#: hr/doctype/attendance/attendance_list.js:84 +msgid "Unmarked Attendance for days" +msgstr "Ongemerkte bywoning vir dae" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:116 +msgid "Unmarked Days" +msgstr "Ongemerkte dae" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Unmarked days" +msgstr "Ongemerkte dae" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Unpaid" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Unpaid" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Unpaid" +msgstr "" + +#. Option for a Select field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Unpaid" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Unpaid" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expense Claims Workspace +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hr/workspace/expense_claims/expense_claims.json +msgid "Unpaid Expense Claim" +msgstr "Onbetaalde koste-eis" + +#. Option for a Select field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Unsettled" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:256 +msgid "Untracked Hours" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:82 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Unused leaves" +msgstr "Ongebruikte blare" + +#: controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:256 +msgid "Update" +msgstr "" + +#: hr/doctype/interview/interview.py:73 +msgid "Update Job Applicant" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:237 hr/doctype/goal/goal_tree.js:243 +msgid "Update Progress" +msgstr "" + +#: templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "Update Response" + +#: hr/doctype/goal/goal_list.js:36 +msgid "Update Status" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:99 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hr/doctype/interview/interview.py:205 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#: hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload Attendance" +msgstr "Oplaai Bywoning" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Upload Attendance" +msgid "Upload Attendance" +msgstr "Oplaai Bywoning" + +#. Label of a HTML field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Upload HTML" +msgstr "Laai HTML op" + +#: public/frontend/assets/InsertVideo-2810c859.js:2 +msgid "Uploading ${h}%" +msgstr "" + +#. Label of a Currency field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Upper Range" +msgstr "" + +#. Label of a Currency field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Upper Range" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Used Leave(s)" +msgstr "" + +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.py:20 +msgid "User" +msgstr "" + +#. Label of a Link field in DocType 'Daily Work Summary Group User' +#: hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgctxt "Daily Work Summary Group User" +msgid "User" +msgstr "" + +#. Label of a Link field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "User" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "User" +msgstr "" + +#. Label of a Data field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "User" +msgstr "" + +#. Label of a Link field in DocType 'Interviewer' +#: hr/doctype/interviewer/interviewer.json +msgctxt "Interviewer" +msgid "User" +msgstr "" + +#. Label of a Table field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Users" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:190 +msgid "Utilization" +msgstr "" + +#. Label of a Int field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Vacancies" +msgstr "vakatures" + +#. Label of a Int field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Vacancies" +msgstr "vakatures" + +#: hr/doctype/staffing_plan/staffing_plan.js:82 +msgid "Vacancies cannot be lower than the current openings" +msgstr "Vakatures kan nie laer wees as die huidige openings nie" + +#: hr/doctype/job_opening/job_opening.py:92 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Validate Attendance" +msgstr "Bevestig Bywoning" + +#: payroll/doctype/payroll_entry/payroll_entry.js:360 +msgid "Validating Employee Attendance..." +msgstr "Validasie van werknemerbywoning ..." + +#. Label of a Small Text field in DocType 'Job Offer Term' +#: hr/doctype/job_offer_term/job_offer_term.json +msgctxt "Job Offer Term" +msgid "Value / Description" +msgstr "Waarde / beskrywing" + +#: hr/employee_property_update.js:166 +msgid "Value missing" +msgstr "Waarde ontbreek" + +#: payroll/doctype/salary_structure/salary_structure.js:144 +msgid "Variable" +msgstr "veranderlike" + +#. Label of a Currency field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Variable" +msgstr "veranderlike" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Variable Based On Taxable Salary" +msgstr "Veranderlike gebaseer op Belasbare Salaris" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Variable Based On Taxable Salary" +msgstr "Veranderlike gebaseer op Belasbare Salaris" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Vegetarian" +msgstr "Vegetariese" + +#: hr/report/vehicle_expenses/vehicle_expenses.js:40 +#: hr/report/vehicle_expenses/vehicle_expenses.py:27 +msgid "Vehicle" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Vehicle" +msgid "Vehicle" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expense Claims Workspace +#: hr/doctype/vehicle_log/vehicle_log.py:51 +#: hr/report/vehicle_expenses/vehicle_expenses.json +#: hr/workspace/expense_claims/expense_claims.json +msgid "Vehicle Expenses" +msgstr "" + +#. Name of a DocType +#: hr/doctype/vehicle_log/vehicle_log.json +#: hr/report/vehicle_expenses/vehicle_expenses.py:37 +msgid "Vehicle Log" +msgstr "Voertuiglogboek" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Vehicle Log" +msgstr "Voertuiglogboek" + +#. Label of a Link in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Vehicle Log" +msgid "Vehicle Log" +msgstr "Voertuiglogboek" + +#. Name of a DocType +#: hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "Voertuigdiens" + +#. Name of a DocType +#: hr/doctype/vehicle_service_item/vehicle_service_item.json +msgid "Vehicle Service Item" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Vehicle Service Item" +msgid "Vehicle Service Item" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.js:28 +#: hr/doctype/employee_onboarding/employee_onboarding.js:33 +#: hr/doctype/employee_onboarding/employee_onboarding.js:36 +#: hr/doctype/employee_separation/employee_separation.js:16 +#: hr/doctype/employee_separation/employee_separation.js:21 +#: hr/doctype/employee_separation/employee_separation.js:24 +#: hr/doctype/expense_claim/expense_claim.js:96 +#: hr/doctype/expense_claim/expense_claim.js:226 +#: hr/doctype/job_applicant/job_applicant.js:35 +msgid "View" +msgstr "" + +#: hr/doctype/appraisal/appraisal.js:48 +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:21 +msgid "View Goals" +msgstr "" + +#: patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: setup.py:390 +msgid "Walk In" +msgstr "Loop in" + +#: hr/doctype/leave_application/leave_application.py:407 +#: payroll/doctype/salary_structure/salary_structure.js:312 +#: payroll/doctype/salary_structure/salary_structure.py:37 +#: payroll/doctype/salary_structure/salary_structure.py:119 +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:44 +msgid "Warning" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:395 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:403 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:348 +msgid "Warning: Leave application contains following block dates" +msgstr "Waarskuwing: Laat aansoek bevat die volgende blokdatums" + +#: hr/doctype/shift_assignment/shift_assignment.py:47 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: setup.py:389 +msgid "Website Listing" +msgstr "Webwerf aanbieding" + +#: hr/doctype/leave_block_list/leave_block_list.js:47 +msgid "Wednesday" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Weekly" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Weekly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Weekly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Weekly" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Weightage (%)" +msgstr "" + +#. Label of a Percent field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "Weightage (%)" +msgstr "" + +#. Label of a Percent field in DocType 'Appraisal Template Goal' +#: hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgctxt "Appraisal Template Goal" +msgid "Weightage (%)" +msgstr "" + +#. Label of a Percent field in DocType 'Employee Feedback Rating' +#: hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgctxt "Employee Feedback Rating" +msgid "Weightage (%)" +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:35 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of a Text Editor field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Work Anniversaries " +msgstr "" + +#: controllers/employee_reminders.py:279 controllers/employee_reminders.py:286 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of a Date field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Work End Date" +msgstr "Werk Einddatum" + +#. Label of a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Work Experience Calculation method" +msgstr "" + +#. Label of a Date field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Work From Date" +msgstr "Werk vanaf datum" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Work From Home" +msgstr "Werk van die huis af" + +#. Option for a Select field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Work From Home" +msgstr "Werk van die huis af" + +#. Option for a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Work From Home" +msgstr "Werk van die huis af" + +#. Label of a Text Editor field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Work References" +msgstr "" + +#: hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "Werkopsomming vir {0}" + +#. Label of a Section Break field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Worked On Holiday" +msgstr "Op vakansie gewerk" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Working Days" +msgstr "Werksdae" + +#. Label of a Section Break field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Working Days and Hours" +msgstr "" + +#: setup.py:398 +msgid "Working Hours" +msgstr "" + +#. Label of a Float field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Working Hours" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Timesheet' +#: payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgctxt "Salary Slip Timesheet" +msgid "Working Hours" +msgstr "" + +#. Label of a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working Hours Calculation Based On" +msgstr "Berekening van werksure gebaseer op" + +#. Label of a Float field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working Hours Threshold for Absent" +msgstr "Drempel vir werksure vir afwesig" + +#. Label of a Float field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working Hours Threshold for Half Day" +msgstr "Drempel vir werksure vir halwe dag" + +#. Description of a Float field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "Werksure waaronder Afwesig gemerk is. (Nul om uit te skakel)" + +#. Description of a Float field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "Werksure waaronder Halfdag gemerk is. (Nul om uit te skakel)" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Workshop" +msgstr "werkswinkel" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:30 +#: public/js/salary_slip_deductions_report_filters.js:36 +msgid "Year" +msgstr "" + +#. Option for a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Year" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Year To Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Year To Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Yearly" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Yearly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Yes" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.py:84 +msgid "Yes, Proceed" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:358 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "Jy is nie gemagtig om bladsye op Blokdata te keur nie" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:59 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "U is nie die hele dag teenwoordig tussen verlofverlofdae nie" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:100 +msgid "You can claim only an amount of {0}, the rest amount {1} should be in the application as pro-rata component" +msgstr "" + +#: payroll/doctype/gratuity_rule/gratuity_rule.py:22 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hr/doctype/shift_request/shift_request.py:65 +msgid "You can not request for your Default Shift: {0}" +msgstr "U kan nie u verstekskof aanvra nie: {0}" + +#: hr/doctype/staffing_plan/staffing_plan.py:93 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:37 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "U kan slegs Verlof-inskrywing vir 'n geldige invoegingsbedrag indien" + +#: api/__init__.py:546 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:53 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hr/doctype/interview/interview.py:106 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:93 +msgid "changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: public/frontend/assets/InsertVideo-2810c859.js:2 +#: public/frontend/assets/SalarySlipItem-22792733.js:1 +msgid "div" +msgstr "" + +#. Label of a Read Only field in DocType 'Daily Work Summary Group User' +#: hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgctxt "Daily Work Summary Group User" +msgid "email" +msgstr "e-pos" + +#: hr/doctype/department_approver/department_approver.py:90 +msgid "or for Department: {0}" +msgstr "" + +#: www/jobs/index.html:104 +msgid "result" +msgstr "" + +#: www/jobs/index.html:104 +msgid "results" +msgstr "" + +#: hr/doctype/leave_type/leave_type.js:26 +msgid "to know more" +msgstr "" + +#: public/frontend/assets/InsertVideo-2810c859.js:2 +msgid "video" +msgstr "" + +#: controllers/employee_reminders.py:120 controllers/employee_reminders.py:253 +#: controllers/employee_reminders.py:257 +msgid "{0} & {1}" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2111 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hr/doctype/department_approver/department_approver.py:91 +msgid "{0} Missing" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:31 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:311 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:201 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} reeds toegeken vir Werknemer {1} vir periode {2} tot {3}" + +#: hr/utils.py:251 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0} bestaan reeds vir werknemer {1} en periode {2}" + +#: hr/doctype/shift_assignment/shift_assignment.py:54 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:151 +msgid "{0} applicable after {1} working days" +msgstr "{0} van toepassing na {1} werksdae" + +#: overrides/company.py:122 +msgid "{0} currency must be same as company's default currency. Please select another account." +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:140 +msgid "{0} due to missing email information for employee(s): {1}" +msgstr "" + +#: hr/report/employee_analytics/employee_analytics.py:14 +msgid "{0} is mandatory" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:566 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} is nie in opsionele vakansie lys nie" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:31 +msgid "{0} is not in a valid Payroll Period" +msgstr "{0} is nie in 'n geldige betaalstaatperiode nie" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:31 +msgid "{0} is required" +msgstr "" + +#: hr/doctype/training_feedback/training_feedback.py:14 +#: hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} moet ingedien word" + +#: hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "{0} submission before {1} is not allowed" +msgstr "" + +#: hr/doctype/staffing_plan/staffing_plan.py:129 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hr/doctype/goal/goal_list.js:73 +msgid "{0} {1} {2}?" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1823 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}: Werknemer e-pos nie gevind nie, vandaar e-pos nie gestuur nie" + +#: hr/doctype/leave_application/leave_application.py:69 +msgid "{0}: From {0} of type {1}" +msgstr "{0}: Vanaf {0} van tipe {1}" + +#: hr/doctype/exit_interview/exit_interview.py:136 +msgid "{0}: {1}" +msgstr "" + +#: public/frontend/assets/index-43eeacf0.js:123 +msgid "{|}~.]+@[-a-z0-9]+(.[-a-z0-9]+)*.[a-z]+)(?=$|s)/gmi,w=/<()(?:mailto:)?([-.w]+@[-a-z0-9]+(.[-a-z0-9]+)*.[a-z]+)>/gi,k=function(f){return function(g,m,y,x,_,S,E){y=y.replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback);var P=y,$=\"\",L=\"\",I=m||\"\",A=E||\"\";return/^www./i.test(y)&&(y=y.replace(/^www./i,\"http://www.\")),f.excludeTrailingPunctuationFromURLs&&S&&($=S),f.openLinksInNewWindow&&(L=' rel=\"noopener noreferrer\" target=\"¨E95Eblank\"'),I+'
    \"+P+\"\"+$+A}},C=function(f,g){return function(m,y,x){var _=\"mailto:\";return y=y||\"\",x=r.subParser(\"unescapeSpecialChars\")(x,f,g),f.encodeEmails?(_=r.helper.encodeEmailAddress(_+x),x=r.helper.encodeEmailAddress(x)):_=_+x,y+''+x+\"\"}};r.subParser(\"autoLinks\",function(f,g,m){return f=m.converter._dispatch(\"autoLinks.before\",f,g,m),f=f.replace(v,k(g)),f=f.replace(w,C(g,m)),f=m.converter._dispatch(\"autoLinks.after\",f,g,m),f}),r.subParser(\"simplifiedAutoLinks\",function(f,g,m){return g.simplifiedAutoLink&&(f=m.converter._dispatch(\"simplifiedAutoLinks.before\",f,g,m),g.excludeTrailingPunctuationFromURLs?f=f.replace(h,k(g)):f=f.replace(p,k(g)),f=f.replace(b,C(g,m)),f=m.converter._dispatch(\"simplifiedAutoLinks.after\",f,g,m)),f}),r.subParser(\"blockGamut\",function(f,g,m){return f=m.converter._dispatch(\"blockGamut.before\",f,g,m),f=r.subParser(\"blockQuotes\")(f,g,m),f=r.subParser(\"headers\")(f,g,m),f=r.subParser(\"horizontalRule\")(f,g,m),f=r.subParser(\"lists\")(f,g,m),f=r.subParser(\"codeBlocks\")(f,g,m),f=r.subParser(\"tables\")(f,g,m),f=r.subParser(\"hashHTMLBlocks\")(f,g,m),f=r.subParser(\"paragraphs\")(f,g,m),f=m.converter._dispatch(\"blockGamut.after\",f,g,m),f}),r.subParser(\"blockQuotes\",function(f,g,m){f=m.converter._dispatch(\"blockQuotes.before\",f,g,m),f=f+" +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:171 +msgid "{} is an invalid Attendance Status." +msgstr "{} is 'n ongeldige bywoningstatus." + +#: hr/doctype/job_requisition/job_requisition.js:15 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/ar.po b/apps/erpnext/src/hrms/hrms/locale/ar.po new file mode 100644 index 000000000..d71d5fe90 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/ar.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Arabic\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: ar\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: ar_SA\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "مطلوب "employee_field_value" و "الطابع الزمني"." + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") لـ {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "...جاري جلب الموظفين" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "مثال: SAL- {first_name} - {date_of_birth.year}
    سيؤدي هذا إلى إنشاء كلمة مرور مثل SAL-Jane-1972" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "المعاملات & التقارير" + +#: hrms/public/js/utils/index.js:166 +msgid "" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "{0} موجود بين {1} و {2} (" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "غائب" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "أيام الغياب" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "رقم الحساب" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "مدخل يومية تراكمية للرواتب من {0} إلى {1}" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "اسم النشاط" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "الكمية الفعلية" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "إضافة إلى التفاصيل" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "إضافة الاجازات غير المستخدمة من المخصصات السابقة" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "تم اضافته الى التفاصيل" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "مبلغ إضافي" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "PF إضافية" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "راتب إضافي" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "الراتب الإضافي" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "الراتب الإضافي: {0} موجود بالفعل لمكون الراتب: {1} للفترة {2} و {3}" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "عنوان المنظم" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "مقدما" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "جميع الوظائف" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "الإجازات المخصصة" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "تخصيص انتهت!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "السماح بالصرف" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "السماح برصيد سالب" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "السماح بالإعفاء الضريبي" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "تسمح للمستخدم" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "السماح للمستخدمين" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "السماح بتسجيل المغادرة بعد وقت انتهاء التحول (بالدقائق)" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "السماح للمستخدمين التاليين للموافقة على طلبات الحصول على إجازة في الأيام المحظورة" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "بالتناوب إدخالات مثل IN و OUT خلال نفس التحول" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "القيمة بناءا على الصيغة" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "التخصيص السنوي" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "الراتب السنوي" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "أي تفاصيل أخرى" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "ينطبق على حالة تشغيل الموظف" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "عنوان البريد الإلكتروني للمتقدم" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "اسم التطبيق" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "حالة الطلب" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "فترة الطلب لا يمكن ان تكون خلال سجلين مخصصين" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "فترة الاجازة لا يمكن أن تكون خارج فترة الاجازة المسموحة للموظف.\\n
    \\nApplication period cannot be outside leave allocation period" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "ينطبق على شركة" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "التطبيق الآن" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "تاريخ الموعد" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "رسالة موعد" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "قالب رسالة التعيين" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "محتوى رسالة التعيين" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "تقييم" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "الغاية من التقييم" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "الغاية من قالب التقييم" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "عنوان قالب التقييم" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "وضع تحت التدريب" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "حالة الموافقة" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "حالة الموافقة يجب ان تكون (موافق عليه) او (مرفوض)" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "المخول بالموافقة" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "أبريل" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "تارخ الوصول" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "حسب هيكل الرواتب المعيّن الخاص بك ، لا يمكنك التقدم بطلب للحصول على مخصصات" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "هيكلية التخصيص..." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "الحضور" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "عدد الحضور" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "تاريخ الحضور" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "الحضور من تاريخ" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "الحقل الحضور من تاريخ والحضور إلى تاريخ إلزامية\\n
    \\nAttendance From Date and Attendance To Date is mandatory" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "الحضور ملحوظ" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "طلب حضور" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "الحضور إلى تاريخ" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "لم يتم إرسال الحضور إلى {0} لأنه عطلة." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "سيتم تمييز الحضور تلقائيًا بعد هذا التاريخ فقط." + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "الحضور" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "أغسطس" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "إعدادات الحضور التلقائي" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "إجازة مغادرة السيارات" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "انتظار الرد" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "مدخلات البنك" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "التحويلات المصرفية" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "الاساسي" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "ابدأ تسجيل الوصول قبل وقت بدء التحول (بالدقائق)" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "فائدة" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "نصف شهري" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "تذكير عيد ميلاد" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "تاريخ الحظر" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "الأيام المحظورة" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "أجمالي المكافأة" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "تاريخ دفع المكافأة" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "لا يمكن أن يكون تاريخ الدفع المكافأ تاريخًا سابقًا" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "حساب أيام عمل الرواتب على أساس" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "تحسب بالأيام" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "مكالمات هاتفية" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "لا يمكن ايجاد فترة الاجازة النشطة" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "المضي قدما" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "تحمل أوراق واحال" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "أجازة عادية" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "تم تغيير الحالة من {0} إلى {1} عبر طلب الحضور" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "التحقق من الوظائف الشاغرة عند إنشاء عرض العمل" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "تاريخ الوصول" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "موعد انتهاء الأقامة" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "فائدة للمطالبة" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "ادعى" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "المبلغ المطالب به" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "ملاحظات ختامية" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "طلب الإجازة التعويضية" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "تعويض" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "خصائص المكونات والمراجع" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "الشرط والصيغة" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "متغير الشروط والصيغة والمثال" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "مؤتمر" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "ضع في اعتبارك الحضور غير المحدد باسم" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "رقم جهة الإتصال" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "نسخة من الدعوة / الإعلان" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "المقرر التعليمي" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "محتويات الرسالة المرفقة" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "إنشاء رمز موظف جديد" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "إنشاء كشف الرواتب" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "إنشاء قسائم الرواتب" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "إنشاء إدخالات الدفع ......" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "إنشاء قسائم الرواتب ..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "إنشاء {0}..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "العدد الحالي" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "يجب أن تكون قيمة عداد المسافات الحالية أكبر من قيمة آخر عداد المسافات {0}" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "قيمة عداد المسافات الحالية" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "الفتحات الحالية" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "ملخص العمل اليومي" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "مجموعة ملخص العمل اليومي" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "مستخدم مجموعة ملخص العمل اليومي" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "ملخص العمل اليومي الردود" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "تاريخ متكرر\\n
    \\nDate is repeated" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "رقم الخصم" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "ديسمبر" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "التصريحات" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "المبلغ المعلن" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "خصم الضريبة الكاملة على تاريخ الرواتب المحدد" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "خصم الضريبة للحصول على إعفاء من الضرائب غير معتمد" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "خصم" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "استقطاعات" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "المبلغ الافتراضي" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "حساب الخزنة / البنك المعتاد سوف يعدل تلقائيا في القيود اليومية للمرتب عند اختيار هذا الوضع." + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "هيكل الراتب الافتراضي" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "موافقة القسم" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "موعد المغادرة" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "يعتمد على أيام الدفع" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "مهارة التعيين" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "تفاصيل الراعي (الاسم والموقع)" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "تحديد الوصول والمغادرة" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "لا تدرج في المجموع" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "لا تدرج في المجموع" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "المنزلي" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "الخروج المبكر" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "الخروج المبكر فترة سماح" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "إجازة مكتسبة" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "تكرار الإجازات المكتسبة" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "مستحق" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "أحدى المستحقات" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "المستحقات" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "ساري المفعول من" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "إرسال كشف الراتب للموظفين بالبريد الالكتروني" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "أرسل البريد الإلكتروني إلى" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "ارسال كشف الراتب إلي البريد الاكتروني المفضل من قبل الموظف" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "موظف A / C رقم" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "ملخص متقدم للموظف" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "أداة الحضور للموظفين" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "تطبيق مزايا الموظف" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "تفاصيل تطبيق استحقاق الموظف" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "مطالبة مصلحة الموظف" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "الميزات للموظف" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "نشاط صعود الموظف" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "فحص الموظف" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "موظف تفاصيل" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "رسائل البريد الإلكتروني للموظفين" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "درجة الموظف" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "التأمين الصحي للموظف" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "صورة الموظف" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "حافز الموظف" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "اعداد الموظف" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "قالب Onboarding الموظف" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "دخل الموظف الآخر" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "ترقية الموظف" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "تفاصيل ترقية الموظف" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "تاريخ الممتلكات الموظف" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "إحالة موظف" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "فصل الموظف" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "قالب فصل الموظفين" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "إعدادات الموظف" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "مهارة الموظف" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "خريطة مهارة الموظف" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "مهارات الموظف" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "فئة الإعفاء من ضريبة الموظف" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "إعلان الإعفاء من ضريبة الموظف" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "فئة الإعفاء من ضريبة الموظف" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "إقرار الإعفاء من ضريبة الموظف" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "إعفاء من ضريبة الموظف" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "فئة الإعفاء من ضريبة الموظفين" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "تدريب الموظفين" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "نقل الموظفين" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "نقل موظف التفاصيل" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "تفاصيل نقل الموظف" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "الموظف {0} غير نشط أو غير موجود\\n
    \\nEmployee {0} is not active or does not exist" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "الموظف {0} في وضع الإجازة على {1}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "الموظف {0} لديه اجازة نصف يوم في {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "الموظفين HTML" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "الموظفون يعملون في يوم العطلة" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "تمكين الحضور التلقائي" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "المدفوعات النقدية" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "مبلغ مقطوع" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "تشفير قسائم الرواتب في رسائل البريد الإلكتروني" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "لا يمكن أن يكون تاريخ الانتهاء قبل تاريخ البدء" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "لا يمكن أن يكون وقت الانتهاء قبل وقت البدء" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "التكلفة التقديرية لكل موضع" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "تقييم" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "تاريخ التقييم" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "تفاصيل الحدث" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "رابط الحدث" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "موقع الحدث" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "إسم الحدث" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "حالة الحدث" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "كل صالح في الاختيار والمغادرة" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "امتحان" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "معفى من ضريبة الدخل" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "فئة الإعفاء" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "الإعفاء الفئة الفرعية" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "الخروج من ملخص المقابلة" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "الموافقة على المصروفات إلزامية في مطالبة النفقات" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "حساب المطالبة بالنفقات" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "النفقات المطالبة مقدما" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "تفاصيل المطالبة بالنفقات" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "نوع المطالبة بالنفقات" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "مطالبه المصروفات لسجل المركبات {0}" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "المطالبة بالنفقات {0} بالفعل موجوده في سجل المركبة" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "تاريخ النفقات" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "إثبات المصاريف" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "مصاريف الضرائب والرسوم" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "نوع المصاريف" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "انتهاء الصلاحية التخصيص" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "تنتهي صلاحية حمل الأوراق المرسلة (بالأيام)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "تفسير" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "فبراير" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "تم تسليم التعليقات" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "قم بتعبئة النموذج وحفظه" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "تسجيل الوصول الأول وتسجيل المغادرة الأخير" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "الاسم الأول " + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "السنة المالية {0} غير موجودة\\n
    \\nFiscal Year {0} not found" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "فوائد مرنة" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "طيران" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "متابعة عبر البريد الإلكتروني" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "طعام" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "للموظف" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "صيغة" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "جزء من الراتب اليومي لنصف يوم" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "من الكمية" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "من تاريخ {0} لا يمكن أن يكون بعد تاريخ التخفيف من الموظف {1}" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "من تاريخ {0} لا يمكن أن يكون قبل تاريخ الانضمام للموظف {1}" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "من تاريخ لا يمكن أن يكون أقل من تاريخ انضمام الموظف" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "من التاريخ لا يمكن أن يكون أقل من تاريخ انضمام الموظف." + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "حساب الوقود" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "سعر الوقود" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "كمية الوقود" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "دوام كامل" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "برعاية كاملة" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "مبلغ التمويل" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "التواريخ المستقبلية غير مسموح بها" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "الحصول على تفاصيل من الإعلان" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "الحصول على الموظفين" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "الحصول على نموذج" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "خالي من الغلوتين" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "إجمالي الأجور" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "إعدادات الموارد البشرية" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "نصف يوم" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "تاريخ نصف اليوم" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "تاريخ نصف اليوم إلزامي" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "تاريخ نصف اليوم ينبغي أن يكون بين 'من تاريخ' و 'الى تاريخ'\\n
    \\nHalf Day Date should be between From Date and To Date" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "يجب أن يكون تاريخ نصف يوم بين العمل من التاريخ وتاريخ انتهاء العمل" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "يجب أن يكون تاريخ نصف يوم ما بين التاريخ والتاريخ" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "لديه شهادة" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "اسم التامين الصحي" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "إعدادات التوظيف" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "قائمة العطلة للإجازة الاختيارية" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "أيام إيجار المنازل المدفوعة تتداخل مع {0}" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "التواريخ المستأجرة البيت المطلوبة لحساب الإعفاء" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "يجب أن تكون تواريخ التأجير المنزل على الأقل 15 يوما بعيدا" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "رمز IFSC" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "في" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "رقم وثيقة التعريف" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "نوع وثيقة التعريف" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "إذا تم تحديده ، يقوم بإخفاء وتعطيل حقل Rounded Total في قسائم الرواتب" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "إذا تم تحديده ، فسيتم خصم المبلغ بالكامل من الدخل الخاضع للضريبة قبل حساب ضريبة الدخل دون تقديم أي إعلان أو إثبات." + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "في حالة التمكين ، سيتم النظر في إقرار الإعفاء الضريبي لحساب ضريبة الدخل." + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "إذا لم يتم الاختيار، فان القائمة ستضاف إلى كل قسم حيث لابد من تطبيقها." + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "إذا تم تحديده، فإن القيمة المحددة أو المحسوبة في هذا المكون لن تساهم في الأرباح أو الاستقطاعات. ومع ذلك، فإنه يمكن الإشارة إلى القيمة من قبل المكونات الأخرى التي يمكن أن تضاف أو خصمها." + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "سجل الحضور" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "في الوقت المناسب" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "مبلغ الحافز" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "العطلات تحسب من ضمن أيام العمل" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "ايام العطل التي ضمن الإجازات تحسب إجازة" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "مبلغ ضريبة الدخل" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "مكون ضريبة الدخل" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "استقطاعات ضريبة الدخل" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "لوح ضريبة الدخل" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "لوحة ضريبة الدخل رسوم أخرى" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "يجب أن يكون لوح ضريبة الدخل ساريًا في أو قبل تاريخ بدء فترة الرواتب: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "لم يتم تعيين لوح ضريبة الدخل في تعيين هيكل الرواتب: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "شريحة ضريبة الدخل: {0} معطل" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "فحص" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "مبلغ الفائدة" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "المتدرب" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "دولي" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "الإنترنت" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "دعوة" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "مرجع الفاتورة" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "هل تضاف في العام التالي" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "هو تعويض" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "هو إجازة مكتسبة" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "منتهي الصلاحية" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "هو فائدة مرنة" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "هو مكون ضريبة الدخل" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "إجازة بدون راتب" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "هو اجازة اختيارية" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "متكرر" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "هي ضريبة قابلة للتطبيق" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "يناير" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "مصدر طالب الوظيفة" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "الوصف الوظيفي" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "عرض عمل" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "شرط عرض العمل" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "شروط عرض الوظيفة" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "حالة عرض العمل" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "عرض الوظيفة: {0} مقدم بالفعل لمقدم طلب وظيفة: {1}" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "وظيفة شاغرة" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "الملف الوظيفي ، المؤهلات المطلوبة الخ" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "وظائف" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "تاريخ الانضمام" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "يوليو" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "يونيو" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "وصف معيار التقييم" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "وصف معيار التقييم" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "آخر مزامنة ناجحة معروفة لفحص الموظف. أعد ضبط هذا فقط إذا كنت متأكدًا من مزامنة جميع السجلات من جميع المواقع. يرجى عدم تعديل هذا إذا كنت غير متأكد." + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "آخر مزامنة للفحص" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "تأخر الدخول" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "فترة سماح الدخول المتأخرة" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "غادر" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "تخصيص إجازة" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "اترك المخصصات" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "طلب اجازة" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "اترك إشعار الموافقة" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "اترك قالب إعلام الموافقة" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "إجازة الموافقة إلزامية في طلب الإجازة" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "أسم الموافق علي الاجازة" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "رصيد الاجازات" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "رصيد الاجازات قبل الطلب" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "تفعيل قائمة الإجازات المحظورة" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "قائمة اجازات محظورة مفعلة" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "تواريخ الإجازات المحظورة" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "التواريخ الممنوع اخذ اجازة فيها" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "اسم قائمة الإجازات المحظورة" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "إجازة محظورة" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "لوحة تحكم الأجازات" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "الإجازات مدفوعة" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "ترك Encshment المبلغ لكل يوم" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "ترك دخول دفتر الأستاذ" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "اترك فترة" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "سياسة الإجازة" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "ترك سياسة التفاصيل" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "اترك تفاصيل السياسة" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "ترك إخطار الحالة" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "ترك قالب إعلام الحالة" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "نوع الاجازة" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "اسم نوع الاجازة" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "لا يمكن تخصيص نوع الاجازه {0}, لأنها إجازة بدون راتب\\n
    \\nLeave Type {0} cannot be allocated since it is leave without pay" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "لا يمكن ترحيل نوع اﻹجازة {0}\\n
    \\nلا يمكن ترحيل النوع {0} الخاص بالاجازه" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "نوع الإجازة {0} غير قابل للضبط" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "اجازة من دون راتب" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "لا تتطابق الإجازة بدون أجر مع سجلات {} المعتمدة" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "إجازة التطبيق مرتبطة بمخصصات الإجازة {0}. لا يمكن تعيين طلب الإجازة كإجازة بدون أجر" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "لا يمكن تخصيص اجازة قبل {0}، لان رصيد الإجازات قد تم تحوبله الي سجل تخصيص اجازات مستقبلي {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "الاجازة لا يمكن تطبيقها او إلغائها قبل {0}، لان رصيد الإجازات قد تم تحويله الي سجل تخصيص إجازات مستقبلي {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "الاجازات" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "الأوراق المخصصة" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "الأجزات في السنة" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "ترك" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "دورة الحياة" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "إدخال سداد القرض" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "الموقع / معرف الجهاز" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "الإقامة المطلوبة" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "نوع السجل" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "نوع السجل مطلوب لتسجيلات الوقوع في التحول: {0}." + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "الحقول الإلزامية المطلوبة لهذا الإجراء:" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "مارس" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "تسجيل الحضور" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "حدد الحضور استنادًا إلى "فحص الموظف" للموظفين المعينين لهذا التحول." + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "حضور مسجل" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "حضور مسجل HTML" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "أقصى فائدة المبلغ" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "أقصى فائدة المبلغ (سنويا)" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "أقصى الفوائد (المبلغ)" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "أقصى الفوائد (سنويا)" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "أقصى مبلغ الإعفاء" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "لا يمكن أن يكون أقصى مبلغ للإعفاء أكبر من الحد الأقصى لمبلغ الإعفاء {0} من فئة الإعفاء الضريبي {1}" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "الحد الأقصى للدخل الخاضع للضريبة" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "اقصى عدد ساعات عمل بسجل التوقيت" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "الحد الأقصى لحمل الأوراق المعاد توجيهها" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "الحد الأقصى للمبلغ المعفى" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "الحد الأقصى للإعفاء المبلغ" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "الحد الأقصى للإجازة المسموح بها في نوع الإجازة {0} هو {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "مايو" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "تفضيل الوجبة" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "طبي" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "المسافة المقطوعة" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "الحد الأدنى من الدخل الخاضع للضريبة" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "طريقة السفر" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "طريقه الدفع مطلوبه لإجراء الدفع\\n
    \\nMode of payment is required to make a payment" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "ورقة الحضور الشهرية" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "أكثر من اختيار واحد لـ {0} غير مسموح به" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "اسم المنظم" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "صافي الراتب" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "صافي الأجر لا يمكن أن يكون أقل من 0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "صافي الراتب المبلغ" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "صافي الأجر لا يمكن أن يكون بالسالب\\n
    \\nNet pay cannot be negative" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "معرف الموظف الجديد" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "إنشاء تخصيص إجازة جديدة" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "الإجازات الجديدة المخصصة (بالأيام)" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "لم يتم العثور على أي موظف\\n
    \\nNo employee found" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "لم يتم العثور على موظف لقيمة حقل الموظف المحدد. '{}': {}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "لا أوراق مخصصة للموظف: {0} لنوع الإجازة: {1}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "لم يتم العثور على خطط التوظيف لهذا التصنيف" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "لم يتم العثور على أي نشاط أو هيكل راتب إفتراضي للموظف {0} للتواريخ المدخلة\\n
    \\nNo active or default Salary Structure found for employee {0} for the given dates" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "لم يتم إضافة مصاريف إضافية" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "لم يتم العثور على سجل إجازة للموظف {0} في {1}" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "لا مزيد من التحديثات" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "لا توجد ردود من" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "لم يتم العثور على أي زلة الراتب لتقديم المعايير المذكورة أعلاه أو زلة الراتب قدمت بالفعل" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "غير يوميات" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "غير نباتي" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "لا شيء للتغيير" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "مدة الاشعار" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "أبلغ المستخدمين عن طريق البريد الإلكتروني" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "نوفمبر" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "عدد الموظفين" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "عدد المناصب" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "خارج" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "أكتوبر" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "قراءة عداد المسافات" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "شروط العرض" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "في تاريخ" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "في الخدمة" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "في إجازة" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "الموافقون فقط هم من يمكنهم الموافقة على هذا الطلب." + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "يمكن إعتماد الطلبات التي حالتها 'معتمدة' و 'مرفوضة' فقط\\n
    \\nOnly Leave Applications with status 'Approved' and 'Rejected' can be submitted" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "يمكن فقط تقديم طلب التحول بالحالة "موافق عليه" و "مرفوض"" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "يمكن فقط إلغاء التخصيص المنتهي" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "يمكن فقط للمستخدمين الذين لديهم دور {0} إنشاء تطبيقات إجازة متأخرة" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "لم يتم تعيين قائمة العطلات الاختيارية لفترة الإجازة {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "ضرائب ورسوم أخرى" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "بدلات أخرى" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "وقت خروج" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "الكتابة فوق هيكل الهيكل المرتب" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "رقم PAN" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "حساب PF" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "مبلغ PF" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "قرض PF" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "دوام جزئى" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "برعاية جزئية ، يتطلب التمويل الجزئي" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "سياسة كلمة المرور" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "لا يمكن أن تحتوي سياسة كلمة المرور على مسافات أو واصلات متزامنة. سيتم إعادة هيكلة التنسيق تلقائيًا" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "لم يتم تعيين سياسة كلمة المرور لمرتبات الراتب" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "حساب الدفع إلزامي" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "أيام الدفع" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "دفع {0} من {1} إلى {2}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "دفع الرواتب" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "جدول الرواتب" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "الرواتب الموظف التفاصيل" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "الدورة الزمنية لدفع الرواتب" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "رقم الراتب" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "فترة المرتبات" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "جدول الرواتب الفترة التاريخ" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "فترات الرواتب" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "إعدادات دفع الرواتب" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "لا يمكن أن يكون تاريخ كشوف المرتبات أكبر من تاريخ إعفاء الموظف." + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "لا يمكن أن يكون تاريخ كشوف المرتبات أقل من تاريخ انضمام الموظف." + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "خصم في المئة" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "الأجرة المدفوعة لكمية العمل المنجز" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "العدد المخطط للمناصب" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "يرجى تأكيد بمجرد الانتهاء من التدريب الخاص بك" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "الرجاء تمكين الحساب الوارد الافتراضي قبل إنشاء مجموعة ملخص العمل اليومي" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "الرجاء إدخال التسمية" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "يرجى تحديد الشركة والتسمية" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "يرجى تحديد موظف" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "الرجاء تحديد الموظف أولاً." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "يرجى اختيار ملف CSV" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "يرجى تعيين كشوف المرتبات على أساس إعدادات الرواتب" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "يرجى تعيين القالب الافتراضي لإشعار إجازة الموافقة في إعدادات الموارد البشرية." + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "يرجى تعيين القالب الافتراضي لإشعار حالة الإجازات في إعدادات الموارد البشرية." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "يرجى تعيين الشركة" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "يرجى تحديد تاريخ الالتحاق بالموظف {0}" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "يرجى إعداد نظام تسمية الموظفين في الموارد البشرية> إعدادات الموارد البشرية" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "يرجى إعداد سلسلة الترقيم للحضور عبر الإعداد> سلسلة الترقيم" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "يرجى حصة ملاحظاتك للتدريب من خلال النقر على "التدريب ردود الفعل" ثم "جديد"" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "يرجى تحديث حالتك لهذا الحدث التدريبي" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "المنطقة المفضلة للسكن" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "حاضر" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "معاينة كشف الراتب" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "إجازة الامتياز" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "فترة التجربة" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "فترة الاختبار" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "عملية الحضور بعد" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "الخصومات الضريبية المهنية" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "مهارة" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "تاريخ العرض" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "الخاصية المضافة بالفعل" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "خصومات صندوق الادخار" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "نشر على الموقع الإلكتروني" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "الغرض من السفر" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "إعادة تخصيص الأوراق" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "تحليلات التوظيف" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "تفاصيل إعادة التزود بالوقود" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "تاريخ المغادرة " + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "الفوائد المتبقية (سنوية)" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "تذكير من قبل" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "ذكر" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "رسائل التذكير" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "سيارة مستأجرة" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "يمكن اختيار السداد من الراتب للقروض لأجل فقط" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "الردود" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "يتطلب التمويل الكامل" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "مطلوب لإنشاء موظف" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "المسؤوليات" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "السيرة الذاتية" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "مكافأة الاحتفاظ" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "الدور المسموح به لإنشاء تطبيق إجازة Backdated" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "جولة إلى أقرب عدد صحيح" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "التقريب" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "الصف # {0}: لا يمكن تعيين المبلغ أو الصيغة لمكون الراتب {1} بمتغير قائم على الراتب الخاضع للضريبة" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "الصف {0} # المبلغ المخصص {1} لا يمكن أن يكون أكبر من المبلغ غير المطالب به {2}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "الصف {0} # المبلغ المدفوع لا يمكن أن يكون أكبر من المبلغ المطلوب مسبقا" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "الصف {0}: {1} مطلوب في جدول النفقات لحجز مطالبة بالنفقات." + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "مكون الراتب" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "مكون الراتب " + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "حساب مكون الراتب" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "نوع مكون الراتب" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "مكون الراتب لكشف المرتبات المبنية على أساس سجلات التوقيت" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "تفاصيل الراتب" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "تفاصيل الراتب" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "دفع الرواتب على أساس طريقة الدفع" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "دفع الرواتب عبر ECS" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "راتب التسجيل" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "كشف الرواتب بناء على سجل التوقيت" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "هوية كشف الراتب" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "قرض كشف الراتب" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "كشف راتب معتمد علي سجل التوقيت" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "كشف الراتب للموظف {0} تم إنشاؤه لهذه الفترة" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "كشف الراتب للموظف {0} تم إنشاؤه لسجل التوقيت {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "تم استحداث كشوف الرواتب" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "قسائم الرواتب المقدمة" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "هيكل الراتب" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "تعيين هيكل الراتب" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "تعيين هيكل الراتب للموظف موجود بالفعل" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "هيكلية الراتب مفقودة" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "تمت معالجة الراتب بالفعل للفترة بين {0} و {1} ، لا يمكن أن تكون فترة طلب اﻹجازة بين نطاق هذا التاريخ.\\n
    \\nSalary already processed for period between {0} and {1}, Leave application period cannot be between this date range." + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "تقسيم الراتب بناءَ على الكسب والاستقطاع." + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "لا يمكن أن يكون المبلغ الموافق عليه أكبر من مبلغ المطالبة في الصف {0}." + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "نقاط المكتسبة" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "يجب أن تكون النقاط أقل من أو تساوي 5\\n
    \\nScore must be less than or equal to 5" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "اختار الحساب الذي سوف تدفع منه" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "اختر الملكية" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "اختر الشروط والأحكام" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "حدد المستخدمون" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "حدد الموظف للحصول على تقدم الموظف." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "دراسة ذاتية" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "ندوة" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "إرسال رسائل البريد الإلكتروني في" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "سبتمبر" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "تفاصيل الخدمة" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "نفقات الصيانة" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "تعيين الحساب الافتراضي لـ {0} {1}" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "الدوام والحضور" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "التحول نهاية الفعلية" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "التحول الفعلي البداية" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "مهمة التحول" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "واجب التحول: {0} تم إنشاؤه للموظف: {1}" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "التحول نهاية" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "طلب التغيير" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "تحول البداية" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "نوع التحول" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "الورديات" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "إظهار الموظف" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "إظهار أوراق جميع أعضاء القسم في التقويم" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "عرض كشف الراتب" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "الإجازات المرضية" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "مهارة" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "اسم المهارة" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "تخطي الحضور التلقائي" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "تخطي تعيين هيكل الرواتب للموظفين التاليين ، لأن سجلات تعيين هيكل الرواتب موجودة بالفعل ضدهم. {0}" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "المبلغ المساند" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "خطة التوظيف" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "تفاصيل خطة التوظيف" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "خطة التوظيف {0} موجودة بالفعل للتسمية {1}" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "معيار الإعفاء الضريبي" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "تواريخ البدء والانتهاء ليست في فترة كشوف المرتبات الصالحة ، ولا يمكن حساب {0}." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "العنصر الإحصائي" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "خيارات المخزون" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "وقف المستخدمين من طلب إجازة في الأيام التالية." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "يعتمد بشكل صارم على نوع السجل في فحص الموظف" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "تم تخصيص الهياكل بنجاح" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "تاريخ التقديم" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "تقديم دليل" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "الموافقة كشف الرواتب" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "إرسال هذا لإنشاء سجل الموظف" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "تقديم قسائم الرواتب وإنشاء قيد دفتر اليومية ..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "تقديم قسائم الرواتب ..." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "عرض موجز" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "فئة الإعفاء الضريبي" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "الإعفاء من الضرائب" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "الضريبة على الراتب الإضافي" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "الضريبة على الفائدة المرنة" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "بلاطة الراتب الخاضع للضريبة" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "بلاطات الراتب الخاضعة للضريبة" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "الضرائب والرسوم على ضريبة الدخل" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "سيارة اجره" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "تحديثات الفريق" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "فترة طلب اﻹجازة تقع في فترة عطلة رسمية، يجب إختيار فترة أخرى.\\n
    \\nThe day(s) on which you are applying for leave are holidays. You need not apply for leave." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "جزء من الأجر اليومي الواجب دفعه مقابل حضور نصف يوم" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "سيتم حماية كلمة مرور المرسل بالبريد الإلكتروني للموظف ، وسيتم إنشاء كلمة المرور بناءً على سياسة كلمة المرور." + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "الوقت بعد وقت بدء التحول عندما يُعتبر تسجيل الوصول متأخرًا (بالدقائق)." + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "الوقت الذي يسبق وقت نهاية التحول عندما يتم تسجيل المغادرة في وقت مبكر (بالدقائق)." + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "الوقت الذي يسبق وقت بدء التحول الذي يتم خلاله فحص تسجيل الموظف للحضور." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "نظرية" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "أيام العطل لهذا الشهر أكثر من أيام العمل.\\n
    \\nThere are more holidays than working days this month." + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "لا توجد وظائف شاغرة في إطار خطة التوظيف {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "هذا الموظف لديه بالفعل سجل بنفس الطابع الزمني. {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "هذا يستند على حضور الموظف" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "سيؤدي هذا إلى تقديم قسائم الراتب وإنشاء الدخول إلى دفتر الأستحقاق. هل تريد المتابعة؟" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "الوقت بعد نهاية النوبة التي يتم خلالها تسجيل المغادرة للحضور." + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "توقيت" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "لكمية" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "يجب أن يكون إلى تاريخ أكبر من من تاريخ" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "إلى المستخدم" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "حتى الآن لا يمكن أن يكون مساويا أو أقل من التاريخ" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "حتى الآن لا يمكن أن يكون أكبر من تاريخ إعفاء الموظف." + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "حتى الآن لا يمكن أن يكون أقل من من تاريخ" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "حتى الآن لا يمكن أن يكون أكبر من تاريخ تخفيف الموظف" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "إجمالي الغياب" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "إجمالي المبلغ الفعلي" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "إجمالي المبلغ المدفوع مقدما" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "مجموع المبلغ المسدد" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "إجمالي المبلغ المطالب به" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "إجمالي المبلغ المعلن" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "مجموع الخصم" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "إجمالي المخارج المبكرة" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "إجمالي الدخل" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "مجموع الميزانية التقديرية" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "مجموع التكلفة التقديرية" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "مجموع مبلغ الإعفاء" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "مجموع الإدخالات المتأخرة" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "مجموع أيام الإجازة" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "مجموع الإجازات" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "إجمالي الاجازات المخصصة" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "اجمالي الاوراق مقطوعه" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "إجمالي الحضور" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "الإجمالي الكمية الموافق عليه" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "مجموع النقاط" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "لا يمكن أن يكون إجمالي المبلغ المدفوع أكبر من المبلغ الإجمالي المعتمد" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "إجمالي بالحروف" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "إجمالي الإجازات المخصصة إلزامي لنوع الإجازة {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "عدد ساعات العمل الكلي يجب ألا يكون أكثر من العدد الأقصى لساعات العمل {0}" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "قطار" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "بريد المدرب الإلكتروني" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "اسم المدرب" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "التدريب" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "تاريخ التدريب" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "حدث تدريب" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "تدريب الموظف للحدث" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "حدث التدريب:" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "أحداث التدريب" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "ردود الفعل على التدريب" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "برنامج تدريب" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "نتيجة التدريب" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "نتيجة تدريب الموظفين" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "دورات تدريبية" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "تاريخ التحويل" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "السفر" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "سلف السفر المطلوبة" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "السفر من" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "تمويل السفر" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "خط سير الرحلة" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "طلب السفر" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "تكاليف طلب السفر" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "يسافر إلى" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "نوع السفر" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "نوع من الإثبات" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "الحضور بدون علامات لعدة أيام" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "أيام غير محددة" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "أيام غير محددة" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "غير المسددة المطالبة النفقات" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "إجازات غير مستخدمة" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "تحديث الرد" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "رفع الحضور" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "رفع HTML" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "الشواغر" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "لا يمكن أن تكون الوظائف الشاغرة أقل من الفتحات الحالية" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "التحقق من صحة الحضور" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "التحقق من صحة حضور الموظف ..." + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "القيمة / الوصف" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "القيمة مفقودة" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "متغير" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "متغير على أساس الخاضع للضريبة" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "نباتي" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "دخول السيارة" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "خدمة المركبة" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "تحذير: طلب اﻹجازة يحتوي على الايام التالية الّتي يمنع فيها اﻹجازة\\n
    \\nWarning: Leave application contains following block dates" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "إدراج موقع الويب" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "تاريخ انتهاء العمل" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "العمل من التاريخ" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "العمل من المنزل" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "ملخص العمل ل {0}" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "عملت في عطلة" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "أيام العمل" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "ساعات العمل حساب على أساس" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "ساعات العمل عتبة الغياب" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "ساعات العمل عتبة لمدة نصف يوم" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "ساعات العمل أدناه التي يتم وضع علامة الغائب. (صفر لتعطيل)" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "ساعات العمل أدناه التي يتم وضع علامة نصف يوم. (صفر لتعطيل)" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "ورشة عمل" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "غير مصرح لك الموافقة على المغادرات التي في التواريخ المحظورة" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "أنت لست موجودًا طوال اليوم (الأيام) بين أيام طلب الإجازة التعويضية" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "لا يمكنك طلب التحول الافتراضي الخاص بك: {0}" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "يمكنك فقط إرسال ترك الإلغاء لمبلغ سداد صالح" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "ألغيت" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "أنشأ" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "إعادة النظر" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "التعليقات" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "مسجلة" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "عام" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} تم تخصيصه بالفعل للموظف {1} للفترة {2} إلى {3}" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0} موجود بالفعل للموظف {1} والمدة {2}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "{0} صالح بعد {1} أيام عمل" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "تم إنشاء {0} بنجاح!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} ليس في قائمة عطلات اختيارية" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} يجب تسليمها" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}: البريد الإلكتروني للموظف غير موجود، وبالتالي لن يتم إرسال البريد الإلكتروني" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "{0}: من {0} من نوع {1}" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "{} مقبول" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/bs.po b/apps/erpnext/src/hrms/hrms/locale/bs.po new file mode 100644 index 000000000..5d773db24 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/bs.po @@ -0,0 +1,11517 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-24 12:05\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Bosnian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: bs\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: bs_BA\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr " Platne liste koje počinju od ovog datuma ili nakon njega bit će uzete u obzir za obračun zaostalih plaćanja" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr " Prekini vezu plaćanja prilikom otkazivanja predujma personala" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "\"Od datuma\" ne može biti kasnije ili jednako \"Do datuma\"" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "% Iskorištenost (B + NB) / T" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "% Iskorištenost (B/T)" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "'employee_field_value' i 'timestamp' su obavezni." + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") za {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "...Preuzimanje Personala u toku" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0,25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "01:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "05:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "08:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "Osnovni iznos nije postavljen za sljedeći personal: {0}" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "Primjer: SAL-{first_name}-{date_of_birth.year}
    Ovo će generisati lozinku poput SAL-Jane-1972" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "Ukupan broj dodijeljenih dopusta je veći od broja dana u periodu dodjele" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "

    Pomoć

    \n\n" +"

    Napomene:

    \n\n" +"
      \n" +"
    1. Koristi polje base za korištenje osnovne plate personala
    2. \n" +"
    3. Koristi kratice komponente plate u uslovima i formulama. BS = Basic Salary
    4. \n" +"
    5. Koristi naziv polja za detalje o personalu u uslovima i formulama. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Koristi naziv polja iz Plate u uvjetima i formulama. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direktan iznos se također može unijeti na osnovu stanja. Vidi primjer 3
    \n\n" +"

    Primjeri

    \n" +"
      \n" +"
    1. Obračun osnovne plate na osnovu base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. HRA Obračun na osnovu osnovne plateBS\n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. TDS Obračun na osnovu tipa zaposlenjaemployment_type\n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "

    Primjeri Uvjeta

    \n" +"
      \n" +"
    1. Primjena poreza ako je personal rođen između 31-12-1937 i 01-01-1958 (Personal u dobi od 60 do 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Primjena poreza prema spolu personala
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Primjena poreza prema komponenti plaće
      \n" +"Condition: base > 10000
    " + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "
    Poludnevni Personal
    " + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "
    Neobilježeni Personal
    " + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "
    " + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "Transakcije & Izvještaji" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Postavke & Izvještaji" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "
    {0}{1}
    " + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "Zahtjev za posao za {0} koji je zatražio {1} već postoji: {2}" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "Prijateljski podsjetnik na važan datum za naš tim." + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "{0} postoji između {1} i {2}(" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "Odsutan" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "Dani Odsutnosti" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "Zapisi o Odsustvu" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "Broj Računa" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "Vrsta računa treba biti postavljena na {0} za račun za isplatu plate {1}, molimo vas da postavite i pokušate ponovo" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "Račun {0} se ne podudara s {1}" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "Knjigovodstvo & Plaćanje" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "Knjogovodstveni Izvještaji" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "Računi nisu postavljeni za Komponentu Plate {0}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "Obračun" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "Zaostale Obračunske Obaveze" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "Obračunska Komponenta" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "Obračunska komponenta može se postaviti samo za Obračunsku Komponentu Plate." + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "Obračunska Komponenta može se postaviti samo za Fleksibilne Komponente Plate s obračunskim metodama isplate." + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "Za Fleksibilne Komponente Plate s obračunskim metodama isplate mora se postaviti Obračunska Komponenta." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "Obračunski Nalog Knjiženja za plate od {0} do {1}" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "Obračun i isplata na kraju obračunskog perioda" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "Obračunava se po ciklusu, plaća se samo prilikom podnošenja zahtjeva" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "Nagomilane Beneficije" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "Izvještaj Nagomilane Zarade" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "Obračunati iznos {0} je manji od isplaćenog iznosa {1} za Beneficije {2} u periodu obračuna plate {3}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "Radnja pri Potvrdi" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "Naziv Aktivnosti" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "Stvarni Iznos" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "Stvarni Unovčivi Dani" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "Stvarno trajanje prekovremenog rada" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "Stvarna stanja nisu dostupna jer se zahtjev za odsustvo proteže na različite dodjele odsustva. Još uvijek možete podnijeti zahtjev za odsustvo koje će biti nadoknađeno prilikom sljedeće dodjele." + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "Dodaj dane u Sedmici" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "Dodaj Svojstva Personala" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "Dodaj Trošak" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "Dodaj povratne informacije" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "Dodaj porez" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "Dodaj u Detalje" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "Dodaj neiskorištene praznike iz prethodnih dodjela" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "Dodaj neiskorištene praznike iz dodjela prethodnog perioda praznika u ovu dodjelu" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "Dodane komponente poreza iz Postavki Komponente Plate jer struktura plata nije imala nikakvu poresku komponentu." + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "Dodato Detaljima" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "Dodatni Iznos" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "Dodatne Informacije " + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "Dodatni Penzioni Fond" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "Dodatna Plata" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "Dodatna Plata " + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "Dodatna Plata za bonus za preporuku može se kreirati samo na osnovu preporuke personala sa statusom {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "Dodatna Plata za ovu komponentu plate sa omogućenim {0} već postoji za ovaj datum" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "Dodatna Plata: {0} već postoji za komponentu plate: {1} za period {2} i {3}" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "Adresa Organizatora" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "Podesi Dodjelu" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "Podešavanje uspješno kreirano" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "Tip Podešavanja" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "Predujam" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "Račun Predujma je obavezan. Molimo vas da postavite Standard Račun Predujma u registar {0} i podnesete ovaj dokument." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "Valuta Računa Predujma {} treba biti ista kao valuta plaće {}. Odaberi istu valutu Računa Predujma" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "Plaćen Predujam (Valuta Poduzeća)" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "Napredni Filteri" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "Sav rezultat od kursnih razlika u iznosu od {0} su knjiženi preko {1}" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "Svi Ciljevi" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "Svi Poslovi" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "Svu dodijeljenu imovinu treba vratiti prije podnošenja" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "Svi obavezni zadaci za kreiranje personala još nisu završeni." + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "Dodijeli na osnovu Pravila Odsustva" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "Dodijeli Dopust" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "Dodijeli Odsustvo {0} personalu?" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "Dodijeli na Dan" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "Dodijeljeni Iznos (Valuta Kompanije)" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "Dodijeljeni Dopust" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "Dodijeljeno putem" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "Dodjeljivanje Dopusta" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "Datum dodjele" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "Detalji Dodjele" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "Dodjela je istekla!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "Dodjela je veća od maksimalno dozvoljenog {0} za tip odsustva {1}" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "Dodjela za Podesiti" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "Dodjela je preskočena zbog prekoračenja godišnje dodjele utvrđene u politici o odsustvu" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "Dodjela je preskočena zbog maksimalnog ograničenja dodjele odsustva postavljenog u vrsti odsustva. Molimo povećajte ograničenje i pokušajte ponovo neuspješnu dodjelu." + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "Dozvoli prijavu personala sa mobilne aplikacije" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "Dozvoli Naplatu" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "Dozvoli Praćenje Geolokacije" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "Dozvoli Zahtjev za Odsustvo Nakon (Radnih Dana)" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "Dozvoli Dodjelu Više Smjena za Isti Datum" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "Dozvoli Negativno Stanje" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "Dozvoli Prekomjernu Dodjelu" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "Dozvoli Izuzeće od Poreza" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "Dozvoli Korisnika" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "Dozvoli Korisnike" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "Dozvoli odjavu nakon završetka smjene (u minutama)" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "Omogući zahtjev za puni iznos beneficija" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "Dozvoli sljedećim korisnicima da odobre Zahtjev Odsustva za blokirane dane." + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "Omogućava dodjelu više odsustva od broja dana u periodu dodjele." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "Naizmjenični unosi kao PRIJAVA i ODJAVA tokom iste smjene" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "Iznos na osnovu Formule" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "Iznos na osnovu Formule" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "Iznos Potraživanja putem Potraživanja Troškova" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "Iznos Troškova" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "Iznos plaćen na ime ove naplate" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "Iznos planiran za odbitak preko plate" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "Iznos ne smije biti manji od nule" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "Iznos koji je plaćen na ime ovog predujma" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "Već postoji dokument o zaostalim plaćama za {0} sa strukturom plate {1} u obračunskom periodu {2}" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "Zapis o prisustvu je povezan sa ovom prijavom. Otkaži prisustvo prije promjene vremena." + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "Godišnja Dodjela" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "Godišnja Dodjela je premašena" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "Godišnja Plata" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "Godišnji Iznos Oporezivanja" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "Bilo koji drugi detalji" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "Bilo koja druga primjedba, vrijedan truda koji bi trebao ući u zapisnik" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "Primjenjiva Komponenta Zarade" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "Primjenjive Komponente Plate" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "Primjenjivo u slučaju Introdukcije Personala" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "Adresa e-pošte podnosioca zahtjeva" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "Ime Kandidata" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "Ocjena Kandidata" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "Kandidat za Posao" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "Ime Kandidata" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "Prijava" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "Status Prijave" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "Period prijave ne može biti u dva zapisa o dodjeli" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "Period prijave ne može biti izvan perioda raspodjele odsustva" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "Prijave Primljene" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "Prijave Primljene:" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "Odnosi se na Poduzeće" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "Primijeni / Odobri Praznike" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "Primijeni Odmah" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "Prijava za Državni Praznik" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "Prijava za Vikend" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "Datum Imenovanja" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "Pismo Imenovanja" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "Šablon Pisma Imenovanja" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Sadržaj pisma o Imenovanju" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "Procjena" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "Ciklus Procjene" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "Cilj Procjene" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "Procjena Ključnih Rezultata Područja" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "Povezivanje Procjene" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "Pregled Procjene" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "Šablon Procjene" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "Cilj Šablona Procjene" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "Nedostaje Šablon Procjene" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "Naziv Šablona Procjene" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "Šablon Ocjenjivanja nije pronađen za neke pozicije." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "Kreiranje Ocjenjivanja je u redu čekanja. Može potrajati nekoliko minuta." + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "Procjena {0} već postoji za personal {1} za ovaj Ciklus Procjenjivanja ili period koji se preklapa" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "Ocjena {0} ne pripada {1}" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "Ocjenitelj" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "Ocijenjeni: {0}" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "Šegrt" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "Odobrenje" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "Status Odobrenja" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "Status Odobrenja mora biti 'Odobren' ili 'Odbijen'" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "Odobri" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "Odobreno" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "Odobravač" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "Odobravači" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "Apr" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "Jeste li sigurni da želite izbrisati prilog" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "Jeste li sigurni da želite izbrisati {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "Jeste li sigurni da želite e-poštom poslati odabrane platne liste?" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "Jeste li sigurni da želite odbiti Preporuku Personala?" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "Zaostaci" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "Komponenta Zaostalih Plaćanja" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "Komponenta zaostalih plaćanja ne može se postaviti za komponente plate na osnovu oporezive plate." + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "Datum početka zaostalih plaćanja" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "Zaostaci" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "Datum i Vrijeme Dolaska" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "Prema vašoj dodijeljenoj Strukturi Plata, ne možete se prijaviti za beneficije" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "Trošak Povrata Imovine za {0}: {1}" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "Dodijeljena Imovina" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "Dodijeli Strukturu Plata {0}?" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "Dodijeli Smjenu" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "Dodijelite Raspored Smjena" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "Dodjeli Strukturu" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "Dodjeljivanje Strukture Plate" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "Dodjela Strukture u toku..." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "Dodjela Struktura u toku..." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "Dodjela na osnovu" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "Povezana Ponuda Posla" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "Povezani Dokument" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "Povezani Tip Dokumenta" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "Mora biti odabran najmanje jedan intervju." + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "Priložiti Dokaz" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "Pokušano" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "Prisustvo" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "Kalendar Prisutnosti" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Broj Prisustva" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "Datum Prisustva" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "Prisustvo od Datuma" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "Prisustvo od datuma i prisustvo do datuma je obavezno" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "ID Prisustva" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "Prisustvo Obilježeno" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "Zahtjev za Prisustvo" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "Istorija Zahtjeva za Prisustvom" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "Postavke Prisustva" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "Prisustvo do Datuma" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "Prisustvo Ažurirano" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "Upozorenja Prisustvu" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "Datum Prisustva {0} ne može biti prije od datuma pridruživanja {1}: {2}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "Prisustvo za sav personal po ovom kriterijumu je već navedeno." + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "Prisustvo za {0} je već navedeno za preklapajuću smjenu {1}: {2}" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "Prisustvo za {0} je već navedeno za datum {1}: {2}" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "Prisustvo za {0} je već navedeno za sljedeće datume: {1}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "Prisustvo za naredne datume će biti preskočeno/zamenjeno prilikom slanja" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "Prisustvo od {0} do {1} je već navedeno za {2}" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "Prisustvo je navedeno za sav personal između izabranih datuma obračuna plata." + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "Prisustvo je na čekanju za ovaj personal između odabranih datuma obračuna plata. Navedi prisustvo da nastavite. Pogledaj {0} za detalje." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "Prisustvo je uspješno navedeno" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "Prisustvo nije prijavljeno za {0} jer je praznik." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "Prisustvo nije prijavljeno za {0} jer je {1} na odsustvu." + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "Prisustvo će se automatski navesti tek nakon ovog datuma." + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "Pregled Liste Zahtjeva Prisustva" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "Učesnici" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "Odlasci" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "Avg" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "Postavke Automatskog Prisustva" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "Automatska Naplata Odsustva" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "Automatizirano na osnovu Napretka Cilja" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "Automatska dodjela odsustva nije uspjela za sljedeće zarađeno odsustvo: {0}. Provjeri {1} za više detalja." + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "Automatski preuzima svu imovinu koja je dodijeljena personalu, ako postoji" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "Automatski ažuriraj Zadnju Prijavu" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "Dostupno Odsustvo" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "Dostupni Dopusti" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "Prosječna Ocjena Povratnih Informacija" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "Prosječna Ocjena" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "Prosjek postignutih ciljeva, rezultata povratnih informacija i rezultata samoprocjene" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "Prosječna ocjena pokazanih vještina" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "Prosječna Ocjena Povratnih Informacija" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "Prosječna Iskorištenost" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "Prosječna Iskorištenost (Fakturisano)" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "Čeka se Odgovor" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "Zahtjev za Odsustvo sa zastarjelim datumom je ograničena. Postavi {} u {}" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "Bankovni Unosi" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "Bankarska Doznaka" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "Baza" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "Baza & Varijabla" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "Započni prijavu prije početka smjene (u minutama)" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "Ispod je lista predstojećih praznika za vas:" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "Beneficija" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "Iznos Beneficija" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "Detalji Beneficije" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "Iznos beneficije komponente {0} prelazi {1}" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "Iznos beneficije komponente {0} treba biti veći od 0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "Iznos beneficija {0} za komponentu plate {1} ne bi trebao biti veći od maksimalnog iznosa beneficija {2} postavljenog u {3}" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "Beneficije" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "Iznos Fakture" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "Fakturisani Sati" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "Fakturisani Sati (B)" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "Dvomjesečno" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "Rođendanski Podsjetnik" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "Rođendanski Podsjetnik 🎂" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "Rođendani" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "Blokiraj Datum" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "Blokiraj Dane" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "Blokiraj Praznike na važne dane." + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "Bonus" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "Iznos Bonusa" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "Datum Uplate Bonusa" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "Datum Uplate Bonusa ne može biti prošli datum" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "Grana: {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "Masovna Dodjela" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "Pravila Dodjele Masovnog Odsustva" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "Masovna Dodjela Strukture Plata" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "Prema standard postavkama, Konačni Rezultat izračunava se kao prosjek Rezultata Cilja, Rezultata Povratnih Informacija i Rezultata Samoocjenjivanja. Omogućite ovo za postavljanje druge formule" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "Godišnja Plata" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "Izračunaj Konačni Rezultat na osnovu formule" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "Izračunaj Iznos Nagrade na osnovu" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "Obračunaj Radne Dane Obračuna Plata na osnovu" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "Proračun (u danima)" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "Pozivi" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "Otkazivanje u redu za čekanje" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "Nije moguće promijeniti vrijeme" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "Nije moguće dodijeliti odsustvo izvan perioda dodjele {0} - {1}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "Nije moguće dodijeliti više odsustava zbog maksimalnog ograničenja dodjele odsustava od {0} u dodjeli pravila odsustava" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "Nije moguće dodijeliti više odsutva zbog maksimalnog dozvoljenog odsustva od {0} u tipu odsustva {1}." + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "Nije moguće prekinuti smjenu nakon datuma završetka" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "Nije moguće prekinuti smjenu prije datuma početka" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "Nije moguće otkazati Dodjelu Smjene: {0} jer je povezana sa Prisustvom: {1}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "Nije moguće otkazati Dodjelu Smjenae {0} jer je povezano sa Prijavom Personala: {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "Ne može se kreirati Platni List za pridruživanje personala nakon Obračunskog Perioda" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "Ne može se kreirati Platni List za personal otpušten prije Obračunskog Perioda" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "Nije moguće kreirati kandidata za posao za zatvoreno radno mjesto" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "Nije moguće kreirati ili mijenjati transakcije prema Ciklusu Ocjenjivanja sa statusom {0}." + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "Nije moguće pronaći aktivni Period Odsustva" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "Nije moguće navesti prisustvo za neaktivan personal {0}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "Nije moguće poslati. Za neki personal prisustvo nije navedeno." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "Nije moguće ažurirati dodjelu za {0} nakon podnošenja" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "Nije moguće ažurirati status grupa ciljeva" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "Prenesi Naprijed" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "Proslijeđeno Odsustvo" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "Povremeni Dopust" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "Uzrok Pritužbe" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "Promijenjen status sa {0} na {1} i status za drugu polovinu na {2} putem Zahtjeva za prisustvo" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "Promijenjen status iz {0} u {1} putem Zahtjeva Prisustva" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "Promjena '{0}' u {1}." + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "Promjena KRA u ovom roditeljskom cilju će uskladiti sve podređene ciljeve sa istim KRA, ako ih ima." + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "Provjeri {1} za više detalja" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "Provjeri Zapisnik Grešaka {0} za više detalja." + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "Prijavi se" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "Odjavi se" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "Provjeri Slobodna Radna Mjesta kod kreiranja Ponude za Posao" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "Provjerite {0} za više detalja" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "Prijavi se" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "Datum Prijave" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "Odjavi se" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "Datum Odjave" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "Polumjer Prijave" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "Podređeni članovi se mogu kreirati samo pod članovima tipa 'Grupa'" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "Odaberite kako se izračunava iznos prekovremenog rada po satu:\n" +"
    1. Fiksna satnica: Fiksna, ručno unesena satnica.
    2. \n" +"
    3. Na osnovu komponenti plate:\n\n" +"(Zbir odabranih iznosa komponenti) ÷ (Dani isplate) ÷ (Standardni dnevni sati)
    " + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "Odaberi datum kada želite kreirati ove komponente kao zaostale obaveze." + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "Zahtjevaj Beneficiju za" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "Potraživanje Troška" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "Zatraženo" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "Zahtjevani Iznos" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "Zahtijevani iznos {0} prelazi maksimalni iznos koji ispunjava uslove za zahtjev {1}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "Zahtjevani iznos od {0} treba biti veći od 0" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "Zahtjevi" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "Obrađeno" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "Kliknite {0} da promijenite konfiguraciju, a zatim ponovo sačuvajte platni list" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "Zatvoreno" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "Zatvara se" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "Zatvara se:" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "Završne Napomene" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "Informacije o Poduzeću" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "Zahtjev Kompenzacijskog Odsustva" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "Kompenzator Isključen" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "Završavanje Introdukcije" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "Svojstva komponente i reference " + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "Uslov & Formula" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "Pomoć za Uslov i Formulu" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "Uslov & Formula" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "Uvjeti i Varijabla Formule i primjer" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "Konferencija" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "Potvrdi {0}" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "Uzmi u obzir period odgode" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "Uzmi u obzir obilježeno prisustvo ya vrijeme praznika" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "Uzmi u Obzir Deklaraciju Izuzeća Plaćanja Poreza" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "Uzmi u obzir neoznačeno Prisustvo kao" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "Objedini Tip Dopusta" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "Kontakt Broj" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "Kopija Poziva/Objave" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "Nije moguče potvrditi neke Platne Liste: {}" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "Nije moguće ažurirati cilj" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "Nije moguće ažurirati ciljeve" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "Neuspješno brisanje rasporeda za zemlju" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "Postavljanje zemlje nije uspjelo" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "Zemlja Prebivališta" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "Kurs" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "Propratno Pismo" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "Kreiraj Dodatnu Platu" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "Kreiraj Procjene" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "Kreiraj intervju" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "Kreiraj Kandidata za posao" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "Kreiraj Ponudu Posla" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "Kreirajte novi ID za Personal" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "Kreiraj Listu Prekovremenog Rada za kvalifikovan personal" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "Kreiraj Listu Prekovremenog Rada" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "Kreiraj Platni List" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "Kreiraj Platne Listove" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "Kreiraj Smjene nakon" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "Kreiranje Procjena u toku" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "Kreiranje unosa plaćanja u toku......" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "Kreiranje Platnih Listića u toku..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "Kreiranje {0}..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "Datum Kreiranja" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "Kreiranje nije uspjelo" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "Kreiranje Dodjela Strukture Plata je u redu za čekanje. Može potrajati nekoliko minuta." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "Kreiranje {0} je stavljeno u red za čekanja. Može potrajati nekoliko minuta." + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "Kriterijum na osnovu kojeg personal treba procijeniti u Povratnim Informacijama Efektivitetai Samoprocjene" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "Valuta " + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "Valuta odabrane Tabele Poreza na Platu bi trebala biti {0} umjesto {1}" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "Trenutna Godišnja Plata" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "Trenutni Broj" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "Trenutni Poslodavac " + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "Trenutna Profesija" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "Tekući Mjesečni Porez na Platu" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "Trenutna vrijednost Odometra bi trebala biti veća od vrijednosti posljednjeg očitavanja Odometra {0}" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "Trenutno očitavanje Odometra " + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "Trenutne Ponude Posla" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "Trenutni period obračuna plata" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "Trenutna Tabela" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "Trenutno Radno Iskustvo" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "Trenutno ne postoji {0} period odsustva za ovaj datum za kreiranje/ažuriranje raspodjele odsustva." + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "Zaseban Raspon" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "Naziv Ciklusa" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "Ciklusi" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "Dnevni Sažetak Rada" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "Grupa Dnevnog Sažetka Rada" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "Korisnik Grupe Dnevnog Sažetka Rada" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "Odgovori Dnevnog Sažetka Rada" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "Prekoračen je raspon datuma" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "Datum se ponavlja" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "Datum {0} se ponavlja u Detaljima Prekovremenog Rada" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "Datumi & Razlog" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "Datumi zasnovani na" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "Dani za koje su praznici blokirani za ovo odjeljenje." + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "Dani za poništavanje" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "Broj dana za poništavanje mora biti veći od nule." + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "Debitni Broj Računa" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "Decembar" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "Odluka na čekanju" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "Deklaracije" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "Deklarisani Iznos" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Odbij puni porez na odabrani datum obračuna plata" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "Odbij Porez za Nepodneseni Dokaz Izuzeća od Poreza" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "Odbitak" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "Zaostale obaveze po odbitku" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "Izvještaji Odbitaka" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "Odbitak od Plate" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "Odbici" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "Odbici prije obračuna poreza" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "Standard Iznos" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "Standard Bankovni/Gotovinski račun će se automatski ažurirati u Upisu platnog dnevnika kada se izabere ovaj način." + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "Standard Osnovna Plata" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "Standard Račun Predujma" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "Standard Račun Izdataka" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "Standard Račun za Isplatu Plata" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "Standard Struktura Plata" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "Standard Smjena" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "Izbriši Prilog" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "Izbriši {0}" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "Odobravač Odjela" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "Otvorena Radna Mjesta po Odjelu" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "Odjel {0} ne pripada: {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "Odjel: {0}" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "Datum Polaska" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "Zavisi od Plaćenih Dana" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "Zavisi od Plaćenih Dana" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "Opis Otvorenog Radnog Mjesta" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "Vještina Imenovanja" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "Naziv: {0}" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "Detalji Sponzora (Ime, Lokacija)" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "Prijava i Odjava na osnovu" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "Onemogući {0} za komponentu {1}, kako biste spriječili da se iznos dvaput odbije, jer njegova formula već koristi komponentu zasnovanu na plaćenim danima." + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "Onemogući {0} ili {1} da nastavite." + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "Onemogućavanje Guranih Obavještenja u toku..." + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "Ne uključuj u Knjigovodstvene Unose" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "Ne uključuj u Ukupno" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "Ne uključuj u Ukupno" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "Želite li ažurirati kandidata za posao {0} kao {1} na osnovu rezultata ovog intervjua?" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "Dokument {0} nije uspio!" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "Domaći" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "Duplicirano Prisustvo" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "Otkriven Duplikat Zahtjeva" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "Dupliciraj Zahtjev za Posao" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "Dupliciraj Podešavanje Odsustva" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "Dvostruka Prepisana Plata" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "Dvostruko Zadržana Plata" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "GREŠKA({0}): {1}" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "Rana Odjava" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "Rana Odjava do" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "Period Odgode Ranog Izlaza" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "Rane Odjave" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "Zarađeni Dopust" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "Učestalost Zarađenog Odsustva" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "Raspored Zarađenog Odsustva" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "Zarađeni Dopusti" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "Zarađena odsustva se dodjeljuju prema konfiguriranoj učestalosti putem planera." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "Zarađena odsustva se automatski dodjeljuju putem planera na osnovu godišnje dodjele postavljene u Politici odsustva: {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "Zarađena odsustva su odsustva koje je personal zaradio nakon što je radio u poduzeću određeno vrijeme. Ako ovo omogućite, dodijelit će se odsustva na proporcionalnoj osnovi automatskim ažuriranjem dodjele odsustva za odsustvo ovog tipa u intervalima postavljenim od strane 'Učestalost Zarađenog Odsustva'." + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "Zarada" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "Zaostale Obaveze" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "Komponenta Zarade" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "Komponenta Zarade je obavezna za Bonus Preporuke Personala." + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "Zarada" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "Zarada & Odbici" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "Uredi Artikl Troška" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "Uredi Porez na Troškove" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "Na snazi od" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "Na snazi do" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "Na snazi od" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "Pošalji Platni List" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "Pošalji Platni List e-poštom" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "E-pošta Poslana" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "Šalje platni List e-poštom zaposleniku na osnovu željene e-pošte odabrane u Postavkama Personala" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "Bankovni Račun" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "Predujamni Račun" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "Stanje Predujma" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "Sažetak Predujma" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "Analiza" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "Alat Prisustva" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "Zahtjev za Beneficije" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "Detalji Zahtjeva za Beneficije" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "Potraživanje za Beneficije" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "Detalji Beneficija" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "Registar Beneficija" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "Beneficije" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "Rođendan" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "Introdukcijske Aktivnosti" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "Prijava" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "Istorija Prijava" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "Centar Troškova" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "Detalji" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "E-pošta" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "Postavke Otkaza" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "Otkazi" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "Kriterijumi Povratnih Informacija" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "Ocjena Povratnih Informacija" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "Kvalifikacija" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "Žalba" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "Zdravstveno Osiguranje" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "Korištenje radnih sati na osnovu Radnog Lista" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "Slika" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "Stimulacija" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "Informacija" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "Informacija" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "Radno Iskustvo" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "Stanje Odsustva" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "Sažetak Stanja Odsustva" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "Kredit" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "Imenovanje na osnovu" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "Introdukcija" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "Šablon Introdukcije" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "Introdukcija: {0} već postoji za kandidata za posao: {1}" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "Ostali Prihodi" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "Povratne informacije Efektiviteta" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "Unaprijeđenje" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "Detalji Unaprijeđena" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "Unaprijeđenje se ne može podnijeti prije datuma unaprijeđenja" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "Istorija Karekteristike Personala" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "Preporuka" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "Preporuka {0} već postoji za e-poštu: {1}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "Preporuka od {0} se ne odnosi na bonus za preporuke." + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "Preporuke" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "Odgovorni " + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "Zadržan" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "Otkaz" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "Šablon Otkaza" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "Postavke Personala" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "Vještina" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "Mapa Vještina" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "Vještine" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "Status" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "Kategorija Izuzeća od Poreza" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "Deklaracija Izuzeća od Poreza" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "Kategorija Deklaracije Izuzeća od Poreza" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "Podnošenje Dokaza o Izuzeća od Poreza" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "Detalji Podnošenja Dokaza Izuzeća od Poreza" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "Podkategorija Izuzeća od Poreza" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "Obuka" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "Premještaj" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "Detalj Premještaja" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "Detalji Premještaja" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "Premještaj se ne može podnijeti prije datuma premještaja" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "Predujamni račun {0} treba biti tipa {1}." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "Personal se može imenovati na osnovu Personalnog ID ako je dodijeljen ili putem Serije Imenovanja. Ovdje odaberite željenu opciju." + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "Ime" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "Zapisnik Personala se kreira pomoću odabrane opcije" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "Personal je naveden kao Odsutan zbog nedostajućih prijava." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "Personal je naveden kao Odsutan zbog neispunjavanja praga radnih sati radnog vremena." + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "Personal je označen kao odsutan tokom druge polovine dana zbog nedostajućih prijava." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "Personal {0} : {1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "{0} već ima Zahtjev za prisustvo {1} koji se preklapa s ovim periodom" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "{0} već ima aktivnu smjenu {1}: {2} koja se preklapa u ovom periodu." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "{0} je već predao zahtjev {1} za period obračuna plata {2}" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "{0} se već prijavio za smjenu {1}: {2} koja se preklapa u ovom periodu" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "{0} se već prijavio za {1} između {2} i {3} : {4}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "Personal {0} je već zatražio/la beneficiju '{1}' za {2} ({3}).
    Da bi se spriječile prekomjerne isplate, dozvoljen je samo jedan zahtjev po tipui beneficije u svakom ciklusu obračuna plata." + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "{0} nije aktivan ili ne postoji" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "{0} je odsutan {1}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "{0} nije pronađen među učesnicima obuke." + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "{0} na pola dana {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "{0} razriješen {1} mora biti postavljen kao 'Napustio'" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "Personal: {0} mora raditi minimalno {1} godina za nagradu" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "HTML Personala" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "Praznični Personal" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "Personal ne može sami sebi dati povratnu informaciju. Umjesto toga koristi {0}: {1}" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "Poludnevni Personal HTML" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "Personal će propustiti podsjetnike za praznike od {} do {}.
    Želiš li nastaviti s ovom promjenom?" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "Personal bez Povratnih Informacija: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "Personal bez Ciljeva: {0}" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "Praznični Personal" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "Tip Personala" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "Omogući Automatsko Prisustvo" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "Omogući Odbir Rane Odjave" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "Omogući Odabir Kasne Prijave" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "Omogući Gurana Obavještenja" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "Omogućite ovo da biste koristili određeni multiplikatorj za državne praznike. Ako nije omogučeno, umjesto toga će se koristiti standardni multiplikator." + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "Omogućite ovo da biste koristili određeni multiplikator za vikende. Ako se ne omoguči, koristit će se standardni multiplikator." + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "Omogućeno samo za Komponente Beneficija za personal iz Dodjele Strukture Plata" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "Omogućavanje Guranih Obavještenja u toku..." + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "Unovčavanje" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "Iznos Naplate" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "Dani Naplate" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "Dani Naplate ne mogu premašiti {0} {1} prema postavkama Tipa Odsustva" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "Primijenjeno Ograničenje Naplate" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "Šifriraj Platne Liste u e-pošti" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "Datum završetka ne može biti prije datuma početka" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "Datum Završetka: {0}" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "Vrijeme završetka ne može biti prije vremena početka" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "Unesi Intervju Rundu" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "Unesite vrijednost koja nije nula za podešavanje." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "Unesi standardno radno vrijeme za normalan radni dan. Ovi sati će se koristiti u izračunima izvještaja kao što su iskorištenost sati personala i analiza profitabilnosti projekta." + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "Unesi broj dana neplaćenog odsustva koje želite poništiti. Ova vrijednost ne može premašiti ukupan broj dana neplaćenog odsustva registrovanih za odabrani mjesec" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "Unesite broj odsustva koje želite dodijeliti za period." + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "Unesite godišnje iznose beneficija" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "Unesi {0}" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "Greška pri kreiranju {0}" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "Greška pri brisanju {0}" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "Greška pri preuzimanju PDF-a" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "Greška u formuli ili stanju" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "Greška u formuli ili stanju: {0} u Tablici Poreza na Platu" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "Greška u nekim redovima" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "Greška pri ažuriranju {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "Greška prilikom procjene {doctype} {doclink} u redu {row_id}.

    Greška: {error}

    Savjet: {description}" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "Procijenjen Trošak po Poziciji" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "Evaluacija" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "Datum Evaluacije" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "Metoda evaluacije se ne može promijeniti jer postoje postojeće procjene kreirane za ovaj ciklus" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "Detalji Događaja" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "Veza Događaja" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "Lokacija Događaja" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "Naziv Događaja" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "Status Događaja" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "Svake dvije Sedmice" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "Svake tri Sedmice" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "Svake četiri Sedmice" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "Svaka Valjana Prijava i Odjava" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "Svake Sedmice" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "Svi, čestitajmo im godišnjicu rada!" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "Svi, čestitamo {0} rođendan." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "Ispit" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "Devizni kurs unesene uplate u odnosu na Račun Predujma" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "Isključi Praznike" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "Isključeno {0} Nenaplativo Odsustvo za {1}" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "Oslobođen Poreza na Platu" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "Izuzeće" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "Kategorija Izuzeća" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "Dokaz o Izuzeću" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "Podkategorija Izuzeća" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "Postojeći Zapis" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "Postojeće Dodjele Smjena" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "Otkaz je Potvrđen" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "Detalji Odlazka" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "Otkazni Intervju" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "Otkazni Intervju na Čekanju" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "Sažetak Otkaznog Intervjua" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "Otkazni Intervju {0} već postoji za: {1}" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "Otkazni Upitnik" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "Obavijest Otkaznog Upitnika" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "Šablon Obavijesti Otkaznog Upitnika" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "Otkazni Upitnik na Čekanju" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "Web Forma Otkaznog Intervjua" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "Odlasci (Ovaj Mjesec)" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "Očekivana Prosječna Ocjena" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "Očekuje se" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "Očekivana Kompenzacija" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "Očekivani raspon mjesečnih plata" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "Očekivani Skup Vještina" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "Očekivani Skup Vještina" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "Odobravatelj Troškova" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "Odobravatelj Troškova je obavezan za Potraživanju Troškova" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "Račun Potraživanja Troškova" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "Predujam Potraživanja Troškova" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "Detalji Potraživanja Troškova" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "Sažetak Potraživanja Troškova" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "Tip Potraživanja Troškova" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "Potraživanje Troškova za Zapisnik Vozila {0}" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "Potraživanje Troškova {0} već postoji za Zapisnik Vozila" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "Potraživanja" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "Datum Troška" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "Troškovni Artikal" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "Dokaz Troškova" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "Porez na Troškove" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "Porezi i Naknade Troškova" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "Tip Troška" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "Troškovi & Predujmovi" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "Povuci Dodjelu" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "Istek Proslijeđenog Odsustva (Dana)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "Istekni Odsustvo" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "Isteklo Odsustvo" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "Isteklo Odsustvo" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "Objašnjenje" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "Eksportiranje u toku..." + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "Nije uspjelo kreiranje/podnošenje {0} za:" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "Brisanje standard postavki za zemlju {0} nije uspjelo." + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "Preuzimanje PDF-a nije uspjelo: {0}" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "Nije uspjelo slanje obavještenja o ponovnom rasporedu intervjua. Konfigurišite vaš račun e-pošte." + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "Postavljanje standard postavki za zemlju {0} nije uspjelo." + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "Nije uspjelo slanje nekih dodjela pravila o odsustvu:" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "Ažuriranje statusa kandidata za posao nije uspjelo" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "Neuspješno {0} {1} za:" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "Detalji o Neuspjehu" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "Razlog Neuspjeha" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "Neuspjeh Automatske Dodjele Zarađenog Odsustva" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "Feb" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "Broj Povratnih Informacija" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "HTML Povratne Informacije" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "Ocjeene Povratnih Informacija" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "Šablon Obavijesti Podsjetniku Povratnih Informacija" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "Rezultat Povratnih Informacija" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "Povratne Informacije su poslane" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "Sažetak Povratnih Informacija" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "Povratne informacije su već poslane za intervju {0}. Otkaži prethodne povratne informacije o intervjuu {1} da nastavite." + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "Povratne informacije ne mogu se snimiti za odsutan personal." + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "Povratne informacije {0} su uspješno dodane" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "Preuzmi Geolokaciju" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "Preuzmi Detalje Prekovremenog Rada" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "Preuzmi Smjenu" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "Preuzmi Smjene" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "Preuzimanje Personala u toku" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "Preuzima se Smjena" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "Preuzima se vaše Geolokacija" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "Pregled Datoteke" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "Popuni formu i spremi je" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "Popunjeno" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "Filtriraj Personal" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "Filtriraj po Smjeni" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "Konačna Odluka" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "Konačni Rezultat" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "Formula Konačnog Rezultata" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "Prva Prijava i Zadnja Odjava" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "Prvi Dan" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "Ime " + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "Fiskalna Godina {0} nije pronađena" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "Fiksna Satnica" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "Upravljanje Voznog Parka" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "Fleksibilna Beneficija" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "Fleksibilne Beneficije" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "Fleksibilna Komponenta" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "Let" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "Puna i Konačna Odluka na čekanju" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "Prati putem e-pošte" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "Hrana" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "Za Naziv " + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "Za" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "Za dan uzetog odsustva, ako i dalje plaćate (recimo) 50% dnevne plate, unesite 0,50 u ovo polje." + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "Formula" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "Dio Primjenjive Zarade " + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "Dio Dnevne Plate za pola dana" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "Dio Dnevne Plate po odsustvu" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "Djelimični Trošak" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "Frappe HR" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "Od Iznosa" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "Od datuma mora biti prije Do datuma" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "Datum od {0} ne može biti nakon datuma završetka perioda obračuna plata {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "Od datuma {0} ne može biti nakon datuma razrješenja {1}" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "Datum od {0} ne može biti prije datuma početka perioda obračuna plata {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "Od datuma {0} ne može biti prije datuma zapošljenja {1}" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "Od datuma ne može biti prije datuma zapošljenja" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "Od datuma ne može biti prije datuma zapošljenja." + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "Odavde možete omogućiti napaltu za ostala stanja odsustva." + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "Od {0} do {1}" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "Od (Godina)" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "Fuksija" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "Trošak Goriva" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "Troškovi Goriva" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "Cijena Goriva" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "Količina Goriva" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "Potpuna i Konačna Imovina" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "Potpuni i Konačni Izvanredni Dogovor" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "Puno Radno Vrijeme" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "Potpuno Sponzorisano" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "Finansirani Iznos" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "Budući Porez na Platu" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "Budući datumi nisu dozvoljeni" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "Račun Rezultata" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "Greška Geolokacije" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "Vaš trenutni pretraživač ne podržava geolokaciju" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "Preuzmi Detalje iz Deklaracije" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "Preuzmi Personal" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "Preuzmi Zahtjeve za Posao" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "Preuzmi Šablon" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "Preuzmi aplikaciju na svoj uređaj za lak pristup i bolje iskustvo!" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "Preuzmit aplikaciju na svoj iPhone za lak pristup i bolje iskustvo" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "Bez Glutena" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "Idi na Prijavu" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "Idi na stranicu za ponovno postavljanje lozinke" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "Napredak Cilja (%)" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "Rezultat Cilja" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "Rezultat Cilja (%)" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "Rezultat Cilja (težinski)" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "Postotak Napretka do cilja ne može biti veći od 100." + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "Cilj bi trebao biti usklađen sa istim KRA kao i njegov nadređeni cilj." + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "Cilj bi trebao biti dodjeljen istom personalu kao i njegov nadređeni cilj." + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "Cilj bi trebao pripadati istom Ciklusu Ocjenjivanja kao i njegov nadređeni cilj." + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "Cilj je uspješno ažuriran" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "Ciljevi su uspješno ažurirani" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "Ocjena" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "Nagrada" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "Primjenjiva Komponenta Nagrade" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "Pravilo Nagrade" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "Tabela Pravila Nagrade" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "Žalba" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "Žalba Naspram" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "Žalba Naspram Stranke" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "Detalji Žalbe" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "Tip Žalbe" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "Bruto Zarada" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "Bruto Plata" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "Bruto Plata (Valuta Kompanije)" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "Bruto Do Danas u Godini" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "Bruto Do Danas u Godini (Valuta Poduzeća)" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "Napredak grupnog cilja se automatski izračunava na osnovu podređenih ciljeva." + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "Personal" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "Personal & Obračun Plata" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "Postavke Resursa & Obračun Plata" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "Nadzorna Tabla Resursa" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "Postavke Resursa" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "HRMS" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "Pola Dana" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "Poludnevni Datum" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "Poludnevni Datum je obavezan" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "Poludnevni Datum bi trebao biti između Od Datuma i Do Datuma" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "Poludnevni datum bi trebao biti između Datuma Početka Rada i Datuma Završetka Rada" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "Poludnevni Personal Zaglavlje" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "Poludnevni Zapisi" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "Poludnevni Datum bi trebao biti između Od Datuma i Do Datuma" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "Ima Certifikat" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "Zdravstveno Osiguranje" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "Naziv Zdravstvenog Osiguranja" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "Broj Zdravstvenog Osiguranja" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "Poduzeće Zdravstvenog Osiguranja" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "Zdravo {}! Ova e-pošta je podsjeta na predstojeće praznike." + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "Zdravo, {0}👋" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "Zapošljavanje" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "Postavke Zapošljavanja" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "Lista Praznika za Fakultativni Dopust" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "Praznici ovog Mjeseca." + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "Praznici ove Sedmice." + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "Horizontalni Prekid" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "Satnica (Valuta Poduzeća)" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "Satnica" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "Plaćeni dani za najam kuće se preklapaju sa {0}" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "Datumi iznajmljivanja kuće potrebni za obračun izuzeća" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "Razmak između datuma iznajmljivanja kuće trebao bi biti najmanje 15 dana" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "IFSC" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "IFSC Kod" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "PRIJAVA" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "Broj identifikacionog Dokumenta" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "Tip Identifikacionog Dokumenta" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "Ako je navedeno, Obračun Plate će se knjižiti prema personalu" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "Ako je odabrano, fleksibilne beneficije se uzimaju u obzir samo ako postoji zahtjev za beneficije" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "Ako je odabrano, skriva i onemogućuje polje Zaokruženi Ukupan Iznos u Platnim Listovima" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "Ako je odabrano, kreiranje prekovremenih platnih lista može se obraditi kao dio obrade plata" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "Ako je navedeno, puni iznos će biti odbijen od oporezivog prihoda prije obračuna poreza na platu bez ikakve deklaracije ili podnošenja dokaza." + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "Ako je omogućeno, Deklaracija Izuzeća od Poreza će se uzeti u obzir za obračun poreza na platu." + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "Ako je omogućeno, automatsko prisustvo će biti navedeno za praznike ako postoje prijave personala" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "Ako je omogućeno, odbija plaćene dane za odsustvo za praznike. Uobičajeno, praznici se smatraju plaćenim" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "Ako je omogućeno, iznos će biti isključen iz knjigovodstvenih unosa tokom kreiranja dnevnika." + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "Ako je omogućena, komponenta će se smatrati komponentom poreza i iznos će se automatski obračunati prema konfigurisanim tabelama poreza na platu" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "Ako je omogućena, komponenta će se uzeti u obzir u izvještaju o odbicima poreza na platu" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "Ako je omogućeno, komponenta neće biti prikazana na platnom listu ako je iznos nula" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "Ako je omogućeno, ukupan broj zahtjeva pristiglih za ovo radno mjesto bit će prikazane na web stranici" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Ako je omogućeno, vrijednost navedena ili obračunata u ovoj komponenti neće doprinijeti zaradi ili odbitcima. Međutim, na njegovu vrijednost mogu se odnositi druge komponente koje se mogu dodati ili oduzeti. " + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "Ako je omogućena, ova komponenta omogućava nagomilavanje iznosa bez njihovog dodavanja u zaradu. Nagomilani saldo se prati u Registru Personalnih Beneficija i može se isplatiti kasnije po potrebi." + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "Ako je omogućeno, ova komponenta će biti uključena u izračune zaostalih obaveza" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "Ako je omogućeno, ukupan broj radnih dana će uključivati i praznike, a to će smanjiti vrijednost plate po danu" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "Ako je veće od nule, ovo postavlja maksimalni iznos beneficija koji se može dodijeliti bilo kom iz personala" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "Ako nije označeno, lista će se morati dodati svakom Odjeljenju gdje se mora primijeniti." + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Ako je odabrana, vrijednost navedena ili obračunata u ovoj komponenti neće doprinijeti zaradama ili odbitcima. Međutim, na njegovu vrijednost mogu se odnositi druge komponente koje se mogu dodati ili oduzeti. " + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "Ako je postavljeno, radno mjesto će se automatski zatvoriti nakon ovog datuma" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "Ako koristite kredite u platnim listama, instalirajte aplikaciju {0} sa Frappe Cloud Marketplace-a ili GitHub-a da nastavite koristiti integraciju kredita s platnim spiskom." + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "Import Prisustvo" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "U Vrijeme" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "U slučaju bilo kakve greške tokom ovog pozadinskog procesa, sistem će dodati komentar o grešci na ovom unosu Obračuna Plate i vratiti se na status Podnešeno" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "Poticaj" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "Iznos Poticaja" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "Uključuje Podređena Poduzeća" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "Uključuje Praznike" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "Uključi praznike u Ukupan broj Radnih Dana" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "Uključi praznike unutar dopusta kao dopust" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "Izvor Prihoda" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "Iznos Poreza na Platu" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "Podjela Poreza na Platu" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "Komponenta Poreza na Platu" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "Obračun Poreza na Platu" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "Porez na Platu Odbijen do Datuma" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "Odbici Poreza na Platu" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "Tabela Poreza na Platu" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "Tabela Porez na Platu Ostale Naknade" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "Tabela Poreza na Platu je obavezna jer Struktura Plate {0} ima poresku komponentu {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "Tabela Poreza na Platu mora biti na snazi na ili prije datuma početka obračunskog perioda: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "Tabela Poreza na Platu nije postavljena u Dodjeli Strukture Plata: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "Tabela Poreza na Platu: {0} je onemogućena" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "Prihodi iz Drugih Izvora" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "Nepravilna Težinska Dodjela" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "Označava broj odsustva koji se ne mogu naplatiti iz stanja odsustva. Npr. sa stanjem od 10 i 4 odsustva koja se ne mogu naplatiti, možete naplatit 6, dok se preostala 4 mogu prenijeti ili isteći" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "Kontrola" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "Instaliraj" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "Instaliraj Frappe HR" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "Nedovoljno Stanje" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "Nedovoljno stanje odsustva za tip odsustva {0}" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "Iznos Kamate" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "Račun Prihoda Kamata" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "Interni" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "Međunarodni" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "Internet" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "Intervju" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "Intevju Detalj" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "Intevju Detalji" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "Povratne Informacije Intervjua" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "Podsjetnik Povratne Informacije Intervjua" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "Povratne Informacije Intervjua {0} su uspješno poslane" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "Intervju nije Odgođen" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "Intervju Podsjetnik" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "Šablon Obavijesti Podsjetnika Intervjua" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "Intervju je uspješno ponovo zakazan" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "Intervju Runda" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "Runda Intervjua {0} primjenjiva je samo za Imenovanje {1}" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "Runda Intervjua {0} je samo za imenovanje {1}. Kandidat za posao prijavio se za poziciju {2}" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "Zakazani Datum Intervjua" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "Status Intervjua" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "Sažetak Intervjua" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "Tip Intervjua" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "Intervju: {0} Odložen" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "Intervjuer" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "Intervjueri" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "Intervjui" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "Intervjui (Ove Sedmice)" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "Nevažeća Komponenta Obračuna" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "Nevažeća Dodatna Plata" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "Nevažeća komponenta zaostataka" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "Nevažeći Iznosi Beneficija" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "Nevažeći Datumi" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "Nevažeći neplačeni dani su poništeni" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "Nevažeći Unos Registra Odsustva" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "Nevažeći Račun Uplate Plate. Valuta računa mora biti {0} ili {1}" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "Nevažeća Vremena Smjena" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "Navedeni su nevažeći parametri. Navedi tražene argumente." + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "Istražen" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "Detalji Istrage" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "Pozvani" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "Referenca Fakture" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "Je Dodijeljeno" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "Primjenjivo za Preporučeni Bonus" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "Prenesi Naprijed" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "Kompenzacijsko" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "Kompenzacijsko Odsustvo" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "Zarađeno Odsustvo" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "Isteklo" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "Fleksibilna Beneficija" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "Komponenta Poreza na Platu" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "Neplaćeno Odsustvo" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "Neobavezno Odsustvo" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "Djelimično Plaćeno Odsustvo" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "Ponavlja se" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "Ponavljajuća Dodatna Plata" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "Plata Oslobođena" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "Plata Zadržana" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "Porez Primjenjiv" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "Jan" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "Kandidat za Posao" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "Izvor Kandidata za Posao" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "Kandidat za posao {0} je uspješno kreiran." + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "Kandidatima za posao nije dozvoljeno da se pojave dva puta na istom krugu intervjua. Intervju {0} već zakazan za kandidata za posao {1}" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "Prijava za Posao" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "Put Prijave za Posao" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "Opis Posla" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "Ponuda za Posao" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "Uslov Ponude za Posao" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "Šablon Uslova Ponude za Posao" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "Uslovi Ponude za Posao" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "Status Ponude za Posao" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "Ponuda za Posao: {0} je već za kandidata za posao: {1}" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "Otvoreno Radno Mjesto" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "Povezano Otvoreno Radno Mjesto" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "Šablon Otverenih Radnih Mjesta" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "Otvorena Radna Mjesta" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "Otvorena Radna Mjesta za naziv {0} su već otvorena ili je zapošljavanje završeno prema Planu Zapošljavanja {1}" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "Zahtjev za Posao" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "Zahtjev za posao {0} je povezan sa otvaranjem radnog mjesta {1}" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "Profil posla, potrebne kvalifikacije itd." + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "Poslovi" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "Datum Pridruživanja" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "Juli" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "Juni" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "Ključno Polje Efektiviteta" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "Metoda Vrijednovanja Ključnog Polja Efektiviteta" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "Ključno Polje Efektiviteta ažurirano za sve podređene ciljeve." + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "Ključno Polje Efektiviteta naspram Ciljeva" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "Ključno Polje Efektiviteta" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "Ključno Polje Efektiviteta" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "Ključno Polje Odgovornosti" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "Ključno Polje Rezultata" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "Nevažeči neplaćeni dani ({0}) ne odgovaraju stvarnom ukupnom iznosu korekcija platnog spiska ({1}) za {2} od {3} do {4}" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "Poslednji Dan" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "Posljednja poznata uspješna sinhronizacija prijave personala. Resetirajte ovo samo ako ste sigurni da su svi zapisnici sinkronizirani sa svih lokacija. Nemojte mijenjati ovo ako niste sigurni." + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "Zadnja Vrijednost Odometra " + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "Zadnja Sinhronizacija Prijave" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "Zadnja {0} je bila u {1}" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "Kasne Prijave" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "Kasna Prijava" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "Postavke Kasne Prijave i Rane Odjave za Automatsko Prisustvo" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "Kasna Prijava od" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "Period Odgode za Kasnu Prijavu" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "Vrijednosti geografske širine i dužine obavezne su za prijavu." + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "Širina: {0}°" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "Odsustvo" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "Podesi Odsustvo" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "Podešavanje odsustva za ovu dodjelu već postoji: {0}. Izmijeni postojeće podešavanje." + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "Dodjela Odsustva" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "Dodjela Odsustva postoji" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "Dodjela Odsustva" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "Zahtjev Odsustva" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "Period Prijave Odsustva ne može biti između dvije neuzastopne dodjele odsustva {0} i {1}." + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "Obaviještenje Odobrenja Odsustva" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "Šablon Obaviještenja Odobrenja Odsustva" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "Odobravatelj Odsustva" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "Odobravatelj Odsustva je obavezan u Aplikaciji Odsustva" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "Ime Odobravatelja Odsustva" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "Stanje Odsustva" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "Stanje Osustva prije Zahtjeva" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "Listu Blokiranog Odsustva" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "Dozvoli Listu Blokiranog Odsustva" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "Dozvoljena Lista Blokiranog Odsustva" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "Datum Liste Blokiranog Odsustva" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "Datumi Liste Blokiranog Odsustva" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "Naziv Liste Blokiranog Odsustva" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "Odsustvo Blokirano" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "Kontrolni Panel Odsustva" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "Detalji Odsustva" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "Naplata Odsustva" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "Iznos Naplaćenog Odsutva po Danu" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "Istorija Odsustva" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "Registar Odsustva" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "Unos Registra Odsustva" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "Unosi Registra Odsustva Do Datuma mora biti nakon Od Datuma. Trenutno je Od Datuma {0}, a Do Datuma {1}" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "Period Odsustva" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "Pravila Odsustva" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "Dodjela Pravila Odsustva" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "Preklapanje Dodjela Pravila Odsustva" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "Detalj Pravila Odsustva" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "Detalji Pravila Odsustva" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "Pravila Odsustva: {0} već je dodijeljeno za {1} za period {2} do {3}" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "Obavijest Statusa Odsustva" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "Šablon Obavještenja Statusa Odsustva" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "Tip Odsustva" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "Naziv Tipa Odsustva" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "Tip Odsustva može biti kompenzacijsko ili zarađeno odsustvo." + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "Tip Odsustva može biti neplaćeno ili djelomično plaćeno odsustvo" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "Tip Odsustva je obavezan" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "Tip Odsustva {0} ne može se dodijeliti jer je to neplaćeno odsustvo" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "Tip Odsustva {0} ne može se prenijeti naprijed" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "Tip Odsutva {0} nije moguće unovčiti" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "Neplaćeno Odsustvo" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "Neplaćeno Odsustvo ne odgovara odobrenim {} zapisima" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "Dodjela odsustva se preskače za {0}, jer je broj koji treba dodijeliti 0." + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "Dodjela Odsustva {0} je povezana sa zahtjevom za odsustvo {1}" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "Odsustvo je već dodijeljeno za ovu Dodjelu Pravila Odsustva" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "Postavke Odsustva i Potraživanja Troškova" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "Zahtjev Odsustva povezan je s dodjelom odsustva {0}. Zahtjev Odsustvao ne može se postaviti kao neplaćeno odsustvo" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Odsustvo se ne može dodijeliti prije {0}, jer je stanje odsustva već preneseno u budući zapis o dodjeli odsusva {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Odsustvo se ne može primijeniti/otkazati prije {0}, jer je stanje odsustva već preneseno u budući zapis o dodjeli odsustva {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "Odsustvo tipa {0} ne može biti duže od {1}." + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "Odsustvo(i) je isteklo" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "Odsustvo(a) na čekanju za Odobrenje" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "Uzeto Odsustvo(a)" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "Odsustvo" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "Odsustvo & Praznici" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "Odsustvo Nakon Podešavanja" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "Odsustvo Dodjeljeno" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "Odsustvo Isteklo" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "Odsustvo na čekanju za Odobrenje" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "Odsustvo za Tip Odsustva {0} neće biti proslijeđeni jer je prosljeđivanje onemogućeno." + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "Godišnje Odsustvo" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "Podešavanje Odsustava" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "Odsustva možete iskoristiti za odmor na kojem ste radili. Možete zatražiti kompenzacijski vanredno osustvo koristeći zahtjev za kompenzacijsko odsustvo. Kliknite {0} da saznate više" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Otišao(la)/Napistio(la)" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "Radni Vijek" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "Lime" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "Poveži ciklus i navedi KRA sa ciljem da ažurirate rezultatocjenjivanja na osnovu napretka cilja" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "Povezani Projekt {} i zadaci su izbrisani." + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "Kreditni Račun" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "Kreditni Proizvod" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "Otplata Kredita" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "Upis Otplate Kredita" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "Kredit se ne može otplatiti od plate {0} jer se plata obrađuje u valuti {1}" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "Lociranje..." + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "Lokacija / ID Uređaja" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "Potreban Smještaj" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "Odjavi se" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "Tip" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "Tip Zapisnika je obavezan za prijave koje padaju u smjeni: {0}." + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "Prijava nije uspjela" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "Prijavite se na Frappe HR" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "Dužina: {0}°" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "Niži Raspon" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "MICR" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "Napravi Bankovni Unos" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "Zahtjev Beneficiie Obavezan" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "Obavezna polja potrebna za ovu radnju:" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "Ručno Procjenjivanje" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "Ručno" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "Mart" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "Preuzmi Prisustvo" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "Navedi Automatsko Prisustvo za Praznike" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "Navedi kao Završeno" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "Navedi kao U toku" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "Navedi kao {0}" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "Navedi prisustvo kao {0} za {1} na odabrane datume?" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "Navedi prisustvo na osnovu 'Prijave Personala' za personal koji je dodijeljen ovoj smjeni." + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "Navedi prisustvo za postojeće zapise prijava/odjava prije promjene postavki smjene" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "Navedi {0} kao završen?" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "Navedi {0} {1} kao {2}?" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "Navedeno Prisustvo" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "HTML Navedenog Prisustva" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "Navedi Prisustvo" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "Maksimalni Iznos koji se može Zatražiti" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "Maksimalni Iznos Beneficije" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "Maksimalni Iznos Beneficije (Godišnje)" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "Maksimalne Beneficije (Iznos)" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "Maksimalne Beneficije (Godišnje)" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "Maksimalni Izuzeti Iznos" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "Maksimalni Izuzeti Iznos ne može biti veći od maksimalnog iznosa izuzeća {0} Kategorije Izuzeća od Poreza {1}" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "Minmalni Oporezivi Prihod" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "Maksimalno radno vrijeme prema Radnom Listu" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "Maksimalni Iznos Beneficije" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "Maksimalni Broj Proslijeđenog Odsustva" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "Maksimalno Dozvoljeno Uzastopno Odsustvo" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "Maksimalan Broj Uzastopnog Odsustva je prekoračen" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "Maksimalan Broj Naplativog Odsustva" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "Maksimalni Izuzeti Iznos" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "Maksimalni Izuzeti Iznos" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "Maksimalna Dodjela Odsustva po Periodu Odsustva" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "Maksimalan broj dozvoljenih prekovremenih sati" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "Maksimalan broj prekovremenih sati dozvoljenih dnevno" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "Maksimalni godišnji oporezivi dohodak koji ispunjava uslove za potpuno poresko oslobođenje. Porez se ne primjenjuje ako dohodak ne prelazi ovaj limit" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "Maksimalno Naplativo Odsustvo za {0} je {1}" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "Maksimalno dozvoljeno odsustvo za tip odsustva {0} je {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "Maj" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "Preferenca Obroka" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "Zdravstvo" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "Kilometraža" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "Minmalni Oporezivi Prihod" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "Minimalni broj godina za Nagradu" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "Minimalni broj radnih dana obaveznih od datuma pridruživanja da biste mogli da zatražite ovo odsustvo" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "Nedostaje Račun Predujma" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "Nedostaje Obavezno Polje" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "Nedostaju Početni Unosi" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "Nedostaje Datum Otkaza" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "Nedostaju Komponente Plate" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "Nedostaje Porezna Tabela" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "Način Putovanja" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "Način plaćanja je obavezan za plaćanje" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "Mjesec do Danas" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "Mjesec do Danas (Valuta Poduzeća)" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "Mjesečna Lista Prisustva" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "Više od jednog odabira za {0} nije dozvoljeno" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "Višestruke Dodatne Plate sa svojstvom prepisivanja postoje za Komponentu Plate {0} između {1} i {2}." + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "Dodjela Više Smjena" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "Multiplikatori koji prilagođavaju iznos prekovremenog rada po satu za specifične scenarije\n\n" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "Moji Predujmovi" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "Moja Potraživanja" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "Moje Odsustvo" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "Moji Zahtjevi" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "Greška Imena" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "Ime Organizatora" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "Neto Plata" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "Neto Plata (Valuta Poduzeća)" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "Neto Plata" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "Neto Plata ne može biti manja od 0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "Iznos Neto Plate" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "Neto Plata ne može biti negativna" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "Novi ID Personala" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "Novi Artikal Troška" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "Novi PDV Artikla" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "Nova Povratna Informacija" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "Novi Zaposleni (Ovaj Mjesec)" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "Novo Odsustvo Dodijeljeno" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "Novo Dodijeljeno Odsustvo" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "Novo Dodijeljeno Odsustvo (u danima)" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "Nove dodjele smjene biti će kreirane nakon ovog datuma." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "Nije pronađen Bankovni/Gotovinski račun za valutu {0}. Molimo vas da kreirate jedan u {1}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "Personal nije Pronađen" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "Nije pronađen personal za datu vrijednost polja '{}': {}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "Nema odabranog Personala" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "Intervju nije zakazan." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "Nije pronađen Period Odsustva" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "Nema dodijeljenih odsustva za: {0} za Tip Odsustva: {1}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "Nije pronađena Platna Lista za: {0}" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "Nisu pronađene platne liste sa {0} za {1} za obračunski period {2}." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "Nije pronađena dodjela platne strukture za {0} na dan {1}" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "Nije pronađena Dodjela Strukture Plate za {0} na ili prije {1}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "Nema dodjeljene Strukture Plate personalu {0} na dati datum {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "Nema Strukture Plata" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "Nije Odabran Zahtjev za Smjenu" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "Planovi Zapošljavanja nisu pronađeni za ovu poziciju" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "Nije pronađena aktivna dodjela strukture plate za {0} sa strukturom plate {1} na dan početka zaostalih plaćanja {2} ili nakon toga" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "Nije pronađen aktivni personal povezan s ID-om e-pošte {0}. Pokušaj se prijaviti sa svojim ID-om e-pošte ili se obratite svom personalnom upravitelju za pristup." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "Nije pronađena aktivna ili standard struktura plata za personal {0} za date datume" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "Nisu dodani dodatni troškovi" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "Nema predujma" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "Nije pronađena primjenjiva Komponenta Zarade u posljednjoj platnoj listi za Pravilo Nagrađivanja: {0}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "Nisu pronađene primjenjive Komponente Zarade za Pravilo Nagrađivanja: {0}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "Nije pronađena primjenjiva tabela za obračun iznosa nagrade prema Pravilu Nagrađivanja: {0}" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "U postojećim platnim listama nisu pronađene komponente zaostalih plaćanja." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "Nisu pronađene komponente zaostalih plaćanja na platnoj listi. Provjerite je li aktivirana opcija \"Komponenta Zaostalih Plaćanja\" u postavkama \"Komponenta Plate\"." + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "Nisu pronađeni detalji o zaostalim plaćanjima" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "Nisu pronađeni zapisi o prisutnosti za {0} između {1} i {2}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "Nije pronađen zapisnik o Prisutnosti za ovaj kriterij." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "Nije pronađen zapis Prisutnosti." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "Nema zapisa o prisutnosti za kreiranje" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "Nisu pronađene promjene u terminima." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "Nije pronađen personal" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "Nije pronađen personal za navedene kriterije:
    Poduzeće: {0}
    Valuta: {1}
    Račun Isplate Plate: {2}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "Personal nije pronađen za odabrane kriterije" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "Personal nije pronađen sa odabranim filterima i aktivnom strukturom plate" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "Nema dodanih troškova" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "Još uvijek nije primljena povratna informacija" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "Nisu odabrani Artikli" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "Nije pronađena dodjela odsustva za {0} za {1} na dati datum." + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "Nije pronađen yapisnik Odsustva za personal {0} na {1}" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "Nema dodijeljenog odsustva." + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "Nema Više Ažuriranja" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "Broj Pozicija" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "Nema odgovora od" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "Nije pronađen platni list za podnošenje za gore odabrane kriterije ILI je platni list već podnešen" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "Nisu pronađene platne liste" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "Nisu pronađene platne liste za odabrani personal od {0}" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "Nisu dodati porezi" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "Nije pronađena važeća smjena za zapisnik vrijemena" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "Nije Odabrano {0}" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "Nije dodano {0}" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "Nemliječni" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "Neoporezive Zarade" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "Nefakturisani Sati" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "Nefakturisani Sati (NB)" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "Nenaplativo Odsustvo" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "Nevegetarijanski" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "Napomena: Smjena neće biti prepisana u postojećem zapisu prisutnosti" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "Napomena: Ukupan broj dodijeljenog odsustva {0} ne bi trebao biti manji od već odobrenog odsustva {1} za period" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "Napomena: Vaš platni list je zaštićen lozinkom, lozinka za otključavanje PDF-a je formata {0}." + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "Ništa za promijeniti" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "Period Obaveštenja" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "Šablon Obaveštenja" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "Obavijesti korisnike putem e-pošte" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "Nov" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "Broj Personala" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "Broj Pozicija" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "Broj Dopusta" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "Broj Ciklusa Zadržavanja" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "Broj odsustva koji ispunjavaju uslove za naplatu na osnovu postavki tipa odsustva" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "OTP Kod" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "OTP Verifikacija" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "ODJAVA" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "Postignuta Prosječna Ocjena" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "Okt" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "Očitavanje Odometra" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "Vrijednost Odometra" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "Izvan Smjene" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "Izvan Smjene" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "Uslov Ponude" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "Uslovi Ponude" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "Na Datum" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "Na Poslu" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "Na Odsustvu" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "Introdukcija" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "Aktivnosti Introdukcije" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "Introdukcija Počinje" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "Samo Odobravatelji mogu odobriti ovaj zahtjev." + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "Samo popunjeni dokumenti mogu se podnijeti" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "Samo žalba personala sa statusom {0} ili {1} mogu se podnijeti" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "Samo Intervjueru je dozvoljeno da podnesu Povratne Informacije Intervjua" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "Samo Intervjui sa statusom \"Obrađen\" ili \"Odbijen\" mogu se podnijeti." + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "Samo Zahtjevi Odsustva sa statusom \"Odobren\" i \"Odbijen\" mogu se podnijeti" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "Samo Zahtjev Smjene sa statusom \"Odobren\" i \"Odbijen\" može se podnijeti" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "Samo dodjela koja je istekla može se otkazati" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "Samo Intervjuer može podnijeti povratne informacije" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "Samo korisnici sa ulogom {0} mogu kreirati yahtjeve za odsustvo sa zastarjelim datumom" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "Samo {0} ciljevi mogu biti {1}" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "Otvoren & Odobren" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "Otvori Povratne Informacije" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "Otvori sad" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "Ponuda Radnog Mjesta Zatvorena." + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "Izborna Lista Praznika nije postavljena za period odsustva {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "Neobavezno odsustvo su praznici koje personal može izabrati sa liste praznika koju objavljuje poduzeće." + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "Organizacijski Dijagram" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "Ostali Porezi i Naknade" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "Ostalo" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "Vrijeme Ističe" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "Odlazna Plata" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "Prekomjerna Dodjela" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "Ukupna Prosječna Ocjena" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "Preklapajući Zahtjev za Prisustvo" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "Preklapajuće Prisustvo Smjene" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "Preklapajući Zahtjevi za Smjenu" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "Preklapanje Smjena" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "Prekovremeni Rad" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "Obračun Iznosa Prekovremenog Rada" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "Detalji Prekovremenog Rada" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "Trajanje Prekovremenog Rada" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "Trajanje prekovremenog rada za {0} je veće od maksimalno dozvoljenog broja prekovremenih sati" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "Komponenta Plate za Prekovremeni Rad" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "Specifikacija Prekovremenog Rada" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "Greška u kreiranju Specifikacije Prekovremenog Rada za {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "Kreiranje Specifikacije Prekovremenog Rada nije uspjelo" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "Koraci Specifikacije Prekovremenog Rada" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "Greška pri podnoåenju Specifikacije Prekovremenog Radaza {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "Podnošenje Specifikacije Prekovremenog Rada nije uspjelo" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "Specifikacija Prekovremenog Rada podnešena" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "Specifikacija Prekovremenog Rada kreirana je za {0}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "Kreiranje Specifikacije Prekovremenog Rada je u redu čekanja. Može potrajati nekoliko minuta" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "Podnošenje Specifikacije Prekovremenog Rada je u redu čekanja. Može potrajati nekoliko minuta" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "Specifikacija Prekovremenog Rada:{0} je kreirana između {1} i {2}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "Specifikacije Prekovremenog Rada Kreirane" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "Specifikacija Prekovremenog Rada podnesene za {0}" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "Tip Prekovremenog Rada" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "Zarada od prekovremenog rada će biti knjižena u okviru ove komponente plate za isplatu." + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "Prepiši Iznos Strukture Plate" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "PAN Broj" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "Račun Penzionskog Fonda" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "Iznos Penzionskog Fonda" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "Kredit Penzionskog Fonda" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "Obavještenje Progresivne Web Aplikacije" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "Plaćeno preko Platnog Lista" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "Nadređeni Cilj" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "Honorarno" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "Djelomično Sponzorirano, Zahtijeva Djelimično Finansiranje" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "Djelomično Potraživan i Vraćeno" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "Pravila Lozinke" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "Pravila Lozinke ne može sadržavati razmake ili istovremene crtice. Format će se automatski restrukturirati" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "Pravilo lozinke za Platni List nije postavljeno" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "Multiplikatori Platnih Stopa" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "Plati putem Unosa Plaćanja" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "Plaćanje putem Platne Liste" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "Račun Isplate je obavezan za podnošenje Zahtjeva za Trošak" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "Račun za plaćanje je obavezan" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "Datum Plaćanja" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "Plaćeni Dani" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "Pomoć pri Obračunu Plaćenih Dana" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "Ovisi o Danima Plaćanja" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "Obračun Plaćenih Dana su zasnovani na ovim Postavkama Obračuna Plata" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "Plaćanje i Knjigovodstvo" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "Plaćanje {0} od {1} do {2}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "Isplata" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "Način Isplate" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "Isplati neisplaćeni iznos u posljednjem ciklusu obračuna plata" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "Obračun Plata" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "Obračun Plata na osnovu" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "Korekcija Plata" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "Podređena Korekcija Plate" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "Centar Troškova Obračuna Plata" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "Centri Troškova Obračuna Plata" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "Nadzorna Tabla Obračuna Plate" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "Datum Obračuna Plate" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "Detalj Obračuna Plata" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "Otkazivanje Unosa Obračuna Plata je na čekanju. Može potrajati nekoliko minuta" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "Učestalost Obračuna Plata" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "Obračun Plata" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "Broj Obračuna Plata" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "Račun Uplate Obračuna Plata" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "Period Obračuna Plata" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "Datum Perioda Obračuna Plata" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "Periodi Obračuna Plata" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "Izvještaji Obračuna Plata" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "Postavke Obračuna Plata" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "Datum Obračuna Plate ne može biti kasnije od datuma razrješenja personala." + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "Datum Obračuna Plate ne može biti prije od datuma zapošljenja personala." + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "Datum obračuna plate ne može biti u prošlosti. Ovo je kako bi se osiguralo da se zahtjevi podnose za trenutni ili buduće cikluse obračuna plata." + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "Na čekanju (neplaćeni) iznos iz prethodnih predujmova" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "Povrat Imovine na Čekanju" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "Konačni Dogovor u toku" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "Intervjui na Čekanju" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "Upitnici na Čekanju" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "Postotak Odbitka" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "Efektivitet" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "Trajno otkaži {0}" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "Trajno potvrdi {0}" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "Akord" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "Planirani broj Pozicija" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "Omogući Automatsko Prisustvo i prvo dovršite podešavanje." + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "Odaberi Poduzeće" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "Dodijeli Strukturu Plata za {0} primjenjivu od ili prije {1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "Provjeri da li je personal na odsustvu ili postoji li prisustvo sa istim statusom za odabrane dan(e)." + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "Potvrdi nakon što završite obuku" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "Kreiraj novo {0} za datum {1}." + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "Iizbriši {0} da poništite ovaj dokument" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "Omogući standard dolazni račun prije stvaranja Grupe Dnevnih Radnih Sažetaka" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "Unesi Poziciju" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "Popuni podatke za Personal, Datum Registracije i Poduzeće prije nego što preuzmete detalje o prekovremenom radu." + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "Smanji {0} kako biste izbjegli preklapanje vremena smjene sa samom sobom" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "Pogledaj Prilog" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "Odaberi Poduzeće i Poziciju" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "Navedi Personal" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "Navedi Personal" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "Odaberi Filter na osnovu" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "Odaberi Od Datuma i Učestalosti Obračuna Plata" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "Odaberi Od Datuma." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "Odaberi Raspored Smjena i datum(e) dodjele." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "Odaberi Tip Smjene i datum(e) dodjele." + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "Odaberi Poduzeće" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "Odaberi Poduzeće." + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "Odaberi csv datoteku" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "Odaberi Datum." + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "Odaberi Kandidata" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "Odaberi barem jedan Zahtjev Smjene da izvršite ovu radnju." + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "Navedi najmanje jedno iz personala da izvršite ovu radnju." + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "Odaberi barem jedan red da izvršite ovu radnju." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "Odaberi Poduzeće." + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "Navedi Personal" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "Navedi Personal za koje ćete izraditi procjenjivanje" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "Odaberi status Poludnevnog Prisustva." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "Odaberi mjesec i godinu." + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "Odaberi Ciklus Ocjenjivanja." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "Odaberi Status Prisutnosti." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "Navedi Personal za koji želite da navedete prisustvo." + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "Odaberi platne liste za slanje e-poštom" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "Postavi \"Standard Račun Isplate Plata\" u Standard Postavkama Poduzeća" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "Postavi Osnovnu i Najamnu komponentu u {0}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "Postavi komponentu Zarade za Tip Odsustva: {0}." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "Postavi Obračun Plata na osnovu Postavki Obračuna Plata" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "Postavi Datum Otkaza za: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "Postavi raspon datuma kraći od 90 dana." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "Postavi Račun u Komponenti Plate {0}" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "Postavi standard šablon Obavijesti Odobrenju Odsustva u Postavkama Personala." + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "Postavi standard šablon Obavijesti Statusa Odsustva u Postavkama Personala." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "Postavi Šablon Ocjenjivanjaza sve {0} ili odaberi šablon u tabeli Personala ispod." + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "Postavi Poduzeće" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "Postavi Datum zapošljavanja za {0}" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "Postavi Listu Praznika." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "Postavi raspon datuma." + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "Postavi datum otkaza za {0}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "Postavi {0} i {1} u {2}." + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "Postavi {0} za Personal {1}" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "Postavi {0} za Personal {1}" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "Postavi {0}." + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "Podesi Sistem Imenovanja Personala u Personal > Postavke Personala" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "Postavi Seriju Numeracije Prisustva putem Podešavanja > Serija Numerisanja" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "Podijeli Povratne Informacije obuke klikom na 'Povratne Informacije Obukei', a zatim 'Novo'" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "Navedi kandidata za posao kojeg treba ažurirati." + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "Navedi {0} i {1} (ako ih ima), za tačan obračun poreza u budućim platnim listovima." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "Podnesi {0} prije nego što navedeš ciklus kao Završen" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "Ažurirajte svoj status za ovaj događaj obuke" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "Objavljeno" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "Datum Knjiženja" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "Preferirano područje za smještaj" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "Prisutan" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "Trenutni Zapisi" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "Spriječite samoodobrenje za zahtjeve za troškove čak i ako korisnik ima dozvole" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "Spriječi samoodobrenje za odsustvo čak i ako korisnik ima dozvole" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "Pregled Platnog Lista" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "Glavni Iznos" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "Ispisano {0}" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "Privilegirano Odsustvo" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "Probacija" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "Probni Period" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "Obradi Prisustvo Nakon" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "Obradi Unos Obračuna Plata osnovu osoblja" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "Obradi Zahtjeve" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "Obradi Zahtjeva za Smjenu" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "Obradi naplatu odsustva putem posebnog Unosa Plaćanja umjesto Platnog Lista" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "Obradi {0} zahtjev(e) za Smjenu kao {1}?" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "Obrada Zahtjeva u toku" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "Obrada Zahtjeva u toku..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "Obrada Zahtjeva za Smjenu je stavljena u red za čekanja. Može potrajati nekoliko minuta." + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "Profesionalni Porezni Odbici" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "Stručnost" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "Profit" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "Profitabilnost Projekta" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "Unaprijeđenje" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "Datum Unaprijeđenja" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "Svojstvo je već dodano" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "Odbici Fonda Osiguranja" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "Multiplikatorj Državnih Praznika" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "Objavi Primljene Zahtjeve" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "Objavi Raspon Plate" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "Objavi na Web Stranici" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "Namjena & Iznos" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "Razlog Putovanja" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "Odbijena dozvola Guranog Obavještenja" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "Gurana obavještenja su onemogućena" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "Gurana obavještenja su onemogućena na vašoj Web Stranici" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "E-pošta Upitnika poslana" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "Brzi Filteri" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "Brze Veze" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "Radijus unutar kojeg je dozvoljena prijava (u metrima)" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "Ocijeni Ciljeve Ručno" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "Kriterijumi Ocjenjivanja" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "Ocjene" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "Ponovno Dodijeli Odsustvo" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "Razlog za Podešavanje" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "Razlog za Upit" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "Razlog za Zadržavanje Plate" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "Razlog za preskakanje Automatskog Prisustva:" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "Nedavni Zahtjevi za Prisustvom" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "Nedavni Troškovi" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "Nedavno Odsustvo" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "Nedavni Zahtjevi za Smjenu" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "Preporučeno za jedan biometrijski uređaj / prijave putem mobilne aplikacije" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "Povrat Troška" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "Zapošljavanje" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "Analiza Zapošljavanja" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "Smanji" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "Smanjenje maksimalno dozvoljenog broja odsustava nakon dodjele može uzrokovati da planer dodijeli pogrešan broj zarađenih odsustava. Budite oprezni." + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "Smanjenje je veće od {0} dostupnog stanja odsustva {1} za tip odsustva {2}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "Referenca: {0}" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "Status Plaćanja Bonusa za Preporuke" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "Detalji Preporuke" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "Detalji Upućivača" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "Ime Upućivača" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "Promišljanja" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "Detalji Punjenja" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "Odbij" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "Odbij Preporuku" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "Odbijanje" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "Pusti Zadržane Plate" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "Oslobođena" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "Datum Otkaza " + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "Nedostaje Datum Otkaza" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "Preostale Beneficije (Godišnje)" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "Podsjeti Prije" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "Podsjetio" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "Podsjetnici" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "Ukloni ako je nulta vrijednost" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "Iznajmljeni Automobil" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "Otplati od Plate" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "Otplati od Plate može se odabrati samo za oročene kredite" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "Otplati Nezatraženi Iznos iz Plate" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "Ponovi na Dane" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "Odgovori" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "Izvještava" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "Zatraži Prisustvo" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "Zatraži Odsustvo" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "Zatraži Odsustvo" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "Zatraži Smjenu" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "Zatraži Predujam" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "Zatraženo od" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "Zatraženo od (Ime)" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "Zahtijeva Potpuno Finansiranje" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "Potrebne Vještine" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "Obavezno pri kreiranju Personala" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "Odgodi Intervju" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "Odgovornosti" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "Ograniči Zahtjev za Odsustvo sa zastarjelim datumom" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "Rezume Prilog" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "Rezume Veza" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "Rezume Veza" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "Zadržan" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "Bonus Zadržavanja" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "Dob za Penzionisanje (u Godinama)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "Ponovni pokušaj nije uspio" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "Ponovni pokušaj Neuspjelih Dodjela" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "Ponovni Pokušaj Uspješan" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "Ponovni pokušaj dodjela" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "Iznos povrata ne može biti veći od nezatraženog iznosa" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "Pregledajte razne druge postavke u vezi s odsustvom personala i potraživanjem troškova" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "Recenzent" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "Ime Recenzenta" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "Revidirana Godisnja Plata" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "Uloga kojoj je dopušteno pravljenje Zahtjeva za Odsustvo sa zastarjelim datumom" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "Raspored" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "Boje Rasporeda" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "Naziv Runde" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "Zaokruži Radno Iskustvo" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "Zaokružiti na Najbliži Cijeli Broj" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "Zaokruživanje" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "Usmjeri na prilagođenu Web Formu Zahtjeva za Posao" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "Red #{0}: Nije moguće postaviti iznos ili formulu za Komponentu Plate {1} sa varijablom na osnovu Oporezive Plate" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "Red #{0}: Komponenta {1} ima omogućene opcije {2} i {3}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "Red #{0}: Iznos Radnog Lista će prepisati Iznos Komponente Zarade za Komponentu Plate {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "Red Broj {0}: Iznos ne može biti veći od Nepodmirenog iznosa prema Potraživanju Troškova {1}. Nepodmireni iznos je {2}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "Red {0}# Dodijeljeni iznos {1} ne može biti veći od nezatraženog iznosa {2}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "Red {0}# Plaćeni Iznos ne može biti veći od Iznosa Naplate" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "Red {0}# Uplaćeni iznos ne može biti veći od Ukupnog Iznosa" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "Red {0}# Uplaćeni iznos ne može biti veći od traženog iznosa predujma" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "Red {0}: Od (Godina) ne može biti kasnije od Do (Godina)" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "Red {0}: Rezultat cilja ne može biti veći od {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "Red {0}: Uplaćeni iznos {1} je veći od nagomilanog iznosa na čekanju {2} naspram kredita {3}" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "Red {0}: {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "Red {0}: {1} je obavezan u tabeli troškova za knjiženje potraživanja troška." + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "Komponenta Plate" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "Komponenta Plate " + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "Račun Komponente Plate" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "Na osnovu Komponente Plate" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "Tip Komponente Plate" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "Komponenta Plate za Obračun Plate na osnovu Radnog Lista." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "Komponenta Plate {0} ne može se odabrati više od jednom u Personalnim Beneficijama" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "Komponenta Plate {0} se trenutno ne koristi ni u jednoj Strukturi Plate." + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "Komponenta Plate {0} mora biti tipa 'Zarada' da bi se koristila u Registru Personalnih Beneficija" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "Detalj Plate" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "Detalji Plate" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "Očekivana Plata" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "Informacije Plate" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "Raspon Plate" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "Isplate Plate na osnovu Načina Plaćanja" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "Isplate Plate putem ECS-a" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "Raspon Plate" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "Platni Registar" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "Platna Lista" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "Platna Lista na osnovu Radnog Lista" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "ID Platne Liste" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "Odsustvo Platne Liste" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "Kredit Platne Liste" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "Referenca Platne Liste" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "Radna Lista Platne Liste" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "Platni List već postoji za {0} za date datume" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "Kreiranje Platnog Lista je u redu čekanja. Može potrajati nekoliko minuta" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "Platna Lista nije pronađena." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "Platni List {0} je već kreiran za ovaj period" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "Platni List {0} je već kreiran za radni list {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "Potvrda Platnog Lista je u redu čekanja. Može potrajati nekoliko minuta" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "Platni List {0} nije uspio za Unos Platnog Spiska {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "Platni List {0} nije uspio. Možete riješiti {1} i ponovo pokušati {0}." + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "Platni Listovi" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "Platni Listovi kreirani" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "Platni Listovi Potvrđeni" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "Platni Listovi već postoje za {} i neće ih obrađivati ovaj Obračun Plata." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "Platne Liste potvrđene za period od {0} do {1}" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "Struktura Plate" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "Dodjela Strukture Plata" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "Polje Dodjele Strukture Plate" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "Struktura Plate za Personal već postoji" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "Dodjeljivanje Strukture Plate nije pronađeno za {0} na datum {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "Nedostaje Struktura Plate" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "Struktura Plate mora biti dostavljena prije podnošenja {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "Struktura Plate nije dodijeljena za {0} za datum {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "Struktura Plate {0} ne pripada {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "Uspješno ažurirane Strukture Plata" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "Zadržavanje Plate" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "Ciklus Zadržavanja Plate" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "Zadržavanje Plate {0} već postoji za personal {1} za odabrani period" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "Plata je već obrađena za period između {0} i {1}, period prijave za odsustvo ne može biti između ovog raspona datuma." + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "Raspodjela Plate na osnovu Zarade i Odbitka." + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "Komponente plate tipa Providentni fond, Dodatni Providentni fond ili Zajam Providentnog fonda nisu postavljene." + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "Komponente Plate trebaju biti dio Strukture Plate." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "Slanje Platnih Listi e-poštom stavljeni su u red za slanje. Provjerite {0} za status." + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "Sankcionisani Iznos" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "Sankcionisani Iznos (Valuta Poduzeća)" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "Sankcionisani Iznos ne može biti veći od iznosa potraživanja u redu {0}." + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "Planirano" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "Zaređeni Rezultat" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "Rezultat mora biti manji ili jednak 5" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "Rezultati" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "Traži Poslove" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "Odaberite primjenjive komponente za tip prekovremenog rada" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "Odaberi Rundu Intervjua" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "Odaberi Intervju" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "Odaberite mjesec za poništavanje neplačenog odsustva" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "Odaberi Račun Isplate Plate da izvršite Bankovni Unos" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "Odaberi Učestalost Obračuna Plata." + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "Odaberi Period Obračuna Plata" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "Odaberi Svojstva" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "Odaberi Zahtjeve Smjene" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "Odaberi Uslove i Odredbe" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "Odaberi Korisnike" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "Navedi Personal za koji preuzmete stanje predujma." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "Navedi Personal kojem želite dodijeliti odsustvo." + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "Odaberi Personal." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "Odaberi Tip Odsustva kao što je Bolovanje, Povlašteno Odsustvo, Povremeno Odsustvo, itd." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "Odaberit datum nakon kojeg će ova Dodjela Odsustva isteći." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "Odaberi datum od kojeg će ova Dodjela Odsustva biti važeća." + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "Odaberi krajnji datum za vaš Zahtjev Odsustva." + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "Odaberite komponente plate čiji će se ukupan iznos koristiti sa platne liste za izračunavanje satnice prekovremenog rada." + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "Odaberi datum početka vašeg Zahtjeva Odsustva." + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "Odaberi ovo ako želite da se dodjele smjena automatski kreiraju na neodređeno vrijeme." + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "Odaberi tip odsustva za koju se personal želi prijaviti, kao što je Bolovanje, Povlašteno Odsustvo, Povremeno Odsustvo, itd." + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "Odaberi svog odobravatelja odsustva, tj. osobu koja odobrava ili odbija vaša odsustva." + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "Samoprocjenjivanje" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "Samoprocjenjivanje na čekanju: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "Rezultat Samoocjenjivanja" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "Samorezultat" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "Samoučenje" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "Samoodobrenje za zahtjeve za naknadu troškova nije dozvoljeno" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "Samoodobrenje za odsustvo nije dozvoljeno" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "Seminar" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "Pošalji e-poštu u" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "Pošalji Otkazni Upitnik" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "Pošaljite Otkazne Upitnike" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "Poåalji Povratne Informacije Intervjua" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "Poåalji Intervju Podsjetnik" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "Pošalji Obavještenje Odsustva" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "Kopija Pošiljatelja" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "Slanje nije uspjelo zbog nedostajućih informacija e-pošte za personal: {1}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "Uspješno poslan: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "Sep" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "Aktivnosti Razdvajanja" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "Razdvajanje počinje" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "Servisni Detalji" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "Servisni Trošak" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "Postavi \"Od(Godina)\" i \"Do(Godina)\" na 0 bez gornje i donje granice." + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "Postavi Detalje Dodjele" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "Postavi Detalje Odsustva" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "Postavi Otkazni Datum za personal: {0}" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "Postavi filtere za preuzimanje osoblja" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "Postavite početna stanja za zarade i poreze od prethodnog poslodavca" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "Postavite opcije filtera da biste preuzelii osoblje sa listr ocjenjivača" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "Postavi standard nalog za {0} {1}" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "Postavi učestalost podsjetnika za praznike" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "Postavi svojstva koja bi trebala biti ažurirana u Postavkama Osoblja pri podnošenju unaprijeđnja" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "Postavi status na {0} ako je obavezno." + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "Postavi {0} za odabrani personal" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "Nedostaju Postavke" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "Izmiri naspram Predujma" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "Izmiri sve Obaveze i Potraživanja prije podnošenja" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "Dokument je podijeljen s korisnikom {0} s dozvolom 'Podnesi'" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Smjena & Prisustvo" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "Stvarni Kraj Smjene" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "Vrijeme Stvarnog Kraja Smjene" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "Stvarni Početak Smjene" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "Vrijeme Stvarnog Početka Smjene" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "Dodjela Smjene" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "Detalji Dodjele Smjene" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "Istorija Dodjele Smjene" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "Alat Dodjele Smjene" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "Dodjela Smjene: {0} kreirana za personal: {1}" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "Dodjele smjena kreirane za raspored između {0} i {1} putem pozadinskog zadatka" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "Prisustvo Smjene" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "Detalji Smjene" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "Kraj Smjene" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "Vrijeme Kraja Smjene" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "Lokacija Smjene" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "Zahtjev za Smjenu" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "Odobravač Zahtjeva Smjene" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "Filteri Zahtjeva Smjene" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "Zahtjevi Smjene koji završavaju prije ovog datuma bit će isključeni." + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "Zahtjevi Smjene koji počinju nakon ovog datuma bit će isključeni." + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "Raspored Smjene" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "Dodjela Rasporeda Smjene" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "Postavke Smjene" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "Početak Smjene" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "Vrijeme Početka Smjene" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "Status Smjene" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "Vremena Smjene" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "Alat Smjene" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "Tip Smjene" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "Dodjele smjena za {0} nakon {1} su već kreirane. Molimo promijenite datum {2} u datum kasniji od {3} {4}" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "Smjena je uspješno ažurirana na {0}." + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Smjene" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "Prikaži Personal" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "Prikaži Stanje Odsustva u Platnom Listu" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "Prikaži odsustvo svih Članova Odjela u Kalendaru" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "Prikaži Platni List" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "Trenutno se prikazuje" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "Bolovanje" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "Pojedinačna Dodjela" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "Vještina" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "Procjena Vještine" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "Naziv Vještine" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "Vještine" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "Preskoči Automatsko Prisustvo" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "Preskače se Dodjela Strukture Plata za sljedeći personal, jer zapisi o Dodjeli Strukture Plata već postoji za njih. {0}" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "Izvor i Ocjena" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "Izvorna i Ciljna Smjena ne mogu biti iste" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "Sponzorirani Iznos" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "Detalji Zapošljavanja" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "Plan Zapošljavanja" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "Detalji Plana Zapošljavanja" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "Plan Zapošljavanja {0} već postoji za poziciju {1}" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "Standardni Multiplikator" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "Standardni Iznos Izuzeća od Poreza" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "Standardno Radno Vrijeme" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "Datum početka i završetka nije u važećem obračunskom periodu, ne može se izračunati {0}." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "Datum početka ne može biti kasnije od datuma završetka" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "Datum početka ne može biti kasnije od datuma završetka." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "Datum Početka: {0}" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "Vrijeme početka i vrijeme završetka ne može biti isto." + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "Statistička Komponenta" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "Status za drugu polovinu dana" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "Opcije Zaliha" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "Zaustavite korisnike da podnose Zahtjeve Odsustva za sljedeće dane." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "Strogo zasnovano na Tipu Zapisnika Prijave Personala" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "Strukture su uspješno dodijeljene" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "Datum Podnošenja" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "Podnošenje nije uspjelo" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "Podnošenje {0} prije {1} nije dozvoljeno" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "Podnesi Povratne Informacije" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "Podnesi Sad" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "Podnesi Specifikacije Prekovremenog Rada" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "Podnesi Dokaz" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "Pošalji Platni List" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "Podnesi ovaj Zahtjev Odustva da potvrdite." + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "Podnesi ovo da kreirate Personalni zapis" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "Podnešeno putem Unosa Plate" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "Podnose se Platni Listovi i kreiraju Nalozi Knjiženja..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "Podnošenje Platnih Listova u toku..." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "Podružnice su već planirale {1} slobodnih radnih mjesta sa budžetom od {2}. Plan Zapošljavanja za {0} trebao bi izdvojiti više slobodnih radnih mjesta i budžeta za {3} nego što je planirano za podružnice" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "Uspješno kreirano {0} za personal:" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "Uspješno {0} {1} za sljedeći personal:" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "Suma svih prethodnih tabela" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "Suma iznosa beneficija {0} prelazi maksimalnu granicu od {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "Sažeti Prikaz" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "Sinhronizuj {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "Sintaksička greška" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "Sintaktička greška u stanju: {0} u tabeli poreza na platu" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "Uzmite Tačno Završene Godine" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "Porez & Beneficije" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "Odbijen Porez do Datuma" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "Kategorija Izuzeća od Poreza" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "Deklaracija Izuzeća od Poreza" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "Dokaz Izuzeća od Poreza" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "Poreska Postavka" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "Porez na Dodatnu Platu" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "Porez na Fleksibilne Beneficije" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "Oporeziva Zarada do Datuma" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "Granica olakšice za oporezivi dohodak" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "Tabela Oporezivanja Plate" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "Tabele Oporezivanja Plate" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "Porezi & Naknade" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "Porezi i Naknade Poreza na Plate" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "Taksi" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "Timski Predujmovi" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "Timska Potraživanja" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "Tim Odsustvo" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "Timski Zahtjevi" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "Timska Ažuriranja" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "Zapošljenje" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "Hvala na prijavi." + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "Valuta {0} treba da bude ista kao i standard valuta poduzeća Odaberi drugi račun." + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "Datum na koji će Komponenta Plate sa iznosom doprinijeti Zaradi/Odbitku u Platnom Listu. " + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "Dan u mjesecu kada treba dodijeliti odsustvo" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "Dan(i) za koji podnosite Zahtjev za Odsustvo su praznici. Ne treba da podnosiš zahtjev za odsustvo." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "Dani između {0} i {1} nisu važeći praznici." + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "Prvi Odobravljač na listi biće postavljen kao standard Odobravljač." + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "Dio Dnevne Plate po Odsustvu treba da bude između 0 i 1" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "Dio dnevnice koji se plaća za poludnevno prisustvo" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "Parametri za ovaj izvještaj se izračunava na osnovu {0}. Postavi {0} u {1}." + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "Parametri za ovaj izvještaj se izračunava na osnovu {0}. Postavi {0} u {1}." + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "Platni List poslat personalu e-poštom će biti zaštićen lozinkom, lozinka će biti generirana na osnovu politike lozinke." + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "Vrijeme nakon početka smjene kada se prijava smatra za kasno (u minutama)." + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "Vrijeme prije završetka smjene kada se odjava smatra za rano (u minutama)." + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "Vrijeme prije početka smjene tokom kojeg se prijava personala smatra za prisustvo." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "Teorija" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "Ovaj mjesec ima više praznika nego radnih dana." + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "Nema razlika u zaostalim plaćanjima između postojećih i novih komponenti strukture plata." + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "Nema slobodnih radnih mjesta prema planu zapošljavanja {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "Nije dodijeljena struktura plata za {0}. Prvo dodijeli strukturu plata." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "Nema personala sa Strukturom Plate: {0}. Dodijeli {1} da pregleda Platni List" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "Ova odsustva su praznici koje poduzeće dozvoljava, ali njihovo korištenje je opcija za personal." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "Ova radnja će spriječiti unošenje promjena u povezane povratne informacije/ciljeve o ocjenjivanju." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "Ova prijava je van smjene i neće se uzeti u obzir za prisustvo. Ako je smijena dodijeljena, podesi smjenu i ponovo preuzmi." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "Ovo kompenzacijsko odsustvo će se primjenjivati od {0}." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "Personal već ima yapisnik sa istom vremenskom oznakom.{0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "Ova greška može biti posljedica nevažeće formule ili uvjeta." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "Ova greška može biti zbog nevažeće sintakse." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "Ova greška može biti zbog toga što polje nedostaje ili je izbrisano." + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "Ovo polje vam omogućava da postavite maksimalan broj uzastopnog odsustva za koje se personal može prijaviti." + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "Ovo polje vam omogućava da postavite maksimalan broj odsustva koji se godišnje može dodijeliti za ovaj tip odsustva dok kreirate Politiku Odsustva" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "Ovo se zasniva na prisustvu ovog personala" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "Ova je metoda namijenjena samo za razvojni način rada" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "Ovo će prepisati poresku komponentu {0} u platnoj listi i porez se neće obračunavati na osnovu Tabela Poreza na Platu" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "Ovo će podnijeti Platne Liste i kreirati obračunski Nalog Knjiženja. Da li želite da nastavite?" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "Vrijeme nakon završetka smjene tokom kojeg se odjava smatra za prisustvo." + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "Vrijeme potrebno za popunjavanje otvorenih pozicija" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "Vremenski Raspon" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "Vremenske Linije" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "Detalji Vremenske Liste" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "Vrijeme" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "Do Iznosa" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "Do datuma treba biti kasnije od datuma" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "Za Korisnika" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "Da biste to omogućili, omogućite {0} pod {1}." + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "Da biste se zatražili odsustvo za pola dana, navedi 'Pola Dana' i odaberi datum za Pola Dana" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "Do datuma ne može biti jednako ili prije od datuma" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "Do datuma ne može biti kasnije od datuma otkaza personala." + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "Do datuma ne može biti prije od datuma" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "Do datuma ne može biti duži od datuma razrješenja personala" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "Do datuma ne može biti prije od datuma" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "Da prepišete iznos komponente plate za poresku komponentu, omogućite {0}" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "Do (Godina)" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "Do(Godine) godina ne može biti prije od Od (Godine)" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "Danas je {0} rođendan 🎉" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "Danas je {0} u našem Poduzeću! 🎉" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "Danas {0} ispunio {1} {2} u našem Poduzeću! 🎉" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "Ukupna Odsutnost" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "Ukupno Nagomilano" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "Ukupan Stvarni Iznos" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "Ukupan Iznos Predujma" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "Ukupni Iznos Predujma (Valuta Poduzeća)" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "Ukupno Dodijeljeno Odsustvo" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "Ukupno Dodijeljeno Odsustvo" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "Ukupan Nadoknađen Iznos" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "Ukupan Iznos ne može biti nula" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "Ukupni Trošak Povrata Imovine" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "Ukupan Iznos potraživanja" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "Ukupni Zatraženi Iznos (Valuta Poduzeća)" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "Ukupan broj neplačenih dana" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "Ukupan Deklarisani Iznos" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "Ukupni Odbitak" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "Ukupni Odbitak (Valuta Poduzeća)" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "Totalno Ranih Odjava" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "Ukupna Zarada" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "Ukupna Zarada" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "Ukupni Procijenjeni Budžet" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "Ukupna Procijenjena Cijena" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "Ukupni Kursni Rezultat" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "Ukupan Izuzeti Iznos" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "Ukupno Potraživanje Troška (preko Potraživanja Troškova)" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "Ukupna Potraživanja Troškova (preko Potraživanja Troškova)" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "Ukupan Rezultat Cilja" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "Ukupna Bruto Plata" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "Ukupno Sati (T)" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "Ukupan Porez na Prihod" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "Ukupan Iznos Kamate" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "Ukupno Kasnih Prijava" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "Ukupan broj dana Odsustva" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "Ukupno Odsustvo" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "Ukupno Odsustvo ({0})" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "Ukupno Dodijeljeno Odsustvo" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "Ukupno Naplaćeno Odsustvo" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "Ukupna Otplata Kredita" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "Ukupna Neto Plata" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "Ukupnoj Nefakturisanih Sati" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "Ukupno trajanje prekovremenog rada" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "Ukupan Plaćeni Iznos" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "Ukupna Isplata" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "Ukupna Isplata" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "Ukupno Prisutno" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "Ukupan Iznos Glavnice" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "Ukupan Iznos Potraživanja" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "Ukupne Ostavke" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "Ukupni Sankcionisani Iznos" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "Ukupni Sankcionirani Iznos (Valuta Poduzeća)" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "Ukupni Rezultat" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "Ukupni Samorezultat" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "Ukupan iznos predujma ne može biti veći od ukupnog sankcionisanog iznosa" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "Ukupno dodijeljeno odsustvo je više od maksimalno dozvoljenog za {0} tip odsustva za {1} u periodu" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "Ukupan broj dodijeljenog odsustva {0} ne može biti manji od već odobrenog odsustva {1} za period" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "Ukupno Riječima" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "Ukupno Riječima (Valuta Poduzeća)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "Ukupno dodijeljeno odsustvo ne može premašiti godišnju dodjelu od {0}." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "Ukupan broj dodijeljenog odsustva je obavezan za vrstu odsustva {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "Ukupan iznos svih beneficija za personal ne može biti veći od Maksimalnog Iznosa Beneficija {0}" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Ukupna plata uknjižena prema ovoj komponenti za navedeni personal od početka godine (obračunski period ili fiskalna godina) do datuma završetka tekućeg platnog lista." + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "Ukupna plata uknjižena za navedeni personal od početka mjeseca do datuma završetka tekućeg platnog lista." + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Ukupna plata uknjižena za navedeni personal od početka godine (obračunski period ili fiskalna godina) do datuma završetka tekućeg platnog lista." + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "Ukupna težina za sve {0} mora biti suma do 100. Trenutno je {1}%" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "Ukupno Radnih Dana u Godini" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "Ukupno radno vrijeme ne smije biti veće od maksimalnog radnog vremena {0}" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "Voz" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "E-pošta Obučitelja" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "Ime Obučitelja" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "Obuka" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "Datum Obuke" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "Događaj Obuke" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "Personal Događaja Obuke" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "Događaj Obuke:" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "Događaji Obuke" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "Povratna Informacija Obuke" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "Program Obuke" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "Rezultat Obuke" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "Personal Rezultat Obuke" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "Obuke" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "Obuke (Ove Sedmice)" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "Transakcije se ne mogu kreirati za neaktivan personal {0}." + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "Datum Transfera" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "Putovanja" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "Putni Predujam je Obavezan" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "Putovanje iz" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "Financiranje Putovanja" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "Plan Putovanja" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "Putovni Zahtjev" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "Obračun Troškova Putovanja" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "Putovanje u" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "Tip Putovanja" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "Tip Dokaza" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "Nije moguće preuzeti vašu lokaciju" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "Poništi Arhiviranje" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "Nezatražen Iznos" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "Nezatraženi Iznos (Valuta Poduzeća)" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "Pod Recenzijom" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "Prekini vezu plaćanja" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "Prekini vezu zapisa Prisustva sa prijavama personala: {}" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "Nepovezani Zapisi" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "Nenavedeno Prisustvo za dane" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "Pronađeni su Nenavedeni Zapisi Prijava" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "Neprijavljeni Dani" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "NeoznačenI Personal Zaglavlje" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "NeoznačenI Personal HTML" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "Neprijavljeni Dani" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "Neplaćeno Nagomilano" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "Neplaćeno Potraživanje Troška" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "Neizmireno" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "Neizmirene Transakcije" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "Nepodnešena Ocjenjivanja" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "Nepraćeni Sati" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "Nepraćeni Sati (U)" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "Neiskorišćeno Odsustvo" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "Nadolazeći Praznici" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "Podsjetnik Predstojećih Praznika" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "Nadolazeće Smjene" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "Ažuriraj Trošak" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "Ažuriraj Kandidata za Posao" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "Ažuriraj Napredak" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "Ažuriraj Odgovor" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "Ažurirajte Strukture Plata" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "Ažuriraj Status" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "Ažuriraj Porez" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "Ažuriran status sa {0} na {1} za datum {2} u zapisniku prisutnosti {3}" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "Ažuriran status Kandidata za Posao na {0}" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "Ažuriran status ponude za posao {0} za povezanog Kandidata za Posao {1} na {2}" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "Ažuriran status povezanog Kandidata za Posao {0} na {1}" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "Otpremi Prisustvo" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "HTML Otpreme" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "Otpremi slike ili dokumente" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "Otpremanje u toku..." + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "Viši Raspon" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "Iskorišteno Odsustvo(i)" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "Iskorišteno Odsustvo" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "Slobodna Radna Mjesta" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "Slobodna radna mjesta ne mogu biti manja od trenutnih slobodnih mjesta" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "Popunjena Radna Mjesta" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "Validiraj Prisustvo" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "Validiranje Prisustva Personala u toku..." + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "Vrijednost / Opis" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "Nedostaje Vrijednost" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "Varijabla" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "Varijabla zasnovana na Oporezivoj Plati" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "Vegetarijanac" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "Troškovi Vozila" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "Zapisnik Vozila" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "Servis Vozila" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "Servisni Artikal Vozila" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "Pokaži Ciljeve" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "Pokaži Istoriju Odsustva" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "Pregled Platnih Listi" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "Ljubičasta" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "UPOZORENJE: Modul Upravljanja Kreditom je odvojen od Sistema." + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "Upozorenje: Nedovoljno stanje odsustva za Tip Odsustva {0} u ovoj dodjeli." + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "Upozorenje: Nedovoljno stanje odsustva za Tip Odsustva {0}." + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "Upozorenje: Zahtjev Odsustva sadrži sljedeće blokirane datume" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "Upozorenje: {0} već ima aktivnu Dodjelu Smjene {1} za neke/sve ove datume." + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "Poredak Web Stranice" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "Vikend Multiplikator" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "Težinski (%)" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "Kada je postavljeno na 'Neaktivno', personal s konfliktnim aktivnim smjenama neće biti isključeni." + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "Dok se dodjela za kompenzacijsko odsustvo automatski kreira ili ažurira po podnošenju zahtjeva za kompenzacijsko odsustvo." + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "Zašto je ovaj kandidat kvalifikovan za ovu poziciju?" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "Zadržana" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "Godišnjice Rada " + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "Podsjetnik Godišnjice Rada" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "Datum Završetka Rada" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "Metoda Obračuna Radnog Iskustva" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "Datum Početka Rada" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "Rad od Kuće" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "Iskustvo" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "Sažetak rada za {0}" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "Radio za Praznik" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "Radni Dani" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "Radni Dani i Sati" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "Obračun Radnog Vremena na osnovu" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "Prag Radnog Vremena za Odsutne" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "Prag Radnog Vremena za Pola Dana" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "Radno Vrijeme ispod kojeg je navedeno kao Odsutno. (Nula za onemogućavanje)" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "Radno Vrijeme ispod kojeg je navedeno Pola Dana. (Nula za onemogućavanje)" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "Radionica" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "Godina do Danas" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "Godina do Danas (Valuta Poduzeća)" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "Godišnji Iznos" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "Godišnja Beneficija" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "Da, Nastavi" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "Niste ovlašteni odobravati odsustva na blokirane datume" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "Niste prisutni cijeli dan(e) između dana zahtjeva za kompenzacijsko odsustvo" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "Ne možete definirati više tabela ako imate tabelu bez donjih i gornjih granica." + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "Ne možete zatražiti svoju Standard Smjenu: {0}" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "Možete planirati samo do {0} slobodnih radnih mjesta i budžet {1} za {2} prema planu zapošljavanja {3} za matično poduzeće {4}." + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "Možete poslati Naplatu Odsutva samo za važeći iznos unovčenja" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "Možete učitati samo JPG, PNG, PDF, TXT ili Microsoft dokumente." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "Ne možete stornirati više od ukupnog broja neplačenih odsutnih dana {0}. Već ste stornirali {1} dana za ovoj personal." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "Nemate dozvolu da dovršite ovu radnju" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "Nemate predujma" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "Nemate dodijeljenog odsustva" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "Nemate obavještenja" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "Nemate zahtjeva" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "Nemate predstojećih praznika" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "Nemate predstojeće smjene" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "Možete dodati dodatne detalje, ako ih ima, i podnjeti ponudu." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "Morate biti unutar {0} metara od lokacije vaše smjene da biste se prijavili." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "Bili ste prisutni samo na pola dana {}. Ne može se prijaviti za cjelodnevno kompenzacijsko odsustvo" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "Vaša Intervju je pomjeren sa {0} {1} - {2} na {3} {4} - {5}" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "Vaša lozinka je istekla. Poništite lozinku da nastavite" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "aktivan" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "na osnovu" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "otkazivanje" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "otkazano" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "kreiraj/podnesi" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "kreirano" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "johndoe@mail.com" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "promjeni_poludnevni_status" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "ili za Odjeljenje Personala: {0}" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "obrada" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "obrađeno" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "rezultat" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "rezultati" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "recenzija" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "recenzije" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "potvrđeno" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "putem sinhronizacije Komponenti Plate" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "godina" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "godine" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "{0} & {1}" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "{0} & {1} više" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "{0} : {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "{0}
    Ova greška može biti zbog toga što polje nedostaje ili je izbrisano." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "{0} Ocjenjivanja(e) još nije podnešeno" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "{0} Polje" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "{0} Nedostaje" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "{0} Red #{1}: Formula je postavljena, ali {2} je onemogućeno za Komponentu Plate {3}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "{0} Red #{1}: {2} treba omogućiti da bi se formula razmatrala." + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "{0} Nepročitano" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} već dodijeljeno {1} za period {2} do {3}" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0} već postoji za {1} i period {2}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "{0} već ima aktivnu Dodjelu Smjene {1} za neke/sve ove datume." + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "{0} primjenjivo nakon {1} radnih dana" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "{0} stanje" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "{0} ispunjava {1} {2}" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "{0} je uspješno kreiran!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "{0} uspješno izbrisano!" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "{0} nije uspjelo!" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "{0} ima {1} omogućeno" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "{0} je obračunska komponenta i ovo će biti evidentirano kao isplata u Registru Beneficija" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "{0} je nevažeći status prisustva." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "{0} nije praznik." + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "{0} nije dozvoljeno slati Povratne Informacije o intervjuu za intervju: {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} nije na listi Opcija Praznika" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "{0} odsustva su uspješno dodijeljena" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "{0} odsustva iz dodjele za {1} tip odsustva su istekla i bit će obrađena tijekom sljedećeg zakazanog posla. Preporučljivo je da sada isteknete prije kreiranja novih dodjela principa odsustva." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "{0} odsustva je ručno dodijelio {1} na {2}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} se mora poslati" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "{0} od {1} Završeno" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "{0} uspješno!" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "{0} uspješno!" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "{0} {1} personal?" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "{0} uspješno ažurirano!" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "{0} slobodnih radnih mjesta i {1} budžet za {2} već su planirani za podružnice od {3}. Možete planirati samo do {4} slobodnih radnih mjesta i budžet {5} prema planu osoblja {6} za matično poduzeće {3}." + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "{0} će biti ažuriran za sljedeće Strukture Plata: {1}." + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "{0} {1} {2}?" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "{0}. Za više detalja provjerite zapisnik grešaka." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}: E-pošta za personal nije pronađena, stoga e-pošta nije poslana" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "{0}: Od {0} tipa {1}" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "{0}d" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "{} " + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "{} Prihvaćeno" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "{} Aktivan" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "{} Nacrt" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "{} Nezatraženo" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "{} {} otvoreno za ovu poziciju." + diff --git a/apps/erpnext/src/hrms/hrms/locale/cs.po b/apps/erpnext/src/hrms/hrms/locale/cs.po new file mode 100644 index 000000000..db57592e8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/cs.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: cs\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: cs_CZ\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/da.po b/apps/erpnext/src/hrms/hrms/locale/da.po new file mode 100644 index 000000000..e70c24bb7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/da.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Danish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: da\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: da_DK\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "% Udnyttelse (B + NB) / T" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "% Udnyttelse (B / T)" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") for {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "01:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "05:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "08:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "
    " + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "Fraværende" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "Fraværende Dager" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "Kontonummer" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "Regnskab & Betaling" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "Regnskab Rapporter" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "Aktivitet Navn" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "Faktisk Beløb" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "Tilføj Udgift" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "Tilføj Moms" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "Forskud" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "Avancerede Filtre" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "Alle Mål" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "Alle Job" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "Beløb Baseret på Formel" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "Beløb Baseret på Formel" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "Ansøg Nu" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "Udnævnelse Dato" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "Udnævnelsesbrev" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "Udnævnelsesbrev Skabelon" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Udnævnelsesbrev Indhold" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "Evaluering" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "Evaluering Cyklus" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "Evaluering Mål" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "Evaluering Oversigt" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "Godkend" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "Godkendt" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "Godkender" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "Godkendere" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "April" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "Tildel Skift" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "Tildel Skiftsplan" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "Bank Poster" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "Bank Överførsel" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "Fordele" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "Faktura Beløb" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "Fakturerede Timer" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/de.po b/apps/erpnext/src/hrms/hrms/locale/de.po new file mode 100644 index 000000000..61cf8e35a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/de.po @@ -0,0 +1,11495 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: German\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: de\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: de_DE\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr " Aufheben der Zahlungsverknüpfung bei Stornierung des Mitarbeitervorschusses" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "\"Das Ab-Datum kann nicht größer als das Bis-Datum sein\"" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "'employee_field_value' und 'timestamp' sind erforderlich." + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") für {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "...Mitarbeiter abrufen" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "01:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "05:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "08:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "Basis- Betrag wurde für folgende Mitarbeiter(n) nicht gesetzt: {0}" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "Beispiel: SAL- {Vorname} - {Geburtsdatum.Jahr}
    Dies erzeugt ein Passwort wie SAL-Jane-1972" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "Die Gesamtzahl der zugewiesenen Abwesenheiten ist größer als die Anzahl der Tage im Zuweisungszeitraum" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "

    Bedingungsbeispiele

    \n" +"
      \n" +"
    1. Anwendung der Steuer, wenn der Arbeitnehmer zwischen dem 31.12.1937 und dem 01.01.1958 geboren ist (Arbeitnehmer im Alter von 60 bis 80 Jahren)
      \n" +"Bedingung: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "
    Mitarbeiter mit halben Tagen
    " + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "Transaktionen & Berichte" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Stammdaten & Berichte" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "
    {0}{1}
    " + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "Es existiert bereits ein Stellengesuch für {0}, das von {1} angefordert wurde: {2}" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "Eine freundliche Erinnerung an einen wichtigen Termin für unser Team." + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "Ein {0} existiert zwischen {1} und {2} (" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "Abwesend" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "Abwesende Tage" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "Abwesenheitsdatensätze" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "Konto Nr" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "Das Konto {0} stimmt nicht mit dem Unternehmen {1} überein" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "Buchhaltung & Zahlung" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "Buchhaltungsberichte" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "Konten für die Gehaltskomponente nicht eingerichtet {0}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "Abgrenzungsjournalbuchung für Gehälter von {0} bis {1}" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "Aktion bei Buchung" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "Aktivitätsname" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "Tatsächliche Menge" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "Tatsächliche einlösbare Tage" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "Ist-Salden sind nicht verfügbar, da sich der Urlaubsantrag über verschiedene Urlaubskontingente erstreckt. Sie können dennoch Abwesenheiten beantragen, die bei der nächsten Zuteilung abgegolten würden." + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "Tagesweise Daten hinzufügen" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "Mitarbeitereigenschaft hinzufügen" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "Feedback hinzufügen" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "Zu Details hinzufügen" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "Ungenutzten Urlaub von vorherigen Zuteilungen hinzufügen" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "Ungenutzte Urlaubstage aus der Zuteilung des vorherigen Urlaubszeitraums zu dieser Zuteilung hinzufügen" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "Steuerkomponenten aus dem Gehaltskomponentenstamm hinzugefügt, da die Gehaltsstruktur keine Steuerkomponente enthielt." + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "Zu Details hinzugefügt" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "Zusatzbetrag" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "Weitere Informationen " + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "Zusätzlicher PF" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "Zusätzliches Gehalt" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "Zusätzliches Gehalt" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "Zusätzliches Gehalt für Empfehlungsbonus kann nur für Mitarbeiterempfehlungen mit dem Status {0} erstellt werden" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "Für diesen Gehaltsbestandteil mit aktiviertem {0} existiert bereits ein Zusatzgehalt für dieses Datum" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "Zusätzliches Gehalt: {0} für Gehaltskomponente bereits vorhanden: {1} für Periode {2} und {3}" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "Adresse des Veranstalters" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "Vorschuss" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "Erweiterte Filter" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "Alle Ziele" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "Alle Jobs" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "Alle zugewiesenen Vermögensgegenstände sollten vor der Buchung zurückgegeben werden" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "Es sind noch nicht alle Aufgaben für die Erstellung von Mitarbeitern abgeschlossen." + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "Zuteilen basierend auf der Abwesenheitsrichtlinie" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "Abwesenheit zuweisen" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "Abwesenheiten an {0} Mitarbeiter zuweisen?" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "Zuteilung an Tag" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "Zugewiesene Abwesenheiten" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "Abwesenheit wird zugewiesen" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "Zuteilung abgelaufen!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "Einstempeln über die mobile App zulassen" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "Erlaube zulassen" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "Standorterfassung erlauben" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "Mehrere Schichtzuweisungen für dasselbe Datum zulassen" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "Negativen Saldo zulassen" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "Überzuweisung erlauben" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "Steuerbefreiung zulassen" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "Benutzer zulassen" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "Benutzer zulassen" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "Auschecken nach Schichtende erlauben (in Minuten)" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "Zulassen, dass die folgenden Benutzer Urlaubsanträge für Blöcke von Tagen genehmigen können." + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "Ermöglicht die Zuweisung von mehr Abwesenheiten als die Anzahl der Tage im Zuweisungszeitraum." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "Wechselnde Eingaben wie IN und OUT während derselben Schicht" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "Betrag basierend auf Formel" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "Menge, bezogen auf Formel" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "Über die Auslagenabrechnung geltend gemachter Betrag" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "Betrag der Ausgaben" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "Der Betrag sollte nicht unter Null liegen" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "Betrag, der auf diesen Vorschuss gezahlt wurde" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "Ein Anwesenheitsdatensatz ist mit diesem Checkin verknüpft. Bitte stornieren Sie die Anwesenheit, bevor Sie die Zeit ändern." + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "Jährliche Zuteilung" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "Jährliche Zuteilung überschritten" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "Jahresgehalt" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "Jährlicher steuerpflichtiger Betrag" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "Weitere Details" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "Andere Bemerkungen, bemerkenswerte Bemühungen, die in die Aufzeichnungen aufgenommen werden sollten" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "Anwendbare Einkommenskomponente" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "Anwendbar im Falle von Mitarbeiter-Onboarding" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "E-Mail-Adresse des Antragstellers" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "Bewerbername" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "Bewerber Bewertung" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "Bewerber für eine Stelle" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "Name des Bewerbers" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "Antrag" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "Bewerbungsstatus" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "Der Bewerbungszeitraum kann nicht über zwei Zuordnungssätze liegen" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "Beantragter Zeitraum kann nicht außerhalb der beantragten Urlaubszeit liegen" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "Empfangene Anwendungen" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "Erhaltene Anträge:" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "Gilt für Unternehmen" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "Abwesenheiten beantragen / genehmigen" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "Jetzt bewerben" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "Termin" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "Ernennungsschreiben" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "Termin Briefvorlage" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Inhalt des Ernennungsschreibens" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "Bewertung" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "Beurteilungszyklus" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "Bewertungsziel" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "Beurteilung KRA" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "Verknüpfung von Beurteilungen" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "Beurteilungsübersicht" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "Beurteilungsvorlage" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "Bewertungsvorlage zur Zielorientierung" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "Beurteilungsvorlage fehlt" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "Bezeichnung der Bewertungsvorlage" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "Beurteilungsvorlage für einige Positionen nicht gefunden." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "Die Erstellung der Beurteilung steht in der Warteschlange. Das kann ein paar Minuten dauern." + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "Für diesen Beurteilungszyklus oder einen überschneidenden Zeitraum existiert bereits eine Beurteilung {0} für den Mitarbeiter {1}" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "Beurteilung {0} gehört nicht zum Mitarbeiter {1}" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "Beurteilter" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "Beurteiler: {0}" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "Auszubildende(r)" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "Genehmigung" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "Genehmigungsstatus" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "Genehmigungsstatus muss \"Genehmigt\" oder \"Abgelehnt\" sein" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "Genehmigen" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "Genehmigt" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "Genehmiger" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "Genehmigende" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "Apr." + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "Soll die Anlage wirklich gelöscht werden" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "Sind Sie sicher, dass Sie die {0} löschen möchten?" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "Möchten Sie die ausgewählten Gehaltsabrechnungen wirklich per E-Mail versenden?" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "Möchten Sie die Mitarbeiterempfehlung wirklich ablehnen?" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "Ankunftszeit" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "Gemäß Ihrer aktuellen Gehaltsstruktur können Sie keine Leistungen beantragen." + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "Zugewiesene Vermögensgegenstände" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "Gehaltsstruktur {0} Mitarbeitern zuweisen?" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "Schicht zuweisen" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "Schichtplan zuweisen" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "Struktur zuweisen" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "Gehaltsstruktur zuweisen" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "Struktur zuweisen..." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "Zuordnung von Strukturen....." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "Zuweisung basierend auf" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "Stellenausschreibung zuordnen" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "Zugehöriges Dokument" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "Zugehöriger Dokumenttyp" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "Es muss mindestens ein Gespräch ausgewählt werden." + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "Nachweis anhängen" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "Anwesenheit" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "Anwesenheitskalender" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Anwesenheitszahl" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "Anwesenheitsdatum" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "Anwesenheit von Datum" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "\"Anwesenheit ab Datum\" und \"Anwesenheit bis Datum\" sind zwingend" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "Anwesenheits-ID" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "Teilnahme markiert" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "Anwesenheitsanfrage" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "Historie der Anwesenheitsanfragen" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "Einstellungen für die Anwesenheit" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "Anwesenheit bis Datum" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "Anwesenheit aktualisiert" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "Anwesenheitswarnungen" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "Das Anwesenheitsdatum {0} darf nicht vor dem Eintrittsdatum des Mitarbeiters {1} liegen: {2}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "Die Anwesenheit aller Mitarbeiter unter diesem Kriterium wurde bereits markiert." + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "Die Anwesenheit für den Mitarbeiter {0} ist bereits für eine überschneidende Schicht markiert {1}: {2}" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "Die Anwesenheit für den Mitarbeiter {0} ist bereits für das Datum {1} markiert: {2}" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "Die Anwesenheit für Mitarbeiter {0} ist bereits für die folgenden Daten markiert: {1}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "Die Anwesenheit für die folgenden Termine wird bei der Buchung übersprungen/überschrieben" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "Die Anwesenheit von {0} bis {1} wurde bereits für den Mitarbeiter {2} markiert" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "Die Anwesenheit wurde für alle Mitarbeiter zwischen den ausgewählten Abrechnungsdaten markiert." + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "Für diese Mitarbeiter steht die Anwesenheit zwischen den ausgewählten Lohn- und Gehaltsabrechnungsterminen noch aus. Markieren Sie die Anwesenheit, um fortzufahren. Siehe {0} für weitere Einzelheiten." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "Anwesenheit erfolgreich markiert" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "Die Teilnahme wurde nicht für {0} übermittelt, da es sich um einen Feiertag handelt." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "Anwesenheit nicht gebucht für {0}, da {1} im Urlaub ist." + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "Die Teilnahme wird erst nach diesem Datum automatisch markiert." + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "Teilnehmer" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "Anzahl der Abgänge" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "Aug." + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "Einstellungen für die automatische Teilnahme" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "Automatisches Verlassen der Einlösung" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "Automatisiert auf Basis des Zielfortschritts" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "Automatischer Abruf aller dem Mitarbeiter zugewiesenen Vermögensgegenstände, falls vorhanden" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "Letzte Synchronisierung des Check-ins automatisch aktualisieren" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "Verfügbare Urlaubstage" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "Verfügbare Abwesenheiten" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "Durchschnittliche Feedback-Punktzahl" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "Durchschnittliche Bewertung" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "Durchschnittliche Bewertung der nachgewiesenen Fähigkeiten" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "Durchschnittliche Bewertungspunktzahl" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "Durchschnittliche Auslastung" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "Durchschnittliche Auslastung (nur abgerechnete)" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "Warte auf Antwort" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "Rückdatierte Abwesenheitsanträge sind eingeschränkt. Bitte setzen Sie die {} in {}" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "Bank-Einträge" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "Banküberweisung" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "Basis" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "Basis & Variabel" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "Beginnen Sie den Check-in vor Schichtbeginn (in Minuten)" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "Nachfolgend finden Sie die Liste der kommenden arbeitsfreien Tage:" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "Vorteil" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "Vorteile" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "Rechnungsbetrag" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "Abgerechnete Stunden" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "Abgerechnete Stunden (B)" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "Zweimonatlich" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "Geburtstagserinnerung" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "Geburtstagserinnerung 🎂" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "Geburtstage" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "Datum sperren" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "Tage sperren" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "Urlaub an wichtigen Terminen unterbinden." + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "Bonus" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "Bonusbetrag" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "Bonuszahlungsdatum" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "Das Bonuszahlungsdatum kann kein vergangenes Datum sein" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "Zweigstelle: {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "Massenzuweisungen" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "Massenzuweisung von Abwesenheitsrichtlinien" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "Massenzuweisung von Gehaltsstrukturen" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "Standardmäßig wird das Endergebnis als Durchschnitt aus Zielergebnis, Feedbackergebnis und Selbsteinschätzungsergebnis berechnet. Aktivieren Sie diese Option, um eine andere Formel festzulegen" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "CTC" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "Endergebnis anhand Formel berechnen" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "Berechnen Sie die Arbeitstage der Personalabrechnung basierend auf" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "Berechnet in Tagen" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "Anrufe" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "Stornierung in der Warteschlange" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "Die Zeit kann nicht geändert werden" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "Abwesenheiten können nicht außerhalb der Abwesenheitsperiode {0} - {1} zugewiesen werden" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "Schicht kann nach Enddatum nicht unterbrochen werden" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "Schicht kann vor dem Startdatum nicht unterbrochen werden" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "Schichtzuweisung {0} kann nicht storniert werden, da sie mit Anwesenheit {1} verknüpft ist" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "Schichtzuweisung {0} kann nicht storniert werden, da sie mit dem Mitarbeiter-Check-in {1} verknüpft ist" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "Für Mitarbeiter, die nach der Abrechnungsperiode eintreten, kann keine Gehaltsabrechnung erstellt werden" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "Für einen Mitarbeiter, der vor dem Abrechnungszeitraum ausgeschieden ist, kann keine Gehaltsabrechnung erstellt werden" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "Es kann kein Bewerber für eine geschlossene Stellenausschreibung erstellt werden" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "Aktive Abwesenheitszeit kann nicht gefunden werden" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "Die Anwesenheit eines inaktiven Mitarbeiters {0} kann nicht markiert werden" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "Kann nicht gebucht werden. Die Anwesenheit wird bei einigen Mitarbeitern nicht markiert." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "Aktualisierung der Zuteilung für {0} nach der Buchung nicht möglich" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "Status von Zielgruppen kann nicht aktualisiert werden" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "Übertragen" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "Übertragene Urlaubsgenehmigungen" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "Erholungsurlaub" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "Grund der Beschwerde" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "Hat den Status per Anwesenheitsanfrage von {0} auf {1} geändert" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "Ändere '{0}' zu {1}." + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "Wenn Sie die KRA in diesem übergeordneten Ziel ändern, werden alle untergeordneten Ziele auf die gleiche KRA ausgerichtet, sofern vorhanden." + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "Weitere Einzelheiten finden Sie unter {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "Weitere Details finden Sie im Fehlerprotokoll {0}." + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "Einchecken" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "Auschecken" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "Stellenangebote bei der Erstellung von Stellenangeboten prüfen" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "Weitere Details finden Sie unter {0}" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "Einchecken" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "Check-in Datum" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "Auschecken" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "Check-Out Datum" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "Check-in-Radius" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "Untergeordnete Knoten können nur unter Knoten vom Typ „Gruppe“ erstellt werden" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "Anspruchsvorteil für" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "Kosten geltend machen" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "Behauptet" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "Anspruchsbetrag" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "Spesen" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "Klicken Sie auf {0}, um die Konfiguration zu ändern und speichern Sie die Gehaltsabrechnung erneut" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "Geschlossen am" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "Schließt ein" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "Endet am:" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "Schlussbemerkungen" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "Informationen zum Unternehmen" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "Ausgleichsurlaubsantrag" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "Ausgleich für" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "Onboarding abschließen" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "Komponenteneigenschaften und Referenzen" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "Bedingung & Formel" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "Hilfe zu Bedingung und Formel" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "Zustand und Formel" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "Bedingungen und Formelvariable und Beispiel" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "Konferenz" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "Schonfrist berücksichtigen" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "Markierte Anwesenheit an arbeitsfreien Tagen berücksichtigen" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "Steuerbefreiungserklärung berücksichtigen" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "Betrachten Sie die nicht markierte Teilnahme als" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "Abwesenheitsarten konsolidieren" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "Kontaktnummer" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "Kopie der Einladung / Ankündigung" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "Konnte einige Gehaltsabrechnungen nicht buchen: {}" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "Das Ziel konnte nicht aktualisiert werden" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "Ziele konnten nicht aktualisiert werden" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "Ländereinrichtung fehlgeschlagen" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "Kurs" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "Motivationsschreiben" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "Zusätzliches Gehalt erstellen" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "Beurteilungen erstellen" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "Bewerbungsgespräch erstellen" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "Bewerber erstellen" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "Stellenausschreibung erstellen" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "Erstellen Sie eine neue Mitarbeiter-ID" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "Gehaltsabrechnung erstellen" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "Gehaltszettel erstellen" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "Schichten erstellen nach dem" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "Beurteilungen erstellen" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "Zahlungseinträge erstellen ......" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "Lohnzettel erstellen ..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "Erstellen von {0}..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "Erstellungsdatum" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "Erstellung fehlgeschlagen" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "Die Erstellung von Gehaltsstrukturzuweisungen wurde in die Warteschlange gestellt. Es kann ein paar Minuten dauern." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "Die Erstellung von {0} wurde in die Warteschlange gestellt. Es kann ein paar Minuten dauern." + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "Kriterien, anhand derer der Mitarbeiter im Leistungsfeedback und in der Selbstbeurteilung bewertet werden sollte" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "Währung " + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "Die Währung des ausgewählten Einkommensteuertarifs sollte {0} statt {1} sein" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "Aktuelle CTC" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "Aktuelle Anzahl" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "Derzeitiger Arbeitgeber " + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "Aktuelle Stellenbezeichnung" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "Einkommensteuer des laufenden Monats" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "Der aktuelle Kilometerzählerwert sollte größer sein als der letzte Kilometerzählerwert {0}." + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "Aktueller Kilometerzählerwert" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "Aktuelle Eröffnungen" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "Aktuelle Berufserfahrung" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "Derzeit gibt es keine {0} Abwesenheitperiode für dieses Datum, um eine Abwesenheitszuordnung zu erstellen/zu aktualisieren." + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "Benutzerdefinierter Bereich" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "Zyklusname" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "Zyklen" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "Tägliche Arbeitszusammenfassung" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "Tägliche Arbeitszusammenfassungsgruppe" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "Tägliche Arbeit Zusammenfassung Gruppenbenutzer" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "Tägliche Arbeit Zusammenfassung Antworten" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "Ereignis wiederholen" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "Termine & Grund" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "Daten basierend auf" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "Tage, für die Arbeitsfreie Tage für diese Abteilung gesperrt sind." + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "A / C-Nummer belasten" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "Dez." + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "Entscheidung ausstehend" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "Erklärungen" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "Angegebener Betrag" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Abzug der vollen Steuer am ausgewählten Abrechnungsdatum" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "Steuern für nicht abgegebenen Steuerbefreiungsnachweis abziehen" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "Abzug" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "Abzug vom Gehalt" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "Abzüge" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "Abzüge vor Steuerberechnung" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "Standard-Betrag" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "Standard Bank / Geldkonto wird automatisch in Gehalts Journal Entry aktualisiert werden, wenn dieser Modus ausgewählt ist." + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "Standard-Grundgehalt" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "Standard-Gehaltsstruktur" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "Standardschicht" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "Anhang löschen" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "Abteilungsgenehmiger" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "Offene Stellen je Abteilung" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "Die Abteilung {0} gehört nicht zum Unternehmen: {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "Abteilung: {0}" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "Abfahrt Datetime" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "Hängt von den Zahlungstagen ab" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "Hängt von den Zahlungstagen ab" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "Beschreibung einer Stellenausschreibung" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "Positionsfähigkeit" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "Position: {0}" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "Angaben zum Sponsor (Name, Ort)" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "Check-in und Check-out festlegen" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "Deaktivieren Sie {0} für die Komponente {1}, um zu verhindern, dass der Betrag zweimal abgezogen wird, da die Formel bereits eine auf Zahlungstagen basierende Komponente verwendet." + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "Deaktivieren Sie {0} oder {1}, um fortzufahren." + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "Push-Benachrichtigungen werden deaktiviert..." + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "Nicht in die Summe einbeziehen" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "Nicht in Summe berücksichtigen" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "Möchten Sie die Bewerberseite {0} auf der Grundlage des Ergebnisses des Vorstellungsgesprächs auf {1} aktualisieren?" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "Dokument {0} fehlgeschlagen!" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "Inländisch" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "Doppelte Anwesenheit" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "Doppeltes Stellengesuch" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "Doppeltes überschriebenes Gehalt" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "Doppelte Gehaltseinbehaltung" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "FEHLER({0}): {1}" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "Frühzeitiger Feierabend" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "Verfrühtes Schichtende um" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "Karenzzeit für frühzeitiges Schichtende" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "Frühzeitiges Schichtende" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "Verdienter Urlaub" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "Verdiente Austrittsfrequenz" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "Verdiente Urlaubstage" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "Verdiente Urlaubstage werden gemäß der konfigurierten Häufigkeit über den Planer zugewiesen." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "Verdiente Urlaubstage werden über den Planer automatisch zugewiesen, basierend auf der jährlichen Zuteilung, die in der Urlaubsrichtlinie festgelegt ist: {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "Verdiente Abwesenheiten sind Abwesenheiten, die ein Mitarbeiter nach einer bestimmten Zeit der Zugehörigkeit zum Unternehmen verdient. Wenn Sie diese Funktion aktivieren, wird das Abwesenheitskontingent für Abwesenheiten dieses Typs automatisch in den Intervallen aktualisiert, die durch die \"Häufigkeit des verdienten Urlaubs\" festgelegt sind." + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "Einkommen" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "Verdienende Komponente" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "Einkünfte" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "Erträge & Abzüge" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "Gültig ab" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "Gültig bis" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "Gültig ab" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "Gehaltsabrechnung per E-Mail an Mitarbeiter senden" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "Gehaltsabrechnungen per E-Mail versenden" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "Email an gesendet" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "E-Mails Gehaltsabrechnung an Mitarbeiter auf Basis von bevorzugten E-Mail in Mitarbeiter ausgewählt" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "Mitarbeiter-A / C-Nummer" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "Mitarbeiter-Vorschuss-Saldo" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "Mitarbeiter Vorausschau" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "Mitarbeiter-Analysen" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "MItarbeiter-Anwesenheits-Werkzeug" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "Employee Benefit Anwendung" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "Details zum Leistungsantrag für Angestellte" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "Leistungsanspruch des Arbeitnehmers" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "Vergünstigungen an Mitarbeiter" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "Geburtstag des Mitarbeiters" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "Mitarbeitereinstiegsaktivität" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "Mitarbeiter einchecken" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "Mitarbeiter-Checkin-Verlauf" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "Mitarbeiterkostenstelle" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "Mitarbeiterdetails" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "Mitarbeiter E-Mails" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "Einstellungen für Mitarbeiteraustritt" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "Mitarbeiteraustritte" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "Kriterien für Mitarbeiter-Feedback" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "Mitarbeiter-Feedback-Bewertung" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "Mitarbeiterklasse" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "Mitarbeiterbeschwerde" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "Krankenversicherung für Arbeitnehmer" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "Mitarbeiterauslastung basierend auf Projektzeiterfassung" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "Mitarbeiterbild" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "Mitarbeiteranreiz" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "Mitarbeiter-Infos" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "Mitarbeiterdaten" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "Mitarbeiter-Reise" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "Mitarbeiter Abwesenheitssaldo" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "Zusammenfassung der Abwesenheiten von Mitarbeitern" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "Mitarbeiterdarlehen" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "Mitarbeiterbenennung nach" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "Mitarbeiter Onboarding" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "Mitarbeiter Onboarding-Vorlage" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "Mitarbeiter-Onboarding: {0} existiert bereits für Bewerber: {1}" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "Sonstiges Einkommen des Mitarbeiters" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "Mitarbeiter Leistungsfeedback" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "Mitarbeiterförderung" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "Mitarbeiter Promotion Details" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "Mitarbeiterbeförderung kann nicht vor dem Beförderungsdatum gebucht werden" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "Mitarbeitereigenschaft Geschichte" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "Mitarbeiterempfehlung" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "Die Mitarbeiterempfehlung {0} ist für den Empfehlungsbonus nicht anwendbar." + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "Mitarbeiterempfehlungen" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "Verantwortlicher Mitarbeiter " + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "Mitarbeiter behalten" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "Mitarbeitertrennung" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "Mitarbeiter Trennvorlage" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "Mitarbeitereinstellungen" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "Mitarbeiterfähigkeit" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "Mitarbeiter-Skill-Map" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "Mitarbeiterfähigkeiten" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "Mitarbeiterstatus" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "Steuerbefreiungskategorie für Arbeitnehmer" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "Steuererklärung für Arbeitnehmer" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "Kategorie Steuerbefreiungserklärungen für Arbeitnehmer" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "Details zur Steuerbefreiung für Mitarbeitersteuerbefreiung" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "Mitarbeitersteuerbefreiung Unterkategorie" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "Angestellten Training" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "Mitarbeiterübernahme" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "Mitarbeiterüberweisungsdetails" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "Details zum Mitarbeitertransfer" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "Der Mitarbeitertransfer kann nicht vor dem Transferdatum gebucht werden" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "Der Mitarbeiter kann über die Mitarbeiter-ID benannt werden, wenn Sie eine vergeben, oder über den Nummernkreis. Wählen Sie hier Ihre Präferenz." + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "Mitarbeitername" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "Mitarbeiterdatensätze werden unter Verwendung der ausgewählten Option erstellt" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "Der Mitarbeiter wurde aufgrund fehlender Mitarbeiter-Check-ins als abwesend markiert." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "Der Mitarbeiter wurde als abwesend markiert, weil er die Arbeitszeitgrenze nicht erreicht hat." + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "Der Mitarbeiter {0} hat bereits eine Anwesenheitsanfrage {1}, die sich mit diesem Zeitraum überschneidet" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "Der Mitarbeiter {0} hat bereits einen aktiven Shift {1}: {2}, der sich mit diesem Zeitraum überschneidet." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "Mitarbeiter {0} hat bereits eine Bewerbung {1} für die Abrechnungsperiode {2} eingereicht" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "Mitarbeiter {0} hat sich bereits für die Schicht {1}: {2} beworben, die sich mit diesem Zeitraum überschneidet" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "Mitarbeiter {0} hat zwischen {2} und {3} bereits {1} beantragt: {4}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "Mitarbeiter {0} ist nicht aktiv oder existiert nicht" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "Mitarbeiter {0} ist auf Urlaub auf {1}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "Mitarbeiter {0} nicht in den Teilnehmern der Schulungsveranstaltung gefunden." + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "Mitarbeiter {0} am {1} nur halbtags anwesend" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "Am {1} freigestellter Mitarbeiter {0} muss als „Entlassen“ gekennzeichnet werden" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "Mitarbeiter: {0} müssen mindestens {1} Jahre absolvieren, um eine Abfindung zu erhalten" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "Mitarbeiter HTML" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "Mitarbeiter, die an einem arbeitsfreien Tag arbeiten" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "Mitarbeiter können sich selbst kein Feedback geben. Verwenden Sie stattdessen {0}: {1}" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "Mitarbeiter werden Urlaubserinnerungen von {} bis {} verpassen.
    Möchten Sie mit dieser Änderung fortfahren?" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "Mitarbeiter ohne Feedback: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "Mitarbeiter ohne Zielvorgaben: {0}" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "Arbeitnehmer, die an einem Feiertag arbeiten" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "Art der Beschäftigung" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "Automatische Anwesenheit einschalten" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "Markierung für vorzeitigen Feierabend aktivieren" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "Markierung für verspäteten Arbeitsbeginn aktivieren" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "Push-Benachrichtigungen aktivieren" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "Push-Benachrichtigungen werden aktiviert..." + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "Einlösung" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "Einzahlungsbetrag" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "Auszahlungstage" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "Die Einlösungstage können gemäß den Einstellungen für die Abwesenheitsart {0} {1} nicht überschreiten" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "Auszahlungsgrenze angewandt" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "Gehaltsabrechnungen in E-Mails verschlüsseln" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "Das Enddatum darf nicht vor dem Startdatum liegen" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "Enddatum: {0}" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "Die Endzeit darf nicht vor der Startzeit liegen" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "Geben Sie die Standardarbeitsstunden für einen normalen Arbeitstag ein. Diese Stunden werden in Berechnungen von Berichten wie z. B. Mitarbeiterstundenauslastung und Projektrentabilitätsanalyse verwendet." + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "Geben Sie die Anzahl der Abwesenheiten ein, die Sie für den Zeitraum zuweisen möchten." + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "{0} eingeben" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "Fehler beim Erstellen von {0}" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "Fehler beim Löschen von {0}" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "Fehler in Formel oder Bedingung" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "Fehler in Formel oder Bedingung: {0} in der Einkommensteuertabelle" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "Fehler in einigen Zeilen" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "Fehler beim Aktualisieren von {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "Geschätzte Kosten pro Position" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "Beurteilung" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "Bewertungstag" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "Die Beurteilungsmethode kann nicht geändert werden, da bereits Beurteilungen für diesen Zyklus erstellt wurden" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "Veranstaltungsdetails" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "Ereignis-Link" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "Veranstaltungsort" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "Veranstaltungsname" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "Status der Veranstaltung" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "Alle 2 Wochen" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "Alle 3 Wochen" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "Alle 4 Wochen" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "Jeder gültige Check-in und Check-out" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "Jede Woche" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "Lasst uns alle zu diesem Arbeitsjubiläum gratulieren!" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "Lasst uns gemeinsam {0} zum Geburtstag gratulieren." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "Prüfung" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "Arbeitsfreie Tage ausschließen" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "{0} Nicht-einlösbare Abwesenheiten für {1} ausgeschlossen" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "Von der Einkommensteuer befreit" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "Befreiung" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "Ausnahmekategorie" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "Befreiungsnachweise" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "Unterkategorie der Befreiung" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "Bestehender Datensatz" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "Austritt bestätigt" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "Details zum Austritt" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "Austrittsgespräch" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "Austrittsgespräch ausstehend" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "Interview-Zusammenfassung beenden" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "Das Austrittsgespräch {0} existiert bereits für den Mitarbeiter: {1}" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "Austrittsfragebogen" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "Austrittsfragebogen Benachrichtigung" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "Benachrichtigungsvorlage für den Austrittsfragebogen" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "Austrittsfragebogen ausstehend" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "Austrittsfragebogen Web-Formular" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "Erwartete Durchschnittsbewertung" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "Erwartet bis" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "Erwartete Vergütung" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "Erwartete Fähigkeiten" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "Erwartete Fähigkeiten" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "Spesengenehmiger" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "Auslagengenehmiger in Auslagenabrechnung erforderlich" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "Konto für Auslagenabrechnung" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "Auslagenvorschuss" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "Auslage" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "Zusammenfassung der Spesenabrechnung" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "Art der Auslagenabrechnung" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "Auslagenabrechnung für Fahrtenbuch {0}" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "Auslagenabrechnung {0} existiert bereits für das Fahrtenbuch" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "Auslagenabrechnungen" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "Datum der Auslage" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "Auslagenbeleg" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "Steuern und Gebühren" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "Auslagenart" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "Ausgaben & Vorschüsse" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "Verfall Zuteilung" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "Verfall Übertragene Abwesenheiten (Tage)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "Abwesenheiten verfallen lassen" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "Verfallene Abwesenheiten" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "Verfallene Abwesenheiten" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "Erklärung" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "Exportiere..." + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "{0} für Angestellte konnte nicht erstellt/gebucht werden:" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "Das Löschen der Standardeinstellungen für das Land {0} ist fehlgeschlagen." + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "Die Benachrichtigung über die Verschiebung des Vorstellungsgesprächs konnte nicht gesendet werden. Bitte konfigurieren Sie Ihr E-Mail-Konto." + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "Das Einrichten der Standardeinstellungen für das Land {0} ist fehlgeschlagen." + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "Einige Zuweisungen der Urlaubsrichtlinie konnten nicht gebucht werden:" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "Der Status des Bewerbers konnte nicht aktualisiert werden" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "Fehlerdetails" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "Feb." + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "Feedback-Anzahl" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "Feedback-HTML" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "Feedback Bewertungen" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "Vorlage für Feedback-Erinnerungsbenachrichtigungen" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "Feedback-Punktzahl" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "Feedback eingereicht" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "Feedback-Zusammenfassung" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "Für das Bewerbungsgespräch {0} wurde bereits ein Feedback gebucht. Bitte stornieren Sie das vorherige Feedback {1} um fortzufahren." + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "Für einen abwesenden Mitarbeiter kann kein Feedback erfasst werden." + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "Feedback {0} erfolgreich hinzugefügt" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "Standort abrufen" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "Schicht abrufen" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "Schichten abrufen" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "Mitarbeiter abrufen" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "Rufe Schicht ab" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "Ihr Standort wird abgerufen" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "Dateivorschau" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "Formular ausfüllen und speichern" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "Besetzt" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "Mitarbeiter filtern" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "Endgültige Entscheidung" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "Endergebnis" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "Formel für das Endergebnis" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "Erster Check-in und letzter Check-out" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "Erster Tag" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "Vorname " + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "Das Geschäftsjahr {0} nicht gefunden" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "Fuhrparkverwaltung" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "Geldwertevorteile" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "Flug" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "Per E-Mail nachverfolgen" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "Lebensmittel" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "Für Position " + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "Für Mitarbeiter" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "Wenn Sie für einen Abwesenheitstag dennoch (z. B.) 50 % des Tagesgehalts zahlen, geben Sie in diesem Feld 0,50 ein." + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "Formel" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "Bruchteil des anwendbaren Einkommens " + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "Bruchteil des Tagesgehalts für einen halben Tag" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "Bruchteil des Tagesgehalts pro Abwesenheit" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "Frappe Personalwesen" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "Von Menge" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "Von-Datum muss vor Bis-Datum liegen" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "Ab Datum {0} kann nicht nach dem Entlastungsdatum des Mitarbeiters sein {1}" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "Von Datum {0} kann nicht vor dem Beitrittsdatum des Mitarbeiters sein {1}" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "Ab dem Datum darf nicht weniger als das Beitrittsdatum des Mitarbeiters sein" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "Ab dem Datum darf das Beitrittsdatum des Mitarbeiters nicht unterschritten werden." + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "Von {0} bis {1}" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "Von (Jahr)" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "Fuchsie" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "Treibstoffkosten" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "Treibstoffkosten" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "Kraftstoff-Preis" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "Kraftstoff-Menge" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "Vollzeit" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "Vollständig gesponsert" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "Finanzierte Menge" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "Zukünftige Einkommensteuer" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "Zukünftige Termine sind nicht erlaubt" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "Geolokalisierungsfehler" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "Die Geolokalisierung wird von Ihrem aktuellen Browser nicht unterstützt" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "Details aus der Deklaration abrufen" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "Holen Sie sich Mitarbeiter" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "Stellengesuche abrufen" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "Vorlage aufrufen" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "Holen Sie sich die App auf Ihr Gerät für einfachen Zugriff und ein besseres Erlebnis!" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "Holen Sie sich die App auf Ihr iPhone für einfachen Zugriff und ein besseres Erlebnis" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "Gluten-frei" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "Zum Login" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "Zielerreichung (%)" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "Zielpunktzahl" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "Zielpunktzahl (%)" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "Zielpunktzahl (gewichtet)" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "Der Prozentsatz des Zielfortschritts kann nicht mehr als 100 betragen." + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "Das Ziel sollte auf das gleiche KRA ausgerichtet sein wie das übergeordnete Ziel." + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "Das Ziel sollte demselben Mitarbeiter gehören wie sein übergeordnetes Ziel." + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "Das Ziel sollte demselben Beurteilungszyklus angehören wie sein übergeordnetes Ziel." + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "Ziel erfolgreich aktualisiert" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "Ziele erfolgreich aktualisiert" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "Stufe" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "Gratifikation" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "Gratifikationsregel" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "Beschwerde" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "Beschwerde gegen" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "Beschwerde gegen Partei" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "Einzelheiten zur Beschwerde" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "Beschwerdetyp" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "Bruttolohn" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "Bruttogehalt (Währung des Unternehmens)" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "Bruttosumme laufendes Jahr" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "Bruttosumme laufendes Jahr (Unternehmenswährung)" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "Der Fortschritt der Gruppenziele wird automatisch auf Grundlage der untergeordneten Ziele berechnet." + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "Personalwesen" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "Personalwesen und Gehaltsabrechnung" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "Personal- und Gehaltsabrechnungseinstellungen" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "Personalwesen Dashboard" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "Einstellungen zum Modul Personalwesen" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "HRMS" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "Halbtags" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "Halbtagesdatum" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "Das Halbtagesdatum ist obligatorisch" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "Halbtages Datum sollte zwischen Von-Datum und eine aktuelle" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "Das Halbtagesdatum sollte zwischen Arbeitstag und Enddatum liegen" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "Halbtagseinträge" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "Der halbe Tag sollte zwischen Datum und Datum liegen" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "Hat Zertifikat" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "Krankenversicherung" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "Krankenversicherung Name" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "Krankenversicherungsnr." + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "Krankenkasse" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "Hallo {}! Diese E-Mail soll Sie an die bevorstehenden Feiertage erinnern." + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "Einstellungsanzahl" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "Einstellungen vornehmen" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "Liste der arbeitsfreien Tage für optionalen Urlaub" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "Arbeitsfreie Tage in diesem Monat." + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "Arbeitsfreie Tage diese Woche." + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "Horizontaler Bruch" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "Stundensatz (Währung des Unternehmens)" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "Hausmiete bezahlte Tage überlappend mit {0}" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "Mietdaten für das Haus, die für die Berechnung der Befreiung benötigt werden" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "Die Mietdauer des Hauses sollte mindestens 15 Tage betragen" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "IFSC" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "IFSC-Code" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "Ein" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "Ausweisnummer" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "Ausweistyp" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "Falls aktiviert, wird die Lohn- und Gehaltsabrechnung für jeden Mitarbeiter einzeln gebucht" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "Wenn diese Option aktiviert ist, wird das Feld "Gerundete Summe" in Gehaltsabrechnungen ausgeblendet und deaktiviert" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "Wenn diese Option aktiviert ist, wird der gesamte Betrag vom steuerpflichtigen Einkommen abgezogen, bevor die Einkommensteuer ohne Erklärung oder Nachweis berechnet wird." + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "Wenn aktiviert, wird die Steuerbefreiungserklärung für die Berechnung der Einkommensteuer berücksichtigt." + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "Falls aktiviert, wird die automatische Anwesenheit an arbeitsfreien Tagen markiert, wenn Mitarbeiter-Checkins vorhanden sind" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "Falls aktiviert, werden Zahlungstage für Abwesenheit an Feiertagen abgezogen. Standardmäßig werden arbeitsfreie Tage als bezahlt betrachtet" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "Falls aktiviert, wird die Komponente als Steuerkomponente betrachtet und der Betrag wird automatisch gemäß den konfigurierten Einkommensteuertarifen berechnet" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "Falls aktiviert, wird die Komponente im Bericht Einkommenssteuerabzüge berücksichtigt" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "Falls aktiviert, wird die Komponente nicht in der Gehaltsabrechnung angezeigt, wenn der Betrag Null ist" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "Falls aktiviert, wird die Gesamtzahl der eingegangenen Bewerbungen für diese Stelle auf der Website angezeigt" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Falls aktiviert, trägt der in dieser Komponente angegebene oder berechnete Wert nicht zu den Einnahmen oder Abzügen bei. Der Wert kann jedoch durch andere Komponenten referenziert werden, die hinzugefügt oder abgezogen werden können. " + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "Falls aktiviert, werden in der Gesamtzahl der Arbeitstage auch die arbeitsfreien Tage berücksichtigt, wodurch sich das Gehalt pro Tag verringert" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "Wenn deaktiviert, muss die Liste zu jeder Abteilung, für die sie gelten soll, hinzugefügt werden." + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Wenn ausgewählt, wird der in dieser Komponente angegebene oder berechnete Wert nicht zu den Erträgen oder Abzügen beitragen. Der Wert kann jedoch durch andere Komponenten referenziert werden, die hinzugefügt oder abgezogen werden können." + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "Falls festgelegt, wird die Stellenausschreibung nach diesem Datum automatisch geschlossen" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "Wenn Sie Darlehen in Gehaltsabrechnungen verwenden, installieren Sie bitte die App {0} vom Frappe Cloud Marketplace oder GitHub, um die Darlehensintegration mit der Gehaltsabrechnung weiterhin zu nutzen." + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "Import von Anwesenheiten" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "Rechtzeitig" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "Falls während dieses Hintergrundprozesses ein Fehler auftritt, fügt das System einen Kommentar über den Fehler zu diesem Lohnbuchungseintrag hinzu und kehrt zum Status Gebucht zurück" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "Anreiz" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "Anreizbetrag" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "Arbeitsfreie Tage einbeziehen" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "Urlaub in die Gesamtzahl der Arbeitstage mit einbeziehen" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "Urlaube innerhalb von Abwesenheiten als Abwesenheiten mit einbeziehen" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "Einkommensquelle" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "Einkommensteuerbetrag" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "Aufschlüsselung der Einkommensteuer" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "Einkommensteuerkomponente" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "Berechnung der Einkommensteuer" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "Bis heute abgezogene Einkommensteuer" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "Einkommensteuerabzüge" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "Einkommensteuerplatte" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "Einkommensteuerplatte Sonstige Gebühren" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "Die Einkommensteuerklasse ist obligatorisch, da die Gehaltsstruktur {0} eine Steuerkomponente {1} hat" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "Die Einkommensteuerplatte muss am oder vor dem Startdatum der Abrechnungsperiode wirksam sein: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "Einkommensteuerplatte nicht in Gehaltsstrukturzuordnung festgelegt: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "Einkommensteuerplatte: {0} ist deaktiviert" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "Einkommen aus anderen Quellen" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "Falsche Gewichtsverteilung" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "Gibt die Anzahl der Abwesenheiten an, die nicht vom Urlaubssaldo ausbezahlt werden können. Z.B. bei einem Urlaubssaldo von 10 und 4 nicht auszahlbaren Abwesenheiten können 6 ausgezahlt werden, während die restlichen 4 übertragen werden oder verfallen können" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "Kontrolle" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "Frappe HR installieren" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "Unzureichendes Kontingent" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "Unzureichendes Urlaubssaldo für die Abwesenheitsart {0}" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "Zinsbetrag" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "Konto für Zinserträge" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "Praktikant" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "International" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "Internet" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "Bewerbungsgespräch" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "Bewerbungsgesprächsdetail" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "Gesprächsdetails" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "Feedback zum Bewerbungsgespräch" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "Erinnerung an Feedback zum Bewerbungsgespräch" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "Feedback zum Bewerbungsgespräch {0} erfolgreich gebucht" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "Bewerbungsgespräch nicht verschoben" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "Erinnerung an Bewerbungsgespräch" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "Vorlage für Erinnerungsbenachrichtigung an Bewerbungsgespräch" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "Bewerbungsgespräch erfolgreich verschoben" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "Bewerbungsgesprächsrunde" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "Die Interviewrunde {0} gilt nur für die Position {1}" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "Die Interviewrunde {0} ist nur für die Position {1}. Der Bewerber hat sich auf die Position {2} beworben" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "Geplantes Interview Datum" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "Gesprächsstatus" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "Zusammenfassung des Bewerbungsgesprächs" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "Bewerbungsgesprächstyp" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "Bewerbungsgespräch: {0} verschoben" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "Befrager" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "Befrager" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "Bewerbungsgespräche" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "Ungültiges zusätzliches Gehalt" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "Ungültige Daten" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "Ungültiges Konto für die Gehaltsabrechnung. Die Kontowährung muss {0} oder {1} sein" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "Ungültige Schichtzeiten" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "Untersucht" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "Untersuchungsdetails" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "Eingeladen" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "Rechnung Ref" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "Gilt für Empfehlungsbonus" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "Ist Übertrag" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "Ist kompensatorisch" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "Ist Ausgleich" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "Ist verdiente Abwesenheit" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "Ist abgelaufen" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "Ist flexibler Nutzen" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "Ist Einkommensteuerkomponente" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "Ist unbezahlte Abwesenheit" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "Ist optional" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "Ist teilweise bezahlt" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "Wiederholt sich" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "Ist wiederkehrendes Zusatzgehalt" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "Gehalt freigegeben" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "Gehalt zurückgehalten" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "Ist steuerpflichtig" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "Jan." + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "Bewerber" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "Bewerber-Quelle" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "Bewerber {0} erfolgreich erstellt." + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "Bewerber dürfen nicht zweimal zum selben Vorstellungsgespräch erscheinen. Vorstellungsgespräch {0} bereits geplant für Bewerber {1}" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "Tätigkeitsbeschreibung" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "Jobangebot" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "Jobangebotsbedingung" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "Vorlage Jobangebotsbedingung" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "Jobangebotsbedingungen" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "Status des Stellenangebots" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "Stellenangebot: {0} gilt bereits für Bewerber: {1}" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "Stellenausschreibung" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "Stellenausschreibung verknüpft" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "Stellenausschreibungen" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "Stellenausschreibungen für die Position {0} sind bereits offen oder die Einstellung gemäß Personalplan {1} ist abgeschlossen" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "Stellengesuch" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "Stellenanforderung {0} wurde mit der Stellenausschreibung {1} verknüpft" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "Stellenbeschreibung, erforderliche Qualifikationen usw." + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "freie Stellen" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "Beitrittsdatum" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "Juli" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "Juni" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "KRA" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "KRA-Bewertungsmethode" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "KRA aktualisiert für alle untergeordneten Ziele." + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "KRA vs. Ziele" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "KRAs" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "Entscheidender Leistungsbereich" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "Entscheidender Verantwortungsbereich" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "Key Result Area" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "Letzter Tag" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "Letzte bekannte erfolgreiche Synchronisierung des Eincheckens von Mitarbeitern. Setzen Sie dies nur zurück, wenn Sie sicher sind, dass alle Protokolle von allen Speicherorten synchronisiert wurden. Bitte ändern Sie dies nicht, wenn Sie sich nicht sicher sind." + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "Letzter Kilometerzählerstand " + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "Letzte Synchronisierung des Eincheckens" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "Der letzte {0} war um {1}" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "Späte Einreise" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "Verspäteter Arbeitsbeginn (Std)" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "Nachfrist" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "Für das Einchecken sind die Werte für Breiten- und Längengrad erforderlich." + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "Breitengrad: {0}°" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "Verlassen" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "Abwesenheitskontingent" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "Abwesenheitskontingente" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "Urlaubsantrag" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "Der Zeitraum des Abwesenheitsantrags kann sich nicht über zwei nicht aufeinanderfolgende Abwesenheitskontingente {0} und {1} erstrecken." + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "Benachrichtigung über neuen Urlaubsantrag" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "Email-Vorlage für Benachrichtigung über neuen Urlaubsantrag" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "Abwesenheitsgenehmiger" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "Berechtigungsauslöser in Abwesenheitsanwendung auslassen" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "Name des Abwesenheitsgenehmigers" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "Abwesenheitssaldo" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "Abwesenheitssaldo vor Antrag" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "Urlaubssperrenliste" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "Urlaubssperrenliste zulassen" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "Urlaubssperrenliste zugelassen" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "Urlaubssperrenliste Datum" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "Urlaubssperrenliste Termine" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "Name der Urlaubssperrenliste" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "Abwesenheit gesperrt" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "Urlaubsverwaltung" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "Abwesenheiten Details" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "Einlösung gewähren" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "Hinterlegen Sie den Einzahlungsbetrag pro Tag" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "Historie der Abwesenheiten" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "Abwesenheitsbuch" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "Ledger-Eintrag verlassen" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "Urlaubszeitraum" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "Urlaubsrichtlinie" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "Abwesenheitsrichtlinien Zuordnung" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "Überschneidung bei der Zuordnung von Abwesenheitsrichtlinien" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "Urlaubsrichtliniendetail" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "Urlaubsrichtliniendetails" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "Abwesenheitsrichtlinie: {0} bereits zugeordnet für Mitarbeiter {1} für Zeitraum {2} bis {3}" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "Benachrichtigung über den Status des Urlaubsantrags" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "Email-Vorlage für Statusänderung eines Urlaubsantrags" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "Abwesenheitstyp" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "Bezeichnung der Abwesenheit" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "Die Abwesenheitsart kann entweder ein Ausgleichsurlaub oder ein verdienter Urlaub sein." + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "Die Abwesenheitsart kann entweder unbezahlt oder teilweise bezahlt sein" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "Abwesenheitsart ist obligatorisch" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "Urlaubstyp {0} kann nicht zugeordnet werden, da unbezahlter Urlaub." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "Urlaubstyp {0} kann nicht in die Zukunft übertragen werden" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "Abwesenheitsart {0} ist nicht umsetzbar" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "Unbezahlter Urlaub" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "Urlaub ohne Bezahlung stimmt nicht mit genehmigten {} Datensätzen überein" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "Das Abwesenheitskontingent {0} ist mit dem Abwesenheitsantrag {1} verknüpft" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "Einstellungen für Abwesenheiten und Auslagenabrechnungen" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "Der Urlaubsantrag ist mit den Urlaubszuteilungen {0} verknüpft. Urlaubsantrag kann nicht als bezahlter Urlaub festgelegt werden" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Da der Resturlaub bereits in den zukünftigen Datensatz für Urlaube {1} übertragen wurde, kann der Urlaub nicht vor {0} zugeteilt werden." + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Da der Resturlaub bereits in den zukünftigen Datensatz für Urlaube {1} übertragen wurde, kann der Urlaub nicht vor {0} genehmigt/abgelehnt werden." + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "Abwesenheit des Typs {0} kann nicht länger als {1} sein." + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "Abgelaufene Abwesenheit(en)" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "Urlaubstage zur Genehmigung ausstehend" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "Genommene Abwesenheit(en)" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "Abwesenheiten" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "Abwesenheiten & Feiertage" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "Zugeordnete Abwesenheiten" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "Abwesenheiten Abgelaufen" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "Beantragte Abwesenheiten" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "Abwesenheiten für die Abwesenheitsart {0} werden nicht übertragen, da die Übertragbarkeit deaktiviert ist." + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "Abwesenheiten pro Jahr" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Entlassen" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "Lebenszyklus" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "Limette" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "Verknüpfen Sie den Zyklus und markieren Sie das KRA mit Ihrem Ziel, um den Zielwert der Beurteilung auf der Grundlage des Zielfortschritts zu aktualisieren" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "Verknüpftes Projekt {} und Vorgänge gelöscht." + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "Darlehenskonto" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "Darlehensprodukt" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "Darlehensrückzahlung" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "Kreditrückzahlungseintrag" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "Das Darlehen kann nicht vom Gehalt des Mitarbeiters {0} zurückgezahlt werden, da das Gehalt in der Währung {1} verarbeitet wird" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "Standort / Geräte-ID" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "Unterkunft erforderlich" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "Protokolltyp" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "Der Protokolltyp ist für Eincheckvorgänge in der Schicht erforderlich: {0}." + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "Bei Frappe HR anmelden" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "Längengrad: {0}°" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "Unterer Bereich" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "MICR" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "Bankeintrag erstellen" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "Für diese Aktion benötigte Pflichtfelder:" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "Manuelle Bewertung" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "Mrz." + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "Markieren Sie die Anwesenheit" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "Automatische Anwesenheit an arbeitsfreien Tagen markieren" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "Als abgeschlossen markieren" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "Als „In Bearbeitung“ markieren" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "Als {0} markieren" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "Anwesenheit als {0} für {1} an ausgewählten Tagen markieren?" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "Markieren Sie die Anwesenheit basierend auf dem "Einchecken von Mitarbeitern" für Mitarbeiter, die dieser Schicht zugeordnet sind." + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "{0} als abgeschlossen markieren?" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "{0} {1} als {2} markieren?" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "Marked Teilnahme" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "Marked Teilnahme HTML" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "Anwesenheit markieren" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "Max. Leistungsbetrag" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "Max Nutzbetrag (jährlich)" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "Max Vorteile (Betrag)" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "Max Vorteile (jährlich)" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "Maximaler Ausnahmebetrag" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "Der maximale Steuerbefreiungsbetrag darf den maximalen Steuerbefreiungsbetrag {0} der Steuerbefreiungskategorie {1} nicht überschreiten." + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "Max steuerpflichtiges Einkommen" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "Max Arbeitszeit gegen Stundenzettel" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "Maximale Anzahl übertragener Abwesenheiten" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "Maximal erlaubte aufeinanderfolgende Abwesenheiten" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "Maximale Anzahl aufeinanderfolgender Abwesenheiten überschritten" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "Maximal auszahlbare Abwesenheiten" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "Maximal freigestellter Betrag" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "Maximaler Ausnahmebetrag" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "Die maximal auszahlbaren Urlaubstage für {0} sind {1}" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "Der maximal zulässige Urlaub im Urlaubstyp {0} ist {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "Mai" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "Mahlzeit Präferenz" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "Medizinisch" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "Kilometerstand" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "Min steuerpflichtiges Einkommen" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "Mindestjahr für die Abfindung" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "Fehlendes Pflichtfeld" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "Fehlendes Austrittsdatum" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "Art des Reisens" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "Modus der Zahlung ist erforderlich, um eine Zahlung zu leisten" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "Laufender Monat" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "Laufender Monat (Unternehmenswährung)" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "Monatliche Anwesenheitsliste" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "Mehr als eine Auswahl für {0} ist nicht zulässig" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "Mehrere Schichtzuweisungen" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "Meine Vorschüsse" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "Meine Ansprüche" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "Meine Abwesenheiten" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "Meine Anfragen" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "Namensfehler" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "Name des Veranstalters" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "Nettolohn" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "Nettogehalt (Währung des Unternehmens)" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "Infos zum Nettogehalt" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "Net Pay kann nicht kleiner als 0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "Nettogehaltsbetrag" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "Nettolohn kann nicht negativ sein" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "Neue Mitarbeiter-ID" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "Neues Feedback" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "Neue Abwesenheit(en) zugewiesen" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "Neue Urlaubszuordnung" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "Neue Urlaubszuordnung (in Tagen)" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "Neue Schichtzuweisungen werden nach diesem Datum erstellt." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "Kein Mitarbeiter gefunden" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "Für den angegebenen Mitarbeiterfeldwert wurde kein Mitarbeiter gefunden. '{}': {}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "Keine Mitarbeiter ausgewählt" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "Es wurde kein Bewerbungsgespräch geplant." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "Kein Urlaubszeitraum gefunden" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "Kein Abwesenheitskontingent für Mitarbeiter: {0} für Abwesenheitsart: {1}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "Keine Gehaltsabrechnung für Mitarbeiter gefunden: {0}" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "Dem Mitarbeiter {0} ist am angegebenen Datum keine Gehaltsstruktur zugeordnet {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "Keine Gehaltsstrukturen" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "Keine Schichtanfragen ausgewählt" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "Für diese Position wurden keine Stellenpläne gefunden" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "Keine aktive oder Standard-Gehaltsstruktur für Mitarbeiter gefunden {0} für die angegebenen Daten" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "Es wurden keine zusätzlichen Kosten hinzugefügt" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "Keine Vorschüsse gefunden" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "Für dieses Kriterium wurden keine Anwesenheiten gefunden." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "Keine Anwesenheiten gefunden." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "Keine Anwesenheitsprotokolle zu erstellen" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "Keine Änderungen in den Zeitangaben gefunden." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "Keine Mitarbeiter gefunden" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "Keine Mitarbeiter für die genannten Kriterien gefunden:
    Unternehmen: {0}
    Währung: {1}
    Gehaltsabrechnungskonto: {2}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "Keine Mitarbeiter für die ausgewählten Kriterien gefunden" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "Keine Mitarbeiter mit den ausgewählten Filtern und aktiver Gehaltsstruktur gefunden" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "Keine Ausgaben hinzugefügt" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "Es liegt noch keine Rückmeldung vor" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "Keine Elemente ausgewählt" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "Für Mitarbeiter {0} auf {1} wurde kein Urlaubsdatensatz gefunden" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "Es wurden keine Abwesenheiten zugeteilt." + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "Keine Updates mehr" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "Anzahl Stellen" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "Keine Antworten" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "Es wurde kein Lohnzettel für die oben ausgewählten Kriterien oder den bereits eingereichten Gehaltsbeleg gefunden" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "Keine Gehaltsabrechnungen gefunden" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "Keine Steuern hinzugefügt" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "Keine gültige Schicht für Protokollzeit gefunden" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "Kein {0} ausgewählt" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "Kein {0} hinzugefügt" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "Nicht Tagebuch" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "Nicht steuerpflichtiges Einkommen" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "Nicht abgerechnete Stunden" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "Nicht abgerechnete Stunden (NB)" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "Nicht-auszahlbarer Urlaub" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "Kein Vegetarier" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "Hinweis: Die Schicht wird in vorhandenen Anwesenheitsdatensätzen nicht überschrieben" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "Hinweis: Die Summe der zugeteilten Abwesenheiten {0} sollte nicht geringer sein als die bereits genehmigten Abwesenheiten {1} für den Zeitraum" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "Hinweis: Ihre Gehaltsabrechnung ist passwortgeschützt, das Passwort zum Entsperren der PDF hat das Format {0}." + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "Nichts zu ändern" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "Mitteilungsfrist" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "Benachrichtigungsvorlage" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "Benutzer per E-Mail benachrichtigen" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "Nov." + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "Anzahl Angestellter" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "Anzahl der Positionen" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "Anzahl der Einbehaltungszyklen" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "Anzahl der Abwesenheiten, die für die Einlösung in Frage kommen, basierend auf den Einstellungen der Abwesenheitsart" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "Einmalpasswort-Code" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "Einmalpasswort-Verifizierung" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "AUS" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "Erreichte durchschnittliche Bewertung" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "Okt." + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "Tachostand" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "Kilometerstand" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "Außerhalb der Schicht" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "Außerhalb der Schicht" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "Angebotsfrist" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "Angebotsbedingungen" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "Am Datum" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "Im Dienst" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "Im Urlaub" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "Onboarding" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "Onboarding-Aktivitäten" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "Das Onboarding beginnt am" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "Nur Genehmigende können diese Anfrage genehmigen." + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "Es können nur vollständig ausgefüllte Dokumente gebucht werden" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "Es kann nur eine Mitarbeiterbeschwerde mit dem Status {0} oder {1} gebucht werden" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "Nur Interviewer dürfen ein Interview-Feedback buchen" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "Es können nur Interviews mit dem Status \"Freigegeben\" oder \"Abgelehnt\" gebucht werden." + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "Nur Urlaubsanträge mit dem Status \"Gewährt\" und \"Abgelehnt\" können übermittelt werden." + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "Es kann nur eine Schichtanforderung mit den Status "Genehmigt" und "Abgelehnt" eingereicht werden" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "Nur abgelaufene Zuordnungen können storniert werden" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "Nur Interviewer können Feedback abgeben" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "Nur Benutzer mit der Rolle {0} können zurückliegende Urlaubsanträge erstellen" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "Nur {0} Ziele können {1} sein" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "Offen & Genehmigt" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "Jetzt öffnen" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "Eröffnung geschlossen." + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "Optionale Feiertagsliste ist für Abwesenheitszeitraum {0} nicht festgelegt" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "Optionale Abwesenheiten sind Urlaubstage, die Arbeitnehmer aus einer vom Unternehmen veröffentlichten Liste von Urlaubstagen auswählen können." + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "Organigramm" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "Sonstige Steuern und Abgaben" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "Andere" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "Ausgehendes Gehalt" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "Überzuteilung" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "Durchschnittliche Gesamtbewertung" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "Überlappende Anwesenheitsanfragen" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "Überlappende Schichtanwesenheit" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "Überlappende Schichtanfragen" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "Überlappende Schichten" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "Gehaltsstruktur überschreiben" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "PAN-Nummer" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "PF-Konto" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "PF-Betrag" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "PF-Darlehen" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "PWA-Benachrichtigung" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "Bezahlt per Gehaltsabrechnung" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "Übergeordnetes Ziel" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "Teilzeit" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "Teilweise gesponsert, erfordern Teilfinanzierung" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "Teilweise beansprucht und zurückgegeben" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "Kennwortrichtlinie" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "Die Kennwortrichtlinie darf keine Leerzeichen oder Bindestriche gleichzeitig enthalten. Das Format wird automatisch umstrukturiert" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "Die Kennwortrichtlinie für Gehaltsabrechnungen ist nicht festgelegt" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "Via Gehaltsabrechnung zahlen" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "Verbindlichkeitskonto ist erforderlich, um eine Auslagenabrechnung zu buchen" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "Zahlungskonto ist obligatorisch" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "Zahlungsdatum" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "Zahlungsziel" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "Hilfe zur Berechnung der Zahlungstage" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "Zahlung und Buchhaltung" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "Zahlung von {0} von {1} an {2}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "Lohn-und Gehaltsabrechnung" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "Lohn- und Gehaltsabrechnung auf Basis von" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "Kostenstellen für die Gehaltsabrechnung" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "Abrechnungsdatum" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "Personalabrechnung Mitarbeiter Detail" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "Das Stornieren der Gehaltsabrechnung steht in der Warteschlange. Es kann ein paar Minuten dauern" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "Lohnabrechnungszeitraum" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "Infos zur Gehaltsabrechnung" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "Abrechnungsnummer" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "Konto für Verbindlichkeiten aus Lohn und Gehalt" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "Abrechnungsperiode" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "Abrechnungsperiodatum" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "Abrechnungsperioden" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "Berichte zur Lohn- und Gehaltsabrechnung" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "Einstellungen zur Gehaltsabrechnung" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "Das Abrechnungsdatum darf nicht größer sein als das Entlastungsdatum des Mitarbeiters." + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "Das Abrechnungsdatum darf nicht unter dem Beitrittsdatum des Mitarbeiters liegen." + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "Ausstehender (unbezahlter) Betrag aus früheren Vorschüssen" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "Ausstehende Gespräche" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "Ausstehende Fragebögen" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "Prozentabzug" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "Leistung" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "{0} dauerhaft stornieren" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "{0} dauerhaft buchen" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "Akkordarbeit" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "Geplante Anzahl von Positionen" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "Bitte aktivieren Sie die automatische Anwesenheit und schließen Sie zunächst die Einrichtung ab." + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "Bitte wählen Sie zuerst das Unternehmen aus" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "Bitte bestätigen Sie, sobald Sie Ihre Ausbildung abgeschlossen haben" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "Bitte erstellen Sie zunächst eine neue {0} für das Datum {1}." + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "Bitte löschen Sie den Mitarbeiter {0} um dieses Dokument zu stornieren" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "Bitte aktivieren Sie das standardmäßig eingehende Konto, bevor Sie die Daily Work Summary Group erstellen" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "Bitte geben Sie die Position ein" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "Siehe Anhang" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "Bitte wählen Sie Unternehmen und Position" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "Bitte wählen Sie Mitarbeiter" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "Bitte wählen Sie zuerst Mitarbeiter." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "Bitte wählen Sie zuerst das Ab-Datum und die Häufigkeit aus" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "Bitte wählen Sie ein „Ab Datum“." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "Bitte wählen Sie Schichttyp und Zuweisungsdaten aus." + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "Bitte wählen Sie zunächst ein Unternehmen aus" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "Bitte wählen Sie zunächst ein Unternehmen aus." + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "Bitte eine CSV-Datei auswählen." + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "Bitte wählen Sie ein Datum aus." + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "Bitte wählen Sie einen Bewerber aus" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "Bitte wählen Sie mindestens eine Schichtanforderung aus, um diese Aktion durchzuführen." + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "Bitte wählen Sie mindestens einen Mitarbeiter aus, um diese Aktion auszuführen." + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "Bitte wählen Sie mindestens eine Zeile aus, um diese Aktion auszuführen." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "Bitte wählen Sie ein Unternehmen aus." + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "Bitte wählen Sie zuerst einen Mitarbeiter aus" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "Bitte wählen Sie Mitarbeiter aus, für die Sie Beurteilungen erstellen möchten" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "Bitte wählen Sie Monat und Jahr aus." + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "Bitte wählen Sie zuerst den Beurteilungszyklus aus." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "Bitte wählen Sie den Anwesenheitsstatus aus." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "Bitte wählen Sie die Mitarbeiter aus, für die Sie die Anwesenheit markieren möchten." + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "Bitte wählen Sie die Gehaltsabrechnungen aus, die Sie per E-Mail versenden möchten" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "Bitte setzen Sie das Standard-Verbindlichkeitskonto für Lohn- und Gehaltsabrechnung in den Unternehmenseinstellungen" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "Bitte stellen Sie die Verdienstkomponente für die Abwesenheitsart ein: {0}." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "Bitte stellen Sie die Personalabrechnung basierend auf den Einstellungen für die Personalabrechnung ein" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "Bitte legen Sie das Austrittsdatum für den Mitarbeiter fest: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "Bitte legen Sie das Konto in der Gehaltskomponente {0} fest" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "Bitte legen Sie eine Email-Vorlage für Benachrichtigung über neuen Urlaubsantrag in den HR-Einstellungen fest." + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "Bitte legen Sie die Email-Vorlage für Statusänderung eines Urlaubsantrags in den HR-Einstellungen fest." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "Bitte stellen Sie die Beurteilungsvorlage für alle {0} ein oder wählen Sie die Vorlage in der Tabelle Mitarbeiter unten aus." + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "Bitte setzen Sie das Unternehmen" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "Bitte setzen Sie das Datum des Beitritts für Mitarbeiter {0}" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "Bitte stellen Sie die Liste der arbeitsfreien Tage ein." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "Bitte legen Sie das Austrittsdatum für den Mitarbeiter {0} fest" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "Bitte stellen Sie {0} und {1} in {2} ein." + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "Bitte setzen Sie {0} für Mitarbeiter {1}" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "Bitte stellen Sie {0} für den Mitarbeiter ein: {1}" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "Bitte {0} setzen." + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "Bitte richten Sie das Employee Naming System unter Human Resource> HR Settings ein" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "Bitte richten Sie die Nummerierungsserie für die Teilnahme über Setup> Nummerierungsserie ein" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "Bitte teilen Sie Ihr Feedback mit dem Training ab, indem Sie auf 'Training Feedback' und dann 'New' klicken." + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "Bitte geben Sie den Bewerber an, der aktualisiert werden soll." + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "Bitte buchen Sie die {0}, bevor Sie den Zyklus als abgeschlossen markieren" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "Bitte aktualisieren Sie Ihren Status für diese Trainingsveranstaltung" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "Gepostet am" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "Buchungsdatum" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "Bevorzugte Wohngegend" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "Anwesend" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "Verhindert die Selbstgenehmigung für Urlaub, auch wenn der Benutzer über die entsprechenden Berechtigungen verfügt." + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "Vorschau Gehaltsabrechnung" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "Gedruckt am {0}" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "Bevorzugter Urlaub" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "Probezeit" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "Probezeit" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "Anwesenheit verarbeiten nach" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "Anfragen verarbeiten" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "Schichtanfragen verarbeiten" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "{0} Schichtanforderung(en) als {1} verarbeiten?" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "Anfragen verarbeiten" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "Anfragen verarbeiten..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "Die Verarbeitung von Schichtanfragen wurde in die Warteschlange gestellt. Dies kann einige Minuten dauern." + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "Gewerbliche Steuerabzüge" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "Kompetenz" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "Gewinn" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "Projektrentabilität" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "Beförderung" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "Aktionsdatum" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "Die Eigenschaft wurde bereits hinzugefügt" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "Provident Fund Abzüge" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "Anzahl der eingegangenen Bewerbungen veröffentlichen" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "Lohnspanne veröffentlichen" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "Veröffentlichen Sie auf der Website" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "Zweck & Betrag" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "Zweck der Reise" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "Berechtigung für Push-Benachrichtigung verweigert" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "Push-Benachrichtigungen deaktiviert" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "Die Push-Benachrichtigungen wurden auf Ihrer Instanz deaktiviert" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "Fragebogen per E-Mail gesendet" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "Schnellfilter" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "Radius, innerhalb dessen der Check-in erlaubt ist (in Meter)" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "Ziele manuell bewerten" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "Bewertungskriterien" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "Bewertungen" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "Abwesenheiten neu zuteilen" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "Grund der Anfrage" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "Grund für die Einbehaltung des Gehalts" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "Grund für das Überspringen der automatischen Anwesenheit:" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "Aktuelle Anwesenheitsanfragen" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "Kürzliche Ausgaben" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "Aktuelle Abwesenheiten" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "Aktuelle Schichtanfragen" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "Empfohlen für ein einzelnes biometrisches Gerät / Check-ins über eine mobile App" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "Rekrutierung" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "Rekrutierungsanalyse" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "Referenz: {0}" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "Empfehlungsbonus Zahlungsstatus" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "Empfehlungsdetails" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "Details zum Empfehler" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "Name des Empfehlers" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "Betankungs Einzelheiten" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "Ablehnen" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "Mitarbeiterempfehlung ablehnen" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "Einbehaltene Gehälter freigeben" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "Freigegeben" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "Freistellungsdatum " + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "Austrittsdatum fehlt" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "Verbleibende Vorteile (jährlich)" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "Vorher erinnern" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "Erinnert" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "Erinnerungen" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "Entfernen, wenn der Wert Null ist" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "Gemietetes Auto" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "Vom Gehalt zurückzahlen" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "Die Rückzahlung vom Gehalt kann nur für befristete Darlehen ausgewählt werden" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "Nicht in Anspruch genommene Beträge vom Gehalt zurückzahlen" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "An Tagen wiederholen" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "Antworten" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "Berichtet an" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "Anwesenheit beantragen" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "Abwesenheit beantragen" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "Eine Abwesenheit beantragen" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "Eine Schicht beantragen" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "Einen Vorschuss beantragen" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "Angefordert von" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "Angefordert von (Name)" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "Erfordern vollständige Finanzierung" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "Erforderliche Fertigkeiten" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "Erforderlich für die Mitarbeitererstellung" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "Vorstellungsgespräch verschieben" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "Verantwortung" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "Rückdatierte Abwesenheitsanträge einschränken" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "Resume-Anlage" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "Link zum Lebenslauf" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "Link zum Lebenslauf" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "Behalten" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "Aufbewahrungsbonus" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "Renteneintrittsalter (in Jahren)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "Der Rückgabebetrag darf nicht höher sein als der nicht beanspruchte Betrag" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "Überprüfen Sie verschiedene andere Einstellungen in Bezug auf Abwesenheiten von Mitarbeitern und Auslagenabrechnungen" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "Name des Überprüfers" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "Berechtigte Rolle zum Erstellen eines zurückdatierten Urlaubsantrags" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "Dienstplan" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "Dienstplanfarbe" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "Rundenname" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "Berufserfahrung abrunden" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "Runde auf die nächste Ganzzahl" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "Rundung" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "Pfad zum benutzerdefinierten Webformular für die Stellenbewerbung" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "Zeile {0}: Betrag oder Formel für Gehaltskomponente {1} mit Variable basierend auf steuerpflichtigem Gehalt kann nicht festgelegt werden" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "Zeile #{0}: Für die Komponente {1} sind die Optionen {2} und {3} aktiviert." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "Zeile #{0}: Der Betrag auf dem Stundenzettel überschreibt den Betrag für die Gehaltskomponente {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "Zeile Nr. {0}: Der Betrag darf nicht größer sein als der ausstehende Betrag der Auslagenabrechnung {1}. Der ausstehende Betrag beträgt {2}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "Zeile {0} # Der zugewiesene Betrag {1} darf nicht größer sein als der nicht beanspruchte Betrag {2}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "Zeile {0}# Der bezahlte Betrag darf nicht größer sein als der Gesamtbetrag" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "Zeile {0}: Bezahlter Betrag darf nicht größer sein als der geforderte Anzahlungsbetrag" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "Zeile {0}: Von (Jahr) kann nicht größer sein als Bis (Jahr)" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "Zeile {0}: Der gezahlte Betrag {1} ist größer als der ausstehende aufgelaufene Betrag {2} für das Darlehen {3}" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "Zeile {0}: {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "Zeile {0}: {1} in der Tabelle der Auslagen ist erforderlich, um eine Auslagenabrechnung zu buchen." + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "Gehaltskomponente" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "Gehaltskomponente " + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "Gehaltskomponente Account" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "Gehalt Komponententyp" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "Gehaltskomponente für Zeiterfassung basierte Abrechnung." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "Die Gehaltskomponente {0} wird derzeit in keiner Gehaltsstruktur verwendet." + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "Gehalt Details" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "Gehaltsdetails" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "Gehaltserwartung" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "Gehaltsinformationen" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "Gehalt Bezahlt Pro" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "Gehaltszahlungen basierend auf dem Zahlungsmodus" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "Gehaltszahlungen über ECS" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "Gehaltsspanne" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "Gehalt Register" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "Gehaltsabrechnung" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "Gehaltsabrechnung Basierend auf Timesheet" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "Gehaltsabrechnung ID" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "Gehaltsabrechnung Vorschuss" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "Gehaltszettel Timesheet" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "Die Gehaltsabrechnung existiert bereits für {0} für die angegebenen Daten" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "Die Erstellung der Gehaltsabrechnung befindet sich in der Warteschlange. Es kann einige Minuten dauern" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "Gehaltsabrechnung der Mitarbeiter {0} für diesen Zeitraum bereits erstellt" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "Gehaltsabrechnung der Mitarbeiter {0} bereits für Zeitblatt erstellt {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "Die Buchung der Gehaltsabrechnung steht in der Warteschlange. Es kann ein paar Minuten dauern" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "Gehaltsabrechnungen" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "Lohnzettel erstellt" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "Gehaltszettel eingereicht" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "Gehaltsabrechnungen gebucht für den Zeitraum von {0} bis {1}" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "Gehaltsstruktur" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "Zuordnung der Gehaltsstruktur" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "Die Gehaltsstrukturzuordnung für den Mitarbeiter ist bereits vorhanden" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "Gehaltsstruktur Fehlende" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "Die Gehaltsstruktur muss vor der Einreichung von {0} gebucht werden" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "Gehaltsstruktur {0} gehört nicht zum Unternehmen {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "Gehaltsstrukturen erfolgreich aktualisiert" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "Gehaltseinbehalt" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "Zyklus der Gehaltseinbehaltung" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "Gehaltseinbehalt {0} existiert bereits für Mitarbeiter {1} für den ausgewählten Zeitraum" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "Gehalt bereits verarbeitet für den Zeitraum zwischen {0} und {1}, freiBewerbungsFrist kann nicht zwischen diesem Datum liegen." + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "Gehaltsaufteilung nach Einkommen und Abzügen." + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "Gehaltskomponenten sollten Teil der Gehaltsstruktur sein." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "E-Mails mit Gehaltsabrechnungen wurden in die Warteschlange für den Versand gestellt. Prüfen Sie den Status unter {0}." + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "Genehmigter Betrag" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "Genehmigter Betrag kann nicht größer als geforderter Betrag in Zeile {0} sein." + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "Geplant am" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "Erreichte Punktzahl" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "Punktzahl muß kleiner oder gleich 5 sein" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "Punktzahl" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "Nach Stellen suchen" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "Wählen Sie ein Zahlungskonto für die Buchung" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "Wählen Sie die Häufigkeit der Lohn- und Gehaltsabrechnung." + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "Abrechnungszeitraum auswählen" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "Wählen Sie Eigenschaft" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "Schichtanfragen auswählen" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "Bitte Geschäftsbedingungen auswählen" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "Wählen Sie Benutzer aus" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "Wählen Sie einen Mitarbeiter aus, um den Mitarbeiter vorab zu erreichen." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "Wählen Sie den Mitarbeiter, für den Sie Abwesenheiten zuteilen möchten." + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "Mitarbeiter auswählen." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "Wählen Sie die Abwesenheitsart, wie z. B. krankheitsbedingte Abwesenheit, Erholungsurlaub, etc." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "Wählen Sie das Datum, nach dem dieses Abwesenheitskontingent abläuft." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "Wählen Sie das Datum aus, ab dem dieses Abwesenheitskontingent gültig sein soll." + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "Wählen Sie das Enddatum für Ihren Abwesenheitsantrag." + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "Wählen Sie das Startdatum für Ihren Abwesenheitsantrag." + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "Wählen Sie diese Option, wenn Sie möchten, dass Schichtzuweisungen automatisch auf unbestimmte Zeit erstellt werden." + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "Wählen Sie die Art der Abwesenheit aus, die der Mitarbeiter beantragen möchte, z. B. Krankheit, Erholungsurlaub, usw." + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "Wählen Sie Ihren Abwesenheitsgenehmiger, d.h. die Person, die Ihre Abwesenheiten genehmigt oder ablehnt." + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "Selbstbeurteilung" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "Selbstbeurteilung ausstehend: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "Ergebnis der Selbsteinschätzung" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "Selbstbewertung" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "Selbststudium" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "Selbstgenehmigung für Abwesenheiten ist nicht erlaubt" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "Die E-Mails senden um" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "Austrittsfragebogen senden" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "Austrittsfragebögen versenden" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "Erinnerung an Vorstellungsgesprächs-Feedback senden" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "Erinnerung an Vorstellungsgespräch senden" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "Abwesenheitsbenachrichtigung senden" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "Senden fehlgeschlagen aufgrund fehlender E-Mail-Informationen für Mitarbeiter: {1}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "Erfolgreich gesendet: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "Sep." + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "Trennungsaktivitäten" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "Die Trennung beginnt am" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "Wartungsdetails" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "Dienstzeitaufwand" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "Setzen Sie „Von (Jahr)“ und „Bis (Jahr)“ auf 0, um die Ober- und Untergrenze zu deaktivieren." + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "Zuweisungsdetails festlegen" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "Details zur Abwesenheit einstellen" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "Austrittsdatum für Mitarbeiter festlegen: {0}" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "Filter zum Abrufen von Mitarbeitern festlegen" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "Eröffnungssalden für Verdienste und Steuern des vorherigen Arbeitgebers festlegen" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "Legen Sie optionale Filter fest, um Mitarbeiter in der Beurteilungsliste zu finden" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "Legen Sie das Standardkonto für {0} {1} fest" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "Häufigkeit von Feiertagserinnerungen" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "Legen Sie die Eigenschaften fest, die im Mitarbeiterstamm bei der Buchung einer Beförderung aktualisiert werden sollen" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "Setzen Sie den Status bei Bedarf auf {0}." + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "Setzen Sie {0} für ausgewählte Mitarbeiter" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "Einstellungen fehlen" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "Begleichen Sie alle Verbindlichkeiten und Forderungen vor der Buchung" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Schicht & Anwesenheit" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "Tatsächliches Ende verschieben" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "Tatsächliches Schichtende" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "Tatsächlichen Start verschieben" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "Tatsächlicher Schichtbeginn" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "Schicht-Zuordnung" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "Details zur Schichtzuweisung" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "Tool zur Schichtzuweisung" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "Schichtzuweisung: {0} erstellt für Mitarbeiter: {1}" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "Anwesenheit in der Schicht" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "Shicht-Details" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "Schichtende" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "Schicht-Endzeit" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "Standort der Schicht" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "Schichtanforderung" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "Genehmiger für Schichtanfragen" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "Filter für Schichtanfragen" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "Schichtanfragen, die vor diesem Datum enden, werden nicht berücksichtigt." + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "Schichtanfragen, die nach diesem Datum beginnen, werden nicht berücksichtigt." + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "Zeitplan für die Schicht" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "Schichteinstellungen" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "Schichtstart" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "Schicht Startzeit" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "Schichtstatus" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "Schichtzeiten" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "Schicht Werkzeuge" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "Schicht-Art" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "Schicht wurde erfolgreich auf {0} aktualisiert." + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Schichten" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "Mitarbeiter anzeigen" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "Abwesenheiten in der Gehaltsabrechnung anzeigen" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "Abwesenheiten aller Abteilungsmitglieder im Kalender anzeigen" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "Anzeigen Gehaltsabrechnung" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "Krankheitsbedingte Abwesenheit" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "Einzelne Zuweisung" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "Fertigkeit" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "Bewertung der Fähigkeiten" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "Name der Fertigkeit" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "Fertigkeiten" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "Automatische Teilnahme überspringen" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "Überspringen der Gehaltsstrukturzuordnung für die folgenden Mitarbeiter, da bereits Gehaltsstrukturzuordnungssätze für diese vorhanden sind. {0}" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "Quelle und Bewertung" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "Quell- und Zielschichten können nicht identisch sein" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "Gesponserte Menge" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "Personalplanung Details" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "Personalplanung" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "Personalplanung Detail" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "Personalplan {0} existiert bereits für Position {1}" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "Standard Steuerbefreiungsbetrag" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "Standard-Arbeitszeiten" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "Start- und Enddatum, die nicht in einer gültigen Abrechnungsperiode sind, können {0} nicht berechnen." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "Startdatum: {0}" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "Start- und Endzeit dürfen nicht identisch sein." + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "Statistische Komponente" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "Status für die andere Hälfte" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "Lager-Optionen" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "Benutzer davon abhalten, Urlaubsanträge für folgende Tage einzureichen." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "Streng basierend auf dem Protokolltyp beim Einchecken von Mitarbeitern" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "Strukturen wurden erfolgreich zugewiesen" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "Abgabetermin" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "Buchung fehlgeschlagen" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "Die Buchung von {0} vor {1} ist nicht erlaubt" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "Feedback senden" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "Jetzt einreichen" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "Nachweis einreichen" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "Gehaltsabrechnung übertragen" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "Buchen Sie diesen Abwesenheitsantrag zur Bestätigung." + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "Übergeben Sie dies, um den Mitarbeiterdatensatz zu erstellen" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "Gehaltsabrechnungen werden gebucht und Buchungssätze erstellt..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "Lohnzettel einreichen ..." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "Die Tochterunternehmen haben bereits {1} freie Stellen mit einem Budget von {2} eingeplant. Der Personalplan für {0} sollte mehr freie Stellen und mehr Budget für {3} vorsehen als für die Tochterunternehmen geplant" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "{0} für Mitarbeiter erfolgreich erstellt:" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "Erfolgreich {0} {1} für die folgenden Mitarbeiter:" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "Zusammenfassende Ansicht" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "{0} synchronisieren" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "Syntaxfehler" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "Syntaxfehler in der Bedingung: {0} in der Einkommensteuertabelle" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "Steuern & Sozialleistungen" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "Abgezogene Steuern bis Datum" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "Steuerbefreiungskategorie" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "Erklärung zur Steuerbefreiung" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "Steuerbefreiungsbeweise" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "Steuereinstellungen" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "Steuer auf zusätzliches Gehalt" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "Steuer auf flexiblen Vorteil" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "Steuerpflichtiges Einkommen bis heute" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "Steuerbare Lohnplatte" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "Steuerbare Lohnplatten" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "Steuern & Abgaben" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "Steuern und Abgaben auf die Einkommensteuer" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "Taxi" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "Team-Abwesenheiten" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "Anfragen des Teams" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "Team-Updates" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "Das Datum, an dem die Gehaltskomponente mit dem Betrag zum Verdienst/Abzug in der Gehaltsabrechnung beitragen wird. " + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "Der Tag des Monats, an dem Abwesenheiten zugeteilt werden sollen" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "Der Tag/die Tage, für den/die Sie Urlaub beantragen, sind Ferien. Deshalb müssen Sie keinen Urlaub beantragen." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "Die Tage zwischen {0} und {1} sind keine gültigen Feiertage." + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "Der Anteil des Tagesgehalts pro Abwesenheit sollte zwischen 0 und 1 liegen." + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "Der Bruchteil des Tageslohns, der für die halbtägige Anwesenheit zu zahlen ist" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "Die Gehaltsabrechnung, die per E-Mail an den Mitarbeiter gesendet wird, ist passwortgeschützt. Das Passwort wird basierend auf der Passwortrichtlinie generiert." + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "Die Zeit nach dem Schichtstart, zu der der Check-in als verspätet gilt (in Minuten)." + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "Die Zeit vor dem Schichtende, zu der der Check-out als früh angesehen wird (in Minuten)." + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "Die Zeit vor dem Schichtbeginn, in der der Mitarbeiter-Check-in für die Anwesenheit berücksichtigt wird." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "Theorie" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "Es gibt mehr Feiertage als Arbeitstage in diesem Monat." + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "Es gibt keine offenen Stellen im Besetzungsplan {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "Es gibt keinen Mitarbeiter mit der Gehaltsstruktur: {0}. Weisen Sie {1} einem Mitarbeiter zu, um eine Vorschau der Gehaltsabrechnung anzuzeigen" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "Diese Abwesenheiten sind vom Unternehmen genehmigte Urlaubstage, deren Inanspruchnahme dem Arbeitnehmer jedoch freigestellt ist." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "Diese Aktion verhindert, dass Sie Änderungen an den verknüpften Beurteilungsrückmeldungen/-zielen vornehmen." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "Dieser Ausgleichsurlaub gilt ab {0}." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "Dieser Mitarbeiter hat bereits ein Protokoll mit demselben Zeitstempel. {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "Dieser Fehler kann auf eine ungültige Formel oder Bedingung zurückzuführen sein." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "Dieser Fehler kann auf eine ungültige Syntax zurückzuführen sein." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "Dieser Fehler kann auf ein fehlendes oder gelöschtes Feld zurückzuführen sein." + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "In diesem Feld können Sie die maximale Anzahl von aufeinanderfolgenden Abwesenheiten festlegen, die ein Mitarbeiter beantragen kann." + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "In diesem Feld können Sie bei der Erstellung der Abwesenheitsart die maximale Anzahl von Abwesenheiten festlegen, die jährlich für diese Abwesenheitsart vergeben werden können" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "Dies hängt von der Anwesenheit dieses Mitarbeiters ab" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "Diese Methode ist nur für den Entwicklermodus gedacht" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "Dadurch wird die Steuerkomponente {0} in der Gehaltsabrechnung überschrieben und die Steuer wird nicht auf Grundlage der Einkommenssteuerklassen berechnet" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "Dies wird Gehaltsabrechnungen übermitteln und eine periodengerechte Journalbuchung erstellen. Willst du fortfahren?" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "Zeit nach Schichtende, in der der Check-out für die Anwesenheit in Betracht gezogen wird." + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "Zeitaufwand für die Besetzung der offenen Stellen" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "Zeit zum Besetzen" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "Zeitleisten" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "Stundenzettel Details" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "Zeitliche Koordinierung" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "Zu Betrag" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "Bis Datum sollte größer als Von Datum sein" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "An Benutzer" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "Um dies zu ermöglichen, aktivieren Sie {0} unter {1}." + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "Um einen Halbtag zu beantragen, markieren Sie 'Halbtag' und wählen Sie das Halbtagsdatum aus" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "Bis heute kann nicht gleich oder weniger als von Datum sein" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "Bisher kann das Entlastungsdatum des Mitarbeiters nicht überschritten werden." + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "Bis heute kann nicht weniger als von Datum sein" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "Bis heute kann nicht mehr als Entlastungsdatum des Mitarbeiters sein" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "Das Bis-Datum kann nicht vor dem Von-Datum liegen" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "Um den Betrag der Gehaltskomponente für eine Steuerkomponente zu überschreiben, aktivieren Sie bitte {0}" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "Bis (Jahr)" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "Bis (Jahr) darf nicht kleiner sein als Von (Jahr)" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "Heute ist {0}s Geburtstag 🎉" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "Heute {0} in unserem Unternehmen! 🎉" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "Summe Abwesenheit" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "Tatsächlicher Gesamtbetrag" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "Anzahlungen (gesamt)" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "Gesamte zugewiesene Urlaubstage" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "Insgesamt zugeteilte Abwesenheiten" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "Gesamterstattungsbetrag" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "Der Gesamtbetrag kann nicht Null sein" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "Gesamtforderung" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "Gesamter deklarierter Betrag" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "Gesamtabzug" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "Gesamtabzug (Währung des Unternehmens)" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "Gesamtzahl vorzeitiger Feierabend" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "Gesamteinnahmen" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "Gesamtverdienst" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "Geschätztes Gesamtbudget" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "Geschätzte Gesamtkosten" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "Gesamtbefreiungsbetrag" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "Gesamt-Zielpunktzahl" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "Bruttogehalt Gesamt" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "Einkommensteuer Gesamt" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "Gesamtzinsbetrag" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "Gesamtzahl verspäteter Einträge" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "Urlaubstage insgesamt" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "Abwesenheiten insgesamt" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "Abwesenheiten insgesamt ({0})" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "Insgesamt zugewiesene Urlaubstage" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "Ausbezahlte Abwesenheiten insgesamt" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "Darlehensrückzahlung insgesamt" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "Gesamtnettolohn" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "Nicht in Rechnung gestellte Stunden insgesamt" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "Gesamter zu zahlender Betrag" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "Gesamte Zahlung" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "Summe Anwesend" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "Gesamtforderungsbetrag" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "Rücktritte insgesamt" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "Summe genehmigter Beträge" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "Gesamtpunktzahl" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "Gesamt-Selbstpunktzahl" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "Der gesamte Vorschussbetrag darf nicht höher sein als der Gesamtbetrag der Sanktion" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "Die Summe der zugeteilten Abwesenheiten übersteigt die maximal erlaubte Zuteilung für die Abwesenheitsart {0} für den Mitarbeiter {1} in der Periode" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "Die Summe der zugewiesenen Abwesenheiten {0} kann nicht geringer sein als die bereits genehmigten Abwesenheiten {1} für den Zeitraum" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "Summe in Worten" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "Gesamtbetrag in Worten (Unternehmenswährung)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "Die Summe der zugewiesenen Abwesenheiten kann die jährliche Zuweisung von {0} nicht überschreiten." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "Die Summe der zugewiesenen Abwesenheiten ist für die Abwesenheitsart {0} obligatorisch." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Gesamtgehalt, das für diesen Mitarbeiter vom Jahresbeginn (Lohnabrechnungsperiode oder Geschäftsjahr) bis zum Enddatum der aktuellen Gehaltsabrechnung mit dieser Komponente verbucht wurde." + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "Gesamtes für diesen Mitarbeiter gebuchtes Gehalt vom Monatsanfang bis zum Enddatum der aktuellen Gehaltsabrechnung." + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Das gesamte für diesen Mitarbeiter gebuchte Gehalt vom Jahresbeginn (Abrechnungsperiode oder Geschäftsjahr) bis zum Enddatum der aktuellen Gehaltsabrechnung." + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "Die Gesamtgewichtung für alle {0} muss 100 ergeben. Derzeit beträgt sie {1}%" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "Gesamtarbeitstage pro Jahr" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "Insgesamt Arbeitszeit sollte nicht größer sein als die maximale Arbeitszeit {0}" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "Zug" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "Trainer E-Mail" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "Trainer-Name" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "Ausbildung" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "Trainingsdatum" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "Schulungsveranstaltung" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "Schulungsveranstaltung Mitarbeiter" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "Schulungsveranstaltung:" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "Schulungsveranstaltungen" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "Feedback zur Weiterbildung" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "Trainingsprogramm" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "Trainingsergebnis" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "Trainingsergebnis Mitarbeiter" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "Schulungen" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "Überweisungsdatum" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "Reise" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "Reisevorauszahlung erforderlich" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "Reisen von" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "Reisefinanzierung" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "Reiseverlauf" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "Reiseantrag" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "Reiseanfrage Kosten" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "Reisen nach" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "Reiseart" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "Art des Nachweises" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "Ihr Standort kann nicht abgerufen werden" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "Entarchivieren" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "Nicht in Anspruch genommener Betrag" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "Wird überprüft" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "Zahlungsverknüpfung aufheben" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "Verknüfung der Anwesenheit mit den folgenden Mitarbeiter-Check-ins wurde aufgehoben: {}" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "Verknüpfung aufgehoben" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "Unmarkierte Anwesenheit für Tage" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "Unmarkierte Check-in-Protokolle gefunden" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "Nicht markierte Tage" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "Nicht markierte Tage" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "Ungezahlte Auslagenabrechnung" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "Nicht abgewickelt" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "Nicht abgewickelte Transaktionen" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "Nicht gebuchte Beurteilungen" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "Nicht erfasste Stunden" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "Nicht erfasste Stunden (U)" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "Ungenutzter Urlaub" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "Kommende Feiertage" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "Erinnerung an bevorstehende Arbeitsfreie Tage" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "Kommende Schichten" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "Bewerber aktualisieren" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "Fortschritt aktualisieren" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "Antwort aktualisieren" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "Gehaltsstrukturen aktualisieren" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "Status aktualisieren" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "Steuer aktualisieren" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "Status von {0} auf {1} für Datum {2} in der Anwesenheitsliste {3} aktualisiert" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "Der Status des Bewerbers wurde auf {0} aktualisiert" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "Status des Stellenangebots {0} für den verknüpften Bewerber {1} auf {2} aktualisiert" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "Der Status des verknüpften Bewerbers {0} wurde auf {1} aktualisiert" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "Anwesenheit hochladen" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "HTML hochladen" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "Bilder oder Dokumente hochladen" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "Hochladen..." + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "Upper Range" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "Verbrauchte Urlaubstage" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "Verwendete Abwesenheiten" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "Stellenangebote" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "Die offenen Stellen können nicht niedriger sein als die aktuellen Stellenangebote" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "Offene Stellen besetzt" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "Teilnahme bestätigen" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "Überprüfung der Mitarbeiterbeteiligung ..." + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "Wert / Beschreibung" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "Fehlender Wert" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "Variable" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "Variable basierend auf dem steuerpflichtigen Gehalt" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "Vegetarier" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "Fahrzeugkosten" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "Fahrzeug Log" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "Fahrzeug-Service" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "Fahrzeug-Serviceartikel" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "Ziele ansehen" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "Abwesenheitsverlauf anzeigen" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "Gehaltsabrechnungen anzeigen" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "Violett" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "WARNUNG: Das Modul Darlehensverwaltung wurde von ERPNext getrennt." + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "Warnung: Unzureichender Urlaubssaldo für die Abwesenheitsart {0} in diesem Kontingent." + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "Warnung: Unzureichender Urlaubssaldo für die Abwesenheitsart {0}." + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "Achtung: Die Urlaubsverwaltung enthält die folgenden gesperrten Daten" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "Achtung: {0} hat bereits eine aktive Schichtzuweisung {1} für einige/alle dieser Daten." + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "Website-Liste" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "Gewichtung (%)" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "Wenn die Einstellung auf „Inaktiv“ festgelegt ist, werden Mitarbeiter mit kollidierenden aktiven Schichten nicht ausgeschlossen." + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "Die Zuteilung für Abwesenheiten wird automatisch erstellt oder aktualisiert, wenn Sie einen Antrag auf Abwesenheiten einreichen." + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "Warum ist dieser Kandidat für diese Position qualifiziert?" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "Einbehalten" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "Arbeitsjubiläen " + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "Erinnerung an Arbeitsjubiläum" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "Arbeitsenddatum" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "Methode zur Berechnung der Berufserfahrung" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "Arbeit von Datum" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "Von zuhause aus arbeiten" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "Arbeitsreferenzen" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "Arbeitszusammenfassung für {0}" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "Im Urlaub gearbeitet" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "Arbeitstage" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "Arbeitstage und -stunden" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "Arbeitszeitberechnung basierend auf" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "Arbeitszeitschwelle für Abwesenheit" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "Arbeitszeitschwelle für halben Tag" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "Arbeitszeit, unter der Abwesend markiert ist. (Null zu deaktivieren)" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "Arbeitszeit, unter der der halbe Tag markiert ist. (Null zu deaktivieren)" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "Werkstatt" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "Laufendes Jahr" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "Laufendes Jahr (Unternehmenswährung)" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "Ja, fortfahren" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "Sie sind nicht berechtigt, Urlaube für geblockte Termine zu genehmigen" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "Sie sind nicht den ganzen Tag (oder mehreren Tagen) zwischen den Ausgleichsurlaubsantragstagen anwesend" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "Sie können keine Standard-Schicht anfordern: {0}" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "Sie können nur bis zu {0} freie Stellen einplanen und {1} für {2} gemäß dem Stellenplan {3} des Mutterunternehmens {4} budgetieren." + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "Sie können die Einzahlung nur für einen gültigen Einlösungsbetrag einreichen" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "Sie können nur JPG-, PNG-, PDF-, TXT- oder Microsoft-Dokumente hochladen." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "Sie haben keine Berechtigung, diese Aktion abzuschließen" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "Sie haben keine Vorschüsse" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "Sie haben keine Abwesenheiten zugewiesen" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "Sie haben keine Benachrichtigungen" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "Sie haben keine Anfragen" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "Sie haben keine bevorstehenden Feiertage" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "Sie haben keine bevorstehenden Schichten" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "Sie können ggf. weitere Details hinzufügen und das Angebot buchen." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "Sie müssen sich zum Einchecken in einem Umkreis von {0} Metern um Ihren Schichtstandort befinden." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "Sie waren am {} nur für einen halben Tag anwesend. Sie können keinen ganztägigen Ausgleichsurlaub beantragen" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "Ihr Vorstellungsgespräch wird von {0} {1} - {2} auf den {3} {4} - {5} verschoben" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "Ihr Passwort ist abgelaufen. Bitte setzen Sie Ihr Passwort zurück, um fortzufahren" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "aktiv" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "basierend auf" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "Stornierung" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "abgesagt" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "erstellen/buchen" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "erstellt" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "maxmustermann@email.de" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "oder für die Abteilung des Mitarbeiters: {0}" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "verarbeiten" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "verarbeitet" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "ergebnis" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "ergebnisse" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "rezension" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "bewertungen" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "gebucht" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "über die Synchronisierung der Gehaltskomponenten" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "jahr" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "{0} & {1}" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "{0} & {1} mehr" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "{0}
    Dieser Fehler kann auf ein fehlendes oder gelöschtes Feld zurückzuführen sein." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "{0} Bewertung(en) sind noch nicht gebucht" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "{0} Feld" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "{0} fehlt" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "{0} Zeile #{1}: Die Formel ist festgelegt, aber {2} ist für die Gehaltskomponente {3} deaktiviert." + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "{0} Zeile #{1}: {2} muss aktiviert sein, damit die Formel berücksichtigt werden kann." + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "{0} Ungelesen" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} bereits an Mitarbeiter {1} zugeteilt für den Zeitraum {2} bis {3}" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0} existiert bereits für Mitarbeiter {1} und Periode {2}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "{0} hat bereits eine aktive Schichtzuweisung {1} für einige/alle dieser Daten." + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "{0} gilt nach {1} Werktagen" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "{0} balance" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "{0} erfolgreich erstellt!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "{0} erfolgreich gelöscht!" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "{0} fehlgeschlagen!" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "{0} hat {1} aktiviert" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "{0} ist kein arbeitsfreier Tag." + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "{0} darf kein Interview-Feedback für das Interview abgeben: {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} befindet sich nicht in der optionalen Feiertagsliste" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "{0} Abwesenheiten erfolgreich zugeteilt" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "{0} Abwesenheiten aus der Zuteilung für die Abwesenheitsart {1} sind verfallen und werden mit dem nächsten geplanten Job verarbeitet. Es wird empfohlen, sie jetzt verfallen zu lassen, bevor Sie neue Zuweisungen für Abwesenheiten erstellen." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "{0} Abwesenheiten wurden manuell von {1} auf {2} zugewiesen" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} muss eingereicht werden" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "{0} von {1} abgeschlossen" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "{0} erfolgreich!" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "{0} erfolgreich!" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "{0} bis {1} Mitarbeiter?" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "{0} erfolgreich aktualisiert!" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "{0} offene Stellen und {1} Budget für {2} sind bereits für Tochterunternehmen von {3} geplant. Sie können gemäß Personalplan {6} für Mutterunternehmen {3} nur bis zu {4} offene Stellen und ein Budget von {5} planen." + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "{0} wird für die folgenden Gehaltsstrukturen aktualisiert: {1}." + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "{0} {1} {2}?" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}: Mitarbeiter E-Mail nicht gefunden, E-Mail daher nicht gesendet" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "{0}: Von {0} vom Typ {1}" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "{0}T" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "{} Akzeptiert" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "{} Aktiv" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "{} Entwürfe" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "{} Nicht beansprucht" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "{} {} offen für diese Position." + diff --git a/apps/erpnext/src/hrms/hrms/locale/eo.po b/apps/erpnext/src/hrms/hrms/locale/eo.po new file mode 100644 index 000000000..67f0bb41c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/eo.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Esperanto\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: eo\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: eo_UY\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "crwdns160010:0crwdne160010:0" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "crwdns149168:0crwdne149168:0" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "crwdns104710:0crwdne104710:0" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "crwdns104718:0crwdne104718:0" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "crwdns104720:0crwdne104720:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "crwdns104722:0crwdne104722:0" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr "crwdns104726:0{0}crwdne104726:0" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "crwdns155404:0crwdne155404:0" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "crwdns140794:0crwdne140794:0" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "crwdns140796:0crwdne140796:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "crwdns140798:0crwdne140798:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "crwdns140800:0crwdne140800:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "crwdns140802:0crwdne140802:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "crwdns140804:0crwdne140804:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "crwdns140806:0crwdne140806:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "crwdns140808:0crwdne140808:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "crwdns140810:0crwdne140810:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "crwdns140812:0crwdne140812:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "crwdns140814:0crwdne140814:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "crwdns140816:0crwdne140816:0" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "crwdns140818:0crwdne140818:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "crwdns140820:0crwdne140820:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "crwdns140822:0crwdne140822:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "crwdns140824:0crwdne140824:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "crwdns140826:0crwdne140826:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "crwdns140828:0crwdne140828:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "crwdns140830:0crwdne140830:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "crwdns140832:0crwdne140832:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "crwdns140834:0crwdne140834:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "crwdns140836:0crwdne140836:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "crwdns140838:0crwdne140838:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "crwdns140840:0crwdne140840:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "crwdns140842:0crwdne140842:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "crwdns140844:0crwdne140844:0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "crwdns140846:0crwdne140846:0" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "crwdns140848:0{0}crwdne140848:0" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "crwdns140850:0{first_name}crwdnd140850:0{date_of_birth.year}crwdne140850:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "crwdns104784:0crwdne104784:0" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "crwdns140852:0crwdne140852:0" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "crwdns140854:0crwdne140854:0" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "crwdns155406:0crwdne155406:0" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "crwdns155408:0crwdne155408:0" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "crwdns155410:0crwdne155410:0" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "crwdns148478:0crwdne148478:0" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "crwdns161504:0crwdne161504:0" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "crwdns140856:0{0}crwdnd140856:0{1}crwdne140856:0" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "crwdns104804:0{0}crwdnd104804:0{1}crwdnd104804:0{2}crwdne104804:0" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "crwdns104806:0crwdne104806:0" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "crwdns104808:0{0}crwdnd104808:0{1}crwdnd104808:0{2}crwdne104808:0" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "crwdns140860:0crwdne140860:0" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "crwdns140862:0crwdne140862:0" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "crwdns104824:0crwdne104824:0" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "crwdns104844:0crwdne104844:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "crwdns160262:0{0}crwdnd160262:0{1}crwdne160262:0" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "crwdns104850:0{0}crwdnd104850:0{1}crwdne104850:0" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "crwdns140868:0crwdne140868:0" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "crwdns104876:0crwdne104876:0" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "crwdns140876:0{0}crwdne140876:0" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "crwdns159408:0crwdne159408:0" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "crwdns159410:0crwdne159410:0" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "crwdns159412:0crwdne159412:0" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "crwdns159414:0crwdne159414:0" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "crwdns159416:0crwdne159416:0" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "crwdns159418:0crwdne159418:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "crwdns104888:0{0}crwdnd104888:0{1}crwdne104888:0" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "crwdns159420:0crwdne159420:0" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "crwdns159422:0crwdne159422:0" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "crwdns159424:0crwdne159424:0" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "crwdns159426:0crwdne159426:0" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "crwdns159428:0{0}crwdnd159428:0{1}crwdnd159428:0{2}crwdnd159428:0{3}crwdne159428:0" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "crwdns140880:0crwdne140880:0" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "crwdns140884:0crwdne140884:0" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "crwdns140886:0crwdne140886:0" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "crwdns104910:0crwdne104910:0" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "crwdns159430:0crwdne159430:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "crwdns104914:0crwdne104914:0" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "crwdns140890:0crwdne140890:0" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "crwdns104918:0crwdne104918:0" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "crwdns151150:0crwdne151150:0" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "crwdns104920:0crwdne104920:0" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "crwdns151152:0crwdne151152:0" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "crwdns104922:0crwdne104922:0" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "crwdns140892:0crwdne140892:0" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "crwdns140894:0crwdne140894:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "crwdns104932:0crwdne104932:0" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "crwdns104934:0crwdne104934:0" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "crwdns140898:0crwdne140898:0" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "crwdns140900:0crwdne140900:0" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "crwdns104940:0crwdne104940:0" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "crwdns104942:0crwdne104942:0" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "crwdns140902:0crwdne140902:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "crwdns104950:0{0}crwdne104950:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "crwdns104952:0{0}crwdne104952:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "crwdns104954:0{0}crwdnd104954:0{1}crwdnd104954:0{2}crwdnd104954:0{3}crwdne104954:0" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "crwdns140904:0crwdne140904:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "crwdns159432:0crwdne159432:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "crwdns159434:0crwdne159434:0" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "crwdns159436:0crwdne159436:0" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "crwdns140906:0crwdne140906:0" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "crwdns159440:0{0}crwdnd159440:0{0}crwdne159440:0" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "crwdns161214:0crwdne161214:0" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "crwdns161216:0crwdne161216:0" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "crwdns140914:0crwdne140914:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "crwdns161218:0{0}crwdnd161218:0{1}crwdne161218:0" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "crwdns104982:0crwdne104982:0" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "crwdns104984:0crwdne104984:0" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "crwdns104986:0crwdne104986:0" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "crwdns104988:0crwdne104988:0" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "crwdns140916:0crwdne140916:0" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "crwdns104992:0crwdne104992:0" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "crwdns142904:0{0}crwdne142904:0" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "crwdns140920:0crwdne140920:0" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "crwdns161220:0crwdne161220:0" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "crwdns104998:0crwdne104998:0" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "crwdns160862:0crwdne160862:0" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "crwdns105002:0crwdne105002:0" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "crwdns160864:0crwdne160864:0" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "crwdns159444:0crwdne159444:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "crwdns105008:0crwdne105008:0" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "crwdns159446:0{0}crwdnd159446:0{1}crwdne159446:0" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "crwdns159448:0crwdne159448:0" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "crwdns160866:0crwdne160866:0" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "crwdns160868:0crwdne160868:0" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "crwdns140924:0crwdne140924:0" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "crwdns140926:0crwdne140926:0" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "crwdns140928:0crwdne140928:0" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "crwdns151968:0crwdne151968:0" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "crwdns105012:0crwdne105012:0" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "crwdns140930:0crwdne140930:0" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "crwdns140932:0crwdne140932:0" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "crwdns140934:0crwdne140934:0" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "crwdns140936:0crwdne140936:0" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "crwdns140938:0crwdne140938:0" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "crwdns140940:0crwdne140940:0" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "crwdns159452:0crwdne159452:0" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "crwdns140942:0crwdne140942:0" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "crwdns140944:0crwdne140944:0" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "crwdns140946:0crwdne140946:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "crwdns105146:0crwdne105146:0" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "crwdns140950:0crwdne140950:0" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "crwdns140952:0crwdne140952:0" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "crwdns140954:0crwdne140954:0" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "crwdns152547:0crwdne152547:0" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "crwdns152400:0crwdne152400:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "crwdns105152:0crwdne105152:0" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "crwdns140958:0crwdne140958:0" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "crwdns160012:0{0}crwdnd160012:0{1}crwdnd160012:0{2}crwdne160012:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "crwdns154209:0crwdne154209:0" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "crwdns140960:0crwdne140960:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "crwdns149070:0crwdne149070:0" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "crwdns105158:0crwdne105158:0" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "crwdns140962:0crwdne140962:0" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "crwdns140964:0crwdne140964:0" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "crwdns140966:0crwdne140966:0" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "crwdns140970:0crwdne140970:0" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "crwdns159454:0crwdne159454:0" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "crwdns140974:0crwdne140974:0" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "crwdns140976:0crwdne140976:0" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "crwdns140978:0crwdne140978:0" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "crwdns140980:0crwdne140980:0" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "crwdns140982:0crwdne140982:0" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "crwdns105184:0crwdne105184:0" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "crwdns105186:0crwdne105186:0" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "crwdns105188:0crwdne105188:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "crwdns105190:0crwdne105190:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "crwdns105192:0crwdne105192:0" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "crwdns105194:0crwdne105194:0" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "crwdns105196:0crwdne105196:0" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "crwdns140984:0crwdne140984:0" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "crwdns140988:0crwdne140988:0" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "crwdns105200:0crwdne105200:0" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "crwdns159456:0crwdne159456:0" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "crwdns159458:0crwdne159458:0" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "crwdns140990:0crwdne140990:0" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "crwdns105206:0crwdne105206:0" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "crwdns105210:0crwdne105210:0" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "crwdns105216:0crwdne105216:0" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "crwdns105218:0crwdne105218:0" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "crwdns105228:0crwdne105228:0" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "crwdns105238:0crwdne105238:0" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "crwdns105240:0crwdne105240:0" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "crwdns105242:0crwdne105242:0" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "crwdns105246:0crwdne105246:0" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "crwdns105248:0crwdne105248:0" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "crwdns105256:0crwdne105256:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "crwdns105258:0crwdne105258:0" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "crwdns140992:0crwdne140992:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "crwdns105262:0crwdne105262:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "crwdns105264:0crwdne105264:0" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "crwdns105266:0{0}crwdnd105266:0{1}crwdne105266:0" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "crwdns105268:0{0}crwdnd105268:0{1}crwdne105268:0" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "crwdns105270:0crwdne105270:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "crwdns105272:0{0}crwdne105272:0" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "crwdns105274:0crwdne105274:0" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "crwdns140994:0crwdne140994:0" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "crwdns140996:0crwdne140996:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "crwdns105280:0crwdne105280:0" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "crwdns140998:0crwdne140998:0" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "crwdns141000:0crwdne141000:0" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "crwdns141002:0crwdne141002:0" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "crwdns148888:0crwdne148888:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "crwdns105292:0crwdne105292:0" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "crwdns151156:0crwdne151156:0" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "crwdns151158:0{0}crwdne151158:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "crwdns105298:0crwdne105298:0" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "crwdns105302:0crwdne105302:0" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "crwdns160014:0crwdne160014:0" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "crwdns159460:0crwdne159460:0" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "crwdns160016:0crwdne160016:0" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "crwdns160018:0crwdne160018:0" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "crwdns160020:0crwdne160020:0" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "crwdns141006:0crwdne141006:0" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "crwdns105306:0crwdne105306:0" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "crwdns141010:0{0}crwdnd141010:0{1}crwdne141010:0" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "crwdns141012:0crwdne141012:0" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "crwdns141014:0{0}crwdne141014:0" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "crwdns141016:0crwdne141016:0" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "crwdns151970:0crwdne151970:0" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "crwdns141020:0crwdne141020:0" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "crwdns141022:0crwdne141022:0" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "crwdns141028:0crwdne141028:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "crwdns105316:0crwdne105316:0" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "crwdns141030:0crwdne141030:0" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "crwdns105320:0crwdne105320:0" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "crwdns141032:0crwdne141032:0" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "crwdns141034:0crwdne141034:0" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "crwdns105326:0crwdne105326:0" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "crwdns141036:0crwdne141036:0" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "crwdns160870:0crwdne160870:0" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "crwdns105332:0crwdne105332:0" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "crwdns154542:0crwdne154542:0" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "crwdns161506:0crwdne161506:0" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "crwdns105344:0crwdne105344:0" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "crwdns141040:0crwdne141040:0" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "crwdns105350:0crwdne105350:0" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "crwdns105352:0crwdne105352:0" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "crwdns105354:0crwdne105354:0" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "crwdns105358:0crwdne105358:0" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "crwdns151160:0crwdne151160:0" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "crwdns141042:0crwdne141042:0" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "crwdns141044:0crwdne141044:0" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "crwdns105366:0crwdne105366:0" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "crwdns105368:0crwdne105368:0" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "crwdns105372:0{0}crwdnd105372:0{1}crwdnd105372:0{2}crwdne105372:0" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "crwdns105374:0crwdne105374:0" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "crwdns105376:0{0}crwdnd105376:0{1}crwdnd105376:0{2}crwdne105376:0" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "crwdns105378:0{0}crwdnd105378:0{1}crwdnd105378:0{2}crwdne105378:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "crwdns154329:0{0}crwdnd154329:0{1}crwdne154329:0" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "crwdns141046:0crwdne141046:0" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "crwdns105382:0{0}crwdnd105382:0{1}crwdnd105382:0{2}crwdne105382:0" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "crwdns141048:0crwdne141048:0" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "crwdns141050:0{0}crwdne141050:0" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "crwdns105386:0crwdne105386:0" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "crwdns105388:0{0}crwdne105388:0" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "crwdns105390:0{0}crwdnd105390:0{1}crwdne105390:0" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "crwdns141052:0crwdne141052:0" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "crwdns151162:0crwdne151162:0" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "crwdns141054:0crwdne141054:0" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "crwdns105396:0crwdne105396:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "crwdns105398:0crwdne105398:0" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "crwdns141056:0crwdne141056:0" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "crwdns141058:0crwdne141058:0" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "crwdns141060:0crwdne141060:0" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "crwdns160872:0{0}crwdnd160872:0{1}crwdne160872:0" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "crwdns141062:0crwdne141062:0" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "crwdns152549:0crwdne152549:0" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "crwdns141064:0crwdne141064:0" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "crwdns141066:0crwdne141066:0" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "crwdns141068:0crwdne141068:0" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "crwdns141070:0crwdne141070:0" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "crwdns160022:0crwdne160022:0" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "crwdns141074:0crwdne141074:0" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "crwdns105416:0crwdne105416:0" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "crwdns105418:0crwdne105418:0" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "crwdns105420:0crwdne105420:0" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "crwdns141076:0crwdne141076:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "crwdns105424:0crwdne105424:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "crwdns105434:0crwdne105434:0" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "crwdns105440:0crwdne105440:0" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "crwdns105442:0crwdne105442:0" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "crwdns141084:0crwdne141084:0" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "crwdns141088:0crwdne141088:0" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "crwdns105454:0crwdne105454:0" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "crwdns105456:0crwdne105456:0" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "crwdns159464:0crwdne159464:0" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "crwdns159466:0crwdne159466:0" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "crwdns159468:0{0}crwdnd159468:0{1}crwdne159468:0" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "crwdns159470:0{0}crwdne159470:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "crwdns159472:0{0}crwdnd159472:0{1}crwdnd159472:0{2}crwdnd159472:0{3}crwdne159472:0" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "crwdns105458:0crwdne105458:0" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "crwdns105464:0crwdne105464:0" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "crwdns105466:0crwdne105466:0" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "crwdns105468:0crwdne105468:0" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "crwdns141092:0crwdne141092:0" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "crwdns105476:0crwdne105476:0" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "crwdns105478:0crwdne105478:0" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "crwdns141094:0crwdne141094:0" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "crwdns141096:0crwdne141096:0" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "crwdns141098:0crwdne141098:0" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "crwdns141100:0crwdne141100:0" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "crwdns141104:0crwdne141104:0" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "crwdns141106:0crwdne141106:0" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "crwdns141108:0crwdne141108:0" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "crwdns105494:0crwdne105494:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "crwdns105512:0{0}crwdne105512:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "crwdns105514:0crwdne105514:0" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "crwdns105516:0crwdne105516:0" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "crwdns105518:0crwdne105518:0" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "crwdns141114:0crwdne141114:0" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "crwdns105520:0crwdne105520:0" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "crwdns141116:0crwdne141116:0" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "crwdns141118:0crwdne141118:0" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "crwdns141120:0crwdne141120:0" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "crwdns141122:0crwdne141122:0" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "crwdns105530:0crwdne105530:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "crwdns105534:0crwdne105534:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "crwdns154211:0crwdne154211:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "crwdns151974:0{0}crwdnd151974:0{1}crwdne151974:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "crwdns160874:0{0}crwdne160874:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "crwdns160876:0{0}crwdnd160876:0{1}crwdne160876:0" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "crwdns148512:0crwdne148512:0" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "crwdns148514:0crwdne148514:0" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "crwdns148516:0{0}crwdnd148516:0{1}crwdne148516:0" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "crwdns148518:0{0}crwdnd148518:0{1}crwdne148518:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "crwdns105558:0crwdne105558:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "crwdns105560:0crwdne105560:0" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "crwdns105562:0crwdne105562:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "crwdns148484:0{0}crwdne148484:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "crwdns105566:0crwdne105566:0" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "crwdns105568:0{0}crwdne105568:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "crwdns105570:0crwdne105570:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "crwdns105572:0{0}crwdne105572:0" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "crwdns105574:0crwdne105574:0" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "crwdns141126:0crwdne141126:0" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "crwdns141128:0crwdne141128:0" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "crwdns105582:0crwdne105582:0" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "crwdns141130:0crwdne141130:0" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "crwdns159474:0{0}crwdnd159474:0{1}crwdnd159474:0{2}crwdne159474:0" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "crwdns159476:0{0}crwdnd159476:0{1}crwdne159476:0" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "crwdns154544:0{0}crwdnd154544:0{1}crwdne154544:0" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "crwdns105588:0crwdne105588:0" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "crwdns141134:0{0}crwdnd141134:0{1}crwdne141134:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "crwdns105594:0{0}crwdne105594:0" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "crwdns151166:0crwdne151166:0" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "crwdns151168:0crwdne151168:0" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "crwdns141136:0crwdne141136:0" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "crwdns105598:0{0}crwdne105598:0" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "crwdns151170:0crwdne151170:0" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "crwdns141138:0crwdne141138:0" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "crwdns151172:0crwdne151172:0" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "crwdns141140:0crwdne141140:0" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "crwdns149140:0crwdne149140:0" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "crwdns105604:0crwdne105604:0" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "crwdns159478:0crwdne159478:0" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "crwdns159480:0crwdne159480:0" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "crwdns141142:0crwdne141142:0" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "crwdns151174:0crwdne151174:0" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "crwdns141146:0crwdne141146:0" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "crwdns105612:0crwdne105612:0" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "crwdns159482:0{0}crwdnd159482:0{1}crwdne159482:0" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "crwdns159484:0{0}crwdne159484:0" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "crwdns105618:0crwdne105618:0" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "crwdns141150:0crwdne141150:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "crwdns141152:0{0}crwdne141152:0" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "crwdns105634:0crwdne105634:0" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "crwdns105638:0crwdne105638:0" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "crwdns105642:0crwdne105642:0" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "crwdns141156:0crwdne141156:0" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "crwdns151176:0crwdne151176:0" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "crwdns105768:0crwdne105768:0" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "crwdns105774:0crwdne105774:0" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "crwdns105796:0crwdne105796:0" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "crwdns141170:0crwdne141170:0" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "crwdns141174:0crwdne141174:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "crwdns105812:0crwdne105812:0" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "crwdns141176:0crwdne141176:0" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "crwdns141180:0crwdne141180:0" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "crwdns141182:0crwdne141182:0" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "crwdns151180:0{0}crwdne151180:0" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "crwdns105826:0crwdne105826:0" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "crwdns141186:0crwdne141186:0" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "crwdns105830:0crwdne105830:0" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "crwdns141188:0crwdne141188:0" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "crwdns105834:0crwdne105834:0" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "crwdns141194:0crwdne141194:0" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "crwdns141198:0crwdne141198:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "crwdns105872:0crwdne105872:0" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "crwdns105874:0crwdne105874:0" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "crwdns105876:0crwdne105876:0" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "crwdns141210:0crwdne141210:0" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "crwdns141212:0crwdne141212:0" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "crwdns160126:0crwdne160126:0" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "crwdns141214:0crwdne141214:0" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "crwdns141216:0crwdne141216:0" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "crwdns105888:0crwdne105888:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "crwdns105890:0crwdne105890:0" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "crwdns105902:0crwdne105902:0" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "crwdns105904:0crwdne105904:0" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "crwdns105906:0crwdne105906:0" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "crwdns141220:0crwdne141220:0" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "crwdns159486:0crwdne159486:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "crwdns159488:0crwdne159488:0" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "crwdns105924:0crwdne105924:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "crwdns105926:0crwdne105926:0" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "crwdns148520:0crwdne148520:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "crwdns105932:0crwdne105932:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "crwdns105934:0crwdne105934:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "crwdns105936:0crwdne105936:0" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "crwdns151976:0{0}crwdne151976:0" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "crwdns141224:0crwdne141224:0" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "crwdns105938:0crwdne105938:0" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "crwdns141226:0crwdne141226:0" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "crwdns151978:0{0}crwdne151978:0" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "crwdns141230:0crwdne141230:0" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "crwdns141232:0crwdne141232:0" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "crwdns105988:0{0}crwdnd105988:0{1}crwdne105988:0" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "crwdns141234:0crwdne141234:0" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "crwdns141236:0crwdne141236:0" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "crwdns141238:0crwdne141238:0" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "crwdns141240:0crwdne141240:0" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "crwdns141242:0crwdne141242:0" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "crwdns106004:0{0}crwdne106004:0" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "crwdns141244:0crwdne141244:0" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "crwdns141246:0crwdne141246:0" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "crwdns159490:0crwdne159490:0" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "crwdns141248:0crwdne141248:0" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "crwdns141250:0crwdne141250:0" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "crwdns106016:0{0}crwdne106016:0" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "crwdns141252:0crwdne141252:0" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "crwdns141254:0crwdne141254:0" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "crwdns143248:0crwdne143248:0" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "crwdns106030:0crwdne106030:0" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "crwdns106034:0crwdne106034:0" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "crwdns106040:0crwdne106040:0" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "crwdns106042:0crwdne106042:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "crwdns160440:0crwdne160440:0" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "crwdns106068:0crwdne106068:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "crwdns159492:0{0}crwdne159492:0" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "crwdns141260:0crwdne141260:0" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "crwdns141262:0crwdne141262:0" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "crwdns148890:0crwdne148890:0" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "crwdns159494:0crwdne159494:0" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "crwdns159496:0crwdne159496:0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "crwdns106090:0crwdne106090:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "crwdns106092:0crwdne106092:0" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "crwdns106094:0crwdne106094:0" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "crwdns141264:0crwdne141264:0" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "crwdns141266:0crwdne141266:0" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "crwdns141268:0crwdne141268:0" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "crwdns141272:0crwdne141272:0" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "crwdns106114:0crwdne106114:0" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "crwdns159498:0crwdne159498:0" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "crwdns106118:0crwdne106118:0" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "crwdns106120:0crwdne106120:0" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "crwdns141274:0crwdne141274:0" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "crwdns141276:0crwdne141276:0" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "crwdns141280:0crwdne141280:0" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "crwdns141282:0crwdne141282:0" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "crwdns141284:0crwdne141284:0" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "crwdns148892:0crwdne148892:0" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "crwdns148894:0crwdne148894:0" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "crwdns148486:0crwdne148486:0" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "crwdns141286:0crwdne141286:0" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "crwdns141288:0crwdne141288:0" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "crwdns151186:0crwdne151186:0" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "crwdns151188:0{0}crwdne151188:0" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "crwdns106236:0crwdne106236:0" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "crwdns106238:0crwdne106238:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "crwdns152304:0{0}crwdnd152304:0{1}crwdne152304:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "crwdns106240:0{0}crwdne106240:0" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "crwdns141296:0crwdne141296:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "crwdns148488:0crwdne148488:0" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "crwdns141298:0crwdne141298:0" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "crwdns141300:0crwdne141300:0" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "crwdns106348:0crwdne106348:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "crwdns106350:0{0}crwdne106350:0" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "crwdns141302:0crwdne141302:0" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "crwdns141304:0crwdne141304:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "crwdns106376:0{0}crwdnd106376:0{1}crwdne106376:0" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "crwdns106378:0{0}crwdnd106378:0{1}crwdne106378:0" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "crwdns151190:0crwdne151190:0" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "crwdns159500:0crwdne159500:0" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "crwdns141314:0crwdne141314:0" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "crwdns141316:0crwdne141316:0" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "crwdns106394:0{0}crwdnd106394:0{1}crwdne106394:0" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "crwdns151194:0{0}crwdne151194:0" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "crwdns141318:0crwdne141318:0" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "crwdns106418:0crwdne106418:0" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "crwdns159502:0crwdne159502:0" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "crwdns106422:0crwdne106422:0" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "crwdns159504:0crwdne159504:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "crwdns106424:0crwdne106424:0" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "crwdns143252:0crwdne143252:0" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "crwdns141326:0{0}crwdnd141326:0{1}crwdne141326:0" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "crwdns106428:0crwdne106428:0" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "crwdns106434:0crwdne106434:0" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "crwdns141328:0crwdne141328:0" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "crwdns106438:0crwdne106438:0" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "crwdns141330:0crwdne141330:0" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "crwdns141332:0crwdne141332:0" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "crwdns160878:0crwdne160878:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "crwdns106444:0crwdne106444:0" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "crwdns106446:0crwdne106446:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "crwdns106448:0{0}crwdne106448:0" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "crwdns106450:0crwdne106450:0" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "crwdns106452:0crwdne106452:0" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "crwdns159506:0crwdne159506:0" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "crwdns141334:0crwdne141334:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "crwdns106460:0crwdne106460:0" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "crwdns141336:0crwdne141336:0" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "crwdns141338:0crwdne141338:0" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "crwdns151198:0crwdne151198:0" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "crwdns151200:0crwdne151200:0" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "crwdns141344:0crwdne141344:0" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "crwdns141346:0crwdne141346:0" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "crwdns141348:0crwdne141348:0" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "crwdns141356:0crwdne141356:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "crwdns106488:0crwdne106488:0" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "crwdns141358:0crwdne141358:0" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "crwdns141362:0crwdne141362:0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "crwdns106578:0crwdne106578:0" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "crwdns161222:0crwdne161222:0" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "crwdns151202:0crwdne151202:0" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "crwdns106586:0crwdne106586:0" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "crwdns106590:0crwdne106590:0" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "crwdns106592:0crwdne106592:0" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "crwdns106596:0crwdne106596:0" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "crwdns106600:0crwdne106600:0" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "crwdns106602:0crwdne106602:0" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "crwdns159508:0crwdne159508:0" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "crwdns159510:0crwdne159510:0" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "crwdns106606:0crwdne106606:0" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "crwdns106610:0crwdne106610:0" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "crwdns106612:0crwdne106612:0" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "crwdns106614:0crwdne106614:0" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "crwdns151204:0crwdne151204:0" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "crwdns106618:0crwdne106618:0" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "crwdns141364:0crwdne141364:0" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "crwdns141366:0crwdne141366:0" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "crwdns141368:0crwdne141368:0" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "crwdns106640:0crwdne106640:0" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "crwdns106642:0crwdne106642:0" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "crwdns106646:0crwdne106646:0" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "crwdns106650:0crwdne106650:0" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "crwdns106664:0crwdne106664:0" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "crwdns106670:0crwdne106670:0" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "crwdns106672:0crwdne106672:0" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "crwdns141370:0crwdne141370:0" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "crwdns106676:0crwdne106676:0" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "crwdns141372:0crwdne141372:0" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "crwdns106682:0crwdne106682:0" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "crwdns154630:0crwdne154630:0" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "crwdns106684:0crwdne106684:0" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "crwdns106686:0crwdne106686:0" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "crwdns148896:0crwdne148896:0" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "crwdns141374:0crwdne141374:0" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "crwdns106778:0crwdne106778:0" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "crwdns106782:0crwdne106782:0" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "crwdns106788:0{0}crwdnd106788:0{1}crwdne106788:0" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "crwdns106790:0crwdne106790:0" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "crwdns106792:0crwdne106792:0" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "crwdns106798:0crwdne106798:0" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "crwdns141378:0crwdne141378:0" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "crwdns106804:0crwdne106804:0" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "crwdns106806:0crwdne106806:0" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "crwdns106808:0crwdne106808:0" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "crwdns163908:0{0}crwdnd163908:0{1}crwdne163908:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "crwdns106814:0{0}crwdne106814:0" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "crwdns141380:0crwdne141380:0" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "crwdns141382:0crwdne141382:0" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "crwdns141384:0crwdne141384:0" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "crwdns106820:0crwdne106820:0" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "crwdns106824:0crwdne106824:0" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "crwdns141386:0crwdne141386:0" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "crwdns106832:0crwdne106832:0" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "crwdns106834:0crwdne106834:0" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "crwdns141388:0crwdne141388:0" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "crwdns106840:0crwdne106840:0" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "crwdns106842:0crwdne106842:0" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "crwdns106844:0crwdne106844:0" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "crwdns106848:0crwdne106848:0" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "crwdns106852:0crwdne106852:0" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "crwdns106856:0crwdne106856:0" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "crwdns106858:0crwdne106858:0" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "crwdns106862:0crwdne106862:0" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "crwdns106864:0crwdne106864:0" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "crwdns141390:0crwdne141390:0" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "crwdns141392:0crwdne141392:0" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "crwdns106872:0crwdne106872:0" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "crwdns159514:0{0}crwdnd159514:0{1}crwdne159514:0" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "crwdns106874:0crwdne106874:0" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "crwdns141394:0crwdne141394:0" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "crwdns141396:0crwdne141396:0" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "crwdns106882:0crwdne106882:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "crwdns106884:0crwdne106884:0" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "crwdns155412:0crwdne155412:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "crwdns159516:0{0}crwdnd159516:0{1}crwdne159516:0" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "crwdns106886:0{0}crwdnd106886:0{1}crwdne106886:0" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "crwdns106888:0{0}crwdnd106888:0{1}crwdnd106888:0{2}crwdne106888:0" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "crwdns106890:0{0}crwdnd106890:0{1}crwdnd106890:0{2}crwdne106890:0" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "crwdns106892:0{0}crwdnd106892:0{1}crwdnd106892:0{2}crwdne106892:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "crwdns106894:0{0}crwdnd106894:0{1}crwdnd106894:0{2}crwdnd106894:0{3}crwdnd106894:0{4}crwdne106894:0" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "crwdns159518:0{0}crwdnd159518:0{1}crwdnd159518:0{2}crwdnd159518:0{3}crwdne159518:0" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "crwdns106898:0{0}crwdne106898:0" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "crwdns106900:0{0}crwdnd106900:0{1}crwdne106900:0" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "crwdns106902:0{0}crwdne106902:0" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "crwdns106904:0{0}crwdnd106904:0{1}crwdne106904:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "crwdns142906:0{0}crwdnd142906:0{1}crwdne142906:0" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "crwdns106908:0{0}crwdnd106908:0{1}crwdne106908:0" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "crwdns141398:0crwdne141398:0" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "crwdns106924:0crwdne106924:0" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "crwdns106926:0{0}crwdnd106926:0{1}crwdne106926:0" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "crwdns155414:0crwdne155414:0" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "crwdns106928:0crwdne106928:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "crwdns106930:0{0}crwdne106930:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "crwdns106932:0{0}crwdne106932:0" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "crwdns106934:0crwdne106934:0" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "crwdns106936:0crwdne106936:0" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "crwdns141400:0crwdne141400:0" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "crwdns141402:0crwdne141402:0" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "crwdns141404:0crwdne141404:0" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "crwdns151206:0crwdne151206:0" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "crwdns159520:0crwdne159520:0" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "crwdns159522:0crwdne159522:0" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "crwdns159524:0crwdne159524:0" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "crwdns151208:0crwdne151208:0" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "crwdns141408:0crwdne141408:0" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "crwdns141410:0crwdne141410:0" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "crwdns141414:0crwdne141414:0" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "crwdns106960:0{0}crwdnd106960:0{1}crwdne106960:0" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "crwdns106962:0crwdne106962:0" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "crwdns141416:0crwdne141416:0" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "crwdns151210:0crwdne151210:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "crwdns106992:0{0}crwdne106992:0" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "crwdns106994:0crwdne106994:0" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "crwdns160128:0crwdne160128:0" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "crwdns159526:0crwdne159526:0" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "crwdns107004:0crwdne107004:0" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "crwdns159528:0crwdne159528:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "crwdns107006:0crwdne107006:0" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "crwdns159530:0crwdne159530:0" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "crwdns151212:0{0}crwdne151212:0" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "crwdns151214:0{0}crwdne151214:0" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "crwdns151216:0{0}crwdne151216:0" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "crwdns159532:0crwdne159532:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "crwdns107014:0crwdne107014:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "crwdns107016:0{0}crwdne107016:0" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "crwdns141420:0crwdne141420:0" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "crwdns151218:0{0}crwdne151218:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "crwdns107018:0{doctype}crwdnd107018:0{doclink}crwdnd107018:0{row_id}crwdnd107018:0{error}crwdnd107018:0{description}crwdne107018:0" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "crwdns141422:0crwdne141422:0" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "crwdns107022:0crwdne107022:0" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "crwdns141424:0crwdne141424:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "crwdns107026:0crwdne107026:0" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "crwdns141426:0crwdne141426:0" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "crwdns107030:0crwdne107030:0" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "crwdns107032:0crwdne107032:0" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "crwdns107034:0crwdne107034:0" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "crwdns141428:0crwdne141428:0" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "crwdns148524:0crwdne148524:0" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "crwdns148526:0crwdne148526:0" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "crwdns148528:0crwdne148528:0" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "crwdns141430:0crwdne141430:0" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "crwdns148530:0crwdne148530:0" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "crwdns107044:0crwdne107044:0" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "crwdns107046:0{0}crwdne107046:0" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "crwdns141432:0crwdne141432:0" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "crwdns161224:0crwdne161224:0" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "crwdns107056:0crwdne107056:0" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "crwdns107058:0{0}crwdnd107058:0{1}crwdne107058:0" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "crwdns141438:0crwdne141438:0" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "crwdns107064:0crwdne107064:0" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "crwdns141440:0crwdne141440:0" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "crwdns141442:0crwdne141442:0" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "crwdns141444:0crwdne141444:0" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "crwdns141446:0crwdne141446:0" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "crwdns159534:0crwdne159534:0" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "crwdns107078:0crwdne107078:0" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "crwdns143262:0crwdne143262:0" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "crwdns107082:0crwdne107082:0" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "crwdns107086:0crwdne107086:0" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "crwdns141448:0crwdne141448:0" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "crwdns107090:0{0}crwdnd107090:0{1}crwdne107090:0" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "crwdns107092:0crwdne107092:0" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "crwdns107096:0crwdne107096:0" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "crwdns141450:0crwdne141450:0" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "crwdns107100:0crwdne107100:0" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "crwdns141452:0crwdne141452:0" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "crwdns159536:0crwdne159536:0" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "crwdns141454:0crwdne141454:0" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "crwdns141456:0crwdne141456:0" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "crwdns141458:0crwdne141458:0" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "crwdns160130:0crwdne160130:0" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "crwdns107114:0crwdne107114:0" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "crwdns141460:0crwdne141460:0" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "crwdns107124:0crwdne107124:0" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "crwdns141464:0crwdne141464:0" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "crwdns107134:0crwdne107134:0" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "crwdns107136:0crwdne107136:0" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "crwdns107138:0crwdne107138:0" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "crwdns151220:0crwdne151220:0" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "crwdns107140:0crwdne107140:0" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "crwdns107146:0{0}crwdne107146:0" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "crwdns107148:0{0}crwdne107148:0" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "crwdns107150:0crwdne107150:0" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "crwdns141466:0crwdne141466:0" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "crwdns151222:0crwdne151222:0" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "crwdns141468:0crwdne141468:0" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "crwdns151224:0crwdne151224:0" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "crwdns107158:0crwdne107158:0" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "crwdns141470:0crwdne141470:0" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "crwdns141474:0crwdne141474:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "crwdns107168:0crwdne107168:0" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "crwdns141476:0crwdne141476:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "crwdns154407:0crwdne154407:0" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "crwdns141478:0crwdne141478:0" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "crwdns141480:0crwdne141480:0" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "crwdns141482:0crwdne141482:0" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "crwdns107184:0crwdne107184:0" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "crwdns107188:0{0}crwdne107188:0" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "crwdns141486:0{0}crwdne141486:0" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "crwdns159538:0{0}crwdne159538:0" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "crwdns107194:0crwdne107194:0" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "crwdns141488:0{0}crwdne141488:0" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "crwdns107198:0crwdne107198:0" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "crwdns107200:0crwdne107200:0" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "crwdns141490:0{0}crwdnd141490:0{1}crwdne141490:0" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "crwdns141494:0crwdne141494:0" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "crwdns160880:0crwdne160880:0" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "crwdns160882:0crwdne160882:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "crwdns107204:0crwdne107204:0" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "crwdns107218:0crwdne107218:0" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "crwdns141496:0crwdne141496:0" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "crwdns141498:0crwdne141498:0" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "crwdns141500:0crwdne141500:0" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "crwdns107228:0crwdne107228:0" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "crwdns141502:0crwdne141502:0" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "crwdns141504:0crwdne141504:0" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "crwdns107232:0{0}crwdnd107232:0{1}crwdne107232:0" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "crwdns107234:0crwdne107234:0" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "crwdns107236:0{0}crwdne107236:0" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "crwdns141506:0crwdne141506:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "crwdns159540:0crwdne159540:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "crwdns143570:0crwdne143570:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "crwdns143572:0crwdne143572:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "crwdns107238:0crwdne107238:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "crwdns143574:0crwdne143574:0" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "crwdns141508:0crwdne141508:0" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "crwdns151226:0crwdne151226:0" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "crwdns107242:0crwdne107242:0" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "crwdns141512:0crwdne141512:0" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "crwdns141514:0crwdne141514:0" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "crwdns159542:0crwdne159542:0" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "crwdns107258:0crwdne107258:0" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "crwdns107262:0crwdne107262:0" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "crwdns141518:0crwdne141518:0" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "crwdns141520:0crwdne141520:0" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "crwdns141522:0crwdne141522:0" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "crwdns141524:0crwdne141524:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "crwdns107274:0{0}crwdne107274:0" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "crwdns159544:0crwdne159544:0" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "crwdns107276:0crwdne107276:0" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "crwdns159546:0crwdne159546:0" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "crwdns141526:0crwdne141526:0" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "crwdns159548:0crwdne159548:0" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "crwdns141528:0crwdne141528:0" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "crwdns107284:0crwdne107284:0" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "crwdns141530:0crwdne141530:0" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "crwdns107288:0crwdne107288:0" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "crwdns141532:0crwdne141532:0" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "crwdns107292:0crwdne107292:0" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "crwdns141534:0crwdne141534:0" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "crwdns141536:0crwdne141536:0" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "crwdns141540:0crwdne141540:0" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "crwdns141542:0crwdne141542:0" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "crwdns141544:0crwdne141544:0" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "crwdns107314:0crwdne107314:0" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "crwdns151228:0crwdne151228:0" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "crwdns141548:0crwdne141548:0" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "crwdns107348:0crwdne107348:0" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "crwdns160024:0{0}crwdnd160024:0{1}crwdne160024:0" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "crwdns107350:0{0}crwdnd107350:0{1}crwdne107350:0" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "crwdns160026:0{0}crwdnd160026:0{1}crwdne160026:0" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "crwdns107352:0{0}crwdnd107352:0{1}crwdne107352:0" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "crwdns107360:0crwdne107360:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "crwdns107362:0crwdne107362:0" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "crwdns107364:0crwdne107364:0" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "crwdns154512:0{0}crwdnd154512:0{1}crwdne154512:0" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "crwdns141556:0crwdne141556:0" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "crwdns148532:0crwdne148532:0" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "crwdns107368:0crwdne107368:0" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "crwdns107370:0crwdne107370:0" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "crwdns107372:0crwdne107372:0" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "crwdns107376:0crwdne107376:0" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "crwdns107384:0crwdne107384:0" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "crwdns107386:0crwdne107386:0" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "crwdns107392:0crwdne107392:0" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "crwdns141560:0crwdne141560:0" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "crwdns141562:0crwdne141562:0" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "crwdns141564:0crwdne141564:0" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "crwdns107400:0crwdne107400:0" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "crwdns161226:0crwdne161226:0" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "crwdns141568:0crwdne141568:0" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "crwdns141570:0crwdne141570:0" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "crwdns107406:0crwdne107406:0" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "crwdns107408:0crwdne107408:0" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "crwdns141572:0crwdne141572:0" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "crwdns141574:0crwdne141574:0" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "crwdns151230:0crwdne151230:0" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "crwdns151232:0crwdne151232:0" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "crwdns141576:0crwdne141576:0" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "crwdns151234:0crwdne151234:0" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "crwdns151236:0crwdne151236:0" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "crwdns141578:0crwdne141578:0" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "crwdns107428:0crwdne107428:0" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "crwdns141580:0crwdne141580:0" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "crwdns141582:0crwdne141582:0" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "crwdns107434:0crwdne107434:0" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "crwdns107436:0crwdne107436:0" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "crwdns107438:0crwdne107438:0" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "crwdns107440:0crwdne107440:0" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "crwdns107442:0crwdne107442:0" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "crwdns107448:0crwdne107448:0" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "crwdns141584:0crwdne141584:0" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "crwdns107458:0crwdne107458:0" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "crwdns107464:0crwdne107464:0" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "crwdns107466:0crwdne107466:0" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "crwdns107470:0crwdne107470:0" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "crwdns107472:0crwdne107472:0" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "crwdns141588:0crwdne141588:0" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "crwdns141590:0crwdne141590:0" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "crwdns141592:0crwdne141592:0" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "crwdns107480:0crwdne107480:0" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "crwdns154784:0crwdne154784:0" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "crwdns107486:0crwdne107486:0" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "crwdns141594:0crwdne141594:0" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "crwdns141596:0crwdne141596:0" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "crwdns141598:0crwdne141598:0" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "crwdns107500:0crwdne107500:0" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "crwdns107504:0crwdne107504:0" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "crwdns148898:0crwdne148898:0" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "crwdns148900:0crwdne148900:0" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "crwdns107506:0crwdne107506:0" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "crwdns107510:0crwdne107510:0" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "crwdns107536:0crwdne107536:0" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "crwdns141600:0crwdne141600:0" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "crwdns141602:0crwdne141602:0" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "crwdns107554:0crwdne107554:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "crwdns107556:0crwdne107556:0" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "crwdns107558:0crwdne107558:0" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "crwdns155416:0crwdne155416:0" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "crwdns107560:0crwdne107560:0" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "crwdns107564:0crwdne107564:0" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "crwdns141608:0crwdne141608:0" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "crwdns148902:0crwdne148902:0" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "crwdns141610:0crwdne141610:0" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "crwdns148904:0crwdne148904:0" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "crwdns148906:0crwdne148906:0" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "crwdns107576:0crwdne107576:0" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "crwdns151238:0{0}crwdne151238:0" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "crwdns107578:0crwdne107578:0" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "crwdns141614:0crwdne141614:0" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "crwdns141618:0crwdne141618:0" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "crwdns107604:0crwdne107604:0" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "crwdns107606:0crwdne107606:0" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "crwdns155418:0crwdne155418:0" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "crwdns141624:0crwdne141624:0" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "crwdns159550:0crwdne159550:0" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "crwdns107616:0{0}crwdne107616:0" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "crwdns107618:0crwdne107618:0" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "crwdns107620:0crwdne107620:0" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "crwdns107622:0crwdne107622:0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "crwdns107624:0crwdne107624:0" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "crwdns141628:0crwdne141628:0" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "crwdns141630:0crwdne141630:0" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "crwdns107630:0crwdne107630:0" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "crwdns141632:0crwdne141632:0" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "crwdns159552:0crwdne159552:0" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "crwdns141634:0crwdne141634:0" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "crwdns159554:0crwdne159554:0" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "crwdns141636:0crwdne141636:0" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "crwdns141640:0crwdne141640:0" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "crwdns141642:0crwdne141642:0" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "crwdns141644:0crwdne141644:0" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "crwdns159556:0crwdne159556:0" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "crwdns141646:0crwdne141646:0" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "crwdns141648:0crwdne141648:0" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "crwdns141650:0crwdne141650:0" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "crwdns141652:0crwdne141652:0" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "crwdns141654:0crwdne141654:0" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "crwdns159558:0crwdne159558:0" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "crwdns159560:0crwdne159560:0" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "crwdns141656:0crwdne141656:0" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "crwdns159562:0crwdne159562:0" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "crwdns141658:0crwdne141658:0" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "crwdns141660:0crwdne141660:0" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "crwdns141662:0crwdne141662:0" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "crwdns107666:0{0}crwdne107666:0" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "crwdns141664:0crwdne141664:0" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "crwdns107684:0crwdne107684:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "crwdns107688:0crwdne107688:0" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "crwdns141674:0crwdne141674:0" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "crwdns141676:0crwdne141676:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "crwdns148752:0crwdne148752:0" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "crwdns141678:0crwdne141678:0" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "crwdns141680:0crwdne141680:0" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "crwdns141682:0crwdne141682:0" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "crwdns141684:0crwdne141684:0" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "crwdns107706:0crwdne107706:0" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "crwdns141686:0crwdne141686:0" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "crwdns107710:0crwdne107710:0" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "crwdns107712:0crwdne107712:0" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "crwdns141688:0crwdne141688:0" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "crwdns107716:0crwdne107716:0" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "crwdns107718:0crwdne107718:0" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "crwdns107724:0crwdne107724:0" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "crwdns141690:0{0}crwdnd141690:0{1}crwdne141690:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "crwdns107726:0{0}crwdne107726:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "crwdns107728:0{0}crwdne107728:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "crwdns107730:0{0}crwdne107730:0" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "crwdns141692:0crwdne141692:0" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "crwdns107734:0crwdne107734:0" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "crwdns141694:0crwdne141694:0" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "crwdns141696:0crwdne141696:0" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "crwdns151242:0crwdne151242:0" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "crwdns151244:0crwdne151244:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "crwdns107740:0crwdne107740:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "crwdns107742:0{0}crwdne107742:0" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "crwdns141698:0crwdne141698:0" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "crwdns141700:0crwdne141700:0" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "crwdns107754:0crwdne107754:0" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "crwdns141704:0crwdne141704:0" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "crwdns141706:0crwdne141706:0" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "crwdns107760:0crwdne107760:0" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "crwdns107766:0crwdne107766:0" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "crwdns141708:0crwdne141708:0" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "crwdns107770:0crwdne107770:0" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "crwdns107776:0crwdne107776:0" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "crwdns107778:0{0}crwdne107778:0" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "crwdns107780:0crwdne107780:0" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "crwdns107782:0crwdne107782:0" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "crwdns141710:0crwdne141710:0" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "crwdns107786:0crwdne107786:0" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "crwdns107788:0crwdne107788:0" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "crwdns107798:0{0}crwdnd107798:0{1}crwdne107798:0" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "crwdns107800:0{0}crwdnd107800:0{1}crwdnd107800:0{2}crwdne107800:0" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "crwdns148490:0crwdne148490:0" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "crwdns107802:0crwdne107802:0" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "crwdns107804:0crwdne107804:0" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "crwdns107810:0crwdne107810:0" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "crwdns107816:0{0}crwdne107816:0" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "crwdns107818:0crwdne107818:0" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "crwdns141712:0crwdne141712:0" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "crwdns107830:0crwdne107830:0" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "crwdns159564:0crwdne159564:0" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "crwdns159566:0crwdne159566:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "crwdns141718:0crwdne141718:0" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "crwdns160028:0crwdne160028:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "crwdns159568:0crwdne159568:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "crwdns151982:0crwdne151982:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "crwdns160264:0crwdne160264:0" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "crwdns152170:0crwdne152170:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "crwdns107840:0{0}crwdnd107840:0{1}crwdne107840:0" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "crwdns152551:0crwdne152551:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "crwdns152402:0crwdne152402:0" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "crwdns141720:0crwdne141720:0" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "crwdns141722:0crwdne141722:0" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "crwdns141724:0crwdne141724:0" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "crwdns141726:0crwdne141726:0" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "crwdns160884:0crwdne160884:0" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "crwdns141730:0crwdne141730:0" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "crwdns141732:0crwdne141732:0" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "crwdns141734:0crwdne141734:0" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "crwdns107866:0crwdne107866:0" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "crwdns107870:0crwdne107870:0" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "crwdns141738:0crwdne141738:0" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "crwdns141740:0crwdne141740:0" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "crwdns141742:0crwdne141742:0" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "crwdns141744:0crwdne141744:0" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "crwdns141748:0crwdne141748:0" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "crwdns141752:0crwdne141752:0" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "crwdns141754:0crwdne141754:0" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "crwdns141756:0crwdne141756:0" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "crwdns143266:0crwdne143266:0" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "crwdns143268:0crwdne143268:0" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "crwdns141758:0crwdne141758:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "crwdns107906:0crwdne107906:0" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "crwdns107908:0crwdne107908:0" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "crwdns107922:0crwdne107922:0" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "crwdns107924:0{0}crwdne107924:0" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "crwdns107926:0{0}crwdnd107926:0{1}crwdne107926:0" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "crwdns160132:0crwdne160132:0" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "crwdns141760:0crwdne141760:0" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "crwdns107930:0crwdne107930:0" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "crwdns107934:0crwdne107934:0" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "crwdns107940:0crwdne107940:0" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "crwdns107942:0crwdne107942:0" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "crwdns141762:0crwdne141762:0" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "crwdns107948:0crwdne107948:0" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "crwdns107950:0{0}crwdnd107950:0{1}crwdne107950:0" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "crwdns107952:0crwdne107952:0" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "crwdns107962:0crwdne107962:0" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "crwdns163910:0crwdne163910:0" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "crwdns107964:0crwdne107964:0" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "crwdns107966:0{0}crwdnd107966:0{1}crwdne107966:0" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "crwdns107968:0crwdne107968:0" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "crwdns107974:0{0}crwdnd107974:0{1}crwdne107974:0" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "crwdns141766:0crwdne141766:0" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "crwdns107980:0crwdne107980:0" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "crwdns141768:0crwdne141768:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "crwdns107992:0crwdne107992:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "crwdns107994:0crwdne107994:0" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "crwdns107996:0crwdne107996:0" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "crwdns141772:0crwdne141772:0" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "crwdns108008:0crwdne108008:0" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "crwdns141774:0crwdne141774:0" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "crwdns108012:0crwdne108012:0" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "crwdns141776:0crwdne141776:0" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "crwdns141778:0crwdne141778:0" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "crwdns141780:0crwdne141780:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "crwdns160266:0{0}crwdnd160266:0{1}crwdnd160266:0{2}crwdnd160266:0{3}crwdnd160266:0{4}crwdne160266:0" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "crwdns141782:0crwdne141782:0" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "crwdns141784:0crwdne141784:0" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "crwdns141788:0crwdne141788:0" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "crwdns141790:0crwdne141790:0" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "crwdns151246:0{0}crwdnd151246:0{1}crwdne151246:0" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "crwdns108036:0crwdne108036:0" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "crwdns108038:0crwdne108038:0" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "crwdns141792:0crwdne141792:0" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "crwdns108046:0crwdne108046:0" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "crwdns141794:0crwdne141794:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "crwdns149142:0crwdne149142:0" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "crwdns151248:0{0}crwdne151248:0" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "crwdns108050:0crwdne108050:0" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "crwdns159570:0crwdne159570:0" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "crwdns159572:0{0}crwdne159572:0" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "crwdns108054:0crwdne108054:0" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "crwdns159574:0crwdne159574:0" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "crwdns141798:0crwdne141798:0" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "crwdns108064:0crwdne108064:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "crwdns108070:0{0}crwdnd108070:0{1}crwdne108070:0" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "crwdns108072:0crwdne108072:0" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "crwdns141800:0crwdne141800:0" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "crwdns108076:0crwdne108076:0" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "crwdns141802:0crwdne141802:0" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "crwdns141804:0crwdne141804:0" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "crwdns141806:0crwdne141806:0" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "crwdns141808:0crwdne141808:0" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "crwdns108088:0crwdne108088:0" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "crwdns108092:0crwdne108092:0" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "crwdns141810:0crwdne141810:0" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "crwdns108096:0crwdne108096:0" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "crwdns141812:0crwdne141812:0" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "crwdns141814:0crwdne141814:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "crwdns108102:0crwdne108102:0" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "crwdns108104:0crwdne108104:0" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "crwdns141816:0crwdne141816:0" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "crwdns108110:0crwdne108110:0" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "crwdns141818:0crwdne141818:0" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "crwdns151250:0crwdne151250:0" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "crwdns141820:0crwdne141820:0" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "crwdns108116:0crwdne108116:0" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "crwdns152172:0{0}crwdnd152172:0{1}crwdne152172:0" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "crwdns108118:0crwdne108118:0" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "crwdns108130:0crwdne108130:0" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "crwdns108140:0crwdne108140:0" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "crwdns108146:0crwdne108146:0" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "crwdns108148:0crwdne108148:0" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "crwdns141822:0crwdne141822:0" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "crwdns108152:0{0}crwdnd108152:0{1}crwdnd108152:0{2}crwdnd108152:0{3}crwdne108152:0" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "crwdns108154:0crwdne108154:0" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "crwdns141824:0crwdne141824:0" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "crwdns108158:0crwdne108158:0" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "crwdns141826:0crwdne141826:0" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "crwdns108184:0crwdne108184:0" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "crwdns108186:0crwdne108186:0" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "crwdns108188:0crwdne108188:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "crwdns108190:0{0}crwdne108190:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "crwdns108192:0{0}crwdne108192:0" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "crwdns108194:0{0}crwdne108194:0" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "crwdns108196:0crwdne108196:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "crwdns108200:0crwdne108200:0" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "crwdns162090:0{0}crwdne162090:0" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "crwdns108202:0{0}crwdnd108202:0{1}crwdne108202:0" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "crwdns108204:0crwdne108204:0" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "crwdns141828:0crwdne141828:0" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "crwdns108208:0{0}crwdne108208:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "crwdns108210:0{0}crwdnd108210:0{1}crwdne108210:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "crwdns108212:0{0}crwdnd108212:0{1}crwdne108212:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "crwdns108214:0{0}crwdnd108214:0{1}crwdne108214:0" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "crwdns108216:0crwdne108216:0" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "crwdns141830:0crwdne141830:0" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "crwdns108220:0crwdne108220:0" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "crwdns108222:0crwdne108222:0" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "crwdns151252:0crwdne151252:0" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "crwdns159576:0crwdne159576:0" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "crwdns141832:0crwdne141832:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "crwdns154409:0crwdne154409:0" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "crwdns141834:0crwdne141834:0" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "crwdns108230:0{0}crwdne108230:0" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "crwdns108232:0crwdne108232:0" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "crwdns159578:0crwdne159578:0" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "crwdns141836:0{0}crwdne141836:0" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "crwdns141838:0crwdne141838:0" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "crwdns108256:0crwdne108256:0" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "crwdns148536:0crwdne148536:0" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "crwdns108258:0crwdne108258:0" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "crwdns108262:0crwdne108262:0" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "crwdns141848:0crwdne141848:0" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "crwdns141850:0crwdne141850:0" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "crwdns108270:0crwdne108270:0" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "crwdns141852:0crwdne141852:0" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "crwdns108274:0{0}crwdnd108274:0{1}crwdne108274:0" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "crwdns151254:0crwdne151254:0" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "crwdns141854:0crwdne141854:0" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "crwdns141856:0crwdne141856:0" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "crwdns151256:0crwdne151256:0" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "crwdns141858:0crwdne141858:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "crwdns108288:0{0}crwdne108288:0" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "crwdns151260:0crwdne151260:0" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "crwdns151262:0crwdne151262:0" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "crwdns151264:0{0}crwdne151264:0" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "crwdns141862:0crwdne141862:0" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "crwdns108294:0crwdne108294:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "crwdns108300:0crwdne108300:0" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "crwdns159580:0crwdne159580:0" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "crwdns151984:0crwdne151984:0" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "crwdns141868:0crwdne141868:0" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "crwdns160886:0crwdne160886:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "crwdns108308:0crwdne108308:0" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "crwdns108310:0crwdne108310:0" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "crwdns141870:0crwdne141870:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "crwdns108314:0crwdne108314:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "crwdns108316:0crwdne108316:0" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "crwdns108318:0{0}crwdne108318:0" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "crwdns108320:0{0}crwdnd108320:0{1}crwdne108320:0" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "crwdns141872:0crwdne141872:0" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "crwdns152404:0crwdne152404:0" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "crwdns108326:0{0}crwdne108326:0" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "crwdns108328:0{0}crwdnd108328:0{1}crwdnd108328:0{2}crwdne108328:0" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "crwdns141874:0crwdne141874:0" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "crwdns141876:0crwdne141876:0" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "crwdns108334:0crwdne108334:0" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "crwdns159582:0crwdne159582:0" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "crwdns141880:0crwdne141880:0" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "crwdns141882:0crwdne141882:0" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "crwdns141884:0crwdne141884:0" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "crwdns141886:0crwdne141886:0" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "crwdns141888:0crwdne141888:0" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "crwdns108352:0{0}crwdnd108352:0{1}crwdne108352:0" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "crwdns141890:0crwdne141890:0" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "crwdns141892:0crwdne141892:0" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "crwdns159584:0crwdne159584:0" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "crwdns141894:0crwdne141894:0" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "crwdns141896:0crwdne141896:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "crwdns108364:0crwdne108364:0" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "crwdns141898:0crwdne141898:0" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "crwdns141900:0crwdne141900:0" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "crwdns141902:0crwdne141902:0" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "crwdns151986:0crwdne151986:0" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "crwdns159586:0crwdne159586:0" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "crwdns159588:0crwdne159588:0" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "crwdns155422:0crwdne155422:0" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "crwdns108384:0{0}crwdnd108384:0{1}crwdne108384:0" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "crwdns108386:0{0}crwdnd108386:0{1}crwdne108386:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "crwdns108388:0crwdne108388:0" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "crwdns141906:0crwdne141906:0" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "crwdns108392:0crwdne108392:0" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "crwdns141908:0crwdne141908:0" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "crwdns141910:0crwdne141910:0" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "crwdns141912:0crwdne141912:0" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "crwdns151988:0crwdne151988:0" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "crwdns159590:0crwdne159590:0" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "crwdns141916:0crwdne141916:0" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "crwdns149172:0crwdne149172:0" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "crwdns108408:0crwdne108408:0" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "crwdns159592:0crwdne159592:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "crwdns141918:0crwdne141918:0" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "crwdns141924:0crwdne141924:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "crwdns108422:0crwdne108422:0" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "crwdns141926:0crwdne141926:0" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "crwdns141928:0crwdne141928:0" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "crwdns108450:0crwdne108450:0" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "crwdns108458:0{0}crwdne108458:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "crwdns108460:0{0}crwdnd108460:0{1}crwdnd108460:0{2}crwdne108460:0" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "crwdns108462:0crwdne108462:0" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "crwdns159594:0crwdne159594:0" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "crwdns151270:0crwdne151270:0" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "crwdns151272:0crwdne151272:0" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "crwdns151274:0crwdne151274:0" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "crwdns151276:0crwdne151276:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "crwdns108470:0crwdne108470:0" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "crwdns141934:0crwdne141934:0" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "crwdns108480:0crwdne108480:0" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "crwdns141938:0crwdne141938:0" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "crwdns141940:0crwdne141940:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "crwdns108490:0crwdne108490:0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "crwdns108492:0crwdne108492:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "crwdns108494:0crwdne108494:0" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "crwdns141944:0crwdne141944:0" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "crwdns151278:0crwdne151278:0" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "crwdns151280:0crwdne151280:0" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "crwdns141946:0crwdne141946:0" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "crwdns159596:0crwdne159596:0" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "crwdns108504:0crwdne108504:0" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "crwdns141948:0crwdne141948:0" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "crwdns141950:0crwdne141950:0" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "crwdns148538:0crwdne148538:0" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "crwdns161228:0{0}crwdnd161228:0{1}crwdne161228:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "crwdns108518:0crwdne108518:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "crwdns108520:0crwdne108520:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "crwdns108522:0crwdne108522:0" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "crwdns141954:0crwdne141954:0" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "crwdns108524:0crwdne108524:0" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "crwdns108526:0{0}crwdnd108526:0{1}crwdne108526:0" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "crwdns141956:0{0}crwdne141956:0" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "crwdns159598:0{0}crwdnd159598:0{1}crwdnd159598:0{2}crwdne159598:0" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "crwdns159600:0{0}crwdnd159600:0{1}crwdne159600:0" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "crwdns143270:0{0}crwdnd143270:0{1}crwdne143270:0" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "crwdns108530:0{0}crwdnd108530:0{1}crwdne108530:0" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "crwdns141958:0crwdne141958:0" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "crwdns141960:0crwdne141960:0" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "crwdns108532:0crwdne108532:0" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "crwdns160030:0{0}crwdnd160030:0{1}crwdnd160030:0{2}crwdne160030:0" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "crwdns151284:0{0}crwdne151284:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "crwdns108536:0{0}crwdne108536:0" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "crwdns108538:0crwdne108538:0" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "crwdns154546:0crwdne154546:0" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "crwdns141962:0{0}crwdne141962:0" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "crwdns141964:0{0}crwdne141964:0" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "crwdns141966:0{0}crwdne141966:0" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "crwdns160032:0crwdne160032:0" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "crwdns159602:0crwdne159602:0" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "crwdns159604:0crwdne159604:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "crwdns159606:0{0}crwdnd159606:0{1}crwdnd159606:0{2}crwdne159606:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "crwdns108540:0crwdne108540:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "crwdns108542:0crwdne108542:0" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "crwdns154286:0crwdne154286:0" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "crwdns108544:0crwdne108544:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "crwdns108548:0crwdne108548:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "crwdns108550:0{0}crwdnd108550:0{1}crwdnd108550:0{2}crwdne108550:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "crwdns108552:0crwdne108552:0" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "crwdns108554:0crwdne108554:0" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "crwdns154548:0crwdne154548:0" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "crwdns141968:0crwdne141968:0" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "crwdns108556:0crwdne108556:0" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "crwdns159608:0{0}crwdnd159608:0{1}crwdne159608:0" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "crwdns108558:0{0}crwdnd108558:0{1}crwdne108558:0" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "crwdns141970:0crwdne141970:0" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "crwdns108560:0crwdne108560:0" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "crwdns141972:0crwdne141972:0" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "crwdns108566:0crwdne108566:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "crwdns108568:0crwdne108568:0" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "crwdns154550:0crwdne154550:0" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "crwdns160034:0{0}crwdne160034:0" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "crwdns154552:0crwdne154552:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "crwdns152406:0crwdne152406:0" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "crwdns141974:0{0}crwdne141974:0" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "crwdns154554:0{0}crwdne154554:0" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "crwdns141976:0crwdne141976:0" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "crwdns141978:0crwdne141978:0" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "crwdns108574:0crwdne108574:0" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "crwdns108576:0crwdne108576:0" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "crwdns141980:0crwdne141980:0" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "crwdns141982:0crwdne141982:0" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "crwdns141988:0crwdne141988:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "crwdns108590:0{0}crwdnd108590:0{1}crwdne108590:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "crwdns141990:0{0}crwdne141990:0" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "crwdns108596:0crwdne108596:0" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "crwdns108598:0crwdne108598:0" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "crwdns148492:0crwdne148492:0" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "crwdns141994:0crwdne141994:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "crwdns108604:0crwdne108604:0" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "crwdns141996:0crwdne141996:0" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "crwdns141998:0crwdne141998:0" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "crwdns160888:0crwdne160888:0" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "crwdns143272:0crwdne143272:0" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "crwdns142000:0crwdne142000:0" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "crwdns154558:0crwdne154558:0" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "crwdns154560:0crwdne154560:0" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "crwdns142002:0crwdne142002:0" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "crwdns142004:0crwdne142004:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "crwdns108616:0crwdne108616:0" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "crwdns142006:0crwdne142006:0" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "crwdns108620:0crwdne108620:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "crwdns152553:0crwdne152553:0" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "crwdns152555:0crwdne152555:0" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "crwdns108626:0crwdne108626:0" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "crwdns142008:0crwdne142008:0" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "crwdns108636:0crwdne108636:0" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "crwdns142012:0crwdne142012:0" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "crwdns142016:0crwdne142016:0" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "crwdns108644:0crwdne108644:0" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "crwdns142018:0crwdne142018:0" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "crwdns142020:0crwdne142020:0" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "crwdns108650:0crwdne108650:0" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "crwdns108652:0crwdne108652:0" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "crwdns108654:0{0}crwdnd108654:0{1}crwdne108654:0" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "crwdns108656:0crwdne108656:0" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "crwdns108658:0crwdne108658:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "crwdns108660:0crwdne108660:0" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "crwdns108662:0crwdne108662:0" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "crwdns108666:0crwdne108666:0" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "crwdns108668:0crwdne108668:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "crwdns108670:0{0}crwdne108670:0" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "crwdns108672:0{0}crwdnd108672:0{1}crwdne108672:0" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "crwdns142026:0crwdne142026:0" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "crwdns142028:0crwdne142028:0" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "crwdns108688:0crwdne108688:0" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "crwdns108692:0crwdne108692:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "crwdns108694:0{0}crwdne108694:0" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "crwdns108696:0crwdne108696:0" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "crwdns108698:0crwdne108698:0" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "crwdns142034:0crwdne142034:0" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "crwdns108712:0crwdne108712:0" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "crwdns108714:0crwdne108714:0" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "crwdns108720:0crwdne108720:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "crwdns108724:0crwdne108724:0" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "crwdns142038:0crwdne142038:0" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "crwdns108726:0crwdne108726:0" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "crwdns108728:0crwdne108728:0" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "crwdns108730:0crwdne108730:0" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "crwdns108732:0crwdne108732:0" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "crwdns159610:0crwdne159610:0" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "crwdns159612:0crwdne159612:0" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "crwdns159614:0crwdne159614:0" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "crwdns159616:0crwdne159616:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "crwdns159618:0{0}crwdne159618:0" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "crwdns159620:0crwdne159620:0" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "crwdns159622:0crwdne159622:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "crwdns159624:0{0}crwdne159624:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "crwdns159626:0crwdne159626:0" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "crwdns159628:0crwdne159628:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "crwdns159630:0{0}crwdne159630:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "crwdns159632:0crwdne159632:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "crwdns159634:0crwdne159634:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "crwdns159636:0{0}crwdne159636:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "crwdns159638:0crwdne159638:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "crwdns159640:0crwdne159640:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "crwdns159642:0{0}crwdnd159642:0{1}crwdnd159642:0{2}crwdne159642:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "crwdns159644:0crwdne159644:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "crwdns159646:0{0}crwdne159646:0" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "crwdns159648:0crwdne159648:0" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "crwdns159650:0crwdne159650:0" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "crwdns142042:0crwdne142042:0" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "crwdns108746:0crwdne108746:0" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "crwdns108748:0crwdne108748:0" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "crwdns108750:0crwdne108750:0" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "crwdns108752:0crwdne108752:0" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "crwdns108754:0crwdne108754:0" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "crwdns142048:0crwdne142048:0" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "crwdns142050:0crwdne142050:0" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "crwdns108778:0crwdne108778:0" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "crwdns142052:0crwdne142052:0" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "crwdns142054:0crwdne142054:0" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "crwdns142058:0crwdne142058:0" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "crwdns108790:0crwdne108790:0" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "crwdns108792:0crwdne108792:0" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "crwdns159652:0crwdne159652:0" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "crwdns152557:0crwdne152557:0" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "crwdns142062:0crwdne142062:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "crwdns108806:0crwdne108806:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "crwdns108816:0crwdne108816:0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "crwdns108818:0crwdne108818:0" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "crwdns108820:0crwdne108820:0" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "crwdns142070:0crwdne142070:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "crwdns108826:0crwdne108826:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "crwdns142072:0crwdne142072:0" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "crwdns142076:0crwdne142076:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "crwdns108834:0{0}crwdnd108834:0{1}crwdnd108834:0{2}crwdne108834:0" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "crwdns159654:0crwdne159654:0" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "crwdns159656:0crwdne159656:0" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "crwdns159658:0crwdne159658:0" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "crwdns108836:0crwdne108836:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "crwdns142078:0crwdne142078:0" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "crwdns159660:0crwdne159660:0" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "crwdns159662:0crwdne159662:0" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "crwdns148908:0crwdne148908:0" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "crwdns142080:0crwdne142080:0" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "crwdns152330:0crwdne152330:0" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "crwdns142082:0crwdne142082:0" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "crwdns108848:0crwdne108848:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "crwdns108856:0crwdne108856:0" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "crwdns142084:0crwdne142084:0" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "crwdns142086:0crwdne142086:0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "crwdns108866:0crwdne108866:0" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "crwdns108870:0crwdne108870:0" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "crwdns108876:0crwdne108876:0" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "crwdns108888:0crwdne108888:0" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "crwdns142088:0crwdne142088:0" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "crwdns108892:0crwdne108892:0" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "crwdns108894:0crwdne108894:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "crwdns108898:0crwdne108898:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "crwdns108900:0crwdne108900:0" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "crwdns159664:0crwdne159664:0" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "crwdns142092:0crwdne142092:0" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "crwdns142096:0crwdne142096:0" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "crwdns108918:0crwdne108918:0" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "crwdns108920:0crwdne108920:0" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "crwdns108922:0crwdne108922:0" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "crwdns142100:0crwdne142100:0" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "crwdns108930:0crwdne108930:0" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "crwdns151296:0{0}crwdne151296:0" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "crwdns151298:0{0}crwdne151298:0" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "crwdns108934:0crwdne108934:0" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "crwdns142106:0crwdne142106:0" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "crwdns108938:0crwdne108938:0" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "crwdns108940:0crwdne108940:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "crwdns108946:0{0}crwdnd108946:0{1}crwdne108946:0" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "crwdns154288:0crwdne154288:0" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "crwdns108948:0crwdne108948:0" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "crwdns108950:0{0}crwdnd108950:0{1}crwdne108950:0" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "crwdns108952:0{0}crwdne108952:0" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "crwdns108954:0crwdne108954:0" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "crwdns108956:0crwdne108956:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "crwdns159666:0crwdne159666:0" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "crwdns152559:0{0}crwdne152559:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "crwdns142108:0crwdne142108:0" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "crwdns108958:0crwdne108958:0" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "crwdns108960:0crwdne108960:0" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "crwdns108962:0crwdne108962:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "crwdns160442:0crwdne160442:0" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "crwdns143274:0crwdne143274:0" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "crwdns142110:0crwdne142110:0" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "crwdns151990:0crwdne151990:0" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "crwdns142112:0crwdne142112:0" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "crwdns108966:0crwdne108966:0" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "crwdns108968:0crwdne108968:0" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "crwdns108970:0crwdne108970:0" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "crwdns108972:0crwdne108972:0" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "crwdns108974:0crwdne108974:0" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "crwdns142114:0crwdne142114:0" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "crwdns142116:0crwdne142116:0" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "crwdns142118:0crwdne142118:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "crwdns151922:0crwdne151922:0" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "crwdns108976:0crwdne108976:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "crwdns108978:0crwdne108978:0" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "crwdns155424:0crwdne155424:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "crwdns108980:0crwdne108980:0" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "crwdns108982:0crwdne108982:0" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "crwdns108984:0crwdne108984:0" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "crwdns108986:0crwdne108986:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "crwdns108988:0crwdne108988:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "crwdns108992:0crwdne108992:0" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "crwdns108994:0{0}crwdne108994:0" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "crwdns108996:0{0}crwdne108996:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "crwdns108998:0crwdne108998:0" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "crwdns109000:0{0}crwdne109000:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "crwdns160444:0crwdne160444:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "crwdns109004:0{0}crwdne109004:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "crwdns109006:0crwdne109006:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "crwdns109008:0crwdne109008:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "crwdns109010:0{0}crwdne109010:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "crwdns109012:0crwdne109012:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "crwdns109014:0{0}crwdne109014:0" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "crwdns109016:0crwdne109016:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "crwdns160446:0crwdne160446:0" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "crwdns109018:0{0}crwdne109018:0" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "crwdns109020:0{0}crwdnd109020:0{1}crwdnd109020:0{2}crwdne109020:0" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "crwdns109022:0{0}crwdnd109022:0{1}crwdne109022:0" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "crwdns109024:0{0}crwdnd109024:0{1}crwdne109024:0" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "crwdns109026:0{0}crwdne109026:0" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "crwdns109028:0crwdne109028:0" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "crwdns109030:0crwdne109030:0" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "crwdns109032:0crwdne109032:0" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "crwdns109034:0crwdne109034:0" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "crwdns149176:0{0}crwdnd149176:0{1}crwdne149176:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "crwdns109036:0{0}crwdne109036:0" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "crwdns109038:0crwdne109038:0" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "crwdns142120:0crwdne142120:0" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "crwdns142122:0crwdne142122:0" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "crwdns142124:0crwdne142124:0" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "crwdns142126:0crwdne142126:0" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "crwdns109070:0crwdne109070:0" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "crwdns159668:0crwdne159668:0" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "crwdns152408:0crwdne152408:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "crwdns109072:0crwdne109072:0" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "crwdns142128:0crwdne142128:0" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "crwdns154514:0{0}crwdne154514:0" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "crwdns109080:0crwdne109080:0" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "crwdns109082:0crwdne109082:0" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "crwdns109084:0crwdne109084:0" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "crwdns142136:0crwdne142136:0" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "crwdns142138:0crwdne142138:0" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "crwdns142140:0crwdne142140:0" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "crwdns142142:0crwdne142142:0" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "crwdns152561:0crwdne152561:0" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "crwdns142144:0{0}crwdnd142144:0{1}crwdne142144:0" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "crwdns142146:0crwdne142146:0" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "crwdns142148:0crwdne142148:0" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "crwdns142150:0crwdne142150:0" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "crwdns109090:0crwdne109090:0" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "crwdns142152:0crwdne142152:0" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "crwdns109094:0crwdne109094:0" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "crwdns109114:0crwdne109114:0" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "crwdns109116:0crwdne109116:0" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "crwdns142154:0crwdne142154:0" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "crwdns109122:0crwdne109122:0" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "crwdns109124:0crwdne109124:0" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "crwdns159670:0crwdne159670:0" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "crwdns142158:0crwdne142158:0" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "crwdns142160:0crwdne142160:0" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "crwdns142162:0crwdne142162:0" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "crwdns142166:0crwdne142166:0" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "crwdns109134:0crwdne109134:0" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "crwdns151302:0crwdne151302:0" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "crwdns151304:0crwdne151304:0" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "crwdns151306:0crwdne151306:0" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "crwdns142170:0crwdne142170:0" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "crwdns142174:0crwdne142174:0" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "crwdns109150:0crwdne109150:0" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "crwdns149146:0crwdne149146:0" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "crwdns142180:0crwdne142180:0" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "crwdns142182:0crwdne142182:0" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "crwdns142184:0crwdne142184:0" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "crwdns142186:0crwdne142186:0" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "crwdns159672:0crwdne159672:0" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "crwdns142192:0crwdne142192:0" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "crwdns143276:0crwdne143276:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "crwdns109184:0crwdne109184:0" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "crwdns151308:0crwdne151308:0" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "crwdns151310:0crwdne151310:0" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "crwdns151312:0crwdne151312:0" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "crwdns151314:0crwdne151314:0" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "crwdns152563:0crwdne152563:0" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "crwdns142196:0crwdne142196:0" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "crwdns109188:0crwdne109188:0" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "crwdns109190:0crwdne109190:0" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "crwdns159674:0crwdne159674:0" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "crwdns159676:0crwdne159676:0" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "crwdns159678:0{0}crwdnd159678:0{1}crwdnd159678:0{2}crwdne159678:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "crwdns109214:0{0}crwdne109214:0" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "crwdns142206:0crwdne142206:0" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "crwdns142208:0crwdne142208:0" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "crwdns142212:0crwdne142212:0" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "crwdns142214:0crwdne142214:0" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "crwdns142216:0crwdne142216:0" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "crwdns142218:0crwdne142218:0" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "crwdns142220:0crwdne142220:0" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "crwdns109234:0crwdne109234:0" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "crwdns151316:0crwdne151316:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "crwdns143278:0crwdne143278:0" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "crwdns143280:0crwdne143280:0" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "crwdns142224:0crwdne142224:0" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "crwdns109260:0crwdne109260:0" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "crwdns142226:0crwdne142226:0" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "crwdns142232:0crwdne142232:0" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "crwdns142234:0crwdne142234:0" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "crwdns142238:0crwdne142238:0" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "crwdns142240:0crwdne142240:0" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "crwdns142242:0crwdne142242:0" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "crwdns148910:0crwdne148910:0" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "crwdns109284:0crwdne109284:0" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "crwdns142244:0crwdne142244:0" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "crwdns148546:0crwdne148546:0" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "crwdns109290:0crwdne109290:0" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "crwdns109294:0crwdne109294:0" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "crwdns151320:0crwdne151320:0" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "crwdns151322:0crwdne151322:0" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "crwdns151324:0crwdne151324:0" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "crwdns151326:0crwdne151326:0" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "crwdns151328:0crwdne151328:0" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "crwdns142248:0crwdne142248:0" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "crwdns142250:0crwdne142250:0" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "crwdns142252:0crwdne142252:0" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "crwdns148912:0crwdne148912:0" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "crwdns142254:0crwdne142254:0" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "crwdns109308:0crwdne109308:0" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "crwdns109320:0crwdne109320:0" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "crwdns142266:0crwdne142266:0" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "crwdns142270:0crwdne142270:0" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "crwdns142272:0crwdne142272:0" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "crwdns142274:0crwdne142274:0" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "crwdns109340:0crwdne109340:0" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "crwdns109342:0crwdne109342:0" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "crwdns142276:0crwdne142276:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "crwdns160890:0crwdne160890:0" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "crwdns160892:0crwdne160892:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "crwdns160894:0crwdne160894:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "crwdns160896:0crwdne160896:0" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "crwdns109350:0crwdne109350:0" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "crwdns109358:0crwdne109358:0" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "crwdns142284:0crwdne142284:0" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "crwdns142286:0crwdne142286:0" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "crwdns142288:0crwdne142288:0" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "crwdns142294:0crwdne142294:0" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "crwdns148548:0crwdne148548:0" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "crwdns148550:0crwdne148550:0" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "crwdns142296:0crwdne142296:0" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "crwdns142298:0crwdne142298:0" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "crwdns142300:0crwdne142300:0" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "crwdns142306:0crwdne142306:0" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "crwdns142310:0crwdne142310:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "crwdns109388:0#{0}crwdnd109388:0{1}crwdne109388:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "crwdns109390:0#{0}crwdnd109390:0{1}crwdnd109390:0{2}crwdnd109390:0{3}crwdne109390:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "crwdns109392:0#{0}crwdnd109392:0{1}crwdne109392:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "crwdns109394:0{0}crwdnd109394:0{1}crwdnd109394:0{2}crwdne109394:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "crwdns109396:0{0}crwdnd109396:0{1}crwdnd109396:0{2}crwdne109396:0" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "crwdns152565:0{0}crwdne152565:0" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "crwdns109398:0{0}crwdne109398:0" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "crwdns109400:0{0}crwdne109400:0" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "crwdns109402:0{0}crwdne109402:0" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "crwdns160036:0{0}crwdnd160036:0{1}crwdne160036:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "crwdns109406:0{0}crwdnd109406:0{1}crwdnd109406:0{2}crwdnd109406:0{3}crwdne109406:0" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "crwdns142312:0{0}crwdnd142312:0{1}crwdne142312:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "crwdns109408:0{0}crwdnd109408:0{1}crwdne109408:0" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "crwdns109414:0crwdne109414:0" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "crwdns142318:0crwdne142318:0" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "crwdns109430:0crwdne109430:0" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "crwdns159682:0crwdne159682:0" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "crwdns142320:0crwdne142320:0" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "crwdns142322:0crwdne142322:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "crwdns159684:0{0}crwdne159684:0" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "crwdns142324:0{0}crwdne142324:0" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "crwdns159686:0{0}crwdne159686:0" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "crwdns109438:0crwdne109438:0" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "crwdns142328:0crwdne142328:0" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "crwdns142330:0crwdne142330:0" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "crwdns151332:0crwdne151332:0" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "crwdns142332:0crwdne142332:0" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "crwdns109446:0crwdne109446:0" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "crwdns109448:0crwdne109448:0" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "crwdns109452:0crwdne109452:0" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "crwdns109454:0crwdne109454:0" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "crwdns109456:0crwdne109456:0" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "crwdns142334:0crwdne142334:0" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "crwdns109472:0crwdne109472:0" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "crwdns109474:0crwdne109474:0" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "crwdns109476:0crwdne109476:0" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "crwdns159688:0crwdne159688:0" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "crwdns109478:0crwdne109478:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "crwdns109482:0{0}crwdne109482:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "crwdns109484:0crwdne109484:0" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "crwdns159690:0crwdne159690:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "crwdns109486:0{0}crwdne109486:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "crwdns109488:0{0}crwdnd109488:0{1}crwdne109488:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "crwdns109490:0crwdne109490:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "crwdns109492:0{0}crwdnd109492:0{1}crwdne109492:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "crwdns109494:0{0}crwdnd109494:0{1}crwdnd109494:0{0}crwdne109494:0" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "crwdns151334:0crwdne151334:0" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "crwdns142336:0crwdne142336:0" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "crwdns142338:0crwdne142338:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "crwdns109500:0crwdne109500:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "crwdns109502:0{0}crwdnd109502:0{1}crwdne109502:0" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "crwdns109504:0crwdne109504:0" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "crwdns109512:0crwdne109512:0" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "crwdns142340:0crwdne142340:0" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "crwdns109516:0crwdne109516:0" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "crwdns159692:0{0}crwdnd159692:0{1}crwdne159692:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "crwdns109518:0crwdne109518:0" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "crwdns109520:0{0}crwdne109520:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "crwdns159694:0{0}crwdnd159694:0{1}crwdne159694:0" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "crwdns109526:0{0}crwdnd109526:0{1}crwdne109526:0" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "crwdns142342:0crwdne142342:0" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "crwdns143282:0crwdne143282:0" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "crwdns143284:0crwdne143284:0" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "crwdns143286:0{0}crwdnd143286:0{1}crwdne143286:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "crwdns109528:0{0}crwdnd109528:0{1}crwdne109528:0" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "crwdns142344:0crwdne142344:0" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "crwdns159696:0crwdne159696:0" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "crwdns142346:0crwdne142346:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "crwdns109534:0{0}crwdne109534:0" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "crwdns109542:0crwdne109542:0" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "crwdns161230:0crwdne161230:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "crwdns109546:0{0}crwdne109546:0" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "crwdns142350:0crwdne142350:0" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "crwdns142354:0crwdne142354:0" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "crwdns109562:0crwdne109562:0" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "crwdns109564:0crwdne109564:0" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "crwdns109566:0crwdne109566:0" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "crwdns159698:0crwdne159698:0" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "crwdns109574:0crwdne109574:0" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "crwdns109576:0crwdne109576:0" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "crwdns159700:0crwdne159700:0" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "crwdns142358:0crwdne142358:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "crwdns109580:0crwdne109580:0" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "crwdns151338:0crwdne151338:0" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "crwdns109582:0crwdne109582:0" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "crwdns142360:0crwdne142360:0" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "crwdns142362:0crwdne142362:0" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "crwdns142364:0crwdne142364:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "crwdns109588:0crwdne109588:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "crwdns109590:0crwdne109590:0" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "crwdns109592:0crwdne109592:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "crwdns109594:0crwdne109594:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "crwdns109596:0crwdne109596:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "crwdns109598:0crwdne109598:0" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "crwdns109600:0crwdne109600:0" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "crwdns159702:0crwdne159702:0" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "crwdns109602:0crwdne109602:0" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "crwdns148554:0crwdne148554:0" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "crwdns109604:0crwdne109604:0" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "crwdns109606:0crwdne109606:0" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "crwdns109608:0crwdne109608:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "crwdns109612:0{0}crwdne109612:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "crwdns142366:0crwdne142366:0" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "crwdns109614:0crwdne109614:0" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "crwdns142368:0crwdne142368:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "crwdns159704:0crwdne159704:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "crwdns152410:0crwdne152410:0" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "crwdns142370:0crwdne142370:0" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "crwdns142372:0crwdne142372:0" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "crwdns109622:0crwdne109622:0" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "crwdns109624:0crwdne109624:0" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "crwdns142374:0crwdne142374:0" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "crwdns142376:0crwdne142376:0" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "crwdns142378:0crwdne142378:0" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "crwdns159706:0crwdne159706:0" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "crwdns148494:0{1}crwdne148494:0" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "crwdns148496:0{0}crwdne148496:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "crwdns109642:0crwdne109642:0" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "crwdns142386:0crwdne142386:0" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "crwdns142388:0crwdne142388:0" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "crwdns142394:0crwdne142394:0" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "crwdns109668:0crwdne109668:0" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "crwdns142398:0crwdne142398:0" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "crwdns142400:0crwdne142400:0" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "crwdns142404:0crwdne142404:0" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "crwdns109682:0{0}crwdne109682:0" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "crwdns142408:0crwdne142408:0" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "crwdns149178:0crwdne149178:0" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "crwdns142410:0crwdne142410:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "crwdns109690:0{0}crwdnd109690:0{1}crwdne109690:0" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "crwdns142412:0crwdne142412:0" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "crwdns142414:0crwdne142414:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "crwdns148498:0{0}crwdne148498:0" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "crwdns142908:0{0}crwdne142908:0" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "crwdns109700:0crwdne109700:0" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "crwdns151342:0crwdne151342:0" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "crwdns109702:0crwdne109702:0" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "crwdns155426:0{0}crwdne155426:0" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "crwdns161508:0crwdne161508:0" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "crwdns142420:0crwdne142420:0" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "crwdns109724:0crwdne109724:0" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "crwdns142422:0crwdne142422:0" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "crwdns109728:0crwdne109728:0" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "crwdns109730:0crwdne109730:0" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "crwdns142424:0crwdne142424:0" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "crwdns151344:0crwdne151344:0" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "crwdns142426:0crwdne142426:0" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "crwdns109734:0{0}crwdnd109734:0{1}crwdne109734:0" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "crwdns159708:0{0}crwdnd159708:0{1}crwdne159708:0" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "crwdns109736:0crwdne109736:0" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "crwdns148558:0crwdne148558:0" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "crwdns142430:0crwdne142430:0" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "crwdns109740:0crwdne109740:0" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "crwdns149148:0crwdne149148:0" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "crwdns109742:0crwdne109742:0" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "crwdns148914:0crwdne148914:0" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "crwdns142432:0crwdne142432:0" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "crwdns142434:0crwdne142434:0" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "crwdns142436:0crwdne142436:0" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "crwdns151992:0crwdne151992:0" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "crwdns151994:0crwdne151994:0" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "crwdns142438:0crwdne142438:0" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "crwdns142440:0crwdne142440:0" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "crwdns109752:0crwdne109752:0" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "crwdns151996:0crwdne151996:0" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "crwdns142442:0crwdne142442:0" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "crwdns151998:0crwdne151998:0" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "crwdns109754:0crwdne109754:0" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "crwdns159710:0{0}crwdnd159710:0{1}crwdnd159710:0{2}crwdnd159710:0{3}crwdnd159710:0{4}crwdne159710:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "crwdns143576:0{0}crwdne143576:0" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "crwdns161510:0crwdne161510:0" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "crwdns109764:0crwdne109764:0" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "crwdns142444:0crwdne142444:0" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "crwdns142446:0crwdne142446:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "crwdns109770:0crwdne109770:0" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "crwdns109774:0crwdne109774:0" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "crwdns109776:0crwdne109776:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "crwdns109778:0crwdne109778:0" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "crwdns109780:0crwdne109780:0" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "crwdns109790:0crwdne109790:0" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "crwdns142448:0crwdne142448:0" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "crwdns142450:0crwdne142450:0" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "crwdns142452:0crwdne142452:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "crwdns109800:0{0}crwdne109800:0" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "crwdns142458:0crwdne142458:0" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "crwdns148560:0crwdne148560:0" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "crwdns142460:0crwdne142460:0" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "crwdns142462:0crwdne142462:0" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "crwdns109816:0crwdne109816:0" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "crwdns109822:0crwdne109822:0" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "crwdns109824:0{0}crwdnd109824:0{1}crwdne109824:0" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "crwdns159712:0crwdne159712:0" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "crwdns142464:0crwdne142464:0" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "crwdns142466:0crwdne142466:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "crwdns109860:0{0}crwdne109860:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "crwdns159714:0crwdne159714:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "crwdns160448:0crwdne160448:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "crwdns109862:0{0}crwdne109862:0" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "crwdns152567:0crwdne152567:0" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "crwdns142468:0crwdne142468:0" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "crwdns154516:0crwdne154516:0" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "crwdns109928:0crwdne109928:0" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "crwdns142470:0crwdne142470:0" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "crwdns142472:0crwdne142472:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "crwdns109934:0crwdne109934:0" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "crwdns142476:0crwdne142476:0" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "crwdns109942:0crwdne109942:0" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "crwdns148502:0{0}crwdnd148502:0{1}crwdne148502:0" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "crwdns109946:0crwdne109946:0" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "crwdns109948:0crwdne109948:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "crwdns159716:0crwdne159716:0" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "crwdns109950:0crwdne109950:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "crwdns109952:0crwdne109952:0" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "crwdns142478:0crwdne142478:0" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "crwdns109954:0crwdne109954:0" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "crwdns159718:0crwdne159718:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "crwdns109966:0crwdne109966:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "crwdns109968:0crwdne109968:0" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "crwdns109970:0{1}crwdnd109970:0{2}crwdnd109970:0{0}crwdnd109970:0{3}crwdne109970:0" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "crwdns142482:0{0}crwdne142482:0" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "crwdns142484:0{0}crwdnd142484:0{1}crwdne142484:0" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "crwdns142486:0crwdne142486:0" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "crwdns159720:0{0}crwdnd159720:0{1}crwdne159720:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "crwdns109978:0crwdne109978:0" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "crwdns142490:0{0}crwdne142490:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "crwdns109990:0crwdne109990:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "crwdns109992:0{0}crwdne109992:0" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "crwdns142492:0crwdne142492:0" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "crwdns110006:0crwdne110006:0" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "crwdns110008:0crwdne110008:0" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "crwdns142496:0crwdne142496:0" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "crwdns142498:0crwdne142498:0" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "crwdns142500:0crwdne142500:0" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "crwdns110020:0crwdne110020:0" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "crwdns142502:0crwdne142502:0" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "crwdns142504:0crwdne142504:0" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "crwdns110026:0crwdne110026:0" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "crwdns155428:0crwdne155428:0" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "crwdns110030:0crwdne110030:0" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "crwdns142506:0crwdne142506:0" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "crwdns142508:0crwdne142508:0" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "crwdns142510:0crwdne142510:0" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "crwdns142512:0crwdne142512:0" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "crwdns151346:0crwdne151346:0" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "crwdns151348:0crwdne151348:0" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "crwdns151350:0crwdne151350:0" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "crwdns151352:0crwdne151352:0" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "crwdns110040:0crwdne110040:0" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "crwdns161232:0crwdne161232:0" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "crwdns160136:0crwdne160136:0" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "crwdns148504:0{0}crwdne148504:0" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "crwdns142520:0crwdne142520:0" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "crwdns142522:0crwdne142522:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "crwdns110060:0crwdne110060:0" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "crwdns110062:0{0}crwdnd110062:0{1}crwdne110062:0" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "crwdns148916:0crwdne148916:0" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "crwdns110064:0crwdne110064:0" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "crwdns142524:0crwdne142524:0" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "crwdns148506:0{0}crwdnd148506:0{0}crwdnd148506:0{1}crwdne148506:0" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "crwdns148508:0{0}crwdnd148508:0{0}crwdnd148508:0{1}crwdne148508:0" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "crwdns142526:0crwdne142526:0" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "crwdns142528:0crwdne142528:0" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "crwdns142530:0crwdne142530:0" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "crwdns142532:0crwdne142532:0" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "crwdns142534:0crwdne142534:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "crwdns110080:0crwdne110080:0" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "crwdns160040:0crwdne160040:0" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "crwdns110082:0{0}crwdne110082:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "crwdns162092:0{0}crwdne162092:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "crwdns110086:0{0}crwdnd110086:0{1}crwdne110086:0" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "crwdns142536:0crwdne142536:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "crwdns110090:0crwdne110090:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "crwdns152569:0crwdne152569:0" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "crwdns110092:0{0}crwdne110092:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "crwdns110094:0{0}crwdne110094:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "crwdns110096:0crwdne110096:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "crwdns110098:0crwdne110098:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "crwdns110100:0crwdne110100:0" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "crwdns110102:0crwdne110102:0" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "crwdns110104:0crwdne110104:0" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "crwdns110106:0crwdne110106:0" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "crwdns142538:0crwdne142538:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "crwdns142540:0{0}crwdne142540:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "crwdns110108:0crwdne110108:0" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "crwdns142544:0crwdne142544:0" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "crwdns142546:0crwdne142546:0" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "crwdns142548:0crwdne142548:0" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "crwdns142550:0crwdne142550:0" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "crwdns142552:0crwdne142552:0" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "crwdns110134:0crwdne110134:0" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "crwdns142554:0crwdne142554:0" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "crwdns110176:0crwdne110176:0" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "crwdns142558:0crwdne142558:0" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "crwdns110182:0{0}crwdnd110182:0{1}crwdne110182:0" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "crwdns110184:0crwdne110184:0" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "crwdns110186:0crwdne110186:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "crwdns110188:0crwdne110188:0" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "crwdns110190:0crwdne110190:0" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "crwdns110192:0crwdne110192:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "crwdns110194:0crwdne110194:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "crwdns142560:0{0}crwdne142560:0" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "crwdns142562:0crwdne142562:0" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "crwdns110200:0crwdne110200:0" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "crwdns110202:0{0}crwdne110202:0" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "crwdns110204:0{0}crwdne110204:0" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "crwdns163912:0{0}crwdnd163912:0{1}crwdnd163912:0{2}crwdne163912:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "crwdns110210:0crwdne110210:0" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "crwdns159722:0crwdne159722:0" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "crwdns142564:0crwdne142564:0" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "crwdns142566:0crwdne142566:0" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "crwdns161234:0crwdne161234:0" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "crwdns142568:0crwdne142568:0" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "crwdns142570:0crwdne142570:0" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "crwdns142574:0crwdne142574:0" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "crwdns142576:0crwdne142576:0" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "crwdns142578:0crwdne142578:0" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "crwdns142580:0crwdne142580:0" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "crwdns161236:0crwdne161236:0" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "crwdns159724:0crwdne159724:0" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "crwdns142582:0crwdne142582:0" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "crwdns110234:0crwdne110234:0" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "crwdns142584:0crwdne142584:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "crwdns110242:0crwdne110242:0" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "crwdns142586:0crwdne142586:0" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "crwdns142588:0crwdne142588:0" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "crwdns142590:0crwdne142590:0" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "crwdns142592:0crwdne142592:0" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "crwdns161238:0crwdne161238:0" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "crwdns142594:0crwdne142594:0" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "crwdns148918:0crwdne148918:0" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "crwdns148920:0crwdne148920:0" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "crwdns142596:0crwdne142596:0" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "crwdns110258:0crwdne110258:0" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "crwdns110262:0crwdne110262:0" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "crwdns142598:0crwdne142598:0" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "crwdns148922:0crwdne148922:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "crwdns110266:0crwdne110266:0" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "crwdns142600:0crwdne142600:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "crwdns110270:0crwdne110270:0" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "crwdns142602:0{0}crwdne142602:0" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "crwdns142604:0crwdne142604:0" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "crwdns142606:0crwdne142606:0" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "crwdns148924:0crwdne148924:0" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "crwdns110276:0crwdne110276:0" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "crwdns110278:0crwdne110278:0" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "crwdns159726:0crwdne159726:0" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "crwdns142608:0crwdne142608:0" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "crwdns142610:0crwdne142610:0" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "crwdns159728:0crwdne159728:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "crwdns110284:0crwdne110284:0" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "crwdns148926:0crwdne148926:0" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "crwdns142612:0crwdne142612:0" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "crwdns110288:0crwdne110288:0" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "crwdns142614:0crwdne142614:0" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "crwdns161240:0crwdne161240:0" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "crwdns142616:0crwdne142616:0" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "crwdns142618:0crwdne142618:0" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "crwdns110302:0crwdne110302:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "crwdns110304:0{0}crwdnd110304:0{1}crwdne110304:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "crwdns110306:0{0}crwdnd110306:0{1}crwdne110306:0" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "crwdns142622:0crwdne142622:0" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "crwdns142624:0crwdne142624:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "crwdns149072:0{0}crwdne149072:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "crwdns110314:0{0}crwdne110314:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "crwdns159730:0{0}crwdne159730:0" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "crwdns142626:0crwdne142626:0" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "crwdns142628:0crwdne142628:0" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "crwdns142630:0crwdne142630:0" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "crwdns110326:0{0}crwdnd110326:0{1}crwdne110326:0" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "crwdns142632:0crwdne142632:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "crwdns110330:0{0}crwdne110330:0" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "crwdns142636:0crwdne142636:0" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "crwdns142638:0crwdne142638:0" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "crwdns142640:0crwdne142640:0" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "crwdns110352:0crwdne110352:0" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "crwdns142642:0crwdne142642:0" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "crwdns110358:0crwdne110358:0" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "crwdns110366:0crwdne110366:0" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "crwdns110368:0crwdne110368:0" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "crwdns110370:0crwdne110370:0" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "crwdns110372:0crwdne110372:0" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "crwdns110376:0crwdne110376:0" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "crwdns110382:0crwdne110382:0" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "crwdns110386:0crwdne110386:0" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "crwdns142644:0crwdne142644:0" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "crwdns159732:0crwdne159732:0" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "crwdns110398:0{0}crwdne110398:0" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "crwdns142652:0crwdne142652:0" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "crwdns110402:0crwdne110402:0" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "crwdns142654:0crwdne142654:0" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "crwdns142656:0crwdne142656:0" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "crwdns142658:0crwdne142658:0" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "crwdns110410:0crwdne110410:0" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "crwdns110414:0crwdne110414:0" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "crwdns110418:0crwdne110418:0" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "crwdns142660:0crwdne142660:0" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "crwdns142662:0crwdne142662:0" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "crwdns142664:0crwdne142664:0" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "crwdns142666:0crwdne142666:0" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "crwdns110438:0crwdne110438:0" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "crwdns142668:0crwdne142668:0" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "crwdns161242:0crwdne161242:0" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "crwdns142670:0crwdne142670:0" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "crwdns149180:0crwdne149180:0" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "crwdns110444:0crwdne110444:0" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "crwdns110446:0crwdne110446:0" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "crwdns110450:0crwdne110450:0" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "crwdns152412:0crwdne152412:0" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "crwdns110452:0crwdne110452:0" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "crwdns155430:0crwdne155430:0" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "crwdns155432:0crwdne155432:0" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "crwdns142674:0crwdne142674:0" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "crwdns159734:0crwdne159734:0" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "crwdns110466:0crwdne110466:0" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "crwdns142678:0crwdne142678:0" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "crwdns142680:0crwdne142680:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "crwdns110470:0crwdne110470:0" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "crwdns110472:0crwdne110472:0" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "crwdns110474:0crwdne110474:0" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "crwdns142682:0crwdne142682:0" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "crwdns151358:0crwdne151358:0" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "crwdns110478:0crwdne110478:0" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "crwdns151360:0crwdne151360:0" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "crwdns151362:0crwdne151362:0" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "crwdns110482:0crwdne110482:0" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "crwdns110484:0crwdne110484:0" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "crwdns110486:0crwdne110486:0" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "crwdns142684:0crwdne142684:0" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "crwdns110488:0crwdne110488:0" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "crwdns151364:0crwdne151364:0" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "crwdns110490:0{0}crwdnd110490:0{1}crwdnd110490:0{2}crwdnd110490:0{3}crwdne110490:0" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "crwdns110492:0{0}crwdne110492:0" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "crwdns110494:0{0}crwdnd110494:0{1}crwdnd110494:0{2}crwdne110494:0" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "crwdns110496:0{0}crwdnd110496:0{1}crwdne110496:0" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "crwdns110498:0crwdne110498:0" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "crwdns142686:0crwdne142686:0" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "crwdns151366:0crwdne151366:0" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "crwdns151368:0crwdne151368:0" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "crwdns142688:0crwdne142688:0" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "crwdns142690:0crwdne142690:0" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "crwdns142692:0crwdne142692:0" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "crwdns142696:0crwdne142696:0" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "crwdns110532:0crwdne110532:0" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "crwdns110534:0crwdne110534:0" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "crwdns142698:0crwdne142698:0" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "crwdns110538:0crwdne110538:0" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "crwdns142700:0crwdne142700:0" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "crwdns110542:0crwdne110542:0" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "crwdns110544:0crwdne110544:0" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "crwdns142702:0crwdne142702:0" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "crwdns142704:0crwdne142704:0" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "crwdns110558:0crwdne110558:0" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "crwdns110560:0crwdne110560:0" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "crwdns110566:0crwdne110566:0" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "crwdns110568:0crwdne110568:0" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "crwdns110574:0crwdne110574:0" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "crwdns151372:0crwdne151372:0" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "crwdns151376:0crwdne151376:0" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "crwdns148564:0crwdne148564:0" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "crwdns110576:0crwdne110576:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "crwdns110582:0{0}crwdne110582:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "crwdns110584:0{0}crwdne110584:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "crwdns110586:0crwdne110586:0" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "crwdns110588:0{0}crwdnd110588:0{1}crwdne110588:0" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "crwdns110590:0crwdne110590:0" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "crwdns159736:0crwdne159736:0" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "crwdns142710:0crwdne142710:0" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "crwdns142712:0crwdne142712:0" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "crwdns110610:0crwdne110610:0" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "crwdns142714:0crwdne142714:0" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "crwdns143288:0crwdne143288:0" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "crwdns142716:0crwdne142716:0" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "crwdns110616:0crwdne110616:0" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "crwdns142718:0crwdne142718:0" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "crwdns142720:0crwdne142720:0" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "crwdns142722:0crwdne142722:0" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "crwdns142724:0crwdne142724:0" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "crwdns142726:0crwdne142726:0" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "crwdns110632:0{0}crwdne110632:0" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "crwdns142728:0crwdne142728:0" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "crwdns142730:0crwdne142730:0" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "crwdns142732:0crwdne142732:0" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "crwdns142734:0crwdne142734:0" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "crwdns142736:0crwdne142736:0" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "crwdns142738:0crwdne142738:0" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "crwdns142740:0crwdne142740:0" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "crwdns142742:0crwdne142742:0" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "crwdns142744:0crwdne142744:0" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "crwdns142746:0crwdne142746:0" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "crwdns142748:0crwdne142748:0" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "crwdns159738:0crwdne159738:0" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "crwdns159740:0crwdne159740:0" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "crwdns110674:0crwdne110674:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "crwdns110676:0crwdne110676:0" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "crwdns110678:0crwdne110678:0" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "crwdns110682:0crwdne110682:0" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "crwdns110684:0{0}crwdne110684:0" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "crwdns110686:0{0}crwdnd110686:0{1}crwdnd110686:0{2}crwdnd110686:0{3}crwdnd110686:0{4}crwdne110686:0" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "crwdns110688:0crwdne110688:0" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "crwdns110690:0crwdne110690:0" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "crwdns159742:0{0}crwdnd159742:0{1}crwdne159742:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "crwdns154411:0crwdne154411:0" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "crwdns154564:0crwdne154564:0" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "crwdns154566:0crwdne154566:0" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "crwdns154568:0crwdne154568:0" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "crwdns154570:0crwdne154570:0" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "crwdns154572:0crwdne154572:0" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "crwdns151380:0crwdne151380:0" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "crwdns110692:0crwdne110692:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "crwdns149150:0{0}crwdne149150:0" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "crwdns110694:0crwdne110694:0" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "crwdns110696:0{0}crwdnd110696:0{1}crwdnd110696:0{2}crwdnd110696:0{3}crwdnd110696:0{4}crwdnd110696:0{5}crwdne110696:0" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "crwdns151382:0crwdne151382:0" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "crwdns110698:0crwdne110698:0" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "crwdns142754:0crwdne142754:0" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "crwdns151384:0crwdne151384:0" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "crwdns151386:0crwdne151386:0" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "crwdns142756:0crwdne142756:0" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "crwdns142758:0crwdne142758:0" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "crwdns154574:0crwdne154574:0" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "crwdns155434:0crwdne155434:0" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "crwdns142762:0{0}crwdne142762:0" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "crwdns142764:0crwdne142764:0" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "crwdns142766:0crwdne142766:0" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "crwdns110708:0crwdne110708:0" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "crwdns110710:0crwdne110710:0" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "crwdns142768:0crwdne142768:0" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "crwdns142770:0crwdne142770:0" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "crwdns151388:0crwdne151388:0" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "crwdns142774:0crwdne142774:0" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "crwdns163914:0crwdne163914:0" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "crwdns163916:0crwdne163916:0" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "crwdns110716:0{0}crwdnd110716:0{1}crwdne110716:0" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "crwdns151392:0{0}crwdnd151392:0{1}crwdne151392:0" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "crwdns159744:0{0}crwdnd159744:0{1}crwdne159744:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "crwdns110718:0{0}crwdne110718:0" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "crwdns110720:0{0}crwdne110720:0" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "crwdns142776:0{0}crwdne142776:0" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "crwdns110722:0{0}crwdne110722:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "crwdns110724:0{0}crwdnd110724:0#{1}crwdnd110724:0{2}crwdnd110724:0{3}crwdne110724:0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "crwdns110726:0{0}crwdnd110726:0#{1}crwdnd110726:0{2}crwdne110726:0" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "crwdns154576:0{0}crwdne154576:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "crwdns110728:0{0}crwdnd110728:0{1}crwdnd110728:0{2}crwdnd110728:0{3}crwdne110728:0" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "crwdns110730:0{0}crwdnd110730:0{1}crwdnd110730:0{2}crwdne110730:0" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "crwdns110732:0{0}crwdnd110732:0{1}crwdne110732:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "crwdns110734:0{0}crwdnd110734:0{1}crwdne110734:0" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "crwdns151394:0{0}crwdne151394:0" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "crwdns163918:0{0}crwdnd163918:0{1}crwdnd163918:0{2}crwdne163918:0" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "crwdns151396:0{0}crwdne151396:0" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "crwdns151398:0{0}crwdne151398:0" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "crwdns151400:0{0}crwdne151400:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "crwdns142778:0{0}crwdnd142778:0{1}crwdne142778:0" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "crwdns159746:0{0}crwdne159746:0" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "crwdns159748:0{0}crwdne159748:0" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "crwdns110742:0{0}crwdne110742:0" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "crwdns110744:0{0}crwdnd110744:0{1}crwdne110744:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "crwdns110746:0{0}crwdne110746:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "crwdns152000:0{0}crwdne152000:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "crwdns154413:0{0}crwdnd154413:0{1}crwdne154413:0" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "crwdns149074:0{0}crwdnd149074:0{1}crwdnd149074:0{2}crwdne149074:0" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "crwdns110752:0{0}crwdne110752:0" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "crwdns110754:0{0}crwdnd110754:0{1}crwdne110754:0" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "crwdns151402:0{0}crwdne151402:0" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "crwdns151404:0{0}crwdne151404:0" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "crwdns152002:0{0}crwdnd152002:0{1}crwdne152002:0" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "crwdns151406:0{0}crwdne151406:0" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "crwdns110758:0{0}crwdnd110758:0{1}crwdnd110758:0{2}crwdnd110758:0{3}crwdnd110758:0{4}crwdnd110758:0{5}crwdnd110758:0{6}crwdnd110758:0{3}crwdne110758:0" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "crwdns142780:0{0}crwdnd142780:0{1}crwdne142780:0" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "crwdns110760:0{0}crwdnd110760:0{1}crwdnd110760:0{2}crwdne110760:0" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "crwdns160898:0{0}crwdne160898:0" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "crwdns110762:0{0}crwdne110762:0" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "crwdns110764:0{0}crwdnd110764:0{0}crwdnd110764:0{1}crwdne110764:0" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "crwdns151408:0{0}crwdne151408:0" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "crwdns161512:0crwdne161512:0" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "crwdns143292:0crwdne143292:0" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "crwdns143294:0crwdne143294:0" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "crwdns143296:0crwdne143296:0" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "crwdns143300:0crwdne143300:0" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "crwdns110772:0crwdne110772:0" + diff --git a/apps/erpnext/src/hrms/hrms/locale/es.po b/apps/erpnext/src/hrms/hrms/locale/es.po new file mode 100644 index 000000000..17da13767 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/es.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:23\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Spanish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: es-ES\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: es_ES\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr " Desvinculación de Pago en la cancelación del anticipo del empleado" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "La fecha 'Desde' no puede ser mayor que la fecha 'Hasta'" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "% Utilización (B + NB) / T" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "% Utilización (B / T)" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "'employee_field_value' y 'timestamp' son obligatorios." + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") para {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "...Recuperando empleados" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.20" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "01:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "05:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "08:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "Ejemplo: SAL- {first_name} - {date_of_birth.year}
    Esto generará una contraseña como SAL-Jane-1972" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "El total de permisos asignados es superior al número de días del periodo de asignación" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Datos Maestros & Informes" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "Ya existe una Solicitud de Trabajo para {0} solicitada por {1}: {2}" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "Un agradable recordatorio de una fecha importante para nuestro equipo." + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "A {0} existe entre {1} y {2} (" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "Ausente" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "Días ausentes" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "Registros de Ausentes" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "Cuenta No" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "La cuenta {0} no pertenece a la compañía {1}" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "Contabilidad y Pagos" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "Informes Contables" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "Entrada de Diario de Acumulación para Salarios de {0} a {1}" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "Nombre de la Actividad" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "Cantidad real" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "Días reales cobrables" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "Añadir a Detalles" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "Añadir permisos no usados de asignaciones anteriores" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "Agregado a los Detalles" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "Monto adicional" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "Información Adicional " + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "PF adicional" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "Salario Adicional" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "Salario Adicional " + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "El Salario Adicional para bonificación de recomendación solo puede ser creado contra el Referido del Empleado con estatus {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "Salario adicional: {0} ya existe para el componente de salario: {1} para el período {2} y {3}" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "Dirección del Organizador" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "Avanzar" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "Filtros Avanzados" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "Todos los trabajos" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "Vacaciones Asignadas" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "¡Asignación caducada!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "Permitir el Cobro" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "Permitir Saldo Negativo" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "Permitir exención de impuestos" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "Permitir al usuario" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "Permitir que los usuarios" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "Permitir la salida después de la hora de finalización del turno (en minutos)" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "Permitir a los usuarios siguientes aprobar solicitudes de ausencia en días bloqueados." + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "Alternar entradas como IN y OUT durante el mismo turno" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "Cantidad basada en fórmula" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "Asignación Anual" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "Salario anual" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "Cualquier otro detalle" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "Aplicable en el caso de la incorporación de empleados" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "Dirección de correo electrónico del solicitante" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "Nombre del Solicitante" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "Nombre del solicitante" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "Estado de la Aplicación" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "El período de solicitud no puede estar en dos registros de asignación" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "El periodo de solicitud no puede estar fuera del periodo de asignación de vacaciones" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "Solicitudes recibidas" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "Se aplica a la empresa" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "Aplicar Ahora" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "Día de la cita" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "Carta de cita" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "Plantilla de carta de cita" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Contenido de la carta de nombramiento" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "Evaluación" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "Ciclo de Evaluación" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "Meta de Evaluación" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "Objetivo de la plantilla de evaluación" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "Titulo de la plantilla de evaluación" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "Aprendiz" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "Aprobación" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "Estado de Aprobación" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "El estado de esta solicitud debe ser \"Aprobado\" o \"Rechazado\"" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "Aprobado" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "Supervisor" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "Abr" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "Fecha y hora de llegada" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "De acuerdo con su estructura salarial asignada no puede solicitar beneficios" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "Asignando Estructuras ..." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "Asignación basada en" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "Asistencia" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Recuento de asistencia" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "Fecha de Asistencia" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "Asistencia desde fecha" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "Asistencia 'Desde fecha' y 'Hasta fecha' son obligatorias" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "ID de Asistencia" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "Asistencia marcada" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "Solicitud de Asistencia" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "Asistencia a la Fecha" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "Asistencia actualizada" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "Asistencia no enviada para {0} ya que es un feriado." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "Asistencia no validada para {0} ya que {1} está de permiso." + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "La asistencia se marcará automáticamente solo después de esta fecha." + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "Asistentes" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "Ago" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "Configuraciones de asistencia automática" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "Auto dejar cobro" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "Esperando Respuesta" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "Asientos Bancarios" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "Giro Bancario" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "Comience el check-in antes de la hora de inicio del turno (en minutos)" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "Beneficio" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "Beneficios" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "Bimensual" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "Recordatorio de cumpleaños" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "Recordatorio de cumpleaños 🎂" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "Bloquear fecha" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "Bloquear días" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "Monto de la Bonificación" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "Fecha de Pago de Bonificación" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "La fecha de pago de la bonificación no puede ser una fecha pasada" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "Asignación masiva" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "Calcule los días laborables de la nómina en función de" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "Calculado en días" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "Llamadas" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "No se pueden asignar vacaciones fuera del período de asignación {0} - {1}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "No se puede encontrar el Período de permiso activo" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "No se puede validar. No se ha marcado la asistencia de algunos empleados." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "Trasladar" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "Trasladar ausencias" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "Permiso ocacional" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "Cambió el estado de {0} a {1} a través de Solicitud de asistencia" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "Comprobar vacantes en la creación de ofertas de trabajo" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "Comprobar en la Fecha" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "Echa un vistazo a la Fecha" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "Beneficio de reclamo por" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "Reclamado" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "Cantidad reclamada" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "Notas de cierre" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "Solicitud de permiso compensatorio" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "Compensatorio" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "Propiedades y referencias de componentes" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "Condición y fórmula" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "Condiciones y variable de fórmula y ejemplo" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "Conferencia" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "Considere la asistencia no marcada como" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "Número de contacto" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "Copia de Invitación / Anuncio" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "No se han podido validar algunos recibos de nóminas: {}" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "Curso" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "Carta de presentación" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "Crear Nuevo ID de Empleado" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "Crear nómina salarial" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "Crear Recibos de Sueldo" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "Creando Entradas de Pago ......" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "Creando Recibos de Sueldo ..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "Creando {0}..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "Recuento Actual" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "El valor actual del odómetro debe ser mayor que el último valor del odómetro {0}" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "Valor actual del cuentakilómetros" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "Aperturas Actuales" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "Resumen diario de Trabajo" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "Grupo de resumen de trabajo diario" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "Resumen de Trabajo Diario de Grupo Usuario" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "Respuestas Diarias del Resumen del Trabajo" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "La fecha está repetida" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "Número de débito A / C" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "Dic" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "Declaraciones" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "Cantidad declarada" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Deduzca el impuesto completo en la fecha de nómina seleccionada" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "Deducir impuestos por soporte de exención de impuestos sin enviar" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "Deducción" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "Deducciones" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "Importe por defecto" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "Banco Predeterminado / Cuenta de Efectivo se actualizará automáticamente en la Entrada de Diario Salario cuando se selecciona este modo." + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "Estructura de Salario Predeterminada" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "Aprobador de Departamento" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "Hora de Salida" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "Depende de los días de pago" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "Habilidad de designación" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "Detalles del Patrocinador (Nombre, Ubicación)" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "Determinar el check-in y el check-out" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "No incluir en total" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "No incluir en total" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "Nacional" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "Salida Temprana" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "Período de gracia de salida temprana" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "Ausencia Ganada" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "Frecuencia de vacaciones ganadas" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "Ingresos" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "Componente de Ganancia" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "Ganancias" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "Válido desde" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "Enviar Nómina al Empleado por Correo Electrónico" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "Correo electrónico enviado a" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "Envíe por correo electrónico el recibo de salario al empleado basándose en el correo electrónico preferido seleccionado en Empleado" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "Número de A / C del empleado" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "Resumen de Avance del Empleado" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "Análisis de los empleados" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "Herramienta de asistencia de los empleados" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "Solicitud de Beneficios para Empleados" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "Detalle de la Solicitud de Beneficios para Empleados" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "Reclamo de Beneficio del Empleado" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "Beneficios de empleados" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "Actividad de Embarque de Empleados" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "Registro de empleados" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "Detalles del Empleado" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "Correos Electrónicos del Empleado" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "Grado del Empleado" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "Seguro de Salud para Empleados" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "Incentivo para Empleados" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "Empleado de Abordo" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "Plantilla de Incorporación del Empleado" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "Otros ingresos del empleado" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "Promoción del Empleado" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "Detalles de la Promoción del Empleado" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "La promoción del empleado no puede validarse antes de la fecha de promoción" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "Historial de Propiedad del Empleado" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "Recomendación de empleados" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "Separación de Empleados" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "Plantilla de Separación de Empleados" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "Configuración de Empleado" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "Habilidad del empleado" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "Mapa de habilidades del empleado" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "Habilidades de los empleados" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "Categoría de Exención Fiscal del Empleado" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "Declaración de Exención Fiscal del Empleado" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "Categoría de Declaración de Exención Fiscal del Empleado" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "Presentación de Prueba de Exención Fiscal del Empleado" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "Detalle de envío de prueba de exención fiscal del empleado" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "Subcategoría de exención fiscal para empleados" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "Formación de los empleados" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "Transferencia del Empleado" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "Detalle de Transferencia del Empleado" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "Detalles de Transferencia del Empleado" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "La transferencia de empleado no se puede validar antes de la fecha de transferencia" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "El empleado {0} ya presentó una solicitud {1} para el período de nómina {2}" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "El empleado {0} no está activo o no existe" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "El empleado {0} está de baja en {1}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "Empleado {0} del medio día del {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "Empleados HTML" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "Empleados que trabajan en un día festivo" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "Habilitar asistencia automática" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "Cobro" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "Monto del Cobro" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "Cifrar recibos de sueldo en correos electrónicos" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "La fecha de finalización no puede ser anterior a la fecha de inicio" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "La hora de finalización no puede ser anterior a la hora de inicio" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "Costo Estimado por Posición" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "Evaluación" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "Fecha de evaluación" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "Detalles del Evento" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "Enlace de evento" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "Lugar del evento" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "Nombre del evento" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "Estado de Eventos" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "Cada entrada y salida válidas" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "Examen" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "Exento del impuesto sobre la renta" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "Exención" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "Categoría de Exención" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "Subcategoría de Exención" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "Resumen de la entrevista de salida" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "Aprobador de Gastos obligatorio en la Reclamación de Gastos" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "Cuenta de Gastos" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "Anticipo de Adelanto de Gastos" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "Detalle de reembolso de gastos" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "Tipo de gasto" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "Reclamación de gastos para el registro de vehículos {0}" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "Relación de Gastos {0} ya existe para el registro de vehículos" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "Fecha de gasto" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "Prueba de Gastos" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "Gastos Impuestos y Cargos" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "Tipo de Gasto" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "Caducar la asignación" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "Vencimiento de permisos transferidos (días)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "Explicación" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "Error al crear/validar {0} para los empleados:" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "No se pudieron enviar algunas asignaciones de políticas de permisos:" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "Feb" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "Retroalimentación enviada" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "Comentarios ya validados para la entrevista {0}. Por favor, cancele la Retroalimentación de la Entrevista anterior {1} para continuar." + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "Llene el formulario y guárdelo" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "Primer check-in y último check-out" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "Primer Nombre " + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "Año fiscal {0} no encontrado" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "Beneficios Flexibles" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "Vuelo" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "Seguir a través de correo electronico" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "Comida" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "Por empleados" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "Fórmula" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "Fracción del salario diario por medio día" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "Desde Monto" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "Desde la fecha {0} no puede ser posterior a la fecha de liberación del empleado {1}" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "Desde la fecha {0} no puede ser anterior a la fecha de incorporación del empleado {1}" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "Desde la fecha no puede ser menor a la fecha de incorporación del empleado" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "La fecha de inicio no puede ser menor que la fecha de incorporación del empleado." + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "Gasto de combustible" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "Precio del combustible" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "Cantidad de combustible" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "Jornada completa" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "Totalmente Patrocinado" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "Cantidad Financiada" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "No se permiten fechas futuras" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "Obtener detalles de la declaración" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "Obtener Empleados" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "Obtener Plantilla" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "Sin Gluten" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "Calificación" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "Pago Bruto" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "Cuadro de mandos de RRHH" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "Configuración de recursos humanos (RRHH)" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "Medio Día" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "Fecha de Medio Día" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "La fecha de medio día es obligatoria" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "Fecha de medio día debe estar entre la fecha desde y fecha hasta" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "La fecha de medio día debe estar entre la fecha de trabajo y la fecha de finalización del trabajo" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "La fecha del medio día debe estar entre la fecha y la fecha" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "Tiene Certificado" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "Nombre del Seguro de Salud" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "Configuraciones de contratación" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "Lista de vacaciones para la excedencia voluntaria" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "Alquiler de casa pagado días superpuestos con {0}" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "Fechas de alquiler de la casa requeridas para el cálculo de la exención" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "Las fechas de alquiler de la casa deben ser al menos con 15 días de diferencia" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "Código IFSC" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "EN" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "Numero de Documento de Identificacion" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "Tipo de Documento de Identificación" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "Si está marcado, oculta y deshabilita el campo Total redondeado en los recibos de salario" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "Si está marcado, el monto total se deducirá de la renta imponible antes de calcular el impuesto sobre la renta sin ninguna declaración o presentación de prueba." + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "Si está habilitada, la Declaración de exención de impuestos se considerará para el cálculo del impuesto sobre la renta." + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "Si no está marcada, la lista tendrá que ser añadida a cada departamento donde será aplicada." + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Si se selecciona, el valor especificado o calculado en este componente no contribuirá a las ganancias o deducciones. Sin embargo, su valor puede ser referenciado por otros componentes que se pueden agregar o deducir." + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "Asistente de importación" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "A tiempo" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "Monto de Incentivo" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "Incluir vacaciones con el numero total de días laborables" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "Incluir las vacaciones y ausencias únicamente como ausencias" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "Importe del impuesto sobre la renta" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "Componente de impuesto sobre la renta" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "Deducciones del impuesto sobre la renta" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "Losa de impuesto sobre la renta" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "Impuesto sobre la renta Otros cargos de losa" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "Losa de impuesto sobre la renta debe entrar en vigencia a partir de la fecha de inicio del período de nómina: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "Losa de impuesto sobre la renta no se estableció en la asignación de estructura salarial: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "Losa de impuestos sobre la renta: {0} está inhabilitado" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "Inspección" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "Cantidad de interés" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "Interno" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "Internacional" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "Entrevistas" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "Invitado" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "Referencia de Factura" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "Es un traslado" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "Es Compensatorio" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "Es un permiso ganado" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "Está expirado" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "Es un Beneficio Flexible" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "Es el componente del impuesto sobre la renta" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "Es una ausencia sin goce de salario" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "Es un permiso opcional" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "Es recurrente" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "Es Impuesto Aplicable" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "Ene" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "Fuente del Solicitante de Empleo" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "Descripción del trabajo" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "Oferta de trabajo" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "Término de Oferta de Trabajo" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "Términos de Oferta de Trabajo" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "Estado de la oferta de trabajo" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "Oferta de trabajo: {0} ya es para el solicitante de empleo: {1}" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "Oportunidad de empleo" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "Perfil laboral, las cualificaciones necesarias, etc" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "Trabajos" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "Dia de ingreso" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "Julio" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "Junio" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "Área Clave de Rendimiento" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "Área de Responsabilidad Clave" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "Última sincronización exitosa conocida del registro de empleados. Restablezca esto solo si está seguro de que todos los registros están sincronizados desde todas las ubicaciones. No modifique esto si no está seguro." + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "Última sincronización de registro" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "Entrada tardía" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "Período de gracia de entrada tardía" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "Salir" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "Asignación de vacaciones" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "Dejar asignaciones" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "Solicitud de vacaciones" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "Notificación de Autorización de Vacaciones" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "Plantilla de Notificación de Autorización de Vacaciones" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "Aprobador de Autorización de Vacaciones es obligatorio en la Solicitud de Vacaciones" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "Nombre del supervisor de ausencias" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "Saldo de vacaciones" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "Ausencias disponibles antes de la solicitud" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "Permitir Lista de Bloqueo de Vacaciones" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "Lista de 'bloqueo de vacaciones / permisos' permitida" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "Fecha de Lista de Bloqueo de Vacaciones" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "Fechas de Lista de Bloqueo de Vacaciones" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "Nombre de la Lista de Bloqueo de Vacaciones" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "Vacaciones Bloqueadas" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "Panel de control de ausencias" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "Dejar el Encargo" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "Deje la cantidad de dinero en efectivo por día" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "Dejar entrada de libro mayor" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "Período de vacaciones" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "Política de vacaciones" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "Dejar detalles de la política" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "Dejar detalles de la política" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "Estado de Notificación de Vacaciones" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "Plantilla de Estado de Notificación de Vacaciones" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "Tipo de Vacaciones" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "Nombre del tipo de ausencia" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "Tipo de Vacaciones es obligatorio" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "No se puede asignar el tipo de vacaciones {0} ya que se trata de vacaciones sin sueldo." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "No se puede arrastrar el tipo de vacaciones {0}." + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "Las vacaciones {0} no se pueden cobrar" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "Permiso / Vacaciones no remuneradas" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "Las vacaciones no remuneradas no coincide con los registros de {} aprobados" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "La solicitud de vacaciones está vinculada a las asignaciones de vacaciones {0}. La solicitud de vacaciones no puede establecerse como vacaciones no pagadas" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Las vacaciones no se pueden asignar antes de {0}, ya que el saldo de las vacaciones ya se ha trasladado al futuro registro de asignación de vacaciones {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "La licencia no se puede solicitar/cancelar antes de {0}, ya que el saldo de vacaciones ya se ha trasladado al registro de asignación de vacaciones futuras {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "Vacaciones" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "Vacaciones asignadas" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "Ausencias por año" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Inactivo/Fuera" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "Ciclo de Vida" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "Entrada de reembolso de préstamo" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "Ubicación / ID del dispositivo" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "Alojamiento Requerido" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "Tipo de registro" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "El tipo de registro es necesario para los registros que se realizan en el turno: {0}." + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "Campos obligatorios requeridos para esta acción:" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "Mar" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "Marcar Asistencia" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "Marque la asistencia basada en 'Registro de empleados' para los empleados asignados a este turno." + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "Asistencia Marcada" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "Asistencia Marcada HTML" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "Monto de Beneficio Máximo" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "Monto de Beneficio Máximo (Anual)" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "Beneficios Máximos (Cantidad)" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "Beneficios Máximos (Anuales)" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "Cantidad de exención máxima" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "El monto máximo de exención no puede ser mayor que el monto máximo de exención {0} de la categoría de exención fiscal {1}" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "Ingreso imponible máximo" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "Máximo las horas de trabajo contra la parte de horas" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "Máximo de vacaciones arrastradas" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "Monto máximo exento" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "Monto Máximo de Exención" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "Las vacaciones máximas permitidas en el tipo de vacaciones {0} es {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "Mayo" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "preferencia de comida" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "Médico" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "Kilometraje" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "Renta mínima imponible" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "Modo de Viaje" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "Forma de pago se requiere para hacer un pago" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "Hoja de Asistencia mensual" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "Más de una selección para {0} no permitida" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "Nombre del Organizador" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "Pago Neto" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "Pago Neto no puede ser menor que 0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "Cantidad de salario neto" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "El salario neto no puede ser negativo" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "Nueva Identificación de Empleado" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "Nuevas Ausencias Asignadas" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "Nuevas ausencias asignadas (en días)" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "Ningún empleado encontrado" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "No se encontró ningún empleado para el valor de campo de empleado dado. '{}': {}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "No hay vacaciones asignadas al empleado: {0} para el tipo de vacaciones: {1}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "No se encontraron planes de personal para esta designación" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "Sin estructura de salario activa o por defecto encontrada de empleado {0} para las fechas indicadas" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "No se han agregado gastos adicionales" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "No se encontraron anticipos" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "No se encontró ningún registro de vacaciones para el empleado {0} el {1}" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "No hay más actualizaciones" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "No hay respuestas de" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "No se ha presentado ningún comprobante de sueldo para los criterios seleccionados anteriormente O recibo de sueldo ya enviado" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "No se encontraron nóminas" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "No diario" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "No Vegetariano" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "Nada para Cambiar" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "Período de Notificación" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "Notificar a los usuarios por correo electrónico" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "Nov" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "Número de Empleados" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "Numero de Posiciones" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "FUERA" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "Oct" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "Lectura del podómetro" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "Términos de la oferta" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "A tiempo" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "En Servicio" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "De vacaciones" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "Solo los aprobadores pueden aprobar esta solicitud." + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "Sólo se pueden presentar solicitudes de permiso con el status \"Aprobado\" y \"Rechazado\"." + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "Solo se puede enviar una solicitud de turno con el estado 'Aprobado' y 'Rechazado'" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "Solo se puede cancelar la asignación vencida" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "Solo los usuarios con el rol {0} pueden crear solicitudes de vacaciones atrasadas" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "Lista de vacaciones opcional no establecida para el período de vacaciones {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "Otros impuestos y cargos" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "Otros" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "Fuera de tiempo" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "Sobrescribir el monto de la Estructura Salarial" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "Número PAN" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "Cuenta PF" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "Monto PF" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "Préstamo PF" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "Tiempo parcial" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "Parcialmente Patrocinado, Requiere Financiación Parcial" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "Política de contraseñas" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "La política de contraseña no puede contener espacios o guiones simultáneos. El formato se reestructurará automáticamente." + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "La política de contraseñas para recibos salariales no está establecida" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "La cuenta de pago es obligatoria" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "Días de pago" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "Pago de {0} desde {1} hasta {2}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "Nómina de sueldos" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "Fecha de Nómina" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "Detalle de la Nómina del Empleado" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "Frecuencia de la Nómina" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "Número de nómina" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "Período de Nómina" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "Fecha del Período de la Nómina" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "Períodos de Nómina" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "Informes de nómina" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "Configuración de nómina" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "La fecha de nómina no puede ser mayor que la fecha de relevo del empleado." + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "La fecha de la nómina no puede ser menor que la fecha de incorporación del empleado." + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "Deducción Porcentual" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "Rendimiento" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "Trabajo por obra" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "Número planificado de Posiciones" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "Por favor confirme una vez que haya completado su formación" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "Habilite la cuenta entrante predeterminada antes de crear el Grupo de resumen de trabajo diario" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "Por favor, introduzca la designación" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "Seleccione Compañía y Designación" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "Por favor selecciona Empleado" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "Primero seleccione Empleado." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "Por favor, seleccione un archivo csv" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "Establezca Nómina en función de la configuración de Nómina" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "Por favor, configure la plantilla predeterminada para la Notifiación de Aprobación de Vacaciones en Configuración de Recursos Humanos." + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "Configure la plantilla predeterminada para la Notifiación de Estado de Vacaciones en configuración de Recursos Humanos." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "Por favor establezca la empresa" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "Por favor, establezca la Fecha de Ingreso para el empleado {0}" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "Por favor, configure {0}." + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "Configure el Sistema de nombres de empleados en Recursos humanos> Configuración de recursos humanos" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "Configure la serie de numeración para la asistencia a través de Configuración> Serie de numeración" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "Por favor, comparta sus comentarios con la formación haciendo clic en \"Feedback de Entrenamiento\" y luego en \"Nuevo\"" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "Actualice su estado para este evento de capacitación." + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "Área preferida para alojamiento" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "Presente" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "Previsualización de Nómina" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "Vacaciones" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "Período de prueba" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "Período de prueba" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "Asistencia al proceso después" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "Deducciones fiscales profesionales" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "Competencia" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "Fecha de Promoción" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "Propiedad ya agregada" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "Deducciones del fondo de previsión" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "Publicar en el sitio web" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "Propósito de Viaje" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "Reasignar vacaciones" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "Análisis de contratación" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "Referencia: {0}" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "Detalles de repostaje" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "Fecha de relevo " + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "Beneficios Restantes (Anuales)" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "Recuerde Antes" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "Recordado" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "Auto Rentado" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "Reembolsar desde el salario se puede seleccionar solo para préstamos a plazo" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "Respuestas" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "Requerir Fondos Completos" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "Requerido para la creación del Empleado" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "Responsabilidades" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "Adjunto curriculum vitae" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "Bonificación de Retención" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "Rol permitido para crear una solicitud de vacaciones con fecha anterior" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "Redondear al entero más cercano" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "Redondeo" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "Fila n. ° {0}: no se puede establecer la cantidad o la fórmula para el componente de salario {1} con variable basada en el salario imponible" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "Fila {0} # Cantidad Asignada {1} no puede ser mayor que la Cantidad no Reclamada {2}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "Fila {0}# Cantidad pagada no puede ser mayor que la cantidad adelantada solicitada" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "Fila {0}: {1} es obligatorio en la tabla de gastos para registrar una reclamación de gastos." + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "Componente Salarial" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "Componente Salarial " + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "Cuenta Nómina Componente" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "Tipo de Componente Salarial" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "Componente de salario para la nómina basada en hoja de salario." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "Detalle de Sueldos" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "Detalles del Salario" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "Pagos de salario basados en el modo de pago" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "Pagos de salario a través de ECS" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "Registro de Salario" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "Nomina basada horas" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "ID de Nómina" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "Préstamo de Nómina" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "Registro de Horas de Nómina" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "El Recibo de Sueldo ya existe para {0} para las fechas indicadas" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "Nómina del empleado {0} ya creado para este periodo" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "Nómina de sueldo del empleado {0} ya creado para la hoja de tiempo {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "Salario Slips creado" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "Nómina Salarial Validada" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "Estructura salarial" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "Asignación de Estructura Salarial" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "La asignación de estructura salarial para el empleado ya existe" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "Falta estructura salarial" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "Salario ya procesado para el período entre {0} y {1}, Deja período de aplicación no puede estar entre este intervalo de fechas." + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "Calculo de salario basado en los ingresos y deducciones" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "Importe sancionado no puede ser mayor que el importe del reclamo en la línea {0}." + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "Puntuación Obtenida." + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "La puntuación debe ser menor o igual a 5" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "Seleccionar la cuenta de pago para hacer la entrada del Banco" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "Seleccionar Propiedad" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "Seleccione términos y condiciones" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "Seleccionar Usuarios" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "Seleccione un empleado para obtener el adelanto del empleado." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "Autoestudio" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "Seminario" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "Enviar Correos Electrónicos a" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "Sep" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "Detalles del servicio" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "Gasto de Servicio" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "Configure la cuenta predeterminada para {0} {1}" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Turno y Asistencia" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "Shift Real End" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "Shift Real Start" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "Asignación de Turno" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "Asignación de turno: {0} creado para Empleado: {1}" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "Fin de turno" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "Solicitud de Turno" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "Inicio de turno" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "Tipo de Cambio" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Turnos" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "Mostrar empleado" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "Mostrar vacaciones de todos los miembros del departamento en el calendario" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "Mostrar Nomina Salarial" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "Permiso por enfermedad" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "Asignación única" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "Habilidad" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "nombre de la habilidad" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "Habilidades" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "Omitir asistencia automática" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "Omitir la asignación de estructura salarial para los siguientes empleados, ya que los registros de asignación de estructura salarial ya existen en su contra. {0}" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "Monto Patrocinado" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "Plan de Personal" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "Detalle del plan de personal" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "El plan de dotación de personal {0} ya existe para la designación {1}" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "Monto de exención de impuestos estándar" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "Las fechas de inicio y final no están en un Período de cálculo de la nómina válido, no pueden calcular {0}." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "Componente estadístico" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "Opciones de stock" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "No permitir a los usuarios crear solicitudes de ausencia en los siguientes días." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "Estrictamente basado en el tipo de registro en el registro de empleados" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "Las Esturcturas fueron asignadas exitósamente" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "Día de Entrega" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "Enviar prueba" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "Validar nómina salarial" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "Valide esta solicitud de permiso para confirmar." + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "Envíe esto para crear el registro del empleado" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "Envío de nóminas y creación de asientos de diario ..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "Validar Nóminas Salariales ..." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "Vista resumida" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "Impuestos y Beneficios" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "Categoría de Exención Fiscal" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "Pruebas de Exención de Impuestos" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "Configuración de impuestos" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "Impuesto sobre el Salario Adicional" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "Impuesto sobre el Beneficio Flexible" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "Losa Salarial Imponible" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "Salarios Gravables" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "Impuestos y cargas sobre el impuesto sobre la renta" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "Actualizaciones equipo" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "El día o días en los que solicita las vacaciones son festivos. No es necesario que las solicite." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "La fracción del salario diario a pagar por asistencia de medio día." + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "El recibo de salario enviado por correo electrónico al empleado estará protegido por contraseña, la contraseña se generará en función de la política de contraseña." + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "El tiempo después del horario de inicio del turno cuando el check-in se considera tarde (en minutos)." + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "El tiempo antes de la hora de finalización del turno cuando el check-out se considera temprano (en minutos)." + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "El tiempo antes de la hora de inicio del turno durante el cual se considera la asistencia del Empleado Check-in." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "Teoría" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "Existen más vacaciones que días de trabajo en este mes." + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "No hay vacantes en el plan de personal {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "Este empleado ya tiene un registro con la misma marca de tiempo. {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "Esto se basa en la presencia de este empleado" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "Esto enviará hojas de salario y creará asientos acumulados. ¿Quieres proceder?" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "Tiempo después del final del turno durante el cual se considera la salida para la asistencia." + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "Sincronización" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "Al Monto" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "Hasta la fecha debe ser mayor que desde la fecha" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "Al usuario" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "Fecha Hasta no puede ser igual o menor que la fecha" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "Hasta la fecha no puede ser mayor que la fecha de relevo del empleado." + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "Fecha Hasta no puede ser menor que la Fecha Desde" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "Fecha Hasta no puede ser mayor que la fecha de alivio del empleado" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "Total ausente" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "Monto real total" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "Monto Total Anticipado" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "Monto total reembolsado" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "Total reembolso" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "Monto total declarado" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "Deducción total" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "Total de salidas tempranas" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "Ganancia Total" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "Presupuesto Total Estimado" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "Costo Total Estimado" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "Importe Total de Exención" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "Total de entradas tardías" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "Días totales de ausencia" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "Total vacaciones" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "Total de ausencias asigandas" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "Total de vacaciones remuneradas" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "Total Presente" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "Total Sancionada" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "Puntaje Total" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "El monto total anticipado no puede ser mayor que la cantidad total autorizada" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "Total en palabras" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "Las vacaciones totales asignadas son obligatorias para el Tipo de Vacaciones {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "Total de horas de trabajo no deben ser mayores que las horas de trabajo max {0}" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "Entrenamiento" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "Correo electrónico del entrenador" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "Nombre del entrenador" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "Formación" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "Fecha de entrenamiento" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "Evento de Capacitación" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "Evento de Formación de los trabajadores" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "Evento de entrenamiento:" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "Eventos de entrenamiento" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "Comentarios del entrenamiento" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "Programa de Entrenamiento" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "Resultado del entrenamiento" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "Resultado del Entrenamiento del Empleado" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "Entrenamientos" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "Fecha de Transferencia" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "Viajes" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "Se Requiere Avance de Viaje" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "Viajar Desde" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "Financiación de Viajes" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "Itinerario de Viaje" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "Solicitud de Viaje" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "Costo de Solicitud de Viaje" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "Viajar a" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "Tipo de Viaje" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "Tipo de Prueba" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "Asistencia sin marcar por días" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "Días sin marcar" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "Días sin marcar" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "Reclamación de gastos no pagados" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "Ausencias no utilizadas" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "Actualizar Respuesta" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "Subir Asistencia" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "Subir HTML" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "Subiendo..." + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "Vacantes" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "Las vacantes no pueden ser inferiores a las vacantes actuales" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "Validar la Asistencia" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "Validación de la asistencia de los empleados ..." + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "Valor / Descripción" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "Valor que Falta" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "Variable basada en el Salario Imponible" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "Vegetariano" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "Gasto de Vehículo" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "Bitácora del Vehiculo" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "Servicio del Vehículo" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "Advertencia: La solicitud de ausencia contiene las siguientes fechas bloqueadas" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "Listado de sitios web" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "Fecha de Finalización del Trabajo" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "Trabajar Desde la Fecha" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "Trabajar Desde Casa" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "Resumen de trabajo para {0}" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "Trabajó en Vacaciones" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "Días de Trabajo" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "Cálculo de horas de trabajo basado en" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "Umbral de horas de trabajo para ausentes" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "Umbral de horas de trabajo para medio día" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "Horas de trabajo por debajo de las cuales se marca Ausente. (Cero para deshabilitar)" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "Horas de trabajo por debajo de las cuales se marca Medio día. (Cero para deshabilitar)" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "Taller" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "Usted no está autorizado para aprobar ausencias en fechas bloqueadas" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "Usted no está presente todos los días entre los días de solicitud de permiso compensatorio" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "No puede solicitar su turno predeterminado: {0}" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "Solo puede enviar la Deuda por un monto de cobro válido" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "activo" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "cancelado" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "creado" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "resultado" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "revisión" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "comentarios" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "validado" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "año" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} ya ha sido asignado para el empleado {1} para el periodo {2} hasta {3}" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0} ya existe para el empleado {1} y el período {2}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "{0} aplicable después de {1} días hábiles" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "{0} creado con éxito!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} no está en la Lista de Vacaciones opcional" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} debe enviarse" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}: No se encontró el correo electrónico de los empleados, por lo tanto, no correo electrónico enviado" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "{0}: Desde {0} del tipo {1}" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "{} Aceptado" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "{} Activo" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/fa.po b/apps/erpnext/src/hrms/hrms/locale/fa.po new file mode 100644 index 000000000..7f540b4ce --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/fa.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2026-01-05 14:42\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Persian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: fa\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: fa_IR\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr " فیش‌های حقوقی که از این تاریخ یا بعد از آن شروع می‌شوند، برای محاسبه معوقات در نظر گرفته می‌شوند" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr " قطع ارتباط پرداخت در صورت لغو پیش‌پرداخت کارمند" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "\"از تاریخ\" نمی‌تواند بزرگتر یا مساوی \"تا تاریخ\" باشد" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "% استفاده (B + NB) / T" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "% استفاده (B / T)" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "'employee_field_value' و 'timestamp' مورد نیاز است." + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") برای {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "...واکشی کارکنان" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "01:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "05:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "08:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "مبلغ پایه برای کارمند(ان) زیر تعیین نشده است: {0}" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "مثال: SAL-{first_name}-{date_of_birth.year}
    این یک گذرواژه مانند SAL-Jane-1972 ایجاد می‌کند" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "کل مرخصی‌های تخصیص یافته بیشتر از تعداد روزهای دوره تخصیص است" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "
    " + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "تراکنش‌ها و گزارش‌ها" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "مستندات و گزارش‌ها" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "
    {0}{1}
    " + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "یک درخواست شغلی برای {0} درخواست شده توسط {1} از قبل وجود دارد: {2}" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "یادآوری دوستانه یک تاریخ مهم برای تیم ما." + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "یک {0} بین {1} و {2} وجود دارد (" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "غایب" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "روزهای غیبت" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "رکوردهای غایب" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "شماره حساب" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "حساب {0} با شرکت {1} مطابقت ندارد" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "حسابداری و پرداخت" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "گزارش‌های حسابداری" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "حساب‌ها برای مؤلفه حقوق {0} تنظیم نشده است" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "ثبت گزارش تعهدی برای حقوق از {0} تا {1}" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "مزایای انباشته شده" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "اقدام هنگام ارسال" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "نام فعالیت" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "مبلغ واقعی" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "روزهای واقعی قابل بازخرید" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "ترازهای واقعی در دسترس نیست زیرا برنامه مرخصی شامل تخصیص مرخصی‌های مختلف است. شما همچنان می‌توانید برای مرخصی‌هایی که در طول تخصیص بعدی جبران می‌شود، درخواست دهید." + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "افزودن تاریخ‌ها بر اساس روز" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "افزودن اموال کارکنان" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "افزودن هزینه" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "افزودن بازخورد" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "افزودن مالیات" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "افزودن به جزئیات" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "افزودن مرخصی‌های استفاده نشده از تخصیص های قبلی" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "مرخصی‌های استفاده نشده از تخصیص دوره مرخصی قبلی را به این تخصیص اضافه کنید" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "مؤلفه‌های مالیاتی از Master Component حقوق اضافه شده است زیرا ساختار حقوق و دستمزد هیچ مؤلفه مالیاتی ندارد." + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "به جزئیات اضافه شد" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "مبلغ اضافی" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr " اطلاعات تکمیلی" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "PF اضافی" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "حقوق اضافی" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr " حقوق اضافی" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "حقوق اضافی برای پاداش ارجاع فقط در مقابل ارجاع کارمند با وضعیت {0} ایجاد می‌شود" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "حقوق اضافی برای این مؤلفه حقوق با فعال کردن {0} از قبل برای این تاریخ وجود دارد" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "حقوق اضافی: {0} از قبل برای مؤلفه حقوق وجود دارد: {1} برای دوره {2} و {3}" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "آدرس سازمان دهنده" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "تعدیل تخصیص" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "تعدیل با موفقیت ایجاد شد" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "نوع تعدیل" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "پیشرفت" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "فیلترهای پیشرفته" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "همه اهداف" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "همه مشاغل" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "تمام دارایی‌های تخصیص یافته باید قبل از ارسال بازگردانده شود" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "تمام تسک‌ها اجباری برای ایجاد کارمند هنوز تکمیل نشده است." + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "تخصیص بر اساس سیاست مرخصی" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "تخصیص مرخصی" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "تخصیص مرخصی به {0} کارمند(ها)؟" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "اختصاص در روز" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "مرخصی‌های اختصاص داده شده" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "تخصیص مرخصی" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "تاریخ تخصیص" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "جزئیات تخصیص" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "تخصیص منقضی شده است!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "تخصیص از حداکثر مجاز {0} برای نوع مرخصی {1} بیشتر است" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "تخصیص جهت تعدیل" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "اجازه ثبت ورود به کارمند از برنامه تلفن همراه" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "اجازه بازخرید" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "اجازه ردیابی موقعیت جغرافیایی" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "اجازه درخواست مرخصی بعد از (روزهای کاری)" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "اجازه تخصیص چندین شیفت برای یک تاریخ" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "اجازه تراز منفی" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "اجازه بیش از تخصیص" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "اجازه معافیت مالیاتی" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "کاربر مجاز" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "کاربران مجاز" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "اجازه خروج پس از پایان نوبت (بر حسب دقیقه)" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "به کاربران زیر اجازه دهید تا درخواست‌های مرخصی را برای روزهای مسدود تأیید کنند." + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "امکان تخصیص مرخصی‌های بیشتر از تعداد روزهای دوره تخصیص را فراهم می‌کند." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "ورودی های متناوب به صورت IN و OUT در همان شیفت" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "مبلغ بر اساس فرمول" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "مبلغ بر اساس فرمول" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "مبلغ مطالبه شده از طریق مطالبه هزینه" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "مبلغ هزینه" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "مبلغ پرداختی بابت این بازخرید" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "مبلغ زمان‌بندی شده برای کسر از طریق حقوق" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "مبلغ نباید کمتر از صفر باشد" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "مبلغ پرداخت شده بابت این پیش‌پرداخت" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "سابقه حضور و غیاب به این ورود پیوند داده شده است. لطفا قبل از تغییر ساعت، حضور را لغو کنید." + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "تخصیص سالانه" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "حقوق سالانه" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "مبلغ مشمول مالیات سالانه" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "هر جزئیات دیگری" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "هر ملاحظات دیگری، تلاش قابل توجهی است که باید در رکوردها ثبت شود" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "جزء سود قابل اجرا" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "قابل اجرا در مورد آشناسازی کارکنان" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "آدرس ایمیل متقاضی" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "نام متقاضی" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "رتبه بندی متقاضی" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "متقاضی کار" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "نام متقاضی" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "درخواست" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "وضعیت برنامه" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "دوره درخواست نمی‌تواند بین دو رکورد تخصیص باشد" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "دوره درخواست نمی‌تواند خارج از دوره تخصیص مرخصی باشد" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "درخواست‌های دریافت شده" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "درخواست‌های دریافتی:" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "برای شرکت اعمال می‌شود" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "درخواست / تأیید مرخصی" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "اکنون درخواست دهید" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "تاریخ انتصاب" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "حکم انتصاب" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "الگوی حکم انتصاب" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "محتوای حکم انتصاب" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "ارزیابی" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "چرخه ارزیابی" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "هدف ارزیابی" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "ارزیابی KRA" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "پیوند ارزیابی" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "بررسی اجمالی ارزیابی" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "الگوی ارزیابی" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "هدف الگوی ارزیابی" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "الگوی ارزیابی وجود ندارد" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "عنوان الگوی ارزیابی" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "الگوی ارزیابی برای برخی از نقش سازمانی ها یافت نشد." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "ایجاد ارزیابی در صف است. ممکن است چند دقیقه طول بکشد." + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "ارزیابی {0} از قبل برای کارمند {1} برای این چرخه ارزیابی یا دوره همپوشانی وجود دارد" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "ارزیابی {0} به کارمند {1} تعلق ندارد" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "ارزیاب" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "ارزیابان: {0}" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "شاگرد کارآموز" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "تصویب" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "وضعیت تأیید" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "وضعیت تأیید باید «تأیید» یا «رد شده» باشد" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "تأیید شده" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "تصویب کننده" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "تأییدکنندگان" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "آوریل" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "آیا مطمئن هستید که می‌خواهید پیوست را حذف کنید" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "آیا مطمئن هستید که می‌خواهید {0} را حذف کنید" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "آیا مطمئن هستید که می‌خواهید فیش‌های حقوق انتخابی را ایمیل کنید؟" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "آیا مطمئن هستید که می‌خواهید ارجاع کارمند را رد کنید؟" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "تاریخ ورود" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "طبق ساختار حقوق و دستمزد تعیین شده شما نمی‌توانید برای مزایا درخواست دهید" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "دارایی‌های تخصیص یافته" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "اختصاص ساختار حقوق و دستمزد به {0} کارمند(ان)؟" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "اختصاص شیفت" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "اختصاص زمان‌بندی شیفت" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "واگذاری سازه های ..." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "تخصیص بر اساس" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "افتتاحیه کاردانی" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "سند مرتبط" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "نوع سند مرتبط" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "حداقل یک مصاحبه باید انتخاب شود." + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "حضور و غیاب" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "تقویم حضور و غیاب" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "تعداد حضور و غیاب" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "تاریخ حضور و غیاب" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "حضور و غیاب از تاریخ" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "حضور و غیاب از تاریخ و حضور و غیاب تا تاریخ الزامی است" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "شناسه حضور و غیاب" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "حضور و غیاب مشخص شده" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "درخواست حضور و غیاب" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "سابقه درخواست حضور و غیاب" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "تنظیمات حضور و غیاب" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "حضور و غیاب تا تاریخ" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "حضور و غیاب به روز شد" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "هشدارهای حضور و غیاب" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "تاریخ حضور و غیاب {0} نمی‌تواند کمتر از تاریخ عضویت کارمند {1} باشد: {2}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "حضور و غیاب همه کارکنان تحت این معیار قبلاً مشخص شده است." + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "حضور و غیاب کارمند {0} قبلاً برای یک شیفت همپوشانی {1} علامت گذاری شده است: {2}" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "حضور کارمند {0} قبلاً برای تاریخ {1} مشخص شده است: {2}" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "حضور و غیاب از {0} تا {1} قبلاً برای کارمند {2} مشخص شده است" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "حضور و غیاب با موفقیت مشخص شد" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "حضور برای {0} ارسال نشده است زیرا تعطیلات است." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "حضور برای {0} ارسال نشد زیرا {1} در مرخصی است." + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "حضور و غیاب تنها پس از این تاریخ به صورت خودکار علامت گذاری می‌شود." + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "AttendanceRequestListView" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "شرکت کنندگان" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "تعداد ترک کار" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "اوت" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "تنظیمات حضور و غیاب خودکار" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "بازخرید خودکار مرخصی" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "خودکار بر اساس پیشرفت هدف" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "به طور خودکار تمام دارایی‌های تخصیص یافته به کارمند را در صورت وجود، واکشی می‌کند" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "مرخصی(های) موجود" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "مرخصی‌های موجود" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "میانگین امتیاز بازخورد" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "میانگین امتیاز" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "میانگین امتیاز مهارت‌های نشان داده شده" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "میانگین امتیاز بازخورد" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "میانگین استفاده" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "میانگین استفاده (فقط صورتحساب)" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "در انتظار پاسخ" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "برنامه مرخصی قدیمی محدود شده است. لطفاً {} را در {} تنظیم کنید" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "ورودی های بانکی" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "حواله بانکی" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "پایه" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "پایه و متغیر" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "شروع اعلام حضور قبل از زمان شروع شیفت (بر حسب دقیقه)" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "در زیر لیستی از تعطیلات آینده برای شما آمده است:" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "مزایا" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "مزایا" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "مبلغ صورتحساب" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "ساعت صورتحساب" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "ساعت صورتحساب (B)" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "دو ماهنامه" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "یادآوری تولد" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "یادآوری تولد 🎂" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "تولدها" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "تاریخ مسدود کردن" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "روزهای مسدود" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "مسدود کردن تعطیلات در روزهای مهم." + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "پاداش" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "مبلغ پاداش" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "تاریخ پرداخت پاداش" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "تاریخ پرداخت پاداش نمی‌تواند تاریخ گذشته باشد" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "شعبه: {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "اختصاص انبوه" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "تخصیص انبوه سیاست مرخصی" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "تخصیص انبوه ساختار حقوق و دستمزد" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "CTC" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "محاسبه امتیاز نهایی بر اساس فرمول" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "محاسبه مبلغ حق سنوات بر اساس" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "محاسبه روزهای کاری حقوق و دستمزد بر اساس" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "بر حسب روز محاسبه می‌شود" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "تماس می گیرد" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "در صف لغو" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "نمی‌توان زمان را تغییر داد" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "نمی‌توان مرخصی را خارج از دوره تخصیص {0} - {1} اختصاص داد" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "نمی‌توان شیفت تخصیص داده شده را لغو کرد: {0} زیرا به حضور و غیاب مرتبط است: {1}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "نمی‌توان تخصیص شیفت را لغو کرد: {0} زیرا به ثبت ورود کارمند مرتبط است: {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "نمی‌توان فیش حقوقی برای پیوستن کارمندان پس از دوره حقوق و دستمزد ایجاد کرد" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "نمی‌توان فیش حقوقی را برای کارمندی که قبل از دوره حقوق و دستمزد ترک کرده است ایجاد کرد" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "نمی‌توان یک متقاضی شغل در برابر یک فرصت شغلی بسته شده ایجاد کرد" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "نمی‌توان دوره مرخصی فعال را پیدا کرد" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "نمی‌توان حضور و غیاب برای یک کارمند غیرفعال را مشخص کرد {0}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "نمی‌توان ارسال کرد. حضور و غیاب برای برخی از کارمندان مشخص نشده است." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "پس از ارسال نمی‌توان تخصیص برای {0} را به روز کرد" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "نمی‌توان وضعیت گروه‌های هدف را به روز کرد" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "انتقال به دوره بعد" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "مرخصی‌های منتقل شده به دوره بعد" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "مرخصی اضطراری" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "علت شکایت" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "از طریق درخواست حضور و غیاب، وضعیت را از {0} به {1} تغییر داد" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "تغییر '{0}' به {1}." + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "تغییر KRA در این هدف والد، همه اهداف فرزند را در صورت وجود، با همان KRA هماهنگ می‌کند." + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "برای جزئیات بیشتر، Log خطا {0} را بررسی کنید." + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "ثبت ورود" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "ثبت خروج" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "موقعیت های خالی را در ایجاد پیشنهاد شغلی بررسی کنید" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "برای جزئیات بیشتر، {0} را بررسی کنید" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "ثبت ورود" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "تاریخ ورود" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "ثبت خروج" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "چک کردن تاریخ" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "گره‌های فرزند را فقط می‌توان تحت گره‌های نوع «گروهی» ایجاد کرد" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "مطالبه مزایا برای" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "مطالبه یک هزینه" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "مطالبه شده" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "مبلغ مطالبه شده" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "مطالبه‌ها" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "پاک شد" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "برای تغییر پیکربندی و سپس ذخیره مجدد فیش حقوقی، روی {0} کلیک کنید" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "بسته شده در" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "بسته می‌شود" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "بسته می‌شود:" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "یادداشت های پایانی" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "اطلاعات شرکت" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "درخواست مرخصی جبرانی" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "مرخصی جبرانی" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "در حال تکمیل آشناسازی" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr " خواص و مراجع کامپوننت" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "شرایط و فرمول" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "راهنمای شرایط و فرمول" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "شرایط و فرمول" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "متغیر شرایط و فرمول و مثال" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "کنفرانس" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "دوره مهلت را در نظر بگیرید" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "حضور مشخص در روزهای تعطیل را در نظر بگیرید" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "اعلامیه معافیت مالیاتی را در نظر بگیرید" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "در نظر گرفتن حضور و غیاب نامشخص به‌عنوان" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "تلفیق انواع مرخصی" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "شماره تماس" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "کپی دعوتنامه/اطلاعیه" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "برخی از فیش حقوقی ارسال نشد: {}" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "هدف به‌روزرسانی نشد" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "اهداف به‌روزرسانی نشد" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "دوره" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "معرفی نامه" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "ایجاد حقوق اضافی" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "ایجاد ارزیابی" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "ایجاد مصاحبه" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "ایجاد متقاضی شغل" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "ایجاد فرصت شغلی" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "ایجاد شناسه کارمند جدید" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "فیش حقوقی ایجاد کنید" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "ایجاد فیش حقوقی" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "ایجاد شیفت‌ها بعد از" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "ایجاد ارزیابی ها" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "ایجاد ثبت‌های پرداخت......" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "ایجاد فیش حقوقی ..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "ایجاد {0}..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "تاریخ ایجاد" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "ایجاد ناموفق بود" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "معیارهایی که بر اساس آن کارمند باید در بازخورد عملکرد و خود ارزیابی رتبه بندی شود" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr " واحد پول" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "واحد پول منتخب مالیات بر درآمد باید به جای {1} {0} باشد." + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "CTC فعلی" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "تعداد فعلی" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr " کارفرمای فعلی" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "عنوان شغلی فعلی" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "مالیات بر درآمد ماه جاری" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "مقدار کنونی کیلومتر شمار باید بیشتر از آخرین مقدار کیلومتر شمار باشد {0}" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr " مقدار کیلومتر شمار فعلی" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "افتتاحیه های فعلی" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "طبقه فعلی" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "تجربه کاری فعلی" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "در حال حاضر، هیچ دوره مرخصی {0} برای این تاریخ برای ایجاد/به‌روزرسانی تخصیص مرخصی وجود ندارد." + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "محدوده سفارشی" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "نام چرخه" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "چرخه ها" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "خلاصه کار روزانه" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "گروه خلاصه کار روزانه" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "کاربر گروه خلاصه کار روزانه" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "پاسخ های خلاصه کار روزانه" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "تاریخ تکرار می‌شود" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "تاریخ و دلیل" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "تاریخ‌ها بر اساس" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "روزهایی که باید معکوس شوند" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "تعداد روزهایی که باید معکوس شوند باید بزرگتر از صفر باشد." + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "بدهی شماره A/C" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "دسامبر" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "تصمیم در انتظار" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "اعلامیه ها" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "مبلغ اعلام شده" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "کسر مالیات کامل در تاریخ انتخاب شده حقوق و دستمزد" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "کسر مالیات برای اثبات معافیت مالیاتی ارائه نشده" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "کسر" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "گزارش‌های کسر" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "کسر از حقوق" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "کسر" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "کسورات قبل از محاسبه مالیات" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "مبلغ پیش‌فرض" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "با انتخاب این حالت، حساب پیش‌فرض بانک / نقدی به‌طور خودکار در ثبت دفتر روزنامه حقوق و دستمزد به‌روزرسانی می‌شود." + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "پرداخت پایه پیش‌فرض" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "حساب پیش‌پرداخت پیش‌فرض کارمند" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "حساب پرداختی پیش‌فرض برای مطالبه هزینه" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "حساب پرداختنی پیش فرض حقوق و دستمزد" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "ساختار حقوق و دستمزد پیش‌فرض" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "شیفت پیش‌فرض" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "حذف پیوست" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "حذف {0}" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "تأیید کننده دپارتمان" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "افتتاحیه های مبتنی بر دپارتمان" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "دپارتمان {0} متعلق به شرکت: {1} نیست" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "دپارتمان: {0}" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "تاریخ حرکت" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "بستگی به روزهای پرداخت دارد" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "بستگی به روزهای پرداخت دارد" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "شرح یک فرصت شغلی" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "مهارت نقش سازمانی" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "نقش سازمانی: {0}" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "جزئیات حامی مالی (نام، مکان)" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "ورود و خروج را تعیین کنید" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "برای جلوگیری از کسر دوبار مبلغ، {0} را برای مؤلفه {1} غیرفعال کنید، زیرا فرمول آن قبلاً از مؤلفه مبتنی بر روزهای پرداخت استفاده می‌کند." + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "برای ادامه، {0} یا {1} را غیرفعال کنید." + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "غیرفعال کردن اعلان‌های فوری..." + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "در ثبت‌های حسابداری لحاظ نشود" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "در مجموع لحاظ نشود" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "در مجموع لحاظ نشود" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "آیا می‌خواهید متقاضی شغل {0} را به عنوان {1} بر اساس این نتیجه مصاحبه به روز کنید؟" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "سند {0} ناموفق بود!" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "داخلی" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "حضور و غیاب تکراری" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "مطالبه تکراری شناسایی شد" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "درخواست شغلی تکراری" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "حقوق بازنویسی شده تکراری" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "تکرار کردن نگه‌داشت حقوق" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "خروج زودهنگام" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "خروج زود هنگام توسط" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "دوره مهلت خروج زودهنگام" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "خروج های زودهنگام" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "مرخصی کسب شده" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "فرکانس مرخصی کسب شده" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "مرخصی‌های به دست آمده" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "مرخصی‌های به دست آمده طبق فرکانس پیکربندی شده از طریق زمان‌بندی تخصیص داده می‌شوند." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "مرخصی‌های کسب‌شده به‌طور خودکار از طریق زمان‌بندی بر اساس تخصیص سالانه تنظیم‌شده در سیاست مرخصی تخصیص می‌یابند: {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "مرخصی‌های کسب‌شده، مرخصی‌هایی هستند که یک کارمند پس از کار کردن در شرکت برای مدت زمان معینی به دست می‌آورد. فعال کردن این گزینه، مرخصی‌ها را بر اساس نسبت کارکرد تخصیص داده و به‌صورت خودکار تخصیص مرخصی را در فواصل زمانی تعیین‌شده توسط 'تناوب مرخصی کسب‌شده' به‌روزرسانی می‌کند." + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "درآمد" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "جزء کسب درآمد" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "مؤلفه حقوق و دستمزد برای پاداش ارجاع کارمند مورد نیاز است." + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "درآمد" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "درآمد و کسر" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "مؤثر از" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "مؤثر تا" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "مؤثر از" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "ایمیل فیش حقوقی به کارمند" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "فیش حقوقی ایمیل" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "ایمیل ارسال شد به" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "ایمیل فیش حقوقی به کارمند ارسال می‌شود بر اساس ایمیل ترجیحی انتخاب شده در نمایه کارمند" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "شماره تهویه مطبوع کارمند" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "حساب پیش‌پرداخت کارمند" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "تراز پیش‌پرداخت کارمند" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "خلاصه پیش‌پرداخت کارمند" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "تجزیه و تحلیل کارکنان" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "ابزار حضور و غیاب کارکنان" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "درخواست مزایای کارکنان" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "جزئیات درخواست مزایای کارکنان" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "مطالبه مزایای کارکنان" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "جزئیات مزایای کارمندان" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "دفتر مزایای کارکنان" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "مزایای کارمندان" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "تولد کارمند" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "فعالیت شبانه روزی کارکنان" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "ثبت ورود کارمند" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "تاریخچه ورود کارمند" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "مرکز هزینه کارکنان" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "جزئیات کارمند" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "ایمیل های کارکنان" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "تنظیمات خروج کارمند" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "کارمند خارج می‌شود" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "معیارهای بازخورد کارکنان" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "رتبه بندی بازخورد کارکنان" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "درجه کارمند" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "شکایت کارکنان" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "بیمه سلامت کارکنان" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "استفاده از ساعات کار کارکنان بر اساس جدول زمانی" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "تصویر کارمند" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "مشوق کارکنان" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "اطلاعات کارمند" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "اطلاعات کارکنان" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "مسیر کارمند" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "تراز مرخصی کارکنان" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "خلاصه تراز مرخصی کارکنان" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "وام کارمند" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "نام‌گذاری کارکنان توسط" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "آشناسازی کارکنان" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "الگوی آشناسازی کارکنان" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "آشناسازی کارمند: {0} از قبل برای متقاضی شغل وجود دارد: {1}" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "سایر درآمدهای کارمند" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "بازخورد عملکرد کارکنان" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "ارتقای کارمند" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "جزئیات ارتقاء کارکنان" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "ارتقای کارمندی را نمی‌توان قبل از تاریخ ارتقاء ارسال کرد" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "تاریخچه اموال کارکنان" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "ارجاع کارمند" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "ارجاع کارمند {0} برای پاداش ارجاع قابل استفاده نیست." + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "معرفی‌نامه‌های کارمند" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr " کارمند مسئول" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "کارمند ابقا شد" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "جدایی کارکنان" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "الگوی جداسازی کارکنان" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "تنظیمات کارمند" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "مهارت کارمند" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "نقشه مهارت کارکنان" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "مهارت های کارمند" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "وضعیت کارمند" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "رده معافیت مالیاتی کارکنان" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "اعلامیه معافیت مالیاتی کارکنان" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "دسته بندی اظهارنامه معافیت مالیاتی کارکنان" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "ارائه مدرک معافیت مالیاتی کارکنان" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "جزئیات ارائه مدرک معافیت مالیاتی کارکنان" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "زیر مجموعه معافیت مالیاتی کارکنان" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "آموزش کارکنان" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "انتقال کارمند" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "جزئیات انتقال کارکنان" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "جزئیات انتقال کارکنان" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "انتقال کارمند را نمی‌توان قبل از تاریخ انتقال ارسال کرد" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "حساب پیش‌پرداخت کارمند {0} باید از نوع {1} باشد." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "در صورت اختصاص دادن یک کارمند، یا از طریق سری نام‌گذاری، می‌توان کارمند را با شناسه کارمند نام برد. ترجیح خود را در اینجا انتخاب کنید." + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "نام کارمند" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "رکوردهای کارمندان با استفاده از گزینه انتخاب شده ایجاد می‌شود" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "کارمند به دلیل عدم حضور کارمند، غایب علامت‌گذاری شد." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "کارمند به دلیل عدم رعایت آستانه ساعات کاری، غایب علامت‌گذاری شد." + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "کارمند {0} : {1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "کارمند {0} قبلاً یک درخواست حضور {1} دارد که با این دوره همپوشانی دارد" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "کارمند {0} از قبل شیفت فعال {1}: {2} دارد که در این بازه زمانی تداخل دارد." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "کارمند {0} قبلاً یک درخواست {1} برای دوره حقوق و دستمزد {2} ارسال کرده است" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "کارمند {0} قبلاً برای Shift {1}: {2} درخواست داده است که در این دوره همپوشانی دارد" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "کارمند {0} قبلاً برای {1} بین {2} و {3} درخواست داده است: {4}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "کارمند {0} فعال نیست یا وجود ندارد" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "کارمند {0} در تاریخ {1} در مرخصی است" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "کارمند {0} در شرکت کنندگان رویداد آموزشی یافت نشد." + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "کارمند {0} در نیم روز در {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "کارمند: {0} باید حداقل {1} سال را برای حق سنوات بگذراند" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "HTML کارکنان" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "کارمندانی که در تعطیلات کار می‌کنند" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "کارمندان نمی‌توانند به خودشان بازخورد بدهند. به جای آن از {0} استفاده کنید: {1}" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "کارمندان یادآور تعطیلات را از {} تا {} از دست خواهند داد.
    آیا می‌خواهید با این تغییر ادامه دهید؟" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "کارمندان بدون بازخورد: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "کارمندان بدون هدف: {0}" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "کارمندانی که در تعطیلات کار می‌کنند" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "نوع اشتغال" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "فعال کردن حضور و غیاب خودکار" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "فعال کردن علامت گذاری خروج زود هنگام" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "فعال کردن علامت گذاری ورود دیرهنگام" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "فعال کردن اعلان‌های فوری" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "فعال کردن اعلان‌های فوری..." + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "بازخرید" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "مبلغ بازخرید" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "روزهای بازخرید" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "طبق تنظیمات نوع مرخصی، روزهای بازخرید نمی‌توانند از {0} {1} تجاوز کنند" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "محدودیت بازخرید اعمال شد" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "فیش های حقوق را در ایمیل ها رمزگذاری کنید" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "تاریخ پایان نمی‌تواند قبل از تاریخ شروع باشد" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "تاریخ پایان: {0}" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "زمان پایان نمی‌تواند قبل از زمان شروع باشد" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "برای تعدیل، مقداری غیر از صفر وارد کنید." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "ساعات کاری استاندارد را برای یک روز کاری عادی وارد کنید. این ساعات در محاسبات گزارش‌هایی مانند استفاده از ساعت کارمندان و تجزیه و تحلیل سودآوری پروژه استفاده خواهد شد." + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "تعداد مرخصی‌هایی را که می‌خواهید برای دوره اختصاص دهید وارد کنید." + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "مبالغ مزایای سالانه را وارد کنید" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "{0}را وارد کنید" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "خطا در ایجاد {0}" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "خطا در حذف {0}" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "خطا در دانلود فایل PDF" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "خطا در فرمول یا شرایط" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "خطا در فرمول یا شرایط: {0} در صفحه مالیات بر درآمد" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "خطا در برخی ردیف ها" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "خطا در به‌روزرسانی {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "خطا هنگام ارزیابی {doctype} {doclink} در ردیف {row_id}.

    خطا: {خطا}

    نکته: {description}" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "هزینه تخمینی در هر موقعیت" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "ارزیابی" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "تاریخ ارزیابی" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "روش ارزیابی را نمی‌توان تغییر داد زیرا ارزیابی های موجود برای این چرخه ایجاد شده است" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "جزئیات رویداد" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "پیوند رویداد" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "مکان رویداد" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "نام رخداد" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "وضعیت رویداد" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "هر 2 هفته یکبار" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "هر 3 هفته یکبار" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "هر 4 هفته یکبار" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "هر ورود و خروج معتبر" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "هر هفته" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "همه، بیایید سالگرد کارشان را تبریک بگوییم!" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "همه، بیایید تولد {0} را تبریک بگوییم." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "امتحان" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "تعطیلات را حذف کنید" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "{0} مرخصی‌های غیرقابل بازخرید برای {1} مستثنی شد" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "معاف از مالیات بر درآمد" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "معافیت" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "دسته معافیت" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "مدارک معافیت" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "زیر مجموعه معافیت" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "خروج تأیید شد" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "جزئیات خروج" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "مصاحبه خروج" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "مصاحبه خروج در انتظار" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "خلاصه مصاحبه خروج" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "مصاحبه خروج {0} از قبل برای کارمند وجود دارد: {1}" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "پرسشنامه خروج" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "اعلان پرسشنامه خروج" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "الگوی اعلان پرسشنامه خروج" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "پرسشنامه خروج در انتظار است" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "فرم وب پرسشنامه خروج" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "میانگین امتیاز مورد انتظار" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "مورد انتظار توسط" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "غرامت مورد انتظار" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "محدوده حقوق مورد انتظار در ماه" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "مجموعه مهارت های مورد انتظار" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "مجموعه مهارت های مورد انتظار" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "تصویب کننده هزینه" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "تصویب کننده هزینه اجباری در مطالبه هزینه" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "حساب مطالبه هزینه" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "پیش‌پرداخت هزینه" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "جزئیات مطالبه هزینه" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "خلاصه مطالبه هزینه" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "نوع مطالبه هزینه" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "مطالبه هزینه برای لاگ وسیله نقلیه {0}" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "مطالبه هزینه {0} از قبل برای لاگ وسیله نقلیه وجود دارد" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "مطالبات هزینه" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "تاریخ هزینه" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "اثبات هزینه" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "هزینه ها و مالیات ها" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "نوع هزینه" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "هزینه ها و پیش‌پرداخت‌ها" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "منقضی تخصیص" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "انقضای مرخصی‌های منتقل شده به دوره بعد (بر حسب روز)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "مرخصی(های) منقضی شده" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "مرخصی‌های منقضی شده" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "توضیح" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "در حال برون‌بُرد..." + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "ایجاد/ارائه {0} برای کارمندان انجام نشد:" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "حذف پیش‌فرض‌ها برای کشور {0} ناموفق بود." + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "اعلان زمان‌بندی مجدد مصاحبه ارسال نشد. لطفا حساب ایمیل خود را پیکربندی کنید." + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "تنظیم پیش‌فرض‌ها برای کشور {0} ناموفق بود." + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "ناموفق در ارسال برخی از تخصیص‌های سیاست مرخصی:" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "به‌روزرسانی وضعیت متقاضی شغل ناموفق بود" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "جزئیات شکست" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "دلیل شکست" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "فوریه" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "تعداد بازخورد" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "بازخورد HTML" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "رتبه بندی بازخورد" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "الگوی اعلان یادآوری بازخورد" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "امتیاز بازخورد" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "بازخورد ارسال شد" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "خلاصه بازخورد" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "بازخورد قبلاً برای مصاحبه {0} ارسال شده است. لطفاً برای ادامه بازخورد مصاحبه قبلی {1} را لغو کنید." + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "بازخورد برای یک کارمند غایب قابل ثبت نیست." + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "بازخورد {0} با موفقیت اضافه شد" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "دریافت موقعیت جغرافیایی" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "واکشی کارکنان" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "دریافت موقعیت جغرافیایی شما" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "پیش‌نمایش فایل" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "فرم را پر کنید و ذخیره کنید" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "پر شده است" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "کارمندان را فیلتر کنید" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "تصمیم نهایی" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "نمره نهایی" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "فرمول امتیاز نهایی" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "اولین ورود و آخرین خروج" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "اولین روز" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr " نام کوچک" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "سال مالی {0} یافت نشد" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "مدیریت ناوگان" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "مزایای انعطاف‌پذیر" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "مزایای انعطاف‌پذیر" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "پرواز" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "FnF در انتظار" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "دنبال کردن از طریق ایمیل" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "غذا" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "برای نقش سازمانی " + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "برای کارمند" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "برای یک روز مرخصی گرفته شده، اگر باز هم (مثلا) 50 درصد حقوق روزانه را پرداخت می‌کنید، در این قسمت 0.50 را وارد کنید." + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "فرمول" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr " کسری از درآمد قابل اجرا" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "کسری از حقوق روزانه برای نیم روز" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "کسری از حقوق روزانه در هر مرخصی" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "هزینه کسری" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "از مبلغ" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "از تاریخ باید قبل از تا تاریخ باشد" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "از تاریخ {0} نمی‌تواند بعد از تاریخ معافیت کارمند {1} باشد" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "از تاریخ {0} نمی‌تواند قبل از تاریخ پیوستن کارمند {1} باشد" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "از تاریخ نمی‌تواند کمتر از تاریخ عضویت کارمند باشد" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "از تاریخ نمی‌تواند کمتر از تاریخ عضویت کارمند باشد." + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "از اینجا می‌توانید بازخرید را برای تراز مرخصی‌ها فعال کنید." + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "از {0} تا {1}" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "از (سال)" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "سرخابی" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "هزینه سوخت" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "هزینه های سوخت" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "قیمت سوخت" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "مقدار سوخت" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "دارایی کامل و نهایی" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "صورت‌حساب کامل و نهایی معوقات" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "تمام وقت" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "کاملا حمایت شده است" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "مبلغ تامین شده" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "مالیات بر درآمد آینده" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "تاریخ‌های آینده مجاز نیست" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "موقعیت جغرافیایی توسط مرورگر فعلی شما پشتیبانی نمی‌شود" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "دریافت جزئیات از اعلامیه" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "استخدام کارمندان" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "دریافت نیازمندی های شغلی" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "دریافت الگو" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "بدون گلوتن" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "رفتن به صفحه بازنشانی گذرواژه" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "تکمیل هدف (%)" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "امتیاز گل" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "امتیاز هدف (%)" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "امتیاز گل (وزن دار)" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "درصد پیشرفت هدف نمی‌تواند بیشتر از 100 باشد." + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "هدف باید با همان KRA به عنوان هدف اصلی آن همسو باشد." + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "هدف باید متعلق به همان کارمندی باشد که هدف اصلی آن است." + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "هدف باید متعلق به همان چرخه ارزیابی باشد که هدف اصلی آن است." + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "هدف با موفقیت به روز شد" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "اهداف با موفقیت به روز شدند" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "مقطع تحصیلی" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "حق سنوات" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "مؤلفه قابل اعمال حق سنوات" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "قانون حق سنوات" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "طبقه قانون حق سنوات" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "شکایت" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "شکایت علیه" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "شکایت از طرف" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "جزئیات شکایت" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "نوع شکایت" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "پرداخت ناخالص" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "دستمزد ناخالص (ارز شرکت)" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "سال ناخالص تا به امروز" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "سال ناخالص تا به امروز (ارز شرکت)" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "پیشرفت هدف گروه به صورت خودکار بر اساس اهداف فرزند محاسبه می‌شود." + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "منابع انسانی" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "منابع انسانی و حقوق و دستمزد" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "تنظیمات منابع انسانی و حقوق و دستمزد" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "داشبورد منابع انسانی" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "تنظیمات منابع انسانی" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "سیستم مدیریت منابع انسانی" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "نیم روز" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "تاریخ نیم روز" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "تاریخ نیم روز اجباری است" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "تاریخ نیم روز باید بین از تاریخ و تا تاریخ باشد" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "تاریخ نیم روز باید بین تاریخ کار از تاریخ و تاریخ پایان کار باشد" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "رکوردهای نیم روز" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "تاریخ نیم روز باید بین تاریخ و تا تاریخ باشد" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "دارای گواهینامه" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "بیمه سلامت" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "نام بیمه سلامت" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "شماره بیمه سلامت" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "ارائه دهنده بیمه سلامت" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "سلام {}! این ایمیل برای یادآوری تعطیلات آینده است." + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "سلام، {0}👋" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "تعداد استخدام" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "تنظیمات استخدام" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "لیست تعطیلات برای مرخصی اختیاری" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "تعطیلات این ماه" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "تعطیلات این هفته" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "نرخ ساعت (ارز شرکت)" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "روزهای پرداختی اجاره خانه با {0} تداخل دارند" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "تاریخ اجاره خانه برای محاسبه معافیت الزامی است" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "تاریخ اجاره خانه باید حداقل 15 روز فاصله داشته باشد" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "IFSC" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "کد IFSC" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "ورود" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "تشخیص شماره سند" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "نوع مدرک شناسایی" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "در صورت بررسی، حقوق و دستمزد قابل پرداخت برای هر کارمند رزرو می‌شود" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "در صورت علامت زدن، قسمت Rounded Total را در فیش حقوقی پنهان و غیرفعال کنید" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "در صورت بررسی، کل مبلغ قبل از محاسبه مالیات بر درآمد بدون اظهارنامه یا ارائه مدرک از درآمد مشمول مالیات کسر خواهد شد." + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "در صورت فعال بودن، اظهارنامه معافیت مالیاتی برای محاسبه مالیات بر درآمد در نظر گرفته می‌شود." + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "در صورت فعال بودن، حضور و غیاب خودکار در روزهای تعطیل در صورت وجود اعلام حضور کارکنان مشخص می‌شود" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "در صورت فعال بودن، روزهای پرداخت را برای غیبت در روزهای تعطیل کسر می‌کند. به طور پیش‌فرض، تعطیلات به عنوان پولی در نظر گرفته می‌شود" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "اگر فعال باشد، مؤلفه به‌عنوان مؤلفه مالیاتی در نظر گرفته می‌شود و مقدار آن به‌طور خودکار طبق صفحه‌های مالیات بر درآمد پیکربندی‌شده محاسبه می‌شود." + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "اگر فعال باشد، جزء در گزارش کسر مالیات بر درآمد در نظر گرفته می‌شود" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "در صورت فعال بودن، در صورت صفر بودن مبلغ، جزء در فیش حقوقی نمایش داده نمی‌شود" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr " در صورت فعال بودن، مقدار مشخص شده یا محاسبه شده در این جزء به درآمدها یا کسرها کمک نمی‌کند. با این حال، ارزش آن را می‌توان با مؤلفه های دیگری که می‌توان اضافه یا کسر کرد، ارجاع داد." + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "در صورت فعال بودن، تعداد کل. روزهای کاری شامل تعطیلات می‌شود و این باعث کاهش ارزش حقوق در روز می‌شود" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "اگر علامت زده نشود، فهرست باید به هر بخش که باید اعمال شود اضافه شود." + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr " در صورت انتخاب، مقدار مشخص شده یا محاسبه شده در این جزء به درآمد یا کسر کمک نمی‌کند. با این حال، ارزش آن را می‌توان با مؤلفه های دیگری که می‌توان اضافه یا کسر کرد، ارجاع داد." + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "در صورت تنظیم، فرصت شغلی پس از این تاریخ به طور خودکار بسته می‌شود" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "اگر از وام‌ها در فیش‌های حقوق استفاده می‌کنید، لطفاً برنامه {0} را از Frappe Cloud Marketplace یا GitHub نصب کنید تا به استفاده از ادغام وام با حقوق و دستمزد ادامه دهید." + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "درون‌بُرد حضور و غیاب" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "به موقع" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "در صورت بروز هرگونه خطایی در طول این فرآیند پس‌زمینه، سیستم نظری در مورد خطا در این ثبت حقوق و دستمزد اضافه می‌کند و به وضعیت ارسال شده باز می گردد" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "مشوق" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "مبلغ تشویقی" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "شامل فرزندان شرکت می‌شود" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "شامل تعطیلات" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "شامل تعطیلات در تعداد کل. از روزهای کاری" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "تعطیلات بین مرخصی‌ها را به‌عنوان مرخصی محسوب کن" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "منبع درآمد" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "مبلغ مالیات بر درآمد" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "تفکیک مالیات بر درآمد" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "مؤلفه مالیات بر درآمد" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "محاسبه مالیات بر درآمد" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "مالیات بر درآمد تا تاریخ کسر شده است" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "کسر مالیات بر درآمد" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "طبقه مالیات بر درآمد" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "سایر هزینه های طبقه مالیات بر درآمد" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "طبقه مالیات بر درآمد باید در تاریخ شروع دوره حقوق و دستمزد یا قبل از آن مؤثر باشد: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "صفحه مالیات بر درآمد در تخصیص ساختار حقوق تنظیم نشده است: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "طبقه مالیات بر درآمد: {0} غیرفعال است" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "درآمد از منابع دیگر" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "تخصیص وزن نادرست" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "تعداد مرخصی‌هایی را نشان می‌دهد که نمی‌توان از مانده مرخصی بازخرید کرد. به عنوان مثال، با مانده مرخصی 10 و 4 مرخصی غیرقابل بازخرید، می‌توانید 6 مرخصی را بازخرید کنید، در حالی که 4 مرخصی باقی مانده را می‌توان انتقال به دوره بعد یا منقضی کرد" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "بازرسی" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "نصب" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "نصب Frappe HR" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "تراز ناکافی" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "موجودی مرخصی ناکافی برای نوع مرخصی {0}" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "مبلغ بهره" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "حساب درآمد بهره" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "کارآموز" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "بین المللی" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "اینترنت" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "مصاحبه" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "جزئیات مصاحبه" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "جزئیات مصاحبه" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "بازخورد مصاحبه" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "یادآوری بازخورد مصاحبه" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "بازخورد مصاحبه {0} با موفقیت ارسال شد" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "زمان مصاحبه مجدد انجام نشد" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "یادآوری مصاحبه" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "الگوی اعلان یادآوری مصاحبه" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "زمان مصاحبه با موفقیت تغییر کرد" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "مرحله مصاحبه" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "مرحله مصاحبه {0} فقط برای نقش سازمانی {1} قابل اجرا است" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "مرحله مصاحبه {0} فقط برای تعیین {1} است. متقاضی کار برای نقش {2} درخواست داده است" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "تاریخ زمان‌بندی شده مصاحبه" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "وضعیت مصاحبه" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "خلاصه مصاحبه" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "نوع مصاحبه" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "مصاحبه: {0} زمان‌بندی مجدد شد" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "مصاحبه کننده" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "مصاحبه کنندگان" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "مصاحبه ها" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "مصاحبه‌ها (این هفته)" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "حقوق اضافی نامعتبر" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "تاریخ‌های نامعتبر" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "ثبت دفتر مرخصی نامعتبر" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "حساب پرداختی حقوق و دستمزد نامعتبر است. واحد پول حساب باید {0} یا {1} باشد" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "زمان‌های شیفت نامعتبر است" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "پارامترهای نامعتبر ارائه شده است. لطفا آرگومان های مورد نیاز را ارسال کنید." + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "بررسی شد" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "جزئیات تحقیق" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "دعوت کرد" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "شماره فاکتور" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "برای پاداش ارجاع قابل استفاده است" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "قابل انتقال به دوره بعد است" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "جبرانی است" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "مرخصی جبرانی است" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "مرخصی به دست آمده است" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "باطل شده" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "مزایای انعطاف‌پذیر است" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "مؤلفه مالیات بر درآمد است" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "مرخصی بدون حقوق است" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "مرخصی اختیاری است" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "مرخصی با حقوق جزئی است" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "تکراری است" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "حقوق اضافی تکراری است" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "آیا حقوق نگه‌داشته شده است" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "آیا مالیات قابل اعمال است" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "ژان" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "متقاضی کار" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "منبع متقاضی کار" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "متقاضی کار {0} با موفقیت ایجاد شد." + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "متقاضیان کار مجاز به حضور دو بار برای یک مرحله مصاحبه نیستند. مصاحبه {0} از قبل برای متقاضی شغل برنامه‌ریزی شده است {1}" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "درخواست کار" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "مسیر درخواست شغل" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "شرح شغل" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "پیشنهاد کار" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "مدت پیشنهاد کار" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "قالب مدت پیشنهاد کار" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "شرایط پیشنهاد کار" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "وضعیت پیشنهاد شغلی" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "Job Offer: {0} قبلاً برای متقاضی شغل است: {1}" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "موقعیت شغلی" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "همکار افتتاحیه کار" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "فرصت های شغلی" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "فرصت های شغلی برای نقش سازمانی {0} در حال حاضر باز است یا طبق طرح کارگزینی {1} استخدام کامل شده است" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "درخواست شغل" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "درخواست شغل {0} با افتتاحیه شغل {1} مرتبط شده است" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "مشخصات شغلی، مدارک مورد نیاز و غیره" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "شغل ها" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "تاریخ عضویت" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "جولای" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "ژوئن" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "KRA" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "روش ارزیابی KRA" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "KRA برای همه اهداف فرزند به روز شد." + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "KRA در مقابل اهداف" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "KRA ها" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "حوزه عملکرد کلیدی" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "حوزه مسئولیت کلیدی" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "منطقه نتیجه کلیدی" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "روز آخر" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "آخرین همگام‌سازی موفقیت‌آمیز شناسایی کارمند. این را فقط در صورتی بازنشانی کنید که مطمئن باشید همه گزارش‌ها از همه مکان‌ها همگام‌سازی شده‌اند. لطفاً اگر مطمئن نیستید این را اصلاح نکنید." + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr " آخرین مقدار کیلومتر شمار" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "آخرین همگام سازی ورود" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "آخرین {0} در {1} بود" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "ورودهای دیرهنگام" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "ورود دیرهنگام" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "تنظیمات ورود دیرهنگام و خروج زود هنگام برای حضور خودکار" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "ورود دیرهنگام توسط" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "دوره مهلت ورود دیرهنگام" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "عرض جغرافیایی: {0}°" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "مرخصی" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "تعدیل مرخصی" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "تخصیص مرخصی" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "تخصیص مرخصی وجود دارد" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "تخصیص‌های مرخصی" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "درخواست مرخصی" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "دوره درخواست مرخصی نمی‌تواند بین دو تخصیص مرخصی غیر متوالی {0} و {1} باشد." + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "اعلان تأیید مرخصی" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "الگوی اعلان تأیید مرخصی" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "تأیید کننده مرخصی" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "تأیید کننده مرخصی اجباری در درخواست مرخصی" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "نام تأییدکننده مرخصی" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "تراز مرخصی" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "باقیمانده قبل از درخواست" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "لیست انسداد مرخصی" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "لیست بلاک مرخصی مجاز" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "لیست بلاک مرخصی مجاز" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "تاریخ لیست انسداد مرخصی" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "تاریخ‌های لیست انسداد مرخصی" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "نام لیست انسداد مرخصی" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "مرخصی مسدود شده" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "کنترل پنل مرخصی" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "جزئیات مرخصی" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "بازخرید مرخصی" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "مبلغ بازخرید مرخصی در روز" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "تاریخچه مرخصی" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "دفتر مرخصی" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "ثبت دفتر مرخصی" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "دوره مرخصی" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "سیاست مرخصی" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "تخصیص سیاست مرخصی" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "همپوشانی تخصیص سیاست مرخصی" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "جزئیات سیاست مرخصی" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "جزئیات سیاست مرخصی" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "سیاست مرخصی: {0} قبلاً به کارمند {1} برای دوره {2} تا {3} اختصاص داده شده است" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "اعلان وضعیت مرخصی" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "الگوی اعلان وضعیت مرخصی" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "نوع مرخصی" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "نام نوع مرخصی" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "نوع مرخصی می‌تواند مرخصی جبرانی یا اکتسابی باشد." + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "نوع مرخصی می‌تواند بدون حقوق یا پرداخت جزئی باشد" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "نوع مرخصی اجباری است" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "نوع مرخصی {0} قابل تخصیص نیست زیرا مرخصی بدون حقوق است" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "نوع مرخصی {0} قابل انتقال به دوره بعد نیست" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "نوع مرخصی {0} قابل بازخرید نیست" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "مرخصی بدون حقوق" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "مرخصی بدون حقوق با رکوردهای تأیید شده {} مطابقت ندارد" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "تخصیص مرخصی {0} با برنامه مرخصی {1} پیوند داده شده است" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "مرخصی قبلاً برای این تخصیص سیاست مرخصی اختصاص داده شده است" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "تنظیمات مرخصی و مطالبه هزینه" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "درخواست مرخصی با تخصیص مرخصی {0} پیوند داده شده است. درخواست مرخصی را نمی‌توان به عنوان مرخصی بدون حقوق تنظیم کرد" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "مرخصی را نمی‌توان قبل از {0} تخصیص داد، زیرا تراز مرخصی قبلاً در سابقه تخصیص مرخصی آینده منتقل به دوره بعد شده است {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "مرخصی قبل از {0} قابل اعمال/لغو نیست، زیرا تراز مرخصی قبلاً در سابقه تخصیص مرخصی آینده منتقل به دوره بعد شده است {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "خروج از نوع {0} نمی‌تواند بیشتر از {1} باشد." + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "مرخصی (ها) منقضی شده است" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "مرخصی (ها) در انتظار تأیید" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "مرخصی (ها) گرفته شده است" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "مرخصی‌ها" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "مرخصی‌ها و تعطیلات" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "مرخصی‌ها پس از تعدیل" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "مرخصی اختصاص داده شده است" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "مرخصی‌ها منقضی شده‌اند" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "مرخصی‌های در انتظار تأیید" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "مرخصی‌های نوع مرخصی {0} منتقل نمی‌شوند زیرا انتقال به دوره بعد غیرفعال است." + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "مرخصی در سال" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "مرخصی‌هایی که می‌توانید در مقابل تعطیلاتی که در آن کار کرده‌اید استفاده کنید. شما می‌توانید مرخصی جبرانی را با استفاده از درخواست مرخصی جبرانی مطالبه کنید. برای کسب اطلاعات بیشتر روی {0} کلیک کنید" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "چپ" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "چرخه حیات" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "لیمویی" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "چرخه را پیوند دهید و KRA را به هدف خود تگ کنید تا امتیاز گل ارزیابی بر اساس پیشرفت گل به روز شود." + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "پروژه پیوند شده {} و تسک‌ها حذف شدند." + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "حساب وام" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "محصول وام" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "بازپرداخت وام" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "ثبت بازپرداخت وام" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "وام از حقوق کارمند {0} قابل بازپرداخت نیست زیرا حقوق به ارز {1} پردازش می‌شود" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "مکان‌یابی..." + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "مکان / شناسه دستگاه" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "اسکان مورد نیاز" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "نوع لاگ" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "نوع لاگ برای اعلام حضور در شیفت: {0} مورد نیاز است." + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "طول جغرافیایی: {0}°" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "محدوده پایین" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "MICR" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "ایجاد ثبت بانکی" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "فیلدهای اجباری مورد نیاز برای این اقدام:" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "رتبه بندی دستی" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "دستی" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "مارس" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "حضور و غیاب را علامت بزنید" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "حضور خودکار در روزهای تعطیل را علامت بزنید" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "علامت گذاری به عنوان تکمیل شده" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "علامت گذاری به عنوان در حال انجام" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "علامت گذاری به عنوان {0}" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "حضور در تاریخ‌های انتخابی به‌عنوان {0} برای {1} علامت‌گذاری شود؟" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "حضور و غیاب را بر اساس «اعلام حضور کارکنان» برای کارکنانی که به این شیفت اختصاص داده شده اند، علامت بزنید." + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "علامت گذاری {0} به عنوان تکمیل شده؟" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "{0} {1} به عنوان {2} علامت‌گذاری شود؟" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "حضور مشخص" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "HTML حضور و غیاب مشخص شده است" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "مشخص کردن حضور و غیاب" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "حداکثر مبلغ مزایا" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "حداکثر مبلغ مزایا (سالانه)" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "حداکثر مزایا (مبلغ)" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "حداکثر مزایا (سالانه)" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "حداکثر مبلغ معافیت" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "حداکثر مقدار معافیت نمی‌تواند بیشتر از حداکثر مقدار معافیت {0} از رده معافیت مالیاتی {1} باشد." + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "حداکثر درآمد مشمول مالیات" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "حداکثر ساعت کاری در برابر Timesheet" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "حداکثر مرخصی‌های منتقل شده به دوره بعد" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "حداکثر مرخصی‌های متوالی مجاز" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "از حداکثر مرخصی‌های متوالی بیشتر شد" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "حداکثر مرخصی‌های قابل بازخرید" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "حداکثر مبلغ معافیت" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "حداکثر مبلغ معافیت" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "حداکثر تخصیص مرخصی مجاز در هر دوره مرخصی" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "حداکثر مرخصی‌های قابل بازخرید برای {0} {1} است" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "حداکثر مرخصی مجاز در نوع مرخصی {0} {1} است" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "می" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "ترجیح غذا" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "پزشکی" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "مسافت پیموده شده" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "حداقل درآمد مشمول مالیات" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "حداقل سال برای حق سنوات" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "حداقل روزهای کاری مورد نیاز از تاریخ پیوستن برای درخواست این مرخصی" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "از دست رفته تاریخ برکناری" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "طبقه مالیاتی گم شده" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "حالت سفر" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "نحوه پرداخت برای پرداخت الزامی است" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "ماه به تاریخ" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "ماه تا به امروز (ارز شرکت)" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "برگه حضور و غیاب ماهانه" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "بیش از یک انتخاب برای {0} مجاز نیست" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "حقوق اضافی چندگانه با ویژگی رونویسی برای مؤلفه حقوق {0} بین {1} و {2} وجود دارد." + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "تخصیص شیفت چندگانه" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "پیش‌پرداخت‌های من" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "مطالبات من" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "مرخصی‌های من" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "درخواست‌های من" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "خطای نام" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "نام سازمان دهنده" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "پرداخت خالص" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "پرداخت خالص (ارز شرکت)" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "اطلاعات پرداخت خالص" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "پرداخت خالص نمی‌تواند کمتر از 0 باشد" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "مبلغ خالص حقوق" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "پرداخت خالص نمی‌تواند منفی باشد" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "شناسه کارمند جدید" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "بازخورد جدید" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "استخدام‌های جدید (این ماه)" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "مرخصی(های) جدید اختصاص داده شد" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "مرخصی‌های جدید تخصیص داده شده" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "مرخصی‌های جدید اختصاص داده شده (بر حسب روز)" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "تخصیص‌های شیفت جدید پس از این تاریخ ایجاد خواهد شد." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "هیچ کارمندی پیدا نشد" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "هیچ کارمندی برای مقدار فیلد کارمند داده شده پیدا نشد. '{}': {}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "هیچ کارمندی انتخاب نشد" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "هیچ مصاحبه ای زمان‌بندی نشده است." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "هیچ دوره مرخصی یافت نشد" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "هیچ مرخصی به کارمند اختصاص داده نشده است: {0} برای نوع مرخصی: {1}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "هیچ فیش حقوقی برای کارمند: {0} یافت نشد" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "هیچ ساختار حقوقی به کارمند {0} در تاریخ معین {1} اختصاص داده نشده است" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "بدون ساختار حقوق و دستمزد" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "هیچ درخواست شیفتی انتخاب نشد" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "هیچ طرح کارگزینی برای این نقش سازمانی یافت نشد" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "هیچ ساختار حقوق و دستمزد فعال یا پیش‌فرض برای کارمند {0} برای تاریخ‌های داده شده یافت نشد" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "هیچ هزینه اضافی اضافه نشده است" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "هیچ پیش‌پرداختی یافت نشد" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "هیچ سابقه حضور و غیابی برای این معیار یافت نشد." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "هیچ سابقه حضور و غیابی یافت نشد." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "هیچ سابقه حضور و غیابی برای ایجاد وجود ندارد" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "هیچ تغییری در زمان‌بندی یافت نشد." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "هیچ کارمندی پیدا نشد" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "هیچ کارمندی برای معیارهای ذکر شده یافت نشد:
    شرکت: {0}
    واحد پول: {1}
    حساب پرداختنی حقوق و دستمزد: {2}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "هیچ کارمندی برای معیارهای انتخابی یافت نشد" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "هیچ کارمندی با فیلترهای انتخابی و ساختار حقوق فعال یافت نشد" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "هیچ هزینه ای اضافه نشده است" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "هیچ موردی انتخاب نشده است" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "در تاریخ مشخص شده، هیچ تخصیص مرخصی برای {0} برای {1} یافت نشد." + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "هیچ سابقه مرخصی برای کارمند {0} در {1} یافت نشد" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "هیچ مرخصی‌ اختصاص داده نشده است." + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "به‌روزرسانی بیشتری وجود ندارد" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "شماره از موقعیت ها" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "هیچ پاسخی از طرف" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "هیچ فیش حقوقی برای ارائه برای معیارهای انتخابی بالا یا فیش حقوقی که قبلاً ارسال شده است یافت نشد" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "فیش حقوقی پیدا نشد" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "هیچ مالیاتی اضافه نشده است" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "هیچ {0} اضافه نشده است" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "غیر دفتر خاطرات" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "درآمدهای غیر مشمول مالیات" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "ساعات غیر صورتحساب" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "ساعات کاری بدون صورتحساب (NB)" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "مرخصی‌های غیرقابل بازخرید" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "غیر گیاهخوار" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "توجه: شیفت در رکوردهای حضور و غیاب موجود بازنویسی نخواهد شد" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "توجه: مجموع مرخصی‌های تخصیص‌یافته {0} نباید کمتر از مرخصی‌های تأیید شده قبلی {1} برای دوره باشد" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "چیزی برای تغییر نیست" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "دوره اطلاعیه" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "الگوی اعلان" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "از طریق ایمیل به کاربران اطلاع دهید" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "نوامبر" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "تعداد کارکنان" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "تعداد موقعیت ها" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "تعداد مرخصی‌ها" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "تعداد چرخه‌های نگه‌داشت" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "تعداد مرخصی‌های واجد شرایط برای بازخرید بر اساس تنظیمات نوع مرخصی" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "کد یکبار مصرف" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "خروج" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "میانگین امتیاز به دست آمده است" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "اکتبر" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "خواندن کیلومترشمار" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "مقدار کیلومتر شمار" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "خارج از شیفت" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "خارج از شیفت" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "مدت پیشنهاد" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "شرایط پیشنهاد" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "در تاریخ" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "در حال انجام وظیفه" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "در مرخصی" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "آشناسازی" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "فعالیت‌های آشناسازی" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "آشناسازی شروع می‌شود" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "فقط تأیید کنندگان می‌توانند این درخواست را تأیید کنند." + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "فقط مدارک تکمیل شده قابل ارسال است" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "فقط شکایت کارمند با وضعیت {0} یا {1} قابل ارسال است" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "فقط مصاحبه کننده مجاز به ارسال بازخورد مصاحبه است" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "فقط مصاحبه هایی با وضعیت پاک شده یا رد شده می‌توانند ارسال شوند." + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "فقط برنامه‌های کاربردی با وضعیت \"تأیید شده\" و \"رد شده\" قابل ارسال هستند" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "فقط درخواست Shift با وضعیت \"تأیید\" و \"رد شده\" قابل ارسال است" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "فقط تخصیص منقضی شده قابل لغو است" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "فقط مصاحبه کنندگان می‌توانند بازخورد ارسال کنند" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "فقط کاربران دارای نقش {0} می‌توانند برنامه‌های مرخصی دارای تاریخ را ایجاد کنند" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "فقط {0} هدف می‌تواند {1} باشد" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "باز و تأیید شده" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "اکنون باز کنید" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "افتتاحیه بسته شده." + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "فهرست تعطیلات اختیاری برای دوره مرخصی {0} تنظیم نشده است" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "مرخصی‌های اختیاری تعطیلاتی هستند که کارمندان می‌توانند از لیست تعطیلات منتشر شده توسط شرکت استفاده کنند." + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "چارت سازمانی" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "سایر مالیات ها و هزینه ها" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "سایر" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "زمان خارج شدن" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "حقوق خروجی" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "بیش از تخصیص" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "درخواست حضور و غیاب همپوشانی" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "حضور و غیاب شیفت همپوشانی" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "درخواست‌های شیفت همپوشانی" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "شیفت های همپوشانی" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "اضافه کاری" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "محاسبه مبلغ اضافه کاری" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "جزئیات اضافه کاری" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "مدت زمان اضافه کاری" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "فیش اضافه کاری" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "بازنویسی مبلغ ساختار حقوق و دستمزد" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "شماره PAN" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "حساب PF" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "مبلغ PF" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "وام PF" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "اعلان PWA" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "از طریق فیش حقوقی پرداخت می‌شود" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "هدف والد" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "پاره وقت" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "تا حدی حمایت مالی شده است، نیاز به بودجه جزئی دارد" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "تا حدی مطالبه شده و بازگردانده شده است" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "سیاست گذرواژه" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "خط مشی گذرواژه نمی‌تواند حاوی فاصله یا خط تیره همزمان باشد. قالب به طور خودکار بازسازی خواهد شد" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "خط مشی گذرواژه برای فیش حقوقی تنظیم نشده است" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "پرداخت از طریق ثبت پرداخت" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "پرداخت از طریق فیش حقوقی" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "حساب پرداختنی برای ارسال مطالبه هزینه الزامی است" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "حساب پرداخت اجباری است" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "تاریخ پرداخت" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "روزهای پرداخت" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "راهنمای محاسبه روزهای پرداخت" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "وابستگی روزهای پرداخت" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "پرداخت و حسابداری" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "پرداخت {0} از {1} به {2}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "حقوق و دستمزد" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "حقوق و دستمزد بر اساس" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "اصلاح حقوق و دستمزد" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "مرکز هزینه حقوق و دستمزد" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "مراکز هزینه حقوق و دستمزد" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "داشبورد حقوق و دستمزد" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "تاریخ حقوق و دستمزد" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "جزئیات حقوق و دستمزد کارکنان" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "لغو ورود حقوق و دستمزد در صف است. ممکن است چند دقیقه طول بکشد" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "فرکانس حقوق و دستمزد" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "اطلاعات حقوق و دستمزد" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "شماره حقوق و دستمزد" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "حساب پرداختنی حقوق و دستمزد" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "دوره حقوق و دستمزد" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "تاریخ دوره حقوق و دستمزد" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "دوره های حقوق و دستمزد" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "گزارش حقوق و دستمزد" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "تنظیمات حقوق و دستمزد" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "تاریخ حقوق و دستمزد نمی‌تواند بیشتر از تاریخ معافیت کارمند باشد." + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "تاریخ حقوق و دستمزد نمی‌تواند کمتر از تاریخ عضویت کارمند باشد." + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "FnF در انتظار" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "مصاحبه های در انتظار" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "پرسشنامه های در انتظار" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "درصد کسر" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "کارایی" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "لغو {0} برای همیشه" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "ارسال {0} برای همیشه" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "تکه کاری" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "تعداد پوزیشن های برنامه‌ریزی شده" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "لطفاً حضور و غیاب خودکار را فعال کنید و ابتدا تنظیمات را کامل کنید." + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "لطفا ابتدا شرکت را انتخاب کنید" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "لطفاً ابتدا یک ساختار حقوق و دستمزد برای کارمند {0} اختصاص دهید که از {1} یا قبل از آن اعمال می‌شود." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "لطفاً پس از اتمام دوره آموزشی خود را تأیید کنید" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "لطفاً ابتدا یک {0} جدید برای تاریخ {1} ایجاد کنید." + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "لطفاً برای لغو این سند، کارمند {0} را حذف کنید" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "لطفاً قبل از ایجاد گروه خلاصه کار روزانه، حساب ورودی پیش‌فرض را فعال کنید" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "لطفا نقش سازمانی را وارد کنید" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "لطفا پیوست را ببینید" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "لطفاً شرکت و نقش سازمانی را انتخاب کنید" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "لطفاً کارمند را انتخاب کنید" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "لطفا ابتدا کارمند را انتخاب کنید." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "لطفا زمان‌بندی شیفت و تاریخ(های) تخصیص را انتخاب کنید." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "لطفا نوع شیفت و تاریخ(های) اختصاص را انتخاب کنید." + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "لطفا ابتدا یک شرکت را انتخاب کنید" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "لطفا ابتدا یک شرکت را انتخاب کنید." + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "لطفا یک فایل csv انتخاب کنید" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "لطفا تاریخ را انتخاب کنید" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "لطفاً یک متقاضی را انتخاب کنید" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "لطفا حداقل یک درخواست شیفت برای انجام این کار انتخاب کنید." + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "لطفا حداقل یک کارمند را برای انجام این کار انتخاب کنید." + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "لطفا حداقل یک ردیف را برای انجام این کار انتخاب کنید." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "لطفا شرکت را انتخاب کنید." + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "لطفا ابتدا کارمند را انتخاب کنید" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "لطفاً کارکنانی را برای ایجاد ارزیابی انتخاب کنید" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "لطفا ماه و سال را انتخاب کنید." + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "لطفا ابتدا چرخه ارزیابی را انتخاب کنید." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "لطفا وضعیت حضور و غیاب را انتخاب کنید." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "لطفاً کارمندانی را که می‌خواهید حضور و غیاب‌شان را مشخص‌ کنید، انتخاب کنید." + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "لطفا فیش حقوقی را برای ایمیل انتخاب کنید" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "لطفاً «حساب پرداختنی پیش‌فرض حقوق و دستمزد» را در پیش‌فرض‌های شرکت تنظیم کنید" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "لطفاً جزء اصلی و HRA را در شرکت {0} تنظیم کنید" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "لطفاً مؤلفه درآمد را برای نوع مرخصی تنظیم کنید: {0}." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "لطفاً حقوق و دستمزد را بر اساس تنظیمات حقوق و دستمزد تنظیم کنید" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "لطفاً تاریخ تخفیف را برای کارمند تنظیم کنید: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "لطفاً حساب را در مؤلفه حقوق و دستمزد {0} تنظیم کنید" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "لطفاً الگوی پیش‌فرض را برای اعلان تأیید خروج در تنظیمات منابع انسانی تنظیم کنید." + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "لطفاً الگوی پیش‌فرض را برای اعلان وضعیت مرخصی در تنظیمات HR تنظیم کنید." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "لطفاً الگوی ارزیابی را برای همه {0} تنظیم کنید یا الگو را در جدول کارکنان زیر انتخاب کنید." + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "لطفا شرکت را تنظیم کنید" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "لطفاً تاریخ عضویت را برای کارمند تعیین کنید {0}" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "لطفا لیست تعطیلات را تنظیم کنید." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "لطفا محدوده تاریخ را تعیین کنید." + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "لطفاً تاریخ معافیت کارمند را تعیین کنید {0}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "لطفاً {0} و {1} را در {2} تنظیم کنید." + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "لطفاً {0} را برای کارمند {1} تنظیم کنید" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "لطفاً {0} را برای کارمند تنظیم کنید: {1}" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "لطفاً {0} را تنظیم کنید." + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "لطفاً سیستم نام‌گذاری کارکنان را در منابع انسانی > تنظیمات منابع انسانی راه‌اندازی کنید" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "لطفاً سری شماره‌گذاری را برای حضور و غیاب از طریق Setup > Numbering Series تنظیم کنید" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "لطفاً با کلیک بر روی \"بازخورد آموزشی\" و سپس \"جدید\" دیدگاه‌ها خود را در مورد آموزش به اشتراک بگذارید." + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "لطفا متقاضی کار را مشخص کنید تا به روز شود." + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "لطفاً {0} و {1} (در صورت وجود) را برای محاسبه صحیح مالیات در فیش های حقوقی آینده مشخص کنید." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "لطفاً قبل از علامت گذاری چرخه به عنوان تکمیل شده، {0} را ارسال کنید" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "لطفا وضعیت خود را برای این رویداد آموزشی به روز کنید" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "نوشته شده در" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "تاریخ ارسال" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "منطقه ترجیحی برای اقامت" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "حاضر" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "رکوردهای حاضر" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "جلوگیری از خود تأییدی درخواست‌های مرخصی حتی اگر کاربر مجوز داشته باشد" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "پیش‌نمایش فیش حقوقی" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "مبلغ اصلی" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "چاپ شده در {0}" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "مرخصی استحقاقی" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "تحت مراقبت" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "دوره آزمایشی" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "پردازش حضور و غیاب پس از" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "پردازش ثبت حسابداری حقوق و دستمزد بر اساس کارمند" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "پردازش درخواست‌های شیفت" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "بازخرید مرخصی استفاده‌نشده را از طریق سند پرداخت جداگانه انجام دهید، نه فیش حقوقی" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "کسر مالیات حرفه ای" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "مهارت" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "سود" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "سودآوری پروژه" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "ارتقا" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "تاریخ ارتقاء" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "دارایی قبلاً اضافه شده است" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "کسورات صندوق تامین" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "ضریب تعطیلات رسمی" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "انتشار محدوده حقوق و دستمزد" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "در وب سایت منتشر کنید" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "هدف و مبلغ" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "هدف از سفر" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "اعلان‌های فوری غیرفعال شدند" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "اعلان‌های فوری در سایت شما غیرفعال شده‌اند" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "پرسشنامه ایمیل ارسال شد" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "فیلترهای سریع" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "لینک های سریع" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "به اهداف دستی امتیاز دهید" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "معیارهای رتبه بندی" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "رتبه بندی ها" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "تخصیص دوباره مرخصی‌ها" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "دلیل تعدیل" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "دلیل درخواست" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "دلیل نگه‌داشت حقوق" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "دلیل عدم حضور و غیاب خودکار:" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "درخواست‌های حضور و غیاب اخیر" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "هزینه های اخیر" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "مرخصی‌های اخیر" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "درخواست‌های شیفت اخیر" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "استخدام" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "تجزیه و تحلیل استخدام" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "کاهش" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "مرجع: {0}" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "وضعیت پرداخت پاداش ارجاعی" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "جزئیات ارجاع" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "جزئیات ارجاع دهنده" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "نام ارجاع دهنده" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "بازتاب ها" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "جزئیات سوخت گیری" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "رد معرفی کارمند" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "آزاد کردن حقوق‌های نگه‌داشته شده" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr " تاریخ برکناری" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "رفع تاریخ از دست رفته" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "مزایای باقی مانده (سالانه)" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "یادآوری قبل" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "یادآوری شد" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "یادآوری ها" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "در صورت داشتن ارزش صفر حذف کنید" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "ماشین اجاره ای" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "بازپرداخت از حقوق" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "بازپرداخت از حقوق فقط برای وام های مدت دار قابل انتخاب است" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "بازپرداخت مبلغ مطالبه نشده از حقوق" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "پاسخ می‌دهد" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "گزارش به" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "درخواست حضور و غیاب" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "درخواست مرخصی" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "درخواست یک مرخصی" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "درخواست یک شیفت" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "درخواست یک پیش‌پرداخت" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "درخواست شده توسط" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "درخواست شده توسط (نام)" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "نیاز به بودجه کامل" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "مهارت های مورد نیاز" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "برای ایجاد کارمند مورد نیاز است" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "زمان‌بندی مجدد مصاحبه" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "مسئولیت ها" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "محدود کردن درخواست مرخصی دارای تاریخ قبلی" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "پیوست رزومه" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "لینک رزومه" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "لینک رزومه" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "حفظ شد" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "پاداش نگهداشت" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "سن بازنشستگی (به سال)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "مبلغ برگشتی نمی‌تواند بیشتر از مبلغ مطالبه نشده باشد" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "تنظیمات مختلف دیگر مربوط به مرخصی‌های کارمند و مطالبه هزینه را مرور کنید" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "بازبین" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "نام داور" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "CTC اصلاح شده" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "نقش مجاز برای ایجاد برنامه مرخصی دارای تاریخ قبلی" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "لیست شیفت کاری" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "رنگ لیست شیفت کاری" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "نام دور" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "گرد کردن تجربه کاری" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "به نزدیکترین عدد صحیح گرد کنید" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "گرد کردن" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "مسیر به فرم وب درخواست شغل سفارشی" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "ردیف #{0}: نمی‌توان مقدار یا فرمول را برای مؤلفه حقوق و دستمزد {1} با متغیر بر اساس حقوق مشمول مالیات تنظیم کرد" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "ردیف #{0}: مؤلفه {1} دارای گزینه‌های {2} و {3} فعال است." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "ردیف #{0}: مقدار برگه زمانی، مقدار مؤلفه درآمد را برای مؤلفه حقوق و دستمزد بازنویسی می‌کند {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "ردیف شماره {0}: مبلغ نمی‌تواند بیشتر از مبلغ معوق در برابر مطالبه هزینه {1} باشد. مبلغ معوقه {2} است" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "ردیف {0}# مبلغ تخصیص یافته {1} نمی‌تواند بیشتر از مبلغ درخواست نشده {2} باشد." + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "ردیف {0}# مبلغ پرداختی نمی‌تواند بیشتر از مبلغ کل باشد" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "ردیف {0}# مبلغ پرداختی نمی‌تواند بیشتر از مبلغ پیش‌پرداخت درخواستی باشد" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "ردیف {0}: از (سال) نمی‌تواند بزرگتر از تا (سال) باشد" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "ردیف {0}: مبلغ پرداخت شده {1} بیشتر از مبلغ انباشته معلق {2} در مقابل وام {3} است." + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "ردیف {0}: {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "ردیف {0}: {1} در جدول هزینه‌ها برای رزرو مطالبه هزینه لازم است." + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "مؤلفه حقوق و دستمزد" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "مؤلفه حقوق و دستمزد" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "حساب مؤلفه حقوق و دستمزد" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "نوع مؤلفه حقوق" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "مؤلفه حقوق و دستمزد برای لیست حقوق و دستمزد بر اساس جدول زمانی." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "جزئیات حقوق و دستمزد" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "جزئیات حقوق و دستمزد" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "انتظار حقوق" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "اطلاعات حقوق" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "حقوق پرداختی به ازای هر" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "پرداخت حقوق بر اساس حالت پرداخت" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "پرداخت حقوق از طریق ECS" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "محدوده حقوق و دستمزد" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "ثبت حقوق" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "فیش حقوق" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "فیش حقوق بر اساس جدول زمانی" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "شناسه فیش حقوقی" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "مرخصی فیش حقوق" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "وام فیش حقوق" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "مرجع فیش حقوقی" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "جدول زمانی فیش حقوق" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "فیش حقوق از قبل برای {0} برای تاریخ‌های داده شده وجود دارد" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "ایجاد فیش حقوقی در صف است. ممکن است چند دقیقه طول بکشد" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "فیش حقوقی پیدا نشد." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "فیش حقوق کارمند {0} قبلاً برای این دوره ایجاد شده است" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "فیش حقوق کارمند {0} قبلاً برای برگه زمانی {1} ایجاد شده است" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "ارسال فیش حقوقی در صف است. ممکن است چند دقیقه طول بکشد" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "فیش حقوقی {0} برای ثبت حقوق و دستمزد {1} ناموفق بود" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "فیش حقوقی {0} ناموفق بود. می‌توانید {1} را حل کنید و دوباره {0} را امتحان کنید." + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "فیش‌های حقوقی" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "فیش حقوقی ایجاد شد" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "فیش حقوقی ارسال شد" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "فیش حقوق از قبل برای کارمندان {} وجود دارد و توسط این لیست حقوق و دستمزد پردازش نخواهد شد." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "فیش حقوقی ارسال شده برای دوره از {0} تا {1}" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "ساختار حقوق و دستمزد" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "تخصیص ساختار حقوق و دستمزد" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "فیلد تخصیص ساختار حقوق و دستمزد" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "تخصیص ساختار حقوق و دستمزد برای کارمند از قبل وجود دارد" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "ساختار حقوق و دستمزد وجود ندارد" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "ساختار حقوق باید قبل از ارسال {0} ارسال شود" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "ساختار حقوق و دستمزد {0} متعلق به شرکت {1} نیست" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "نگه‌داشت حقوق" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "چرخه نگه‌داشت حقوق" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "نگه‌داشت حقوق {0} از قبل برای کارمند {1} برای دوره انتخاب شده وجود دارد" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "حقوق قبلاً برای دوره بین {0} و {1} پردازش شده است، دوره درخواست مرخصی نمی‌تواند بین این محدوده تاریخ باشد." + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "تفکیک حقوق بر اساس درآمد و کسر." + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "مؤلفه‌های حقوق باید بخشی از ساختار حقوق و دستمزد باشد." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "ایمیل های فیش حقوقی برای ارسال در نوبت قرار گرفته اند. وضعیت {0} را بررسی کنید." + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "مبلغ تصویب شده" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "مبلغ تصویب شده نمی‌تواند بیشتر از مبلغ مطالبه در ردیف {0} باشد." + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "برنامه‌ریزی شده در" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "امتیاز کسب شده" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "امتیاز باید کمتر یا مساوی 5 باشد" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "امتیازات" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "جستجو برای مشاغل" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "ابتدا مرحله مصاحبه را انتخاب کنید" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "ابتدا مصاحبه را انتخاب کنید" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "برای ثبت بانکی، حساب پرداخت را انتخاب کنید" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "فرکانس حقوق و دستمزد را انتخاب کنید." + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "انتخاب دوره حقوق و دستمزد" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "Property را انتخاب کنید" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "انتخاب شرایط و ضوابط" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "کاربران را انتخاب کنید" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "یک کارمند را برای پیش‌پرداخت کارمند انتخاب کنید." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "کارمندی را که می‌خواهید برای آن مرخصی اختصاص دهید انتخاب کنید." + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "کارمند را انتخاب کنید." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "نوع مرخصی مانند مرخصی استعلاجی، مرخصی امتیازی، مرخصی گاه به گاه و غیره را انتخاب کنید." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "تاریخی را انتخاب کنید که پس از آن این تخصیص مرخصی منقضی شود." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "تاریخی را انتخاب کنید که از آن این تخصیص مرخصی معتبر خواهد بود." + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "تاریخ پایان درخواست مرخصی خود را انتخاب کنید." + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "تاریخ شروع درخواست مرخصی خود را انتخاب کنید." + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "این گزینه را انتخاب کنید اگر می‌خواهید تخصیص شیفت‌ها به‌صورت نامحدود به‌طور خودکار ایجاد شوند." + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "نوع مرخصی مورد نظر کارمند را انتخاب کنید، مانند مرخصی استعلاجی، مرخصی امتیازی، مرخصی گاه به گاه و غیره." + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "تأیید کننده مرخصی خود را انتخاب کنید، یعنی شخصی که مرخصی‌های شما را تأیید یا رد می‌کند." + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "ارزیابی خود" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "خود ارزیابی در انتظار: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "امتیاز خود" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "خودخوان" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "خود تأییدی برای مرخصی مجاز نیست" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "سمینار" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "ارسال ایمیل به آدرس" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "ارسال پرسشنامه خروج" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "ارسال پرسشنامه خروج" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "ارسال یادآوری بازخورد مصاحبه" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "ارسال یادآوری مصاحبه" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "ارسال اعلان مرخصی" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "با موفقیت ارسال شد: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "سپتامبر" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "فعالیت های جداسازی" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "جدایی آغاز می‌شود" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "جزئیات خدمات" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "هزینه خدمات" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "From(Year) و \"To(Year)\" را روی 0 بدون محدودیت بالا و پایین تنظیم کنید." + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "تنظیم جزئیات تخصیص" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "تنظیم جزئیات مرخصی" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "تنظیم تاریخ تخفیف برای کارمند: {0}" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "فیلترهایی را برای واکشی کارمندان تنظیم کنید" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "فیلترهای اختیاری را برای واکشی کارکنان در لیست ارزیابی کنندگان تنظیم کنید" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "تنظیم حساب پیش‌فرض برای {0} {1}" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "فرکانس یادآوری تعطیلات را تنظیم کنید" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "ویژگی‌هایی را که باید در Employee master در ارسال ارتقاء به روز شوند، تنظیم کنید" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "در صورت لزوم وضعیت را روی {0} تنظیم کنید." + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "تنظیم {0} برای کارمندان انتخاب شده" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "تنظیمات از دست رفته است" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "همه پرداختنی‌ها و دریافتنی‌ها را قبل از ارسال تسویه کنید" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "شیفت و حضور و غیاب" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "شیفت پایان واقعی" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "زمان پایان واقعی شیفت" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "شروع واقعی شیفت" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "زمان شروع واقعی شیفت" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "تخصیص شیفت" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "جزئیات تخصیص شیفت" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "تاریخچه تخصیص شیفت" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "ابزار تخصیص شیفت" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "تخصیص شیفت: {0} برای کارمند ایجاد شد: {1}" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "حضور و غیاب شیفت" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "جزئیات شیفت" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "پایان شیفت" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "زمان پایان شیفت" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "مکان شیفت" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "درخواست شیفت" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "تأیید کننده درخواست شیفت" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "فیلترهای درخواست شیفت" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "درخواست‌های شیفتی که قبل از این تاریخ به پایان برسند، مستثنی خواهند بود." + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "درخواست‌های شیفتی که پس از این تاریخ شروع شوند، مستثنی خواهند بود." + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "زمان‌بندی شیفت" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "تخصیص زمان‌بندی شیفت" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "تنظیمات شیفت" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "شروع شیفت" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "زمان شروع شیفت" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "وضعیت شیفت" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "ابزارهای شیفت" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "نوع شیفت" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "شیفت با موفقیت به {0} به روز شد." + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "شیفت‌ها" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "نشان دادن کارمند" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "نمایش تراز مرخصی در فیش حقوقی" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "نمایش مرخصی‌های همه اعضای بخش در تقویم" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "نمایش فیش حقوقی" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "در حال نمایش" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "مرخصی استعلاجی" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "اختصاص تکی" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "مهارت" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "ارزیابی مهارت" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "نام مهارت" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "مهارت ها" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "صرف نظر از حضور و غیاب خودکار" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "نادیده گرفتن تخصیص ساختار حقوق و دستمزد برای کارکنان زیر، زیرا رکوردهای تخصیص ساختار حقوق از قبل در برابر آنها وجود دارد. {0}" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "منبع و رتبه بندی" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "مبلغ حمایت شده" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "جزئیات کارگزینی" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "طرح کارگزینی" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "جزئیات طرح کارگزینی" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "طرح کارگزینی {0} از قبل برای نقش سازمانی {1} وجود دارد" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "ضریب استاندارد" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "مبلغ استاندارد معافیت مالیاتی" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "ساعت کاری استاندارد" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "تاریخ شروع و پایان در یک دوره حقوق و دستمزد معتبر نیست، نمی‌تواند {0} را محاسبه کند." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "تاریخ شروع نمی‌تواند بزرگتر از تاریخ پایان باشد" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "تاریخ شروع: {0}" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "زمان شروع و پایان نمی‌تواند یکسان باشد." + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "مؤلفه آماری" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "وضعیت برای نیمه دیگر" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "گزینه‌های موجودی" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "جلوگیری از ثبت درخواست مرخصی توسط کاربران در روزهای زیر." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "به شدت بر اساس نوع لاگ ورود کارکنان است" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "ساختارها با موفقیت تخصیص یافتند" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "تاریخ ارسال" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "ارسال ناموفق بود" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "بازخورد ارائه دهید" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "اکنون ارسال کنید" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "ارسال فیش‌های اضافه کاری" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "ارائه مدرک" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "ارائه فیش حقوقی" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "برای تأیید این درخواست مرخصی را ارسال کنید." + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "این را برای ایجاد رکورد کارمند ارسال کنید" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "ارسال فیش حقوقی و ایجاد دفترچه ..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "ارسال فیش حقوقی..." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "شرکت های تابعه قبلاً برای {1} جای خالی با بودجه {2} برنامه‌ریزی کرده اند. طرح کارکنان برای {0} باید تعداد بیشتری از مشاغل و بودجه برای {3} نسبت به شرکت های تابعه خود اختصاص دهد" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "مجموع تمام طبقه های قبلی" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "نمای خلاصه شده" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "همگام سازی {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "اشتباه نوشتاری" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "خطای نحوی در شرایط: {0} در Income Tax Slab" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "دقیقاً سالهای تکمیل شده را در نظر بگیرید" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "مالیات و مزایا" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "مالیات کسر شده تا تاریخ" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "دسته معافیت مالیاتی" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "اعلامیه معافیت مالیاتی" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "مدارک معافیت مالیاتی" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "تنظیم مالیات" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "مالیات بر حقوق اضافی" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "مالیات بر مزایای انعطاف‌پذیر" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "درآمد مشمول مالیات تا تاریخ" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "طبقه حقوق مشمول مالیات" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "طبقه حقوق مشمول مالیات" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "مالیات و عوارض" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "مالیات ها و هزینه های مالیات بر درآمد" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "تاکسی" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "پیش‌پرداخت‌های تیم" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "مطالبات تیم" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "مرخصی‌های تیم" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "درخواست‌های تیم" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "به‌روزرسانی تیم" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "ممنون که درخواست دادید." + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr " تاریخی که در آن مؤلفه حقوق و دستمزد با مبلغ برای درآمد/کسر فیش حقوق کمک می‌کند." + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "روزی از ماه که باید مرخصی‌ها اختصاص داده شود" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "روزهایی که در آن درخواست مرخصی می دهید، تعطیلات هستند. شما نیازی به درخواست مرخصی ندارید." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "روزهای بین {0} تا {1} تعطیلات معتبر نیستند." + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "اولین تأیید کننده در لیست به عنوان تأیید کننده پیش‌فرض تنظیم می‌شود." + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "کسری حقوق روزانه در هر مرخصی باید بین 0 تا 1 باشد" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "کسری از دستمزد روزانه برای حضور نیم روز پرداخت می‌شود" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "فیش حقوقی که به کارمند ایمیل می‌شود، با گذرواژه محافظت می‌شود، گذرواژه بر اساس سیاست گذرواژه ایجاد می‌شود." + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "زمان بعد از زمان شروع شیفت که ورود به منزل دیر در نظر گرفته می‌شود (بر حسب دقیقه)." + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "زمان قبل از پایان شیفت زمانی که خروج زودهنگام در نظر گرفته می‌شود (بر حسب دقیقه)." + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "زمان قبل از زمان شروع شیفت که طی آن ورود کارکنان برای حضور و غیاب در نظر گرفته می‌شود." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "تئوری" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "تعداد روزهای تعطیل در این ماه بیشتر از روزهای کاری است." + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "هیچ جای خالی در طرح کارگزینی وجود ندارد {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "هیچ کارمندی با ساختار حقوق و دستمزد وجود ندارد: {0}. برای پیش‌نمایش فیش حقوقی، {1} را به یک کارمند اختصاص دهید" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "این مرخصی‌ها تعطیلات مجاز توسط شرکت هستند، اما استفاده از آن برای یک کارمند اختیاری است." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "این اقدام از ایجاد تغییرات در بازخورد/اهداف ارزیابی مرتبط جلوگیری می‌کند." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "این ورود خارج از ساعات شیفت تعیین‌شده است و برای حضور و غیاب در نظر گرفته نخواهد شد. اگر شیفتی تعیین‌شده است، پنجره زمانی آن را تنظیم کنید و دوباره شیفت را دریافت کنید." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "این مرخصی جبرانی از {0} قابل اجرا خواهد بود." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "این کارمند قبلاً یک لاگ با همان مهر زمانی دارد.{0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "این خطا می‌تواند به دلیل فرمول یا شرایط نامعتبر باشد." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "این خطا می‌تواند به دلیل نحو نامعتبر باشد." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "این خطا می‌تواند به دلیل گم شدن یا حذف شدن فیلد باشد." + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "این فیلد به شما امکان می‌دهد حداکثر تعداد مرخصی‌های متوالی را که یک کارمند می‌تواند درخواست دهد، تنظیم کنید." + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "این فیلد به شما امکان می‌دهد در هنگام ایجاد سیاست مرخصی، حداکثر تعداد مرخصی‌هایی را که می‌توان سالانه برای این نوع مرخصی اختصاص داد تنظیم کنید." + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "این بر اساس حضور و غیاب این کارمند است" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "این برگه های حقوق و دستمزد را ارسال می‌کند و ثبت دفتر روزنامه تعهدی ایجاد می‌کند. آیا شما می‌خواهید ادامه دهید؟" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "زمان پس از پایان شیفت که در طی آن خروج برای حضور و غیاب در نظر گرفته می‌شود." + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "زمان صرف شده برای پر کردن موقعیت های باز" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "زمان پر کردن" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "جدول زمانی" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "جزئیات جدول زمانی" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "زمان سنجی" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "به مبلغ" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "تا تاریخ باید بزرگتر از از تاریخ باشد" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "به کاربر" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "برای اجازه دادن به این، {0} را در {1} فعال کنید." + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "برای درخواست نیم روز، «نیم روز» را علامت بزنید و تاریخ نیم روز را انتخاب کنید" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "تا به امروز نمی‌تواند برابر یا کمتر از تاریخ باشد" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "تا به امروز نمی‌تواند بیشتر از تاریخ معافیت کارمند باشد." + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "تا به امروز نمی‌تواند کمتر از تاریخ باشد" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "تا به امروز نمی‌تواند بیشتر از تاریخ معافیت کارمند باشد" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "تا به امروز نمی‌تواند قبل از تاریخ باشد" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "تا (سال)" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "تا (سال) سال نمی‌تواند کمتر از From (سال) باشد" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "امروز تولد {0} است 🎉" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "امروز {0} در شرکت ما! 🎉" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "کل غایب" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "مبلغ کل واقعی" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "کل مبلغ پیش‌پرداخت" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "مجموع مرخصی(های) اختصاص داده شده" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "کل مرخصی‌های اختصاص داده شده" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "مبلغ کل نمی‌تواند صفر باشد" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "کل مبلغ مطالبه شده" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "کل مبلغ اعلام شده" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "کسر کل" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "مجموع کسر (ارز شرکت)" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "مجموع خروج های زودهنگام" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "کل درآمد" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "درآمد کل" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "کل بودجه تخمینی" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "کل هزینه تخمینی" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "کل مبلغ معافیت" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "مجموع امتیاز گل" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "کل دستمزد ناخالص" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "کل ساعت (T)" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "مالیات بر درآمد کل" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "مجموع ورودهای دیرهنگام" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "مجموع روزهای مرخصی" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "کل مرخصی‌ها" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "کل مرخصی‌ها ({0})" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "مجموع مرخصی‌های اختصاص داده شده" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "مجموع مرخصی‌های انباشته شده" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "کل بازپرداخت وام" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "کل پرداخت خالص" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "مجموع ساعات غیر صورتحساب" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "کل مبلغ قابل پرداخت" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "کل پرداخت" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "کل حال" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "کل مبلغ دریافتنی" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "مجموع استعفاها" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "کل مبلغ تصویب شده" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "نمره کل" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "نمره کل خود" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "مبلغ کل پیش‌پرداخت نمی‌تواند بیشتر از کل مبلغ تصویب شده باشد" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "مجموع مرخصی‌های تخصیص یافته بیشتر از حداکثر تخصیص مجاز برای {0} نوع مرخصی برای کارمند {1} در دوره است." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "مجموع مرخصی‌های تخصیص یافته {0} نمی‌تواند کمتر از مرخصی‌های تأیید شده قبلی {1} برای دوره باشد" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "مجموع به حروف" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "مجموع به حروف (ارز شرکت)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "کل مرخصی‌های اختصاص داده شده نمی‌تواند از تخصیص سالانه {0} تجاوز کند." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "مجموع مرخصی‌های تخصیص یافته برای نوع مرخصی {0} اجباری است" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "کل حقوق ثبت شده در مقابل این جزء برای این کارمند از ابتدای سال (دوره حقوق و دستمزد یا سال مالی) تا تاریخ پایان فیش حقوقی فعلی." + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "کل حقوق رزرو شده برای این کارمند از ابتدای ماه تا تاریخ پایان فیش حقوقی فعلی." + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "کل حقوق رزرو شده برای این کارمند از ابتدای سال (دوره حقوق و دستمزد یا سال مالی) تا تاریخ پایان فیش حقوقی فعلی." + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "سنجش کل برای همه {0} باید تا 100 جمع شود. در حال حاضر {1}% است" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "مجموع روزهای کاری در سال" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "مجموع ساعات کاری نباید از حداکثر ساعات کاری بیشتر باشد {0}" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "قطار" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "ایمیل مربی" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "نام مربی" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "آموزش" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "تاریخ آموزش" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "رویداد آموزشی" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "کارمند رویداد آموزشی" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "رویداد آموزشی:" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "رویدادهای آموزشی" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "بازخورد آموزشی" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "برنامه آموزشی" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "نتیجه آموزش" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "کارمند نتیجه آموزش" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "آموزش ها" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "تراکنش‌ها را نمی‌توان برای یک کارمند غیرفعال {0} ایجاد کرد." + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "تاریخ انتقال" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "سفر" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "پیش نیاز سفر" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "سفر از" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "بودجه سفر" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "برنامه سفر" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "درخواست سفر" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "هزینه‌یابی درخواست سفر" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "سفر به" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "نوع سفر" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "نوع اثبات" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "لغو بایگانی" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "مبلغ مطالبه نشده" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "تحت بررسی" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "سابقه حضور و غیاب بدون پیوند از ورود کارکنان: {}" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "لاگ‌های بدون پیوند" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "حضور و غیاب نامشخص برای روزهای" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "روزهای نامشخص" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "روزهای نامشخص" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "مطالبه هزینه پرداخت نشده" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "بی قرار" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "ارزیابی های ارسال نشده" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "ساعت های پیگیری نشده" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "ساعت‌های پیگیری نشده (U)" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "مرخصی‌های استفاده نشده" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "تعطیلات آینده" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "یادآوری تعطیلات آینده" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "شیفت های آینده" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "به‌روزرسانی هزینه" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "به‌روزرسانی متقاضی کار" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "به‌روزرسانی پیشرفت" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "به‌روزرسانی پاسخ" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "به‌روزرسانی ساختارهای حقوق و دستمزد" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "وضعیت به‌روزرسانی" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "به‌روزرسانی مالیات" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "وضعیت به روز شده از {0} به {1} برای تاریخ {2} در سابقه حضور و غیاب {3}" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "وضعیت متقاضی شغل به {0} به روز شد" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "وضعیت Job Offer {0} برای Job Applicant پیوند شده {1} به {2} به روز شد" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "وضعیت متقاضی کار پیوند شده {0} به {1} به روز شد" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "آپلود حضور و غیاب" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "HTML را آپلود کنید" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "تصاویر یا اسناد را آپلود کنید" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "در حال آپلود..." + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "محدوده بالا" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "مرخصی(های) استفاده شده" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "مرخصی‌های استفاده شده" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "جای خالی" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "جای خالی نمی‌تواند کمتر از فرصت های فعلی باشد" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "جای خالی تکمیل شد" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "تأیید حضور و غیاب" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "تأیید حضور و غیاب کارمند..." + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "ارزش / توضیحات" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "ارزش از دست رفته است" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "متغیر" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "متغیر بر اساس حقوق مشمول مالیات" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "گیاه خواری" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "هزینه های وسیله نقلیه" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "لاگ وسیله نقلیه" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "سرویس وسیله نقلیه" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "آیتم سرویس وسیله نقلیه" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "مشاهده اهداف" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "مشاهده تاریخچه مرخصی" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "مشاهده فیش‌های حقوقی" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "بنفش" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "هشدار: ماژول مدیریت وام از ERPNext جدا شده است." + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "هشدار: تراز مرخصی برای نوع مرخصی {0} در این تخصیص کافی نیست." + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "هشدار: تراز مرخصی برای نوع مرخصی {0} کافی نیست." + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "هشدار: درخواست مرخصی شامل تاریخ‌های مسدود زیر است" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "اخطار: {0} در حال حاضر یک تخصیص شیفت فعال {1} برای برخی/همه این تاریخ‌ها دارد." + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "لیست وب سایت" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "ضریب آخر هفته" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "سنجش (%)" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "در حالی که تخصیص برای مرخصی جبرانی به طور خودکار ایجاد یا با ارسال درخواست مرخصی جبرانی ایجاد یا به روز می‌شود." + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "چرا این کاندید واجد شرایط این موقعیت است؟" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "نگه‌داشت" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr " سالگردهای کاری" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "یادآوری سالگرد کار" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "تاریخ پایان کار" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "روش محاسبه سابقه کار" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "کار از تاریخ" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "کار از خانه" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "مراجع کار" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "خلاصه کار برای {0}" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "در تعطیلات کار کرد" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "روزهای کاری" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "روزها و ساعات کاری" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "محاسبه ساعت کاری بر اساس" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "آستانه ساعات کاری برای غیبت" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "آستانه ساعات کاری برای نیم روز" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "ساعات کاری که زیر آن غایب مشخص شده است. (صفر برای غیرفعال کردن)" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "ساعات کاری که کمتر از آن نیم روز مشخص شده است. (صفر برای غیرفعال کردن)" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "کارگاه" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "سال تا به امروز" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "سال تا به امروز (ارز شرکت)" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "بله، ادامه دهید" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "شما مجاز به تأیید مرخصی در تاریخ‌های مسدود نیستید" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "شما در تمام روز(های) بین روزهای درخواست مرخصی جبرانی حضور ندارید" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "اگر طبقه بدون محدودیت های پایین و بالایی داشته باشید، نمی‌توانید چند طبقه را تعریف کنید." + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "شما نمی‌توانید برای شیفت پیش‌فرض خود درخواست دهید: {0}" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "شما فقط می‌توانید برای حداکثر {0} موقعیت شغلی و بودجه {1} برای {2} طبق برنامه کارگزینی {3} برای شرکت مادر {4} برنامه‌ریزی کنید." + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "شما فقط می‌توانید بازخرید مرخصی را برای مبلغ بازخرید معتبر ارسال کنید" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "شما فقط می‌توانید اسناد JPG، PNG، PDF، TXT یا Microsoft را آپلود کنید." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "شما مجوز تکمیل این عمل را ندارید" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "هیچ پیش‌پرداختی ندارید" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "شما هیچ مرخصی تخصیص‌داده‌شده‌ای ندارید" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "هیچ اعلانی ندارید" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "هیچ درخواستی ندارید" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "شما هیچ تعطیلات پیش رویی ندارید" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "هیچ شیفت آتی ندارید" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "شما می‌توانید جزئیات بیشتری را در صورت وجود اضافه کنید و پیشنهاد را ارسال کنید." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "شما فقط برای نیم روز در {} حضور داشتید. نمی‌توان برای مرخصی جبرانی تمام روز درخواست داد" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "جلسه مصاحبه شما از {0} {1} - {2} به {3} {4} - {5} تغییر زمان داد" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "گذرواژه شما منقضی شده است. لطفا برای ادامه، گذرواژه خود را بازنشانی کنید" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "فعال" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "بر اساس" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "لغو شد" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "ایجاد/ارسال" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "ایجاد شده" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "johndoe@mail.com" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "modify_half_day_status" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "نتیجه" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "نتایج" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "مرور" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "بررسی ها" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "ارسال شده" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "سال" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "{0} و {1}" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "{0} : {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "{0}
    این خطا ممکن است به دلیل گم شدن یا حذف شدن فیلد باشد." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "{0} ارزیابی(های) هنوز ارسال نشده است" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "{0} وجود ندارد" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "{0} ردیف #{1}: فرمول تنظیم شده است اما {2} برای مؤلفه حقوق و دستمزد {3} غیرفعال است." + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "{0} ردیف #{1}: برای در نظر گرفتن فرمول باید {2} فعال شود." + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "{0} خوانده نشده" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} قبلاً برای کارمند {1} برای دوره {2} تا {3} تخصیص داده شده است" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0} از قبل برای کارمند {1} و دوره {2} وجود دارد" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "{0} از قبل یک تخصیص شیفت فعال {1} برای برخی/همه این تاریخ‌ها دارد." + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "{0} پس از {1} روز کاری قابل اعمال است" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "{0} تراز" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "{0} با موفقیت ایجاد شد!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "{0} با موفقیت حذف شد!" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "{0} ناموفق بود!" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "{0} وضعیت حضور و غیاب نامعتبر است." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "{0} تعطیلات نیست." + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "{0} مجاز به ارسال بازخورد مصاحبه برای مصاحبه نیست: {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} در فهرست تعطیلات اختیاری نیست" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "{0} مرخصی با موفقیت اختصاص داده شدند" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "{0} مرخصی از تخصیص مربوط به نوع مرخصی {1} منقضی شده‌اند و در هنگام اجرای برنامه زمان‌بندی‌شده بعدی پردازش خواهند شد. توصیه می‌شود پیش از ایجاد سیاست‌های تخصیص مرخصی جدید، آن‌ها را همین حالا منقضی کنید." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "{0} مرخصی به‌صورت دستی توسط {1} در {2} تخصیص داده شد" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} باید ارسال شود" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "{0} از {1} تکمیل شد" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "{0} موفق!" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "{0} با موفقیت!" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "{0} با موفقیت به روز شد!" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "{0} جای خالی و {1} بودجه برای {2} که قبلاً برای شرکت های تابعه {3} برنامه‌ریزی شده است. شما فقط می‌توانید برای حداکثر {4} موقعیت شغلی و بودجه {5} طبق برنامه کارگزینی {6} برای شرکت مادر {3} برنامه‌ریزی کنید." + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "{0} برای ساختارهای حقوق و دستمزد زیر به‌روزرسانی خواهد شد: {1}." + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "{0} {1} {2}؟" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "{0}. برای جزئیات بیشتر، لاگ خطا را بررسی کنید." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}: ایمیل کارمند یافت نشد، بنابراین ایمیل ارسال نشد" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "{0}: از {0} از نوع {1}" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "{0} روز" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "{} " + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "{} پذیرفته شده" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "{} فعال" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "{} پیش‌نویس" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "{} مطالبه نشده" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "{} {} برای این موقعیت باز است." + diff --git a/apps/erpnext/src/hrms/hrms/locale/fi.po b/apps/erpnext/src/hrms/hrms/locale/fi.po new file mode 100644 index 000000000..8d0836b0b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/fi.po @@ -0,0 +1,16958 @@ +# Translations template for Frappe HR. +# Copyright (C) 2024 Frappe Technologies Pvt. Ltd. +# This file is distributed under the same license as the Frappe HR project. +# FIRST AUTHOR , 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: Frappe HR VERSION\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2024-01-11 19:17+0553\n" +"PO-Revision-Date: 2024-01-11 19:17+0553\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: contact@frappe.io\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.13.1\n" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:32 +msgid "" +"\n" +"\t\t\t\t\t\tNot found any salary slip record(s) for the employee {0}.

    \n" +"\t\t\t\t\t\tPlease specify {1} and {2} (if any),\n" +"\t\t\t\t\t\tfor the correct tax calculation in future salary slips.\n" +"\t\t\t\t\t\t" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:22 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: public/frontend/assets/EmployeeAdvanceItem-2a5ba80f.js:1 +msgid "$dayjs" +msgstr "" + +#: public/frontend/assets/LeaveBalance-6bf8cabc.js:1 +msgid "$employee" +msgstr "" + +#: public/frontend/assets/LeaveBalance-6bf8cabc.js:1 +msgid "$socket" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:88 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:94 +msgid "% Utilization (B / T)" +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:84 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "'työntekijä_kentän arvo' ja 'aikaleima' vaaditaan." + +#: hr/doctype/leave_application/leave_application.py:1264 +msgid "(Half Day)" +msgstr "(Puoli päivää)" + +#: hr/utils.py:234 payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") {0}" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "0.25" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "0.5" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "00:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "01:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "02:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "03:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "04:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "05:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "06:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "07:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "08:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "09:00" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "1.0" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "10:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "11:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "12:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "13:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "14:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "15:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "16:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "17:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "18:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "19:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "20:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "21:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "22:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "23:00" +msgstr "" + +#. Description of a Data field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "Esimerkki: SAL- {etunimi} - {date_of_birth.year}
    Tämä luo salasanan, kuten SAL-Jane-1972" + +#: hr/doctype/leave_allocation/leave_allocation.py:276 +#: hr/doctype/leave_allocation/leave_allocation.py:282 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Description of the Onboarding Step 'Data Import' +#: hr/onboarding_step/data_import/data_import.json +msgid "" +"

    Data Import

    \n" +"\n" +"Data import is the tool to migrate your existing data like Employee, Customer, Supplier, and a lot more to our ERPNext system.\n" +"Go through the video for a detailed explanation of this tool." +msgstr "" + +#. Description of the Onboarding Step 'Create Employee' +#: hr/onboarding_step/create_employee/create_employee.json +msgid "" +"

    Employee

    \n" +"\n" +"An individual who works and is recognized for his rights and duties in your company is your Employee. You can manage the Employee master. It captures the demographic, personal and professional details, joining and leave details, etc." +msgstr "" + +#. Description of the Onboarding Step 'HR Settings' +#: hr/onboarding_step/hr_settings/hr_settings.json +msgid "" +"

    HR Settings

    \n" +"\n" +"Hr Settings consists of major settings related to Employee Lifecycle, Leave Management, etc. Click on Explore, to explore Hr Settings." +msgstr "" + +#. Content of an HTML field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "" +"

    Help

    \n" +"\n" +"

    Notes:

    \n" +"\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n" +"\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Description of the Onboarding Step 'Create Holiday List' +#: hr/onboarding_step/create_holiday_list/create_holiday_list.json +msgid "" +"

    Holiday List.

    \n" +"\n" +"Holiday List is a list which contains the dates of holidays. Most organizations have a standard Holiday List for their employees. However, some of them may have different holiday lists based on different Locations or Departments. In ERPNext, you can configure multiple Holiday Lists." +msgstr "" + +#. Description of the Onboarding Step 'Create Leave Allocation' +#: hr/onboarding_step/create_leave_allocation/create_leave_allocation.json +msgid "" +"

    Leave Allocation

    \n" +"\n" +"Leave Allocation enables you to allocate a specific number of leaves of a particular type to an Employee so that, an employee will be able to create a Leave Application only if Leaves are allocated. " +msgstr "" + +#. Description of the Onboarding Step 'Create Leave Application' +#: hr/onboarding_step/create_leave_application/create_leave_application.json +msgid "" +"

    Leave Application

    \n" +"\n" +"Leave Application is a formal document created by an Employee to apply for Leaves for a particular time period based on there leave allocation and leave type according to there need." +msgstr "" + +#. Description of the Onboarding Step 'Create Leave Type' +#: hr/onboarding_step/create_leave_type/create_leave_type.json +msgid "" +"

    Leave Type

    \n" +"\n" +"Leave type is defined based on many factors and features like encashment, earned leaves, partially paid, without pay and, a lot more. To check other options and to define your leave type click on Show Tour." +msgstr "" + +#. Content of an HTML field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "" +"

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: controllers/employee_reminders.py:123 controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hr/utils.py:230 payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "{0} on {1} ja {2} välillä (" + +#. Label of a Data field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Abbr" +msgstr "" + +#. Label of a Data field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Abbr" +msgstr "" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Absent" +msgstr "puuttua" + +#. Option for a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Absent" +msgstr "puuttua" + +#. Option for a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Absent" +msgstr "puuttua" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Absent" +msgstr "puuttua" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Absent Days" +msgstr "Poissa olevat päivät" + +#: hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#. Name of a role +#: hr/doctype/interest/interest.json +msgid "Academics User" +msgstr "" + +#: overrides/employee_master.py:64 overrides/employee_master.py:80 +msgid "Accepted" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Accepted" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Accepted" +msgstr "" + +#. Option for a Select field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Accepted" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Account" +msgstr "" + +#. Label of a Link field in DocType 'Salary Component Account' +#: payroll/doctype/salary_component_account/salary_component_account.json +msgctxt "Salary Component Account" +msgid "Account" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Account" +msgstr "" + +#. Label of a Link field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Account Head" +msgstr "" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +msgid "Account No" +msgstr "Tilinumero" + +#: payroll/doctype/payroll_entry/payroll_entry.py:89 +msgid "Account type cannot be set for payroll payable account {0}, please remove and try again" +msgstr "" + +#: overrides/company.py:115 +msgid "Account {0} does not belong to company: {1}" +msgstr "" + +#: hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of a Card Break in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Accounting" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Accounting" +msgstr "" + +#. Label of a Tab Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Accounting" +msgstr "" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Accounting Details" +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Accounting Dimension" +msgid "Accounting Dimension" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Accounting Dimensions" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Accounting Dimensions" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Accounting Dimensions" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Accounting Dimensions" +msgstr "" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Accounting Dimensions" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.js:216 +msgid "Accounting Ledger" +msgstr "" + +#. Label of a Card Break in the Expense Claims Workspace +#. Label of a Card Break in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Accounting Reports" +msgstr "" + +#. Label of a Table field in DocType 'Expense Claim Type' +#: hr/doctype/expense_claim_type/expense_claim_type.json +msgctxt "Expense Claim Type" +msgid "Accounts" +msgstr "" + +#. Label of a Section Break field in DocType 'Salary Component' +#. Label of a Table field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Accounts" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Accounts Payable" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Accounts Receivable" +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Accounts Settings" +msgid "Accounts Settings" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:565 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "Tuloslaskelulomake palkkoihin {0} - {1}" + +#: hr/doctype/interview/interview.js:32 +#: hr/doctype/job_requisition/job_requisition.js:36 +#: hr/doctype/job_requisition/job_requisition.js:60 +#: hr/doctype/job_requisition/job_requisition.js:62 +#: payroll/doctype/salary_structure/salary_structure.js:108 +#: payroll/doctype/salary_structure/salary_structure.js:112 +msgid "Actions" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:46 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:40 +msgid "Active" +msgstr "" + +#. Option for a Select field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Active" +msgstr "" + +#. Label of a Table field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Activities" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Onboarding Template' +#. Label of a Table field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Activities" +msgstr "" + +#. Label of a Table field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Activities" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Separation Template' +#. Label of a Table field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Activities" +msgstr "" + +#. Label of a Data field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Activity Name" +msgstr "Toiminnon nimi" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Activity Type" +msgid "Activity Type" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Proof +#. Submission Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Actual Amount" +msgstr "Todellinen määrä" + +#: hr/doctype/leave_encashment/leave_encashment.py:136 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of a Float field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Actual Encashable Days" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:399 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of a Button field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Add Day-wise Dates" +msgstr "" + +#: hr/employee_property_update.js:45 +msgid "Add Employee Property" +msgstr "" + +#: public/js/performance/performance_feedback.js:93 +msgid "Add Feedback" +msgstr "" + +#: hr/employee_property_update.js:88 +msgid "Add to Details" +msgstr "Lisää yksityiskohtiin" + +#. Label of a Check field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Add unused leaves from previous allocations" +msgstr "Lisää käyttämättömät lähtee edellisestä määrärahoista" + +#. Label of a Check field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Add unused leaves from previous allocations" +msgstr "Lisää käyttämättömät lähtee edellisestä määrärahoista" + +#. Description of a Check field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Added On" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1255 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hr/employee_property_update.js:163 +msgid "Added to details" +msgstr "Lisätty yksityiskohtiin" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Additional Amount" +msgstr "Lisämäärä" + +#. Label of a Section Break field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Additional Information " +msgstr "" + +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:34 +msgid "Additional PF" +msgstr "Lisää PF" + +#. Name of a DocType +#: payroll/doctype/additional_salary/additional_salary.json +msgid "Additional Salary" +msgstr "Lisäpalkka" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Additional Salary" +msgid "Additional Salary" +msgstr "Lisäpalkka" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Additional Salary" +msgstr "Lisäpalkka" + +#. Label of a Link field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Additional Salary " +msgstr "Lisäpalkka" + +#: payroll/doctype/additional_salary/additional_salary.py:110 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: payroll/doctype/additional_salary/additional_salary.py:132 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: payroll/doctype/additional_salary/additional_salary.py:62 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "Lisäpalkka: {0} on jo olemassa palkkakomponentille: {1} jaksoille {2} ja {3}" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Address of Organizer" +msgstr "Järjestäjän osoite" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Advance" +msgstr "edetä" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Advance Account" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Advance Account" +msgstr "" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:62 +msgid "Advance Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Advance Amount" +msgstr "" + +#. Label of a Data field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Advance Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Advance Paid" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Advance Payments" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Advanced Filters" +msgstr "" + +#. Label of a Card Break in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgid "Advances" +msgstr "" + +#. Label of a Table field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Advances" +msgstr "" + +#. Name of a role +#: hr/doctype/leave_application/leave_application.json +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgid "All" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:219 +msgid "All Goals" +msgstr "" + +#: hr/doctype/job_opening/job_opening.py:106 +msgid "All Jobs" +msgstr "kaikki työt" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:40 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of a Check field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.js:206 +msgid "Allocate Leave" +msgstr "" + +#. Label of a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allocate on Day" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Allocated Amount" +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:79 +msgid "Allocated Leaves" +msgstr "Sijoittuneet lehdet" + +#: hr/utils.py:405 +msgid "Allocated {0} leave(s) via scheduler on {1} based on the 'Allocate on Day' option set to {2}" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.js:228 +msgid "Allocating Leave" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgid "Allocation" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Allocation" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:56 +msgid "Allocation Expired!" +msgstr "Jako vanhentunut!" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allow Encashment" +msgstr "Salli Encashment" + +#: hr/doctype/shift_assignment/shift_assignment.py:60 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allow Negative Balance" +msgstr "Hyväksy negatiivinen tase" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allow Over Allocation" +msgstr "" + +#. Label of a Check field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Allow Tax Exemption" +msgstr "Salli verovapautus" + +#. Label of a Link field in DocType 'Leave Block List Allow' +#: hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgctxt "Leave Block List Allow" +msgid "Allow User" +msgstr "Salli Käyttäjä" + +#. Label of a Section Break field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Allow Users" +msgstr "Salli Käyttäjät" + +#. Label of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Allow check-out after shift end time (in minutes)" +msgstr "Salli uloskirjautuminen vuoron päättymisajan jälkeen (minuutteina)" + +#. Description of a Section Break field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "salli seuraavien käyttäjien hyväksyä poistumissovelluksen estopäivät" + +#. Description of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "Vaihtoehtoisesti merkinnät IN ja OUT saman vaiheen aikana" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Policy' +#: hr/doctype/leave_policy/leave_policy.json +msgctxt "Leave Policy" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Training Result' +#: hr/doctype/training_result/training_result.json +msgctxt "Training Result" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Amended From" +msgstr "" + +#: payroll/report/professional_tax_deductions/professional_tax_deductions.py:32 +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Application Detail' +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgctxt "Employee Benefit Application Detail" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Amount" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:34 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Amount based on formula" +msgstr "Laskettu määrä kaavan" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Amount based on formula" +msgstr "Laskettu määrä kaavan" + +#: payroll/doctype/additional_salary/additional_salary.py:31 +msgid "Amount should not be less than zero" +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:58 +msgid "An amount of {0} already claimed for the component {1}, set the amount equal or greater than {2}" +msgstr "" + +#. Label of a Float field in DocType 'Leave Policy Detail' +#: hr/doctype/leave_policy_detail/leave_policy_detail.json +msgctxt "Leave Policy Detail" +msgid "Annual Allocation" +msgstr "Vuotuinen jako" + +#: setup.py:395 +msgid "Annual Salary" +msgstr "Vuosipalkka" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of a Small Text field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Any other details" +msgstr "Kaikki muut yksityiskohdat" + +#. Description of a Text field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Applicable After (Working Days)" +msgstr "Sovellettava jälkeen (työpäivät)" + +#. Label of a Table MultiSelect field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Applicable For" +msgstr "" + +#. Description of a Check field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Applicable in the case of Employee Onboarding" +msgstr "Sovelletaan työntekijän liikkumiseen" + +#. Label of a Data field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Applicant Email Address" +msgstr "Hakijan sähköpostiosoite" + +#. Label of a Data field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Applicant Name" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Applicant Name" +msgstr "" + +#. Label of a Data field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Applicant Name" +msgstr "" + +#. Label of a Rating field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Applicant Rating" +msgstr "" + +#: hr/report/recruitment_analytics/recruitment_analytics.py:45 +msgid "Applicant name" +msgstr "Hakijan nimi" + +#. Label of a Card Break in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hr/report/recruitment_analytics/recruitment_analytics.py:47 +msgid "Application Status" +msgstr "sovellus status" + +#: hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be across two allocation records" +msgstr "Sovellusjakso ei voi olla kahden jakotiedon välissä" + +#: hr/doctype/leave_application/leave_application.py:204 +msgid "Application period cannot be outside leave allocation period" +msgstr "Hakuaika ei voi ulkona loman jakokauteen" + +#: templates/generators/job_opening.html:152 +msgid "Applications Received" +msgstr "" + +#: www/jobs/index.html:211 +msgid "Applications received:" +msgstr "" + +#. Label of a Check field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Applies to Company" +msgstr "koskee yritystä" + +#: templates/generators/job_opening.html:21 +#: templates/generators/job_opening.html:25 +msgid "Apply Now" +msgstr "Hae nyt" + +#. Label of a Card Break in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Appointment" +msgstr "" + +#. Label of a Date field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Appointment Date" +msgstr "Nimityspäivämäärä" + +#. Name of a DocType +#: hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Letter" +msgstr "Nimityskirje" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Appointment Letter" +msgid "Appointment Letter" +msgstr "Nimityskirje" + +#. Name of a DocType +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Appointment Letter Template" +msgstr "Nimityskirjemalli" + +#. Label of a Link field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Appointment Letter Template" +msgstr "Nimityskirjemalli" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Appointment Letter Template" +msgid "Appointment Letter Template" +msgstr "Nimityskirjemalli" + +#. Name of a DocType +#: hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Nimityskirjeen sisältö" + +#. Name of a DocType +#. Label of a Card Break in the Performance Workspace +#: hr/doctype/appraisal/appraisal.json +#: hr/report/appraisal_overview/appraisal_overview.py:44 +#: hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "Arvioinnit" + +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Appraisal" +msgid "Appraisal" +msgstr "Arvioinnit" + +#. Linked DocType in Appraisal Cycle's connections +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Appraisal" +msgstr "Arvioinnit" + +#. Linked DocType in Appraisal Template's connections +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Appraisal" +msgstr "Arvioinnit" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Appraisal" +msgstr "Arvioinnit" + +#. Name of a DocType +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/goal/goal_tree.js:17 hr/doctype/goal/goal_tree.js:107 +#: hr/report/appraisal_overview/appraisal_overview.js:18 +#: hr/report/appraisal_overview/appraisal_overview.py:37 +msgid "Appraisal Cycle" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Appraisal Cycle" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Appraisal Cycle" +msgid "Appraisal Cycle" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Appraisal Cycle" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "arvioinnin tavoite" + +#. Name of a DocType +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:98 +msgid "Appraisal Linking" +msgstr "" + +#. Label of a Section Break field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#. Label of a Link in the Performance Workspace +#: hr/report/appraisal_overview/appraisal_overview.json +#: hr/workspace/performance/performance.json +msgid "Appraisal Overview" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Appraisal Template" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Appraisal Template" +msgid "Appraisal Template" +msgstr "" + +#. Label of a Link field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "arvioinnin tavoite" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of a Data field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Appraisal Template Title" +msgstr "arvioinnin otsikko" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:54 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:44 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:113 +msgid "Appraisees: {0}" +msgstr "" + +#: setup.py:387 +msgid "Apprentice" +msgstr "opettelu" + +#. Label of a Section Break field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Approval" +msgstr "" + +#. Label of a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Approval Status" +msgstr "hyväksynnän tila" + +#: hr/doctype/expense_claim/expense_claim.py:118 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "hyväksynnän tila on 'hyväksytty' tai 'hylätty'" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Approved" +msgstr "" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Approved" +msgstr "" + +#. Option for a Select field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Approved" +msgstr "" + +#. Label of a Link field in DocType 'Department Approver' +#: hr/doctype/department_approver/department_approver.json +msgctxt "Department Approver" +msgid "Approver" +msgstr "Hyväksyjä" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Approver" +msgstr "Hyväksyjä" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:16 +#: public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "Huhti" + +#: hr/doctype/goal/goal.js:68 +msgid "Archive" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Archived" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip_list.js:11 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:87 +msgid "Are you sure you want to proceed?" +msgstr "" + +#: hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Label of a Datetime field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Arrival Datetime" +msgstr "Saapuminen Datetime" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:41 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "Etkä voi hakea etuja palkkaneuvon mukaan" + +#. Label of a Data field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Asset Name" +msgstr "" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Assets Allocated" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:162 +msgid "Assign" +msgstr "Nimeä" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/assign_salary_structure/assign_salary_structure.json +msgid "Assign Salary Structure" +msgstr "Määritä palkkarakenne" + +#: payroll/doctype/salary_structure/salary_structure.js:103 +msgid "Assign to Employee" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:250 +msgid "Assigning Structures..." +msgstr "Määritetään rakenteita ..." + +#. Label of a Select field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Assignment based on" +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.js:38 +#: hr/doctype/job_requisition/job_requisition.js:59 +msgid "Associate Job Opening" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Associated Document" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Associated Document Type" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:107 +msgid "Atleast one interview has to be selected." +msgstr "" + +#. Label of a Attach field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Attachments" +msgstr "" + +#. Label of a Attach field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Attachments" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#: hr/doctype/attendance/attendance.json hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +#: overrides/dashboard_overrides.py:10 templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "osallistuminen" + +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Attendance" +msgid "Attendance" +msgstr "osallistuminen" + +#. Option for a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Attendance" +msgstr "osallistuminen" + +#. Label of a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Attendance" +msgstr "osallistuminen" + +#. Label of a chart in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Attendance Dashboard" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "osallistuminen, päivä" + +#. Label of a Date field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Attendance Date" +msgstr "osallistuminen, päivä" + +#. Label of a Date field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Attendance From Date" +msgstr "osallistuminen päivästä" + +#: hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "osallistuminen päivästä, osallistuminen päivään To vaaditaan" + +#: hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#: hr/doctype/attendance/attendance_list.js:115 +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:177 +msgid "Attendance Marked" +msgstr "Läsnäolo merkitty" + +#. Label of a Link field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Attendance Marked" +msgstr "Läsnäolo merkitty" + +#. Name of a DocType +#: hr/doctype/attendance_request/attendance_request.json +msgid "Attendance Request" +msgstr "Osallistumishakemus" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Attendance Request" +msgstr "Osallistumishakemus" + +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Attendance Request" +msgid "Attendance Request" +msgstr "Osallistumishakemus" + +#. Label of a Date field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Attendance To Date" +msgstr "osallistuminen päivään" + +#: hr/doctype/attendance_request/attendance_request.py:105 +msgid "Attendance Updated" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hr/doctype/attendance/attendance.py:56 +msgid "Attendance can not be marked for future dates: {0}" +msgstr "" + +#: hr/doctype/attendance/attendance.py:62 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:176 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hr/doctype/attendance/attendance.py:113 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hr/doctype/attendance/attendance.py:74 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:545 +msgid "Attendance for employee {0} is already marked for this day" +msgstr "Läsnäolo työntekijöiden {0} on jo merkitty tätä päivää" + +#: hr/doctype/attendance/attendance_list.js:95 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hr/doctype/shift_type/shift_type.js:29 +msgid "Attendance has been marked as per employee check-ins" +msgstr "Osallistuminen on merkitty työntekijöiden sisäänkirjautumisia kohti" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:218 +msgid "Attendance marked successfully" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:123 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "Läsnäoloa ei ole lähetetty {0} lomalle, koska se on loma." + +#: hr/doctype/attendance_request/attendance_request.py:132 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of a Date field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Attendance will be marked automatically only after this date." +msgstr "Läsnäolo merkitään automaattisesti vasta tämän päivämäärän jälkeen." + +#. Label of a Section Break field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Attendees" +msgstr "Osallistujat" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:45 +msgid "Attrition Count" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:20 +#: public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "Elokuu" + +#. Label of a Section Break field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Auto Attendance Settings" +msgstr "Automaattinen osallistumisasetukset" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Auto Leave Encashment" +msgstr "Automaattinen poistuminen" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Automated Based on Goal Progress" +msgstr "" + +#. Description of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Available Leave(s)" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Average Feedback Score" +msgstr "" + +#. Label of a Rating field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Average Rating" +msgstr "" + +#. Description of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score (out of 5)" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:223 +msgid "Avg Utilization" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:229 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for a Select field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Awaiting Response" +msgstr "Odottaa vastausta" + +#: hr/doctype/leave_application/leave_application.py:166 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:48 +msgid "Bank" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Bank Account" +msgstr "" + +#. Label of a Data field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Bank Account No" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Bank Details" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.js:89 +msgid "Bank Entries" +msgstr "Bank merkinnät" + +#: payroll/report/bank_remittance/bank_remittance.py:33 +msgid "Bank Name" +msgstr "" + +#. Label of a Data field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Bank Name" +msgstr "" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/bank_remittance/bank_remittance.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Bank Remittance" +msgstr "Pankkisiirto" + +#: payroll/doctype/salary_structure/salary_structure.js:143 +msgid "Base" +msgstr "pohja" + +#. Label of a Currency field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Base" +msgstr "pohja" + +#. Label of a Section Break field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Base & Variable" +msgstr "" + +#. Label of a Int field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Begin On (Days)" +msgstr "" + +#. Label of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Begin check-in before shift start time (in minutes)" +msgstr "Aloita sisäänkirjautuminen ennen vuoron alkamisaikaa (minuutteina)" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Beginner" +msgstr "Aloittelija" + +#: controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: overrides/dashboard_overrides.py:30 +msgid "Benefit" +msgstr "hyöty" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Benefits" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Benefits" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:171 +msgid "Bill Amount" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:254 +msgid "Billed Hours" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:70 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Bimonthly" +msgstr "Kahdesti kuussa" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Bimonthly" +msgstr "Kahdesti kuussa" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Bimonthly" +msgstr "Kahdesti kuussa" + +#: controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "Syntymäpäivämuistutus" + +#: controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Birthdays" +msgstr "" + +#. Label of a Date field in DocType 'Leave Block List Date' +#: hr/doctype/leave_block_list_date/leave_block_list_date.json +msgctxt "Leave Block List Date" +msgid "Block Date" +msgstr "estopäivä" + +#. Label of a Section Break field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Block Days" +msgstr "estopäivää" + +#. Label of a Section Break field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Body" +msgstr "" + +#. Label of a Section Break field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Bonus" +msgstr "" + +#. Label of a Currency field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Bonus Amount" +msgstr "Bonusmäärä" + +#. Label of a Date field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Bonus Payment Date" +msgstr "Bonuspäivä" + +#: payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "Bonuspalkkioaika ei voi olla aikaisempi päivämäärä" + +#: hr/report/employee_analytics/employee_analytics.py:33 +#: hr/report/employee_birthday/employee_birthday.py:24 +#: payroll/doctype/salary_structure/salary_structure.js:133 +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:29 +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:21 +#: payroll/report/salary_register/salary_register.py:135 +#: public/js/salary_slip_deductions_report_filters.js:48 +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Branch" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Branch" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Branch" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:180 +msgid "Branch: {0}" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:99 +msgid "Bulk Assign Structure" +msgstr "" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:130 +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#: payroll/report/income_tax_computation/income_tax_computation.py:515 +msgid "CTC" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "CTC" +msgstr "" + +#. Label of a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Calculate Payroll Working Days Based On" +msgstr "Laske palkanlaskupäivät tämän perusteella" + +#. Description of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Calculated in days" +msgstr "Laskettu päivinä" + +#: setup.py:323 +msgid "Calls" +msgstr "Pyynnöt" + +#: setup.py:392 +msgid "Campaign" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:116 +msgid "Cancellation Queued" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Cancelled" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:255 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:258 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:200 +msgid "Cannot create or change transactions against a {0} Appraisal Cycle." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:552 +msgid "Cannot find active Leave Period" +msgstr "Ei ole aktiivista lomaaikaa" + +#: hr/doctype/attendance/attendance.py:145 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:59 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:138 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hr/doctype/goal/goal_list.js:104 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of a Check field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Carry Forward" +msgstr "siirrä" + +#. Label of a Section Break field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Carry Forward" +msgstr "siirrä" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Carry Forwarded Leaves" +msgstr "siirrä välitetyt poistumiset" + +#: setup.py:338 setup.py:339 +msgid "Casual Leave" +msgstr "tavallinen poistuminen" + +#. Label of a Text field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Cause of Grievance" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Change" +msgstr "" + +#: hr/doctype/goal/goal.js:96 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Account" +msgid "Chart of Accounts" +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Cost Center" +msgid "Chart of Cost Centers" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1355 +msgid "Check Error Log {0} for more details." +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Check Vacancies On Job Offer Creation" +msgstr "Tarkista avoimien työpaikkojen luomisen tarjoukset" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:119 +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:329 +msgid "Check {0} for more details" +msgstr "" + +#. Label of a Date field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Check-in Date" +msgstr "Sisäänkirjautumispäivä" + +#. Label of a Date field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Check-out Date" +msgstr "Lähtöpäivä" + +#: hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Claim Benefit For" +msgstr "Korvausetu" + +#. Label of a Date field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Claim Date" +msgstr "Vaatimuspäivä" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Claimed" +msgstr "väitti" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:69 +msgid "Claimed Amount" +msgstr "Vahvistettu määrä" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Claimed Amount" +msgstr "Vahvistettu määrä" + +#. Label of a Currency field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Claimed Amount" +msgstr "Vahvistettu määrä" + +#. Label of a Card Break in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: overrides/dashboard_overrides.py:81 +msgid "Claims" +msgstr "" + +#: www/jobs/index.html:20 +msgid "Clear All" +msgstr "" + +#. Label of a Date field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Clearance Date" +msgstr "" + +#. Option for a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Cleared" +msgstr "" + +#. Option for a Select field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Cleared" +msgstr "" + +#: hr/doctype/goal/goal.js:75 +msgid "Close" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Closed" +msgstr "" + +#. Option for a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Closed" +msgstr "" + +#: templates/generators/job_opening.html:170 +msgid "Closed On" +msgstr "" + +#. Label of a Date field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Closed On" +msgstr "" + +#: templates/generators/job_opening.html:170 +msgid "Closes On" +msgstr "" + +#. Label of a Date field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Closes On" +msgstr "" + +#: www/jobs/index.html:216 +msgid "Closes on:" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:78 +msgid "Closing Balance" +msgstr "" + +#. Label of a Text field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Closing Notes" +msgstr "Loppuilmoitukset" + +#. Label of a Text field in DocType 'Appointment Letter Template' +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgctxt "Appointment Letter Template" +msgid "Closing Notes" +msgstr "Loppuilmoitukset" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:117 +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:122 +msgid "Collapse All" +msgstr "" + +#. Label of a Color field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Color" +msgstr "" + +#. Label of a Text field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Comments" +msgstr "" + +#. Label of a Small Text field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Comments" +msgstr "" + +#: setup.py:384 +msgid "Commission" +msgstr "" + +#: hr/dashboard_chart_source/employees_by_age/employees_by_age.js:8 +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js:8 +#: hr/doctype/goal/goal_tree.js:10 +#: hr/doctype/leave_control_panel/leave_control_panel.js:172 +#: hr/report/appraisal_overview/appraisal_overview.js:9 +#: hr/report/employee_advance_summary/employee_advance_summary.js:29 +#: hr/report/employee_advance_summary/employee_advance_summary.py:54 +#: hr/report/employee_analytics/employee_analytics.js:9 +#: hr/report/employee_analytics/employee_analytics.py:14 +#: hr/report/employee_analytics/employee_analytics.py:37 +#: hr/report/employee_birthday/employee_birthday.js:16 +#: hr/report/employee_birthday/employee_birthday.py:28 +#: hr/report/employee_exits/employee_exits.js:21 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:9 +#: hr/report/employee_leave_balance/employee_leave_balance.js:21 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:16 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:50 +#: hr/report/project_profitability/project_profitability.js:9 +#: hr/report/recruitment_analytics/recruitment_analytics.js:9 +#: hr/report/shift_attendance/shift_attendance.js:40 +#: hr/report/shift_attendance/shift_attendance.py:104 +#: payroll/report/bank_remittance/bank_remittance.js:9 +#: payroll/report/income_tax_computation/income_tax_computation.js:9 +#: payroll/report/salary_register/salary_register.js:39 +#: payroll/report/salary_register/salary_register.py:156 +#: public/js/salary_slip_deductions_report_filters.js:7 +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Company" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Company" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Account' +#: hr/doctype/expense_claim_account/expense_claim_account.json +msgctxt "Expense Claim Account" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Period' +#: payroll/doctype/payroll_period/payroll_period.json +msgctxt "Payroll Period" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Salary Component Account' +#: payroll/doctype/salary_component_account/salary_component_account.json +msgctxt "Salary Component Account" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Company" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Company Details" +msgstr "" + +#. Name of a DocType +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Compensatory Leave Request" +msgstr "Korvaushyvityspyyntö" + +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgctxt "Compensatory Leave Request" +msgid "Compensatory Leave Request" +msgstr "Korvaushyvityspyyntö" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Compensatory Leave Request" +msgstr "Korvaushyvityspyyntö" + +#: setup.py:347 setup.py:348 +msgid "Compensatory Off" +msgstr "korvaava on pois" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Completed" +msgstr "" + +#. Label of a Date field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Completed On" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.js:95 +msgid "Completing onboarding" +msgstr "" + +#. Label of a Data field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Component" +msgstr "komponentti" + +#. Label of a Link field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Component" +msgstr "komponentti" + +#. Label of a Section Break field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Component properties and references " +msgstr "Komponenttien ominaisuudet ja viitteet" + +#. Label of a Code field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Condition" +msgstr "" + +#. Label of a Code field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Condition" +msgstr "" + +#. Label of a Code field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "Condition" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Condition & Formula" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:13 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of a Section Break field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Condition and formula" +msgstr "Kunto ja kaava" + +#. Label of a Section Break field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Conditions" +msgstr "olosuhteet" + +#. Label of a HTML field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Conditions and Formula variable and example" +msgstr "Ehdot ja kaavan muuttuja ja esimerkki" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Conference" +msgstr "Konferenssi" + +#. Label of a Tab Break field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Connections" +msgstr "" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Connections" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: payroll/report/income_tax_computation/income_tax_computation.js:40 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Consider Unmarked Attendance As" +msgstr "Harkitse merkitsemätöntä osallistumista nimellä" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:55 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Contact Email" +msgstr "" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Contact No." +msgstr "" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Contact Number" +msgstr "Yhteysnumero" + +#. Label of a Data field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Contact Number" +msgstr "Yhteysnumero" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Contact Number" +msgstr "Yhteysnumero" + +#: setup.py:383 +msgid "Contract" +msgstr "" + +#. Label of a Attach field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Copy of Invitation/Announcement" +msgstr "Kopio kutsusta / ilmoituksesta" + +#: hr/report/project_profitability/project_profitability.py:178 +msgid "Cost" +msgstr "" + +#. Label of a Link field in DocType 'Employee Cost Center' +#: payroll/doctype/employee_cost_center/employee_cost_center.json +msgctxt "Employee Cost Center" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Cost Center" +msgstr "" + +#. Label of a Table field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Cost Centers" +msgstr "" + +#. Label of a Table field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Costing" +msgstr "" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Costing Details" +msgstr "Kustannusten tiedot" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1416 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:299 +msgid "Could not update Goal" +msgstr "" + +#: hr/doctype/goal/goal_list.js:138 +msgid "Could not update goals" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Country" +msgstr "" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Course" +msgstr "kurssi" + +#. Label of a Data field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Course" +msgstr "kurssi" + +#. Label of a Text field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Cover Letter" +msgstr "Saatekirje" + +#: hr/doctype/employee_advance/employee_advance.js:50 +#: hr/doctype/employee_advance/employee_advance.js:61 +#: hr/doctype/employee_advance/employee_advance.js:72 +#: hr/doctype/employee_advance/employee_advance.js:76 +#: hr/doctype/employee_onboarding/employee_onboarding.js:44 +#: hr/doctype/employee_onboarding/employee_onboarding.js:45 +#: hr/doctype/expense_claim/expense_claim.js:235 +#: hr/doctype/job_applicant/job_applicant.js:26 +#: hr/doctype/job_applicant/job_applicant.js:46 +#: hr/doctype/vehicle_log/vehicle_log.js:9 +#: hr/doctype/vehicle_log/vehicle_log.js:10 +#: public/js/erpnext/delivery_trip.js:12 +msgid "Create" +msgstr "" + +#: hr/doctype/employee_referral/employee_referral.js:39 +msgid "Create Additional Salary" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:35 +msgid "Create Appraisals" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_department/create_department.json +msgid "Create Department" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_designation/create_designation.json +msgid "Create Designation" +msgstr "" + +#. Title of an Onboarding Step +#: hr/doctype/job_offer/job_offer.js:40 +#: hr/onboarding_step/create_employee/create_employee.json +#: payroll/onboarding_step/create_employee/create_employee.json +msgid "Create Employee" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_holiday_list/create_holiday_list.json +msgid "Create Holiday List" +msgstr "" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_income_tax_slab/create_income_tax_slab.json +msgid "Create Income Tax Slab" +msgstr "" + +#: hr/doctype/interview_round/interview_round.js:7 +msgid "Create Interview" +msgstr "" + +#: hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.js:31 +msgid "Create Job Opening" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.js:10 +msgid "Create Journal Entry" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_leave_allocation/create_leave_allocation.json +msgid "Create Leave Allocation" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_leave_application/create_leave_application.json +msgid "Create Leave Application" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_leave_type/create_leave_type.json +msgid "Create Leave Type" +msgstr "" + +#. Label of a Check field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Create New Employee Id" +msgstr "Luo uusi työntekijän tunnus" + +#: payroll/doctype/gratuity/gratuity.js:36 +msgid "Create Payment Entry" +msgstr "" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_payroll_period/create_payroll_period.json +msgid "Create Payroll Period" +msgstr "" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_salary_component/create_salary_component.json +msgid "Create Salary Component" +msgstr "" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_salary_slip/create_salary_slip.json +#: public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "Tee palkkalaskelma" + +#: payroll/doctype/payroll_entry/payroll_entry.js:72 +#: payroll/doctype/payroll_entry/payroll_entry.js:79 +#: payroll/doctype/payroll_entry/payroll_entry.js:146 +msgid "Create Salary Slips" +msgstr "Luo palkkalippuja" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_salary_structure/create_salary_structure.json +msgid "Create Salary Structure" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Create Separate Payment Entry Against Benefit Claim" +msgstr "Luo erillinen maksuerä etuuskohtelusta" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:191 +msgid "Creating Appraisals" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:412 +msgid "Creating Payment Entries......" +msgstr "Maksupyyntöjen luominen ......" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1378 +msgid "Creating Salary Slips..." +msgstr "Palkkaliikkeiden luominen ..." + +#: hr/doctype/leave_control_panel/leave_control_panel.py:128 +msgid "Creation Failed" +msgstr "" + +#: hr/doctype/appraisal_template/appraisal_template.py:23 +msgid "Criteria" +msgstr "" + +#. Label of a Data field in DocType 'Employee Feedback Criteria' +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgctxt "Employee Feedback Criteria" +msgid "Criteria" +msgstr "" + +#. Label of a Link field in DocType 'Employee Feedback Rating' +#: hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgctxt "Employee Feedback Rating" +msgid "Criteria" +msgstr "" + +#. Description of a Table field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:206 +#: payroll/report/bank_remittance/bank_remittance.py:48 +#: payroll/report/salary_register/salary_register.js:26 +#: payroll/report/salary_register/salary_register.py:244 +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Currency" +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Currency" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grade' +#: hr/doctype/employee_grade/employee_grade.json +msgctxt "Employee Grade" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Currency" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Currency " +msgstr "" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:99 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#: hr/employee_property_update.js:85 +msgid "Current" +msgstr "nykyinen" + +#. Label of a Data field in DocType 'Employee Property History' +#: hr/doctype/employee_property_history/employee_property_history.json +msgctxt "Employee Property History" +msgid "Current" +msgstr "nykyinen" + +#. Label of a Currency field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Current CTC" +msgstr "" + +#. Label of a Int field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Current Count" +msgstr "Nykyinen määrä" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Current Employer " +msgstr "" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Current Job Title" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Current Month Income Tax" +msgstr "" + +#: hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "Nykyisen matkamittarin arvon tulisi olla suurempi kuin viimeisen matkamittarin arvo {0}" + +#. Label of a Int field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Current Odometer value " +msgstr "Nykyinen matkamittarin arvo" + +#. Label of a Int field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Current Openings" +msgstr "Nykyiset avaukset" + +#. Option for a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Current Slab" +msgstr "" + +#. Label of a Int field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Current Work Experience" +msgstr "" + +#. Label of a Table field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Current Work Experience" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for a Select field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Custom Range" +msgstr "" + +#: hr/report/project_profitability/project_profitability.js:31 +#: hr/report/project_profitability/project_profitability.py:135 +msgid "Customer" +msgstr "" + +#. Label of a Data field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Cycle Name" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Daily" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Daily" +msgstr "" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Daily" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/doctype/daily_work_summary/daily_work_summary.json +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Daily Work Summary" +msgstr "Päivittäinen työ Yhteenveto" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Daily Work Summary" +msgid "Daily Work Summary" +msgstr "Päivittäinen työ Yhteenveto" + +#. Name of a DocType +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hr/page/team_updates/team_updates.js:12 +msgid "Daily Work Summary Group" +msgstr "Päivittäinen työyhteenvetoryhmä" + +#. Label of a Link field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Daily Work Summary Group" +msgstr "Päivittäinen työyhteenvetoryhmä" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgctxt "Daily Work Summary Group" +msgid "Daily Work Summary Group" +msgstr "Päivittäinen työyhteenvetoryhmä" + +#. Name of a DocType +#: hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "Päivittäisen työyhteenvetoryhmän käyttäjä" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Daily Work Summary Replies" +msgstr "Päivittäisen työyhteenveton vastaukset" + +#. Label of a shortcut in the Employee Lifecycle Workspace +#. Label of a shortcut in the Expense Claims Workspace +#. Label of a shortcut in the Recruitment Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Label of a shortcut in the Payroll Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/expense_claims/expense_claims.json +#: hr/workspace/recruitment/recruitment.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +#: payroll/workspace/payroll/payroll.json +msgid "Dashboard" +msgstr "" + +#. Label of a Tab Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Dashboard" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/data_import/data_import.json +msgid "Data Import" +msgstr "" + +#: hr/notification/training_scheduled/training_scheduled.html:27 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:9 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:22 +#: hr/report/vehicle_expenses/vehicle_expenses.py:42 +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Date" +msgstr "" + +#. Label of a Datetime field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Date " +msgstr "" + +#: hr/doctype/goal/goal_tree.js:38 +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.js:16 +msgid "Date Range" +msgstr "Ajanjakso" + +#: hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "Päivä toistetaan" + +#: hr/report/employee_analytics/employee_analytics.py:32 +#: hr/report/employee_birthday/employee_birthday.py:23 +msgid "Date of Birth" +msgstr "" + +#. Label of a Date field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Date of Birth" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:32 +#: payroll/report/income_tax_computation/income_tax_computation.py:507 +#: payroll/report/salary_register/salary_register.py:129 setup.py:394 +msgid "Date of Joining" +msgstr "" + +#. Label of a Date field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Date of Joining" +msgstr "" + +#. Label of a Date field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Date of Joining" +msgstr "" + +#. Label of a Date field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Date of Joining" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Date of Joining" +msgstr "" + +#. Label of a Data field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Date of Joining" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Dates & Reason" +msgstr "" + +#. Label of a Select field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Dates Based On" +msgstr "" + +#: payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "Debit A / C-numero" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:24 +#: public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "Joulu" + +#: hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of a Table field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Declarations" +msgstr "julistukset" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Declaration +#. Category' +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Declared Amount" +msgstr "Ilmoitettu määrä" + +#. Label of a Check field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Vähennä täysi vero valitusta palkanlaskentapäivästä" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Vähennä täysi vero valitusta palkanlaskentapäivästä" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Vähennä täysi vero valitusta palkanlaskentapäivästä" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Deduct Tax For Unclaimed Employee Benefits" +msgstr "Vähennä veroa lunastamattomista työntekijöiden eduista" + +#. Label of a Check field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Deduct Tax For Unclaimed Employee Benefits" +msgstr "Vähennä veroa lunastamattomista työntekijöiden eduista" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "Vähennettävä vero, joka ei ole lähetetty verovapautustodistukseksi" + +#. Label of a Check field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "Vähennettävä vero, joka ei ole lähetetty verovapautustodistukseksi" + +#: payroll/report/salary_register/salary_register.py:84 +#: payroll/report/salary_register/salary_register.py:91 +msgid "Deduction" +msgstr "vähennys" + +#. Option for a Select field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Deduction" +msgstr "vähennys" + +#. Label of a Card Break in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Deduction Reports" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.js:74 +msgid "Deduction from Salary" +msgstr "" + +#. Label of a Table field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Deductions" +msgstr "vähennykset" + +#. Label of a Table field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Deductions" +msgstr "vähennykset" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Account' +#: hr/doctype/expense_claim_account/expense_claim_account.json +msgctxt "Expense Claim Account" +msgid "Default Account" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Default Account" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Default Amount" +msgstr "oletus arvomäärä" + +#. Description of a Link field in DocType 'Salary Component Account' +#: payroll/doctype/salary_component_account/salary_component_account.json +msgctxt "Salary Component Account" +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "Oletus Bank / rahatililleen automaattisesti päivitetään Palkka Päiväkirjakirjaus kun tämä tila on valittuna." + +#. Label of a Currency field in DocType 'Employee Grade' +#: hr/doctype/employee_grade/employee_grade.json +msgctxt "Employee Grade" +msgid "Default Base Pay" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grade' +#: hr/doctype/employee_grade/employee_grade.json +msgctxt "Employee Grade" +msgid "Default Salary Structure" +msgstr "Oletuspalkkarakenne" + +#. Label of a Check field in DocType 'Expense Claim Type' +#: hr/doctype/expense_claim_type/expense_claim_type.json +msgctxt "Expense Claim Type" +msgid "Deferred Expense Account" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Define Opening Balance for Earning and Deductions" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Delivery Trip" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.js:177 +#: hr/report/appraisal_overview/appraisal_overview.js:29 +#: hr/report/appraisal_overview/appraisal_overview.py:61 +#: hr/report/employee_analytics/employee_analytics.py:34 +#: hr/report/employee_birthday/employee_birthday.py:25 +#: hr/report/employee_exits/employee_exits.js:27 +#: hr/report/employee_exits/employee_exits.py:65 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:37 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:62 +#: hr/report/employee_leave_balance/employee_leave_balance.js:30 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:30 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py:24 +#: hr/report/shift_attendance/shift_attendance.js:34 +#: hr/report/shift_attendance/shift_attendance.py:97 +#: payroll/doctype/salary_structure/salary_structure.js:135 +#: payroll/report/income_tax_computation/income_tax_computation.js:33 +#: payroll/report/income_tax_computation/income_tax_computation.py:494 +#: payroll/report/salary_register/salary_register.py:142 +#: public/js/salary_slip_deductions_report_filters.js:42 setup.py:400 +#: templates/generators/job_opening.html:82 +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Department" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Department" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Employee Detail' +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgctxt "Payroll Employee Detail" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Department" +msgstr "" + +#. Name of a DocType +#: hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "Osastopäällikkö" + +#. Label of a chart in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:182 +msgid "Department: {0}" +msgstr "" + +#. Label of a Datetime field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Departure Datetime" +msgstr "Lähtö Datetime" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Depends on Payment Days" +msgstr "Riippuu maksupäivistä" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Depends on Payment Days" +msgstr "Riippuu maksupäivistä" + +#: hr/doctype/goal/goal_tree.js:156 +msgid "Description" +msgstr "" + +#. Label of a Long Text field in DocType 'Appointment Letter content' +#: hr/doctype/appointment_letter_content/appointment_letter_content.json +msgctxt "Appointment Letter content" +msgid "Description" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Description" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Description" +msgstr "" + +#. Label of a Text Editor field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Description" +msgstr "" + +#. Label of a Text field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Expected Skill Set' +#: hr/doctype/expected_skill_set/expected_skill_set.json +msgctxt "Expected Skill Set" +msgid "Description" +msgstr "" + +#. Label of a Text Editor field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Expense Claim Type' +#: hr/doctype/expense_claim_type/expense_claim_type.json +msgctxt "Expense Claim Type" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Description" +msgstr "" + +#. Label of a Section Break field in DocType 'Goal' +#. Label of a Text Editor field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Description" +msgstr "" + +#. Label of a Text field in DocType 'Grievance Type' +#: hr/doctype/grievance_type/grievance_type.json +msgctxt "Grievance Type" +msgid "Description" +msgstr "" + +#. Label of a Data field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Description" +msgstr "" + +#. Label of a Text field in DocType 'Interview Type' +#: hr/doctype/interview_type/interview_type.json +msgctxt "Interview Type" +msgid "Description" +msgstr "" + +#. Label of a Text Editor field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'KRA' +#: hr/doctype/kra/kra.json +msgctxt "KRA" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Description" +msgstr "" + +#. Label of a Text field in DocType 'Skill' +#: hr/doctype/skill/skill.json +msgctxt "Skill" +msgid "Description" +msgstr "" + +#. Label of a Text Editor field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Description" +msgstr "" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Description" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.js:35 +#: hr/report/appraisal_overview/appraisal_overview.py:30 +#: hr/report/employee_analytics/employee_analytics.py:35 +#: hr/report/employee_birthday/employee_birthday.py:26 +#: hr/report/employee_exits/employee_exits.js:33 +#: hr/report/employee_exits/employee_exits.py:72 +#: hr/report/recruitment_analytics/recruitment_analytics.py:59 +#: payroll/doctype/salary_structure/salary_structure.js:134 +#: payroll/report/income_tax_computation/income_tax_computation.py:501 +#: payroll/report/salary_register/salary_register.py:149 +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Designation" +msgstr "" + +#. Linked DocType in Appraisal Template's connections +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Designation" +msgstr "" + +#. Label of a Data field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Designation" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Designation" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Designation" +msgstr "" + +#. Label of a Read Only field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Designation" +msgstr "" + +#. Label of a Data field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Designation" +msgstr "" + +#. Label of a Data field in DocType 'Payroll Employee Detail' +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgctxt "Payroll Employee Detail" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Designation" +msgstr "" + +#. Name of a DocType +#: hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "Nimitystaito" + +#: payroll/doctype/payroll_entry/payroll_entry.py:184 +msgid "Designation: {0}" +msgstr "" + +#: templates/emails/training_event.html:4 +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Details" +msgstr "" + +#. Label of a Text Editor field in DocType 'Job Applicant Source' +#: hr/doctype/job_applicant_source/job_applicant_source.json +msgctxt "Job Applicant Source" +msgid "Details" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Details" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Details of Sponsor (Name, Location)" +msgstr "Sponsorin tiedot (nimi, sijainti)" + +#. Label of a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Determine Check-in and Check-out" +msgstr "Määritä sisään- ja uloskirjautuminen" + +#. Label of a Check field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Disable" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Disable Rounded Total" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:96 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:39 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#. Label of a Check field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Disabled" +msgstr "" + +#. Label of a Check field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Disabled" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Disabled" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Dispensed Amount (Pro-rated)" +msgstr "Annetusta summasta (pro-luokiteltu)" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Do Not Include in Total" +msgstr "Älä sisällytä kokonaismäärään" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Do not include in total" +msgstr "Älä sisällytä kokonaan" + +#: hr/doctype/goal/goal.js:98 +msgid "Do you still want to proceed?" +msgstr "" + +#: hr/doctype/interview/interview.py:70 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: payroll/report/salary_register/salary_register.js:48 +msgid "Document Status" +msgstr "Dokumentin tila" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Domestic" +msgstr "kotimainen" + +#. Label of a Section Break field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Download Template" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Draft" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Driver" +msgid "Driver" +msgstr "" + +#: hr/doctype/attendance/attendance.py:79 +msgid "Duplicate Attendance" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:60 +msgid "Duplicate Entry" +msgstr "Kaksoiskirjaus" + +#: hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: payroll/doctype/additional_salary/additional_salary.py:139 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#. Label of a Int field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Duration (Days)" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "Varhainen poistuminen" + +#. Label of a Check field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Early Exit" +msgstr "Varhainen poistuminen" + +#. Label of a Check field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Early Exit" +msgstr "Varhainen poistuminen" + +#: hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Early Exit Grace Period" +msgstr "Varhaisvaroitusaika" + +#: hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Earned Leave" +msgstr "Ansaittu loma" + +#. Label of a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Earned Leave Frequency" +msgstr "Ansaittu Leave Frequency" + +#: hr/doctype/leave_allocation/leave_allocation.py:139 +msgid "Earned Leaves" +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:34 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:142 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hr/doctype/leave_type/leave_type.js:36 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#: payroll/report/salary_register/salary_register.py:84 +#: payroll/report/salary_register/salary_register.py:90 +msgid "Earning" +msgstr "ansio" + +#. Option for a Select field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Earning" +msgstr "ansio" + +#. Label of a Link field in DocType 'Employee Benefit Application Detail' +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgctxt "Employee Benefit Application Detail" +msgid "Earning Component" +msgstr "Ansaita komponentti" + +#. Label of a Link field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Earning Component" +msgstr "Ansaita komponentti" + +#: payroll/doctype/additional_salary/additional_salary.py:106 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of a Table field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Earnings" +msgstr "ansiot" + +#. Label of a Table field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Earnings" +msgstr "ansiot" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Earnings & Deductions" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Earnings & Deductions" +msgstr "" + +#. Label of a Section Break field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Earnings and Taxation " +msgstr "" + +#. Label of a Date field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Effective From" +msgstr "" + +#. Label of a Date field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Effective To" +msgstr "" + +#. Label of a Date field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Effective from" +msgstr "Voimassa alkaen" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Email" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Email" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Email Address" +msgstr "" + +#. Label of a Data field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Email ID" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Email Salary Slip to Employee" +msgstr "Sähköposti palkkakuitin työntekijöiden" + +#: payroll/doctype/salary_slip/salary_slip_list.js:5 +msgid "Email Salary Slips" +msgstr "" + +#. Label of a Code field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Email Sent To" +msgstr "Sähköposti lähetetty" + +#: hr/doctype/leave_application/leave_application.py:648 +msgid "Email sent to {0}" +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "Sähköpostit palkkakuitin työntekijöiden perustuu ensisijainen sähköposti valittu Työntekijän" + +#. Name of a role +#. Label of a Card Break in the HR Workspace +#: hr/doctype/appraisal/appraisal.json +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/appraisal_template/appraisal_template.json +#: hr/doctype/attendance_request/attendance_request.json +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hr/doctype/daily_work_summary/daily_work_summary.json +#: hr/doctype/employee_advance/employee_advance.json +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:139 +#: hr/doctype/employee_checkin/employee_checkin.json +#: hr/doctype/employee_grievance/employee_grievance.json +#: hr/doctype/employee_onboarding/employee_onboarding.js:26 +#: hr/doctype/employee_onboarding/employee_onboarding.js:39 +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hr/doctype/employee_promotion/employee_promotion.json +#: hr/doctype/employee_referral/employee_referral.json +#: hr/doctype/employee_separation/employee_separation.js:14 +#: hr/doctype/employee_transfer/employee_transfer.json +#: hr/doctype/expense_claim/expense_claim.json +#: hr/doctype/expense_claim_type/expense_claim_type.json +#: hr/doctype/goal/goal.json hr/doctype/goal/goal_tree.js:33 +#: hr/doctype/goal/goal_tree.js:62 +#: hr/doctype/grievance_type/grievance_type.json +#: hr/doctype/interest/interest.json +#: hr/doctype/leave_application/leave_application.json +#: hr/doctype/leave_control_panel/leave_control_panel.js:162 +#: hr/doctype/leave_encashment/leave_encashment.json +#: hr/doctype/leave_type/leave_type.json +#: hr/doctype/pwa_notification/pwa_notification.json +#: hr/doctype/shift_assignment/shift_assignment.json +#: hr/doctype/shift_request/shift_request.json +#: hr/doctype/shift_type/shift_type.json +#: hr/doctype/training_feedback/training_feedback.json +#: hr/report/appraisal_overview/appraisal_overview.js:24 +#: hr/report/appraisal_overview/appraisal_overview.py:22 +#: hr/report/employee_advance_summary/employee_advance_summary.js:9 +#: hr/report/employee_advance_summary/employee_advance_summary.py:47 +#: hr/report/employee_analytics/employee_analytics.py:30 +#: hr/report/employee_birthday/employee_birthday.py:21 +#: hr/report/employee_exits/employee_exits.js:39 +#: hr/report/employee_exits/employee_exits.py:24 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:31 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:55 +#: hr/report/employee_leave_balance/employee_leave_balance.js:36 +#: hr/report/employee_leave_balance/employee_leave_balance.py:40 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:24 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py:22 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:20 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:88 +#: hr/report/project_profitability/project_profitability.js:37 +#: hr/report/project_profitability/project_profitability.py:142 +#: hr/report/shift_attendance/shift_attendance.js:22 +#: hr/report/shift_attendance/shift_attendance.py:22 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.js:8 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:18 +#: hr/report/vehicle_expenses/vehicle_expenses.js:46 +#: hr/report/vehicle_expenses/vehicle_expenses.py:55 hr/workspace/hr/hr.json +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: payroll/doctype/employee_incentive/employee_incentive.json +#: payroll/doctype/employee_other_income/employee_other_income.json +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: payroll/doctype/retention_bonus/retention_bonus.json +#: payroll/doctype/salary_component/salary_component.json +#: payroll/doctype/salary_slip/salary_slip.json +#: payroll/doctype/salary_structure/salary_structure.js:137 +#: payroll/doctype/salary_structure/salary_structure.js:200 +#: payroll/report/income_tax_computation/income_tax_computation.js:26 +#: payroll/report/income_tax_computation/income_tax_computation.py:481 +#: payroll/report/income_tax_deductions/income_tax_deductions.py:25 +#: payroll/report/professional_tax_deductions/professional_tax_deductions.py:21 +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:20 +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:35 +#: payroll/report/salary_register/salary_register.js:32 +#: payroll/report/salary_register/salary_register.py:116 +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Employee" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Employee" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#. Label of a Section Break field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#. Label of a Tab Break field in DocType 'Employee Tax Exemption Proof +#. Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Employee Detail' +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgctxt "Payroll Employee Detail" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#. Label of a Section Break field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Employee" +msgstr "" + +#: payroll/report/bank_remittance/bank_remittance.py:35 +msgid "Employee A/C Number" +msgstr "Työntekijän A / C-numero" + +#. Name of a DocType +#: hr/doctype/employee_advance/employee_advance.json +msgid "Employee Advance" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a shortcut in the Expense Claims Workspace +#. Label of a Link in the HR Workspace +#: hr/workspace/expense_claims/expense_claims.json hr/workspace/hr/hr.json +msgctxt "Employee Advance" +msgid "Employee Advance" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Employee Advance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_advance_summary/employee_advance_summary.json +#: hr/workspace/expense_claims/expense_claims.json hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "Työntekijän ennakkomaksu" + +#: overrides/company.py:104 +msgid "Employee Advances" +msgstr "" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_analytics/employee_analytics.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employee Attendance Tool" +msgstr "Työntekijän läsnäolo Tool" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Employee Attendance Tool" +msgid "Employee Attendance Tool" +msgstr "Työntekijän läsnäolo Tool" + +#. Name of a DocType +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Employee Benefit Application" +msgstr "Työntekijän etuuskohtelu" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Benefit Application" +msgid "Employee Benefit Application" +msgstr "Työntekijän etuuskohtelu" + +#. Name of a DocType +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "Työntekijän etuuskohteen hakeminen" + +#. Name of a DocType +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Employee Benefit Claim" +msgstr "Työsuhde-etuustodistus" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Benefit Claim" +msgid "Employee Benefit Claim" +msgstr "Työsuhde-etuustodistus" + +#: setup.py:397 +msgid "Employee Benefits" +msgstr "työntekijä etuudet" + +#. Label of a Table field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Employee Benefits" +msgstr "työntekijä etuudet" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_birthday/employee_birthday.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "Työntekijöiden lennollepääsy" + +#. Name of a DocType +#: hr/doctype/employee_checkin/employee_checkin.json +msgid "Employee Checkin" +msgstr "Työntekijän Checkin" + +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Employee Checkin" +msgid "Employee Checkin" +msgstr "Työntekijän Checkin" + +#. Name of a DocType +#: payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee Details" +msgstr "Työntekijän tiedot" + +#. Label of a Section Break field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Employee Details" +msgstr "Työntekijän tiedot" + +#. Label of a Tab Break field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Employee Details" +msgstr "Työntekijän tiedot" + +#. Label of a Section Break field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Employee Details" +msgstr "Työntekijän tiedot" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Employee Details" +msgstr "Työntekijän tiedot" + +#. Label of a Section Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Employee Details" +msgstr "Työntekijän tiedot" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Employee Details" +msgstr "Työntekijän tiedot" + +#. Label of a Small Text field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Employee Emails" +msgstr "Työntekijän sähköpostit" + +#. Label of a Small Text field in DocType 'Training Result' +#: hr/doctype/training_result/training_result.json +msgctxt "Training Result" +msgid "Employee Emails" +msgstr "Työntekijän sähköpostit" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_exits/employee_exits.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Employee Feedback Criteria" +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:132 +msgid "Employee Filters" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_grade/employee_grade.json +#: payroll/doctype/salary_structure/salary_structure.js:136 +msgid "Employee Grade" +msgstr "Työntekijäluokka" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Employee Grade" +msgid "Employee Grade" +msgstr "Työntekijäluokka" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee Grade" +msgstr "Työntekijäluokka" + +#. Label of a Link field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Employee Grade" +msgstr "Työntekijäluokka" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Employee Grade" +msgstr "Työntekijäluokka" + +#. Label of a Link field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Employee Grade" +msgstr "Työntekijäluokka" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Employee Grade" +msgstr "Työntekijäluokka" + +#. Name of a DocType +#: hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Grievance" +msgstr "" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a shortcut in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Grievance" +msgid "Employee Grievance" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Employee Group" +msgid "Employee Group" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "Työntekijöiden sairausvakuutus" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of a Attach Image field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/employee_incentive/employee_incentive.json +msgid "Employee Incentive" +msgstr "Työntekijöiden kannustin" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Employee Incentive" +msgid "Employee Incentive" +msgstr "Työntekijöiden kannustin" + +#. Label of a Section Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_information/employee_information.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Employee Information" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hr/report/employee_leave_balance/employee_leave_balance.json +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#. Name of a Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Employee Lifecycle" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Employee Lifecycle Dashboard" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:26 +#: hr/report/employee_exits/employee_exits.py:30 +#: hr/report/employee_leave_balance/employee_leave_balance.py:47 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py:23 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:94 +#: hr/report/project_profitability/project_profitability.py:147 +#: hr/report/shift_attendance/shift_attendance.py:31 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:19 +#: payroll/report/bank_remittance/bank_remittance.py:27 +#: payroll/report/income_tax_computation/income_tax_computation.py:488 +#: payroll/report/income_tax_deductions/income_tax_deductions.py:32 +#: payroll/report/professional_tax_deductions/professional_tax_deductions.py:28 +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:27 +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:28 +#: payroll/report/salary_register/salary_register.py:123 +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Payroll Employee Detail' +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgctxt "Payroll Employee Detail" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Employee Name" +msgstr "" + +#. Label of a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee Naming By" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee Number" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Employee Onboarding" +msgstr "Työntekijä Onboarding" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a shortcut in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Onboarding" +msgid "Employee Onboarding" +msgstr "Työntekijä Onboarding" + +#. Name of a DocType +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgid "Employee Onboarding Template" +msgstr "Työntekijä Onboarding -malli" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee Onboarding Template" +msgstr "Työntekijä Onboarding -malli" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Onboarding Template" +msgid "Employee Onboarding Template" +msgstr "Työntekijä Onboarding -malli" + +#: hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "Työntekijän muut tulot" + +#. Name of a DocType +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Linked DocType in Appraisal Cycle's connections +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Employee Performance Feedback" +msgstr "" + +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Employee Performance Feedback" +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion" +msgstr "Työntekijöiden edistäminen" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the Performance Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/performance/performance.json +msgctxt "Employee Promotion" +msgid "Employee Promotion" +msgstr "Työntekijöiden edistäminen" + +#. Label of a Section Break field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Employee Promotion Details" +msgstr "Työntekijöiden edistämisen tiedot" + +#: hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "Työntekijän omaisuuden historia" + +#. Name of a DocType +#: hr/doctype/employee_referral/employee_referral.json setup.py:391 +msgid "Employee Referral" +msgstr "Työntekijäviittaus" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Employee Referral" +msgid "Employee Referral" +msgstr "Työntekijäviittaus" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Employee Referral" +msgstr "Työntekijäviittaus" + +#: payroll/doctype/additional_salary/additional_salary.py:102 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Employee Responsible " +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_separation/employee_separation.json +msgid "Employee Separation" +msgstr "Työntekijöiden erottaminen" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a shortcut in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Separation" +msgid "Employee Separation" +msgstr "Työntekijöiden erottaminen" + +#. Name of a DocType +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgid "Employee Separation Template" +msgstr "Työntekijöiden erotusmalli" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Employee Separation Template" +msgstr "Työntekijöiden erotusmalli" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Separation Template" +msgid "Employee Separation Template" +msgstr "Työntekijöiden erotusmalli" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee Settings" +msgstr "työntekijän asetukset" + +#. Name of a DocType +#: hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "Työntekijän taito" + +#. Name of a DocType +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skill Map" +msgstr "Työntekijöiden taitokartta" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Skill Map" +msgid "Employee Skill Map" +msgstr "Työntekijöiden taitokartta" + +#. Label of a Table field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Employee Skills" +msgstr "Työntekijöiden taidot" + +#: hr/report/employee_exits/employee_exits.py:194 +#: hr/report/employee_leave_balance/employee_leave_balance.js:42 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +msgid "Employee Tax Exemption Category" +msgstr "Työntekijöiden verovapautusluokka" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Employee Tax Exemption Declaration" +msgstr "Työntekijöiden verovapauslauseke" + +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Employee Tax Exemption Declaration" +msgstr "Työntekijöiden verovapauslauseke" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "Työntekijöiden verovapautuksen ilmoitusryhmä" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Employee Tax Exemption Declaration Category" +msgstr "Työntekijöiden verovapautuksen ilmoitusryhmä" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "Työntekijöiden verovapautusta koskeva todistus" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Employee Tax Exemption Proof Submission" +msgstr "Työntekijöiden verovapautusta koskeva todistus" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "Työntekijöiden verovapautusta koskeva todisteiden esittäminen" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Employee Tax Exemption Sub Category" +msgstr "Työntekijöiden verovapautuksen alaryhmä" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Tax Exemption Sub Category" +msgid "Employee Tax Exemption Sub Category" +msgstr "Työntekijöiden verovapautuksen alaryhmä" + +#. Name of a DocType +#: hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "Työntekijän koulutus" + +#. Name of a DocType +#: hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer" +msgstr "Työntekijöiden siirto" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Transfer" +msgid "Employee Transfer" +msgstr "Työntekijöiden siirto" + +#. Label of a Table field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Employee Transfer Detail" +msgstr "Työntekijöiden siirron yksityiskohdat" + +#. Label of a Section Break field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Employee Transfer Details" +msgstr "Työntekijöiden siirron tiedot" + +#: hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of a Data field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Employee name" +msgstr "" + +#. Description of a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee records are created using the selected option" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:548 +msgid "Employee relieved on {0} must be set as 'Left'" +msgstr "työntekijä vapautettu {0} tulee asettaa \"vasemmalla\"" + +#: hr/doctype/shift_type/shift_type.py:168 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:161 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:52 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hr/doctype/shift_assignment/shift_assignment.py:116 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:151 +msgid "Employee {0} already submited an apllication {1} for the payroll period {2}" +msgstr "Työntekijä {0} on jo lähettänyt apllication {1} palkanlaskennan kaudelle {2}" + +#: hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:455 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:25 +msgid "Employee {0} has no maximum benefit amount" +msgstr "Työntekijä {0} ei ole enimmäishyvää" + +#: hr/doctype/attendance/attendance.py:198 +msgid "Employee {0} is not active or does not exist" +msgstr "Työntekijä {0} ei ole aktiivinen tai sitä ei ole olemassa" + +#: hr/doctype/attendance/attendance.py:178 +msgid "Employee {0} is on Leave on {1}" +msgstr "Työntekijä {0} on lähdössä {1}" + +#: hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hr/doctype/attendance/attendance.py:173 +msgid "Employee {0} on Half day on {1}" +msgstr "Työntekijän {0} Half päivä {1}" + +#. Subtitle of the Module Onboarding 'Human Resource' +#: hr/module_onboarding/human_resource/human_resource.json +msgid "Employee, Leaves, and more." +msgstr "" + +#: payroll/doctype/gratuity/gratuity.py:195 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#: hr/dashboard_chart_source/employees_by_age/employees_by_age.py:42 +msgid "Employees" +msgstr "Työntekijät" + +#. Label of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Employees" +msgstr "Työntekijät" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Employees" +msgstr "Työntekijät" + +#. Label of a Table field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Employees" +msgstr "Työntekijät" + +#. Label of a Table field in DocType 'Training Result' +#: hr/doctype/training_result/training_result.json +msgctxt "Training Result" +msgid "Employees" +msgstr "Työntekijät" + +#. Label of a HTML field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Employees HTML" +msgstr "Työntekijät HTML" + +#. Label of a HTML field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Employees HTML" +msgstr "Työntekijät HTML" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:31 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.py:79 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:115 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:116 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hr/workspace/leaves/leaves.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "Virallisena lomapäivänä työskentelevät työntekijät" + +#. Name of a DocType +#: hr/doctype/employment_type/employment_type.json +#: templates/generators/job_opening.html:134 +msgid "Employment Type" +msgstr "" + +#. Label of a Data field in DocType 'Employment Type' +#: hr/doctype/employment_type/employment_type.json +msgctxt "Employment Type" +msgid "Employment Type" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Employment Type" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Employment Type" +msgstr "" + +#. Label of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Enable Auto Attendance" +msgstr "Ota automaattinen läsnäolo käyttöön" + +#. Label of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Enable Late Entry Marking" +msgstr "" + +#. Label of a Check field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Enabled" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Encashment" +msgstr "perintä" + +#. Label of a Currency field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Encashment Amount" +msgstr "Encashment Määrä" + +#. Label of a Date field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Encashment Date" +msgstr "" + +#. Label of a Float field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Encashment Days" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:135 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:125 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Encrypt Salary Slips in Emails" +msgstr "Salaa palkkalaskut sähköpostissa" + +#: hr/doctype/attendance/attendance_list.js:58 +msgid "End" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:93 +#: hr/report/project_profitability/project_profitability.js:24 +#: hr/report/project_profitability/project_profitability.py:204 +#: payroll/report/salary_register/salary_register.py:169 +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Period' +#: payroll/doctype/payroll_period/payroll_period.json +msgctxt "Payroll Period" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Period Date' +#: payroll/doctype/payroll_period_date/payroll_period_date.json +msgctxt "Payroll Period Date" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "End Date" +msgstr "" + +#: hr/notification/training_scheduled/training_scheduled.html:34 +#: templates/emails/training_event.html:8 +msgid "End Time" +msgstr "" + +#. Label of a Time field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "End Time" +msgstr "" + +#. Label of a Datetime field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "End Time" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:188 +msgid "End date: {0}" +msgstr "" + +#: hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "Lopetusaika ei voi olla ennen aloitusaikaa" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Energy Point Log" +msgid "Energy Point Log" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Energy Point Rule" +msgid "Energy Point Rule" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Energy Point Settings" +msgid "Energy Point Settings" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hr/workspace/performance/performance.json +msgid "Energy Points" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.js:32 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:136 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#: hr/doctype/goal/goal_list.js:103 hr/doctype/goal/goal_list.js:113 +#: payroll/doctype/additional_salary/additional_salary.py:234 +msgid "Error" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:121 +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:331 +msgid "Error Log" +msgstr "" + +#. Label of a Small Text field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Error Message" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1177 +msgid "Error in formula or condition" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2117 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2196 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of a Currency field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Estimated Cost Per Position" +msgstr "Arvioitu kustannus per paikka" + +#: overrides/dashboard_overrides.py:47 +msgid "Evaluation" +msgstr "arviointi" + +#. Label of a Date field in DocType 'Employee Skill' +#: hr/doctype/employee_skill/employee_skill.json +msgctxt "Employee Skill" +msgid "Evaluation Date" +msgstr "Arviointipäivämäärä" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Event Details" +msgstr "Tapahtuman Yksityiskohdat" + +#: hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "Tapahtuman linkki" + +#: hr/notification/training_scheduled/training_scheduled.html:23 +#: templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "Tapahtuman sijainti" + +#: templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "Tapahtuman nimi" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Event Name" +msgstr "Tapahtuman nimi" + +#. Label of a Data field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Event Name" +msgstr "Tapahtuman nimi" + +#. Label of a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Event Status" +msgstr "Tapahtuman tila" + +#. Option for a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Every Valid Check-in and Check-out" +msgstr "Jokainen voimassa oleva sisään- ja uloskirjautuminen" + +#: controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Exam" +msgstr "Koe" + +#. Label of a Float field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Exchange Rate" +msgstr "" + +#. Label of a Float field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Exchange Rate" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Exchange Rate" +msgstr "" + +#: hr/doctype/attendance/attendance_list.js:78 +msgid "Exclude Holidays" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:111 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Exempted from Income Tax" +msgstr "Vapautettu tuloverosta" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Exempted from Income Tax" +msgstr "Vapautettu tuloverosta" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration +#. Category' +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Exemption Category" +msgstr "Poikkeusluokka" + +#. Label of a Read Only field in DocType 'Employee Tax Exemption Proof +#. Submission Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Exemption Category" +msgstr "Poikkeusluokka" + +#. Label of a Tab Break field in DocType 'Employee Tax Exemption Proof +#. Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Exemption Proofs" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration +#. Category' +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Exemption Sub Category" +msgstr "Poikkeusluokka" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission +#. Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Exemption Sub Category" +msgstr "Poikkeusluokka" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: overrides/dashboard_overrides.py:25 +msgid "Exit" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Exit Confirmed" +msgstr "" + +#. Name of a DocType +#: hr/doctype/exit_interview/exit_interview.json +#: hr/report/employee_exits/employee_exits.py:39 +msgid "Exit Interview" +msgstr "" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Exit Interview" +msgid "Exit Interview" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of a Text Editor field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Exit Interview Summary" +msgstr "Poistu haastatteluyhteenvedosta" + +#: hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:145 +msgid "Exit Questionnaire" +msgstr "" + +#. Label of a Section Break field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Exit Questionnaire" +msgstr "" + +#: hr/doctype/exit_interview/test_exit_interview.py:108 +#: hr/doctype/exit_interview/test_exit_interview.py:118 +#: hr/doctype/exit_interview/test_exit_interview.py:120 setup.py:472 +#: setup.py:474 setup.py:495 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Exit Questionnaire Web Form" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:112 +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:116 +msgid "Expand All" +msgstr "" + +#. Label of a Rating field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Expected Average Rating" +msgstr "" + +#. Label of a Rating field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Expected Average Rating" +msgstr "" + +#. Label of a Date field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Expected By" +msgstr "" + +#. Label of a Currency field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Expected Compensation" +msgstr "" + +#. Name of a DocType +#: hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Expected Skillset" +msgstr "" + +#: overrides/dashboard_overrides.py:29 +msgid "Expense" +msgstr "" + +#. Label of a Currency field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Expense" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Expense Account" +msgstr "" + +#. Name of a role +#: hr/doctype/employee_advance/employee_advance.json +#: hr/doctype/expense_claim/expense_claim.json +msgid "Expense Approver" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Expense Approver" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "Kulujen hyväksyntä pakollisena kulukorvauksessa" + +#. Name of a DocType +#. Label of a Card Break in the HR Workspace +#: hr/doctype/employee_advance/employee_advance.js:57 +#: hr/doctype/expense_claim/expense_claim.json +#: hr/doctype/vehicle_log/vehicle_log.js:7 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:20 +#: hr/workspace/hr/hr.json public/js/erpnext/delivery_trip.js:7 +msgid "Expense Claim" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a shortcut in the Expense Claims Workspace +#. Label of a Link in the HR Workspace +#: hr/workspace/expense_claims/expense_claims.json hr/workspace/hr/hr.json +msgctxt "Expense Claim" +msgid "Expense Claim" +msgstr "" + +#. Name of a DocType +#: hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "Matkakorvauslomakkeet Account" + +#. Name of a DocType +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "Kulujen ennakkovaatimus" + +#. Name of a DocType +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "Kulukorvauksen lisätiedot" + +#. Name of a DocType +#: hr/doctype/expense_claim_type/expense_claim_type.json +msgid "Expense Claim Type" +msgstr "Kulukorvaustyyppi" + +#. Label of a Link field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Expense Claim Type" +msgstr "Kulukorvaustyyppi" + +#. Label of a Data field in DocType 'Expense Claim Type' +#. Label of a Link in the Expense Claims Workspace +#: hr/doctype/expense_claim_type/expense_claim_type.json +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Expense Claim Type" +msgid "Expense Claim Type" +msgstr "Kulukorvaustyyppi" + +#: hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "Matkakorvauslomakkeet kulkuneuvojen Log {0}" + +#: hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "Matkakorvauslomakkeet {0} on jo olemassa Vehicle Log" + +#. Name of a Workspace +#. Label of a chart in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgid "Expense Claims" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Expense Claims Dashboard" +msgstr "" + +#. Label of a Date field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Expense Date" +msgstr "Kustannuspäivä" + +#. Label of a Section Break field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Expense Proof" +msgstr "Expense Proof" + +#. Name of a DocType +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "Kulut verot ja maksut" + +#. Label of a Table field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Expense Taxes and Charges" +msgstr "Kulut verot ja maksut" + +#. Label of a Link field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Expense Type" +msgstr "Kulutustyyppi" + +#. Label of a Table field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Expenses" +msgstr "" + +#. Label of a Tab Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Expenses & Advances" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:32 +msgid "Expire Allocation" +msgstr "Viimeinen varaus" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "Vanheta edelleenlähetetyt lehdet (päivät)" + +#: hr/doctype/leave_allocation/leave_allocation_list.js:8 +msgid "Expired" +msgstr "" + +#. Label of a Check field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Expired" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Expired Leave(s)" +msgstr "" + +#. Label of a Small Text field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Explanation" +msgstr "Selitys" + +#. Label of an action in the Onboarding Step 'HR Settings' +#: hr/onboarding_step/hr_settings/hr_settings.json +msgid "Explore" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:108 +msgid "Export" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:129 +msgid "Exporting..." +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Failed" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:116 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: overrides/company.py:37 +msgid "Failed to delete defaults for country {0}. Please contact support." +msgstr "" + +#: api/__init__.py:589 +msgid "Failed to download Salary Slip PDF" +msgstr "" + +#: hr/doctype/interview/interview.py:119 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: overrides/company.py:52 +msgid "Failed to setup defaults for country {0}. Please contact support." +msgstr "" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:326 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hr/doctype/interview/interview.py:212 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Failure Details" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:14 +#: public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "Helmikuu" + +#: hr/doctype/interview/interview.js:151 +msgid "Feedback" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Feedback" +msgstr "" + +#. Label of a Tab Break field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Feedback" +msgstr "" + +#. Label of a Tab Break field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Feedback" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Feedback" +msgstr "" + +#. Label of a Text field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Feedback" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of a HTML field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Feedback HTML" +msgstr "" + +#. Label of a HTML field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Feedback HTML" +msgstr "" + +#. Label of a Table field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Feedback Ratings" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Feedback Submitted" +msgstr "Palaute vahvistettu" + +#: hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: public/js/performance/performance_feedback.js:117 +msgid "Feedback {0} added successfully" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:64 +#: payroll/doctype/payroll_entry/payroll_entry.js:110 +msgid "Fetching Employees" +msgstr "" + +#. Label of a Data field in DocType 'Employee Property History' +#: hr/doctype/employee_property_history/employee_property_history.json +msgctxt "Employee Property History" +msgid "Field Name" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.js:106 +#: hr/doctype/leave_application/leave_application.js:104 +#: hr/doctype/leave_encashment/leave_encashment.js:28 +msgid "Fill the form and save it" +msgstr "Täytä muoto ja tallenna se" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Filled" +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.js:7 +msgid "Filter Based On" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Filter Employees" +msgstr "" + +#. Label of a HTML field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Filter List" +msgstr "" + +#: www/jobs/index.html:19 +msgid "Filters" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Filters" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Filters" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:57 +#: hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Final Decision" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:57 +#: hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Final Score" +msgstr "" + +#. Option for a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "First Check-in and Last Check-out" +msgstr "Ensimmäinen sisäänkirjautuminen ja viimeinen uloskirjautuminen" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "First Day" +msgstr "" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "First Name " +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.js:15 +msgid "Fiscal Year" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1310 +msgid "Fiscal Year {0} not found" +msgstr "Verovuoden {0} ei löytynyt" + +#. Label of a Card Break in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgid "Fleet Management" +msgstr "" + +#. Name of a role +#: hr/doctype/vehicle_log/vehicle_log.json +msgid "Fleet Manager" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Flexible Benefits" +msgstr "Joustavat edut" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Flight" +msgstr "Lento" + +#: hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of a Check field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Follow via Email" +msgstr "Seuraa sähköpostitse" + +#: setup.py:324 +msgid "Food" +msgstr "ruoka" + +#. Label of a Link field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "For Designation " +msgstr "" + +#: hr/doctype/attendance/attendance_list.js:29 +msgid "For Employee" +msgstr "Työntekijän" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "For Employee" +msgstr "Työntekijän" + +#. Description of a Float field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +#, python-format +msgctxt "Leave Type" +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of a Code field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Formula" +msgstr "Kaava" + +#. Label of a Code field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Formula" +msgstr "Kaava" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Fortnightly" +msgstr "joka toinen viikko" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Fortnightly" +msgstr "joka toinen viikko" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Fortnightly" +msgstr "joka toinen viikko" + +#. Label of a Float field in DocType 'Gratuity Rule Slab' +#: payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgctxt "Gratuity Rule Slab" +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of a Float field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Fraction of Daily Salary for Half Day" +msgstr "Murtoluku puolipäivän päivittäisestä palkasta" + +#. Label of a Float field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:193 +msgid "Fractional Cost" +msgstr "" + +#. Label of a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Frequency" +msgstr "" + +#: hr/doctype/leave_block_list/leave_block_list.js:57 +msgid "Friday" +msgstr "" + +#: payroll/report/salary_register/salary_register.js:8 +msgid "From" +msgstr "" + +#. Label of a Currency field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "From Amount" +msgstr "Määrää kohden" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js:15 +#: hr/report/employee_advance_summary/employee_advance_summary.js:16 +#: hr/report/employee_exits/employee_exits.js:9 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:17 +#: hr/report/employee_leave_balance/employee_leave_balance.js:8 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.js:8 +#: hr/report/shift_attendance/shift_attendance.js:8 +#: hr/report/vehicle_expenses/vehicle_expenses.js:24 +#: payroll/doctype/salary_structure/salary_structure.js:140 +#: payroll/report/bank_remittance/bank_remittance.js:17 +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "From Date" +msgstr "" + +#: hr/doctype/staffing_plan/staffing_plan.py:29 +#: payroll/doctype/salary_structure/salary_structure.js:257 +msgid "From Date cannot be greater than To Date" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:74 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "Päivämäärästä {0} ei voi olla, kun työntekijän vapauttaminen päivämäärä {1}" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:66 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "Päivämäärä {0} ei voi olla ennen työntekijän liittymispäivää {1}" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "From Employee" +msgstr "" + +#. Label of a Time field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "From Time" +msgstr "" + +#. Label of a Link field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "From User" +msgstr "" + +#: hr/utils.py:179 +msgid "From date can not be less than employee's joining date" +msgstr "Päivämäärä ei voi olla pienempi kuin työntekijän liittymispäivä" + +#: payroll/doctype/additional_salary/additional_salary.py:83 +msgid "From date can not be less than employee's joining date." +msgstr "Päivämäärä ei voi olla pienempi kuin työntekijän liittymispäivä." + +#: hr/doctype/leave_type/leave_type.js:31 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#. Label of a Int field in DocType 'Gratuity Rule Slab' +#: payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgctxt "Gratuity Rule Slab" +msgid "From(Year)" +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "Polttoainekulut" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:166 +msgid "Fuel Expenses" +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "polttoaineen hinta" + +#. Label of a Currency field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Fuel Price" +msgstr "polttoaineen hinta" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "Polttoaineen määrä" + +#. Label of a Float field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Fuel Qty" +msgstr "Polttoaineen määrä" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Full Name" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Full Name" +msgstr "" + +#. Name of a DocType +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Full and Final Statement" +msgid "Full and Final Settlement" +msgstr "" + +#. Name of a DocType +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hr/report/employee_exits/employee_exits.py:58 +msgid "Full and Final Statement" +msgstr "" + +#: setup.py:380 +msgid "Full-time" +msgstr "päätoiminen" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Fully Sponsored" +msgstr "Täysin sponsoroidut" + +#. Label of a Currency field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Funded Amount" +msgstr "Rahoitettu määrä" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Future Income Tax" +msgstr "" + +#: hr/utils.py:177 +msgid "Future dates not allowed" +msgstr "Tulevat päivät eivät ole sallittuja" + +#: hr/report/employee_analytics/employee_analytics.py:36 +#: hr/report/employee_birthday/employee_birthday.py:27 +msgid "Gender" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "General Ledger" +msgstr "" + +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:44 +msgid "Get Details From Declaration" +msgstr "Hanki lisätietoja ilmoituksesta" + +#: payroll/doctype/payroll_entry/payroll_entry.js:57 +msgid "Get Employees" +msgstr "Hanki työntekijät" + +#. Label of a Button field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Get Employees" +msgstr "Hanki työntekijät" + +#. Label of a Button field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Get Job Requisitions" +msgstr "" + +#. Label of a Button field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Get Template" +msgstr "hae mallipohja" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Gluten Free" +msgstr "Gluteeniton" + +#. Name of a DocType +#: hr/doctype/goal/goal.json hr/doctype/goal/goal_tree.js:45 +msgid "Goal" +msgstr "" + +#. Linked DocType in Appraisal Cycle's connections +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Goal" +msgstr "" + +#. Label of a Small Text field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Goal" +msgstr "" + +#. Label of a Data field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hr/doctype/goal/goal.json hr/workspace/performance/performance.json +msgctxt "Goal" +msgid "Goal" +msgstr "" + +#. Label of a Percent field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "Goal Completion (%)" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:55 +#: hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Goal Score (%)" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "Goal Score (weighted)" +msgstr "" + +#: hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hr/doctype/goal/goal_tree.js:295 +msgid "Goal updated successfully" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:130 +msgid "Goals" +msgstr "tavoitteet" + +#. Label of a Table field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Goals" +msgstr "tavoitteet" + +#: hr/doctype/goal/goal_list.js:134 +msgid "Goals updated successfully" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Grade" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Grade" +msgstr "" + +#. Label of a Data field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Grade" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Grand Total" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/gratuity/gratuity.json +#: payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Label of a Tab Break field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Gratuity" +msgstr "" + +#. Label of a Section Break field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Grievance" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Grievance Against" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Grievance Against Party" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Grievance Details" +msgstr "" + +#. Name of a DocType +#: hr/doctype/grievance_type/grievance_type.json +msgid "Grievance Type" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Grievance Type" +msgstr "" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Grievance Type" +msgid "Grievance Type" +msgstr "" + +#: payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: payroll/report/salary_register/salary_register.py:201 +msgid "Gross Pay" +msgstr "bruttomaksu" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Gross Pay" +msgstr "bruttomaksu" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Gross Year To Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.js:9 +msgid "Group" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:58 +msgid "Group By" +msgstr "" + +#: hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a role +#: hr/doctype/job_opening/job_opening.json +msgid "Guest" +msgstr "vieras" + +#. Name of a Workspace +#: hr/workspace/hr/hr.json +msgid "HR" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a role +#: hr/doctype/appointment_letter/appointment_letter.json +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hr/doctype/appraisal/appraisal.json +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/appraisal_template/appraisal_template.json +#: hr/doctype/attendance/attendance.json +#: hr/doctype/attendance_request/attendance_request.json +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hr/doctype/employee_checkin/employee_checkin.json +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +#: hr/doctype/employee_grade/employee_grade.json +#: hr/doctype/employee_grievance/employee_grievance.json +#: hr/doctype/employee_health_insurance/employee_health_insurance.json +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hr/doctype/employee_promotion/employee_promotion.json +#: hr/doctype/employee_referral/employee_referral.json +#: hr/doctype/employee_transfer/employee_transfer.json +#: hr/doctype/employment_type/employment_type.json +#: hr/doctype/expense_claim/expense_claim.json +#: hr/doctype/expense_claim_type/expense_claim_type.json +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hr/doctype/goal/goal.json hr/doctype/grievance_type/grievance_type.json +#: hr/doctype/interest/interest.json hr/doctype/interview/interview.json +#: hr/doctype/interview_feedback/interview_feedback.json +#: hr/doctype/interview_round/interview_round.json +#: hr/doctype/interview_type/interview_type.json +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +#: hr/doctype/leave_allocation/leave_allocation.json +#: hr/doctype/leave_application/leave_application.json +#: hr/doctype/leave_encashment/leave_encashment.json +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hr/doctype/leave_period/leave_period.json +#: hr/doctype/leave_policy/leave_policy.json +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hr/doctype/leave_type/leave_type.json +#: hr/doctype/shift_assignment/shift_assignment.json +#: hr/doctype/shift_request/shift_request.json +#: hr/doctype/shift_type/shift_type.json hr/doctype/skill/skill.json +#: hr/doctype/staffing_plan/staffing_plan.json +#: hr/doctype/training_event/training_event.json +#: hr/doctype/training_feedback/training_feedback.json +#: hr/doctype/training_program/training_program.json +#: hr/doctype/training_result/training_result.json +#: hr/doctype/upload_attendance/upload_attendance.json +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: payroll/doctype/employee_incentive/employee_incentive.json +#: payroll/doctype/employee_other_income/employee_other_income.json +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: payroll/doctype/gratuity/gratuity.json +#: payroll/doctype/gratuity_rule/gratuity_rule.json +#: payroll/doctype/income_tax_slab/income_tax_slab.json +#: payroll/doctype/payroll_entry/payroll_entry.json +#: payroll/doctype/payroll_period/payroll_period.json +#: payroll/doctype/retention_bonus/retention_bonus.json +#: payroll/doctype/salary_slip/salary_slip.json +#: payroll/doctype/salary_structure/salary_structure.json +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "HR Manager" +msgstr "" + +#. Name of a DocType +#. Title of an Onboarding Step +#: hr/doctype/hr_settings/hr_settings.json +#: hr/onboarding_step/hr_settings/hr_settings.json +msgid "HR Settings" +msgstr "Henkilöstöhallinnan määritykset" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "HR Settings" +msgid "HR Settings" +msgstr "Henkilöstöhallinnan määritykset" + +#. Name of a role +#: hr/doctype/appraisal/appraisal.json +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/appraisal_template/appraisal_template.json +#: hr/doctype/attendance/attendance.json +#: hr/doctype/attendance_request/attendance_request.json +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hr/doctype/daily_work_summary/daily_work_summary.json +#: hr/doctype/employee_checkin/employee_checkin.json +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +#: hr/doctype/employee_grade/employee_grade.json +#: hr/doctype/employee_grievance/employee_grievance.json +#: hr/doctype/employee_health_insurance/employee_health_insurance.json +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hr/doctype/employee_promotion/employee_promotion.json +#: hr/doctype/employee_referral/employee_referral.json +#: hr/doctype/employee_transfer/employee_transfer.json +#: hr/doctype/employment_type/employment_type.json +#: hr/doctype/expense_claim/expense_claim.json +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hr/doctype/goal/goal.json hr/doctype/grievance_type/grievance_type.json +#: hr/doctype/interest/interest.json hr/doctype/interview/interview.json +#: hr/doctype/interview_feedback/interview_feedback.json +#: hr/doctype/interview_round/interview_round.json +#: hr/doctype/interview_type/interview_type.json +#: hr/doctype/job_applicant/job_applicant.json +#: hr/doctype/job_applicant_source/job_applicant_source.json +#: hr/doctype/job_offer/job_offer.json hr/doctype/job_opening/job_opening.json +#: hr/doctype/leave_allocation/leave_allocation.json +#: hr/doctype/leave_application/leave_application.json +#: hr/doctype/leave_block_list/leave_block_list.json +#: hr/doctype/leave_control_panel/leave_control_panel.json +#: hr/doctype/leave_encashment/leave_encashment.json +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hr/doctype/leave_period/leave_period.json +#: hr/doctype/leave_policy/leave_policy.json +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hr/doctype/leave_type/leave_type.json hr/doctype/offer_term/offer_term.json +#: hr/doctype/shift_assignment/shift_assignment.json +#: hr/doctype/shift_request/shift_request.json +#: hr/doctype/shift_type/shift_type.json +#: hr/doctype/staffing_plan/staffing_plan.json +#: hr/doctype/upload_attendance/upload_attendance.json +#: payroll/doctype/additional_salary/additional_salary.json +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: payroll/doctype/employee_incentive/employee_incentive.json +#: payroll/doctype/employee_other_income/employee_other_income.json +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: payroll/doctype/gratuity/gratuity.json +#: payroll/doctype/gratuity_rule/gratuity_rule.json +#: payroll/doctype/income_tax_slab/income_tax_slab.json +#: payroll/doctype/payroll_period/payroll_period.json +#: payroll/doctype/retention_bonus/retention_bonus.json +#: payroll/doctype/salary_component/salary_component.json +#: payroll/doctype/salary_slip/salary_slip.json +#: payroll/doctype/salary_structure/salary_structure.json +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "HR User" +msgstr "" + +#. Option for a Select field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "HR-ADS-.YY.-.MM.-" +msgstr "HR-ADS-.YY .-. MM.-" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "HR-APR-.YYYY.-" +msgstr "" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "HR-ATT-.YYYY.-" +msgstr "HR-ATT-.YYYY.-" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "HR-EAD-.YYYY.-" +msgstr "HR-EAD-.YYYY.-" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "HR-EXIT-INT-" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "HR-EXP-.YYYY.-" +msgstr "HR-EXP-.YYYY.-" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "HR-HIREQ-" +msgstr "" + +#. Option for a Select field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "HR-LAL-.YYYY.-" +msgstr "HR-LAL-.YYYY.-" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "HR-LAP-.YYYY.-" +msgstr "HR-LAP-.YYYY.-" + +#. Option for a Select field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "HR-VLOG-.YYYY.-" +msgstr "HR-Vlogi-.YYYY.-" + +#: config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Half Day" +msgstr "1/2 päivä" + +#. Label of a Check field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Half Day" +msgstr "1/2 päivä" + +#. Label of a Check field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Half Day" +msgstr "1/2 päivä" + +#. Option for a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Half Day" +msgstr "1/2 päivä" + +#. Label of a Check field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Half Day" +msgstr "1/2 päivä" + +#. Label of a Date field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Half Day Date" +msgstr "Half Day Date" + +#. Label of a Date field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Half Day Date" +msgstr "Half Day Date" + +#. Label of a Date field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Half Day Date" +msgstr "Half Day Date" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:26 +msgid "Half Day Date is mandatory" +msgstr "Puolen päivän päivämäärä on pakollinen" + +#: hr/doctype/leave_application/leave_application.py:191 +msgid "Half Day Date should be between From Date and To Date" +msgstr "Half Day Date pitäisi olla välillä Päivästä ja Päivään" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:30 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "Puolen päivän Päivä pitää olla Työn alkamispäivästä ja Työn päättymispäivästä alkaen" + +#: hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Half Yearly" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:29 +msgid "Half day date should be in between from date and to date" +msgstr "Puolen päivän päivämäärä tulee olla päivämäärän ja päivämäärän välillä" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Half-Yearly" +msgstr "" + +#. Label of a Check field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Has Certificate" +msgstr "Onko sertifikaatti" + +#. Label of a Data field in DocType 'Employee Health Insurance' +#: hr/doctype/employee_health_insurance/employee_health_insurance.json +msgctxt "Employee Health Insurance" +msgid "Health Insurance Name" +msgstr "Sairausvakuutuksen nimi" + +#: hr/notification/training_feedback/training_feedback.html:1 +msgid "Hello" +msgstr "Hei" + +#. Label of a HTML field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Help" +msgstr "" + +#: controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:44 +msgid "Hiring Count" +msgstr "" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Hiring Settings" +msgstr "Palkkausasetukset" + +#. Label of a chart in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Hiring vs Attrition Count" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Hold" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:1304 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:24 +msgid "Holiday" +msgstr "" + +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.js:22 +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Holiday List" +msgstr "" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Holiday List" +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "Holiday List for Optional Leave" +msgstr "Lomalista vapaaehtoiseen lomaan" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Holidays" +msgstr "" + +#: controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Hour Rate" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Hour Rate" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of a Float field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Hours" +msgstr "" + +#: regional/india/utils.py:182 +msgid "House rent paid days overlapping with {0}" +msgstr "Talojen vuokrat maksetut päivät, jotka ovat päällekkäisiä {0} kanssa" + +#: regional/india/utils.py:160 +msgid "House rented dates required for exemption calculation" +msgstr "Vuokra-ajan päivämäärät, jotka vaaditaan poikkeuslaskennalle" + +#: regional/india/utils.py:163 +msgid "House rented dates should be atleast 15 days apart" +msgstr "Vuokralaisiksi vuokratut päivämäärät olisi oltava vähintään 15 päivää toisistaan" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:53 +msgid "IFSC" +msgstr "IFSC" + +#: payroll/report/bank_remittance/bank_remittance.py:44 +msgid "IFSC Code" +msgstr "IFSC-koodi" + +#. Option for a Select field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "IN" +msgstr "SISÄÄN" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Identification Document Number" +msgstr "henkilöllisyystodistuksen numero" + +#. Name of a DocType +#: hr/doctype/identification_document_type/identification_document_type.json +msgid "Identification Document Type" +msgstr "Tunnistustyypin tyyppi" + +#. Label of a Data field in DocType 'Identification Document Type' +#: hr/doctype/identification_document_type/identification_document_type.json +msgctxt "Identification Document Type" +msgid "Identification Document Type" +msgstr "Tunnistustyypin tyyppi" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Identification Document Type" +msgstr "Tunnistustyypin tyyppi" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "Jos tämä on valittuna, piilottaa ja poistaa käytöstä Pyöristetty kokonaisuus -kentän palkkalaskelmissa" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "Jos tämä on valittu, koko summa vähennetään verotettavasta tulosta ennen tuloveron laskemista ilman ilmoitusta tai todisteita." + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If checked, then the system will enable the provision to set the opening balance for earnings and deductions till date while creating a Salary Structure Assignment (if any)" +msgstr "" + +#. Description of a Check field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "Jos tämä on käytössä, verovapautusilmoitus otetaan huomioon tuloveroa laskettaessa." + +#. Description of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of a Check field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "ellei ole täpättynä luettelo on lisättävä jokaiseen osastoon, jossa sitä sovelletaan" + +#. Description of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Jos valittu, määritetty arvo tai laskettuna tämä komponentti ei edistä tulokseen tai vähennyksiä. Kuitenkin se on arvo voi viitata muista komponenteista, joita voidaan lisätä tai vähentää." + +#. Description of a Date field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of a Section Break field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Import Attendance" +msgstr "tuo osallistuminen" + +#. Label of a HTML field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Import Log" +msgstr "" + +#: hr/doctype/upload_attendance/upload_attendance.js:46 +msgid "Importing {0} of {1}" +msgstr "Tuodaan {0} {1}" + +#. Option for a Select field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "In Process" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "In Process" +msgstr "" + +#. Option for a Select field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "In Process" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "In Progress" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "In Progress" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "Ajallaan" + +#. Label of a Datetime field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "In Time" +msgstr "Ajallaan" + +#: payroll/doctype/payroll_entry/payroll_entry.py:110 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:41 +msgid "Inactive" +msgstr "" + +#. Option for a Select field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Inactive" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Incentive" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Incentive Amount" +msgstr "Kannustinmäärä" + +#. Label of a Card Break in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json setup.py:405 +msgid "Incentives" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Include holidays in Total no. of Working Days" +msgstr "sisältää vapaapäiviä, työpäiviä yhteensä" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Include holidays within leaves as leaves" +msgstr "sisältää vapaapäiviän poistumiset poistumisina" + +#. Label of a Section Break field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Income Source" +msgstr "" + +#: payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "Tuloverot" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Income Tax Breakup" +msgstr "" + +#: payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "Tuloverokomponentti" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: payroll/report/income_tax_computation/income_tax_computation.json +#: payroll/workspace/salary_payout/salary_payout.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/report/income_tax_deductions/income_tax_deductions.json +#: payroll/workspace/salary_payout/salary_payout.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "Tuloverovähennykset" + +#. Name of a DocType +#: payroll/doctype/income_tax_slab/income_tax_slab.json +#: payroll/doctype/salary_structure/salary_structure.js:141 +#: payroll/report/income_tax_computation/income_tax_computation.py:509 +msgid "Income Tax Slab" +msgstr "Tuloverolevy" + +#. Label of a Link in the Salary Payout Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/salary_payout/salary_payout.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Income Tax Slab" +msgid "Income Tax Slab" +msgstr "Tuloverolevy" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Income Tax Slab" +msgstr "Tuloverolevy" + +#. Name of a DocType +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "Tuloverolevyn muut maksut" + +#: payroll/doctype/salary_slip/salary_slip.py:1482 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "Tuloverolevyn on oltava voimassa palkkajakson aloituspäivänä tai ennen sitä: {0}" + +#: payroll/doctype/salary_slip/salary_slip.py:1471 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "Tuloverolevyä ei ole määritetty palkkarakenteen tehtävässä: {0}" + +#: payroll/doctype/salary_slip/salary_slip.py:1478 +msgid "Income Tax Slab: {0} is disabled" +msgstr "Tuloverolevy: {0} on poistettu käytöstä" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Income from Other Sources" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:154 +#: hr/doctype/appraisal_template/appraisal_template.py:28 +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:55 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Inspection" +msgstr "tarkastus" + +#: hr/doctype/leave_application/leave_application.py:412 +msgid "Insufficient Balance" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:410 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interest/interest.json +msgid "Interest" +msgstr "" + +#. Label of a Data field in DocType 'Interest' +#: hr/doctype/interest/interest.json +msgctxt "Interest" +msgid "Interest" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Interest Amount" +msgstr "Korko Arvo" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Interest Income Account" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Intermediate" +msgstr "väli-" + +#: setup.py:386 +msgid "Intern" +msgstr "harjoitella" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "International" +msgstr "kansainvälinen" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Internet" +msgstr "Internet" + +#. Name of a DocType +#: hr/doctype/interview/interview.json +#: hr/doctype/job_applicant/job_applicant.js:24 +msgid "Interview" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Interview" +msgid "Interview" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of a Section Break field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interview_feedback/interview_feedback.json +msgid "Interview Feedback" +msgstr "" + +#. Linked DocType in Interview's connections +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Interview Feedback" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Interview Feedback" +msgid "Interview Feedback" +msgstr "" + +#: hr/doctype/interview/test_interview.py:300 +#: hr/doctype/interview/test_interview.py:309 +#: hr/doctype/interview/test_interview.py:311 +#: hr/doctype/interview/test_interview.py:318 setup.py:458 setup.py:460 +#: setup.py:493 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hr/doctype/interview/interview.py:349 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hr/doctype/interview/interview.py:89 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hr/doctype/interview/test_interview.py:284 +#: hr/doctype/interview/test_interview.py:293 +#: hr/doctype/interview/test_interview.py:295 +#: hr/doctype/interview/test_interview.py:317 setup.py:446 setup.py:448 +#: setup.py:489 +msgid "Interview Reminder" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interview_round/interview_round.json +msgid "Interview Round" +msgstr "" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Interview Round" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Interview Round" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Interview Round" +msgid "Interview Round" +msgstr "" + +#. Linked DocType in Interview Type's connections +#: hr/doctype/interview_type/interview_type.json +msgctxt "Interview Type" +msgid "Interview Round" +msgstr "" + +#: hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:51 +#: hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#: hr/doctype/job_applicant/job_applicant.js:65 +msgid "Interview Summary" +msgstr "" + +#. Label of a Text Editor field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Interview Summary" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Interview Summary" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interview_type/interview_type.json +msgid "Interview Type" +msgstr "" + +#. Label of a Link field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Interview Type" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Interview Type" +msgid "Interview Type" +msgstr "" + +#: hr/doctype/interview/interview.py:105 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Name of a DocType +#: hr/doctype/interview/interview.json +#: hr/doctype/interview_feedback/interview_feedback.json +#: hr/doctype/interview_round/interview_round.json +#: hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of a Link field in DocType 'Interview Detail' +#: hr/doctype/interview_detail/interview_detail.json +msgctxt "Interview Detail" +msgid "Interviewer" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Interviewer" +msgstr "" + +#. Label of a Table MultiSelect field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Interviewers" +msgstr "" + +#. Label of a Table field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Interviewers" +msgstr "" + +#. Label of a Table MultiSelect field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a Long Text field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Introduction" +msgstr "" + +#. Label of a Long Text field in DocType 'Appointment Letter Template' +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgctxt "Appointment Letter Template" +msgid "Introduction" +msgstr "" + +#. Label of a Text Editor field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Introduction" +msgstr "" + +#. Option for a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Invalid" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:281 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#. Option for a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Investigated" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Investigation Details" +msgstr "" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Invited" +msgstr "Kutsuttu" + +#. Label of a Data field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Invoice Ref" +msgstr "lasku Ref" + +#. Label of a Check field in DocType 'Employee Tax Exemption Category' +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +msgctxt "Employee Tax Exemption Category" +msgid "Is Active" +msgstr "" + +#. Label of a Check field in DocType 'Employee Tax Exemption Sub Category' +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgctxt "Employee Tax Exemption Sub Category" +msgid "Is Active" +msgstr "" + +#. Label of a Check field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "Is Active" +msgstr "" + +#. Label of a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Is Active" +msgstr "" + +#. Label of a Check field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of a Check field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Is Carry Forward" +msgstr "siirretääkö" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Carry Forward" +msgstr "siirretääkö" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Compensatory" +msgstr "On kompensoiva" + +#: hr/doctype/leave_type/leave_type.py:40 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Is Default" +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:40 +msgid "Is Earned Leave" +msgstr "On ansaittu loma" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Earned Leave" +msgstr "On ansaittu loma" + +#. Label of a Check field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Is Expired" +msgstr "On vanhentunut" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Is Flexible Benefit" +msgstr "On joustava hyöty" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Is Flexible Benefit" +msgstr "On joustava hyöty" + +#: hr/doctype/goal/goal_tree.js:51 +msgid "Is Group" +msgstr "" + +#. Label of a Check field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Is Group" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Is Income Tax Component" +msgstr "Onko tuloverokomponentti" + +#. Label of a Check field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Is Leave Without Pay" +msgstr "on poistunut ilman palkkaa" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Leave Without Pay" +msgstr "on poistunut ilman palkkaa" + +#. Label of a Check field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Is Mandatory" +msgstr "" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Optional Leave" +msgstr "Onko vapaaehtoista lomaa" + +#. Label of a Check field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Is Paid" +msgstr "" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of a Check field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Is Recurring" +msgstr "Toistuu" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Is Tax Applicable" +msgstr "Onko vero sovellettavissa" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Is Tax Applicable" +msgstr "Onko vero sovellettavissa" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:13 +#: public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "Jan" + +#. Name of a DocType +#: hr/doctype/job_applicant/job_applicant.json +#: hr/report/recruitment_analytics/recruitment_analytics.py:39 +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Job Applicant" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "Työnhakijan lähde" + +#: hr/doctype/employee_referral/employee_referral.py:51 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Label of a Data field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Job Application Route" +msgstr "" + +#: setup.py:401 +msgid "Job Description" +msgstr "työn kuvaus" + +#. Label of a Tab Break field in DocType 'Job Requisition' +#. Label of a Text Editor field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Job Description" +msgstr "työn kuvaus" + +#. Name of a DocType +#: hr/doctype/job_applicant/job_applicant.js:33 +#: hr/doctype/job_applicant/job_applicant.js:39 +#: hr/doctype/job_offer/job_offer.json +#: hr/report/recruitment_analytics/recruitment_analytics.py:53 +msgid "Job Offer" +msgstr "Työtarjous" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Job Offer" +msgstr "Työtarjous" + +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Job Offer" +msgid "Job Offer" +msgstr "Työtarjous" + +#. Name of a DocType +#: hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "Työtarjousaika" + +#. Name of a DocType +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Job Offer Term Template" +msgstr "" + +#. Label of a Table field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Job Offer Terms" +msgstr "Työtarjouksen ehdot" + +#: hr/report/recruitment_analytics/recruitment_analytics.py:62 +msgid "Job Offer status" +msgstr "Työtarjouksen tila" + +#: hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "Työtarjous: {0} on jo työnhakijalle: {1}" + +#. Name of a DocType +#: hr/doctype/job_opening/job_opening.json +#: hr/doctype/job_requisition/job_requisition.js:40 +#: hr/report/recruitment_analytics/recruitment_analytics.py:32 +msgid "Job Opening" +msgstr "Työpaikka" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Job Opening" +msgstr "Työpaikka" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Job Opening" +msgstr "Työpaikka" + +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Job Opening" +msgid "Job Opening" +msgstr "Työpaikka" + +#. Linked DocType in Job Requisition's connections +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Job Opening" +msgstr "Työpaikka" + +#: hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#: www/jobs/index.html:2 www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hr/doctype/job_opening/job_opening.py:87 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Name of a DocType +#: hr/doctype/job_requisition/job_requisition.json +msgid "Job Requisition" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Job Requisition" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Job Requisition" +msgid "Job Requisition" +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Label of a Data field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Job Title" +msgstr "" + +#. Description of a Text Editor field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Job profile, qualifications required etc." +msgstr "työprofiili, vaaditut pätevydet jne" + +#. Label of a Card Break in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "Työpaikat" + +#. Option for a Select field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Joining Date" +msgstr "liittyminen Date" + +#. Option for a Select field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Joining Date" +msgstr "liittyminen Date" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Journal Entry" +msgid "Journal Entry" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Journal Entry" +msgstr "" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Journey" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:19 +#: public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "heinäkuu" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:18 +#: public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "kesäkuu" + +#. Name of a DocType +#: hr/doctype/goal/goal_tree.js:136 hr/doctype/kra/kra.json +msgid "KRA" +msgstr "KRA" + +#. Label of a Link field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "KRA" +msgstr "KRA" + +#. Label of a Link field in DocType 'Appraisal Template Goal' +#: hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgctxt "Appraisal Template Goal" +msgid "KRA" +msgstr "KRA" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "KRA" +msgstr "KRA" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "KRA" +msgid "KRA" +msgstr "KRA" + +#. Label of a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "KRA Evaluation Method" +msgstr "" + +#: hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of a Table field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "KRA vs Goals" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:140 +#: hr/doctype/appraisal_template/appraisal_template.py:23 +msgid "KRAs" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "KRAs" +msgstr "" + +#. Label of a Table field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "KRAs" +msgstr "" + +#. Description of a Link field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "Key Performance Area" +msgstr "Key Performance Area" + +#. Label of a Card Break in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Key Reports" +msgstr "" + +#. Description of a Small Text field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Key Responsibility Area" +msgstr "Key Vastuu Area" + +#. Description of a Link field in DocType 'Appraisal Template Goal' +#: hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgctxt "Appraisal Template Goal" +msgid "Key Result Area" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Last Day" +msgstr "" + +#. Description of a Datetime field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "Työntekijän tarkistuksen viimeisin tiedossa onnistunut synkronointi. Palauta tämä vain, jos olet varma, että kaikki lokit on synkronoitu kaikista sijainneista. Älä muuta tätä, jos olet epävarma." + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Last Name" +msgstr "" + +#. Label of a Int field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Last Odometer Value " +msgstr "" + +#. Label of a Datetime field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Last Sync of Checkin" +msgstr "Sisäänkirjauksen viimeinen synkronointi" + +#: hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "Myöhäinen tulo" + +#. Label of a Check field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Late Entry" +msgstr "Myöhäinen tulo" + +#. Label of a Check field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Late Entry" +msgstr "Myöhäinen tulo" + +#. Label of a Section Break field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Late Entry Grace Period" +msgstr "Myöhäinen tuloaika" + +#: overrides/dashboard_overrides.py:12 +msgid "Leave" +msgstr "Poistu" + +#. Option for a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Leave" +msgstr "Poistu" + +#. Name of a DocType +#: hr/doctype/leave_allocation/leave_allocation.json +msgid "Leave Allocation" +msgstr "Vapaan kohdistus" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Leave Allocation" +msgstr "Vapaan kohdistus" + +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Allocation" +msgid "Leave Allocation" +msgstr "Vapaan kohdistus" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Leave Allocation" +msgstr "Vapaan kohdistus" + +#. Label of a Section Break field in DocType 'Leave Policy' +#: hr/doctype/leave_policy/leave_policy.json +msgctxt "Leave Policy" +msgid "Leave Allocations" +msgstr "Jätä varaukset" + +#. Name of a DocType +#: hr/doctype/leave_application/leave_application.json +msgid "Leave Application" +msgstr "Vapaa-hakemus" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Leave Application" +msgstr "Vapaa-hakemus" + +#. Label of a Link in the HR Workspace +#. Label of a shortcut in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgctxt "Leave Application" +msgid "Leave Application" +msgstr "Vapaa-hakemus" + +#: hr/doctype/leave_application/leave_application.py:705 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: setup.py:423 setup.py:425 setup.py:485 +msgid "Leave Approval Notification" +msgstr "Jätä hyväksyntäilmoitus" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Leave Approval Notification Template" +msgstr "Jätä hyväksyntäilmoituslomake" + +#. Name of a role +#: hr/doctype/leave_application/leave_application.json +msgid "Leave Approver" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Leave Approver" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Leave Approver Mandatory In Leave Application" +msgstr "Jätä hyväksyntä pakolliseksi jätä sovellus" + +#. Label of a Data field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Leave Approver Name" +msgstr "Poissaolon hyväksyjän nimi" + +#. Label of a Float field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Leave Balance" +msgstr "Jätä tasapaino" + +#. Label of a Float field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Leave Balance Before Application" +msgstr "Vapaan määrä ennen" + +#. Name of a DocType +#: hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List" +msgstr "" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Block List" +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "Salli" + +#. Label of a Table field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Leave Block List Allowed" +msgstr "Sallitut" + +#. Name of a DocType +#: hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "päivä" + +#. Label of a Table field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Leave Block List Dates" +msgstr "poistu estoluettelo, päivät" + +#. Label of a Data field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Leave Block List Name" +msgstr "nimi" + +#: hr/doctype/leave_application/leave_application.py:1281 +msgid "Leave Blocked" +msgstr "vapaa kielletty" + +#. Name of a DocType +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Leave Control Panel" +msgstr "poistu ohjauspaneelista" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Control Panel" +msgid "Leave Control Panel" +msgstr "poistu ohjauspaneelista" + +#. Label of a Table field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#: hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Encashment" +msgstr "jätä perintä" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Encashment" +msgid "Leave Encashment" +msgstr "jätä perintä" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Leave Encashment Amount Per Day" +msgstr "Jätä yhdistämisen määrä päivältä" + +#. Name of a DocType +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgid "Leave Ledger Entry" +msgstr "Jätä pääkirjakirjaus" + +#. Name of a DocType +#: hr/doctype/leave_period/leave_period.json +msgid "Leave Period" +msgstr "Jätä aika" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Leave Period" +msgstr "Jätä aika" + +#. Option for a Select field in DocType 'Leave Control Panel' +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Leave Period" +msgstr "Jätä aika" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Leave Period" +msgstr "Jätä aika" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Period" +msgid "Leave Period" +msgstr "Jätä aika" + +#. Option for a Select field in DocType 'Leave Policy Assignment' +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Leave Period" +msgstr "Jätä aika" + +#. Name of a DocType +#: hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy" +msgstr "Jätä politiikka" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Leave Policy" +msgstr "Jätä politiikka" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Leave Policy" +msgstr "Jätä politiikka" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Policy" +msgid "Leave Policy" +msgstr "Jätä politiikka" + +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Leave Policy" +msgstr "Jätä politiikka" + +#. Name of a DocType +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leave Policy Assignment" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Leave Policy Assignment" +msgstr "" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Policy Assignment" +msgid "Leave Policy Assignment" +msgstr "" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:63 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "Jätä politiikkatiedot" + +#. Label of a Table field in DocType 'Leave Policy' +#: hr/doctype/leave_policy/leave_policy.json +msgctxt "Leave Policy" +msgid "Leave Policy Details" +msgstr "Jätä politiikkatiedot" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:57 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: setup.py:432 setup.py:434 setup.py:486 +msgid "Leave Status Notification" +msgstr "Jätä statusilmoitus" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Leave Status Notification Template" +msgstr "Jätä statusilmoitusmalli" + +#. Name of a DocType +#: hr/doctype/leave_type/leave_type.json +#: hr/report/employee_leave_balance/employee_leave_balance.py:33 +msgid "Leave Type" +msgstr "Vapaan tyyppi" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Leave Type" +msgstr "Vapaan tyyppi" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Leave Type" +msgstr "Vapaan tyyppi" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Leave Type" +msgstr "Vapaan tyyppi" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Leave Type" +msgstr "Vapaan tyyppi" + +#. Label of a Link field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Leave Type" +msgstr "Vapaan tyyppi" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Leave Type" +msgstr "Vapaan tyyppi" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Leave Type" +msgstr "Vapaan tyyppi" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Leave Type" +msgstr "Vapaan tyyppi" + +#. Label of a Link field in DocType 'Leave Policy Detail' +#: hr/doctype/leave_policy_detail/leave_policy_detail.json +msgctxt "Leave Policy Detail" +msgid "Leave Type" +msgstr "Vapaan tyyppi" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Type" +msgid "Leave Type" +msgstr "Vapaan tyyppi" + +#. Label of a Link field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Leave Type" +msgstr "Vapaan tyyppi" + +#. Label of a Data field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Leave Type Name" +msgstr "Vapaatyypin nimi" + +#: hr/doctype/leave_type/leave_type.py:33 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:45 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:35 +msgid "Leave Type is madatory" +msgstr "Jätteen tyyppi on vähäistä" + +#: hr/doctype/leave_allocation/leave_allocation.py:183 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "Jätä tyyppi {0} ei voi varata, koska se jättää ilman palkkaa" + +#: hr/doctype/leave_allocation/leave_allocation.py:395 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "{0} -tyyppistä vapaata ei voi siirtää eteenpäin" + +#: hr/doctype/leave_encashment/leave_encashment.py:101 +msgid "Leave Type {0} is not encashable" +msgstr "Jätä tyyppi {0} ei ole kelvollinen" + +#: payroll/report/salary_register/salary_register.py:175 setup.py:372 +#: setup.py:373 +msgid "Leave Without Pay" +msgstr "Palkaton vapaa" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Leave Without Pay" +msgstr "Palkaton vapaa" + +#: payroll/doctype/salary_slip/salary_slip.py:460 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "Leave Without Pay ei vastaa hyväksyttyjä tietueita" + +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.py:42 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:26 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "Lomahakemus liittyy lomamäärärahoihin {0}. Lomahakemusta ei voida asettaa lomattomaksi" + +#: hr/doctype/leave_allocation/leave_allocation.py:223 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Vapaita ei voida käyttää ennen {0}, koska käytettävissä olevat vapaat on jo siirretty eteenpäin jaksolle {1}" + +#: hr/doctype/leave_application/leave_application.py:245 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Vapaita ei voida käyttää / peruuttaa ennen {0}, koska käytettävissä olevat vapaat on jo siirretty eteenpäin jaksolle {1}" + +#: hr/doctype/leave_application/leave_application.py:482 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:72 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:66 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#: hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgid "Leaves" +msgstr "lehdet" + +#. Label of a Float field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Leaves" +msgstr "lehdet" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Leaves" +msgstr "lehdet" + +#. Label of a Check field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Leaves Allocated" +msgstr "Lehdet jaettu" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:76 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: setup.py:403 +msgid "Leaves per Year" +msgstr "Vapaat vuodessa" + +#: hr/doctype/leave_type/leave_type.js:26 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave request. Click" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:49 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +msgid "Left" +msgstr "" + +#. Label of a Int field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Left" +msgstr "" + +#. Title of the Module Onboarding 'Human Resource' +#: hr/module_onboarding/human_resource/human_resource.json +msgid "Let's Set Up the Human Resource Module. " +msgstr "" + +#. Title of the Module Onboarding 'Payroll' +#: payroll/module_onboarding/payroll/payroll.json +msgid "Let's Set Up the Payroll Module. " +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Letter Head" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Letter Head" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Letter Head" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Letter Head" +msgstr "" + +#. Label of a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Level" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "License Plate" +msgstr "" + +#: overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "Elinkaari" + +#: hr/doctype/goal/goal_tree.js:99 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#. Description of a Section Break field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Loan" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Loan Account" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Loan Product" +msgstr "" + +#: payroll/report/salary_register/salary_register.py:223 +msgid "Loan Repayment" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Loan Repayment Entry" +msgstr "Lainan takaisinmaksu" + +#: hr/utils.py:702 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:33 +#: templates/generators/job_opening.html:61 +msgid "Location" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Location" +msgstr "" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Location" +msgstr "" + +#. Label of a Data field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Location / Device ID" +msgstr "Sijainti / laitteen tunnus" + +#. Label of a Check field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Lodging Required" +msgstr "Majoitus vaaditaan" + +#. Label of a Select field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Log Type" +msgstr "Lokityyppi" + +#: hr/doctype/employee_checkin/employee_checkin.py:50 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "Lokityyppi vaaditaan kirjautumisiin vuorossa: {0}." + +#. Label of a Currency field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Lower Range" +msgstr "" + +#. Label of a Currency field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Lower Range" +msgstr "" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:54 +msgid "MICR" +msgstr "MICR" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:31 +msgid "Make" +msgstr "" + +#. Label of a Read Only field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Make" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:161 +msgid "Make Bank Entry" +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:186 +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:193 +#: hr/doctype/goal/goal.js:88 +msgid "Mandatory" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:187 +msgid "Mandatory fields required in {0}" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Manual Rating" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:15 +#: public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "Maaliskuu" + +#: hr/doctype/attendance/attendance_list.js:17 +#: hr/doctype/attendance/attendance_list.js:25 +#: hr/doctype/attendance/attendance_list.js:128 +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:173 +#: hr/doctype/shift_type/shift_type.js:7 +msgid "Mark Attendance" +msgstr "Merkitse osallistuminen" + +#. Label of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:48 +#: hr/doctype/employee_onboarding/employee_onboarding.js:48 +#: hr/doctype/goal/goal_tree.js:262 +msgid "Mark as Completed" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:52 +msgid "Mark as In Progress" +msgstr "" + +#: hr/doctype/interview/interview.py:75 +msgid "Mark as {0}" +msgstr "" + +#: hr/doctype/attendance/attendance_list.js:102 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "Merkitse tälle vuorolle osoitettujen työntekijöiden läsnäolo 'Employee Checkin' -kohdan perusteella." + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:204 +msgid "Mark the cycle as {0} if required." +msgstr "" + +#: hr/doctype/goal/goal_tree.js:269 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hr/doctype/goal/goal_list.js:84 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Marked Attendance" +msgstr "Merkitty Läsnäolo" + +#. Label of a HTML field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Marked Attendance HTML" +msgstr "Merkitty Läsnäolo HTML" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:215 +msgid "Marking Attendance" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#. Label of a Card Break in the Salary Payout Workspace +#: hr/workspace/performance/performance.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Masters" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Max Amount Eligible" +msgstr "Suurin sallittu määrä" + +#. Label of a Currency field in DocType 'Employee Benefit Application Detail' +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgctxt "Employee Benefit Application Detail" +msgid "Max Benefit Amount" +msgstr "Enimmäisetu" + +#. Label of a Currency field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Max Benefit Amount (Yearly)" +msgstr "Ennakkomaksu (vuosittain)" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Max Benefits (Amount)" +msgstr "Enimmäismäärät (määrä)" + +#. Label of a Currency field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Max Benefits (Yearly)" +msgstr "Eniten hyötyä (vuosittain)" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Category' +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +msgctxt "Employee Tax Exemption Category" +msgid "Max Exemption Amount" +msgstr "Suurin vapautussumma" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Sub Category' +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgctxt "Employee Tax Exemption Sub Category" +msgid "Max Exemption Amount" +msgstr "Suurin vapautussumma" + +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "Suurin vapautussumma ei voi olla suurempi kuin verovapautusluokan {1} enimmäismäärä {0}" + +#. Label of a Currency field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Max Taxable Income" +msgstr "Suurin verotettava tulo" + +#: payroll/doctype/salary_structure/salary_structure.py:147 +msgid "Max benefits should be greater than zero to dispense benefits" +msgstr "Suurten etuuksien pitäisi olla suurempia kuin nolla, jotta etuus hyötyisi" + +#. Label of a Float field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Max working hours against Timesheet" +msgstr "Tuntilomakkeella hyväksyttyjen työtuntien enimmäismäärä" + +#. Label of a Float field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Maximum Carry Forwarded Leaves" +msgstr "Suurin siirrettyjen lehtien enimmäismäärä" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:490 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Declaration +#. Category' +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Maximum Exempted Amount" +msgstr "Vapautettu enimmäismäärä" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Proof +#. Submission Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Maximum Exemption Amount" +msgstr "Maksimivapautusmäärä" + +#. Label of a Float field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Maximum Leave Allocation Allowed" +msgstr "" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:65 +msgid "Maximum amount eligible for the component {0} exceeds {1}" +msgstr "Suurin sallittu summa komponentille {0} ylittää {1}" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:139 +msgid "Maximum benefit amount of component {0} exceeds {1}" +msgstr "Komponentin {0} maksimimäärä on suurempi kuin {1}" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:119 +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:54 +msgid "Maximum benefit amount of employee {0} exceeds {1}" +msgstr "Työntekijän {0} enimmäisetuuksien määrä ylittää {1}" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:85 +msgid "Maximum benefit of employee {0} exceeds {1} by the sum {2} of benefit application pro-rata component amount and previous claimed amount" +msgstr "" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:46 +msgid "Maximum benefit of employee {0} exceeds {1} by the sum {2} of previous claimed amount" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:122 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "Lepatyypissä {0} sallittu enimmäisloma on {1}" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:17 +#: public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "Toukokuu" + +#. Label of a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Meal Preference" +msgstr "Ateriavalinta" + +#: setup.py:325 +msgid "Medical" +msgstr "lääketieteellinen" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1388 +msgid "Message" +msgstr "" + +#. Label of a Text Editor field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Message" +msgstr "" + +#. Label of a Text Editor field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "Message" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Mileage" +msgstr "mittarilukema" + +#. Label of a Currency field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Min Taxable Income" +msgstr "Minimi verotettava tulo" + +#. Label of a Int field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Minimum Year for Gratuity" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:200 +msgid "Missing Fields" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:29 +msgid "Missing Relieving Date" +msgstr "" + +#. Label of a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Mode Of Payment" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Mode of Payment" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Mode of Payment" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Mode of Payment" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Mode of Payment" +msgstr "" + +#. Label of a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Mode of Travel" +msgstr "Matkustustila" + +#: hr/doctype/expense_claim/expense_claim.py:287 +msgid "Mode of payment is required to make a payment" +msgstr "Tila maksu on suoritettava maksu" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:32 +msgid "Model" +msgstr "" + +#. Label of a Read Only field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Model" +msgstr "" + +#: hr/doctype/leave_block_list/leave_block_list.js:37 +msgid "Monday" +msgstr "" + +#: hr/report/employee_birthday/employee_birthday.js:8 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:9 +#: public/js/salary_slip_deductions_report_filters.js:15 +msgid "Month" +msgstr "" + +#. Option for a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Month" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Month To Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Monthly" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "Kuukausittainen läsnäolokirjanpito" + +#: hr/page/team_updates/team_updates.js:25 +msgid "More" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "More Info" +msgstr "" + +#. Label of a Tab Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "More Info" +msgstr "" + +#: hr/utils.py:262 +msgid "More than one selection for {0} not allowed" +msgstr "Useampi kuin {0} valinta ei ole sallittu" + +#: payroll/doctype/additional_salary/additional_salary.py:231 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hr/doctype/shift_assignment/shift_assignment.py:65 +msgid "Multiple Shift Assignments" +msgstr "" + +#: www/jobs/index.py:11 +msgid "My Account" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.js:167 +#: hr/report/employee_analytics/employee_analytics.py:31 +#: hr/report/employee_birthday/employee_birthday.py:22 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:21 +msgid "Name" +msgstr "" + +#. Label of a Data field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Name" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1163 +#: payroll/doctype/salary_slip/salary_slip.py:2112 +msgid "Name error" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Name of Organizer" +msgstr "Järjestäjän nimi" + +#. Label of a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Naming Series" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Naming Series" +msgstr "" + +#. Label of a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Naming Series" +msgstr "" + +#: payroll/report/salary_register/salary_register.py:237 +msgid "Net Pay" +msgstr "Nettomaksu" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Net Pay" +msgstr "Nettomaksu" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Net Pay" +msgstr "Nettomaksu" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Net Pay Info" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:181 +msgid "Net Pay cannot be less than 0" +msgstr "Nettopalkka ei voi olla pienempi kuin 0" + +#: payroll/report/bank_remittance/bank_remittance.py:50 +msgid "Net Salary Amount" +msgstr "Nettopalkkasumma" + +#: payroll/doctype/salary_structure/salary_structure.py:78 +msgid "Net pay cannot be negative" +msgstr "Nettomaksu ei voi olla negatiivinen" + +#: hr/employee_property_update.js:86 hr/employee_property_update.js:129 +msgid "New" +msgstr "" + +#. Label of a Data field in DocType 'Employee Property History' +#: hr/doctype/employee_property_history/employee_property_history.json +msgctxt "Employee Property History" +msgid "New" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "New Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "New Employee ID" +msgstr "Uusi työntekijän tunnus" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:60 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "New Leaves Allocated" +msgstr "uusi poistumisten kohdennus" + +#. Label of a Float field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "New Leaves Allocated (In Days)" +msgstr "uusi poistumisten kohdennus (päiviä)" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "No" +msgstr "" + +#: payroll/doctype/gratuity/gratuity.py:310 +msgid "No Applicable Component is present in last month salary slip" +msgstr "" + +#: payroll/doctype/gratuity/gratuity.py:283 +msgid "No Applicable Earnings Component found for Gratuity Rule: {0}" +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:122 +#: hr/doctype/leave_control_panel/leave_control_panel.js:144 +msgid "No Data" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:224 +msgid "No Employee Found" +msgstr "Ei työntekijää" + +#: hr/doctype/employee_checkin/employee_checkin.py:96 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "Ei annettua työntekijäkentän arvoa. '{}': {}" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "No Employees Selected" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:145 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "Työntekijälle ei ole allokoitu lehtiä: {0} lomityypille: {1}" + +#: payroll/doctype/gratuity/gratuity.py:297 +msgid "No Salary Slip is found for Employee: {0}" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:30 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "Tälle nimikkeelle ei löytynyt henkilöstösuunnitelmia" + +#: payroll/doctype/gratuity/gratuity.py:270 +msgid "No Suitable Slab found for Calculation of gratuity amount in Gratuity Rule: {0}" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:380 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "Ei aktiivisia tai oletus Palkkarakenne löytynyt työntekijä {0} varten kyseisenä päivänä" + +#: hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "Ylimääräisiä kuluja ei ole lisätty" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:45 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:37 +msgid "No attendance records found." +msgstr "" + +#: hr/doctype/interview/interview.py:89 +msgid "No changes found in timings." +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:33 +msgid "No employee(s) selected" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:189 +msgid "No employees found" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:172 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: payroll/report/income_tax_computation/income_tax_computation.py:70 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: hr/doctype/goal/goal_list.js:97 +msgid "No items selected" +msgstr "" + +#: hr/doctype/attendance/attendance.py:184 +msgid "No leave record found for employee {0} on {1}" +msgstr "Työntekijälle {0} {1} ei löytynyt lomarekisteriä" + +#: hr/page/team_updates/team_updates.js:44 +msgid "No more updates" +msgstr "Ei enää päivityksiä" + +#. Label of a Int field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "No of. Positions" +msgstr "" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:17 +msgid "No record found" +msgstr "" + +#: hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "Ei vastauksia" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1404 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "Mitään palkkalippua, jonka todettiin jättävän edellä mainittujen kriteerien tai palkkasumman perusteella" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Non Diary" +msgstr "Ei päiväkirjaa" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Non Taxable Earnings" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:255 +msgid "Non-Billed Hours" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:76 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Non-Vegetarian" +msgstr "Ei-vegetaristi" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:28 +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:206 hr/doctype/goal/goal.py:67 +#: hr/doctype/goal/goal.py:71 hr/doctype/goal/goal.py:76 +#: hr/doctype/interview/interview.py:27 +#: hr/doctype/job_applicant/job_applicant.py:49 +#: hr/doctype/leave_allocation/leave_allocation.py:145 +#: hr/doctype/leave_type/leave_type.py:42 +#: hr/doctype/leave_type/leave_type.py:45 +msgid "Not Allowed" +msgstr "" + +#: utils/hierarchy_chart.py:15 +msgid "Not Permitted" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Not Started" +msgstr "" + +#. Description of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:154 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Notes" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Notes" +msgstr "" + +#: hr/employee_property_update.js:146 +msgid "Nothing to change" +msgstr "Mikään ei muutu" + +#: setup.py:404 +msgid "Notice Period" +msgstr "Irtisanomisaika" + +#. Label of a Check field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Notify users by email" +msgstr "Ilmoita käyttäjille sähköpostitse" + +#. Label of a Check field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Notify users by email" +msgstr "Ilmoita käyttäjille sähköpostitse" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:23 +#: public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "marraskuu" + +#. Label of a Int field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Number Of Employees" +msgstr "Työntekijöiden määrä" + +#. Label of a Int field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Number Of Positions" +msgstr "Asemien lukumäärä" + +#. Description of a Float field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#. Option for a Select field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "OUT" +msgstr "OUT" + +#. Label of a Rating field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Obtained Average Rating" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:22 +#: public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "Lokakuu" + +#. Label of a Section Break field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Odometer Reading" +msgstr "matkamittarin lukema" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hr/report/recruitment_analytics/recruitment_analytics.py:60 +msgid "Offer Date" +msgstr "" + +#. Label of a Date field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Offer Date" +msgstr "" + +#. Name of a DocType +#: hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "Tarjouksen voimassaolo" + +#. Label of a Link field in DocType 'Job Offer Term' +#: hr/doctype/job_offer_term/job_offer_term.json +msgctxt "Job Offer Term" +msgid "Offer Term" +msgstr "Tarjouksen voimassaolo" + +#. Label of a Data field in DocType 'Offer Term' +#: hr/doctype/offer_term/offer_term.json +msgctxt "Offer Term" +msgid "Offer Term" +msgstr "Tarjouksen voimassaolo" + +#. Label of a Table field in DocType 'Job Offer Term Template' +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +msgctxt "Job Offer Term Template" +msgid "Offer Terms" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Old Parent" +msgstr "" + +#: hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "Treffeillä" + +#. Option for a Select field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "On Duty" +msgstr "Virantoimituksessa" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "On Hold" +msgstr "" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "On Leave" +msgstr "lomalla" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Onboarding" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Onboarding Activities" +msgstr "" + +#. Label of a Date field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Onboarding Begins On" +msgstr "" + +#: hr/doctype/shift_request/shift_request.py:78 +msgid "Only Approvers can Approve this Request." +msgstr "Vain hyväksyjät voivat hyväksyä tämän pyynnön." + +#: hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hr/doctype/interview/interview.py:331 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "Vain Jätä Sovellukset tilassa 'Hyväksytty' ja 'Hylätty "voi jättää" + +#: hr/doctype/shift_request/shift_request.py:32 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "Vain vaihtopyyntö, jonka tila on Hyväksytty ja Hylätty, voidaan lähettää" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Only Tax Impact (Cannot Claim But Part of Taxable Income)" +msgstr "Vain verovaikutus (ei voi vaatia osittain verotettavaa tuloa)" + +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.py:21 +msgid "Only expired allocation can be cancelled" +msgstr "Vain vanhentunut varaus voidaan peruuttaa" + +#: hr/doctype/interview/interview.js:69 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:174 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "Vain käyttäjät, joilla on {0} -rooli, voivat luoda jälkikäteen poistosovelluksia" + +#: hr/doctype/goal/goal_list.js:115 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Open & Approved" +msgstr "" + +#: hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:54 +msgid "Opening Balance" +msgstr "" + +#: templates/generators/job_opening.html:34 +msgid "Opening closed." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:558 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "Valinnainen lomalistaan ei ole asetettu lomajakson {0}" + +#: hr/doctype/leave_type/leave_type.js:21 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Other Details" +msgstr "" + +#. Label of a Small Text field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Other Details" +msgstr "" + +#. Label of a Text field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Other Details" +msgstr "" + +#. Label of a Card Break in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Other Reports" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Other Settings" +msgstr "" + +#. Label of a Table field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Other Taxes and Charges" +msgstr "Muut verot ja maksut" + +#: setup.py:326 +msgid "Others" +msgstr "Muut" + +#: hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "Lähtöaika" + +#. Label of a Datetime field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Out Time" +msgstr "Lähtöaika" + +#. Description of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Out of 5" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:23 +msgid "Outstanding Amount" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:284 +msgid "Over Allocation" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:60 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hr/doctype/attendance/attendance.py:118 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hr/doctype/shift_assignment/shift_assignment.py:123 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Overview" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Overview" +msgstr "" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Overview" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Overview" +msgstr "" + +#. Label of a Check field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Overwrite Salary Structure Amount" +msgstr "Korvaa palkkarakenteen määrä" + +#. Option for a Select field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Owned" +msgstr "" + +#: payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "PAN-numero" + +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:31 +msgid "PF Account" +msgstr "PF-tili" + +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:32 +msgid "PF Amount" +msgstr "PF-määrä" + +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:39 +msgid "PF Loan" +msgstr "PF-laina" + +#. Name of a DocType +#: hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Paid" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Paid" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Paid" +msgstr "" + +#. Option for a Select field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Paid" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Paid" +msgstr "" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:67 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Paid Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Paid Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Paid Amount" +msgstr "" + +#. Label of a Check field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Paid via Salary Slip" +msgstr "" + +#: hr/report/employee_analytics/employee_analytics.js:17 +msgid "Parameter" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Parent Goal" +msgstr "" + +#: setup.py:381 +msgid "Part-time" +msgstr "Osa-aikainen" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:125 +msgid "Partial Success" +msgstr "" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Partially Sponsored, Require Partial Funding" +msgstr "Osittain Sponsored, Vaadi osittaista rahoitusta" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Passport Number" +msgstr "" + +#. Label of a Data field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Password Policy" +msgstr "Salasanakäytäntö" + +#: payroll/doctype/payroll_settings/payroll_settings.js:24 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "Salasanakäytäntö ei voi sisältää välilyöntejä tai samanaikaisia tavuviivoja. Muoto rakenneuudistuu automaattisesti" + +#: payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "Palkkalaskelmien salasanakäytäntöä ei ole määritetty" + +#. Label of a Check field in DocType 'Employee Benefit Application Detail' +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgctxt "Employee Benefit Application Detail" +msgid "Pay Against Benefit Claim" +msgstr "Korvausvaatimus" + +#. Label of a Check field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Pay Against Benefit Claim" +msgstr "Korvausvaatimus" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Pay Against Benefit Claim" +msgstr "Korvausvaatimus" + +#. Label of a Check field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Pay via Salary Slip" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Payable Account" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Payable Account" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:100 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Payables" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.js:47 +#: hr/doctype/expense_claim/expense_claim.js:234 +#: hr/doctype/expense_claim/expense_claim_dashboard.py:9 +#: payroll/doctype/gratuity/gratuity_dashboard.py:10 +msgid "Payment" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Payment Account" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Payment Account" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:415 +msgid "Payment Account is mandatory" +msgstr "Maksutili on pakollinen" + +#: payroll/report/bank_remittance/bank_remittance.py:25 +msgid "Payment Date" +msgstr "" + +#: payroll/report/salary_register/salary_register.py:181 +msgid "Payment Days" +msgstr "Maksupäivää" + +#. Label of a Float field in DocType 'Salary Slip' +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payment Days" +msgstr "Maksupäivää" + +#. Label of a HTML field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payment Days Calculation Help" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:101 +msgid "Payment Days Dependency" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Payment Entry" +msgid "Payment Entry" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Payment Entry" +msgstr "" + +#. Label of a Tab Break field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Payment and Accounting" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:979 +msgid "Payment of {0} from {1} to {2}" +msgstr "{0} maksaminen {1} - {2}" + +#. Name of a Workspace +#. Label of a Card Break in the Salary Payout Workspace +#: overrides/dashboard_overrides.py:32 overrides/dashboard_overrides.py:74 +#: payroll/workspace/payroll/payroll.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Payroll" +msgstr "Palkanmaksu" + +#. Label of a Section Break field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Payroll" +msgstr "Palkanmaksu" + +#. Label of a Section Break field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a Date field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Payroll Date" +msgstr "Palkanmaksupäivä" + +#. Label of a Date field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Payroll Date" +msgstr "Palkanmaksupäivä" + +#. Label of a Date field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Payroll Date" +msgstr "Palkanmaksupäivä" + +#. Name of a DocType +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "Palkkahallinnon työntekijän tiedot" + +#. Name of a DocType +#: payroll/doctype/payroll_entry/payroll_entry.json +msgid "Payroll Entry" +msgstr "" + +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Salary Payout Workspace +#. Label of a shortcut in the Salary Payout Workspace +#: payroll/workspace/payroll/payroll.json +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Payroll Entry" +msgid "Payroll Entry" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payroll Entry" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:108 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Payroll Frequency" +msgstr "Payroll Frequency" + +#. Label of a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payroll Frequency" +msgstr "Payroll Frequency" + +#. Label of a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Payroll Frequency" +msgstr "Payroll Frequency" + +#. Label of a Section Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payroll Info" +msgstr "" + +#: payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "Palkanlaskennan numero" + +#: overrides/company.py:97 +#: patches/post_install/updates_for_multi_currency_payroll.py:68 +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:113 +msgid "Payroll Payable" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:138 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Payroll Payable Account" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Payroll Payable Account" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/payroll_period/payroll_period.json +#: payroll/report/income_tax_computation/income_tax_computation.js:18 +msgid "Payroll Period" +msgstr "Palkkausjakso" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Payroll Period" +msgstr "Palkkausjakso" + +#. Label of a Link field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Payroll Period" +msgstr "Palkkausjakso" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Payroll Period" +msgstr "Palkkausjakso" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Payroll Period" +msgstr "Palkkausjakso" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Payroll Period" +msgid "Payroll Period" +msgstr "Palkkausjakso" + +#. Name of a DocType +#: payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "Palkanlaskentajakson päivämäärä" + +#. Label of a Section Break field in DocType 'Payroll Period' +#. Label of a Table field in DocType 'Payroll Period' +#: payroll/doctype/payroll_period/payroll_period.json +msgctxt "Payroll Period" +msgid "Payroll Periods" +msgstr "Palkkausjaksot" + +#. Label of a Card Break in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Payroll Reports" +msgstr "" + +#. Name of a DocType +#. Title of an Onboarding Step +#: payroll/doctype/payroll_settings/payroll_settings.json +#: payroll/onboarding_step/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "Palkanlaskennan asetukset" + +#. Label of a Link in the Payroll Workspace +#: payroll/workspace/payroll/payroll.json +msgctxt "Payroll Settings" +msgid "Payroll Settings" +msgstr "Palkanlaskennan asetukset" + +#: payroll/doctype/additional_salary/additional_salary.py:89 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "Palkanlaskupäivä ei voi olla suurempi kuin työntekijän vapauttamispäivä." + +#: payroll/doctype/additional_salary/additional_salary.py:81 +msgid "Payroll date can not be less than employee's joining date." +msgstr "Palkanlaskupäivä ei voi olla pienempi kuin työntekijän liittymispäivä." + +#. Option for a Select field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Pending" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Pending Amount" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of a Percent field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Percent" +msgstr "prosentti" + +#. Label of a Percent field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "Percent Deduction" +msgstr "Prosentuaalinen vähennys" + +#. Label of a Int field in DocType 'Employee Cost Center' +#: payroll/doctype/employee_cost_center/employee_cost_center.json +msgctxt "Employee Cost Center" +msgid "Percentage (%)" +msgstr "" + +#. Name of a Workspace +#: hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Phone Number" +msgstr "" + +#: setup.py:385 +msgid "Piecework" +msgstr "urakkatyö" + +#. Label of a Int field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Planned number of Positions" +msgstr "Suunniteltu sijoitusten määrä" + +#: hr/doctype/shift_type/shift_type.js:11 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:94 +msgid "Please add the remaining benefits {0} to any of the existing component" +msgstr "Lisää jäljellä olevat edut {0} mihin tahansa olemassa olevaan komponenttiin" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:106 +msgid "Please add the remaining benefits {0} to the application as pro-rata component" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:729 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "Vahvista, kun olet suorittanut harjoittelusi" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hr/doctype/employee_transfer/employee_transfer.py:57 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "Ota käyttöön oletusarvoinen saapuva tili ennen päivittäisen työyhteenvetoryhmän luomista" + +#: hr/doctype/staffing_plan/staffing_plan.js:98 +msgid "Please enter the designation" +msgstr "Anna nimitys" + +#: hr/doctype/staffing_plan/staffing_plan.py:224 +msgid "Please select Company and Designation" +msgstr "Valitse Yritys ja nimike" + +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "Valitse Työntekijä" + +#: hr/doctype/department_approver/department_approver.py:19 +#: hr/employee_property_update.js:47 +msgid "Please select Employee first." +msgstr "Valitse ensin Työntekijä." + +#: hr/utils.py:696 +msgid "Please select a Company" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_mobile.js:229 +msgid "Please select a company first" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:95 +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:290 +msgid "Please select a company first." +msgstr "" + +#: hr/doctype/upload_attendance/upload_attendance.py:174 +msgid "Please select a csv file" +msgstr "Valitse csv tiedosto" + +#: hr/doctype/attendance/attendance.py:308 +msgid "Please select a date." +msgstr "" + +#: hr/utils.py:693 +msgid "Please select an Applicant" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.js:16 +msgid "Please select employee first" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:33 +msgid "Please select month and year." +msgstr "" + +#: hr/doctype/goal/goal.js:87 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:192 +msgid "Please select the attendance status." +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:185 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip_list.js:7 +msgid "Please select the salary slips to email" +msgstr "" + +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:19 +msgid "Please select {0}" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:271 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:49 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:444 +msgid "Please set Payroll based on in Payroll settings" +msgstr "Määritä palkanlaskenta Palkanhallinta-asetusten perusteella" + +#: payroll/doctype/gratuity/gratuity.py:152 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.py:172 +#: hr/doctype/employee_advance/employee_advance.py:276 +msgid "Please set a Default Cash Account in Company defaults" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:297 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:612 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "Määritä oletusmalli hylkäämisilmoitukselle HR-asetuksissa." + +#: hr/doctype/leave_application/leave_application.py:588 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "Aseta oletusmalli Leave Status Notification -asetukseksi HR-asetuksissa." + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.js:41 +msgid "Please set the Company" +msgstr "Aseta Yhtiö" + +#: payroll/doctype/salary_slip/salary_slip.py:251 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "Aseta jolloin se liittyy työntekijöiden {0}" + +#: controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.js:17 +#: hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:124 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:25 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hr/doctype/department_approver/department_approver.py:86 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hr/doctype/shift_type/shift_type.js:16 +#: hr/doctype/shift_type/shift_type.js:21 +msgid "Please set {0}." +msgstr "" + +#: overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "Asenna Työntekijöiden nimeämisjärjestelmä kohtaan Henkilöstöresurssit> HR-asetukset" + +#: hr/doctype/upload_attendance/upload_attendance.py:161 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "Asenna läsnäolosuhteiden numerointisarjat kohdasta Asetukset> Numerointisarjat" + +#: hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "Jaa palautetta koulutukseen klikkaamalla "Harjoittelupalaute" ja sitten "Uusi"" + +#: hr/doctype/interview/interview.py:198 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "Päivitä tilasi tähän koulutustilaisuuteen" + +#. Label of a Datetime field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Posted On" +msgstr "" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:60 +#: payroll/report/income_tax_deductions/income_tax_deductions.py:60 +#: www/jobs/index.html:93 +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Posting date" +msgstr "" + +#. Label of a Data field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Preferred Area for Lodging" +msgstr "Edullinen majoitusalue" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Present" +msgstr "Nykyinen" + +#. Option for a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Present" +msgstr "Nykyinen" + +#. Option for a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Present" +msgstr "Nykyinen" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Present" +msgstr "Nykyinen" + +#: hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:110 +#: payroll/doctype/salary_structure/salary_structure.js:197 +msgid "Preview Salary Slip" +msgstr "Preview Palkka Slip" + +#. Label of a Currency field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Principal Amount" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Print Heading" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Printing Details" +msgstr "" + +#: setup.py:364 setup.py:365 +msgid "Privilege Leave" +msgstr "Poistumisoikeus" + +#: setup.py:382 +msgid "Probation" +msgstr "koeaika" + +#: setup.py:396 +msgid "Probationary Period" +msgstr "Koeaika" + +#. Label of a Date field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Process Attendance After" +msgstr "Prosessin läsnäolo jälkeen" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Professional Tax Deductions" +msgstr "Ammatilliset verovähennykset" + +#. Label of a Rating field in DocType 'Employee Skill' +#: hr/doctype/employee_skill/employee_skill.json +msgctxt "Employee Skill" +msgid "Proficiency" +msgstr "Pätevyys" + +#: hr/report/project_profitability/project_profitability.py:185 +msgid "Profit" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:78 +msgid "Progress" +msgstr "" + +#. Label of a Percent field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Progress" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.js:31 +#: hr/doctype/employee_separation/employee_separation.js:19 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:43 +#: hr/report/project_profitability/project_profitability.js:43 +#: hr/report/project_profitability/project_profitability.py:164 +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Project" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/project_profitability/project_profitability.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of a Date field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Promotion Date" +msgstr "Kampanjan päivämäärä" + +#. Label of a Data field in DocType 'Employee Property History' +#: hr/doctype/employee_property_history/employee_property_history.json +msgctxt "Employee Property History" +msgid "Property" +msgstr "Omaisuus" + +#: hr/employee_property_update.js:142 +msgid "Property already added" +msgstr "Omaisuus on jo lisätty" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Provident Fund Deductions" +msgstr "Provident Fund -vähennykset" + +#. Label of a Check field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Publish Salary Range" +msgstr "" + +#. Label of a Check field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Publish on website" +msgstr "Julkaise verkkosivusto" + +#. Label of a Small Text field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Purpose" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#: hr/doctype/purpose_of_travel/purpose_of_travel.json +msgid "Purpose of Travel" +msgstr "Matkustuksen tarkoitus" + +#. Label of a Data field in DocType 'Purpose of Travel' +#. Label of a Link in the Expense Claims Workspace +#: hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Purpose of Travel" +msgid "Purpose of Travel" +msgstr "Matkustuksen tarkoitus" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Purpose of Travel" +msgstr "Matkustuksen tarkoitus" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Quarterly" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Quarterly" +msgstr "" + +#. Label of a Check field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Questionnaire Email Sent" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Queued" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Quick Filters" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: payroll/workspace/payroll/payroll.json +msgid "Quick Links" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Raised By" +msgstr "" + +#. Label of a Float field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Rate" +msgstr "" + +#. Label of a Check field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Rate Goals Manually" +msgstr "" + +#: hr/doctype/interview/interview.js:191 +msgid "Rating" +msgstr "" + +#. Label of a Rating field in DocType 'Employee Feedback Rating' +#: hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgctxt "Employee Feedback Rating" +msgid "Rating" +msgstr "" + +#. Label of a Rating field in DocType 'Skill Assessment' +#: hr/doctype/skill_assessment/skill_assessment.json +msgctxt "Skill Assessment" +msgid "Rating" +msgstr "" + +#. Label of a Table field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Rating Criteria" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Ratings" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Ratings" +msgstr "" + +#. Label of a Check field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Re-allocate Leaves" +msgstr "Jakoja jaetaan uudelleen" + +#. Label of a Check field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "Read" +msgstr "" + +#. Label of a Section Break field in DocType 'Attendance Request' +#. Label of a Select field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Reason" +msgstr "" + +#. Label of a Small Text field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Reason" +msgstr "" + +#. Label of a Small Text field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Reason" +msgstr "" + +#. Label of a Text field in DocType 'Leave Block List Date' +#: hr/doctype/leave_block_list_date/leave_block_list_date.json +msgctxt "Leave Block List Date" +msgid "Reason" +msgstr "" + +#. Label of a Text field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Reason for Requesting" +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:251 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Receivables" +msgstr "" + +#. Name of a Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hr/report/recruitment_analytics/recruitment_analytics.json +#: hr/workspace/hr/hr.json hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "Rekrytointianalyysi" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Recruitment Dashboard" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim_dashboard.py:10 +#: hr/doctype/leave_allocation/leave_allocation.py:207 +msgid "Reference" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Reference" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Reference Document" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Full and Final Outstanding +#. Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Reference Document" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Reference Document Name" +msgstr "" + +#. Label of a Data field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "Reference Document Name" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Reference Document Type" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Reference Document Type" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Reference Document Type" +msgstr "" + +#. Label of a Link field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "Reference Document Type" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:486 +#: payroll/doctype/additional_salary/additional_salary.py:136 +msgid "Reference: {0}" +msgstr "" + +#. Label of a Section Break field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "References" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "References" +msgstr "" + +#. Label of a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referral Details" +msgstr "" + +#. Label of a Link field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referrer" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referrer Details" +msgstr "" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referrer Name" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Reflections" +msgstr "" + +#. Label of a Section Break field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Refuelling Details" +msgstr "Tankkaaminen tiedot" + +#: hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Rejected" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:26 +#: hr/report/employee_exits/employee_exits.py:37 +msgid "Relieving Date" +msgstr "" + +#. Label of a Date field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Relieving Date" +msgstr "" + +#. Label of a Date field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Relieving Date " +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.js:19 +#: hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Remaining Benefits (Yearly)" +msgstr "Jäljellä olevat edut (vuosittain)" + +#. Label of a Small Text field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Remark" +msgstr "" + +#. Label of a Small Text field in DocType 'Full and Final Outstanding +#. Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Remark" +msgstr "" + +#. Label of a Text field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Remarks" +msgstr "" + +#. Label of a Time field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Remind Before" +msgstr "Muistuta ennen" + +#. Label of a Check field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Reminded" +msgstr "muistutti" + +#. Label of a Section Break field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Reminder" +msgstr "Muistutus" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Reminders" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Rented Car" +msgstr "Vuokra-auto" + +#: hr/doctype/goal/goal.js:61 +msgid "Reopen" +msgstr "" + +#: hr/utils.py:708 +msgid "Repay From Salary can be selected only for term loans" +msgstr "Palautus palkkasta voidaan valita vain määräaikaisille lainoille" + +#. Label of a Check field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Replied" +msgstr "" + +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "vastaukset" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#. Label of a Card Break in the Expense Claims Workspace +#. Label of a Card Break in the Leaves Workspace +#. Label of a Card Break in the Performance Workspace +#. Label of a Card Break in the Recruitment Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Card Break in the Tax & Benefits Workspace +#: hr/doctype/leave_application/leave_application_dashboard.py:8 +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/expense_claims/expense_claims.json +#: hr/workspace/leaves/leaves.json hr/workspace/performance/performance.json +#: hr/workspace/recruitment/recruitment.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Reports" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:45 +#: hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Reports To" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Reports To" +msgstr "" + +#. Label of a Link field in DocType 'Job Requisition' +#. Label of a Section Break field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Requested By" +msgstr "" + +#. Label of a Data field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Requested By (Name)" +msgstr "" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Require Full Funding" +msgstr "Vaadittava täydellinen rahoitus" + +#. Label of a Check field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Required for Employee Creation" +msgstr "Työntekijän luomiseen vaaditaan" + +#: hr/doctype/interview/interview.js:29 +msgid "Reschedule Interview" +msgstr "" + +#. Label of a Date field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Resignation Letter Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Resolution Date" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Grievance' +#. Label of a Small Text field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Resolution Details" +msgstr "" + +#. Option for a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Resolved" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Resolved By" +msgstr "" + +#: setup.py:402 +msgid "Responsibilities" +msgstr "vastuut" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Restrict Backdated Leave Application" +msgstr "" + +#: hr/doctype/interview/interview.js:145 +msgid "Result" +msgstr "Tulos" + +#. Label of a Select field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Result" +msgstr "Tulos" + +#. Label of a Attach field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Resume" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Resume" +msgstr "" + +#. Label of a Attach field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Resume Attachment" +msgstr "Palauta liite" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Resume Link" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Resume Link" +msgstr "" + +#. Label of a Data field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Resume link" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/retention_bonus/retention_bonus.json +msgid "Retention Bonus" +msgstr "Säilytysbonus" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Retention Bonus" +msgid "Retention Bonus" +msgstr "Säilytysbonus" + +#. Label of a Data field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Retirement Age (In Years)" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.js:70 +msgid "Return" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.py:126 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Returned" +msgstr "" + +#. Option for a Select field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Returned" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Returned Amount" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.js:37 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Reviewer" +msgstr "" + +#. Label of a Data field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Reviewer Name" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Revised CTC" +msgstr "" + +#. Label of a Int field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Right" +msgstr "" + +#. Label of a Link field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Role" +msgstr "Rooli" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "Roolilla on oikeus luoda jälkikäteen jätettyä sovellusta" + +#. Label of a Data field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Round Name" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Round off Work Experience" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Round to the Nearest Integer" +msgstr "Pyöreä lähimpään kokonaislukuun" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Rounded Total" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Rounded Total (Company Currency)" +msgstr "" + +#. Label of a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Rounding" +msgstr "pyöristys" + +#. Label of a Data field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Route" +msgstr "" + +#. Description of a Data field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:71 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "Rivi # {0}: Palkkakomponentin {1} määrää tai kaavaa ei voida asettaa muuttuvaan verotettavan palkan perusteella" + +#: payroll/doctype/salary_structure/salary_structure.py:90 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:116 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:580 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:347 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "Rivi {0} # Sallittu määrä {1} ei voi olla suurempi kuin lunastamaton summa {2}" + +#: payroll/doctype/gratuity/gratuity.py:127 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.py:121 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "Rivi {0} # maksettu summa ei voi olla suurempi kuin pyydetty ennakkomaksu" + +#: payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:133 +msgid "Row {0}: Goal Score cannot be greater than 5" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip_loan_utils.py:54 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:280 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "Rivi {0}: {1} vaaditaan kulutaulukossa kululaskun varaamiseksi." + +#. Label of a Section Break field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Rules" +msgstr "" + +#. Label of a Section Break field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Salary" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_component/salary_component.json +msgid "Salary Component" +msgstr "Palkanosasta" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Salary Component" +msgstr "Palkanosasta" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Salary Component" +msgstr "Palkanosasta" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Salary Component" +msgstr "Palkanosasta" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Salary Component" +msgstr "Palkanosasta" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Salary Component" +msgid "Salary Component" +msgstr "Palkanosasta" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Salary Component" +msgstr "Palkanosasta" + +#. Label of a Link field in DocType 'Gratuity Applicable Component' +#: payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgctxt "Gratuity Applicable Component" +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "Palkanosasta Account" + +#. Label of a Data field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Salary Component Type" +msgstr "Palkkaerätyyppi" + +#. Description of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Salary Component for timesheet based payroll." +msgstr "Tuntilomakkeeseen perustuva palkan osuus." + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Salary Currency" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "Palkka Detail" + +#. Label of a Section Break field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Salary Details" +msgstr "Palkkatiedot" + +#. Label of a Section Break field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Salary Expectation" +msgstr "" + +#. Label of a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Salary Payments Based On Payment Mode" +msgstr "Maksutapaan perustuvat palkkamaksut" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Salary Payments via ECS" +msgstr "Palkkamaksut ECS: n kautta" + +#. Name of a Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Salary Payout" +msgstr "" + +#: templates/generators/job_opening.html:103 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a shortcut in the Payroll Workspace +#. Label of a Link in the Salary Payout Workspace +#. Label of a shortcut in the Salary Payout Workspace +#: payroll/report/salary_register/salary_register.json +#: payroll/workspace/payroll/payroll.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Salary Register" +msgstr "Palkka Register" + +#. Name of a DocType +#: payroll/doctype/salary_slip/salary_slip.json +msgid "Salary Slip" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Salary Slip" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Salary Slip" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Salary Slip" +msgstr "" + +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Salary Payout Workspace +#. Label of a shortcut in the Salary Payout Workspace +#: payroll/workspace/payroll/payroll.json +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Salary Slip" +msgid "Salary Slip" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Salary Slip Based on Timesheet" +msgstr "Palkka tuntilomakkeen mukaan" + +#. Label of a Check field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Salary Slip Based on Timesheet" +msgstr "Palkka tuntilomakkeen mukaan" + +#. Label of a Check field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Salary Slip Based on Timesheet" +msgstr "Palkka tuntilomakkeen mukaan" + +#: payroll/report/salary_register/salary_register.py:109 +msgid "Salary Slip ID" +msgstr "Palkka Slip ID" + +#. Name of a DocType +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "Palkkavelkakirjalaina" + +#. Name of a DocType +#: payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "Tuntilomake" + +#. Label of a Table field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Salary Slip Timesheet" +msgstr "Tuntilomake" + +#: payroll/doctype/payroll_entry/payroll_entry.py:84 +msgid "Salary Slip already exists for {0}" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:230 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:285 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "Palkka Slip työntekijöiden {0} on jo luotu tällä kaudella" + +#: payroll/doctype/salary_slip/salary_slip.py:291 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "Palkka Slip työntekijöiden {0} on jo luotu kellokortti {1}" + +#: payroll/doctype/payroll_entry/payroll_entry.py:275 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1343 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:95 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Salary Slips Created" +msgstr "Palkkaliukut luotiin" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Salary Slips Submitted" +msgstr "Palkkionsiirto lähetetty" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1385 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1410 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Structure" +msgstr "Palkkarakenne" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Salary Structure" +msgstr "Palkkarakenne" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Salary Structure" +msgid "Salary Structure" +msgstr "Palkkarakenne" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Salary Structure" +msgstr "Palkkarakenne" + +#. Name of a DocType +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Salary Structure Assignment" +msgstr "Palkkarakenne" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Salary Structure Assignment" +msgid "Salary Structure Assignment" +msgstr "Palkkarakenne" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:62 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "Työntekijän palkkarakenteen osoittaminen on jo olemassa" + +#: payroll/doctype/salary_slip/salary_slip.py:383 +msgid "Salary Structure Missing" +msgstr "Palkka rakenne Puuttuvat" + +#: regional/india/utils.py:30 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:349 +msgid "Salary Structure not found for employee {0} and date {1}" +msgstr "Palkkarakennetta ei löydy työntekijälle {0} ja päivämäärälle {1}" + +#: payroll/doctype/salary_structure/salary_structure.py:156 +msgid "Salary Structure should have flexible benefit component(s) to dispense benefit amount" +msgstr "Palkkarakenteessa tulisi olla joustava etuusosa (-komponentit), joilla voidaan jakaa etuusmäärä" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:330 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "Palkka jo käsitellä välisenä aikana {0} ja {1}, Jätä hakuaika voi olla välillä tällä aikavälillä." + +#. Description of a Tab Break field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Salary breakup based on Earning and Deduction." +msgstr "Palkkaerittelyn kohdistetut ansiot ja vähennykset" + +#. Description of a Table MultiSelect field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2265 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Subtitle of the Module Onboarding 'Payroll' +#: payroll/module_onboarding/payroll/payroll.json +msgid "Salary, Compensation, and more." +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:150 +msgid "Sales Invoice" +msgstr "" + +#: hr/doctype/expense_claim_type/expense_claim_type.py:22 +msgid "Same Company is entered more than once" +msgstr "" + +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:21 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Sanctioned Amount" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:369 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "Hyväksyttävän määrä ei voi olla suurempi kuin korvauksen määrä rivillä {0}." + +#: hr/doctype/leave_block_list/leave_block_list.js:62 +msgid "Saturday" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Scheduled" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Scheduled" +msgstr "" + +#. Option for a Select field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Scheduled" +msgstr "" + +#. Label of a Date field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Scheduled On" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Score (0-5)" +msgstr "Pisteet (0-5)" + +#. Label of a Float field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Score Earned" +msgstr "Ansaitut pisteet" + +#: hr/doctype/appraisal/appraisal.js:124 +msgid "Score must be less than or equal to 5" +msgstr "Pisteet on oltava pienempi tai yhtä suuri kuin 5" + +#: hr/doctype/appraisal/appraisal.js:96 +msgid "Scores" +msgstr "" + +#: www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:78 +#: public/js/hierarchy_chart/hierarchy_chart_mobile.js:69 +msgid "Select Company" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Select Employees" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Select Employees" +msgstr "" + +#: hr/doctype/interview/interview.js:206 +msgid "Select Interview Round First" +msgstr "" + +#: hr/doctype/interview_feedback/interview_feedback.js:50 +msgid "Select Interview first" +msgstr "" + +#. Description of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Select Payment Account to make Bank Entry" +msgstr "Valitse Maksutili tehdä Bank Entry" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1544 +msgid "Select Payroll Frequency." +msgstr "" + +#: hr/employee_property_update.js:84 +msgid "Select Property" +msgstr "Valitse Ominaisuus" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Select Terms and Conditions" +msgstr "Valitse ehdot ja säännöt" + +#. Label of a Section Break field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Select Users" +msgstr "Valitse käyttäjät" + +#: hr/doctype/expense_claim/expense_claim.js:370 +msgid "Select an employee to get the employee advance." +msgstr "Valitse työntekijä, jotta työntekijä etenee." + +#: hr/doctype/leave_allocation/leave_allocation.js:116 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:247 +msgid "Select the Employee." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:121 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:131 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:126 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:262 +msgid "Select the end date for your Leave Application." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:257 +msgid "Select the start date for your Leave Application." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:252 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:272 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Self Appraisal" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Self Appraisal" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:114 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:56 +#: hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Self-Study" +msgstr "Itsenäinen opiskelu" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Seminar" +msgstr "seminaari" + +#. Label of a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Send Emails At" +msgstr "Lähetä sähköposteja" + +#: hr/doctype/exit_interview/exit_interview.js:7 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Send Interview Reminder" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Send Leave Notification" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Sender" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Sender" +msgstr "" + +#. Label of a Data field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Sender Email" +msgstr "" + +#. Label of a Data field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Sender Email" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Sent" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:21 +#: public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "Syyskuu" + +#. Label of a Section Break field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Separation Activities" +msgstr "" + +#. Label of a Date field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Separation Begins On" +msgstr "" + +#. Label of a Select field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Series" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Service" +msgstr "" + +#. Label of a Section Break field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Service Details" +msgstr "palvelu Lisätiedot" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "palvelu Expense" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:169 +msgid "Service Expenses" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Service Item" +msgstr "palvelu Tuote" + +#. Label of a Data field in DocType 'Vehicle Service Item' +#: hr/doctype/vehicle_service_item/vehicle_service_item.json +msgctxt "Vehicle Service Item" +msgid "Service Item" +msgstr "palvelu Tuote" + +#. Description of a Table field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Set Attendance Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Set Leave Details" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:54 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Set attendance details for the employees select above" +msgstr "" + +#. Description of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:490 +msgid "Set the default account for the {0} {1}" +msgstr "Aseta oletustili tilille {0} {1}" + +#. Label of a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of a Section Break field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#. Label of a Card Break in the HR Workspace +#. Label of a Card Break in the Payroll Workspace +#: hr/workspace/hr/hr.json payroll/workspace/payroll/payroll.json +msgid "Settings" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Settings" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:129 +msgid "Settings Missing" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:35 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#. Option for a Select field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Settled" +msgstr "" + +#. Label of a Card Break in the HR Workspace +#. Label of a Card Break in the Leaves Workspace +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgid "Setup" +msgstr "" + +#: hr/utils.py:656 +msgid "Shared with the user {0} with {1} access" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:141 +#: hr/report/shift_attendance/shift_attendance.py:36 +#: hr/report/shift_attendance/shift_attendance.py:205 +#: overrides/dashboard_overrides.py:28 +msgid "Shift" +msgstr "Siirtää" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Shift" +msgstr "Siirtää" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Shift" +msgstr "Siirtää" + +#. Label of a Link field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Shift" +msgstr "Siirtää" + +#. Label of a Link field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift" +msgstr "Siirtää" + +#. Name of a Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift Actual End" +msgstr "Vaihto todellinen loppu" + +#: hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift Actual Start" +msgstr "Vaihto todellinen aloitus" + +#: hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#: hr/doctype/shift_assignment/shift_assignment.json +msgid "Shift Assignment" +msgstr "Siirtymätoiminto" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Shift Assignment" +msgid "Shift Assignment" +msgstr "Siirtymätoiminto" + +#: hr/doctype/shift_request/shift_request.py:47 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "Vaihtotehtävä: {0} luotu työntekijälle: {1}" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/shift_attendance/shift_attendance.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift End" +msgstr "Vaihto päättyy" + +#: hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Name of a DocType +#: hr/doctype/shift_request/shift_request.json +msgid "Shift Request" +msgstr "Vaihtopyyntö" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Shift Request" +msgstr "Vaihtopyyntö" + +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Shift Request" +msgid "Shift Request" +msgstr "Vaihtopyyntö" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Shift Settings" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift Start" +msgstr "Vaihto-aloitus" + +#: hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Name of a DocType +#: hr/doctype/shift_type/shift_type.json +#: hr/report/shift_attendance/shift_attendance.js:28 +msgid "Shift Type" +msgstr "Vaihtotyyppi" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Shift Type" +msgstr "Vaihtotyyppi" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Shift Type" +msgstr "Vaihtotyyppi" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Shift Type" +msgid "Shift Type" +msgstr "Vaihtotyyppi" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "" + +#: hr/doctype/job_offer/job_offer.js:48 +msgid "Show Employee" +msgstr "Näytä työntekijä" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "Näytä lehdet kaikista osaston jäsenistä kalenterista" + +#: payroll/doctype/salary_structure/salary_structure.js:207 +msgid "Show Salary Slip" +msgstr "Näytä Palkka Slip" + +#. Label of an action in the Onboarding Step 'Create Employee' +#. Label of an action in the Onboarding Step 'Create Holiday List' +#. Label of an action in the Onboarding Step 'Create Leave Allocation' +#. Label of an action in the Onboarding Step 'Create Leave Application' +#. Label of an action in the Onboarding Step 'Create Leave Type' +#: hr/onboarding_step/create_employee/create_employee.json +#: hr/onboarding_step/create_holiday_list/create_holiday_list.json +#: hr/onboarding_step/create_leave_allocation/create_leave_allocation.json +#: hr/onboarding_step/create_leave_application/create_leave_application.json +#: hr/onboarding_step/create_leave_type/create_leave_type.json +msgid "Show Tour" +msgstr "" + +#: www/jobs/index.html:103 +msgid "Showing" +msgstr "" + +#: setup.py:356 setup.py:357 +msgid "Sick Leave" +msgstr "Sairaspoistuminen" + +#. Name of a DocType +#: hr/doctype/interview/interview.js:186 hr/doctype/skill/skill.json +msgid "Skill" +msgstr "Taito" + +#. Label of a Link field in DocType 'Designation Skill' +#: hr/doctype/designation_skill/designation_skill.json +msgctxt "Designation Skill" +msgid "Skill" +msgstr "Taito" + +#. Label of a Link field in DocType 'Employee Skill' +#: hr/doctype/employee_skill/employee_skill.json +msgctxt "Employee Skill" +msgid "Skill" +msgstr "Taito" + +#. Label of a Link field in DocType 'Expected Skill Set' +#: hr/doctype/expected_skill_set/expected_skill_set.json +msgctxt "Expected Skill Set" +msgid "Skill" +msgstr "Taito" + +#. Label of a Link field in DocType 'Skill Assessment' +#: hr/doctype/skill_assessment/skill_assessment.json +msgctxt "Skill Assessment" +msgid "Skill" +msgstr "Taito" + +#. Name of a DocType +#: hr/doctype/interview/interview.js:134 +#: hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Skill Assessment" +msgstr "" + +#. Label of a Data field in DocType 'Skill' +#: hr/doctype/skill/skill.json +msgctxt "Skill" +msgid "Skill Name" +msgstr "Taiton nimi" + +#. Label of a Section Break field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Skills" +msgstr "" + +#. Label of a Check field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Skip Auto Attendance" +msgstr "Ohita automaattinen läsnäolo" + +#: payroll/doctype/salary_structure/salary_structure.py:313 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "Seuraavien työntekijöiden palkkarakenteen toimeksiannon ohittaminen, koska palkkarakenteen määritystietueet ovat jo olemassa heitä kohtaan. {0}" + +#. Label of a Data field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Source" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Source" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Source Name" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant Source' +#: hr/doctype/job_applicant_source/job_applicant_source.json +msgctxt "Job Applicant Source" +msgid "Source Name" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Source and Rating" +msgstr "" + +#. Label of a Currency field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Sponsored Amount" +msgstr "Sponsored Amount" + +#. Label of a Table field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Staffing Details" +msgstr "" + +#. Name of a DocType +#: hr/doctype/staffing_plan/staffing_plan.json +#: hr/report/recruitment_analytics/recruitment_analytics.py:25 +msgid "Staffing Plan" +msgstr "Henkilöstösuunnitelma" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Staffing Plan" +msgstr "Henkilöstösuunnitelma" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Staffing Plan" +msgid "Staffing Plan" +msgstr "Henkilöstösuunnitelma" + +#. Name of a DocType +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "Henkilöstösuunnitelma" + +#: hr/doctype/staffing_plan/staffing_plan.py:70 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "Henkilöstösuunnitelma {0} on jo olemassa nimeämisessä {1}" + +#. Label of a Currency field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Standard Tax Exemption Amount" +msgstr "Vakioverovapausmäärä" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Standard Tax Exemption Amount" +msgstr "Vakioverovapausmäärä" + +#. Label of a Float field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Standard Working Hours" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:43 +#: hr/doctype/attendance/attendance_list.js:46 +msgid "Start" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:86 +#: hr/report/project_profitability/project_profitability.js:17 +#: hr/report/project_profitability/project_profitability.py:203 +#: payroll/report/salary_register/salary_register.py:163 +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Period' +#: payroll/doctype/payroll_period/payroll_period.json +msgctxt "Payroll Period" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Period Date' +#: payroll/doctype/payroll_period_date/payroll_period_date.json +msgctxt "Payroll Period Date" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Start Date" +msgstr "" + +#: hr/notification/training_scheduled/training_scheduled.html:32 +#: templates/emails/training_event.html:7 +msgid "Start Time" +msgstr "" + +#. Label of a Time field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Start Time" +msgstr "" + +#. Label of a Datetime field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Start Time" +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:263 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}" +msgstr "Aloitus- ja lopetuspäivät eivät ole voimassa olevassa palkka-aikajaksossa, ei voi laskea {0}" + +#: payroll/doctype/salary_slip/salary_slip.py:1416 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "Aloitus- ja lopetuspäivät eivät ole voimassa olevassa palkkasummassa, ei voi laskea {0}." + +#: payroll/doctype/payroll_entry/payroll_entry.py:186 +msgid "Start date: {0}" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Statistical Component" +msgstr "tilastollinen Komponentti" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Statistical Component" +msgstr "tilastollinen Komponentti" + +#: hr/doctype/attendance/attendance_list.js:71 +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:150 +#: hr/doctype/goal/goal.js:57 hr/doctype/goal/goal.js:64 +#: hr/doctype/goal/goal.js:71 hr/doctype/goal/goal.js:78 +#: hr/report/employee_advance_summary/employee_advance_summary.js:35 +#: hr/report/employee_advance_summary/employee_advance_summary.py:74 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:23 +#: hr/report/shift_attendance/shift_attendance.py:49 +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Status" +msgstr "" + +#: setup.py:399 +msgid "Stock Options" +msgstr "varasto, vaihtoehdot" + +#. Description of a Section Break field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Stop users from making Leave Applications on following days." +msgstr "estä käyttäjiä tekemästä poistumissovelluksia seuraavina päivinä" + +#. Option for a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "Perustuu tiukasti lokityyppiin työntekijöiden kirjautumisessa" + +#: payroll/doctype/salary_structure/salary_structure.py:254 +msgid "Structures have been assigned successfully" +msgstr "Rakenteet on osoitettu onnistuneesti" + +#. Label of a Data field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Subject" +msgstr "" + +#. Label of a Data field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Subject" +msgstr "" + +#. Label of a Date field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Submission Date" +msgstr "Jättöpäivämäärä" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:337 +msgid "Submission Failed" +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.js:59 +#: public/js/performance/performance_feedback.js:97 +msgid "Submit" +msgstr "" + +#: hr/doctype/interview/interview.js:50 hr/doctype/interview/interview.js:129 +msgid "Submit Feedback" +msgstr "" + +#: hr/doctype/exit_interview/exit_questionnaire_notification_template.html:15 +msgid "Submit Now" +msgstr "" + +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "Lähetä todistus" + +#: payroll/doctype/payroll_entry/payroll_entry.js:142 +msgid "Submit Salary Slip" +msgstr "Vahvista palkkatosite" + +#: hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "Lähetä tämä, jos haluat luoda työntekijän tietueen" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Submitted" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Submitted" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Submitted" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Submitted" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Submitted" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:383 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "Palkkalomakkeiden lähettäminen ja päiväkirjaluettelon luominen ..." + +#: payroll/doctype/payroll_entry/payroll_entry.py:1460 +msgid "Submitting Salary Slips..." +msgstr "Palkkaliikkeiden lähettäminen ..." + +#: hr/doctype/staffing_plan/staffing_plan.py:162 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hr/doctype/employee_referral/employee_referral.py:54 +#: hr/doctype/leave_control_panel/leave_control_panel.py:130 +msgid "Success" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:133 +msgid "Successfully created {0} records for:" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Sum of all previous slabs" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:64 +msgid "Summarized View" +msgstr "Yhteenveto" + +#: hr/doctype/leave_block_list/leave_block_list.js:67 +msgid "Sunday" +msgstr "" + +#. Label of a Link field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Supplier" +msgstr "" + +#. Label of a Link field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Supplier" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Supplier" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:48 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:42 +msgid "Suspended" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1170 +msgid "Syntax error" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2115 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Name of a role +#: hr/doctype/appointment_letter/appointment_letter.json +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hr/doctype/appraisal/appraisal.json +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/attendance/attendance.json +#: hr/doctype/attendance_request/attendance_request.json +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hr/doctype/employee_checkin/employee_checkin.json +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +#: hr/doctype/employee_grade/employee_grade.json +#: hr/doctype/employee_grievance/employee_grievance.json +#: hr/doctype/employee_onboarding/employee_onboarding.json +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hr/doctype/employee_referral/employee_referral.json +#: hr/doctype/employee_separation/employee_separation.json +#: hr/doctype/employee_separation_template/employee_separation_template.json +#: hr/doctype/employee_skill_map/employee_skill_map.json +#: hr/doctype/exit_interview/exit_interview.json +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hr/doctype/goal/goal.json hr/doctype/grievance_type/grievance_type.json +#: hr/doctype/hr_settings/hr_settings.json +#: hr/doctype/identification_document_type/identification_document_type.json +#: hr/doctype/interview/interview.json +#: hr/doctype/interview_type/interview_type.json +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +#: hr/doctype/job_requisition/job_requisition.json hr/doctype/kra/kra.json +#: hr/doctype/leave_encashment/leave_encashment.json +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hr/doctype/leave_period/leave_period.json +#: hr/doctype/leave_policy/leave_policy.json +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hr/doctype/pwa_notification/pwa_notification.json +#: hr/doctype/skill/skill.json hr/doctype/travel_request/travel_request.json +#: hr/doctype/vehicle_service_item/vehicle_service_item.json +#: payroll/doctype/additional_salary/additional_salary.json +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: payroll/doctype/income_tax_slab/income_tax_slab.json +#: payroll/doctype/payroll_period/payroll_period.json +#: payroll/doctype/payroll_settings/payroll_settings.json +#: payroll/doctype/retention_bonus/retention_bonus.json +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "System Manager" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Take Exact Completed Years" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.js:34 +#: hr/doctype/employee_separation/employee_separation.js:22 +msgid "Task" +msgstr "" + +#. Label of a Link field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Task" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Task" +msgstr "" + +#. Label of a Float field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Task Weight" +msgstr "" + +#. Name of a Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:41 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Sub Category' +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgctxt "Employee Tax Exemption Sub Category" +msgid "Tax Exemption Category" +msgstr "Verovapautusluokka" + +#. Label of a Tab Break field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of a Table field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Tax Exemption Proofs" +msgstr "Verovapautustodistukset" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Tax on additional salary" +msgstr "Lisäpalkkion vero" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Tax on flexible benefit" +msgstr "Vero joustavaan hyötyyn" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:40 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "Verotettava palkkarakenne" + +#. Label of a Section Break field in DocType 'Income Tax Slab' +#. Label of a Table field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Taxable Salary Slabs" +msgstr "Verotettavat palkkaliuskat" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Taxes & Charges" +msgstr "" + +#. Label of a Section Break field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Taxes and Charges on Income Tax" +msgstr "Tuloverot ja verot" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Taxi" +msgstr "Taksi" + +#. Label of a Link in the HR Workspace +#: hr/page/team_updates/team_updates.js:4 hr/workspace/hr/hr.json +msgid "Team Updates" +msgstr "Team päivitykset" + +#. Label of a Data field in DocType 'Appointment Letter Template' +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgctxt "Appointment Letter Template" +msgid "Template Name" +msgstr "" + +#. Label of a Table field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Terms" +msgstr "" + +#. Label of a Table field in DocType 'Appointment Letter Template' +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgctxt "Appointment Letter Template" +msgid "Terms" +msgstr "" + +#. Label of a Text Editor field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Terms and Conditions" +msgstr "" + +#: templates/emails/training_event.html:20 +msgid "Thank you" +msgstr "Kiitos" + +#. Success message of the Module Onboarding 'Human Resource' +#: hr/module_onboarding/human_resource/human_resource.json +msgid "The Human Resource Module is all set up!" +msgstr "" + +#. Success message of the Module Onboarding 'Payroll' +#: payroll/module_onboarding/payroll/payroll.json +msgid "The Payroll Module is all set up!" +msgstr "" + +#. Description of a Date field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:368 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "Päivä (t), johon haet lupaa ovat vapaapäiviä. Sinun ei tarvitse hakea lupaa." + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:65 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:50 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of a Float field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "Puolipäiväisen läsnäolon maksettava murto-osa päiväpalkasta" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +#: hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the Standard Working Hours. Please set {0} in {1}." +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "Työntekijälle sähköpostitse lähetetty palkkakuitti on suojattu salasanalla, salasana luodaan salasanakäytännön perusteella." + +#. Description of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "Aika vuoron alkamisajan jälkeen, kun lähtöselvitystä pidetään myöhässä (minuutteina)." + +#. Description of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "Aika ennen vuoron loppuaikaa, jolloin lähtöä pidetään varhaisena (minuutteina)." + +#. Description of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "Aika ennen vuoron alkamisaikaa, jonka aikana työntekijän lähtöselvitystä pidetään läsnäolona." + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Theory" +msgstr "Teoria" + +#: payroll/doctype/salary_slip/salary_slip.py:441 +msgid "There are more holidays than working days this month." +msgstr "Tässä kuussa ei ole lomapäiviä työpäivinä" + +#: hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "Henkilöstösuunnitelmassa ei ole avoimia työpaikkoja {0}" + +#: payroll/doctype/additional_salary/additional_salary.py:36 +#: payroll/doctype/employee_incentive/employee_incentive.py:20 +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:218 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Stucture." +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:376 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:85 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:35 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "Tällä työntekijällä on jo loki samalla aikaleimalla. {0}" + +#: payroll/doctype/salary_slip/salary_slip.py:1178 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1171 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1164 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hr/doctype/leave_type/leave_type.js:16 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hr/doctype/leave_type/leave_type.js:11 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: overrides/dashboard_overrides.py:57 +msgid "This is based on the attendance of this Employee" +msgstr "Tämä perustuu työntekijän läsnäoloihin" + +#: payroll/doctype/payroll_entry/payroll_entry.js:376 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "Tämä lähettää palkkapäiväsijoitukset ja luo suoritepäiväkirja-merkinnän. Haluatko edetä?" + +#: hr/doctype/leave_block_list/leave_block_list.js:52 +msgid "Thursday" +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Time" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Time" +msgstr "" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js:28 +msgid "Time Interval" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Timesheet' +#: payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgctxt "Salary Slip Timesheet" +msgid "Time Sheet" +msgstr "" + +#. Description of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "Aika vuoron päättymisen jälkeen, jona lähtöä pidetään läsnäolona." + +#. Description of a Duration field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of a Duration field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Time to Fill" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Timelines" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:157 +msgid "Timesheet" +msgstr "" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Timesheet" +msgid "Timesheet" +msgstr "" + +#. Label of a Section Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Timesheet Details" +msgstr "" + +#: hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "Ajoitus" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:40 +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Appointment Letter content' +#: hr/doctype/appointment_letter_content/appointment_letter_content.json +msgctxt "Appointment Letter content" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Job Offer Term Template' +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +msgctxt "Job Offer Term Template" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'KRA' +#: hr/doctype/kra/kra.json +msgctxt "KRA" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Leave Policy' +#: hr/doctype/leave_policy/leave_policy.json +msgctxt "Leave Policy" +msgid "Title" +msgstr "" + +#: payroll/report/salary_register/salary_register.js:16 +msgid "To" +msgstr "" + +#. Label of a Currency field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "To Amount" +msgstr "Määrä" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js:22 +#: hr/report/employee_advance_summary/employee_advance_summary.js:23 +#: hr/report/employee_exits/employee_exits.js:15 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:24 +#: hr/report/employee_leave_balance/employee_leave_balance.js:15 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.js:15 +#: hr/report/shift_attendance/shift_attendance.js:15 +#: hr/report/vehicle_expenses/vehicle_expenses.js:32 +#: payroll/report/bank_remittance/bank_remittance.js:22 +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "To Date" +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:201 +msgid "To Date cannot be less than From Date" +msgstr "" + +#: hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "Päivämäärän tulisi olla suurempi kuin Aloituspäivä" + +#. Label of a Time field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "To Time" +msgstr "" + +#. Label of a Link field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "To User" +msgstr "" + +#: hr/doctype/shift_assignment/shift_assignment.py:59 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:267 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "Tähän mennessä ei voi olla yhtä tai vähemmän kuin päivämäärä" + +#: payroll/doctype/additional_salary/additional_salary.py:87 +msgid "To date can not be greater than employee's relieving date." +msgstr "Tähän mennessä ei voi olla suurempi kuin työntekijän vapauttamispäivä." + +#: hr/utils.py:175 +msgid "To date can not be less than from date" +msgstr "Tähän mennessä ei voi olla vähemmän kuin päivämäärä" + +#: hr/utils.py:181 +msgid "To date can not greater than employee's relieving date" +msgstr "Tähän mennessä ei voi olla suurempi kuin työntekijän lieventämispäivä" + +#: hr/doctype/leave_allocation/leave_allocation.py:178 +#: hr/doctype/leave_application/leave_application.py:180 +msgid "To date cannot be before from date" +msgstr "" + +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.py:14 +msgid "To date needs to be before from date" +msgstr "Tähän mennessä on oltava ennen päivämäärää" + +#. Label of a Int field in DocType 'Gratuity Rule Slab' +#: payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgctxt "Gratuity Rule Slab" +msgid "To(Year)" +msgstr "" + +#: payroll/doctype/gratuity_rule/gratuity_rule.js:37 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: controllers/employee_reminders.py:258 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.py:29 +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:40 +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:40 +msgid "Total" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Total" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:108 +msgid "Total Absent" +msgstr "Yhteensä, puuttua" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Proof +#. Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Total Actual Amount" +msgstr "Todellinen kokonaismäärä" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Advance Amount" +msgstr "Ennakkomaksu yhteensä" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Total Allocated Leave(s)" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Total Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Total Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Total Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Amount Reimbursed" +msgstr "Hyvitys yhteensä" + +#: payroll/doctype/gratuity/gratuity.py:94 +msgid "Total Amount can not be zero" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:232 +#: hr/report/project_profitability/project_profitability.py:199 +msgid "Total Billed Hours" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Claimed Amount" +msgstr "Vaatimukset arvomäärä yhteensä" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Total Declared Amount" +msgstr "Ilmoitettu kokonaismäärä" + +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:151 +#: payroll/report/salary_register/salary_register.py:230 +msgid "Total Deduction" +msgstr "Vähennys yhteensä" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Deduction" +msgstr "Vähennys yhteensä" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Total Deduction" +msgstr "Vähennys yhteensä" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:133 +msgid "Total Early Exits" +msgstr "Varhaiset irtautumiset yhteensä" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Total Earning" +msgstr "Ansiot yhteensä" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Earnings" +msgstr "" + +#. Label of a Currency field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Total Estimated Budget" +msgstr "Arvioitu kokonaistalousarvio" + +#. Label of a Currency field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Total Estimated Cost" +msgstr "Arvioidut kokonaiskustannukset" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Total Exemption Amount" +msgstr "Yhteensä vapautusmäärä" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Proof +#. Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Total Exemption Amount" +msgstr "Yhteensä vapautusmäärä" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Total Goal Score" +msgstr "" + +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:144 +msgid "Total Gross Pay" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:110 +msgid "Total Holidays" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Total Hours (T)" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Income Tax" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:127 +msgid "Total Late Entries" +msgstr "Myöhäiset merkinnät" + +#. Label of a Float field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Total Leave Days" +msgstr "Poistumisten yhteismäärä, päivät" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:107 +msgid "Total Leaves" +msgstr "Yhteensä lehdet" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Total Leaves Allocated" +msgstr "Poistumisten yhteismäärä, kohdennettu" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Total Leaves Encashed" +msgstr "Kokonaiset lehdet sulkeutuvat" + +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:158 +msgid "Total Net Pay" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:233 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of a Currency field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Total Payable Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Total Payment" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:102 +msgid "Total Present" +msgstr "Nykyarvo yhteensä" + +#. Label of a Currency field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Total Receivable Amount" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Sanctioned Amount" +msgstr "Hyväksyttävä määrä yhteensä" + +#. Label of a Float field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Total Score" +msgstr "Kokonaispisteet" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Total Self Score" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Taxes and Charges" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:79 +msgid "Total Working Hours" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Working Hours" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:363 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "Ennakkomaksun kokonaismäärä ei voi olla suurempi kuin kokonainen seuraamusmäärä" + +#: hr/doctype/leave_allocation/leave_allocation.py:71 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:160 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:150 +msgid "Total flexible benefit component amount {0} should not be less than max benefits {1}" +msgstr "Joustavan etuuskomponentin {0} kokonaismäärä ei saa olla pienempi kuin enimmäisetujen {1}" + +#. Label of a Data field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total in words" +msgstr "Sanat yhteensä" + +#. Label of a Data field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total in words (Company Currency)" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:248 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "Jako myönnetty määrä yhteensä on {0}" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:141 +msgid "Total percentage against cost centers should be 100" +msgstr "" + +#. Description of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:52 +msgid "Total weightage for all criteria must add up to 100. Currently, it is {0}%" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:151 +#: hr/doctype/appraisal_template/appraisal_template.py:25 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of a Int field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Total working Days Per Year" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:162 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "Yhteensä työaika ei saisi olla suurempi kuin max työaika {0}" + +#. Label of a Section Break field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Totals" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Totals" +msgstr "" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Totals" +msgstr "" + +#. Label of a Section Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Totals" +msgstr "" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Train" +msgstr "Kouluttaa" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Trainer Email" +msgstr "Trainer Sähköposti" + +#. Label of a Data field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Trainer Email" +msgstr "Trainer Sähköposti" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Trainer Name" +msgstr "Trainer Name" + +#. Label of a Data field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Trainer Name" +msgstr "Trainer Name" + +#. Label of a Data field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Trainer Name" +msgstr "Trainer Name" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: overrides/dashboard_overrides.py:44 +msgid "Training" +msgstr "koulutus" + +#. Label of a Link field in DocType 'Employee Training' +#: hr/doctype/employee_training/employee_training.json +msgctxt "Employee Training" +msgid "Training" +msgstr "koulutus" + +#. Label of a Date field in DocType 'Employee Training' +#: hr/doctype/employee_training/employee_training.json +msgctxt "Employee Training" +msgid "Training Date" +msgstr "Harjoittelupäivämäärä" + +#. Name of a DocType +#: hr/doctype/training_event/training_event.json +#: hr/doctype/training_feedback/training_feedback.py:14 +#: hr/doctype/training_result/training_result.py:16 +#: templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "koulutustapahtuma" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Training Event" +msgid "Training Event" +msgstr "koulutustapahtuma" + +#. Label of a Link field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Training Event" +msgstr "koulutustapahtuma" + +#. Label of a Link field in DocType 'Training Result' +#: hr/doctype/training_result/training_result.json +msgctxt "Training Result" +msgid "Training Event" +msgstr "koulutustapahtuma" + +#. Name of a DocType +#: hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "Koulutustapahtuma Työntekijä" + +#: hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "Harjoittelu:" + +#: hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "Koulutustilaisuudet" + +#. Name of a DocType +#: hr/doctype/training_event/training_event.js:16 +#: hr/doctype/training_feedback/training_feedback.json +msgid "Training Feedback" +msgstr "Training Palaute" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Training Feedback" +msgid "Training Feedback" +msgstr "Training Palaute" + +#. Name of a DocType +#: hr/doctype/training_program/training_program.json +msgid "Training Program" +msgstr "Koulutusohjelma" + +#. Label of a Link field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Training Program" +msgstr "Koulutusohjelma" + +#. Label of a Data field in DocType 'Training Program' +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/doctype/training_program/training_program.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Training Program" +msgid "Training Program" +msgstr "Koulutusohjelma" + +#. Name of a DocType +#: hr/doctype/training_event/training_event.js:10 +#: hr/doctype/training_result/training_result.json +msgid "Training Result" +msgstr "Harjoitustulos" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Training Result" +msgid "Training Result" +msgstr "Harjoitustulos" + +#. Name of a DocType +#: hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "Harjoitustulos Työntekijä" + +#. Label of a Section Break field in DocType 'Employee Skill Map' +#. Label of a Table field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Trainings" +msgstr "Koulutukset" + +#. Label of a Date field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Transaction Date" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Transaction Name" +msgstr "Tapahtuman nimi" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Transaction Type" +msgstr "" + +#: hr/doctype/leave_period/leave_period_dashboard.py:7 +msgid "Transactions" +msgstr "" + +#: hr/utils.py:679 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of a Date field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Transfer Date" +msgstr "Siirtoaika" + +#. Label of a Card Break in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json setup.py:327 +msgid "Travel" +msgstr "matka" + +#. Label of a Check field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Travel Advance Required" +msgstr "Matka-Advance vaaditaan" + +#. Label of a Data field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Travel From" +msgstr "Matkustaa vuodesta" + +#. Label of a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Travel Funding" +msgstr "Matkustusrahoitus" + +#. Name of a DocType +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Itinerary" +msgstr "Matkareitti" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Travel Itinerary" +msgstr "Matkareitti" + +#. Name of a DocType +#: hr/doctype/travel_request/travel_request.json +msgid "Travel Request" +msgstr "Matka-pyyntö" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the HR Workspace +#: hr/workspace/expense_claims/expense_claims.json hr/workspace/hr/hr.json +msgctxt "Travel Request" +msgid "Travel Request" +msgstr "Matka-pyyntö" + +#. Name of a DocType +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "Matkaopastushinta" + +#. Label of a Data field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Travel To" +msgstr "Matkusta" + +#. Label of a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Travel Type" +msgstr "Matkustustyyppi" + +#: hr/doctype/leave_block_list/leave_block_list.js:42 +msgid "Tuesday" +msgstr "" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.js:10 +msgid "Type" +msgstr "" + +#. Label of a Select field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Type" +msgstr "" + +#. Label of a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Type" +msgstr "" + +#. Label of a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Type" +msgstr "" + +#. Label of a Data field in DocType 'Employee Tax Exemption Proof Submission +#. Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Type of Proof" +msgstr "Todistuksen tyyppi" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:116 +msgid "Unable to find Salary Component {0}" +msgstr "Palkkakomponenttia ei löydy {0}" + +#: hr/doctype/goal/goal.js:54 +msgid "Unarchive" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Unclaimed Amount" +msgstr "" + +#. Option for a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Under Review" +msgstr "" + +#: hr/doctype/attendance/attendance.py:218 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hr/doctype/attendance/attendance.py:221 +msgid "Unlinked logs" +msgstr "" + +#. Description of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Unmarked Attendance" +msgstr "Merkitsemätön Läsnäolo" + +#: hr/doctype/attendance/attendance_list.js:84 +msgid "Unmarked Attendance for days" +msgstr "Merkitsemätön osallistuminen päiviin" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:116 +msgid "Unmarked Days" +msgstr "Merkitsemättömät päivät" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Unmarked days" +msgstr "Merkitsemättömät päivät" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Unpaid" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Unpaid" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Unpaid" +msgstr "" + +#. Option for a Select field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Unpaid" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Unpaid" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expense Claims Workspace +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hr/workspace/expense_claims/expense_claims.json +msgid "Unpaid Expense Claim" +msgstr "Maksamattomat kulukorvaukset" + +#. Option for a Select field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Unsettled" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:256 +msgid "Untracked Hours" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:82 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Unused leaves" +msgstr "Käyttämättömät lehdet" + +#: controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:256 +msgid "Update" +msgstr "" + +#: hr/doctype/interview/interview.py:73 +msgid "Update Job Applicant" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:237 hr/doctype/goal/goal_tree.js:243 +msgid "Update Progress" +msgstr "" + +#: templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "Päivitä vastaus" + +#: hr/doctype/goal/goal_list.js:36 +msgid "Update Status" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:99 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hr/doctype/interview/interview.py:205 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#: hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload Attendance" +msgstr "Tuo osallistumistietoja" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Upload Attendance" +msgid "Upload Attendance" +msgstr "Tuo osallistumistietoja" + +#. Label of a HTML field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Upload HTML" +msgstr "Tuo HTML-koodia" + +#: public/frontend/assets/InsertVideo-2810c859.js:2 +msgid "Uploading ${h}%" +msgstr "" + +#. Label of a Currency field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Upper Range" +msgstr "" + +#. Label of a Currency field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Upper Range" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Used Leave(s)" +msgstr "" + +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.py:20 +msgid "User" +msgstr "" + +#. Label of a Link field in DocType 'Daily Work Summary Group User' +#: hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgctxt "Daily Work Summary Group User" +msgid "User" +msgstr "" + +#. Label of a Link field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "User" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "User" +msgstr "" + +#. Label of a Data field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "User" +msgstr "" + +#. Label of a Link field in DocType 'Interviewer' +#: hr/doctype/interviewer/interviewer.json +msgctxt "Interviewer" +msgid "User" +msgstr "" + +#. Label of a Table field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Users" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:190 +msgid "Utilization" +msgstr "" + +#. Label of a Int field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Vacancies" +msgstr "Työpaikkailmoitukset" + +#. Label of a Int field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Vacancies" +msgstr "Työpaikkailmoitukset" + +#: hr/doctype/staffing_plan/staffing_plan.js:82 +msgid "Vacancies cannot be lower than the current openings" +msgstr "Avoimet työpaikat eivät voi olla alhaisemmat kuin nykyiset aukot" + +#: hr/doctype/job_opening/job_opening.py:92 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Validate Attendance" +msgstr "Vahvista osallistuminen" + +#: payroll/doctype/payroll_entry/payroll_entry.js:360 +msgid "Validating Employee Attendance..." +msgstr "Vahvistetaan työntekijöiden läsnäolo ..." + +#. Label of a Small Text field in DocType 'Job Offer Term' +#: hr/doctype/job_offer_term/job_offer_term.json +msgctxt "Job Offer Term" +msgid "Value / Description" +msgstr "Arvo / Kuvaus" + +#: hr/employee_property_update.js:166 +msgid "Value missing" +msgstr "Arvo puuttuu" + +#: payroll/doctype/salary_structure/salary_structure.js:144 +msgid "Variable" +msgstr "muuttuja" + +#. Label of a Currency field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Variable" +msgstr "muuttuja" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Variable Based On Taxable Salary" +msgstr "Muuttuja perustuu verolliseen palkkaan" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Variable Based On Taxable Salary" +msgstr "Muuttuja perustuu verolliseen palkkaan" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Vegetarian" +msgstr "Kasvissyöjä" + +#: hr/report/vehicle_expenses/vehicle_expenses.js:40 +#: hr/report/vehicle_expenses/vehicle_expenses.py:27 +msgid "Vehicle" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Vehicle" +msgid "Vehicle" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expense Claims Workspace +#: hr/doctype/vehicle_log/vehicle_log.py:51 +#: hr/report/vehicle_expenses/vehicle_expenses.json +#: hr/workspace/expense_claims/expense_claims.json +msgid "Vehicle Expenses" +msgstr "" + +#. Name of a DocType +#: hr/doctype/vehicle_log/vehicle_log.json +#: hr/report/vehicle_expenses/vehicle_expenses.py:37 +msgid "Vehicle Log" +msgstr "ajoneuvo Log" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Vehicle Log" +msgstr "ajoneuvo Log" + +#. Label of a Link in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Vehicle Log" +msgid "Vehicle Log" +msgstr "ajoneuvo Log" + +#. Name of a DocType +#: hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "ajoneuvo Service" + +#. Name of a DocType +#: hr/doctype/vehicle_service_item/vehicle_service_item.json +msgid "Vehicle Service Item" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Vehicle Service Item" +msgid "Vehicle Service Item" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.js:28 +#: hr/doctype/employee_onboarding/employee_onboarding.js:33 +#: hr/doctype/employee_onboarding/employee_onboarding.js:36 +#: hr/doctype/employee_separation/employee_separation.js:16 +#: hr/doctype/employee_separation/employee_separation.js:21 +#: hr/doctype/employee_separation/employee_separation.js:24 +#: hr/doctype/expense_claim/expense_claim.js:96 +#: hr/doctype/expense_claim/expense_claim.js:226 +#: hr/doctype/job_applicant/job_applicant.js:35 +msgid "View" +msgstr "" + +#: hr/doctype/appraisal/appraisal.js:48 +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:21 +msgid "View Goals" +msgstr "" + +#: patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: setup.py:390 +msgid "Walk In" +msgstr "kävele sisään" + +#: hr/doctype/leave_application/leave_application.py:407 +#: payroll/doctype/salary_structure/salary_structure.js:312 +#: payroll/doctype/salary_structure/salary_structure.py:37 +#: payroll/doctype/salary_structure/salary_structure.py:119 +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:44 +msgid "Warning" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:395 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:403 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:348 +msgid "Warning: Leave application contains following block dates" +msgstr "Varoitus: Hakemus vapaasta sisältää päiviä joita ei ole sallittu" + +#: hr/doctype/shift_assignment/shift_assignment.py:47 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: setup.py:389 +msgid "Website Listing" +msgstr "Verkkosivuston luettelo" + +#: hr/doctype/leave_block_list/leave_block_list.js:47 +msgid "Wednesday" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Weekly" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Weekly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Weekly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Weekly" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Weightage (%)" +msgstr "" + +#. Label of a Percent field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "Weightage (%)" +msgstr "" + +#. Label of a Percent field in DocType 'Appraisal Template Goal' +#: hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgctxt "Appraisal Template Goal" +msgid "Weightage (%)" +msgstr "" + +#. Label of a Percent field in DocType 'Employee Feedback Rating' +#: hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgctxt "Employee Feedback Rating" +msgid "Weightage (%)" +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:35 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of a Text Editor field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Work Anniversaries " +msgstr "" + +#: controllers/employee_reminders.py:279 controllers/employee_reminders.py:286 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of a Date field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Work End Date" +msgstr "Työn päättymispäivä" + +#. Label of a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Work Experience Calculation method" +msgstr "" + +#. Label of a Date field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Work From Date" +msgstr "Työskentely päivämäärästä" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Work From Home" +msgstr "Tehdä töitä kotoa" + +#. Option for a Select field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Work From Home" +msgstr "Tehdä töitä kotoa" + +#. Option for a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Work From Home" +msgstr "Tehdä töitä kotoa" + +#. Label of a Text Editor field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Work References" +msgstr "" + +#: hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "Työyhteenveto {0}" + +#. Label of a Section Break field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Worked On Holiday" +msgstr "Työskennellyt lomalla" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Working Days" +msgstr "Työpäivät" + +#. Label of a Section Break field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Working Days and Hours" +msgstr "" + +#: setup.py:398 +msgid "Working Hours" +msgstr "" + +#. Label of a Float field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Working Hours" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Timesheet' +#: payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgctxt "Salary Slip Timesheet" +msgid "Working Hours" +msgstr "" + +#. Label of a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working Hours Calculation Based On" +msgstr "Työajan laskeminen perustuu" + +#. Label of a Float field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working Hours Threshold for Absent" +msgstr "Poissaolon työtuntikynnys" + +#. Label of a Float field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working Hours Threshold for Half Day" +msgstr "Työajan kynnys puoli päivää" + +#. Description of a Float field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "Työtunnit, joiden alapuolella Poissaolot on merkitty. (Nolla pois käytöstä)" + +#. Description of a Float field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "Työtunnit, joiden alle puoli päivää on merkitty. (Nolla pois käytöstä)" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Workshop" +msgstr "työpaja" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:30 +#: public/js/salary_slip_deductions_report_filters.js:36 +msgid "Year" +msgstr "" + +#. Option for a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Year" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Year To Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Year To Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Yearly" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Yearly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Yes" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.py:84 +msgid "Yes, Proceed" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:358 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "Sinulla ei ole lupa hyväksyä lehdet Block Päivämäärät" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:59 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "Et ole läsnä koko päivän täydennyslomapäivien välillä" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:100 +msgid "You can claim only an amount of {0}, the rest amount {1} should be in the application as pro-rata component" +msgstr "" + +#: payroll/doctype/gratuity_rule/gratuity_rule.py:22 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hr/doctype/shift_request/shift_request.py:65 +msgid "You can not request for your Default Shift: {0}" +msgstr "Et voi pyytää oletussiirtoa: {0}" + +#: hr/doctype/staffing_plan/staffing_plan.py:93 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:37 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "Voit jättää lomakkeen vain kelvollisen kasaamisen summan" + +#: api/__init__.py:546 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:53 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hr/doctype/interview/interview.py:106 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:93 +msgid "changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: public/frontend/assets/InsertVideo-2810c859.js:2 +#: public/frontend/assets/SalarySlipItem-22792733.js:1 +msgid "div" +msgstr "" + +#. Label of a Read Only field in DocType 'Daily Work Summary Group User' +#: hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgctxt "Daily Work Summary Group User" +msgid "email" +msgstr "sähköposti" + +#: hr/doctype/department_approver/department_approver.py:90 +msgid "or for Department: {0}" +msgstr "" + +#: www/jobs/index.html:104 +msgid "result" +msgstr "" + +#: www/jobs/index.html:104 +msgid "results" +msgstr "" + +#: hr/doctype/leave_type/leave_type.js:26 +msgid "to know more" +msgstr "" + +#: public/frontend/assets/InsertVideo-2810c859.js:2 +msgid "video" +msgstr "" + +#: controllers/employee_reminders.py:120 controllers/employee_reminders.py:253 +#: controllers/employee_reminders.py:257 +msgid "{0} & {1}" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2111 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hr/doctype/department_approver/department_approver.py:91 +msgid "{0} Missing" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:31 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:311 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:201 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} on jo myönnetty Työsuhde {1} kauden {2} ja {3}" + +#: hr/utils.py:251 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0} on jo olemassa työntekijälle {1} ja jaksolle {2}" + +#: hr/doctype/shift_assignment/shift_assignment.py:54 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:151 +msgid "{0} applicable after {1} working days" +msgstr "{0} voimassa {1} työpäivän jälkeen" + +#: overrides/company.py:122 +msgid "{0} currency must be same as company's default currency. Please select another account." +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:140 +msgid "{0} due to missing email information for employee(s): {1}" +msgstr "" + +#: hr/report/employee_analytics/employee_analytics.py:14 +msgid "{0} is mandatory" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:566 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} ei ole vapaaehtoisessa lomalistassa" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:31 +msgid "{0} is not in a valid Payroll Period" +msgstr "{0} ei ole voimassa olevassa palkkasummassa" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:31 +msgid "{0} is required" +msgstr "" + +#: hr/doctype/training_feedback/training_feedback.py:14 +#: hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} on toimitettava" + +#: hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "{0} submission before {1} is not allowed" +msgstr "" + +#: hr/doctype/staffing_plan/staffing_plan.py:129 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hr/doctype/goal/goal_list.js:73 +msgid "{0} {1} {2}?" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1823 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}: Työntekijän sähköpostiosoitetta ei löytynyt, joten sähköpostia ei lähetetty" + +#: hr/doctype/leave_application/leave_application.py:69 +msgid "{0}: From {0} of type {1}" +msgstr "{0}: valitse {0} tyypistä {1}" + +#: hr/doctype/exit_interview/exit_interview.py:136 +msgid "{0}: {1}" +msgstr "" + +#: public/frontend/assets/index-43eeacf0.js:123 +msgid "{|}~.]+@[-a-z0-9]+(.[-a-z0-9]+)*.[a-z]+)(?=$|s)/gmi,w=/<()(?:mailto:)?([-.w]+@[-a-z0-9]+(.[-a-z0-9]+)*.[a-z]+)>/gi,k=function(f){return function(g,m,y,x,_,S,E){y=y.replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback);var P=y,$=\"\",L=\"\",I=m||\"\",A=E||\"\";return/^www./i.test(y)&&(y=y.replace(/^www./i,\"http://www.\")),f.excludeTrailingPunctuationFromURLs&&S&&($=S),f.openLinksInNewWindow&&(L=' rel=\"noopener noreferrer\" target=\"¨E95Eblank\"'),I+'\"+P+\"\"+$+A}},C=function(f,g){return function(m,y,x){var _=\"mailto:\";return y=y||\"\",x=r.subParser(\"unescapeSpecialChars\")(x,f,g),f.encodeEmails?(_=r.helper.encodeEmailAddress(_+x),x=r.helper.encodeEmailAddress(x)):_=_+x,y+''+x+\"\"}};r.subParser(\"autoLinks\",function(f,g,m){return f=m.converter._dispatch(\"autoLinks.before\",f,g,m),f=f.replace(v,k(g)),f=f.replace(w,C(g,m)),f=m.converter._dispatch(\"autoLinks.after\",f,g,m),f}),r.subParser(\"simplifiedAutoLinks\",function(f,g,m){return g.simplifiedAutoLink&&(f=m.converter._dispatch(\"simplifiedAutoLinks.before\",f,g,m),g.excludeTrailingPunctuationFromURLs?f=f.replace(h,k(g)):f=f.replace(p,k(g)),f=f.replace(b,C(g,m)),f=m.converter._dispatch(\"simplifiedAutoLinks.after\",f,g,m)),f}),r.subParser(\"blockGamut\",function(f,g,m){return f=m.converter._dispatch(\"blockGamut.before\",f,g,m),f=r.subParser(\"blockQuotes\")(f,g,m),f=r.subParser(\"headers\")(f,g,m),f=r.subParser(\"horizontalRule\")(f,g,m),f=r.subParser(\"lists\")(f,g,m),f=r.subParser(\"codeBlocks\")(f,g,m),f=r.subParser(\"tables\")(f,g,m),f=r.subParser(\"hashHTMLBlocks\")(f,g,m),f=r.subParser(\"paragraphs\")(f,g,m),f=m.converter._dispatch(\"blockGamut.after\",f,g,m),f}),r.subParser(\"blockQuotes\",function(f,g,m){f=m.converter._dispatch(\"blockQuotes.before\",f,g,m),f=f+" +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:171 +msgid "{} is an invalid Attendance Status." +msgstr "{} on virheellinen osallistumistila." + +#: hr/doctype/job_requisition/job_requisition.js:15 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/fr.po b/apps/erpnext/src/hrms/hrms/locale/fr.po new file mode 100644 index 000000000..152b23cb7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/fr.po @@ -0,0 +1,11514 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: French\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: fr\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: fr_FR\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "Le \"De Date\" ne peut pas être supérieur ou égal à \"Date de Date\"" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "% Utilisation (B + NB) / T" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "% Utilization (B / T)" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "'employee_field_value' et 'timestamp' sont obligatoires." + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") pour {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "...Récupération des employés" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "01:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "05:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "08:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "Le montant de base n'a pas été fixé pour le(s) salarié(s) suivant(s) : {0}" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "Exemple: SAL- {prenom} - {date_naissance.année}
    Cela générera un mot de passe comme SAL-Jane-1972" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "Les feuilles totales allouées sont plus que le nombre de jours dans la période d'allocation" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "

    Aide

    \n\n" +"

    Notes :

    \n\n" +"
      \n" +"
    1. Utilisez le champ base pour utiliser le salaire de base de l'employé
    2. \n" +"
    3. Utilisez les abréviations des composantes salariales dans les conditions et les formules. BS = Basic Salary
    4. \n" +"
    5. Utilisez le nom du champ pour les détails de l'employé dans les conditions et les formules. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Utilisez le nom du champ du bulletin de salaire dans les conditions et les formules. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Le montant direct peut également être saisi en fonction de la condition. Voir l'exemple 3
    \n\n" +"

    Exemples

    \n" +"
      \n" +"
    1. Calcul du salaire de base basé sur base\n" +"
      Condition : base < 10000
      \n" +"
      Formule : base * .2
    2. \n" +"
    3. Calcul du HRA basé sur le salaire de baseBS \n" +"
      Condition : BS > 2000
      \n" +"
      Formule : BS * .1
    4. \n" +"
    5. Calcul du TDS basé sur le type d'emploiemployment_type \n" +"
      Condition : employment_type==\"Intern\"
      \n" +"
      Amount : 1000
    6. \n" +"
    " + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "

    Exempleformat@@1\n" +"
      \n" +"
    1. Appliquer une taxe si un employé né entre 31-12-1937 et 01-01-1958 (Employés âgés de 60 à 80 ans)
      \n" +"Condition : date_of_birth>date(1937, 12, 31) et date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "

    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Rapports & Fonctionnalités principales" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "Une demande de tâche pour {0} demandée par {1} existe déjà : {2}" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "Un rappel amical d'une date importante pour notre équipe." + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "Un {0} existe entre {1} et {2} (" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "Absence" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "Jours d'absence" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "Enregistrements absents" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "N ° de compte" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "Le compte {0} ne correspond pas à la société {1}" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "Comptabilité & Paiement" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "Rapports comptables" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "Ecritures de journal de provisions pour les salaires de {0} à {1}" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "Nom de l'activité" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "Montant actuel" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "Jours d'encaissement actuels" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "Les soldes réels ne sont pas disponibles car la demande de congé s'étend sur différentes affectations de congé. Vous pouvez toujours demander des congés qui seraient compensés lors de la prochaine affectation." + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "Ajouter des dates de jour" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "Ajouter une propriété d'employé" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "Ajouter un commentaire" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "Ajouter aux détails" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "Ajouter les congés inutilisés des précédentes allocations" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "Ajouter les feuilles inutilisées de l'allocation de la période de congé précédente à cette allocation" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "Ajout de composantes fiscales provenant du maître de la composante salariale car la structure salariale n'avait aucune composante fiscale." + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "Ajouté aux détails" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "Montant supplémentaire" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "Informations supplémentaires " + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "PF supplémentaire" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "Salaire supplémentaire" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "Salaire supplémentaire" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "Un salaire supplémentaire pour le bonus de parrainage ne peut être créé que contre le parrainage de l'employé avec le statut {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "Un salaire supplémentaire pour ce composant de salaire avec {0} activé existe déjà pour cette date" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "Salaire supplémentaire: {0} existe déjà pour le composant de salaire: {1} pour la période {2} et {3}" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "Adresse de l'organisateur" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "Avance" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "Filtres avancés" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "Tous les objectifs" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "Tous les emplois" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "Tous les actifs alloués doivent être retournés avant leur soumission" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "Toutes les tâches obligatoires pour la création des employés ne sont pas encore terminées." + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "Allocation basée sur la politique de congés" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "Allouer un congé" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "Allouer des congés aux l'employé(es) {0}" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "Allouer le jour" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "Congés alloués" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "Allocation des congés" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "Détails d'allocation" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "Allocation expirée!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "Autoriser l'encaissement" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "Autoriser la géolocalisation" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "Autoriser plusieurs affectations de décalage pour la même date" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "Autoriser un Solde Négatif" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "Autoriser la surallocation" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "Autoriser l'exonération fiscale" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "Autoriser l'Utilisateur" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "Autoriser les Utilisateurs" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "Autoriser le départ après l'heure de fin du quart (en minutes)" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "Autoriser les utilisateurs suivant à approuver les demandes de congés durant les jours bloqués." + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "Permet d'allouer plus de feuilles que le nombre de jours de la période d'attribution." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "Alterner les entrées comme IN et OUT pendant le même quart" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "Montant basé sur la formule" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "Montant basé sur la formule" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "Montant réclamé par le biais d'une note de frais" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "Montant des dépenses" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "Le montant ne doit pas être inférieur à zéro" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "Allocation annuelle" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "Salaire annuel" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "Montant annuel imposable" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "Tout autre détail" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "Toute autre remarque, un effort remarquable qui devrait figurer dans les dossiers" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "Composant de Gains applicable" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "Applicable dans le cas de l'accueil des nouveaux employés" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "Adresse e-mail du demandeur" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "Nom du candidat" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "Notation du candidat" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "Nom du demandeur" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "Application" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "État de la Demande" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "La période de demande ne peut pas être sur deux périodes d'allocations" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "La période de la demande ne peut pas être hors de la période d'allocation de congé" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "Applications reçues" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "Demandes reçues :" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "S'applique à la Société" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "Demander / approuver des congés" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "Choisir" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "Date de rendez-vous" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "Lettre de nomination" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "Modèle de lettre de nomination" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Contenu de la lettre de nomination" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "Estimation" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "Cycle d'évaluation" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "Objectif d'Estimation" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "KRA d'évaluation" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "Liaison de l'évaluation" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "Aperçu de l'évaluation" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "Modèle d'évaluation" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "But du Modèle d'Évaluation" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "Modèle d'évaluation manquant" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "Titre du modèle d'évaluation" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "Modèle d'évaluation introuvable pour certaines désignations." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "La création de l'évaluation est en file d'attente. Cela peut prendre quelques minutes." + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "L'évaluation {0} existe déjà pour l'employé {1} pour ce cycle d'évaluation ou pour la période de chevauchement" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "L'évaluation {0} n'appartient pas à l'employé {1}" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "Évaluateur" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "Évaluateurs : {0}" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "Apprenti" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "Approbation" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "Statut d'Approbation" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "Le Statut d'Approbation doit être 'Approuvé' ou 'Rejeté'" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "Approuvé" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "Approbateur" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "avr" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "Êtes-vous sûr de vouloir supprimer la pièce jointe" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "Etes-vous sur de vouloir supprimer l’élément {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "Êtes-vous sûr de vouloir envoyer les bulletins de salaire sélectionnés ?" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "Êtes-vous sûr de vouloir rejeter la recommandation des employés?" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "Date/Heure d'arrivée" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "La struture salariale qui vous a été assignée ne vous permet pas de demander des avantages sociaux" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "Actifs alloués" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "Attribuer des plannings de quarts" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "Assignation des structures..." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "Affectation basée sur" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "Offres d'emploi associées" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "Document Associé" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "Type de document associé" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "Présence" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Nombre de présences" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "Date de Présence" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "Présence Depuis" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "La Date de Présence Depuis et la Date de Présence Jusqu'à sont obligatoires" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "ID de présence" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "Présence marquée" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "Demande de validation de présence" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "Paramètres de présence" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "Présence Jusqu'à" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "Présence mise à jour" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "Avertissements de présence" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "La date de participation {0} ne peut pas être inférieure à la date d'adhésion de l'employé {1}: {2}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "La présence de tous les employés selon ces critères a déjà été marquée." + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "La présence de l'employé {0} est déjà marquée comme chevauchant le poste {1}: {2}" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "La présence de l'employé {0} est déjà marquée pour la date {1}: {2}" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "La participation de {0} à {1} a déjà été marquée pour l'employé {2}" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "Présence marquée avec succès" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "Présence de {0} non soumise car il s'agit d'un jour férié." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "Participation non soumise pour {0} car {1} est en congé." + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "La participation sera automatiquement marquée après cette date." + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "Participants" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "Nombre de tritions" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "Août" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "Paramètres de présence automatique" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "Remise en espèces automatique" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "Automatisé en fonction de la progression de l'objectif" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "Récupère automatiquement tous les actifs alloués à l'employé, le cas échéant" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "Congés disponible(s)" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "Congés disponibles" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "Score moyen des commentaires" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "Notation moyenne" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "Score moyen des commentaires" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "Utilisation Moyenne" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "Utilisation Moyenne (uniquement facturée)" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "Attente de Réponse" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "La demande de congé rétrodatée est restreinte. Veuillez définir {} dans {}" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "Écritures Bancaires" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "Virement bancaire" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "Base" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "Base & Variable" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "Commencez l'enregistrement avant l'heure de début du poste (en minutes)" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "Voici la liste des jours fériés à venir pour vous:" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "Avantage" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "Avantages" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "Montant de la facture" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "Heures facturées" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "Heures facturées (B)" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "Bimensuel" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "Rappel d'anniversaire" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "Rappel d'anniversaire 🎂" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "Jours d'anniversaire" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "Bloquer la Date" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "Bloquer les Jours" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "Bonus" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "Montant du bonus" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "Date de paiement du bonus" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "La date de paiement du bonus ne peut pas être une date passée" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "Branche : {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "Affectation de la politique de congés en masse" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "Affectation de la structure salariale en bloc" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "CTC" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "Calculer le montant de la Gratuité basé sur" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "Calculer les jours ouvrables de paie en fonction de" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "Calculé en jours" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "Appels" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "Annulation en file d'attente" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "Impossible d'attribuer des congés en dehors de la période de congés {0} - {1}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "Impossible de créer un bulletin de salaire pour les employés qui se joignent après la période de paie" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "Impossible de créer un feuillet de salaire pour l'employé qui est parti avant la période de paie" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "Impossible de créer un candidat à un poste contre un poste fermé" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "Impossible de trouver une période de congés active" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "Impossible de marquer la présence d'un employé inactif {0}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "Impossible de soumettre. La présence n'est pas marquée pour certains employés." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "Impossible de mettre à jour l'allocation pour {0} après la soumission" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "Impossible de mettre à jour le statut des groupes d'objectifs" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "Reporter" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "Effectuer Feuilles Transmises" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "Congé occasionnel" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "Cause de grief" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "A chAngé le stAtut de {0} à {1} viA lA demAnde de présence" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "Le changement de KRA dans cet objectif parent alignera tous les objectifs de l'enfant sur la même KRA, le cas échéant." + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "Consultez le journal des erreurs {0} pour plus de détails." + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "Vérifier les offres d'emploi lors de la création d'une offre d'emploi" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "Vérifiez {0} pour plus de détails" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "Date d'arrivée" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "Date de départ" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "Les nœuds enfants ne peuvent être créés que sous les nœuds de type 'Groupe'" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "Demande de prestations pour" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "Réclamé" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "Montant réclamé" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "Réclamations" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "Nettoyé" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "Fermé le" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "Fermeture activée" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "Ferme le :" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "Notes de clôture" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "Demande de congé compensatoire" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "Congé Compensatoire" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "Compléter l'intégration" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "Propriétés et références des composants" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "Etat & Formule" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "Aide sur la condition et la formule" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "Condition et formule" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "Conditions et variable de formule et exemple" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "Conférence" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "Considérer la période de grâce" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "Considérer la présence marquée pendant les vacances" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "Considérer la déclaration d'exemption fiscale" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "Considérez la participation non marquée comme" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "Consolider les types de congés" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "Numéro de contact" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "Copie de l'invitation / annonce" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "Impossible de soumettre quelques fiches de salaire : {}" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "Impossible de mettre à jour l'objectif" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "Impossible de mettre à jour les objectifs" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "Cours" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "Lettre de Motivation" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "Créer un salaire supplémentaire" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "Créer des évaluations" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "Créer une entrevue" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "Créer un candidat" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "Créer un poste ouvert" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "Créer un nouvel identifiant d'employé" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "Créer une Fiche de Paie" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "Créer les fiches de paie" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "Créer des évaluations" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "Créer des écritures de paiement..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "Création des fiches de paie en cours..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "Création de {0}..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "Échec de la création" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "Critères sur la base desquels l'employé doit être évalué dans la rétroaction sur la performance et l'autoévaluation" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "Devise " + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "La devise de la dalle d'impôt sur le revenu sélectionnée doit être {0} au lieu de {1}" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "CTC en cours" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "Compte actuel" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "Employeur actuel " + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "Titre du poste actuel" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "Mois de l'impôt sur le revenu" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "La valeur actuelle de l'odomètre doit être supérieure à la dernière valeur de l'odomètre {0}" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "Valeur actuelle du compteur kilométrique" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "Offres actuelles" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "Dalle actuelle" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "Expérience de travail actuelle" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "Actuellement, il n'y a pas de période de congé {0} pour cette date pour créer/mettre à jour l'allocation de congé." + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "Plage personnalisée" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "Nom du cycle" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "Récapitulatif de travail quotidien" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "Groupe de récapitulatif quotidien" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "Utilisateur du groupe de récapitulatif quotidien" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "Réponses au récapitulatif de travail quotidien" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "La date est répétée" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "Dates & Raison" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "Dates basées sur" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "Numéro de débit du compte" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "déc" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "Décision en attente" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "Déclarations" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "Montant Déclaré" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Déduire la taxe complète à la date de paie sélectionnée" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "Déduire la taxe pour toute preuve d'exemption de taxe non soumise" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "Déduction" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "Rapports de déduction" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "Déduction du salaire" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "Déductions" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "Déductions avant calcul de la taxe" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "Montant par Défaut" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "Le compte par défaut de Banque / Caisse sera automatiquement mis à jour dans l’écriture de Journal de Salaire lorsque ce mode est sélectionné." + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "Paiement de base par défaut" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "Structure salariale par défaut" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "Approbateur du département" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "Ouvertures Sages du Service" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "Service : {0}" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "Date/Heure de départ" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "Dépend des jours de paiement" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "Compétence de désignation" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "Désignation : {0}" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "Détails du commanditaire (nom, lieu)" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "Déterminer les entrées et les sorties" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "Désactiver {0} pour le composant {1} , pour éviter que le montant ne soit déduit deux fois, car sa formule utilise déjà un composant basé sur le paiement." + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "Désactiver {0} ou {1} pour continuer." + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "Ne pas inclure dans le total" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "Ne pas inclure au total" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "Voulez-vous mettre à jour le candidat {0} comme {1} en fonction de ce résultat d'entrevue ?" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "National" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "Duplicate Attendance" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "Requisition de tâche en double" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "Salaire en double écrasé" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "Sortie anticipée" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "Sortie anticipée de" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "Période de grâce de sortie anticipée" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "Sorties anticipées" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "Congés acquis" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "Fréquence d'acquisition des congés" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "Feuilles gagnées" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "Les feuilles gagnées sont allouées selon la fréquence configurée via le planificateur." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "Les congés gagnés sont automatiquement alloués via le planificateur selon l'allocation annuelle définie dans la politique de congés : {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "Les congés gagnés sont des congés gagnés par un employé après avoir travaillé avec l'entreprise pendant un certain temps. Activer cette option permettra d'allouer les feuilles au prorata en mettant à jour automatiquement l'allocation de congés pour les feuilles de ce type à des intervalles définis par 'Fréquence de congé gagné." + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "Revenus" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "Composante de revenu" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "La composante de salaire est requise pour le bonus de parrainage des employés." + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "Bénéfices" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "Gains & Déductions" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "À partir de" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "Effectif à :" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "À compter de" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "Envoyer la Fiche de Paie à l'Employé par Mail" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "Envoyer les bordereaux de salaire" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "Email envoyé à" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "Envoi des fiches de paie à l'employé par Email en fonction de l'email sélectionné dans la fiche Employé" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "Numéro de l'employé" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "Récapitulatif des avances versées aux employés" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "Analyses des employés" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "Outil de Gestion des Présences des Employés" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "Demande d'avantages sociaux" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "Détail de la demande d'avantages sociaux" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "Requête d'avantages sociaux" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "Avantages de l'Employé" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "Anniversaire de l'employé" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "Activité d'intégration des nouveaux employés" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "Enregistrement des employés" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "Centre de coûts des employés" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "Détails des employés" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "Emails de l'Employé" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "Paramètres de sortie des employés" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "Quitter les employés" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "Critères de rétroaction des employés" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "Évaluation des commentaires des employés" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "Echelon des employés" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "Réclamation des employés" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "Assurance maladie des employés" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "Heures d'utilisation des employés basées sur la feuille de temps" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "Image de l'employé" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "Intéressement des employés" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "Informations sur les employés" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "Informations sur l'employé" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "Employé de quitter le solde" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "Résumé de la sortie du solde des employés" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "Nommage de l'employé par" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "Embauche des employés" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "Modèle d'accueil des nouveaux employés" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "Intégration des employés : {0} existe déjà pour le candidat au poste : {1}" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "Autres revenus des employés" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "Commentaire sur la performance des employés" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "Promotion des employés" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "Détails de la promotion des employés" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "La promotion des employés ne peut pas être soumise avant la date de la promotion" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "Historique des propriétés des champs de la fiche employé" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "Recommandations" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "La recommandation d'un employé {0} n'est pas applicable à la prime de recommandation." + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "Responsable de l'employé " + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "Employé retenu" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "Départ des employés" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "Modèle de départ des employés" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "Paramètres des Employés" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "Compétence de l'employé" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "Carte de compétences des employés" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "Compétences des employés" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "Statut de l'employé" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "Catégorie d'exemption de taxe des employés" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "Déclaration d'exemption de taxe" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "Catégorie de déclaration d'exemption de taxe" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "Soumission d'une preuve d'exemption de taxe" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "Détails de la soumission de preuve d'exemption de taxe" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "Sous-catégorie d'exemption de taxe" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "Entrainement d'employé" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "Transfert des employés" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "Détail du transfert des employés" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "Détails de transfert des employés" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "Le transfert des employés ne peut pas être soumis avant la date de transfert" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "L'employé peut être nommé par l'ID de l'employé si vous en assignez un, ou via la série Nom. Sélectionnez votre préférence ici." + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "Nom de l'employé" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "Les enregistrements des employés sont créés en utilisant l'option sélectionnée" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "L'employé a été marqué comme absent en raison de l'absence d'enregistrement." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "L'employé a été marqué Absent pour ne pas avoir atteint le seuil d'heures de travail." + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "L'employé {0} a déjà une demande de présence {1} qui se chevauche avec cette période" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "L'employé {0} a déjà un décalage d'activité {1}: {2} qui se chevauche pendant cette période." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "Employé {0} a déjà postulé pour Maj {1}: {2} qui se chevauche pendant cette période" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "L'employé {0} a déjà postulé pour {1} entre {2} et {3} : {4}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "L'employé {0} n'est pas actif, ou n'existe pas" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "L'employé {0} est en congés le {1}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "Employé {0} introuvable dans l'événement de formation." + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "Employé {0} sur une demi-journée sur {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "Employé : {0} doit compléter au minimum {1} ans pour gratuité" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "Employés HTML" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "Employés travaillant en vacances" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "Les employés ne peuvent pas donner de commentaires à eux-mêmes. Utilisez {0} à la place : {1}" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "Les employés manqueront des rappels de vacances de {} jusqu'au {}.
    Voulez-vous procéder à cette modification ?" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "Employés sans commentaire : {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "Employés sans objectifs: {0}" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "Employés qui travaillent un jour férié" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "Type d'emploi" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "Activer la présence automatique" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "Activer le marquage de fin anticipée" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "Activer le marquage des entrées en retard" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "Encaissement" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "Montant d'encaissement" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "Jours d'encaissement" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "Les jours d'encaissement ne peuvent excéder {0} {1} selon les paramètres du type de congé" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "Limite d'encaissement appliquée" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "Crypter les bulletins de salaire dans les courriels" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "La date de fin ne peut pas être antérieure à la date de début" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "Date de fin : {0}" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "L'heure de fin ne peut pas être avant l'heure de début" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "Entrez les heures normales de travail pour une journée de travail normale. Ces heures seront utilisées dans les calculs de rapports tels que l'utilisation des heures de travail des employés et l'analyse de rentabilité des projets." + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "Entrez le nombre de congés que vous voulez allouer pour la période." + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "Entrez {0}" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "Erreur dans la formule ou la condition" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "Erreur dans la formule ou la condition : {0} dans la dalle d'impôts sur le revenu" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "Erreur lors de l'évaluation de l' {doctype} {doclink} à la ligne {row_id}.

    Erreur : {error}

    Indice : {description}" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "Coût estimé par poste" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "Évaluation" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "Date d'évaluation" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "La méthode d'évaluation ne peut pas être modifiée car il y a des évaluations existantes créées pour ce cycle" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "Détails de l'évènement" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "Lien d'événement" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "Lieu de l'Événement" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "Nom de l'Événement" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "Statut de l'Événement" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "Chaque enregistrement valide et check-out" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "Tout le monde, félicitons-les pour leur anniversaire!" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "Tout le monde, félicitons {0} pour son anniversaire." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "Examen" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "Exclure les vacances" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "Congés non encaissables pour {0} exclues pour {1}" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "Exonéré d'impôt sur le revenu" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "Exonération" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "Catégorie d'exemption" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "Preufs d'exemption" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "Sous-catégorie d'exemption" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "Sortie confirmée" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "Quitter l'entretien" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "Quitter l'entretien en attente" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "Récapitulatif de l'entretien de sortie" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "L'entretien de sortie {0} existe déjà pour l'employé : {1}" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "Exit Questionnaire" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "Notification de sortie du questionnaire" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "Modèle de notification du questionnaire de sortie" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "Quitter le questionnaire en attente" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "Quitter le formulaire Web du questionnaire" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "Note moyenne attendue" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "Attendu par" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "Compensation prévue" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "Ensemble de Compétences attendu" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "Compétences attendues" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "Approbateur de dépenses" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "Approbateur obligatoire pour les notes de frais" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "Compte de Note de Frais" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "Avance sur Note de Frais" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "Détail de la Note de Frais" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "Type de Note de Frais" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "Note de Frais pour Indémnité Kilométrique {0}" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "Note de Frais {0} existe déjà pour l'Indémnité Kilométrique" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "Demandes de remboursement" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "Date de la Note de Frais" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "Preuves de dépenses" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "Frais et taxes" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "Type de dépense" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "Dépenses & Avancées" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "Expiration de l'allocation" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "Expirer les congés reportés (jours)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "Demande(s) de congés expirée(s)" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "Demandes de congés expirées" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "Explication" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "Exportation en cours..." + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "Impossible de créer/soumettre {0} pour les employés:" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "Échec de l'envoi de la notification de replanification d'entrevue. Veuillez configurer votre compte de messagerie." + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "Impossible de soumettre des affectations de politique de congés :" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "Impossible de mettre à jour le statut du candidat" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "Détails de l'échec" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "fév" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "Nombre de commentaires" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "Rétroaction HTML" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "Évaluations de commentaires" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "Modèle de notification de retour d'expérience" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "Score des commentaires" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "Retour d'Expérience Soumis" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "Commentaire déjà soumis pour l'entrevue {0}. Veuillez annuler le commentaire précédent {1} pour continuer." + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "Les commentaires ne peuvent pas être enregistrés pour un employé absent." + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "Le commentaire {0} a été ajouté avec succès" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "Récupération des employés" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "Remplissez et enregistrez le formulaire" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "Rempli" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "Filtrer les employés" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "Décision finale" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "Score final" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "Premier enregistrement et dernier départ" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "Premier jour" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "Prénom " + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "Exercice Fiscal {0} introuvable" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "Gestion de la flotte" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "Avantages sociaux variables" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "Vol" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "FnF en attente" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "Suivre par E-mail" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "Alimentation" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "Pour la désignation " + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "Employé" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "Pour un jour de congé pris, si vous payez encore (dit) 50% du salaire quotidien, puis entrez 0,50 dans ce champ." + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "Formule" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "Fraction des gains applicables " + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "Fraction du salaire journalier pour une demi-journée" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "Fraction de salaire quotidien par congé" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "Coût fractionnaire" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "Du Montant" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "La date de début doit être antérieure à la date de fin" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "La date de début {0} ne peut pas être après la date de départ de l'employé {1}" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "La date de départ {0} ne peut pas être antérieure à la date d'arrivée de l'employé {1}" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "La date de départ ne peut être antérieure à la date d'arrivée de l'employé" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "La date de début ne peut pas être inférieure à la date d'adhésion de l'employé." + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "A partir de là, vous pouvez activer le campement pour les feuilles d'équilibre." + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "De(Année)" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "Frais de carburant" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "Dépenses de carburant" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "Prix du carburant" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "Qté Carburant" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "Actif complet et final" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "Déclaration complète et finale en suspens" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "Temps Plein" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "Entièrement commandité" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "Montant financé" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "Impôt sur le revenu futur" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "Dates futures non autorisées" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "Obtenir des détails de la déclaration" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "Obtenir des employés" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "Obtenir des demandes d'emploi" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "Obtenir Modèle" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "Obtenez l'application sur votre appareil pour un accès facile et une meilleure expérience !" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "Obtenez l'application sur votre iPhone pour un accès facile et une meilleure expérience" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "Sans gluten" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "Achèvement de l'objectif (%)" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "Score d'objectif" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "Score d'objectif (%)" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "Score d'objectif (pondéré)" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "Le pourcentage de progression de l'objectif ne peut pas être supérieur à 100." + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "L'objectif doit être aligné avec le même KRA que son objectif parent." + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "L'objectif doit être la propriété du même employé que son objectif parent." + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "L'objectif devrait appartenir au même cycle d'évaluation que son objectif parent." + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "Objectif mis à jour avec succès" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "Objectifs mis à jour avec succès" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "Note" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "Gratuity" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "Composant de Gratuité Applicable" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "Règle de Gratuité" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "Dalle de Règles de Gratuité" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "Grievance" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "Contre le grief" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "Rébellion contre la partie" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "Grievance Details" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "Grievance Type" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "Salaire brut" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "Paiement brut (devise de la société)" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "Année brute à ce jour" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "Année brute à échéance (Devise de la société)" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "La progression de l'objectif de groupe est calculée automatiquement en fonction des objectifs de l'enfant." + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "RH" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "Tableau de bord HR" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "Paramètres RH" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "HRMS" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "Demi-Journée" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "Date de Demi-Journée" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "La date de la demi-journée est obligatoire" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "La Date de Demi-Journée doit être entre la Date de Début et la Date de Fin" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "La date de la demi-journée doit être comprise entre la date du début du travail et la date de fin du travail" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "Enregistrements d'une demi-journée" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "La date de la demi-journée doit être comprise entre la date de début et la date de fin" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "A un certificat" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "Nom de l'assurance santé" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "Bonjour {} ! Cet e-mail est pour vous rappeler les prochaines vacances." + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "Nombre d'embauches" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "Paramètres d'embauche" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "Liste de jours fériés pour congé facultatif" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "Vacances ce mois-ci." + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "Vacances cette semaine." + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "Taux horaire (devise de l'entreprise)" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "Jours de location de maison payés avec chevauchement avec {0}" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "Les dates de location du logement sont requises pour le calcul de l'exemption" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "Les dates de location du logement doivent être au moins à 15 jours d'intervalle" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "IFSC" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "Code IFSC" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "DANS" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "Numéro du document d'identification" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "Type de document d'identification" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "Si coché, la paie payable sera réservée à chaque employé" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "Si coché, masque et désactive le champ Total arrondi dans les fiches de salaire" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "Si coché, le montant total sera déduit du revenu imposable avant le calcul de l'impôt sur le revenu sans aucune déclaration ou soumission de preuve." + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "Si elle est activée, la déclaration d'exonération fiscale sera prise en compte pour le calcul de l'impôt sur le revenu." + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "Si activé, la présence automatique sera marquée pendant les jours fériés si les enregistrements des employés existent" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "Si activé, déduit les jours de paiement pour les absents sur les jours fériés. Par défaut, les jours fériés sont considérés comme payés" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "Si activé, le composant sera considéré comme un composant de taxe et le montant sera calculé automatiquement selon les dalles d'impôt sur le revenu configurées" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "Si activé, le composant sera pris en compte dans le rapport sur les déductions d'impôt sur le revenu" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "Si activé, le composant ne sera pas affiché dans le bulletin de salaire si le montant est zéro" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Si activé, la valeur spécifiée ou calculée dans ce composant ne contribuera pas aux gains ou déductions. Cependant, sa valeur peut être référencée par d'autres composants qui peuvent être ajoutés ou déduits. " + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "Si activé, le nombre total de jours ouvrables inclura les jours fériés, ce qui réduira la valeur du salaire par jour" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "Si décochée, la liste devra être ajoutée à chaque département où elle doit être appliquée." + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Si cette option est sélectionnée, la valeur spécifiée ou calculée dans ce composant ne contribuera pas aux gains ou aux déductions. Cependant, sa valeur peut être référencée par d'autres composants qui peuvent être ajoutés ou déduits." + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "Si défini, l'ouverture de la tâche sera fermée automatiquement après cette date" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "Si vous utilisez des prêts dans des feuillets de salaire, veuillez installer l'application {0} à partir de Frappe Cloud Marketplace ou GitHub pour continuer à utiliser l'intégration de crédit avec la paie." + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "Importer Participation" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "À l'heure" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "En cas d'erreur lors de ce processus en arrière-plan, le système va ajouter un commentaire sur l'erreur sur cette entrée de paie et revenir au statut Envoyé" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "Incitatif" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "Montant de l'intéressement" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "Inclure les vacances dans le nombre total de Jours Ouvrés" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "Inclure les vacances dans les congés en tant que congés" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "Source du revenu" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "Montant de l'impôt sur le revenu" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "Répartition de l’impôt sur le revenu" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "Composante de l'impôt sur le revenu" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "Calcul de l'impôt sur le revenu" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "Date de déduction de l'impôt sur le revenu" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "Déductions d'impôt sur le revenu" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "Dalle d'impôt sur le revenu" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "Dalle d'impôt sur le revenu Autres charges" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "La dalle d'impôt sur le revenu doit entrer en vigueur à la date de début de la période de paie ou avant: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "Dalle d'impôt sur le revenu non définie dans l'affectation de la structure salariale: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "Dalle d'impôt sur le revenu: {0} est désactivée" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "Revenus provenant d'autres sources" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "Allocation de poids incorrecte" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "Indique le nombre de feuilles qui ne peuvent pas être encastrées à partir du solde de congé. Par exemple avec un solde de congé de 10 et 4 feuilles non encaissables, vous pouvez encapsuler 6, tandis que les 4 restantes peuvent être reportées ou expirées" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "Inspection" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "Installer" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "Solde insuffisant" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "Solde de sortie insuffisant pour quitter le type {0}" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "Montant d'Intérêts" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "Compte de revenu d'intérêts" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "Interne" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "International" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "Internet" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "Entretien" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "Détail de l'entrevue" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "Détails de l'entrevue" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "Retour d'entretien" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "Rappel de commentaire d'entretien" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "Avis d'entretien {0} soumis avec succès" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "Interview non reprogrammée" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "Rappel d'entretien" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "Modèle de notification d'entretien" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "L'entretien a été reprogrammé avec succès" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "Cycle d'entretien" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "La manche d'entretien {0} n'est applicable que pour la désignation {1}" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "La manche {0} est réservée à la désignation {1}. Le candidat a postulé pour le rôle {2}" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "Statut de l'entretien" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "Résumé de l'entrevue" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "Type d'entretien" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "Interview : {0} Replanifié" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "Interviewer" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "Interviewers" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "Interviews" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "Compte de paie non valide. La devise du compte doit être {0} ou {1}" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "Enquêté" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "Détails de l'enquête" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "Invité" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "Facture Ref" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "Est applicable pour le bonus de parrainage" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "Est un Report" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "Est compensatoire" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "Le congé compensatoire" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "Est un congé acquis" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "Est expiré" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "Est un avantage flexible" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "Est un élément de l'impôt sur le revenu" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "Est un Congé Sans Solde" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "Est un congé facultatif" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "Est un congé partiellement payé" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "Est récurrent" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "Salaire supplémentaire récurrent" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "Est taxable" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "Janvier" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "Demandeur d'emploi" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "Source du candidat" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "Le candidat {0} a été créé avec succès." + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "Les candidats à un poste ne sont pas autorisés à apparaître deux fois pour la même manche d'entrevue. L'entretien {0} est déjà prévu pour le candidat {1}" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "Route de l'application de job" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "Description de l'Emploi" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "Offre d'emploi" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "Condition de l'offre d'emploi" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "Modèle de conditions d'offre d'emploi" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "Conditions de l'offre d'emploi" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "Statut de l'offre d'emploi" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "Offre d'emploi: {0} est déjà pour le candidat à l'emploi: {1}" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "Offre d’Emploi" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "Ouverture de poste associée" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "Offres d'emploi" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "Les postes à pourvoir pour la désignation {0} sont déjà ouverts ou l'embauche est terminée conformément au plan de dotation {1}" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "Réquisition des tâches" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "La réquisition {0} a été associée à l'ouverture de poste {1}" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "Profil de l’Emploi. qualifications requises ect..." + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "Emplois" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "Date d'Inscription" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "juillet" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "juin" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "KRA" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "Méthode d'évaluation KRA" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "KRA mis à jour pour tous les objectifs de l'enfant." + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "Objectifs KRA vs" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "KRAs" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "Domaine Essentiel de Performance" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "Domaine de Responsabilités Principal" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "Zone de résultat clé" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "Dernier jour" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "Dernière synchronisation réussie de l'enregistrement des employés. Réinitialisez cette opération uniquement si vous êtes certain que tous les journaux sont synchronisés à partir de tous les emplacements. S'il vous plaît ne modifiez pas cela si vous n'êtes pas sûr." + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "Valeur du dernier Odomètre " + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "Dernière synchronisation de Checkin" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "Entrées en retard" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "Entrée tardive" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "Paramètres d'entrée en retard et de sortie anticipée pour la présence automatique" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "Entrée tardive par" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "Délai de grâce pour entrée tardive" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "Partir" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "Allocation de Congés" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "Allocations de congé" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "Demande de Congés" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "La période de demande de congé ne peut pas dépasser deux allocations de congés non consécutives {0} et {1}." + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "Notification d'approbation de congés" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "Modèle de notification d'approbation de congés" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "Quitter l'approbateur" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "Approbateur de congés obligatoire dans une demande de congé" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "Nom de l'Approbateur de Congés" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "Solde de congés" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "Solde de Congés Avant Demande" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "Quitter la liste de blocage" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "Autoriser la Liste de Blocage des Congés" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "Liste de Blocage des Congés Autorisée" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "Date de la Liste de Blocage des Congés" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "Dates de la Liste de Blocage des Congés" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "Nom de la Liste de Blocage des Congés" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "Laisser Verrouillé" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "Assistant de politique de congés en masse" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "Quitter les détails" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "Congés Accumulés à Encaisser" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "Montant d'encaissement des congés par jour" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "Quitter le grand livre" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "Période de congé" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "Politique de congé" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "Affectation de politique de congés" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "Chevauchement de la politique d'affectation" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "Détail de la politique de congé" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "Détails de la politique de congé" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "Politique de congés : {0} déjà affecté à l'employé {1} pour la période {2} à {3}" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "Notification de statut des congés" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "Modèle de notification de statut des congés" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "Type de congé" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "Nom du Type de Congé" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "Le type de congé peut être compensatoire ou gagné." + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "Quitter le Type peut être soit sans paiement partiel ou sans paiement partiel" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "Le Type de Congé {0} ne peut pas être alloué, car c’est un congé sans solde" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "Le Type de Congé {0} ne peut pas être reporté" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "Le type de congé {0} n'est pas encaissable" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "Congé Sans Solde" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "Le congé sans solde ne correspond pas aux enregistrements {} approuvés" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "L'allocation {0} est liée à la demande de sortie {1}" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "Des congés ont déjà été attribués pour cette affectation de politique de congés" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "Paramètres de départ et de demande de remboursement" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "La demande de congé est liée aux allocations de congé {0}. Demande de congé ne peut pas être défini comme congé sans solde" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Congé ne peut être alloué avant le {0}, car le solde de congés a déjà été reporté dans la feuille d'allocation de congés futurs {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Congé ne peut être demandé / annulé avant le {0}, car le solde de congés a déjà été reporté dans la feuille d'allocation de congés futurs {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "Le congé de type {0} ne peut pas être plus long que {1}." + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "Parte(s) expirée(s)" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "Partez(s) en attente d'approbation" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "Quitte(s) prise(s)" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "Congés" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "Congés et jours non travaillés" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "Congés alloués" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "Congés en attente d'approbation" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "Les congés pour le type de congé {0} ne seront pas transférés car le transfert de voiture est désactivé." + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "Congés par Année" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Parti" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "Cycle de vie" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "Lier le cycle et marquer KRA à votre objectif pour mettre à jour le score de l'objectif de l'évaluation en fonction de la progression de l'objectif" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "Projet lié {} et tâches supprimés." + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "Compte de prêt" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "Produit de prêt" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "Remboursement du prêt" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "Entrée de remboursement de prêt" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "Le prêt ne peut pas être remboursé à partir du salaire de l'employé {0} car le salaire est traité dans la devise {1}" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "Emplacement / ID de périphérique" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "Hébergement requis" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "Type de journal" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "Le type de journal est requis pour les enregistrements entrant dans le quart de travail: {0}." + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "Portée inférieure" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "MICR" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "Faire une entrée bancaire" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "Note manuelle" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "Mai" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "Noter la Présence" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "Marquer la présence automatique sur les jours fériés" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "Marquer comme terminé" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "Marquer comme en cours" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "Marquer comme {0}" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "Marquer la présence comme {0} pour {1} aux dates sélectionnées ?" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "Marquez la présence sur la base de 'Enregistrement des employés' pour les employés affectés à ce poste." + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "Marquer {0} comme terminé ?" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "Marquer {0} {1} comme {2}?" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "Présence Validée" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "HTML des Présences Validées" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "Signaler la présence" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "Montant maximal des prestations" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "Montant maximum des prestations sociales (annuel)" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "Prestations sociales max (montant)" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "Prestations sociales max (annuel)" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "Montant maximum d'exemption" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "Le montant maximal de l'exemption ne peut pas dépasser le montant maximal de l'exonération {0} de la catégorie d'exonération fiscale {1}." + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "Revenu imposable maximum" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "Heures de Travail Max pour une Feuille de Temps" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "Nombre maximal de congés reportés" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "Nombre maximum de feuilles consécutives autorisées" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "Nombre maximum de feuilles consécutives dépassé" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "Nombre maximum de feuilles encaissables" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "Montant maximum exonéré" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "Montant maximum d'exemption" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "Le maximum de feuilles encastrables pour {0} est {1}" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "La durée maximale autorisée pour le type de congé {0} est {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "Mai" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "Préférence pour le repas" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "Médical" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "Kilométrage" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "Revenu imposable minimum" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "Année minimale pour la Gratuité" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "Date de départ manquante" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "Mode de déplacement" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "Mode de paiement est requis pour effectuer un paiement" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "Mois à ce jour" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "Du mois à la date (devise de la société)" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "Feuille de Présence Mensuelle" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "Plus d'une sélection pour {0} non autorisée" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "De multiples traitements supplémentaires avec une propriété d'écrasement existent pour le composant salarial {0} entre {1} et {2}." + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "Affectations Maj Multiples" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "Erreur de nom" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "Nom de l'organisateur" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "Salaire net" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "Salaire net (devise de l'entreprise)" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "Infos salariales nettes" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "Salaire Net ne peut pas être inférieur à 0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "Montant net du salaire" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "Salaire Net ne peut pas être négatif" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "Nouvel ID employé" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "Nouveau(x) partie(s) alloué(s)" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "Nb Jours de congés à attribuer" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "Nouvelle attribution de jours de Congés" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "Aucun employé trouvé" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "Aucun employé trouvé pour la valeur de champ d'employé donnée. '{}': {}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "Aucun employé sélectionné" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "Aucune période de congé trouvée" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "Aucun congé attribué à l'employé: {0} pour le type de congé: {1}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "Aucune structure de salaire attribuée à l'employé {0} à la date {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "Aucun plan de dotation trouvé pour cette désignation" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "Aucune Structure de Salaire active ou par défaut trouvée pour employé {0} pour les dates données" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "Aucune dépense supplémentaire n'a été ajoutée" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "Aucun dossier de présence trouvé pour ce critère." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "Aucun dossier de présence trouvé." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "Aucune modification trouvée dans les timings." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "Aucun employé trouvé" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "Aucun employé n'a été trouvé pour les critères mentionnés :
    Société : {0}
    Devise: {1}
    Compte Payable de paie : {2}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "Aucun employé trouvé pour les critères sélectionnés" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "Aucun employé trouvé avec les filtres sélectionnés et la structure active du salaire" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "Aucun élément sélectionné" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "Aucun enregistrement de congé trouvé pour l'employé {0} le {1}" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "Pas de mise à jour supplémentaire" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "Non. Positions" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "Pas de réponse de" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "Aucune fiche de paie ne peut être soumise pour les critères sélectionnés ci-dessus OU la fiche de paie est déjà soumise" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "Sans produits laitiers" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "Gains non imposables" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "Heures non facturées" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "Heures non facturées (NB)" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "Feuilles non encaissables" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "Non végétarien" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "Remarque : Maj ne sera pas écrasé dans les dossiers de présence existants" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "Remarque : Le total des feuilles allouées {0} ne devrait pas être inférieur à la quantité de feuilles déjà approuvées {1} pour la période" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "Rien à changer" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "Période de préavis" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "Notifier les utilisateurs par email" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "nov" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "Nombre d'employés" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "Nombre de postes" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "Nombre de feuilles éligibles au campement en fonction des paramètres de type de congé" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "EN DEHORS" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "Note Moyenne obtenue" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "oct" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "Relevé du Compteur Kilométrique" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "Valeur de l'odomètre" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "Terme de la Proposition" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "Conditions de l'offre" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "À la date" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "Permanence" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "En Congé" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "Embarquement" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "Activités d'intégration" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "L'intégration commence le" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "Seuls les approbateurs peuvent approuver cette demande." + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "Seuls les documents complétés peuvent être soumis" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "Seul le grief de l'employé avec le statut {0} ou {1} peut être soumis" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "Seuls les interviewers sont autorisés à soumettre des commentaires d'entrevue" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "Seules les entrevues avec statut effacé ou rejeté peuvent être envoyées." + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "Seules les Demandes de Congés avec le statut 'Appouvée' ou 'Rejetée' peuvent être soumises" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "Seules les demandes de quart avec le statut «Approuvé» et «Rejeté» peuvent être soumises" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "Seule l'allocation expirée peut être annulée" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "Seuls les intervieweurs peuvent soumettre des commentaires" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "Seuls les utilisateurs avec le rôle {0} peuvent créer des demandes de congé antidatées" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "Seuls les objectifs {0} peuvent être {1}" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "Ouvert et approuvé" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "Ouvrir maintenant" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "Ouverture fermée." + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "Une liste de vacances facultative n'est pas définie pour la période de congé {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "Les congés facultatifs sont des congés que les Employés peuvent choisir d'utiliser à partir d'une liste de congés publiés par l'entreprise." + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "Graphique organisationnel" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "Autres taxes et frais" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "Autres" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "Temps de sortie" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "Salaire sortant" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "Surallouer" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "Requête de présence chevauchée" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "Présence du chevauchement" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "Requêtes de décalage superposées" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "Changements de chevauchement" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "Remplacer le montant de la structure salariale" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "Numéro PAN" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "Compte PF" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "Montant PF" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "Prêt PF" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "Notification PWA" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "Payé via le bordereau de salaire" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "Objectif parent" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "Temps-Partiel" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "Partiellement sponsorisé, nécessite un financement partiel" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "Partiellement réclamé et retourné" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "Politique de mot de passe" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "La politique de mot de passe ne peut pas contenir d'espaces ni de traits d'union simultanés. Le format sera restructuré automatiquement" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "La politique de mot de passe pour les bulletins de salaire n'est pas définie" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "Payer via le bulletin de salaire" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "Compte Payable est obligatoire pour soumettre une demande de remboursement" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "Le compte de paiement est obligatoire" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "Date de paiement" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "Jours de paiement" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "Aide au calcul des jours de paiement" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "Dépendance des jours de paiement" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "Paiement et comptabilité" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "Paiement de {0} de {1} à {2}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "Paie" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "Centres de coût de la paie" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "Date de la paie" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "Détails de la paie de l'employé" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "L'annulation de l'entrée de la paie est en file d'attente. Cela peut prendre quelques minutes" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "Fréquence de la Paie" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "Infos sur la paie" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "Numéro de paie" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "Compte Payant" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "Période de paie" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "Date de la période de paie" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "Périodes de paie" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "Rapports de paie" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "Paramètres de Paie" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "La date de paie ne peut pas être postérieure à la date de relève de l'employé." + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "La date de paie ne peut pas être inférieure à la date d'adhésion de l'employé." + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "FnF en attente" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "Interviews en attente" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "Pending Questionnaires" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "Pourcentage de déduction" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "Performances" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "Travail à la pièce" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "Nombre de postes prévus" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "Veuillez activer la participation automatique et terminer la configuration d'abord." + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "Veuillez d'abord sélectionner la société" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "Veuillez assigner une structure de salaire pour l'employé {0} applicable à partir ou avant {1} en premier" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "Veuillez confirmer une fois que vous avez terminé votre formation" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "Veuillez d'abord créer un nouveau {0} pour la date {1}." + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "Veuillez supprimer l'employé {0} pour annuler ce document" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "Veuillez activer un compte entrant par défaut avant de créer un groupe de récapitulatif quotidien" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "S'il vous plaît entrer la désignation" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "Veuillez sélectionner la société et la désignation" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "Veuillez sélectionner un employé" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "Veuillez d'abord sélectionner l'employé." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "Veuillez sélectionner de planning de quarts et des date(s) d'affectation(s)." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "Veuillez d'abord sélectionner une entreprise" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "Veuillez d'abord sélectionner une entreprise." + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "Veuillez sélectionner un fichier csv" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "Veuillez sélectionner une date." + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "Veuillez sélectionner un candidat" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "Veuillez d'abord sélectionner un employé" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "Veuillez sélectionner les employés pour créer des évaluations pour" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "Veuillez sélectionner un mois et une année." + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "Veuillez d'abord sélectionner le cycle d'évaluation." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "Veuillez sélectionner le statut de présence." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "Veuillez sélectionner les employés pour lesquels vous souhaitez marquer la présence." + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "Veuillez sélectionner les fiches de salaire à envoyer par e-mail" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "Veuillez définir \"Compte Payroll Payable par défaut\" dans les valeurs par défaut de la société" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "Veuillez définir le composant de base et HRA dans la société {0}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "Veuillez définir le composant de gain pour le type de congé : {0}." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "Veuillez définir la paie en fonction des paramètres de paie" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "Veuillez définir la date de départ pour l'employé: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "Veuillez définir le compte dans le composant salarial {0}" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "Veuillez définir un modèle par défaut pour les notifications d'autorisation de congés dans les paramètres RH." + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "Veuillez définir un modèle par défaut pour la notification de statut de congés dans les paramètres RH." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "Veuillez définir le modèle d'évaluation de l' {0} ou sélectionnez le modèle dans le tableau Employés ci-dessous." + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "Veuillez définir la Société" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "Veuillez définir la Date d'Embauche pour l'employé {0}" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "Veuillez définir la liste des Fêtes." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "Veuillez définir la date de départ pour l'employé {0}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "Veuillez définir {0} et {1} dans {2}." + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "Veuillez définir {0} pour l'employé {1}" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "Veuillez définir {0} pour l'employé: {1}" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "Veuillez définir {0}." + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "Veuillez configurer le système de dénomination des employés dans Ressources humaines> Paramètres RH" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "Veuillez configurer la série de numérotation pour l'assistance via Configuration> Série de numérotation" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "Partagez vos commentaires sur la formation en cliquant sur 'Retour d'Expérience de la formation', puis 'Nouveau'" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "Veuillez indiquer le candidat au poste à mettre à jour." + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "Veuillez soumettre l' {0} avant de marquer le cycle comme terminé" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "Veuillez mettre à jour votre statut pour cet événement de formation" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "Publié le" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "Date de publication" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "Zone préférée pour l'hébergement" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "Présent" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "Enregistrements présents" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "Aperçu de la fiche de paie" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "Montant principal" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "Congé de privilège" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "Essai" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "Période d’Essai" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "Processus de présence après" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "Traiter l'entrée comptable de la paie en fonction de l'employé" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "Déductions fiscales professionnelles" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "Compétence" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "Profit" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "Profit du projet" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "Promotion" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "Date de promotion" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "Propriété déjà ajoutée" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "Déductions du fonds de prévoyance" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "Publier la portée du salaire" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "Publier sur le site web" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "But & montant" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "Raison du déplacement" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "Questionnaire Email Sent" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "Filtres rapides" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "Liens rapides" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "Noter manuellement les objectifs" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "Critères d'évaluation" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "Évaluations" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "Réallouer les congés" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "Raison de la demande" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "Raison pour ignorer la présence automatique :" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "Recrutement" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "Analyse de recrutement" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "Référence : {0}" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "Statut du paiement du bonus de parrainage" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "Détails de la recommandation" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "Détails du référant" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "Nom du référant" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "Réflexions" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "Détails de Ravitaillement" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "Rejeter le renvoi des employés" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "Date de Relève " + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "Date de retrait manquante" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "Prestations sociales restantes (par année)" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "Rappeler Avant" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "Rappelé" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "Rappels" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "Supprimer si la valeur est nulle" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "Voiture de location" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "Le remboursement à partir du salaire ne peut être sélectionné que pour les prêts à terme" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "Rembourser le montant non réclamé du salaire" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "réponses" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "Rapporte à" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "Demandé par" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "Demandé par (nom)" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "Nécessite un financement complet" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "Obligatoire pour la création d'un employé" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "Replanifier l'entretien" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "Responsabilités" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "Restreindre l'application de congé rétrodatée" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "Reprendre la Pièce Jointe" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "Reprendre le lien" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "Reprendre le lien" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "Retenu" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "Prime de fidélisation" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "Âge de la retraite (en années)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "Le montant de retour ne peut pas être supérieur au montant non réclamé" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "Examiner divers autres paramètres liés aux feuilles d'employés et à la demande de remboursement" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "Evaluateur" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "Nom de l'évaluateur" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "CTC révisé" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "Rôle autorisé à créer une demande de congé antidatée" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "Nom du round" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "Arrondir l'expérience de travail" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "Arrondir à l'entier le plus proche" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "Arrondi" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "Itinéraire vers le formulaire de demande d'emploi personnalisé" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "Ligne n ° {0}: impossible de définir le montant ou la formule pour le composant de salaire {1} avec une variable basée sur le salaire imposable" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "Ligne #{0}: Le composant {1} a les options {2} et {3} activées." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "Ligne #{0}: Le montant de la feuille de temps écrasera le montant du composant de gain pour le composant de salaire {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "Ligne No {0}: Le montant ne peut pas être supérieur au montant restant contre la demande de dépense {1}. Le montant restant est {2}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "La ligne {0} # Montant alloué {1} ne peut pas être supérieure au montant non réclamé {2}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "Ligne {0}# Montant payé ne peut pas être supérieur au montant total" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "La ligne {0} # Montant payé ne peut pas être supérieure au montant de l'avance demandée" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "Ligne {0}: De (Année) ne peut pas être supérieur à (Année)" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "Ligne {0}: Le montant payé {1} est supérieur au montant en attente {2} contre le crédit {3}" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "Ligne {0}: {1} est obligatoire dans le tableau des dépenses pour enregistrer une note de frais." + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "Composante Salariale" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "Composante Salariale " + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "Compte Composante Salariale" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "Type de composant salarial" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "Composante Salariale pour la rémunération basée sur la feuille de temps" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "Détails du Salaire" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "Détails du salaire" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "Attente salariale" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "Salaire payé par" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "Paiements de salaire basés sur le mode de paiement" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "Paiements de salaire via ECS" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "Plage de salaire" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "Registre du Salaire" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "Slip de salaire" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "Fiche de Paie basée sur la Feuille de Temps" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "ID Fiche de Paie" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "Congé de salaire" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "Avance sur salaire" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "Feuille de Temps de la Fiche de Paie" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "La création de la feuille de salaire est en file d'attente. Cela peut prendre quelques minutes" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "Fiche de Paie de l'employé {0} déjà créée pour cette période" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "Fiche de Paie de l'employé {0} déjà créée pour la feuille de temps {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "La soumission du bulletin de salaire est en file d'attente. Cela peut prendre quelques minutes" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "Le bulletin de salaire {0} a échoué pour l'entrée de la paie {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "La feuille de salaire {0} a échoué. Vous pouvez résoudre la {1} et réessayer {0}." + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "Bon de salaire créé" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "Slips Slips Soumis" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "Les bordereaux de salaire existent déjà pour les employés {}, et ne seront pas traités par cette paie." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "Billets de salaire soumis pour la période de {0} à {1}" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "Grille des Salaires" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "Attribution de la structure salariale" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "La structure de la structure salariale pour l'employé existe déjà" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "Grille des Salaires Manquante" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "La structure salariale doit être soumise avant la soumission de {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "La structure de salaire {0} n'appartient pas à la société {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "Salaire déjà traité pour la période entre {0} et {1}, La période de demande de congé ne peut pas être entre cette plage de dates." + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "Détails du Salaire basés sur les Revenus et les Prélèvements." + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "Les composantes salariales doivent faire partie de la structure salariale." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "Les e-mails de bulletin de salaire ont été mis en file d'attente pour l'envoi. Vérifiez {0} pour le statut." + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "Quantité Sanctionnée" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "Le Montant Approuvé ne peut pas être supérieur au Montant Réclamé à la ligne {0}." + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "Planifié le" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "Score Gagné" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "Score doit être inférieur ou égal à 5" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "Sources" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "Rechercher des Jobs" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "Sélectionnez la première manche d'entretien" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "Sélectionnez d'abord l'entretien" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "Sélectionner Compte de Crédit pour faire l'Écriture Bancaire" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "Sélectionnez la fréquence de la paie." + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "Veuillez sélectionner la propriété" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "Sélectionner les Termes et Conditions" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "Sélectionner les utilisateurs" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "Sélectionnez un employé pour obtenir l'avance versée." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "Sélectionnez l'employé pour lequel vous souhaitez allouer des congés." + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "Sélectionnez l'employé." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "Sélectionnez le type de congé comme le congé de maladie, le congé de Privilège, le congé décontracté, etc." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "Sélectionnez la date après laquelle cette allocation de congé expirera." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "Sélectionnez la date à partir de laquelle cette allocation de congé sera valide." + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "Sélectionnez la date de fin de votre demande de congé." + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "Sélectionnez la date de début de votre demande de congé." + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "Sélectionnez le type de congé que l'employé souhaite demander, comme Feuille de malade, Feuille de Privilège, Feuille Décontractée, etc." + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "Sélectionnez votre approbateur de congé, c'est-à-dire la personne qui approuve ou rejette vos congés." + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "Auto-évaluation" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "Auto-évaluation en attente : {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "Auto-score" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "Autoformation" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "Séminaire" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "Envoyer Emails À" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "Envoyer le questionnaire de sortie" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "Envoyer des questionnaires de sortie" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "Envoyer un rappel de retour d'entretien" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "Envoyer un rappel d'entretien" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "Envoyer une notification de congé" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "SEP" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "Activités de séparation" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "La séparation commence le" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "Détails du Service" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "Frais de service" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "Réglez \"De(Année)\" et \"À(Année)\" à 0 pour aucune limite supérieure et inférieure." + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "Définir les détails de la permission" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "Définir la date de départ pour l'employé: {0}" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "Définir les filtres pour récupérer les employés" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "Définir des filtres optionnels pour récupérer les employés dans la liste des évaluateurs" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "Définissez le compte par défaut pour {0} {1}" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "Définir la fréquence des rappels de vacances" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "Définir les propriétés qui doivent être mises à jour dans le maître d'employé lors de la soumission de la promotion" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "Paramètres manquants" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "Régler tous les Payables et Recevables avant l'envoi" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Quart et présence" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "Décalage effectif fin" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "Heure de fin réelle de Maj" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "Décalage début effectif" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "Heure de début réelle de Maj" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "Affectation de quart" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "Affectation de planning des quarts en blocs" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "Affectation d'équipe: {0} créée pour l'employé: {1}" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "Présence Maj" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "Fin de quart" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "Heure de fin de Maj" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "Demande de quart" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "Planification des quarts" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "Affectation planning des quarts" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "Paramètres Maj" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "Début de quart" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "Heure de début Maj" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "Type de quart" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Majuscules" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "Afficher l'employé" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "Afficher les soldes de congés dans le bulletin de salaire" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "Afficher les congés de tous les membres du département dans le calendrier" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "Afficher la Fiche de Salaire" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "Affichage en cours" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "Congé Maladie" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "Compétence" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "Évaluation des compétences" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "Nom de la compétence" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "Compétences" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "Ignorer l'assistance automatique" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "Ignorer l'affectation de structure salariale pour les employés suivants, car des enregistrements d'affectation de structure salariale existent déjà pour eux. {0}" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "Source et notation" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "Montant sponsorisé" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "Détails du personnel" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "Plan de dotation" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "Détail du plan de dotation" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "Le plan de dotation en personnel {0} existe déjà pour la désignation {1}" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "Montant de l'exemption fiscale standard" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "Heures de travail standard" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "Les dates de début et de fin ne figurant pas dans une période de paie valide, le système ne peut pas calculer {0}." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "Date de début : {0}" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "Composante Statistique" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "Options du Stock" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "Empêcher les utilisateurs de faire des Demandes de Congé les jours suivants." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "Strictement basé sur le type de journal dans l'enregistrement des employés" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "Les structures ont été assignées avec succès" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "Date de soumission" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "L'envoi a échoué" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "Soumettre un commentaire" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "Soumettre maintenant" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "Valider une preuve" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "Valider la Fiche de Paie" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "Valider pour créer la fiche employé" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "Validation des fiches de salaire et créer une écriture au journal ..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "Validation des bulletins de salaire ..." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "Les entreprises subsidiaires ont déjà prévu des postes vacants à {1} pour un budget de {2}. Le plan de dotation pour {0} devrait allouer plus de postes vacants et de budget à {3} que prévu pour ses filiales" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "Somme de toutes les dalles précédentes" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "Vue résumée" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "Erreur de syntaxe" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "Erreur de syntaxe dans la condition : {0} dans la dalle d'impôts sur le revenu" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "Prendre des années exactes" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "Taxes et avantages fiscaux" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "Date de déduction fiscale jusqu'à la date" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "Catégorie d'exonération fiscale" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "Déclaration d'exemption fiscale" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "Preuves d'exonération fiscale" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "Configuration de la taxe" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "Taxe sur le salaire additionnel" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "Impôt sur les prestations sociales variables" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "Gains imposables jusqu'à la date" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "Palier de salaire imposable" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "Paliers de salaire imposables" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "Taxes et frais" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "Impôts et charges sur l'impôt sur le revenu" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "Taxi" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "Mises à Jour de l’Équipe" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "La date à laquelle la composante salariale avec le montant cotisera pour les gains/déductions dans le slip de salaire. " + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "Le jour du mois où les congés devraient être alloués" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "Le(s) jour(s) pour le(s)quel(s) vous demandez un congé sont des jour(s) férié(s). Vous n’avez pas besoin d’effectuer de demande." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "Les jours compris entre {0} et {1} ne sont pas des jours fériés." + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "La fraction de salaire quotidien par congé doit être comprise entre 0 et 1" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "La fraction du salaire journalier à payer pour une demi-journée" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "La fiche de salaire envoyée à l'employé par courrier électronique sera protégée par un mot de passe. Le mot de passe sera généré en fonction de la politique de mot de passe." + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "L'heure après l'heure de début du quart de travail où l'enregistrement est considéré comme tardif (en minutes)." + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "L'heure avant l'heure de fin du quart de travail au moment du départ est considérée comme précoce (en minutes)." + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "Heure avant l'heure de début du quart pendant laquelle l'enregistrement des employés est pris en compte pour la présence." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "Théorie" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "Il y a plus de vacances que de jours travaillés ce mois-ci." + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "Il n'y a pas de postes vacants dans le plan de dotation en personnel {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "Il n'y a pas d'employé avec la structure de salaire : {0}. Assignez {1} à un employé pour prévisualiser le bulletin de salaire" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "Ces congés sont des jours fériés autorisés par la compagnie, mais ils sont facultatifs pour un employé." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "Cette action empêchera d’apporter des modifications aux retours / objectifs d’évaluation liés." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "Ce congé compensatoire sera applicable à partir de {0}." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "Cet employé a déjà un journal avec le même horodatage. {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "Cette erreur peut être due à une formule ou une condition non valide." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "Cette erreur peut être due à une syntaxe invalide." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "Cette erreur peut être due à un champ manquant ou supprimé." + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "Ce champ vous permet de définir le nombre maximum de congés consécutifs qu'un Employé peut demander." + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "Ce champ vous permet de définir le nombre maximum de feuilles qui peuvent être allouées annuellement pour ce type de congé lors de la création de la politique de congé" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "Basé sur la présence de cet Employé" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "Cela permettra de valider des bulletins de salaire et de créer une écriture de journal d'accumulation. Voulez-vous poursuivre?" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "Heure après la fin du quart de travail au cours de laquelle la prise en charge est prise en compte." + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "Temps nécessaire pour remplir les positions ouvertes" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "Remplir" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "Échéanciers" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "Détails de la feuille de temps" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "Horaire" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "Au montant" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "La date de fin doit être supérieure à la date de début" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "À l'utilisateur" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "Pour autoriser cela, activez {0} sous {1}." + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "Pour demander une demi-journée, cochez « Demi-journée » et sélectionnez la Date de Demi Jour" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "La date de fin ne peut être égale ou antérieure à la date de début" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "À ce jour, ne peut pas être postérieure à la date de congé de l'employé." + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "La date de fin ne peut être antérieure à la date de début" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "La date de fin ne peut pas dépasser la date de libération de l'employé" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "À (Année)" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "L'année à (Année) ne peut pas être inférieure à depuis(Année)" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "Aujourd'hui est l'anniversaire de {0}🎉" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "Aujourd'hui {0} dans notre entreprise ! 🎉" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "Total des Absences" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "Montant total total" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "Montant total de l'avance" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "Total des congés alloués" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "Montant Total Remboursé" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "Montant Total Réclamé" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "Montant total déclaré" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "Déduction totale" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "Déduction totale (devise de la société)" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "Total des sorties anticipées" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "Total Revenus" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "Gains totaux" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "Budget total estimé" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "Coût total estimé" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "Montant total de l'exonération" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "Score total de l'objectif" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "Salaire brute totale" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "Heures totales (T)" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "Total des impôts sur le revenu" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "Nombre total d'entrées en retard" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "Total des Jours de Congé" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "Total des Congés" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "Total des Congés Attribués" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "Total des congés encaissés" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "Salaire net total" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "Total des heures non facturées" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "Montant total à payer" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "Paiement total" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "Total des Présents" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "Montant total à recevoir" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "Reignations totales" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "Montant Total Validé" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "Score Total" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "Auto-score total" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "Le montant total de l'avance ne peut être supérieur au montant total approuvé" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "Le total des congés alloués est supérieur à l'allocation maximale autorisée pour le type de congé {0} pour l'employé {1} pendant la période" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "Le total des feuilles allouées {0} ne peut pas être inférieur aux feuilles déjà approuvées {1} pour la période" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "Total En Toutes Lettres" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "Total en mots (devise de la société)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "Le nombre total de congés alloués est obligatoire pour le type de congé {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Salaire total réservé à l'égard de ce composant pour cet employé à partir du début de l'année (période de paie ou exercice fiscal) jusqu'à la date de fin du bulletin de salaire actuel." + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "Salaire total réservé à cet employé du début du mois jusqu'à la date de fin du traitement actuel." + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Salaire total réservé à cet employé à partir du début de l'année (période de paie ou année fiscale) jusqu'à la date de fin du bulletin de salaire actuel." + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "Le poids total pour tout l' {0} doit s'élever à 100. Actuellement, il est {1}%" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "Nombre de jours de travail par année" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "Le nombre total d'heures travaillées ne doit pas être supérieur à la durée maximale du travail {0}" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "Former" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "Email du Formateur" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "Nom du Formateur" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "Formation" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "Date de formation" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "Événement de formation" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "Évènement de Formation – Employé" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "Événement de formation:" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "Événements de formation" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "Retour d'Expérience sur la Formation" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "Programme de formation" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "Résultat de la formation" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "Résultat de la Formation – Employé" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "Des formations" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "Les transactions ne peuvent pas être créées pour un employé inactif {0}." + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "Date de transfert" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "Déplacement" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "Avance de déplacement requise" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "Départ" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "Financement du déplacement" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "Itinéraire du déplacement" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "Demande de déplacement" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "Coût de la demande de déplacement" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "Arrivée" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "Type de déplacement" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "Type de preuve" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "Désarchiver" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "Montant non réclamé" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "En cours de révision" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "Enregistrement de présences dissocié des enregistrements des employés : {}" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "Journaux non liés" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "Présence non marquée pendant des jours" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "Jours non marqués" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "Jours non marqués" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "Note de Frais Impayée" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "Non réglé" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "Évaluations non soumises" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "Heures non suivies" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "Heures non suivies (U)" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "Congés non utilisés" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "Rappel des prochains jours de vacances" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "Mettre à jour le candidat au poste" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "Progression de la mise à jour" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "Mettre à jour la réponse" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "Mettre à jour le statut" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "Statut mis à jour de {0} à {1} pour la date {2} dans le dossier de présence {3}" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "Mise à jour du statut du candidat au poste à {0}" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "Mise à jour du statut de l'offre d'emploi {0} pour le candidat {1} vers {2}" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "Mise à jour du statut du candidat {0} lié à {1}" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "Charger Fréquentation" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "Charger HTML" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "Envoi de..." + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "Upper Range" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "Feuille(s) utilisée(s)" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "Postes vacants" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "Les postes vacants ne peuvent pas être inférieurs aux ouvertures actuelles" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "Possibilités accomplies" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "Valider la présence" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "Validation de la présence des employés ..." + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "Valeur / Description" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "Valeur manquante" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "Variable" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "Variable basée sur le salaire imposable" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "Végétarien" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "Dépenses des Véhicules" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "Journal du Véhicule" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "Entretien du Véhicule" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "Objet d'entretien du véhicule" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "Voir les objectifs" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "AVERTISSEMENT : Le module de gestion des prêts a été séparé d'ERPNext." + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "Avertissement: Laisser le type {0} est insuffisant dans cette allocation." + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "Avertissement: Le solde du congé est insuffisant pour quitter le type {0}." + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "Attention : la demande de congé contient les dates bloquées suivantes" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "Attention : {0} a déjà un devoir Shift {1} actif pour certaines ou toutes ces dates." + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "Liste du site Web" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "Poids (%)" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "Alors que la répartition des congés compensatoires est automatiquement créée ou mise à jour à la suite de la soumission de la demande de congés compensatoires." + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "Pourquoi ce candidat est-il qualifié pour ce poste ?" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "Anniversaires de travail " + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "Rappel d'Anniversaire de Travail" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "Date de fin du travail" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "Date de début du travail" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "Télétravail" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "Références de travail" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "Résumé de travail de {0}" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "Travail en vacances" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "Jours Ouvrables" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "Jours de travail et heures" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "Calcul des heures de travail basé sur" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "Seuil des heures de travail pour absent" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "Seuil des heures de travail pour une demi-journée" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "Heures de travail en dessous desquelles Absent est marqué. (Zéro à désactiver)" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "Heures de travail en dessous desquelles la demi-journée est marquée. (Zéro à désactiver)" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "Atelier" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "Année à ce jour" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "Année à date(Devise de l'entreprise)" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "Oui, continuer" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "Vous n'êtes pas autorisé à approuver les congés sur les Dates Bloquées" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "Vous n'êtes pas présent(e) tous les jours vos demandes de congé compensatoire" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "Vous ne pouvez pas définir plusieurs dalles si vous avez une dalle sans limite inférieure et supérieure." + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "Vous ne pouvez pas demander votre quart de travail par défaut: {0}" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "Vous ne pouvez planifier que pour les postes vacants {0} et le budget {1} pour {2} selon le plan de dotation {3} de la société mère {4}." + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "Vous pouvez uniquement valider un encaissement de congé pour un montant d'encaissement valide" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "Vous pouvez ajouter des détails supplémentaires, le cas échéant, et soumettre l'offre." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "Vous n'étiez présent que pour la demi-journée le {}. Vous ne pouvez pas demander un congé compensatoire d'une journée complète" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "Votre session d'entretien est reprogrammée de {0} {1} - {2} à {3} {4} - {5}" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "actif" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "annulé" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "créé" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "résultat" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "Résultats" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "révoir" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "validé" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "année" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "{0} & {1}" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "{0}
    Cette erreur peut être due à un champ manquant ou supprimé." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "{0} évaluateur(s) ne sont pas encore soumis" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "{0} manquant" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "{0} Ligne #{1}: La formule est définie mais {2} est désactivée pour le composant de salaire {3}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "{0} Ligne #{1}: {2} doit être activé pour que la formule soit considérée." + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} déjà alloué pour l’Employé {1} pour la période {2} à {3}" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0} existe déjà pour l'employé {1} et la période {2}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "{0} a déjà un devoir Shift {1} actif pour certaines ou toutes ces dates." + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "{0} applicable après {1} jours ouvrés" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "{0} créé avec succès!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "{0} n'est pas un jour férié." + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "{0} n'est pas autorisé à soumettre des commentaires pour l'entretien : {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} n'est pas dans la liste des jours fériés facultatifs" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} doit être soumis" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "{0} de {1} terminé" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "{0} postes vacants et budget {1} pour {2} déjà prévu pour les filiales {3}. Vous ne pouvez planifier que pour les postes vacants {4} et le budget {5} selon le plan de dotation {6} pour la société mère {3}." + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "{0} {1} {2}?" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0} : Adresse email de l'employé introuvable : l’email n'a pas été envoyé" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "{0} : Du {0} de type {1}" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "{} Accepté.e" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "{} {} ouvert pour cette position." + diff --git a/apps/erpnext/src/hrms/hrms/locale/hr.po b/apps/erpnext/src/hrms/hrms/locale/hr.po new file mode 100644 index 000000000..e41824496 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/hr.po @@ -0,0 +1,11517 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-24 12:05\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Croatian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: hr\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: hr_HR\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr " Platne liste koje počinju od ovog datuma ili nakon njega bit će uzete u obzir za izračun zaostalih plaća" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr " Prekini vezu plaćanja prilikom otkazivanja predujma personala" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "\"Od Datuma\" ne može biti kasnije ili jednako \"Do Datuma\"" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "% Iskorištenost (B + NB) / T" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "% Iskorištenost (B/T)" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "'employee_field_value' i 'timestamp' su obavezni." + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") za {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "...Preuzimanje Personala u toku" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0,25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0,5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "01:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "05:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "08:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "Osnovni iznos nije postavljen za sljedeći personal: {0}" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "Primjer: SAL-{first_name}-{date_of_birth.year}
    Ovo će generisati lozinku poput SAL-Jane-1972" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "Ukupan broj dodijeljenih dopusta je veći od broja dana u periodu dodjele" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "

    Pomoć

    \n\n" +"

    Napomene:

    \n\n" +"
      \n" +"
    1. Koristi polje base za korištenje osnovne plate personala
    2. \n" +"
    3. Koristi kratice komponente plate u uslovima i formulama. BS = Basic Salary
    4. \n" +"
    5. Koristi naziv polja za detalje o personalu u uslovima i formulama. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Koristi naziv polja iz Plate u uvjetima i formulama. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direktan iznos se također može unijeti na osnovu stanja. Vidi primjer 3
    \n\n" +"

    Primjeri

    \n" +"
      \n" +"
    1. Obračun osnovne plate na osnovu base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. HRA Obračun na osnovu osnovne plateBS\n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. TDS Obračun na osnovu tipa zaposlenjaemployment_type\n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "

    Primjeri Uvjeta

    \n" +"
      \n" +"
    1. Primjena poreza ako je personal rođen između 31-12-1937 i 01-01-1958 (Personal u dobi od 60 do 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Primjena poreza prema spolu personala
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Primjena poreza prema komponenti plaće
      \n" +"Condition: base > 10000
    " + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "
    Poludnevni Personal
    " + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "
    Neobilježeni Personal
    " + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "
    " + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "Transakcije & Izvještaji" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Postavke & Izvještaji" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "
    {0}{1}
    " + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "Zahtjev za posao za {0} koji je zatražio {1} već postoji: {2}" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "Prijateljski podsjetnik na važan datum za naš tim." + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "{0} postoji između {1} i {2}(" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "Odsutan" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "Dani Odsutnosti" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "Zapisi Odsustva" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "Broj Računa" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "Vrsta računa treba biti {0} za račun za isplatu plaća {1}, molimo postavite i pokušajte ponovno" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "Račun {0} ne odgovara tvrtki {1}" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "Knjigovodstvo & Plaćanje" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "Knjogovodstveni Izvještaji" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "Računi nisu postavljeni za Komponentu Plate {0}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "Obračun" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "Zaostale Obračunske Obaveze" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "Obračunska Komponenta" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "Obračunska komponenta može se postaviti samo za komponente plaće." + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "Obračunska komponenta može se postaviti samo za fleksibilne komponente plaće s obračunskim metodama isplate." + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "Za fleksibilne komponente plaće s obračunskim metodama isplate mora se postaviti obračunska komponenta." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "Obračunski Nalog Knjiženja za plate od {0} do {1}" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "Obračun i isplata na kraju obračunskog razdoblja" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "Obračunava se po ciklusu, plaća se samo prilikom zahtjeva" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "Nagomilane Pogodnosti" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "Izvješće Nagomilane Zarade" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "Nagomilani iznos {0} je manji od isplaćenog iznosa {1} za Pogodnost {2} u obračunskom razdoblju {3}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "Radnja pri Podnošenju" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "Naziv Aktivnosti" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "Stvarni Iznos" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "Stvarni Unovčivi Dani" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "Stvarno trajanje prekovremenog rada" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "Stvarna stanja nisu dostupna jer se zahtjev za odsustvo proteže na različite dodjele odsustva. Još uvijek možete podnijeti zahtjev za odsustvo koje će biti nadoknađeno prilikom sljedeće dodjele." + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "Dodaj Datume po Danu" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "Dodaj Svojstva Osoblja" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "Dodaj Trošak" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "Dodaj Povratne Informacije" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "Dodaj Porez" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "Dodaj u Detalje" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "Dodajte neiskorištene praznike iz prethodnih dodjela" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "Dodajte neiskorištene praznike iz dodjela prethodnog perioda praznika u ovu dodjelu" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "Dodane komponente poreza iz Postavki Komponente Plate jer struktura plata nije imala nikakvu poresku komponentu." + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "Dodano Detaljima" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "Dodatni Iznos" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "Dodatne Informacije " + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "Dodatni Mirovinski Fond" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "Dodatna Plaća" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "Dodatna Plaća " + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "Dodatna Plata za bonus za preporuku može se kreirati samo na osnovu preporuke personala sa statusom {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "Dodatna Plata za ovu komponentu plate sa omogućenim {0} već postoji za ovaj datum" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "Dodatna Plata: {0} već postoji za komponentu plate: {1} za period {2} i {3}" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "Adresa Organizatora" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "Podesi Dodjelu" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "Prilagodba uspješno kreirana" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "Vrsta Prilagodbe" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "Predujam" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "Račun Predujama je obavezan. Postavi Zadani Račun Predujama u registru tvrtke {0} i podnesi ovaj dokument." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "Valuta predujma {} treba biti ista kao valuta plaće {}. Odaberi istu valutu predujma" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "Plaćen Predujam (Valuta Tvrtke)" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "Napredni Filteri" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "Sav rezultat od tečaja u iznosu od {0} knjiženi su putem {1}" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "Svi Ciljevi" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "Svi Poslovi" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "Svu dodijeljenu imovinu treba vratiti prije podnošenja" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "Svi obavezni zadaci za kreiranje personala još nisu završeni." + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "Dodijeli na osnovu Pravila Odsustva" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "Dodijeli Odsustvo" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "Dodijeli Odsustvo {0} personalu?" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "Dodijeli na Dan" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "Dodijeljeni Iznos (Valuta Tvrtke)" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "Dodijeljeno Odsustvo" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "Dodijeljeno putem" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "Dodjeljivanje Dopusta" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "Datum dodjele" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "Detalji Dodjele" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "Dodjela je Istekla!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "Dodjela je veća od maksimalno dopuštenog {0} za vrstu dopusta {1}" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "Dodjela za Prilagodbu" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "Dodjela je preskočena zbog prekoračenja godišnje dodjele određene u pravilima o dopustu" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "Dodjela je preskočena zbog maksimalnog ograničenja dodjele dopusta postavljenog u vrsti dopusta. Povećajte ograničenje i ponovno pokušajte neuspjelu dodjelu." + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "Dozvoli prijavu personala sa mobilne aplikacije" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "Dozvoli Naplatu" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "Dozvoli Praćenje Geolokacije" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "Dozvoli Zahtjev za Odsustvo Nakon (Radnih Dana)" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "Dozvoli Dodjelu Više Smjena za Isti Datum" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "Dozvoli Negativno Stanje" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "Dozvoli Prekomjernu Dodjelu" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "Dozvoli Izuzeće od Poreza" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "Dozvoli Korisnika" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "Dozvoli Korisnike" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "Dozvoli odjavu nakon završetka smjene (u minutama)" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "Omogućite zahtjev za puni iznos naknade" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "Dozvoli sljedećim korisnicima da odobre Zahtjev Odsustva za blokirane dane." + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "Omogućava dodjelu više odsustva od broja dana u periodu dodjele." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "Naizmjenični unosi kao PRIJAVA i ODJAVA tokom iste smjene" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "Iznos na osnovu Formule" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "Iznos na osnovu Formule" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "Iznos Potraživanja putem Potraživanja Troškova" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "Iznos Troškova" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "Iznos plaćen na ime ove naplate" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "Iznos planiran za odbitak preko plate" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "Iznos ne smije biti manji od nule" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "Iznos koji je plaćen na ime ovog predujma" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "Već postoji dokument o zaostalim plaćama za zaposlenika {0} sa strukturom plaća {1} u obračunskom razdoblju {2}" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "Zapis prisutnosti povezan je s ovom prijavom. Otkaži prisutnost prije izmjene vremena." + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "Godišnja Dodjela" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "Godišnja Dodjela je premašena" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "Godišnja Plata" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "Godišnji Iznos Oporezivanja" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "Bilo koji drugi detalji" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "Bilo koja druga primjedba, vrijedan truda koji bi trebao ući u zapisnik" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "Primjenjiva Komponenta Zarade" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "Primjenjive Komponente Plaće" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "Primjenjivo u slučaju Introdukcije Personala" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "Adresa e-pošte podnosioca zahtjeva" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "Ime Kandidata" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "Ocjena Kandidata" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "Kandidat za Posao" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "Ime Kandidata" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "Prijava" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "Status Prijave" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "Period prijave ne može biti u dva zapisa o dodjeli" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "Period prijave ne može biti izvan perioda raspodjele odsustva" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "Prijave Primljene" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "Prijave Primljene:" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "Odnosi se na Tvrtku" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "Primijeni / Odobri Praznike" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "Primijeni Odmah" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "Prijava za Državni Praznik" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "Prijava za Vikend" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "Datum Imenovanja" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "Pismo Imenovanja" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "Predložak Pisma Imenovanju" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Sadržaj pisma o Imenovanju" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "Procjena" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "Ciklus Procjene" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "Cilj Procjene" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "Procjena Ključnih Rezultata Područja" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "Povezivanje Procjene" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "Pregled Procjene" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "Predložak Procjene" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "Cilj Predložka Procjene" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "Nedostaje Predložak Procjene" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "Naziv Predložka Procjene" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "Predložak Ocjenjivanja nije pronađen za neke pozicije." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "Kreiranje Ocjenjivanja je u redu čekanja. Može potrajati nekoliko minuta." + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "Procjena {0} već postoji za personal {1} za ovaj Ciklus Procjenjivanja ili period koji se preklapa" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "Ocjena {0} ne pripada {1}" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "Ocjenitelj" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "Ocijenjeni: {0}" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "Šegrt" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "Odobrenje" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "Status Odobrenja" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "Status Odobrenja mora biti 'Odobren' ili 'Odbijen'" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "Odobri" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "Odobreno" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "Odobravač" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "Odobravači" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "Tra" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "Jeste li sigurni da želite izbrisati prilog" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "Jeste li sigurni da želite izbrisati {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "Jeste li sigurni da želite e-poštom poslati odabrane platne liste?" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "Jeste li sigurni da želite odbiti Preporuku Personala?" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "Zaostaci" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "Komponenta Zaostalih Plaćanja" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "Komponenta zaostalih plaćanja ne može se postaviti za komponente plaće na temelju oporezive plaće." + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "Datum početka zaostalih plaćanja" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "Zaostaci" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "Datum i Vrijeme Dolaska" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "Prema vašoj dodijeljenoj Strukturi Plata, ne možete se prijaviti za beneficije" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "Trošak Povrata Imovine za {0}: {1}" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "Dodijeljena Imovina" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "Dodijeli Strukturu Plata {0}?" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "Dodijeli Smjenu" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "Dodijelite Raspored Smjena" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "Dodjeli Strukturu" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "Dodjeljivanje Strukture Plate" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "Dodjela Strukture u toku..." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "Dodjela Struktura u toku..." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "Dodjela na osnovu" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "Povezana Ponuda Posla" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "Povezani Dokument" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "Povezani Tip Dokumenta" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "Mora biti odabran najmanje jedan intervju." + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "Priložiti Dokaz" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "Pokušano" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "Prisustvo" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "Kalendar Prisutnosti" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Broj Prisustva" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "Datum Prisustva" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "Prisustvo od Datuma" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "Prisustvo od datuma i prisustvo do datuma je obavezno" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "ID Prisustva" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "Prisustvo Obilježeno" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "Zahtjev za Prisustvo" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "Istorija Zahtjeva za Prisustvom" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "Postavke Prisustva" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "Prisustvo do Datuma" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "Prisustvo Ažurirano" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "Upozorenja Prisustvu" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "Datum Prisustva {0} ne može biti prije od datuma pridruživanja {1}: {2}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "Prisustvo za sav personal po ovom kriterijumu je već navedeno." + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "Prisustvo za {0} je već navedeno za preklapajuću smjenu {1}: {2}" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "Prisustvo za {0} je već navedeno za datum {1}: {2}" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "Prisustvo za {0} je već navedeno za sljedeće datume: {1}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "Prisustvo za naredne datume će biti preskočeno/zamenjeno prilikom slanja" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "Prisustvo od {0} do {1} je već navedeno za {2}" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "Prisustvo je navedeno za sav personal između izabranih datuma obračuna plata." + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "Prisustvo je na čekanju za ovaj personal između odabranih datuma obračuna plata. Navedi prisustvo da nastavite. Pogledaj {0} za detalje." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "Prisustvo je uspješno navedeno" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "Prisustvo nije prijavljeno za {0} jer je praznik." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "Prisustvo nije prijavljeno za {0} jer je {1} na odsustvu." + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "Prisustvo će se automatski navesti tek nakon ovog datuma." + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "Pregled Liste Zahtjeva Prisustva" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "Učesnici" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "Odlasci" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "Avg" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "Postavke Automatskog Prisustva" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "Automatska Naplata Odsustva" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "Automatizirano na osnovu Napretka Cilja" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "Automatska dodjela dopusta nije uspjela za sljedeće zarađene dopuste: {0}. Za više detalja pogledajte {1}." + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "Automatski preuzima svu imovinu koja je dodijeljena personalu, ako postoji" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "Automatski ažuriraj Zadnju Prijavu" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "Dostupno Odsustvo" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "Dostupni Dopusti" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "Prosječna Ocjena Povratnih Informacija" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "Prosječna Ocjena" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "Prosjek postignutih ciljeva, rezultata povratnih informacija i rezultata samoprocjene" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "Prosječna ocjena pokazanih vještina" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "Prosječna Ocjena Povratnih Informacija" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "Prosječna Iskorištenost" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "Prosječna Iskorištenost (Fakturisano)" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "Čeka se Odgovor" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "Zahtjev za Odsustvo sa zastarjelim datumom je ograničena. Postavi {} u {}" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "Bankovni Unosi" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "Bankarska Doznaka" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "Baza" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "Baza & Varijabla" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "Započni prijavu prije početka smjene (u minutama)" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "Ispod je lista predstojećih praznika za vas:" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "Beneficija" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "Iznos Naknade" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "Detalji Naknade" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "Iznos komponente naknade {0} prelazi {1}" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "Iznos komponente naknade {0} trebao bi biti veći od 0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "Iznos naknade {0} za komponentu plaće {1} ne smije biti veći od maksimalnog iznosa naknade {2} postavljenog u {3}" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "Beneficije" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "Iznos Fakture" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "Fakturisani Sati" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "Fakturisani Sati (B)" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "Dvomjesečno" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "Rođendanski Podsjetnik" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "Rođendanski Podsjetnik 🎂" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "Rođendani" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "Blokiraj Datum" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "Blokiraj Dane" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "Blokiraj Praznike na važne dane." + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "Bonus" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "Iznos Bonusa" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "Datum Uplate Bonusa" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "Datum Uplate Bonusa ne može biti prošli datum" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "Grana: {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "Masovna Dodjela" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "Pravila Dodjele Masovnog Odsustva" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "Masovna Dodjela Strukture Plata" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "Prema standard postavkama, Konačni Rezultat izračunava se kao prosjek Rezultata Cilja, Rezultata Povratnih Informacija i Rezultata Samoocjenjivanja. Omogućite ovo za postavljanje druge formule" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "Godišnja Plata" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "Izračunaj Konačni Rezultat na osnovu formule" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "Izračunaj Iznos Nagrade na osnovu" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "Obračunaj Radne Dane Obračuna Plata na osnovu" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "Proračun (u danima)" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "Pozivi" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "Otkazivanje u redu za čekanje" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "Nije moguće promijeniti vrijeme" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "Nije moguće dodijeliti odsustvo izvan perioda dodjele {0} - {1}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "Nije moguće dodijeliti više dopusta zbog maksimalnog ograničenja dodjele dopusta od {0} u dodjeli pravila o dopustu" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "Nije moguće dodijeliti više dopusta zbog maksimalnog dopuštenog broja dopusta od {0} u vrsti dopusta {1}." + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "Nije moguće prekinuti smjenu nakon datuma završetka" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "Nije moguće prekinuti smjenu prije datuma početka" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "Nije moguće otkazati Dodjelu Smjene: {0} jer je povezana sa Prisustvom: {1}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "Nije moguće otkazati Dodjelu Smjenae {0} jer je povezano sa Prijavom Personala: {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "Ne može se kreirati Platni List za pridruživanje personala nakon Obračunskog Perioda" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "Ne može se kreirati Platni List za personal otpušten prije Obračunskog Perioda" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "Nije moguće kreirati kandidata za posao za zatvoreno radno mjesto" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "Nije moguće kreirati ili mijenjati transakcije prema Ciklusu Ocjenjivanja sa statusom {0}." + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "Nije moguće pronaći aktivni Period Odsustva" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "Nije moguće navesti prisustvo za neaktivan personal {0}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "Nije moguće poslati. Za neki personal prisustvo nije navedeno." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "Nije moguće ažurirati dodjelu za {0} nakon podnošenja" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "Nije moguće ažurirati status grupa ciljeva" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "Prenesi Naprijed" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "Proslijeđeno Odsustvo" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "Povremeni Dopust" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "Uzrok Pritužbe" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "Promijenjen status iz {0} u {1} i status za drugu polovicu u {2} putem Zahtjeva za prisustvo" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "Promijenjen status iz {0} u {1} putem Zahtjeva Prisustva" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "Promjena '{0}' u {1}." + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "Promjena KRA u ovom roditeljskom cilju će uskladiti sve podređene ciljeve sa istim KRA, ako ih ima." + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "Provjeri {1} za više detalja" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "Provjeri Zapisnik Grešaka {0} za više detalja." + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "Prijavi se" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "Odjavi se" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "Provjeri Slobodna Radna Mjesta kod kreiranja Ponude za Posao" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "Provjerite {0} za više detalja" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "Prijavi se" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "Datum Prijave" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "Odjavi se" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "Datum Odjave" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "Polumjer Prijave" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "Podređeni članovi se mogu kreirati samo pod članovima tipa 'Grupa'" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "Odaberite način izračunavanja iznosa prekovremenog rada po satu:\n" +"
    1. Fiksna satnica: Fiksna, ručno unesena satnica.
    2. \n" +"
    3. Na temelju komponenti plaće:\n\n" +"(Zbroj odabranih iznosa komponenti) ÷ (Dani plaćanja) ÷ (Standardni dnevni sati)
    " + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "Odaberite datum na koji želite kreirati ove komponente kao zaostale obveze." + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "Zahtjevaj Beneficiju za" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "Potraživanje Troška" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "Zatraženo" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "Zahtjevani Iznos" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "Zatraženi iznos za {0} premašuje maksimalni iznos koji ispunjava uvjete za zahtjev {1}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "Zahtjevani iznos od {0} treba biti veći od 0" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "Zahtjevi" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "Obrađeno" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "Kliknite {0} da promijenite konfiguraciju, a zatim ponovo sačuvajte platni list" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "Zatvoreno" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "Zatvara se" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "Zatvara se:" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "Završne Napomene" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "Informacije o Tvrtki" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "Zahtjev Kompenzacijskog Odsustva" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "Kompenzator Isključen" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "Završavanje Introdukcije" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "Svojstva komponente i reference " + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "Uslov & Formula" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "Pomoć za Uslov i Formulu" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "Uslov & Formula" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "Uvjeti i Varijabla Formule i primjer" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "Konferencija" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "Potvrdi {0}" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "Uzmi u obzir period odgode" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "Uzmi u obzir obilježeno prisustvo ya vrijeme praznika" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "Uzmi u Obzir Deklaraciju Izuzeća Plaćanja Poreza" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "Uzmi u obzir neoznačeno Prisustvo kao" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "Objedini Tip Dopusta" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "Kontakt Broj" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "Kopija Poziva/Objave" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "Nije moguče potvrditi neke Platne Liste: {}" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "Nije moguće ažurirati cilj" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "Nije moguće ažurirati ciljeve" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "Neuspješno brisanje rasporeda za zemlju" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "Postavljanje zemlje nije uspjelo" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "Zemlja Prebivališta" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "Kurs" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "Propratno Pismo" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "Kreiraj Dodatnu Platu" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "Kreiraj Procjene" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "Kreiraj intervju" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "Kreiraj Kandidata za posao" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "Kreiraj Ponudu Posla" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "Kreirajte novi ID za Personal" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "Izradi Listu Prekovremenog Rada za personal koji ispunjava uvjete" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "Izradi Listu Prekovremenog Rada" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "Kreiraj Platni List" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "Kreiraj Platne Listove" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "Kreiraj Smjene nakon" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "Kreiranje Procjena u toku" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "Kreiranje unosa plaćanja u toku......" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "Kreiranje Platnih Listića u toku..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "Kreiranje {0}..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "Datum Kreiranja" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "Kreiranje nije uspjelo" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "Kreiranje Dodjela Strukture Plata je u redu za čekanje. Može potrajati nekoliko minuta." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "Kreiranje {0} je stavljeno u red za čekanja. Može potrajati nekoliko minuta." + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "Kriterijum na osnovu kojeg personal treba procijeniti u Povratnim Informacijama Efektivitetai Samoprocjene" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "Valuta " + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "Valuta odabrane Tabele Poreza na Platu bi trebala biti {0} umjesto {1}" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "Trenutna Godišnja Plata" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "Trenutni Broj" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "Trenutni Poslodavac " + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "Trenutna Profesija" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "Tekući Mjesečni Porez na Platu" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "Trenutna vrijednost Odometra bi trebala biti veća od vrijednosti posljednjeg očitavanja Odometra {0}" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "Trenutno očitavanje Odometra " + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "Trenutne Ponude Posla" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "Tekuće razdoblje obračuna plaća" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "Trenutna Tabela" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "Trenutno Radno Iskustvo" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "Trenutno ne postoji {0} period odsustva za ovaj datum za kreiranje/ažuriranje raspodjele odsustva." + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "Zaseban Raspon" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "Naziv Ciklusa" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "Ciklusi" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "Dnevni Sažetak Rada" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "Grupa Dnevnog Sažetka Rada" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "Korisnik Grupe Dnevnog Sažetka Rada" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "Odgovori Dnevnog Sažetka Rada" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "Prekoračen raspon datuma" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "Datum se ponavlja" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "Datum {0} se ponavlja u Detaljima Prekovremenog Rada" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "Datumi & Razlog" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "Datumi zasnovani na" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "Dani za koje su praznici blokirani za ovo odjeljenje." + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "Dani za poništavanje" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "Broj dana za poništavanje mora biti veći od nule." + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "Debitni Broj Računa" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "Decembar" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "Odluka na čekanju" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "Deklaracije" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "Deklarisani Iznos" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Odbij puni porez na odabrani datum obračuna plata" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "Odbij Porez za Nepodneseni Dokaz Izuzeća od Poreza" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "Odbitak" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "Zaostaci po odbitku" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "Izvještaji Odbitaka" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "Odbitak od Plate" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "Odbici" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "Odbici prije obračuna poreza" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "Standard Iznos" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "Standard Bankovni/Gotovinski račun će se automatski ažurirati u Upisu platnog dnevnika kada se izabere ovaj način." + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "Standard Osnovna Plata" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "Standard Račun Predujma" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "Standard Račun Izdataka" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "Standard Račun za Isplatu Plata" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "Standard Struktura Plata" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "Standard Smjena" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "Izbriši Prilog" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "Izbriši {0}" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "Odobravač Odjela" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "Otvorena Radna Mjesta po Odjelu" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "Odjel {0} ne pripada tvrtki: {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "Odjel: {0}" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "Datum Polaska" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "Zavisi od Plaćenih Dana" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "Zavisi od Plaćenih Dana" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "Opis Otvorenog Radnog Mjesta" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "Vještina Imenovanja" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "Naziv: {0}" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "Detalji Sponzora (Ime, Lokacija)" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "Prijava i Odjava na osnovu" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "Onemogući {0} za komponentu {1}, kako biste spriječili da se iznos dvaput odbije, jer njegova formula već koristi komponentu zasnovanu na plaćenim danima." + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "Onemogući {0} ili {1} da nastavite." + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "Onemogućavanje Guranih Obavještenja u toku..." + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "Ne uključuj u Knjigovodstvene Unose" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "Ne uključuj u Ukupno" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "Ne uključuj u Ukupno" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "Želite li ažurirati kandidata za posao {0} kao {1} na osnovu rezultata ovog intervjua?" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "Dokument {0} nije uspio!" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "Domaći" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "Duplicirano Prisustvo" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "Otkriven Dvostruki Zahtjev" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "Dupliciraj Zahtjev za Posao" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "Duplicira Prilagodbu Dopusta" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "Dvostruka Prepisana Plata" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "Dvostruko Zadržana Plata" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "GREŠKA({0}): {1}" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "Rana Odjava" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "Rana Odjava do" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "Period Odgode Ranog Izlaza" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "Rane Odjave" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "Zarađeni Dopust" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "Učestalost Zarađenog Odsustva" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "Raspored Zarađenog Dopusta" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "Zarađeni Dopusti" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "Zarađena odsustva se dodjeljuju prema konfiguriranoj učestalosti putem planera." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "Zarađena odsustva se automatski dodjeljuju putem planera na osnovu godišnje dodjele postavljene u Politici odsustva: {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "Zarađena odsustva su odsustva koje je personal zaradio nakon što je radio u tvrtki određeno vrijeme. Ako ovo omogućite, dodijelit će se odsustva na proporcionalnoj osnovi automatskim ažuriranjem dodjele odsustva za odsustvo ovog tipa u intervalima postavljenim od strane 'Učestalost Zarađenog Odsustva'." + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "Zarada" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "Zaostale Plaće" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "Komponenta Zarade" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "Komponenta Zarade je obavezna za Bonus Preporuke Personala." + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "Zarada" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "Zarada & Odbici" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "Uredi Artikl Troška" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "Uredi Porez na Troškove" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "Na snazi od" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "Na snazi do" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "Na snazi od" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "Pošalji Platni List" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "Pošalji Platni List e-poštom" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "E-pošta Poslana" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "Šalje platni List e-poštom zaposleniku na osnovu željene e-pošte odabrane u Postavkama Personala" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "Bankovni Račun" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "Predujamni Račun" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "Stanje Predujma" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "Sažetak Predujma" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "Analiza" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "Alat Prisustva" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "Zahtjev za Beneficije" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "Detalji Zahtjeva za Beneficije" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "Potraživanje za Beneficije" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "Pogodnosni Detalji" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "Registar Pogodnosti" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "Beneficije" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "Rođendan" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "Introdukcijske Aktivnosti" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "Prijava" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "Istorija Prijava" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "Centar Troškova" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "Detalji" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "E-pošta" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "Postavke Otkaza" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "Otkazi" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "Kriterijumi Povratnih Informacija" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "Ocjena Povratnih Informacija" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "Kvalifikacija" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "Žalba" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "Zdravstveno Osiguranje" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "Korištenje radnih sati na osnovu Radnog Lista" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "Slika" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "Stimulacija" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "Informacija" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "Informacija" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "Radno Iskustvo" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "Stanje Odsustva" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "Sažetak Stanja Odsustva" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "Kredit" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "Imenovanje na osnovu" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "Introdukcija" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "Predložak Introdukcije" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "Introdukcija: {0} već postoji za kandidata za posao: {1}" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "Ostali Prihodi" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "Povratne informacije Efektiviteta" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "Unaprijeđenje" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "Detalji Unaprijeđena" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "Unaprijeđenje se ne može podnijeti prije datuma unaprijeđenja" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "Istorija Karekteristike Personala" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "Preporuka" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "Preporuka {0} već postoji za e-poštu: {1}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "Preporuka od {0} se ne odnosi na bonus za preporuke." + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "Preporuke" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "Odgovorni " + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "Zadržan" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "Otkaz" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "Predložak Otkaza" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "Postavke Personala" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "Vještina" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "Mapa Vještina" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "Vještine" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "Status" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "Kategorija Izuzeća od Poreza" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "Deklaracija Izuzeća od Poreza" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "Kategorija Deklaracije Izuzeća od Poreza" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "Podnošenje Dokaza o Izuzeća od Poreza" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "Detalji Podnošenja Dokaza Izuzeća od Poreza" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "Podkategorija Izuzeća od Poreza" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "Obuka" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "Premještaj" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "Detalj Premještaja" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "Detalji Premještaja" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "Premještaj se ne može podnijeti prije datuma premještaja" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "Pačun Predujama {0} trebao bi biti tipa {1}." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "Personal se može imenovati na osnovu Personalnog ID ako je dodijeljen ili putem Serije Imenovanja. Ovdje odaberite željenu opciju." + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "Ime" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "Zapisnik Personala se kreira pomoću odabrane opcije" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "Personal je naveden kao Odsutan zbog nedostajućih prijava." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "Personal je naveden kao Odsutan zbog neispunjavanja praga radnih sati radnog vremena." + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "Personal je označen kao odsutan tokom druge polovine dana zbog nedostajućih prijava." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "Zaposlenik {0} : {1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "{0} već ima Zahtjev za prisustvo {1} koji se preklapa s ovim periodom" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "{0} već ima aktivnu smjenu {1}: {2} koja se preklapa u ovom periodu." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "{0} je već predao zahtjev {1} za period obračuna plata {2}" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "{0} se već prijavio za smjenu {1}: {2} koja se preklapa u ovom periodu" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "{0} se već prijavio za {1} između {2} i {3} : {4}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "Zaposlenik {0} već je zatražio/la naknadu '{1}' za {2} ({3}).
    Kako bi se spriječile preplate, u svakom ciklusu obračuna plaća dopušten je samo jedan zahtjev po vrsti naknade." + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "{0} nije aktivan ili ne postoji" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "{0} je odsutan {1}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "{0} nije pronađen među učesnicima obuke." + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "{0} na pola dana {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "{0} razriješen {1} mora biti postavljen kao 'Napustio'" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "Personal: {0} mora raditi minimalno {1} godina za nagradu" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "HTML Personala" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "Praznični Personal" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "Personal ne može sami sebi dati povratnu informaciju. Umjesto toga koristi {0}: {1}" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "Poludnevni Personal HTML" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "Personal će propustiti podsjetnike za praznike od {} do {}.
    Želiš li nastaviti s ovom promjenom?" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "Personal bez Povratnih Informacija: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "Personal bez Ciljeva: {0}" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "Praznični Personal" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "Tip Personala" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "Omogući Automatsko Prisustvo" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "Omogući Odbir Rane Odjave" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "Omogući Odabir Kasne Prijave" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "Omogući Gurana Obavještenja" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "Omogućite ovo kako biste koristili određeni množitelj za državne praznike. Ako nije omogućeno, koristit će se standardni množitelj." + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "Omogućite ovo kako biste koristili određeni množitelj za vikende. Ako nije omogućeno, koristit će se standardni množitelj." + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "Omogućeno samo za komponente zaposleničkih pogodnosti iz dodjele strukture plaća" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "Omogućavanje Guranih Obavještenja u toku..." + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "Unovčavanje" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "Iznos Naplate" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "Dani Naplate" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "Dani Naplate ne mogu premašiti {0} {1} prema postavkama Tipa Odsustva" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "Primijenjeno Ograničenje Naplate" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "Šifriraj Platne Liste u e-pošti" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "Datum završetka ne može biti prije datuma početka" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "Datum Završetka: {0}" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "Vrijeme završetka ne može biti prije vremena početka" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "Unesi Intervju Rundu" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "Unesite vrijednost koja nije nula za prilagodbu." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "Unesi standardno radno vrijeme za normalan radni dan. Ovi sati će se koristiti u izračunima izvještaja kao što su iskorištenost sati personala i analiza profitabilnosti projekta." + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "Unesite broj dana neplaćenog odsustva koji želite poništiti. Ova vrijednost ne smije premašiti ukupan broj dana neplaćenog odsustva zabilježenih za odabrani mjesec" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "Unesite broj odsustva koje želite dodijeliti za period." + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "Unesite godišnje iznose pogodnosti" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "Unesi {0}" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "Greška pri kreiranju {0}" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "Greška pri brisanju {0}" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "Pogreška pri preuzimanju PDF-a" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "Greška u formuli ili stanju" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "Greška u formuli ili stanju: {0} u Tablici Poreza na Platu" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "Greška u nekim redovima" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "Greška pri ažuriranju {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "Greška prilikom procjene {doctype} {doclink} u redu {row_id}.

    Greška: {error}

    Savjet: {description}" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "Procijenjen Trošak po Poziciji" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "Evaluacija" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "Datum Evaluacije" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "Metoda evaluacije se ne može promijeniti jer postoje postojeće procjene kreirane za ovaj ciklus" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "Detalji Događaja" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "Veza Događaja" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "Lokacija Događaja" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "Naziv Događaja" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "Status Događaja" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "Svake dvije Sedmice" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "Svake tri Sedmice" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "Svake četiri Sedmice" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "Svaka Valjana Prijava i Odjava" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "Svake Sedmice" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "Svi, čestitajmo im godišnjicu rada!" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "Svi, čestitamo {0} rođendan." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "Ispit" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "Tečaj unesene uplate u odnosu na Račun Predujma" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "Isključi Praznike" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "Isključeno {0} Nenaplativo Odsustvo za {1}" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "Oslobođen Poreza na Platu" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "Izuzeće" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "Kategorija Izuzeća" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "Dokaz o Izuzeću" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "Podkategorija Izuzeća" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "Postojeći Zapis" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "Postojeće Dodjele Smjena" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "Otkaz je Potvrđen" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "Detalji Odlazka" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "Otkazni Intervju" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "Otkazni Intervju na Čekanju" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "Sažetak Otkaznog Intervjua" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "Otkazni Intervju {0} već postoji za: {1}" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "Otkazni Upitnik" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "Obavijest Otkaznog Upitnika" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "Predložak Obavijesti Otkaznog Upitnika" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "Otkazni Upitnik na Čekanju" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "Web Forma Otkaznog Intervjua" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "Odlasci (Ovaj Mjesec)" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "Očekivana Prosječna Ocjena" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "Očekuje se" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "Očekivana Kompenzacija" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "Očekivani mjesečni raspon plaća" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "Očekivani Skup Vještina" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "Očekivani Skup Vještina" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "Odobravatelj Troškova" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "Odobravatelj Troškova je obavezan za Potraživanju Troškova" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "Račun Potraživanja Troškova" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "Predujam Potraživanja Troškova" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "Detalji Potraživanja Troškova" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "Sažetak Potraživanja Troškova" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "Tip Potraživanja Troškova" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "Potraživanje Troškova za Zapisnik Vozila {0}" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "Potraživanje Troškova {0} već postoji za Zapisnik Vozila" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "Potraživanja" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "Datum Troška" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "Troškovni Artikal" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "Dokaz Troškova" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "Porez na Troškove" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "Porezi i Naknade Troškova" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "Tip Troška" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "Troškovi & Predujmovi" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "Povuci Dodjelu" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "Istek Proslijeđenog Odsustva (Dana)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "Istekni Odsustvo" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "Isteklo Odsustvo" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "Isteklo Odsustvo" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "Objašnjenje" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "Eksportiranje u toku..." + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "Nije uspjelo kreiranje/podnošenje {0} za:" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "Brisanje standard postavki za zemlju {0} nije uspjelo." + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "Preuzimanje PDF-a nije uspjelo: {0}" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "Nije uspjelo slanje obavještenja o ponovnom rasporedu intervjua. Konfigurišite vaš račun e-pošte." + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "Postavljanje standard postavki za zemlju {0} nije uspjelo." + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "Nije uspjelo slanje nekih dodjela pravila o odsustvu:" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "Ažuriranje statusa kandidata za posao nije uspjelo" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "Neuspješno {0} {1} za:" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "Detalji o Neuspjehu" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "Razlog Neuspjeha" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "Neuspjeh Automatske Dodjele Zarađenog Dopusta" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "Velj" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "Broj Povratnih Informacija" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "HTML Povratne Informacije" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "Ocjeene Povratnih Informacija" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "Predložak Obavijesti Podsjetniku Povratnih Informacija" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "Rezultat Povratnih Informacija" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "Povratne Informacije su poslane" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "Sažetak Povratnih Informacija" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "Povratne informacije su već poslane za intervju {0}. Otkaži prethodne povratne informacije o intervjuu {1} da nastavite." + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "Povratne informacije ne mogu se snimiti za odsutan personal." + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "Povratne informacije {0} su uspješno dodane" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "Preuzmi Geolokaciju" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "Preuzmi Detalje Prekovremenog Rada" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "Preuzmi Smjenu" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "Preuzmi Smjene" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "Preuzimanje Personala u toku" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "Preuzima se Smjena" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "Preuzima se vaše Geolokacija" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "Pregled Datoteke" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "Popuni formu i spremi je" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "Popunjeno" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "Filtriraj Personal" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "Filtriraj po Smjeni" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "Konačna Odluka" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "Konačni Rezultat" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "Formula Konačnog Rezultata" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "Prva Prijava i Zadnja Odjava" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "Prvi Dan" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "Ime " + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "Fiskalna Godina {0} nije pronađena" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "Fiksna Satnica" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "Upravljanje Voznog Parka" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "Fleksibilna Pogodnost" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "Fleksibilne Beneficije" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "Fleksibilna Komponenta" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "Let" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "Puna i Konačna Odluka na čekanju" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "Prati putem e-pošte" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "Hrana" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "Za Naziv " + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "Za" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "Za dan uzetog odsustva, ako i dalje plaćate (recimo) 50% dnevne plate, unesite 0,50 u ovo polje." + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "Formula" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "Dio Primjenjive Zarade " + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "Dio Dnevne Plate za pola dana" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "Dio Dnevne Plate po odsustvu" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "Djelimični Trošak" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "Frape HR" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "Od Iznosa" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "Od datuma mora biti prije Do datuma" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "Datum od {0} ne može biti nakon datuma završetka razdoblja obračuna plaća {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "Od datuma {0} ne može biti nakon datuma razrješenja {1}" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "Datum od {0} ne može biti prije datuma početka razdoblja obračuna plaća {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "Od datuma {0} ne može biti prije datuma zapošljenja {1}" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "Od datuma ne može biti prije datuma zapošljenja" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "Od datuma ne može biti prije datuma zapošljenja." + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "Odavde možete omogućiti napaltu za ostala stanja odsustva." + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "Od {0} do {1}" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "Od (Godina)" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "Fuksija" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "Trošak Goriva" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "Troškovi Goriva" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "Cijena Goriva" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "Količina Goriva" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "Potpuna i Konačna Imovina" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "Potpuni i Konačni Izvanredni Dogovor" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "Puno Radno Vrijeme" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "Potpuno Sponzorisano" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "Finansirani Iznos" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "Budući Porez na Platu" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "Budući datumi nisu dozvoljeni" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "Račun Rezultata" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "Greška Geolokacije" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "Vaš trenutni pretraživač ne podržava geolokaciju" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "Preuzmi Detalje iz Deklaracije" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "Preuzmi Personal" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "Preuzmi Zahtjeve za Posao" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "Preuzmi Predložak" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "Preuzmi aplikaciju na svoj uređaj za lak pristup i bolje iskustvo!" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "Preuzmit aplikaciju na svoj iPhone za lak pristup i bolje iskustvo" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "Bez Glutena" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "Idi na Prijavu" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "Idi na stranicu za ponovno postavljanje lozinke" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "Napredak Cilja (%)" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "Rezultat Cilja" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "Rezultat Cilja (%)" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "Rezultat Cilja (težinski)" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "Postotak Napretka do cilja ne može biti veći od 100." + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "Cilj bi trebao biti usklađen sa istim KRA kao i njegov nadređeni cilj." + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "Cilj bi trebao biti dodjeljen istom personalu kao i njegov nadređeni cilj." + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "Cilj bi trebao pripadati istom Ciklusu Ocjenjivanja kao i njegov nadređeni cilj." + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "Cilj je uspješno ažuriran" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "Ciljevi su uspješno ažurirani" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "Ocjena" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "Nagrada" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "Primjenjiva Komponenta Nagrade" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "Pravilo Nagrade" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "Tabela Pravila Nagrade" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "Žalba" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "Žalba Naspram" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "Žalba Naspram Stranke" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "Detalji Žalbe" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "Tip Žalbe" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "Bruto Zarada" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "Bruto Plata" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "Bruto Plata (Valuta Tvrtke)" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "Bruto Do Danas u Godini" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "Bruto Do Danas u Godini (Valuta Tvrtke)" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "Napredak grupnog cilja se automatski izračunava na osnovu podređenih ciljeva." + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "Personal" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "Personal & Obračun Plata" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "Postavke Resursa & Obračun Plata" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "Nadzorna Ploča Resursa" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "Postavke Resursa" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "HRMS" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "Pola Dana" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "Poludnevni Datum" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "Poludnevni Datum je obavezan" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "Poludnevni Datum bi trebao biti između Od Datuma i Do Datuma" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "Poludnevni datum bi trebao biti između Datuma Početka Rada i Datuma Završetka Rada" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "Poludnevni Personal Zaglavlje" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "Poludnevni Zapisi" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "Poludnevni Datum bi trebao biti između Od Datuma i Do Datuma" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "Ima Certifikat" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "Zdravstveno Osiguranje" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "Naziv Zdravstvenog Osiguranja" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "Broj Zdravstvenog Osiguranja" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "Tvrtka Zdravstvenog Osiguranja" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "Zdravo {}! Ova e-pošta je podsjeta na predstojeće praznike." + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "Zdravo, {0}👋" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "Zapošljavanje" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "Postavke Zapošljavanja" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "Lista Praznika za Fakultativni Dopust" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "Praznici ovog Mjeseca." + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "Praznici ove Sedmice." + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "Horizontalni Prekid" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "Satnica (Valuta Tvrtke)" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "Satnica" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "Plaćeni dani za najam kuće se preklapaju sa {0}" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "Datumi iznajmljivanja kuće potrebni za obračun izuzeća" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "Razmak između datuma iznajmljivanja kuće trebao bi biti najmanje 15 dana" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "IFSC" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "IFSC Kod" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "PRIJAVA" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "Broj identifikacionog Dokumenta" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "Tip Identifikacionog Dokumenta" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "Ako je navedeno, Obračun Plate će se knjižiti prema personalu" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "Ako je odabrano, fleksibilne pogodnosti se uzimaju u obzir samo ako postoji zahtjev za pogodnosti" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "Ako je odabrano, skriva i onemogućuje polje Zaokruženi Ukupan Iznos u Platnim Listovima" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "Ako je odabrano, izrada listi prekovremenog rada može se obraditi kao dio obrade plaća" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "Ako je navedeno, puni iznos će biti odbijen od oporezivog prihoda prije obračuna poreza na platu bez ikakve deklaracije ili podnošenja dokaza." + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "Ako je omogućeno, Deklaracija Izuzeća od Poreza će se uzeti u obzir za obračun poreza na platu." + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "Ako je omogućeno, automatsko prisustvo će biti navedeno za praznike ako postoje prijave personala" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "Ako je omogućeno, odbija plaćene dane za odsustvo za praznike. Uobičajeno, praznici se smatraju plaćenim" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "Ako je omogućeno, iznos će biti isključen iz knjigovodstvenih unosa tijekom izrade registra." + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "Ako je omogućena, komponenta će se smatrati komponentom poreza i iznos će se automatski obračunati prema konfigurisanim tabelama poreza na platu" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "Ako je omogućena, komponenta će se uzeti u obzir u izvještaju o odbicima poreza na platu" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "Ako je omogućeno, komponenta neće biti prikazana na platnom listu ako je iznos nula" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "Ako je omogućeno, ukupan broj zahtjeva pristiglih za ovo radno mjesto bit će prikazane na web stranici" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Ako je omogućeno, vrijednost navedena ili obračunata u ovoj komponenti neće doprinijeti zaradi ili odbitcima. Međutim, na njegovu vrijednost mogu se odnositi druge komponente koje se mogu dodati ili oduzeti. " + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "Ako je omogućena, ova komponenta omogućuje nagomilavanje iznosa bez njihovog dodavanja u zaradu. Obračunati saldo prati se u Registru Zaposleničkih Pogodnosti i može se isplatiti kasnije po potrebi." + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "Ako je omogućena, ova komponenta će biti uključena u izračune zaostalih plaćanja" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "Ako je omogućeno, ukupan broj radnih dana će uključivati i praznike, a to će smanjiti vrijednost plate po danu" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "Ako je veće od nule, ovo postavlja maksimalni iznos pogodnosti koji se može dodijeliti bilo kojem zaposleniku" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "Ako nije označeno, lista će se morati dodati svakom Odjeljenju gdje se mora primijeniti." + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Ako je odabrana, vrijednost navedena ili obračunata u ovoj komponenti neće doprinijeti zaradama ili odbitcima. Međutim, na njegovu vrijednost mogu se odnositi druge komponente koje se mogu dodati ili oduzeti. " + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "Ako je postavljeno, radno mjesto će se automatski zatvoriti nakon ovog datuma" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "Ako koristite kredite u platnim listama, instalirajte aplikaciju {0} sa Frappe Cloud Marketplace-a ili GitHub-a da nastavite koristiti integraciju kredita s platnim spiskom." + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "Import Prisustvo" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "U Vrijeme" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "U slučaju bilo kakve greške tokom ovog pozadinskog procesa, sistem će dodati komentar o grešci na ovom unosu Obračuna Plate i vratiti se na status Podnešeno" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "Poticaj" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "Iznos Poticaja" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "Uključuje Podređene Tvrtke" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "Uključuje Praznike" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "Uključi praznike u Ukupan broj Radnih Dana" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "Uključi praznike unutar dopusta kao dopust" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "Izvor Prihoda" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "Iznos Poreza na Platu" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "Podjela Poreza na Platu" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "Komponenta Poreza na Platu" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "Obračun Poreza na Platu" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "Porez na Platu Odbijen do Datuma" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "Odbici Poreza na Platu" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "Tabela Poreza na Platu" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "Tabela Porez na Platu Ostale Naknade" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "Tabela Poreza na Platu je obavezna jer Struktura Plate {0} ima poresku komponentu {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "Tabela Poreza na Platu mora biti na snazi na ili prije datuma početka obračunskog perioda: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "Tabela Poreza na Platu nije postavljena u Dodjeli Strukture Plata: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "Tabela Poreza na Platu: {0} je onemogućena" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "Prihodi iz Drugih Izvora" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "Nepravilna Težinska Dodjela" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "Označava broj odsustva koji se ne mogu naplatiti iz stanja odsustva. Npr. sa stanjem od 10 i 4 odsustva koja se ne mogu naplatiti, možete naplatit 6, dok se preostala 4 mogu prenijeti ili isteći" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "Kontrola" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "Instaliraj" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "Instaliraj Frappe HR" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "Nedovoljno Stanje" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "Nedovoljno stanje odsustva za tip odsustva {0}" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "Iznos Kamate" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "Račun Prihoda Kamata" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "Interni" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "Međunarodni" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "Internet" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "Intervju" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "Intevju Detalj" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "Intevju Detalji" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "Povratne Informacije Intervjua" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "Podsjetnik Povratne Informacije Intervjua" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "Povratne Informacije Intervjua {0} su uspješno poslane" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "Intervju nije Odgođen" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "Intervju Podsjetnik" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "Predložak Obavijesti Podsjetnika Intervjua" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "Intervju je uspješno ponovo zakazan" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "Intervju Runda" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "Runda Intervjua {0} primjenjiva je samo za Imenovanje {1}" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "Runda Intervjua {0} je samo za imenovanje {1}. Kandidat za posao prijavio se za poziciju {2}" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "Zakazani Datum Intervjua" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "Status Intervjua" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "Sažetak Intervjua" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "Tip Intervjua" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "Intervju: {0} Odložen" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "Intervjuer" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "Intervjueri" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "Intervjui" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "Intervjui (Ovaj Tjedan)" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "Nevažeća Komponenta Obračuna" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "Nevažeća Dodatna Plata" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "Nevažeća komponenta zaostataka" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "Nevažeći Iznosi Pogodnosti" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "Nevažeći Datumi" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "Nevažeći neplačeni dani su poništeni" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "Nevažeći Unos Registra Odsustva" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "Nevažeći Račun Uplate Plate. Valuta računa mora biti {0} ili {1}" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "Nevažeća Vremena Smjena" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "Navedeni su nevažeći parametri. Navedi tražene argumente." + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "Istražen" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "Detalji Istrage" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "Pozvani" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "Referenca Fakture" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "Je Dodijeljeno" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "Primjenjivo za Preporučeni Bonus" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "Prenesi Naprijed" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "Kompenzacijsko" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "Kompenzacijsko Odsustvo" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "Zarađeno Odsustvo" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "Isteklo" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "Fleksibilna Beneficija" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "Komponenta Poreza na Platu" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "Neplaćeno Odsustvo" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "Neobavezno Odsustvo" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "Djelimično Plaćeno Odsustvo" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "Ponavlja se" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "Ponavljajuća Dodatna Plata" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "Plata Oslobođena" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "Plata Zadržana" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "Porez Primjenjiv" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "Sij" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "Kandidat za Posao" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "Izvor Kandidata za Posao" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "Kandidat za posao {0} je uspješno kreiran." + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "Kandidatima za posao nije dozvoljeno da se pojave dva puta na istom krugu intervjua. Intervju {0} već zakazan za kandidata za posao {1}" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "Prijava za Posao" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "Put Prijave za Posao" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "Opis Posla" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "Ponuda za Posao" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "Uslov Ponude za Posao" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "Predložak Uslova Ponude za Posao" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "Uslovi Ponude za Posao" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "Status Ponude za Posao" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "Ponuda za Posao: {0} je već za kandidata za posao: {1}" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "Otvoreno Radno Mjesto" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "Povezano Otvoreno Radno Mjesto" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "Predložak Otverenih Radnih Mjesta" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "Otvorena Radna Mjesta" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "Otvorena Radna Mjesta za naziv {0} su već otvorena ili je zapošljavanje završeno prema Planu Zapošljavanja {1}" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "Zahtjev za Posao" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "Zahtjev za posao {0} je povezan sa otvaranjem radnog mjesta {1}" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "Profil posla, potrebne kvalifikacije itd." + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "Poslovi" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "Datum Pridruživanja" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "Juli" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "Juni" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "Ključno Polje Efektiviteta" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "Metoda Vrijednovanja Ključnog Polja Efektiviteta" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "Ključno Polje Efektiviteta ažurirano za sve podređene ciljeve." + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "Ključno Polje Efektiviteta naspram Ciljeva" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "Ključno Polje Efektiviteta" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "Ključno Polje Efektiviteta" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "Ključno Polje Odgovornosti" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "Ključno Polje Rezultata" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "Necažeči neplaćeni dani ({0}) ne odgovaraju stvarnom ukupnom iznosu ispravaka plaća ({1}) za {2} od {3} do {4}" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "Poslednji Dan" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "Posljednja poznata uspješna sinhronizacija prijave personala. Resetirajte ovo samo ako ste sigurni da su svi zapisnici sinkronizirani sa svih lokacija. Nemojte mijenjati ovo ako niste sigurni." + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "Zadnja Vrijednost Odometra " + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "Zadnja Sinhronizacija Prijave" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "Zadnja {0} je bila u {1}" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "Kasne Prijave" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "Kasna Prijava" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "Postavke Kasne Prijave i Rane Odjave za Automatsko Prisustvo" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "Kasna Prijava od" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "Period Odgode za Kasnu Prijavu" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "Vrijednosti geografske širine i dužine obavezne su za prijavu." + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "Širina: {0}°" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "Odsustvo" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "Prilagodba Odsustva" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "Prilagodba dopusta za ovu dodjelu već postoji: {0}. Molimo izmijenite postojeću prilagodbu." + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "Dodjela Odsustva" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "Dodjela Odsustva Postoji" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "Dodjela Odsustva" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "Zahtjev Odsustva" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "Period Prijave Odsustva ne može biti između dvije neuzastopne dodjele odsustva {0} i {1}." + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "Obaviještenje Odobrenja Odsustva" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "Predložak Obaviještenja Odobrenja Odsustva" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "Odobravatelj Odsustva" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "Odobravatelj Odsustva je obavezan u Aplikaciji Odsustva" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "Ime Odobravatelja Odsustva" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "Stanje Odsustva" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "Stanje Osustva prije Zahtjeva" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "Listu Blokiranog Odsustva" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "Dozvoli Listu Blokiranog Odsustva" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "Dozvoljena Lista Blokiranog Odsustva" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "Datum Liste Blokiranog Odsustva" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "Datumi Liste Blokiranog Odsustva" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "Naziv Liste Blokiranog Odsustva" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "Odsustvo Blokirano" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "Kontrolni Panel Odsustva" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "Detalji Odsustva" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "Naplata Odsustva" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "Iznos Naplaćenog Odsutva po Danu" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "Istorija Odsustva" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "Registar Odsustva" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "Unos Registra Odsustva" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "Unosi Registra Odsustva Do Datuma mora biti nakon Od Datuma. Trenutno je Od Datuma {0}, a Do Datuma {1}" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "Period Odsustva" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "Pravila Odsustva" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "Dodjela Pravila Odsustva" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "Preklapanje Dodjela Pravila Odsustva" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "Detalj Pravila Odsustva" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "Detalji Pravila Odsustva" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "Pravila Odsustva: {0} već je dodijeljeno za {1} za period {2} do {3}" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "Obavijest Statusa Odsustva" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "Predložak Obaviještenja Odobrenja Odsustva" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "Tip Odsustva" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "Naziv Tipa Odsustva" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "Tip Odsustva može biti kompenzacijsko ili zarađeno odsustvo." + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "Tip Odsustva može biti neplaćeno ili djelomično plaćeno odsustvo" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "Tip Odsustva je obavezan" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "Tip Odsustva {0} ne može se dodijeliti jer je to neplaćeno odsustvo" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "Tip Odsustva {0} ne može se prenijeti naprijed" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "Tip Odsutva {0} nije moguće unovčiti" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "Neplaćeno Odsustvo" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "Neplaćeno Odsustvo ne odgovara odobrenim {} zapisima" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "Dodjela dopusta se preskače za {0}, jer je broj koji će se dodijeliti 0." + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "Dodjela Odsustva {0} je povezana sa zahtjevom za odsustvo {1}" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "Odsustvo je već dodijeljeno za ovu Dodjelu Pravila Odsustva" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "Postavke Odsustva i Potraživanja Troškova" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "Zahtjev Odsustva povezan je s dodjelom odsustva {0}. Zahtjev Odsustvao ne može se postaviti kao neplaćeno odsustvo" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Odsustvo se ne može dodijeliti prije {0}, jer je stanje odsustva već preneseno u budući zapis o dodjeli odsusva {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Odsustvo se ne može primijeniti/otkazati prije {0}, jer je stanje odsustva već preneseno u budući zapis o dodjeli odsustva {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "Odsustvo tipa {0} ne može biti duže od {1}." + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "Odsustvo(i) je isteklo" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "Odsustvo(a) na čekanju za Odobrenje" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "Uzeto Odsustvo(a)" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "Odsustvo" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "Odsustvo & Praznici" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "Odsustvo Nakon Prilagodbe" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "Odsustvo Dodjeljeno" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "Odsustvo Isteklo" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "Odsustvo na čekanju za Odobrenje" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "Odsustvo za Tip Odsustva {0} neće biti proslijeđeni jer je prosljeđivanje onemogućeno." + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "Godišnje Odsustvo" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "Odsustvo za Podešavanje" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "Odsustva možete iskoristiti za odmor na kojem ste radili. Možete zatražiti kompenzacijski vanredno osustvo koristeći zahtjev za kompenzacijsko odsustvo. Kliknite {0} da saznate više" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Otišao(la)/Napistio(la)" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "Radni Vijek" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "Limeta" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "Poveži ciklus i navedi KRA sa ciljem da ažurirate rezultatocjenjivanja na osnovu napretka cilja" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "Povezani Projekt {} i zadaci su izbrisani." + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "Kreditni Račun" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "Kreditni Proizvod" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "Otplata Kredita" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "Upis Otplate Kredita" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "Kredit se ne može otplatiti od plate {0} jer se plata obrađuje u valuti {1}" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "Lociranje..." + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "Lokacija / ID Uređaja" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "Potreban Smještaj" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "Odjavi se" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "Tip" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "Tip Zapisnika je obavezan za prijave koje padaju u smjeni: {0}." + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "Prijava nije uspjela" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "Prijavite se na Frappe HR" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "Dužina: {0}°" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "Niži Raspon" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "MICR" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "Napravi Bankovni Unos" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "Zahtjev Pogodnosti Obavezan" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "Obavezna polja potrebna za ovu radnju:" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "Ručno Procjenjivanje" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "Ručno" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "Mart" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "Preuzmi Prisustvo" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "Navedi Automatsko Prisustvo za Praznike" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "Navedi kao Završeno" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "Navedi kao U toku" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "Navedi kao {0}" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "Navedi prisustvo kao {0} za {1} na odabrane datume?" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "Navedi prisustvo na osnovu 'Prijave Personala' za personal koji je dodijeljen ovoj smjeni." + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "Navedi prisustvo za postojeće zapise prijava/odjava prije promjene postavki smjene" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "Navedi {0} kao završen?" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "Navedi {0} {1} kao {2}?" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "Navedeno Prisustvo" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "HTML Navedenog Prisustva" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "Navedi Prisustvo" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "Maksimalni iznos prihvatljiv za zahtjev" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "Maksimalni Iznos Beneficije" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "Maksimalni Iznos Beneficije (Godišnje)" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "Maksimalne Beneficije (Iznos)" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "Maksimalne Beneficije (Godišnje)" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "Maksimalni Izuzeti Iznos" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "Maksimalni Izuzeti Iznos ne može biti veći od maksimalnog iznosa izuzeća {0} Kategorije Izuzeća od Poreza {1}" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "Minmalni Oporezivi Prihod" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "Maksimalno radno vrijeme prema Radnom Listu" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "Maksimalni Iznos Pogodnosti" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "Maksimalni Broj Proslijeđenog Odsustva" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "Maksimalno Dozvoljeno Uzastopno Odsustvo" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "Maksimalan Broj Uzastopnog Odsustva je prekoračen" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "Maksimalan Broj Naplativog Odsustva" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "Maksimalni Izuzeti Iznos" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "Maksimalni Izuzeti Iznos" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "Maksimalna Dodjela Odsustva po Periodu Odsustva" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "Maksimalni broj dopuštenih prekovremeni sati" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "Maksimalan broj prekovremenih sati dopuštenih dnevno" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "Maksimalni godišnji oporezivi dohodak koji ispunjava uvjete za potpuno porezno oslobođenje. Porez se ne primjenjuje ako dohodak ne prelazi ovu granicu" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "Maksimalno Naplativo Odsustvo za {0} je {1}" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "Maksimalno dozvoljeno odsustvo za tip odsustva {0} je {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "Maj" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "Preferenca Obroka" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "Zdravstvo" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "Kilometraža" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "Minmalni Oporezivi Prihod" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "Minimalni broj godina za Nagradu" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "Minimalni broj radnih dana obaveznih od datuma pridruživanja da biste mogli da zatražite ovo odsustvo" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "Nedostaje Račun Predujma" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "Nedostaje Obavezno Polje" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "Nedostaju Početni Unosi" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "Nedostaje Datum Otkaza" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "Nedostaju Komponente Plaće" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "Nedostaje Porezna Tabela" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "Način Putovanja" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "Način plaćanja je obavezan za plaćanje" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "Mjesec do Danas" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "Mjesec do Danas (Valuta Tvrtke)" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "Mjesečna Lista Prisustva" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "Više od jednog odabira za {0} nije dozvoljeno" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "Višestruke Dodatne Plate sa svojstvom prepisivanja postoje za Komponentu Plate {0} između {1} i {2}." + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "Dodjela Više Smjena" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "Množitelji koji prilagođavaju iznos prekovremenog rada po satu za određene scenarije\n\n" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "Moji Predujmovi" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "Moja Potraživanja" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "Moje Odsustvo" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "Moji Zahtjevi" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "Greška Imena" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "Ime Organizatora" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "Neto Plata" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "Neto Plata (Valuta Tvrtke)" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "Neto Plata" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "Neto Plata ne može biti manja od 0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "Iznos Neto Plate" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "Neto Plata ne može biti negativna" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "Novi ID Personala" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "Novi Artikal Troška" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "Novi PDV Artikla" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "Nova Povratna Informacija" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "Novi Zaposlenici (Ovaj Mjesec)" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "Novo Odsustvo Dodijeljeno" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "Novo Dodijeljeno Odsustvo" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "Novo Dodijeljeno Odsustvo (u danima)" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "Nove dodjele smjene biti će kreirane nakon ovog datuma." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "Nije pronađen Bankovni/Gotovinski račun za valutu {0}. Molimo vas da ga kreirate pod tvrtkom {1}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "Personal nije Pronađen" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "Nije pronađen personal za datu vrijednost polja '{}': {}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "Nema odabranog Personala" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "Intervju nije zakazan." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "Nije pronađen Period Odsustva" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "Nema dodijeljenih odsustva za: {0} za Tip Odsustva: {1}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "Nije pronađena Platna Lista za: {0}" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "Nisu pronađene platne liste s {0} za {1} za obračunsko razdoblje {2}." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "Nije pronađen raspored strukture plaća za {0} na dan {1}" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "Nije pronađena Dodjela Strukture Plate za {0} na ili prije {1}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "Nema dodjeljene Strukture Plate personalu {0} na dati datum {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "Nema Strukture Plata" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "Nije Odabran Zahtjev za Smjenu" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "Planovi Zapošljavanja nisu pronađeni za ovu poziciju" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "Nije pronađena aktivna dodjela strukture plaća za {0} sa strukturom plaće {1} na ili nakon datuma početka zaostalih plaćanja {2}" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "Nije pronađen aktivni personal povezan s ID-om e-pošte {0}. Pokušaj se prijaviti sa svojim ID-om e-pošte ili se obratite svom personalnom upravitelju za pristup." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "Nije pronađena aktivna ili standard struktura plata za personal {0} za date datume" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "Nisu dodani dodatni troškovi" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "Nema predujma" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "Nije pronađena primjenjiva Komponenta Zarade u posljednjoj platnoj listi za Pravilo Nagrađivanja: {0}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "Nisu pronađene primjenjive Komponente Zarade za Pravilo Nagrađivanja: {0}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "Nije pronađena primjenjiva tabela za obračun iznosa nagrade prema Pravilu Nagrađivanja: {0}" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "U postojećim platnim listama nisu pronađene komponente zaostalih plaćanja." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "U platnoj listi nisu pronađene komponente zaostalih plaćanja. Provjerite je li označena komponenta zaostalih plaćanja u postavkama Komponenta plaće." + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "Nisu pronađeni detalji o zaostalim plaćanjima" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "Nisu pronađeni zapisi o prisutnosti za {0} između {1} i {2}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "Nije pronađen zapisnik o Prisutnosti za ovaj kriterij." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "Nije pronađen zapis Prisutnosti." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "Nema zapisa o prisutnosti za stvaranje" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "Nisu pronađene promjene u terminima." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "Nije pronađen personal" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "Nije pronađen personal za navedene kriterije:
    Tvrtka: {0}
    Valuta: {1}
    Račun Isplate Plaća: {2}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "Personal nije pronađen za odabrane kriterije" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "Personal nije pronađen sa odabranim filterima i aktivnom strukturom plate" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "Nema dodanih troškova" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "Još uvijek nije primljena povratna informacija" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "Nisu odabrani Artikli" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "Nije pronađena raspodjela odsustva za {0} za {1} na zadani datum." + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "Nije pronađen yapisnik Odsustva za personal {0} na {1}" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "Nema dodijeljenog odsustva." + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "Nema Više Ažuriranja" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "Broj Pozicija" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "Nema odgovora od" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "Nije pronađen platni list za podnošenje za gore odabrane kriterije ILI je platni list već podnešen" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "Nisu pronađene platne liste" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "Nisu pronađene platne liste za navedenog od {0}" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "Nisu dodani porezi" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "Nije pronađena važeća smjena za zapisnik vrijemena" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "Nije Odabrano {0}" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "Nije dodano {0}" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "Nemliječni" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "Neoporezive Zarade" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "Nefakturisani Sati" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "Nefakturisani Sati (NB)" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "Nenaplativo Odsustvo" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "Nevegetarijanski" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "Napomena: Smjena neće biti prepisana u postojećem zapisu prisutnosti" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "Napomena: Ukupan broj dodijeljenog odsustva {0} ne bi trebao biti manji od već odobrenog odsustva {1} za period" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "Napomena: Vaš platni list je zaštićen lozinkom, lozinka za otključavanje PDF-a je formata {0}." + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "Ništa za promijeniti" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "Period Obaveštenja" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "Predložak Obaveštenja" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "Obavijesti korisnike putem e-pošte" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "Stu" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "Broj Personala" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "Broj Pozicija" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "Broj Dopusta" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "Broj Ciklusa Zadržavanja" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "Broj odsustva koji ispunjavaju uslove za naplatu na osnovu postavki tipa odsustva" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "OTP Kod" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "OTP Verifikacija" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "ODJAVA" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "Postignuta Prosječna Ocjena" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "Okt" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "Očitavanje Odometra" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "Vrijednost Odometra" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "Izvan Smjene" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "Izvan Smjene" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "Uslov Ponude" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "Uslovi Ponude" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "Na Datum" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "Na Poslu" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "Na Odsustvu" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "Introdukcija" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "Aktivnosti Introdukcije" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "Introdukcija Počinje" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "Samo Odobravatelji mogu odobriti ovaj zahtjev." + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "Samo popunjeni dokumenti mogu se podnijeti" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "Samo žalba personala sa statusom {0} ili {1} mogu se podnijeti" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "Samo Intervjueru je dozvoljeno da podnesu Povratne Informacije Intervjua" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "Samo Intervjui sa statusom \"Obrađen\" ili \"Odbijen\" mogu se podnijeti." + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "Samo Zahtjevi Odsustva sa statusom \"Odobren\" i \"Odbijen\" mogu se podnijeti" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "Samo Zahtjev Smjene sa statusom \"Odobren\" i \"Odbijen\" može se podnijeti" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "Samo dodjela koja je istekla može se otkazati" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "Samo Intervjuer može podnijeti povratne informacije" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "Samo korisnici sa ulogom {0} mogu kreirati yahtjeve za odsustvo sa zastarjelim datumom" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "Samo {0} ciljevi mogu biti {1}" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "Otvoren & Odobren" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "Otvori Povratne Informacije" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "Otvori sad" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "Ponuda Radnog Mjesta Zatvorena." + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "Izborna Lista Praznika nije postavljena za period odsustva {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "Neobavezno odsustvo su praznici koje personal može izabrati sa liste praznika koju objavljuje kompanija." + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "Organizacijski Dijagram" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "Ostali Porezi i Naknade" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "Ostalo" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "Vrijeme Ističe" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "Odlazna Plata" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "Prekomjerna Dodjela" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "Ukupna Prosječna Ocjena" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "Preklapajući Zahtjev za Prisustvo" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "Preklapajuće Prisustvo Smjene" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "Preklapajući Zahtjevi za Smjenu" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "Preklapanje Smjena" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "Prekovremeni Rad" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "Obračun Iznosa Prekovremenog Rada" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "Detalji Prekovremenog Rada" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "Trajanje Prekovremenog Rada" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "Trajanje prekovremenog rada za {0} je veće od maksimalno dopuštenog broja prekovremenih sati" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "Komponenta plaće za prekovremeni rad" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "Lista Prekovremenog Rada" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "Pogreška u izradi Liste Prekovremenog Rada za {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "Izrada Liste Prekovremenog Rada nije uspjela" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "Koraci Liste Prekovremenog Rada" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "Pogreška pri podnošenju Liste Prekovremenog Rada za {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "Podnošenje Liste Prekovremenog Rada nije uspjelo" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "Lista Prekovremenog Rada podnešena" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "Lista Prekovremenog Rada izrađena je za {0}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "Izrada Liste Prekovremenog Rada je u redu čekanja. Može potrajati nekoliko minuta" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "Podnošenje Liste Prekovremenog Rada je u redu čekanja. Može potrajati nekoliko minuta" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "Lista Prekovremenog Rada:{0} je izrađena između {1} i {2}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "Liste Prekovremenog Rada izrađene" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "Liste Prekovremenog Rada podnesene za {0}" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "Tip Prekovremenog Rada" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "Zarada od prekovremenog rada bit će knjižena pod ovu komponentu plaće za isplatu." + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "Prepiši Iznos Strukture Plate" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "PAN Broj" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "Račun Penzionskog Fonda" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "Iznos Penzionskog Fonda" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "Kredit Penzionskog Fonda" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "Obavještenje Progresivne Web Aplikacije" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "Plaćeno preko Platnog Lista" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "Nadređeni Cilj" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "Honorarno" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "Djelomično Sponzorirano, Zahtijeva Djelimično Finansiranje" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "Djelomično Potraživan i Vraćeno" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "Pravila Lozinke" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "Pravila Lozinke ne može sadržavati razmake ili istovremene crtice. Format će se automatski restrukturirati" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "Pravilo lozinke za Platni List nije postavljeno" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "Multiplikatori Plaća" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "Plati putem Unosa Plaćanja" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "Plaćanje putem Platne Liste" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "Račun Isplate je obavezan za podnošenje Zahtjeva za Trošak" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "Račun za plaćanje je obavezan" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "Datum Plaćanja" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "Plaćeni Dani" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "Pomoć pri Obračunu Plaćenih Dana" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "Ovisi o Danima Plaćanja" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "Obračun Plaćenih Dana su zasnovani na ovim Postavkama Obračuna Plata" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "Plaćanje i Knjigovodstvo" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "Plaćanje {0} od {1} do {2}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "Isplata" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "Način Isplate" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "Isplati neisplaćeni iznos u završnom ciklusu obračuna plaća" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "Obračun Plata" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "Obračun Plata na osnovu" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "Ispravak Plaće" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "Podređeni Ispravak Plaće" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "Centar Troškova Obračuna Plata" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "Centri Troškova Obračuna Plata" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "Nadzorna Ploča Obračuna Plate" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "Datum Obračuna Plate" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "Detalj Obračuna Plata" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "Otkazivanje Unosa Obračuna Plata je na čekanju. Može potrajati nekoliko minuta" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "Učestalost Obračuna Plata" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "Obračun Plata" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "Broj Obračuna Plata" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "Račun Uplate Obračuna Plata" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "Period Obračuna Plata" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "Datum Perioda Obračuna Plata" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "Periodi Obračuna Plata" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "Izvještaji Obračuna Plata" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "Postavke Obračuna Plata" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "Datum Obračuna Plate ne može biti kasnije od datuma razrješenja personala." + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "Datum Obračuna Plate ne može biti prije od datuma zapošljenja personala." + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "Datum obračuna plaća ne može biti u prošlosti. To je kako bi se osiguralo da se zahtjevi podnose za tekući ili buduće cikluse obračuna plaća." + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "Na čekanju (neplaćeni) iznos iz prethodnih predujmova" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "Povrat Imovine na Čekanju" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "Konačni Dogovor u toku" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "Intervjui na Čekanju" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "Upitnici na Čekanju" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "Postotak Odbitka" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "Efektivitet" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "Trajno otkaži {0}" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "Trajno potvrdi {0}" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "Akord" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "Planirani broj Pozicija" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "Omogući Automatsko Prisustvo i prvo dovršite podešavanje." + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "Odaberi Tvrtku" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "Dodijeli Strukturu Plata za {0} primjenjivu od ili prije {1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "Provjeri je li osoblje na dopustu ili postoji li prisustvo s istim statusom za odabrane dane." + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "Potvrdi nakon što završite obuku" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "Kreiraj novo {0} za datum {1}." + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "Iizbriši {0} da poništite ovaj dokument" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "Omogući standard dolazni račun prije stvaranja Grupe Dnevnih Radnih Sažetaka" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "Unesi Poziciju" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "Ispuni podatke za zaposlenike, datum registracije i tvrtku prije preuzimanja podataka o prekovremenom radu." + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "Smanji {0} kako biste izbjegli preklapanje vremena smjene sa samom sobom" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "Pogledaj Prilog" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "Odaberi Tvrtku i Poziciju" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "Navedi Personal" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "Navedi Personal" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "Odaberi Filtriraj na temelju" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "Odaberi Od Datuma i Učestalosti Obračuna Plata" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "Odaberi Od Datuma." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "Odaberi Raspored Smjena i datum(e) dodjele." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "Odaberi Tip Smjene i datum(e) dodjele." + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "Odaberi Tvrtku" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "Odaberi Tvrtku." + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "Odaberi csv datoteku" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "Odaberi Datum." + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "Odaberi Kandidata" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "Odaberi barem jedan Zahtjev Smjene da izvršite ovu radnju." + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "Navedi najmanje jedno iz personala da izvršite ovu radnju." + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "Odaberi barem jedan red da izvršite ovu radnju." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "Odaberi Tvrtku." + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "Navedi Personal" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "Navedi Personal za koje ćete izraditi procjenjivanje" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "Odaberi status Poludnevnog Prisustva." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "Odaberi mjesec i godinu." + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "Odaberi Ciklus Ocjenjivanja." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "Odaberi Status Prisutnosti." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "Navedi Personal za koji želite da navedete prisustvo." + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "Odaberi platne liste za slanje e-poštom" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "Postavi \"Zadani račun za isplatu plaća\" u Postavkama Tvrtke" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "Postavi Osnovnu i Najamnu komponentu u Tvrtki {0}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "Postavi komponentu Zarade za Tip Odsustva: {0}." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "Postavi Obračun Plata na osnovu Postavki Obračuna Plata" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "Postavi Datum Otkaza za: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "Postavi raspon datuma kraći od 90 dana." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "Postavi Račun u Komponenti Plate {0}" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "Postavi standard predložak Obavijesti Odobrenju Odsustva u Postavkama Personala." + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "Postavi standard predložak Obavijesti Statusa Odsustva u Postavkama Personala." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "Postavi Predložak Ocjenjivanja za sve {0} ili odaberi predložak u tabeli Personala ispod." + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "Postavi Tvrtku" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "Postavi Datum zapošljavanja za {0}" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "Postavi Listu Praznika." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "Postavi raspon datuma." + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "Postavi datum otkaza za {0}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "Postavi {0} i {1} u {2}." + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "Postavi {0} za Personal {1}" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "Postavi {0} za Personal {1}" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "Postavi {0}." + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "Podesi Sistem Imenovanja Personala u Personal > Postavke Personala" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "Postavi Seriju Numeracije Prisustva putem Podešavanja > Serija Numerisanja" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "Podijeli Povratne Informacije obuke klikom na 'Povratne Informacije Obukei', a zatim 'Novo'" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "Navedi kandidata za posao kojeg treba ažurirati." + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "Navedi {0} i {1} (ako ih ima), za tačan obračun poreza u budućim platnim listovima." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "Podnesi {0} prije nego što navedeš ciklus kao Završen" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "Ažurirajte svoj status za ovaj događaj obuke" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "Objavljeno" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "Datum Knjiženja" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "Preferirano područje za smještaj" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "Prisutan" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "Trenutni Zapisi" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "Spriječite samoodobrenje za zahtjeve za troškove čak i ako korisnik ima dopuštenja" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "Spriječi samoodobrenje za odsustvo čak i ako korisnik ima dozvole" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "Pregled Platnog Lista" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "Glavni Iznos" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "Ispisano {0}" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "Privilegirano Odsustvo" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "Probacija" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "Probni Period" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "Obradi Prisustvo Nakon" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "Obradi Unos Obračuna Plata osnovu osoblja" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "Obradi Zahtjeve" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "Obradi Zahtjeva za Smjenu" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "Obradi naplatu odsustva putem posebnog Unosa Plaćanja umjesto Platnog Lista" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "Obradi {0} zahtjev(e) za Smjenu kao {1}?" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "Obrada Zahtjeva u toku" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "Obrada Zahtjeva u toku..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "Obrada Zahtjeva za Smjenu je stavljena u red za čekanja. Može potrajati nekoliko minuta." + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "Profesionalni Porezni Odbici" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "Stručnost" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "Dobit" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "Profitabilnost Projekta" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "Unaprijeđenje" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "Datum Unaprijeđenja" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "Svojstvo je već dodano" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "Odbici Fonda Osiguranja" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "Množitelj Državnih Praznika" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "Objavi Primljene Zahtjeve" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "Objavi Raspon Plate" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "Objavi na Web Stranici" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "Namjena & Iznos" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "Razlog Putovanja" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "Odbijena dozvola Guranog Obavještenja" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "Gurana obavještenja su onemogućena" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "Gurana obavještenja su onemogućena na vašoj Web Stranici" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "E-pošta Upitnika poslana" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "Brzi Filteri" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "Brze Veze" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "Radijus unutar kojeg je dozvoljena prijava (u metrima)" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "Ocijeni Ciljeve Ručno" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "Kriterijumi Ocjenjivanja" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "Ocjene" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "Ponovno Dodijeli Odsustvo" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "Razlog Prilagodbe" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "Razlog za Upit" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "Razlog za Zadržavanje Plate" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "Razlog za preskakanje Automatskog Prisustva:" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "Nedavni Zahtjevi za Prisustvom" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "Nedavni Troškovi" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "Nedavno Odsustvo" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "Nedavni Zahtjevi za Smjenu" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "Preporučeno za jedan biometrijski uređaj / prijave putem mobilne aplikacije" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "Povrat Troška" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "Zapošljavanje" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "Analiza Zapošljavanja" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "Smanji" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "Smanjenje maksimalnog dopuštenog broja dopusta nakon dodjele može uzrokovati da planer dodijeli netočan broj zarađenih dopusta. Budite oprezni." + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "Smanjenje je veće od {0} dostupnog stanja dopusta {1} za vrstu dopusta {2}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "Referenca: {0}" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "Status Plaćanja Bonusa za Preporuke" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "Detalji Preporuke" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "Detalji Upućivača" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "Ime Upućivača" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "Promišljanja" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "Detalji Punjenja" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "Odbij" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "Odbij Preporuku" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "Odbijanje" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "Pusti Zadržane Plate" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "Oslobođena" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "Datum Otkaza " + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "Nedostaje Datum Otkaza" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "Preostale Beneficije (Godišnje)" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "Podsjeti Prije" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "Podsjetio" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "Podsjetnici" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "Ukloni ako je nulta vrijednost" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "Iznajmljeni Automobil" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "Otplati od Plate" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "Otplati od Plate može se odabrati samo za oročene kredite" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "Otplati Nezatraženi Iznos iz Plate" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "Ponovi na Dane" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "Odgovori" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "Izvještava" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "Zatraži Prisustvo" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "Zatraži Odsustvo" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "Zatraži Odsustvo" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "Zatraži Smjenu" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "Zatraži Predujam" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "Zatraženo od" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "Zatraženo od (Ime)" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "Zahtijeva Potpuno Finansiranje" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "Potrebne Vještine" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "Obavezno pri kreiranju Personala" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "Odgodi Intervju" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "Odgovornosti" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "Ograniči Zahtjev za Odsustvo sa zastarjelim datumom" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "Rezume Prilog" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "Rezume Veza" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "Rezume Veza" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "Zadržan" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "Bonus Zadržavanja" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "Dob za Penzionisanje (u Godinama)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "Ponovni pokušaj nije uspio" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "Ponovni pokušaj Neuspjelih Dodjela" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "Ponovni Pokušaj Uspješan" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "Ponovni pokušaj dodjela" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "Iznos povrata ne može biti veći od nezatraženog iznosa" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "Pregledajte razne druge postavke u vezi s odsustvom personala i potraživanjem troškova" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "Recenzent" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "Ime Recenzenta" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "Revidirana Godisnja Plata" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "Uloga kojoj je dopušteno pravljenje Zahtjeva za Odsustvo sa zastarjelim datumom" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "Raspored" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "Boje Rasporeda" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "Naziv Runde" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "Zaokruži Radno Iskustvo" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "Zaokružiti na Najbliži Cijeli Broj" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "Zaokruživanje" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "Usmjeri na prilagođenu Web Formu Zahtjeva za Posao" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "Red #{0}: Nije moguće postaviti iznos ili formulu za Komponentu Plate {1} sa varijablom na osnovu Oporezive Plate" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "Red #{0}: Komponenta {1} ima omogućene opcije {2} i {3}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "Red #{0}: Iznos Radnog Lista će prepisati Iznos Komponente Zarade za Komponentu Plate {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "Red Broj {0}: Iznos ne može biti veći od Nepodmirenog iznosa prema Potraživanju Troškova {1}. Nepodmireni iznos je {2}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "Red {0}# Dodijeljeni iznos {1} ne može biti veći od nezatraženog iznosa {2}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "Red {0}# Plaćeni Iznos ne može biti veći od Iznosa Naplate" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "Red {0}# Uplaćeni iznos ne može biti veći od Ukupnog Iznosa" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "Red {0}# Uplaćeni iznos ne može biti veći od traženog iznosa predujma" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "Red {0}: Od (Godina) ne može biti kasnije od Do (Godina)" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "Red {0}: Rezultat cilja ne može biti veći od {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "Red {0}: Uplaćeni iznos {1} je veći od nagomilanog iznosa na čekanju {2} naspram kredita {3}" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "Red {0}: {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "Red {0}: {1} je obavezan u tabeli troškova za knjiženje potraživanja troška." + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "Komponenta Plate" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "Komponenta Plate " + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "Račun Komponente Plate" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "Na temelju komponente plaće" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "Tip Komponente Plate" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "Komponenta Plate za Obračun Plate na osnovu Radnog Lista." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "Komponenta plaće {0} ne može se odabrati više od jednom u Pogodnostima" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "Komponenta Plate {0} se trenutno ne koristi ni u jednoj Strukturi Plate." + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "Komponenta plaće {0} mora biti tipa 'Zarada' da bi se koristila u Registru Pogodnosti" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "Detalj Plate" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "Detalji Plate" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "Očekivana Plata" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "Informacije Plate" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "Raspon Plate" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "Isplate Plate na osnovu Načina Plaćanja" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "Isplate Plate putem ECS-a" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "Raspon Plate" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "Platni Registar" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "Platna Lista" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "Platna Lista na osnovu Radnog Lista" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "ID Platne Liste" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "Odsustvo Platne Liste" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "Kredit Platne Liste" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "Referenca Platne Liste" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "Radna Lista Platne Liste" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "Platni List već postoji za {0} za date datume" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "Kreiranje Platnog Lista je u redu čekanja. Može potrajati nekoliko minuta" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "Platna Lista nije pronađena." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "Platni List {0} je već kreiran za ovaj period" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "Platni List {0} je već kreiran za radni list {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "Potvrda Platnog Lista je u redu čekanja. Može potrajati nekoliko minuta" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "Platni List {0} nije uspio za Unos Platnog Spiska {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "Platni List {0} nije uspio. Možete riješiti {1} i ponovo pokušati {0}." + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "Platni Listovi" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "Platni Listovi kreirani" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "Platni Listovi Potvrđeni" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "Platni Listovi već postoje za {} i neće ih obrađivati ovaj Obračun Plata." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "Platne Liste potvrđene za period od {0} do {1}" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "Struktura Plate" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "Dodjela Strukture Plata" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "Polje Dodjele Strukture Plate" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "Struktura Plate za Personal već postoji" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "Dodjeljivanje strukture plaća nije pronađeno za {0} na datum {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "Nedostaje Struktura Plate" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "Struktura Plate mora biti dostavljena prije podnošenja {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "Struktura plaća nije dodijeljena {0} za datum {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "Struktura Plate {0} ne pripada tvrtki {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "Uspješno ažurirane Strukture Plata" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "Zadržavanje Plate" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "Ciklus Zadržavanja Plate" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "Zadržavanje Plate {0} već postoji za personal {1} za odabrani period" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "Plata je već obrađena za period između {0} i {1}, period prijave za odsustvo ne može biti između ovog raspona datuma." + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "Raspodjela Plate na osnovu Zarade i Odbitka." + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "Komponente plaće tipa Provident fond, Dodatni Provident fond ili Zajam Provident fonda nisu postavljene." + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "Komponente Plate trebaju biti dio Strukture Plate." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "Slanje Platnih Listi e-poštom stavljeni su u red za slanje. Provjerite {0} za status." + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "Sankcionisani Iznos" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "Sankcionirani Iznos (Valuta Tvrtke)" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "Sankcionisani Iznos ne može biti veći od iznosa potraživanja u redu {0}." + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "Planirano" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "Zaređeni Rezultat" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "Rezultat mora biti manji ili jednak 5" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "Rezultati" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "Traži Poslove" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "Odaberite primjenjive komponente za vrstu prekovremenog rada" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "Odaberi Rundu Intervjua" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "Odaberi Intervju" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "Odaberite mjesec za poništavanje neplačenog odsustva" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "Odaberi Račun Isplate Plate da izvršite Bankovni Unos" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "Odaberi Učestalost Obračuna Plata." + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "Odaberi Period Obračuna Plata" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "Odaberi Svojstva" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "Odaberi Zahtjeve Smjene" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "Odaberi Uslove i Odredbe" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "Odaberi Korisnike" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "Navedi Personal za koji preuzmete stanje predujma." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "Navedi Personal kojem želite dodijeliti odsustvo." + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "Odaberi Personal." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "Odaberi Tip Odsustva kao što je Bolovanje, Povlašteno Odsustvo, Povremeno Odsustvo, itd." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "Odaberit datum nakon kojeg će ova Dodjela Odsustva isteći." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "Odaberi datum od kojeg će ova Dodjela Odsustva biti važeća." + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "Odaberi krajnji datum za vaš Zahtjev Odsustva." + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "Odaberite komponente plaće čiji će se zbroj koristiti s platne liste za izračun satnice prekovremenog rada." + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "Odaberi datum početka vašeg Zahtjeva Odsustva." + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "Odaberi ovo ako želite da se dodjele smjena automatski kreiraju na neodređeno vrijeme." + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "Odaberi tip odsustva za koju se personal želi prijaviti, kao što je Bolovanje, Povlašteno Odsustvo, Povremeno Odsustvo, itd." + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "Odaberi svog odobravatelja odsustva, tj. osobu koja odobrava ili odbija vaša odsustva." + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "Samoprocjenjivanje" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "Samoprocjenjivanje na čekanju: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "Rezultat Samoocjenjivanja" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "Samorezultat" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "Samoučenje" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "Samoodobrenje zahtjeva za naknadu troškova nije dopušteno" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "Samoodobrenje za odsustvo nije dozvoljeno" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "Seminar" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "Pošalji e-poštu u" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "Pošalji Otkazni Upitnik" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "Pošaljite Otkazne Upitnike" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "Poåalji Povratne Informacije Intervjua" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "Poåalji Intervju Podsjetnik" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "Pošalji Obavještenje Odsustva" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "Kopija Pošiljatelja" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "Slanje nije uspjelo zbog nedostajućih informacija e-pošte za personal: {1}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "Uspješno poslan: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "Ruj" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "Aktivnosti Razdvajanja" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "Razdvajanje počinje" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "Servisni Detalji" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "Servisni Trošak" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "Postavi \"Od(Godina)\" i \"Do(Godina)\" na 0 bez gornje i donje granice." + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "Postavi Detalje Dodjele" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "Postavi Detalje Odsustva" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "Postavi Otkazni Datum za personal: {0}" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "Postavi filtere za preuzimanje osoblja" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "Postavite početna stanja za zarade i poreze od prethodnog poslodavca" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "Postavite opcije filtera da biste preuzelii osoblje sa listr ocjenjivača" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "Postavi standard nalog za {0} {1}" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "Postavi učestalost podsjetnika za praznike" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "Postavi svojstva koja bi trebala biti ažurirana u Postavkama Osoblja pri podnošenju unaprijeđnja" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "Postavi status na {0} ako je obavezno." + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "Postavi {0} za odabrani personal" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "Nedostaju Postavke" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "Izmiri naspram Predujma" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "Izmiri sve Obaveze i Potraživanja prije podnošenja" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "Dokument je podijeljen s korisnikom {0} s dozvolom 'Podnesi'" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Smjena & Prisustvo" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "Stvarni Kraj Smjene" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "Vrijeme Stvarnog Kraja Smjene" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "Stvarni Početak Smjene" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "Vrijeme Stvarnog Početka Smjene" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "Dodjela Smjene" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "Detalji Dodjele Smjene" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "Istorija Dodjele Smjene" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "Alat Dodjele Smjene" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "Dodjela Smjene: {0} kreirana za personal: {1}" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "Dodjele smjena stvorene za raspored između {0} i {1} putem pozadinskog zadatka" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "Prisustvo Smjene" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "Detalji Smjene" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "Kraj Smjene" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "Vrijeme Kraja Smjene" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "Lokacija Smjene" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "Zahtjev za Smjenu" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "Odobravač Zahtjeva Smjene" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "Filteri Zahtjeva Smjene" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "Zahtjevi Smjene koji završavaju prije ovog datuma bit će isključeni." + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "Zahtjevi Smjene koji počinju nakon ovog datuma bit će isključeni." + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "Raspored Smjene" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "Dodjela Rasporeda Smjene" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "Postavke Smjene" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "Početak Smjene" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "Vrijeme Početka Smjene" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "Status Smjene" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "Vremena Smjene" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "Alat Smjene" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "Tip Smjene" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "Dodjele smjena za {0} nakon {1} su već su izrađene. Molimo promijenite datum {2} u datum kasniji od {3} {4}" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "Smjena je uspješno ažurirana na {0}." + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Smjene" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "Prikaži Personal" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "Prikaži Stanje Odsustva u Platnom Listu" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "Prikaži odsustvo svih Članova Odjela u Kalendaru" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "Prikaži Platni List" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "Trenutno se prikazuje" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "Bolovanje" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "Pojedinačna Dodjela" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "Vještina" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "Procjena Vještine" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "Naziv Vještine" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "Vještine" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "Preskoči Automatsko Prisustvo" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "Preskače se Dodjela Strukture Plata za sljedeći personal, jer zapisi o Dodjeli Strukture Plata već postoji za njih. {0}" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "Izvor i Ocjena" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "Izvorna i Ciljna Smjena ne mogu biti iste" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "Sponzorirani Iznos" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "Detalji Zapošljavanja" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "Plan Zapošljavanja" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "Detalji Plana Zapošljavanja" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "Plan Zapošljavanja {0} već postoji za poziciju {1}" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "Standardni Množitelj" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "Standardni Iznos Izuzeća od Poreza" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "Standardno Radno Vrijeme" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "Datum početka i završetka nije u važećem obračunskom periodu, ne može se izračunati {0}." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "Datum početka ne može biti kasnije od datuma završetka" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "Datum početka ne može biti kasnije od datuma završetka." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "Datum Početka: {0}" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "Vrijeme početka i vrijeme završetka ne može biti isto." + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "Statistička Komponenta" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "Status za drugu polovicu" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "Opcije Zaliha" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "Zaustavite korisnike da podnose Zahtjeve Odsustva za sljedeće dane." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "Strogo zasnovano na Tipu Zapisnika Prijave Personala" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "Strukture su uspješno dodijeljene" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "Datum Podnošenja" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "Podnošenje nije uspjelo" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "Podnošenje {0} prije {1} nije dozvoljeno" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "Podnesi Povratne Informacije" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "Podnesi Sad" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "Podnesi Liste Prekovremenog Rada" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "Podnesi Dokaz" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "Pošalji Platni List" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "Podnesi ovaj Zahtjev Odustva da potvrdite." + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "Podnesi ovo da kreirate Personalni zapis" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "Podnešeno putem Unosa Platne Liste" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "Podnose se Platni Listovi i kreiraju Nalozi Knjiženja..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "Podnošenje Platnih Listova u toku..." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "Podružnice su već planirale {1} slobodnih radnih mjesta sa budžetom od {2}. Plan Zapošljavanja za {0} trebao bi izdvojiti više slobodnih radnih mjesta i budžeta za {3} nego što je planirano za podružnice" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "Uspješno kreirano {0} za personal:" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "Uspješno {0} {1} za sljedeći personal:" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "Suma svih prethodnih tabela" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "Zbroj iznosa pogodnosti {0} prelazi maksimalnu granicu od {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "Sažeti Prikaz" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "Sinhronizuj {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "Sintaksička greška" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "Sintaktička greška u stanju: {0} u tabeli poreza na platu" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "Uzmite Tačno Završene Godine" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "Porez & Beneficije" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "Odbijen Porez do Datuma" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "Kategorija Izuzeća od Poreza" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "Deklaracija Izuzeća od Poreza" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "Dokaz Izuzeća od Poreza" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "Poreska Postavka" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "Porez na Dodatnu Platu" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "Porez na Fleksibilne Beneficije" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "Oporeziva Zarada do Datuma" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "Prag Oporezivog Dohotka" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "Tabela Oporezivanja Plate" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "Tabele Oporezivanja Plate" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "Porezi & Naknade" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "Porezi i Naknade Poreza na Plate" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "Taksi" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "Timski Predujmovi" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "Timska Potraživanja" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "Tim Odsustvo" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "Timski Zahtjevi" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "Timska Ažuriranja" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "Zapošljenje" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "Hvala na prijavi." + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "Valuta {0} treba da bude ista kao i standard valuta tvrtke. Odaberi drugi račun." + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "Datum na koji će Komponenta Plate sa iznosom doprinijeti Zaradi/Odbitku u Platnom Listu. " + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "Dan u mjesecu kada treba dodijeliti odsustvo" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "Dan(i) za koji podnosite Zahtjev za Odsustvo su praznici. Ne treba da podnosiš zahtjev za odsustvo." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "Dani između {0} i {1} nisu važeći praznici." + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "Prvi Odobravljač na listi biće postavljen kao standard Odobravljač." + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "Dio Dnevne Plate po Odsustvu treba da bude između 0 i 1" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "Dio dnevnice koji se plaća za poludnevno prisustvo" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "Parametri za ovaj izvještaj se izračunava na osnovu {0}. Postavi {0} u {1}." + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "Parametri za ovaj izvještaj se izračunava na osnovu {0}. Postavi {0} u {1}." + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "Platni List poslat personalu e-poštom će biti zaštićen lozinkom, lozinka će biti generirana na osnovu politike lozinke." + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "Vrijeme nakon početka smjene kada se prijava smatra za kasno (u minutama)." + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "Vrijeme prije završetka smjene kada se odjava smatra za rano (u minutama)." + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "Vrijeme prije početka smjene tokom kojeg se prijava personala smatra za prisustvo." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "Teorija" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "Ovaj mjesec ima više praznika nego radnih dana." + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "Nema razlika u zaostalim plaćama između postojećih i novih komponenti strukture plaća." + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "Nema slobodnih radnih mjesta prema planu zapošljavanja {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "Nije dodijeljena struktura plaća za {0}. Prvo dodijelite strukturu plaća." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "Nema personala sa Strukturom Plate: {0}. Dodijeli {1} da pregleda Platni List" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "Ovi dopusti su praznici koje dopušta tvrtka, međutim, njihovo korištenje je neobavezno za personal." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "Ova radnja će spriječiti unošenje promjena u povezane povratne informacije/ciljeve o ocjenjivanju." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "Ova prijava je van smjene i neće se uzeti u obzir za prisustvo. Ako je smijena dodijeljena, podesi smjenu i ponovo preuzmi." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "Ovo kompenzacijsko odsustvo će se primjenjivati od {0}." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "Personal već ima yapisnik sa istom vremenskom oznakom.{0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "Ova greška može biti posljedica nevažeće formule ili uvjeta." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "Ova greška može biti zbog nevažeće sintakse." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "Ova greška može biti zbog toga što polje nedostaje ili je izbrisano." + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "Ovo polje vam omogućava da postavite maksimalan broj uzastopnog odsustva za koje se personal može prijaviti." + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "Ovo polje vam omogućava da postavite maksimalan broj odsustva koji se godišnje može dodijeliti za ovaj tip odsustva dok kreirate Politiku Odsustva" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "Ovo se zasniva na prisustvu ovog personala" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "Ova je metoda namijenjena samo za razvojni način rada" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "Ovo će prepisati poresku komponentu {0} u platnoj listi i porez se neće obračunavati na osnovu Tabela Poreza na Platu" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "Ovo će podnijeti Platne Liste i kreirati obračunski Nalog Knjiženja. Da li želite da nastavite?" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "Vrijeme nakon završetka smjene tokom kojeg se odjava smatra za prisustvo." + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "Vrijeme potrebno za popunjavanje otvorenih pozicija" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "Vremenski Raspon" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "Vremenske Linije" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "Detalji Vremenske Liste" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "Vrijeme" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "Do Iznosa" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "Do datuma treba biti kasnije od datuma" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "Za Korisnika" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "Da biste to omogućili, omogućite {0} pod {1}." + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "Da biste se zatražili odsustvo za pola dana, navedi 'Pola Dana' i odaberi datum za Pola Dana" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "Do datuma ne može biti jednako ili prije od datuma" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "Do datuma ne može biti kasnije od datuma otkaza personala." + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "Do datuma ne može biti prije od datuma" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "Do datuma ne može biti duži od datuma razrješenja personala" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "Do datuma ne može biti prije od datuma" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "Da prepišete iznos komponente plate za poresku komponentu, omogućite {0}" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "Do (Godina)" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "Do(Godine) godina ne može biti prije od Od (Godine)" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "Danas je {0} rođendan 🎉" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "Danas {0} u našoj Tvrtki! 🎉" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "Danas {0} ispunjava {1} {2} u našoj tvrtki! 🎉" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "Ukupna Odsutnost" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "Ukupno Nagomilano" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "Ukupan Stvarni Iznos" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "Ukupan Iznos Predujma" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "Ukupni Iznos Predujma (Valuta Tvrtke)" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "Ukupno Dodijeljeno Odsustvo" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "Ukupno Dodijeljeno Odsustvo" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "Ukupan Nadoknađen Iznos" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "Ukupan Iznos ne može biti nula" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "Ukupni Trošak Povrata Imovine" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "Ukupan Iznos potraživanja" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "Ukupni Zatraženi Iznos (Valuta Tvrtke)" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "Ukupan broj neplačenih dana" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "Ukupan Deklarisani Iznos" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "Ukupni Odbitak" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "Ukupni Odbitak (Valuta Tvrtke)" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "Totalno Ranih Odjava" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "Ukupna Zarada" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "Ukupna Zarada" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "Ukupni Procijenjeni Budžet" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "Ukupna Procijenjena Cijena" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "Ukupni Tečajni Rezultat" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "Ukupan Izuzeti Iznos" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "Ukupno Potraživanje Troška (preko Potraživanja Troškova)" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "Ukupna Potraživanja Troškova (preko Potraživanja Troškova)" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "Ukupan Rezultat Cilja" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "Ukupna Bruto Plata" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "Ukupno Sati (T)" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "Ukupan Porez na Prihod" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "Ukupan Iznos Kamate" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "Ukupno Kasnih Prijava" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "Ukupan broj dana Odsustva" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "Ukupno Odsustvo" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "Ukupno Odsustvo ({0})" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "Ukupno Dodijeljeno Odsustvo" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "Ukupno Naplaćeno Odsustvo" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "Ukupna Otplata Kredita" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "Ukupna Neto Plata" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "Ukupnoj Nefakturisanih Sati" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "Ukupno trajanje prekovremenog rada" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "Ukupan Plaćeni Iznos" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "Ukupna Isplata" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "Ukupna Isplata" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "Ukupno Prisutno" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "Ukupan Iznos Glavnice" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "Ukupan Iznos Potraživanja" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "Ukupne Ostavke" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "Ukupni Sankcionisani Iznos" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "Ukupni Sankcionirani Iznos (Valuta Tvrtke)" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "Ukupni Rezultat" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "Ukupni Samorezultat" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "Ukupan iznos predujma ne može biti veći od ukupnog sankcionisanog iznosa" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "Ukupno dodijeljeno odsustvo je više od maksimalno dozvoljenog za {0} tip odsustva za {1} u periodu" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "Ukupan broj dodijeljenog odsustva {0} ne može biti manji od već odobrenog odsustva {1} za period" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "Ukupno Riječima" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "Ukupno Riječima (Valuta Tvrtke)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "Ukupno dodijeljeno odsustvo ne može premašiti godišnju dodjelu od {0}." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "Ukupan broj dodijeljenog odsustva je obavezan za vrstu odsustva {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "Zbroj svih pogodnosti ne može biti veći od maksimalnog iznosa pogodnosti {0}" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Ukupna plata uknjižena prema ovoj komponenti za navedeni personal od početka godine (obračunski period ili fiskalna godina) do datuma završetka tekućeg platnog lista." + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "Ukupna plata uknjižena za navedeni personal od početka mjeseca do datuma završetka tekućeg platnog lista." + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Ukupna plata uknjižena za navedeni personal od početka godine (obračunski period ili fiskalna godina) do datuma završetka tekućeg platnog lista." + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "Ukupna težina za sve {0} mora biti suma do 100. Trenutno je {1}%" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "Ukupno Radnih Dana u Godini" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "Ukupno radno vrijeme ne smije biti veće od maksimalnog radnog vremena {0}" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "Voz" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "E-pošta Obučitelja" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "Ime Obučitelja" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "Obuka" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "Datum Obuke" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "Događaj Obuke" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "Personal Događaja Obuke" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "Događaj Obuke:" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "Događaji Obuke" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "Povratna Informacija Obuke" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "Program Obuke" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "Rezultat Obuke" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "Personal Rezultat Obuke" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "Obuke" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "Obuka (Ovaj Tjedan)" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "Transakcije se ne mogu kreirati za neaktivan personal {0}." + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "Datum Transfera" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "Putovanja" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "Putni Predujam je Obavezan" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "Putovanje iz" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "Financiranje Putovanja" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "Plan Putovanja" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "Putovni Zahtjev" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "Obračun Troškova Putovanja" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "Putovanje u" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "Tip Putovanja" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "Tip Dokaza" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "Nije moguće preuzeti vašu lokaciju" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "Poništi Arhiviranje" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "Nezatražen Iznos" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "Nezatraženi Iznos (Valuta Tvrtke)" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "Pod Recenzijom" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "Prekini vezu plaćanja" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "Prekini vezu zapisa Prisustva sa prijavama personala: {}" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "Nepovezani Zapisi" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "Nenavedeno Prisustvo za dane" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "Pronađeni su Nenavedeni Zapisi Prijava" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "Neprijavljeni Dani" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "NeoznačenI Personal Zaglavlje" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "NeoznačenI Personal HTML" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "Neprijavljeni Dani" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "Neplaćeno Nagomilano" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "Neplaćeno Potraživanje Troška" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "Neizmireno" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "Neizmirene Transakcije" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "Nepodnešena Ocjenjivanja" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "Nepraćeni Sati" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "Nepraćeni Sati (U)" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "Neiskorišćeno Odsustvo" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "Nadolazeći Praznici" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "Podsjetnik Predstojećih Praznika" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "Nadolazeće Smjene" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "Ažuriraj Trošak" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "Ažuriraj Kandidata za Posao" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "Ažuriraj Napredak" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "Ažuriraj Odgovor" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "Ažurirajte Strukture Plata" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "Ažuriraj Status" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "Ažuriraj Porez" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "Ažuriran status sa {0} na {1} za datum {2} u zapisniku prisutnosti {3}" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "Ažuriran status Kandidata za Posao na {0}" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "Ažuriran status ponude za posao {0} za povezanog Kandidata za Posao {1} na {2}" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "Ažuriran status povezanog Kandidata za Posao {0} na {1}" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "Otpremi Prisustvo" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "HTML Otpreme" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "Otpremi slike ili dokumente" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "Otpremanje u toku..." + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "Viši Raspon" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "Iskorišteno Odsustvo(i)" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "Iskorišteno Odsustvo" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "Slobodna Radna Mjesta" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "Slobodna radna mjesta ne mogu biti manja od trenutnih slobodnih mjesta" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "Popunjena Radna Mjesta" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "Validiraj Prisustvo" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "Validiranje Prisustva Personala u toku..." + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "Vrijednost / Opis" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "Nedostaje Vrijednost" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "Varijabla" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "Varijabla zasnovana na Oporezivoj Plati" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "Vegetarijanac" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "Troškovi Vozila" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "Zapisnik Vozila" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "Servis Vozila" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "Servisni Artikal Vozila" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "Pokaži Ciljeve" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "Pokaži Istoriju Odsustva" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "Pregled Platnih Listi" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "Ljubičasta" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "UPOZORENJE: Modul Upravljanja Kreditom je odvojen od Sistema." + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "Upozorenje: Nedovoljno stanje odsustva za Tip Odsustva {0} u ovoj dodjeli." + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "Upozorenje: Nedovoljno stanje odsustva za Tip Odsustva {0}." + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "Upozorenje: Zahtjev Odsustva sadrži sljedeće blokirane datume" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "Upozorenje: {0} već ima aktivnu Dodjelu Smjene {1} za neke/sve ove datume." + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "Poredak Web Stranice" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "Vikend Množitelj" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "Težinski (%)" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "Kada je postavljeno na 'Neaktivno', personal s konfliktnim aktivnim smjenama neće biti isključeni." + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "Dok se dodjela za kompenzacijsko odsustvo automatski kreira ili ažurira po podnošenju zahtjeva za kompenzacijsko odsustvo." + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "Zašto je ovaj kandidat kvalifikovan za ovu poziciju?" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "Zadržana" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "Godišnjice Rada " + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "Podsjetnik Godišnjice Rada" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "Datum Završetka Rada" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "Metoda Obračuna Radnog Iskustva" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "Datum Početka Rada" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "Rad od Kuće" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "Iskustvo" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "Sažetak rada za {0}" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "Radio za Praznik" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "Radni Dani" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "Radni Dani i Sati" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "Obračun Radnog Vremena na osnovu" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "Prag Radnog Vremena za Odsutne" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "Prag Radnog Vremena za Pola Dana" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "Radno Vrijeme ispod kojeg je navedeno kao Odsutno. (Nula za onemogućavanje)" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "Radno Vrijeme ispod kojeg je navedeno Pola Dana. (Nula za onemogućavanje)" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "Radionica" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "Godina do Danas" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "Godina do Danas (Valuta Tvrtke)" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "Godišnji Iznos" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "Godišnja Pogodnost" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "Da, Nastavi" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "Niste ovlašteni odobravati odsustva na blokirane datume" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "Niste prisutni cijeli dan(e) između dana zahtjeva za kompenzacijsko odsustvo" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "Ne možete definirati više tabela ako imate tabelu bez donjih i gornjih granica." + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "Ne možete zatražiti svoju Standard Smjenu: {0}" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "Možete planirati samo do {0} slobodnih radnih mjesta i budžet {1} za {2} prema planu zapošljavanja {3} za matičnu tvrtku {4}." + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "Možete poslati Naplatu Odsutva samo za važeći iznos unovčenja" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "Možete učitati samo JPG, PNG, PDF, TXT ili Microsoft dokumente." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "Ne možete stornirati više od ukupnog broja neplaćenih odsutnih dana {0}. Već ste stornirali {1} dana za ovog zaposlenika." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "Nemate dozvolu za dovršetak ove radnje" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "Nemate predujma" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "Nemate dodijeljenog odsustva" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "Nemate obavijesti" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "Nemate zahtjeva" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "Nemate nadolazećih praznika" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "Nemate predstojeće smjene" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "Možete dodati dodatne detalje, ako ih ima, i podnjeti ponudu." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "Morate biti unutar {0} metara od lokacije vaše smjene da biste se prijavili." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "Bili ste prisutni samo na pola dana {}. Ne može se prijaviti za cjelodnevno kompenzacijsko odsustvo" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "Vaša Intervju je pomjeren sa {0} {1} - {2} na {3} {4} - {5}" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "Vaša lozinka je istekla. Poništite lozinku da nastavite" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "aktivan" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "na osnovu" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "otkazivanje" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "otkazano" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "kreiraj/podnesi" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "kreirano" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "johndoe@mail.com" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "promjeni_poludnevni_status" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "ili za Odjeljenje Personala: {0}" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "obrada" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "obrađeno" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "rezultat" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "rezultati" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "recenzija" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "recenzije" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "potvrđeno" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "putem sinhronizacije Komponenti Plate" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "godina" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "godine" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "{0} & {1}" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "{0} & {1} više" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "{0} : {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "{0}
    Ova greška može biti zbog toga što polje nedostaje ili je izbrisano." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "{0} Ocjenjivanja(e) još nije podnešeno" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "{0} Polje" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "{0} Nedostaje" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "{0} Red #{1}: Formula je postavljena, ali {2} je onemogućeno za Komponentu Plate {3}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "{0} Red #{1}: {2} treba omogućiti da bi se formula razmatrala." + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "{0} Nepročitano" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} već dodijeljeno {1} za period {2} do {3}" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0} već postoji za {1} i period {2}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "{0} već ima aktivnu Dodjelu Smjene {1} za neke/sve ove datume." + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "{0} primjenjivo nakon {1} radnih dana" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "{0} stanje" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "{0} ispunjava {1} {2}" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "{0} je uspješno kreiran!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "{0} uspješno izbrisano!" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "{0} nije uspjelo!" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "{0} ima {1} omogućeno" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "{0} je obračunska komponenta i to će se evidentirati kao isplata u Registru Pogodnosti" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "{0} je nevažeći status prisustva." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "{0} nije praznik." + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "{0} nije dozvoljeno slati Povratne Informacije o intervjuu za intervju: {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} nije na listi Opcija Praznika" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "{0} odsustva su uspješno dodijeljena" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "{0} odsustva iz dodjele za {1} tip odsustva su istekla i bit će obrađena tijekom sljedećeg planiranog posla. Preporuča se da im sada istekne prije stvaranja novih dodjela principa odsustva." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "{0} odsustva je ručno dodijelio {1} na {2}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} se mora poslati" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "{0} od {1} Završeno" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "{0} uspješno!" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "{0} uspješno!" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "{0} {1} personal?" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "{0} uspješno ažurirano!" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "{0} slobodnih radnih mjesta i {1} proračun za {2} već je planiran za podružnice tvrtke {3}. Možete planirati samo do {4} slobodnih radnih mjesta i proračun {5} prema planu osoblja {6} za matičnu tvrtku {3}." + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "{0} će biti ažuriran za sljedeće Strukture Plata: {1}." + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "{0} {1} {2}?" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "{0}. Za više detalja provjerite zapisnik pogrešaka." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}: E-pošta za personal nije pronađena, stoga e-pošta nije poslana" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "{0}: Od {0} tipa {1}" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "{0}d" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "{} " + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "{} Prihvaćeno" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "{} Aktivan" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "{} Nacrt" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "{} Nezatraženo" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "{} {} otvoreno za ovu poziciju." + diff --git a/apps/erpnext/src/hrms/hrms/locale/hu.po b/apps/erpnext/src/hrms/hrms/locale/hu.po new file mode 100644 index 000000000..d843a3320 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/hu.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Hungarian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: hu\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: hu_HU\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr " Törzsadatok & Jelentések " + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "Biztos benne, hogy törölni szeretné a mellékletet" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "{0} létrehozása..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "A befejezés dátuma nem lehet a kezdő dátum előtt" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "Adja meg: {0}" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Balra" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "Felhasználónak" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "törölve" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "benyújtva" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "év" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "{0} sikeresen létrehozva!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/id.po b/apps/erpnext/src/hrms/hrms/locale/id.po new file mode 100644 index 000000000..6c956573f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/id.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Indonesian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: id\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: id_ID\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr " Lepas Tautan Pembayaran pada saat Pembatalan Uang Muka Karyawan" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "'employee_field_value' dan 'timestamp' diperlukan." + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") untuk {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "01:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Master & Laporan" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "A {0} ada antara {1} dan {2} (" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "No rekening" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "Entri Jurnal Akrual untuk gaji dari {0} ke {1}" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "Tambahkan ke Detail" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "Ditambahkan ke detail" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "PF tambahan" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "Gaji Tambahan" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "Gaji Tambahan: {0} sudah ada untuk Komponen Gaji: {1} untuk periode {2} dan {3}" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "Semua Pekerjaan" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "Cuti Yang Dialokasikan" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "Alokasi Berakhir!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "Gaji tahunan" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "Nama pelamar" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "Status aplikasi" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "Periode aplikasi tidak dapat melewati dua catatan alokasi" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "Periode aplikasi tidak bisa periode alokasi cuti di luar" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "Terapkan Sekarang" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "Surat Pengangkatan" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "Templat Surat Pengangkatan" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Isi Surat Pengangkatan" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "Penilaian" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "Penilaian Pencapaian" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "Template Target Penilaian Pencapaian" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "Magang" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "Status Persetujuan harus 'Disetujui' atau 'Ditolak'" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "Sesuai dengan Struktur Gaji yang ditugaskan, Anda tidak dapat mengajukan permohonan untuk tunjangan" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "Menetapkan Struktur..." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "Absensi" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Jumlah Kehadiran" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "Tanggal Kehadiran" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "Kehadiran Dari Tanggal dan Kehadiran Sampai Tanggal adalah wajib" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "Kehadiran Ditandai" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "Permintaan Kehadiran" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "Kehadiran tidak dikirim untuk {0} karena ini adalah hari libur." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "Peserta" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "Agustus" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "Entri Bank" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "Remitansi Bank" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "Dasar" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "Manfaat" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "Pengingat Ulang Tahun" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "Tanggal Pembayaran Bonus tidak bisa menjadi tanggal yang lalu" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "Panggilan" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "Tidak dapat menemukan Periode Keluar aktif" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "Santai Cuti" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "Mengubah status dari {0} menjadi {1} melalui Permintaan Kehadiran" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "Jumlah klaim" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "Permintaan Tinggalkan Kompensasi" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "Kompensasi Off" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "Buat Slip Gaji" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "Buat Slip Gaji" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "Membuat Entri Pembayaran ......" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "Menciptakan Slip Gaji ..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "Nilai Odometer Saat Ini harus lebih besar dari Nilai Odometer Terakhir {0}" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "Ringkasan Pekerjaan sehari-hari" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "Kelompok Ringkasan Pekerjaan Harian" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "Pengguna Grup Ringkasan Pekerjaan Harian" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "Ringkasan Ringkasan Pekerjaan Harian" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "Tanggal diulang" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "Nomor A / C debit" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "Des" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "Deduksi" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "Persetujuan Departemen" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "Keterampilan Penunjukan" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "Keluar awal" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "Pendapatan" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "Nomor A / C Karyawan" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "Ringkasan Uang Muka Karyawan" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "Alat Absensi Karyawan" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "Aplikasi Manfaat Karyawan" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "Detail Aplikasi Tunjangan Pegawai" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "Klaim Manfaat Karyawan" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "Manfaat Karyawan" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "Aktivitas Boarding Karyawan" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "Lapor masuk karyawan" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "Kelas Karyawan" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "Asuransi Kesehatan Pegawai" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "Insentif Karyawan" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "Onboarding Karyawan" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "Template Onboarding Karyawan" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "Pendapatan Karyawan Lainnya" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "Promosi Karyawan" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "Sejarah Kekayaan Karyawan" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "Rujukan karyawan" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "Pemisahan Karyawan" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "Template Pemisahan Karyawan" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "Keterampilan Karyawan" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "Peta Keterampilan Karyawan" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "Kategori Pembebasan Pajak Karyawan" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "Deklarasi Pembebasan Pajak Karyawan" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "Deklarasi Pembebasan Pajak Pengusaha Kategori" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "Pengajuan Bukti Pembebasan Pajak Karyawan" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "Pemberitahuan Pembebasan Pajak Karyawan Bukti Pengajuan" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "Sub Bidang Pembebasan Pajak Pegawai" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "Pelatihan Pegawai" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "Transfer Pegawai" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "Karyawan {0} tidak aktif atau tidak ada" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "Karyawan {0} sedang Meninggalkan pada {1}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "Karyawan {0} tentang Half hari {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "Karyawan yang bekerja pada hari libur" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "Waktu akhir tidak boleh sebelum waktu mulai" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "Evaluasi" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "Tautan Acara" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "Lokasi acara" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "Nama Acara" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "Akun Beban Klaim" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "Klaim Biaya Klaim" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "Detail Klaim Biaya" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "Tipe Beban Klaim" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "Beban Klaim untuk Kendaraan Log {0}" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "Beban Klaim {0} sudah ada untuk Kendaraan Log" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "Pajak Biaya dan Beban" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "Kedaluwarsa Alokasi" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "Isi formulir dan menyimpannya" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "Tahun fiskal {0} tidak ditemukan" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "Makanan" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "Untuk Karyawan" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "Dari Tanggal {0} tidak boleh setelah Tanggal Pelepasan karyawan {1}" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "Dari Tanggal {0} tidak boleh sebelum karyawan bergabung Tanggal {1}" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "Dari tanggal tidak boleh kurang dari tanggal bergabung karyawan" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "Dari tanggal tidak boleh kurang dari tanggal bergabung dengan karyawan." + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "Biaya Bahan Bakar" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "Harga BBM" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "BBM Qty" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "Tanggal mendatang tidak diizinkan" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "Dapatkan Detail Dari Deklarasi" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "Dapatkan Karyawan" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "Nilai Gross Bayar" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "Pengaturan Sumber Daya Manusia" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "Setengah Hari Tanggal adalah wajib" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "Tanggal Setengah Hari harus di antara Tanggal Mulai dan Tanggal Akhir" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "Setengah Hari Tanggal harus di antara Work From Date dan Work End Date" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "Tanggal setengah hari harus di antara dari tanggal dan tanggal" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "Sewa rumah dibayar hari tumpang tindih dengan {0}" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "Tanggal sewa rumah yang diperlukan untuk perhitungan pengecualian" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "Tanggal sewa rumah harus setidaknya 15 hari terpisah" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "Kode IFSC" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "Identifikasi Jenis Dokumen" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "Pada waktunya" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "Jumlah Pajak Penghasilan" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "Komponen Pajak Penghasilan" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "Pemotongan Pajak Pendapatan" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "Slab Pajak Penghasilan" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "Pajak Penghasilan Slab Biaya Lain" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "Lembaran Pajak Pendapatan harus berlaku pada atau sebelum Tanggal Mulai Periode Penggajian: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "Lembaran Pajak Pendapatan tidak disetel dalam Penetapan Struktur Gaji: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "Lembaran Pajak Penghasilan: {0} dinonaktifkan" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "Menginternir" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "Adalah Perolehan Cuti" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "Sumber Pemohon Pekerjaan" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "Deskripsi Bidang Kerja" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "Tawaran pekerjaan" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "Status Tawaran Pekerjaan" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "Tawaran Pekerjaan: {0} sudah untuk Pelamar Kerja: {1}" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "Lowongan Pekerjaan" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "Pekerjaan" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "Juli" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "Juni" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "Entri Terlambat" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "Meninggalkan" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "Alokasi Cuti" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "Aplikasi Cuti" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "Tinggalkan Pemberitahuan Persetujuan" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "Cuti Block List Izinkan" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "Tanggal Block List Cuti" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "Cuti Diblokir" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "Cuti Control Panel" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "Tinggalkan Pencairan" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "Tinggalkan Entri Buku Besar" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "Tinggalkan Periode" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "Tinggalkan Kebijakan" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "Tinggalkan Detail Kebijakan" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "Tinggalkan Pemberitahuan Status" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "Cuti Type" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "Tinggalkan Jenis {0} tidak dapat dialokasikan karena itu pergi tanpa membayar" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "Cuti Jenis {0} tidak dapat membawa-diteruskan" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "Tinggalkan Jenis {0} tidak dapat dicampuri" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "Cuti Tanpa Bayar" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "Leave Without Pay tidak cocok dengan catatan {} yang disetujui" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "Aplikasi cuti dikaitkan dengan alokasi cuti {0}. Aplikasi cuti tidak dapat ditetapkan sebagai cuti tanpa membayar" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Cuti tidak dapat dialokasikan sebelum {0}, saldo cuti sudah pernah membawa-diteruskan dalam catatan alokasi cuti masa depan {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Cuti tidak dapat diterapkan / dibatalkan sebelum {0}, saldo cuti sudah pernah membawa-diteruskan dalam catatan alokasi cuti masa depan {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "Daun-daun" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "cuti per Tahun" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Waktu tersisa" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "Lingkaran kehidupan" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "Jenis Log diperlukan untuk lapor masuk yang jatuh di shift: {0}." + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "Merusak" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "Mark Kehadiran" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "Jumlah Pembebasan Maks. Tidak boleh lebih dari jumlah pembebasan maksimum {0} dari Kategori Pembebasan Pajak {1}" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "Cuti maksimum yang diizinkan dalam jenis cuti {0} adalah {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "Mei" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "Medis" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "Cara pembayaran yang diperlukan untuk melakukan pembayaran" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "Lembar Kehadiran Bulanan" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "Lebih dari satu pilihan untuk {0} tidak diizinkan" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "Nilai Bersih Terbayar" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "Pay bersih yang belum bisa kurang dari 0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "Jumlah Gaji Bersih" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "Gaji bersih yang belum dapat negatif" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "Tidak Ada Karyawan yang Ditemukan" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "Karyawan tidak ditemukan untuk nilai bidang karyawan yang diberikan. '{}': {}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "Tidak Ada Daun yang Dialokasikan untuk Karyawan: {0} untuk Tipe Cuti: {1}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "Tidak ada Rencana Kepegawaian yang ditemukan untuk Penunjukan ini" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "Tidak ada yang aktif atau gaji standar Struktur ditemukan untuk karyawan {0} untuk tanggal tertentu" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "Tidak ada biaya tambahan yang ditambahkan" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "Tidak ada catatan cuti yang ditemukan untuk karyawan {0} di {1}" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "Tidak ada perbaruan lagi" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "Tidak ada balasan dari" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "Tidak ada slip gaji yang ditemukan untuk memenuhi kriteria yang dipilih di atas ATAU slip gaji yang telah diajukan" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "Tidak ada yang berubah" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "Masa Pemberitahuan" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "Okt" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "Penawaran Term" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "Pada Tanggal" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "Hanya Pemberi Persetujuan yang dapat Menyetujui Permintaan ini." + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "Hanya Tinggalkan Aplikasi status 'Disetujui' dan 'Ditolak' dapat disampaikan" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "Hanya Permintaan Shift dengan status 'Disetujui' dan 'Ditolak' yang dapat diajukan" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "Hanya alokasi yang kedaluwarsa yang dapat dibatalkan" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "Hanya pengguna dengan peran {0} yang dapat membuat aplikasi cuti yang ketinggalan zaman" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "Daftar Holiday Opsional tidak ditetapkan untuk periode cuti {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "Lainnya" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "Waktu Keluar" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "Nomor PAN" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "Akun PF" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "Jumlah PF" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "Pinjaman PF" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "Kebijakan kata sandi tidak boleh mengandung spasi atau tanda hubung simultan. Format akan direstrukturisasi secara otomatis" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "Kebijakan kata sandi untuk Slip Gaji tidak diatur" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "Akun Pembayaran adalah wajib" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "Hari Jeda Pembayaran" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "Pembayaran {0} dari {1} ke {2}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "Daftar gaji" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "Daftar gaji karyawan" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "Nomor Penggajian" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "Periode Penggajian" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "Tanggal Periode Penggajian" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "Pengaturan Payroll" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "Tanggal penggajian tidak bisa lebih besar dari tanggal pembebasan karyawan." + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "Tanggal penggajian tidak boleh kurang dari tanggal bergabung dengan karyawan." + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "Pekerjaan yg dibayar menurut hasil yg dikerjakan" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "Harap konfirmasi setelah Anda menyelesaikan pelatihan Anda" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "Harap aktifkan akun masuk default sebelum membuat Grup Ringkasan Pekerjaan Harian" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "Silakan masukkan nama" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "Silakan pilih Perusahaan dan Penunjukan" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "Silahkan pilih Karyawan" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "Pilih Karyawan terlebih dahulu." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "Silakan pilih file csv" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "Harap setel Penggajian berdasarkan dalam pengaturan Penggajian" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "Silakan mengatur template default untuk Meninggalkan Pemberitahuan Persetujuan di Pengaturan HR." + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "Silakan mengatur template default untuk Pemberitahuan Status Cuti di Pengaturan HR." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "Harap atur Perusahaan" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "Harap atur tanggal bergabung untuk karyawan {0}" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "Silakan atur Sistem Penamaan Karyawan di Sumber Daya Manusia> Pengaturan SDM" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "Silakan atur seri penomoran untuk Kehadiran melalui Pengaturan> Seri Penomoran" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "Silakan bagikan umpan balik Anda ke pelatihan dengan mengklik 'Feedback Training' dan kemudian 'New'" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "Harap perbarui status anda untuk acara pelatihan ini" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "Slip Gaji Preview" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "Privilege Cuti" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "Percobaan" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "Masa percobaan" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "Pemotongan Pajak Profesional" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "Properti sudah ditambahkan" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "Pemotongan Dana Provident" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "Tujuan Perjalanan" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "Analitik Rekrutmen" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "Bayar Dari Gaji hanya dapat dipilih untuk pinjaman berjangka" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "Balasan" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "Tanggung jawab" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "Bonus Retensi" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "Baris # {0}: Tidak dapat menetapkan jumlah atau rumus untuk Komponen Gaji {1} dengan Variabel Berdasarkan Gaji Kena Pajak" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "Baris {0} # Jumlah alokasi {1} tidak boleh lebih besar dari jumlah yang tidak diklaim {2}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "Baris {0} # Jumlah yang Dibayar tidak boleh lebih besar dari jumlah uang muka yang diminta" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "Baris {0}: {1} harus ada di tabel pengeluaran untuk memesan klaim pengeluaran." + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "Komponen gaji" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "Akun Komponen Gaji" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "Detil gaji" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "Pembayaran Gaji Berdasarkan Mode Pembayaran" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "Pembayaran Gaji melalui ECS" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "Register Gaji" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "Slip Gaji ID" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "Pinjaman Saldo Gaji" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "Daftar Absen Slip Gaji" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "Slip Gaji karyawan {0} sudah dibuat untuk periode ini" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "Slip Gaji karyawan {0} sudah dibuat untuk daftar absen {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "Struktur Gaji" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "Penetapan Struktur Gaji" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "Penugasan Struktur Gaji untuk Karyawan sudah ada" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "Struktur Gaji Hilang" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "Gaji sudah diproses untuk periode antara {0} dan {1}, Tinggalkan periode aplikasi tidak dapat antara rentang tanggal ini." + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "Sanksi Jumlah tidak dapat lebih besar dari Klaim Jumlah dalam Row {0}." + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "Skor harus kurang dari atau sama dengan 5" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "Pilih Properti" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "Pilih karyawan untuk mendapatkan uang muka karyawan." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "Beban layanan" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "Setel akun bawaan untuk {0} {1}" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Shift & Kehadiran" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "Pergeseran Tugas" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "Tugas Shift: {0} dibuat untuk Karyawan: {1}" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "Permintaan Shift" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "Tipe Shift" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Shift" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "Tampilkan Karyawan" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "Slip acara Gaji" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "Cuti sakit" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "Ketrampilan" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "Melewati Penugasan Struktur Gaji untuk karyawan berikut, karena catatan Penugasan Struktur Gaji sudah ada terhadap mereka. {0}" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "Rencana Kepegawaian" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "Detail Rencana Penetapan Staf" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "Rencana Kepegawaian {0} sudah ada untuk penunjukan {1}" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "Tanggal mulai dan akhir tidak dalam Periode Penggajian yang valid, tidak dapat menghitung {0}." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "Opsi Persediaan" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "Struktur telah ditetapkan dengan sukses" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "Kirim Bukti" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "Kirim Slip Gaji" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "Kirimkan ini untuk membuat catatan Karyawan" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "Mengirimkan Slip Gaji dan membuat Entri Jurnal ..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "Mengirimkan Slip Gaji ..." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "Tampilan Ringkas" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "Saldo Gaji Kena Pajak" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "Pembaruan Tim" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "Hari (s) yang Anda lamar cuti adalah hari libur. Anda tidak perlu mengajukan cuti." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "Ada lebih dari hari kerja libur bulan ini." + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "Tidak ada lowongan di bawah rencana kepegawaian {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "Karyawan ini sudah memiliki log dengan stempel waktu yang sama. {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "Hal ini didasarkan pada kehadiran Karyawan ini" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "Ini akan mengirimkan Slip Gaji dan membuat Entri Jurnal akrual. Apakah kamu ingin melanjutkan?" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "Pengaturan waktu" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "To Date harus lebih besar dari From Date" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "Hingga saat ini tidak bisa sama atau kurang dari dari tanggal" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "Sampai saat ini tidak bisa lebih besar dari tanggal pembebasan karyawan." + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "Hingga saat ini tidak boleh kurang dari dari tanggal" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "Hingga saat ini tidak dapat lebih besar dari tanggal pelepasan karyawan" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "Jumlah Absen" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "Jumlah Deduksi" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "Total Keluar Awal" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "Total Entri Terlambat" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "Total Cuti" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "Total Hadir" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "Jumlah uang muka tidak boleh lebih besar dari jumlah sanksi" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "Total cuti yang dialokasikan adalah wajib untuk Tipe Cuti {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "Jumlah jam kerja tidak boleh lebih besar dari max jam kerja {0}" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "Latihan" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "pelatihan Kegiatan" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "Acara Pelatihan Karyawan" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "Acara Pelatihan:" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "Acara Pelatihan" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "pelatihan Masukan" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "Program pelatihan" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "pelatihan Hasil" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "Pelatihan Hasil Karyawan" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "Perjalanan" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "Rencana perjalanan" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "Permintaan perjalanan" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "Biaya Permintaan Perjalanan" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "Kehadiran tanpa tanda selama berhari-hari" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "Hari Tidak Bertanda" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "Tunggakan Beban Klaim" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "Perbarui Tanggapan" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "Unggah Kehadiran" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "Lowongan tidak boleh lebih rendah dari pembukaan saat ini" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "Memvalidasi Kehadiran Karyawan ..." + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "Nilai hilang" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "Variabel" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "kendaraan Log" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "Layanan kendaraan" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "Peringatan: Cuti aplikasi berisi tanggal blok berikut" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "Daftar Situs Web" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "Ringkasan Kerja untuk {0}" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "Anda tidak berwenang untuk menyetujui cuti di Blok Tanggal" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "Anda tidak hadir sepanjang hari di antara hari-hari pembayaran cuti kompensasi" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "Anda tidak dapat meminta Shift Default Anda: {0}" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "Anda hanya dapat mengirim Tinggalkan Cadangan untuk jumlah pencairan yang valid" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "tahun" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} sudah dialokasikan bagi Karyawan {1} untuk periode {2} ke {3}" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0} sudah ada untuk karyawan {1} dan periode {2}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "{0} berlaku setelah {1} hari kerja" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} tidak ada dalam Daftar Holiday Opsional" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} harus diserahkan" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}: email Karyawan tidak ditemukan, maka email tidak dikirim" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "{0}: Dari {0} tipe {1}" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/it.po b/apps/erpnext/src/hrms/hrms/locale/it.po new file mode 100644 index 000000000..45749226b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/it.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Italian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: it\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: it_IT\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Maestri & Rapporti" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Conteggio delle presenze" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "Ha modificato lo stato da {0} a {1} tramite Richiesta di presenza" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "Frappe HR" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "Risorse Umane" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Turno e presenze" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Turni" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "anno" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/main.pot b/apps/erpnext/src/hrms/hrms/locale/main.pot new file mode 100644 index 000000000..29469d1ea --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/main.pot @@ -0,0 +1,11496 @@ +# Translations template for Frappe HR. +# Copyright (C) 2025 Frappe Technologies Pvt. Ltd. +# This file is distributed under the same license as the Frappe HR project. +# FIRST AUTHOR , 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: Frappe HR VERSION\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-21 09:37+0000\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: contact@frappe.io\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "" +"

    Help

    \n" +"\n" +"

    Notes:

    \n" +"\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n" +"\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "" +"

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "" +"Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n" +"\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "" +"Multipliers that adjust the hourly overtime amount for specific scenarios\n" +"\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/my.po b/apps/erpnext/src/hrms/hrms/locale/my.po new file mode 100644 index 000000000..7178e7762 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/my.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Burmese\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: my\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: my_MM\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "ခုနှစ်" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/nb.po b/apps/erpnext/src/hrms/hrms/locale/nb.po new file mode 100644 index 000000000..ba9f5261e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/nb.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Norwegian Bokmal\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: nb\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: nb_NO\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "Fjern kobling til betaling ved kansellering av forskudd til ansatt" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "01:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "05:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "08:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10-00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11-00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "
    " + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "Tilknyttet DocType" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "Som standard beregnes sluttresultatet som gjennomsnittet av resultat for måloppnåelse, tilbakemelding og egenvurdering. Aktiver dette for å angi en annen formel" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "Sjekk {1} for flere detaljer" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "Opplysninger om sponsor (navn, sted)" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "Ansatte kan navngis med ansatt-ID hvis du tildeler en, eller via nummerserie. Velg din preferanse her." + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "Feil under evaluering av {doctype} {doclink} på rad {row_id}.

    Feil under evaluering: {error}

    Hint: {description}" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "Arrangementssted" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "Annenhver uke" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "Hver tredje uke" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "Hver fjerde uke" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "Hver uke" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "Hent geolokalisering" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "Henter geolokaliseringen din" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "Geolokaliseringsfeil" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "Geolokalisering støttes ikke av din nåværende nettleser" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "Måloppnåelse" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "Måloppnåelse (%)" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "Måloppnåelse (vektet)" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "Prosent måloppnåelse kan ikke være mer enn 100." + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "Helligdager denne uken." + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "Identifikasjons-dokumenttype (DocType)" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Venstre" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "Koble syklusen og knytt KRA til målet ditt for å oppdatere vurderingens måloppnåelse basert på fremdriften" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "Sted / enhets-ID" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "Formål og beløp" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "Reiseformål" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "Opptjent måloppnåelse" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "Skiftsted" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "Total måloppnåelse" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "Total vekt for alle {0} må summeres til 100. For øyeblikket er den {1}%" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "Kunne ikke hente posisjonen din" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "Vekting (%)" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "år" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/nl.po b/apps/erpnext/src/hrms/hrms/locale/nl.po new file mode 100644 index 000000000..538b94140 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/nl.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2026-01-05 14:42\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Dutch\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: nl\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: nl_NL\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "Oproepen" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Links" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "jaar" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/pl.po b/apps/erpnext/src/hrms/hrms/locale/pl.po new file mode 100644 index 000000000..de9f23623 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/pl.po @@ -0,0 +1,11508 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Polish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: pl\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: pl_PL\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") dla {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "

    Pomoc

    \n\n" +"

    Uwagi:

    \n\n" +"
      \n" +"
    1. Użyj pola podstawa do użycia wynagrodzenia zasadniczego pracownika
    2. \n" +"
    3. Użyj skrótów składników wynagrodzenia w warunkach i wzorach. BS = Podstawowa pensja
    4. \n" +"
    5. W warunkach i formułach użyj nazwy pola dla szczegółów pracownika. Rodzaj zatrudnienia = employment_typeOddział = branch
    6. \n" +"
    7. W warunkach i formułach użyj nazwy pola z odcinka wypłaty. Dni płatności = payment_daysUrlop bezpłatny = leave_without_pay
    8. \n" +"
    9. Kwotę bezpośrednią można również wprowadzić na podstawie warunku. Zobacz przykład 3
    \n\n" +"

    Przykłady

    \n" +"
      \n" +"
    1. Obliczanie wynagrodzenia zasadniczego na podstawie podstawy\n" +"
      Warunek: podstawa < 10000
      \n" +"
      Wzór: podstawa * .2
    2. \n" +"
    3. Obliczanie HRA na podstawie wynagrodzenia zasadniczegoBS \n" +"
      Warunek: BS > 2000
      \n" +"
      Wzór: BS * .1
    4. \n" +"
    5. Obliczanie TDS na podstawie rodzaju zatrudnieniaemployment_type \n" +"
      Warunek: employment_type==\"Stażysta\"
      \n" +"
      Kwota: 1000
    6. \n" +"
    " + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Raporty i dane podstawowe" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "Czy jesteś pewien, że chcesz usunąć ten załącznik" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Liczba obecności" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "Tworzenie {0}..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "Data zakończenia nie może być wcześniejsza niż data rozpoczęcia" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "Wprowadź {0}" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Grafik i rejestracja czasu pracy" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Zmiany" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "Do użytkownika" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "To Date nie może być wcześniejsza niż From Date" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "anulowany" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "zgłoszny" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "rok" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "{0} Utworzono z powodzeniem!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/pt.po b/apps/erpnext/src/hrms/hrms/locale/pt.po new file mode 100644 index 000000000..eaaf3260f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/pt.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Portuguese\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: pt-PT\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: pt_PT\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Mestras & Relatórios" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Contagem de Assiduidade" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "Participantes" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "Chamadas" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "Alterou o estado de {0} para {1} através de Pedido de Assiduidade" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Esquerda" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Turnos & Presenças" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Turnos" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "ano" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/pt_BR.po b/apps/erpnext/src/hrms/hrms/locale/pt_BR.po new file mode 100644 index 000000000..36dbd4c53 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/pt_BR.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Portuguese, Brazilian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: pt-BR\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: pt_BR\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Dados Mestres & Relatórios" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "Ao usuário" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "ano" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/ru.po b/apps/erpnext/src/hrms/hrms/locale/ru.po new file mode 100644 index 000000000..cb71a187a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/ru.po @@ -0,0 +1,11517 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2026-01-04 14:08\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Russian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: ru\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: ru_RU\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr " Расчеты по зарплате, начинающиеся с этой даты или после нее, будут учитываться при расчете задолженности" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr " Отмена платежа при отмене аванса сотруднику" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "«С даты» не может быть больше или равно «По дату»" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "% Использование (B + NB) / T" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "% Утилизация (В / Т)" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "Обязательны поля «employee_field_value» и «timestamp»." + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") для {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "...Получение сотрудников" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "01:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "05:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "08:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "Базовая сумма не установлена для следующих сотрудников: {0}" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "Пример: SAL-{first_name}-{date_of_birth.year}
    Это сгенерирует пароль типа SAL-Jane-1972" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "Общее количество выделенных отпусков больше, чем количество дней в выделенном периоде" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "

    Справка

    \n\n" +"

    Примечания:

    \n\n" +"
      \n" +"
    1. Используйте поле base для использования базовой зарплаты сотрудника
    2. \n" +"
    3. Используйте сокращения компонента зарплаты в условиях и формулах. BS = Базовая зарплата
    4. \n" +"
    5. Используйте имя поля для сведений о сотруднике в условиях и формулах. Тип занятости = employment_typeФилиал = branch
    6. \n" +"
    7. Используйте имя поля из зарплатной ведомости в условиях и формулах. Дни оплаты = payment_daysОтпуск без сохранения заработной платы = leave_without_pay
    8. \n" +"
    9. Прямую сумму также можно ввести на основе условия. Смотрите пример 3
    \n\n" +"

    Примеры

    \n" +"
      \n" +"
    1. Расчет базовой зарплаты на основе базы\n" +"
      Условие: база < 10000
      \n" +"
      Формула: основание * .2
    2. \n" +"
    3. Расчет HRA на основе базовой зарплатыBS \n" +"
      Условие: BS > 2000
      \n" +"
      Формула: BS * .1
    4. \n" +"
    5. Расчет TDS на основе типа занятостиemployment_type \n" +"
      Условие: employment_type==\"Стажер\"
      \n" +"
      Сумма: 1000
    6. \n" +"
    " + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "

    Примеры условий

    \n" +"
      \n" +"
    1. Применение налога, если сотрудник родился между 31-12-1937 и 01-01-1958 (сотрудники в возрасте от 60 до 80 лет)
      \n" +"Условие: дата_рождения>дата(1937, 12, 31) и дата_рождения<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "
    Сотрудники на полдня
    " + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "
    Неотмеченные сотрудники
    " + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "
    " + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "Транзакции & Отчеты" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Мастера & Отчеты" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "
    {0}{1}
    " + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "Заявка на работу для {0}, запрошенная {1}, уже существует: {2}" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "Дружеское напоминание о важной дате для нашей команды." + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "Между {1} и {2} существует {0}(" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "Отсутствующий" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "Дни отсутствия" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "Отсутствующие записи" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "Номер счета" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "Для счета к выплате заработной платы {1} необходимо установить тип счета {0}. Установите его и повторите попытку" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "Счет {0} не совпадает с компанией {1}" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "Бухгалтерия и Платежи" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "Бухгалтерские отчеты" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "Счета не настроены для компонента зарплаты {0}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "Начисление" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "Начисление задолженности" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "Компонент подоходного налога" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "Компонент начисления можно задать только для компонентов начисленной заработной платы." + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "Компонент начисления можно задать только для гибких компонентов заработной платы с методами начисления." + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "Компонент начисления должен быть установлен для гибких компонентов заработной платы с методами выплаты начисления." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "Запись в журнале начисления для зарплат от {0} до {1}" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "Начисление и выплата в конце расчетного периода" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "Начисляется за цикл, оплата только по факту получения" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "Накопленные бонусы" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "Отчет о накопленном доходе" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "Начисленная сумма {0} меньше выплаченной суммы {1} по пособию {2} в расчетном периоде {3}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "Действие по представлению" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "Название действия" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "Текущая сумма" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "Фактические дни" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "Фактическая продолжительность сверхурочной работы" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "Фактические остатки недоступны, так как заявка на отпуск охватывает разные периоды распределения отпуска. Вы все еще можете подать заявку на отпуск, который будет компенсирован в следующем периоде распределения." + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "Добавить дни" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "Добавить свойство Сотрудника" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "Добавить расходы" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "Добавить отзыв" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "Добавить налог" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "Добавить в детали" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "Добавить неиспользованные дни отпуска из предыдущих периодов распределения" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "Добавьте неиспользованные отпуска из предыдущего отпускного периода к этому распределению" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "Добавлены налоговые компоненты из мастера «Компоненты зарплаты», поскольку структура зарплаты не имела налоговых компонентов." + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "Добавлено в детали" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "Дополнительная сумма" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "Дополнительная информация " + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "Дополнительный PF" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "Дополнительная зарплата" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "Дополнительная зарплата " + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "Дополнительная зарплата за реферальный бонус может быть создана только для «Реферальной программы сотрудников» со статусом {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "Дополнительная зарплата для этого компонента зарплаты с включенным {0} уже существует на эту дату" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "Дополнительная зарплата: {0} уже существует для компонента зарплаты: {1} для периодов {2} и {3}" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "Адрес организатора" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "Скорректировать распределение" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "Корректировка успешно создана" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "Тип регулировки" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "Улучшение" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "Авансовый счет является обязательным. Пожалуйста, установите счет аванса сотрудника по умолчанию в записи компании {0} и отправьте этот документ." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "Валюта авансового счета {} должна совпадать с валютой зарплаты сотрудника {}. Выберите ту же валюту для авансового счета" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "Аванс оплачен (валюта компании)" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "Расширенные фильтры" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "Вся сумма прибыли/убытка от обмена в размере {0} была учтена через {1}" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "Все цели" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "Все вакансии" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "Все выданные активы должны быть возвращены до отправки" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "Все обязательные задачи по созданию сотрудников еще не выполнены." + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "Распределить на основе политики отпусков" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "Распределить отпуск" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "Распределить отпуска для {0} сотрудника(ов)?" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "Распределить на день" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "Выделенная сумма (валюта компании)" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "Распределенные отпуска" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "Выделено через" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "Распределение отпуска" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "Дата распределения" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "Подробности распределения" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "Распределение истекло!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "Выделение превышает максимально допустимое {0} для типа отпуска {1}" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "Распределение для корректировки" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "Распределение было пропущено из-за превышения ежегодного лимита, установленного в политике отпусков" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "Распределение было пропущено из-за максимального лимита отпуска, установленного в типе отпуска. Увеличьте лимит и повторите попытку. Не удалось распределить отпуск." + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "Разрешить регистрацию сотрудников через мобильное приложение" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "Разрешить выплату" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "Разрешить отслеживание Геолокации" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "Разрешить подачу заявления на отпуск после (рабочих дней)" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "Разрешить назначение нескольких смен на одну и ту же дату" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "Разрешить отрицательный баланс" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "Разрешить превышение лимита" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "Разрешить освобождение от налогов" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "Разрешить пользователю" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "Разрешить пользователям" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "Разрешить выезд после окончания смены (в минутах)" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "Разрешить претендовать на полную сумму пособия" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "Разрешить следующим пользователям одобрять заявки на отпуск на блокированные дни." + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "Позволяет распределять больше дней отпуска, чем количество дней в периоде распределения." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "Чередование отметок как «Вход» и «Выход» в течение одной смены" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "Сумма на основе формулы" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "Сумма на основе формулы" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "Сумма, полученная через запрос на расход" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "Сумма расходов" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "Сумма, выплаченная по данному обналичиванию" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "Сумма, запланированная к удержанию из зарплаты" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "Сумма не должна быть меньше нуля" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "Сумма, выплаченная по данному авансу" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "Документ о задолженностях уже существует для сотрудника {0} со структурой заработной платы {1} в расчетном периоде {2}" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "К данной отметке привязана запись о посещаемости. Пожалуйста, отмените посещаемость перед изменением времени." + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "Годовое распределение" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "Годовой лимит превышен" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "Годовая зарплата" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "Годовая налогооблагаемая сумма" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "Другие детали" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "Другие замечания, требующие внимания, которые следует внести в записи" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "Применимый компонент дохода" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "Применимые компоненты заработной платы" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "Применимо в случае адаптации сотрудников" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "Email заявителя" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "Имя заявителя" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "Рейтинг заявителя" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "Откликнуться на вакансию" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "Имя заявителя" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "Приложение" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "Статус приложения" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "Период подачи заявки не может охватывать две записи распределения" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "Период подачи заявки не может быть вне периода распределения отпуска" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "Получено заявок" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "Получено заявок:" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "Применить к Компании" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "Применить / Согласовать отпуск" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "Подать заявку" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "Подать заявку на праздничный день" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "Применить на выходные" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "Назначенная дата" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "Письмо о назначении" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "Шаблон письма о назначении" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Содержание письма о назначении" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "Оценка" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "Цикл оценки" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "Цель оценки" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "Оценка КРА" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "Связь оценки" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "Обзор оценки" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "Шаблон оценки" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "Цель по шаблону оценки" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "Отсутствует шаблон оценки" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "Название шаблона оценки" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "Для некоторых обозначений шаблон оценки не найден." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "Создание оценки поставлено в очередь. Это может занять несколько минут." + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "Оценка {0} уже существует для сотрудника {1} для этого цикла оценки или перекрывающегося периода" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "Оценка {0} не относится к сотруднику {1}" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "Оцениваемый" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "Оцениваемые: {0}" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "Ученик" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "Утверждение" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "Статус утверждения" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "Статус должен быть 'Утвержден' или 'Отклонен'" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "Утверждено" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "Утвержден" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "Утверждающий" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "Утверждающие" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "Апр" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "Вы уверены, что хотите удалить вложение?" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "Вы уверены, что хотите удалить {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "Вы уверены, что хотите отправить выбранные расчетные листки по электронной почте?" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "Вы уверены, что хотите отклонить Рекомендацию Сотрудника?" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "Задолженность" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "Компонент задолженности / перерасчёта" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "Компонент задолженности не может быть установлен для компонентов заработной платы на основе облагаемой налогом заработной платы." + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "Дата начала просрочки" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "Задолженность" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "Дата и время прибытия" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "В соответствии с назначенной вам структурой заработной платы вы не можете претендовать на льготы" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "Стоимость восстановления активов для {0}: {1}" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "Активы распределены" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "Назначить структуру заработной платы {0} сотрудникам?" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "Назначить смену" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "Назначить график смен" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "Назначить структуру" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "Назначение структуры заработной платы" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "Назначение структуры..." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "Назначение структур..." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "Назначение на основе" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "Связать вакансию" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "Связанный документ" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "Тип связанного документа" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "Необходимо выбрать хотя бы одно интервью." + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "Прикрепить подтверждение" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "Попытка" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "Присутствие" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "Календарь посещаемости" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Количество посещений" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "Дата посещения" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "Дата посещения" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "Посещение с даты и по дату обязательно" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "ID посещения" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "Посещаемость отмечена" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "Запрос на присутствие" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "История запросов на присутствие" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "Настройки посещаемости" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "Дата посещения" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "Посещаемость обновлена" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "Предупреждения о посещаемости" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "Дата посещения {0} не может быть меньше даты прихода сотрудника {1}: {2}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "Посещаемость всех сотрудников по данному критерию уже отмечена." + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "Посещаемость сотрудника {0} уже отмечена для перекрывающейся смены {1}: {2}" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "Явка сотрудника {0} уже отмечена на дату {1}: {2}" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "Посещаемость для сотрудника {0} уже отмечена на следующие даты: {1}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "Посещение следующих дат будет пропущено/переписано при подаче заявки" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "Посещаемость с {0} по {1} уже отмечена для сотрудника {2}" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "Посещаемость отмечена для всех сотрудников в период между выбранными датами выплаты заработной платы." + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "Ожидается присутствие этих сотрудников между выбранными датами выплаты заработной платы. Отметьте присутствие, чтобы продолжить. Подробности см. в {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "Посещаемость отмечена успешно" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "Данные о посещении не были отправлены на {0}, так как это праздничный день." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "Отчет о посещении {0} не представлен, так как {1} находится в отпуске." + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "Посещаемость будет автоматически отмечена только после этой даты." + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "Список запросов на посещаемость" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "Участники" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "Количество увольнений" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "Aug" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "Настройки автоматического присутствия" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "Автоматическое использование отпуска" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "Автоматически на основе достижения цели" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "Автоматическое распределение отпусков не удалось для следующих заработанных отпусков: {0}. Для получения более подробной информации см. {1}." + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "Автоматически извлекает все активы, выделенные сотруднику, если они имеются" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "Автоматически обновлять время последней синхронизации отметки" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "Доступный отпуск(а)" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "Доступные отпуска" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "Средняя оценка отзыва" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "Средняя оценка" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "Средний балл по результатам целевого задания, баллу обратной связи и баллу самооценки" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "Средний рейтинг демонстрируемых навыков" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "Средний балл обратной связи" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "Средняя загрузка" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "Средняя загрузка (только оплачиваемая)" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "Ожидание ответа" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "Заявка на отпуск задним числом ограничена. Пожалуйста, установите {} в {}" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "Банковские записи" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "Банковский перевод" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "База" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "Базовая и переменная" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "Начать регистрацию до начала смены (в минутах)" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "Ниже представлен список предстоящих праздников для вас:" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "Льгота" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "Сумма пособия" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "Подробности о преимуществах" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "Сумма выгоды компонента {0} превышает {1}" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "Сумма выгоды компонента {0} должна быть больше 0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "Сумма пособия {0} для компонента заработной платы {1} не должна превышать максимальную сумму пособия {2} установленную в {3}" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "Льготы" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "Сумма счета" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "Оплаченные часы" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "Оплаченные часы (B)" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "Дважды в месяц" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "Напоминание о дне рождения" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "Напоминание о дне рождения 🎂" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "Дни рождения" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "Дата блокировки" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "Заблокированные дни" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "Блокировать праздники в важные дни." + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "Бонус" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "Сумма бонуса" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "Дата выплаты бонуса" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "Дата выплаты бонуса не может быть прошедшей датой" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "Ветка: {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "Массовые задания" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "Массовое назначение политики отпусков" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "Массовое назначение структуры заработной платы" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "По умолчанию итоговый счет рассчитывается как среднее значение балла за цель, балла обратной связи и балла самооценки. Включите этот параметр, чтобы задать другую формулу" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "СТС" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "Рассчитайте окончательный результат по формуле" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "Рассчитать сумму пособия на основе" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "Рассчитать рабочие дни для расчета заработной платы на основе" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "Рассчитано в днях" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "Звонки" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "Отмена поставлена в очередь" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "Невозможно изменить время" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "Невозможно выделить отпуск вне периода выделения {0} - {1}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "Невозможно выделить больше отпусков из-за максимального лимита выделения отпусков {0} в назначении политики отпусков" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "Невозможно выделить больше листов из-за максимально допустимого количества листьев {0} в типе отпуска {1}." + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "Невозможно прервать смену после даты окончания" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "Невозможно прервать смену до даты начала" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "Невозможно отменить назначение смены: {0}, так как оно связано с посещаемостью: {1}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "Невозможно отменить назначение смены: {0}, так как оно связано с проверкой сотрудника: {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "Невозможно создать расчетный листок для сотрудника, пришедшего на работу после расчетного периода" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "Невозможно создать расчетный листок для сотрудника, который уволился до расчетного периода" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "Невозможно создать соискателя на закрытую вакансию" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "Невозможно создать или изменить транзакции по циклу оценки со статусом {0}." + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "Невозможно найти активный период отпуска" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "Невозможно отметить присутствие неактивного сотрудника {0}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "Невозможно отправить. Посещаемость не отмечена для некоторых сотрудников." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "Невозможно обновить распределение для {0} после отправки" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "Невозможно обновить статус группы целей" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "Перенести вперед" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "Перенесенные отпуска" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "Неофициальный отпуск" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "Причина жалобы" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "Изменён статус с {0} на {1} и статус для второй половины на {2} через запрос на присутствие" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "Изменен статус с {0} на {1} через запрос на присутствие" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "Изменение '{0}' на {1}." + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "Изменение KRA в этой родительской цели приведет к согласованию всех дочерних целей с тем же KRA, если таковые имеются." + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "Проверьте {1} для более подробной информации" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "Более подробную информацию смотрите в журнале ошибок {0}." + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "Вход" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "Выход" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "Проверить Вакансии при ее создании" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "Проверьте {0} для более подробной информации" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "Вход" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "Дата входа" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "Выход" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "Дата выхода" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "Радиус проверки" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "Дочерние узлы могут быть созданы только в узлах типа «Группа»" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "Выберите способ расчета почасовой суммы сверхурочной работы:\n" +"
    1. Фиксированная почасовая ставка: фиксированная, введенная вручную почасовая ставка.
    2. \n" +"
    3. Зарплата на основе компонентов:\n\n" +"(Сумма выбранных сумм компонентов) ÷ (Дни оплаты) ÷ (Стандартные дневные часы)
    " + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "Выберите дату, на которую вы хотите создать эти компоненты как просроченную задолженность." + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "Подать заявку на пособие" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "Запросить расход" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "Получено" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "Заявленная сумма" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "Заявленная сумма работника {0} превышает максимальную сумму, допустимую для иска {1}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "Заявленная сумма сотрудника {0} должна быть больше 0" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "Претензии" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "Очищено" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "Нажмите {0}, чтобы изменить конфигурацию, а затем повторно сохранить зарплатную квитанцию" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "Закрыто на" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "Закрывается на" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "Закрывается на:" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "Закрытые заметки" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "Информация о компании" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "Запрос на оплачиваемый отпуск" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "Компенсация выкл" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "Завершение адаптации" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "Свойства компонентов и ссылки " + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "Условие и формула" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "Помощь по условию и формуле" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "Условие и формула" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "Условия и переменная формулы и пример" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "Конференция" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "Подтвердить {0}" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "Рассмотрите льготный период" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "Рассмотрите возможность посещения занятий в праздничные дни" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "Рассмотрите декларацию об освобождении от уплаты налогов" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "Рассматривайте неотмеченное присутствие как" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "Объединить типы отпусков" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "Контактный номер" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "Копия приглашения/объявления" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "Не удалось отправить некоторые расчетные листки: {}" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "Не удалось обновить цель" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "Не удалось обновить цели" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "Удаление Fixture не удалось" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "Не удалось установить страну" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "Страна проживания" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "Курс" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "Сопроводительное письмо" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "Создать дополнительную выплату" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "Создать Оценки" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "Создать интервью" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "Создать кандидата на вакансию" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "Создать вакансию" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "Создать ID нового сотрудника" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "Создайте квитанцию об оплате сверхурочных часов для сотрудника(ов), имеющих на это право" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "Создание листовок сверхурочной работы" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "Создать расчетный лист" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "Создать расчетные листы" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "Создать смены после" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "Создание оценки" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "Создание платежных записей......" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "Создание расчетных листков..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "Создание {0}..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "Дата создания" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "Создание не удалось" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "Создание заданий по структуре зарплат поставлено в очередь. Это может занять несколько минут." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "Создание {0} поставлено в очередь. Это может занять несколько минут." + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "Критерии, на основе которых сотрудник должен оцениваться в разделе «Отзывы о производительности» и «Самооценка»" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "Валюта " + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "Валюта выбранного подоходного налога должна быть {0} вместо {1}" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "Текущий CTC" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "Текущее число" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "Нынешний работодатель " + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "Текущая должность" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "Текущий месячный налог" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "Текущее значение одометра должно быть больше последнего значения одометра {0}" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "Текущее значение одометра " + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "Актуальные вакансии" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "Текущий расчетный период" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "Текущее состояние" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "Текущий опыт работы" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "В настоящее время для этой даты не предусмотрено {0} периода отпуска для создания/обновления распределения отпусков." + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "Пользовательский диапазон" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "Название цикла" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "Циклы" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "Ежедневный отчет о работе" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "Ежедневная группа итогов работы" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "Ежедневный пользователь группы по работе" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "Ежедневные краткие ответы о работе" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "Превышен диапазон дат" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "Дата повтора" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "Дата {0} повторяется в сведениях о сверхурочных" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "Даты и причина" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "Дата на основе" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "Дни, на которые для этого отдела заблокированы праздники." + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "Дней до разворота" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "Число дней до отмены должно быть больше нуля." + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "Номер дебетового счета" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "Дек" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "Решение ожидается" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "Декларации" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "Заявленная сумма" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Вычесть полный налог на выбранную дату выплаты заработной платы" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "Удержать налог за непредоставленное подтверждение налогового вычета" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "Вычет" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "Вычет задолженности" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "Отчеты о вычетах" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "Вычет из зарплаты" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "Вычеты" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "Вычеты до расчета налога" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "Сумма по умолчанию" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "При выборе этого режима банковский счет/счет наличных по умолчанию будет автоматически обновлен в журнале учета заработной платы." + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "Базовая оплата по умолчанию" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "Авансовый счет для сотрудников по умолчанию" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "Счет задолженности по отчетам о расходах по умолчанию" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "Счет по умолчанию для выплаты заработной платы" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "Структура заработной платы по умолчанию" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "Смена по умолчанию" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "Удалить вложение" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "Удалить {0}" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "Утверждающий отдел" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "Вакансии в отделах" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "Отдел {0} не принадлежит компании: {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "Отдел: {0}" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "Дата и время отправления" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "Зависит от дней оплаты" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "Зависит от дней оплаты" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "Описание вакансии" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "Обозначение навыка" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "Обозначение: {0}" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "Данные спонсора (имя, местонахождение)" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "Определить время заезда и выезда" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "Отключите {0} для компонента {1}, чтобы предотвратить двойное вычитание суммы, поскольку в его формуле уже используется компонент, основанный на днях оплаты." + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "Отключите {0} или {1} чтобы продолжить." + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "Отключение push-уведомлений..." + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "Не включать в бухгалтерские проводки" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "Не включать в общую сумму" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "Не включать в общую сумму" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "Хотите ли вы обновить данные соискателя {0} как {1} на основе результатов этого собеседования?" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "Документ {0} не удалось обработать!" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "Внутренний" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "Дублировать отметку о посещаемости" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "Обнаружено дубликат заявления" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "Дублировать заявку на вакансию" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "Корректировка дубликата отпуска" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "Дублировать перезаписанную зарплату" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "Дублировать удержание зарплаты" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "ОШИБКА({0}): {1}" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "Ранний выход" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "Ранний выход от" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "Период раннего выхода" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "Ранние выходы" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "Заработанный отпуск" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "Частота оплачиваемого отпуска" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "График оплачиваемых отпусков" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "Заработанные отпуска" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "Заработанные отпуска распределяются по заданной частоте через планировщик." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "Заработанные отпуска автоматически распределяются через планировщик на основе ежегодного распределения, установленного в Политике отпусков: {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "Заработанные отпуска — это отпуска, которые сотрудник зарабатывает после работы в компании в течение определенного времени. Включение этой опции позволит автоматически распределять отпуска на пропорциональной основе, обновляя распределение отпусков для этого типа с интервалами, заданными параметром «Частота заработанного отпуска»." + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "Начисления" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "Задолженность по доходам" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "Компонент Начислений" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "Компонент заработной платы необходим для реферального бонуса сотрудника." + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "Начисления" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "Начисления и удержания" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "Изменить статью расходов" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "Изменить налог на расход" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "Действительно с" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "Действует до" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "Дата действия" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "Отправить расчетный лист сотруднику по Email" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "Отправить расчетные листы по Email" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "Email отправлен" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "Отправляет сотруднику расчетный листок по электронной почте на указанный им адрес электронной почты в разделе «Сотрудник»" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "Номер счета сотрудника" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "Авансовый счет для сотрудников" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "Авансовый баланс сотрудника" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "Итоги авансов сотрудника" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "Аналитика сотрудников" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "Инструмент учета посещаемости сотрудников" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "Заявление на получение пособия работникам" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "Подробности заявления на получение пособия для сотрудников" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "Заявление о выплате пособия работникам" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "Подробная информация о пособиях для сотрудников" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "Книга учета льгот сотрудников" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "Пособия для сотрудников" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "День рождения сотрудника" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "Активности по адаптации сотрудников" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "Проверка сотрудников" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "История проверки сотрудников" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "Центр затрат сотрудников" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "Данные о сотрудниках" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "Email сотрудника" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "Настройки увольнения сотрудников" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "Увольнения сотрудников" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "Критерии отзывов сотрудников" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "Рейтинг отзывов сотрудников" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "Грейд сотрудника" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "Жалоба сотрудника" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "Медицинское страхование сотрудников" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "Использование рабочего времени сотрудниками на основе табеля учета рабочего времени" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "Изображение сотрудника" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "Стимулирование сотрудников" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "Инфо о сотруднике" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "Информация о сотруднике" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "Карьерный путь сотрудника" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "Баланс отпусков сотрудника" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "Сводка отпусков сотрудника" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "Ссуда сотруднику" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "Именование сотрудника по" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "Адаптация сотрудников" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "Шаблон адаптации сотрудников" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "Адаптация сотрудников: {0} уже существует для соискателя: {1}" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "Прочие доходы сотрудников" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "Отзывы о работе сотрудников" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "Повышение сотрудника" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "Детали повышения сотрудника" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "Повышение сотрудника не может быть отправлено до даты повышения" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "История свойств сотрудника" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "Рекомендация сотрудника" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "Реферальная ссылка для сотрудника {0} уже существует для адреса электронной почты: {1}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "Бонус за рекомендацию сотрудника {0} не применяется." + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "Рекомендации сотрудников" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "Ответственный сотрудник " + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "Сотрудник сохранен" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "Увольнение сотрудников" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "Шаблон увольнения сотрудников" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "Настройки сотрудников" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "Навыки сотрудников" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "Карта навыков сотрудников" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "Навыки сотрудников" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "Статус сотрудника" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "Категория налогового вычета сотрудника" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "Декларация о налоговом вычете сотрудника" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "Категория декларации о налоговом вычете сотрудников" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "Подтверждение налогового вычета сотрудника" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "Детали подачи подтверждения налогового вычета сотрудника" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "Подкатегория налогового вычета сотрудника" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "Обучение сотрудников" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "Перевод сотрудников" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "Детали перевода сотрудников" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "Подробности перевода сотрудников" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "Перевод сотрудника не может быть подан до даты перевода" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "Авансовый счет сотрудника {0} должен иметь тип {1}." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "Сотрудника можно называть по ID сотрудника, если вы назначите его, или с помощью серии имен. Выберите ваше предпочтение здесь." + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "Имя сотрудника" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "Записи сотрудников создаются с помощью выбранного параметра" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "Сотрудник был отмечен как отсутствующий из-за отсутствия отметок о входе." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "Сотрудник был отмечен как отсутствующий за неполное выполнение установленного рабочего времени." + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "Сотрудник был отмечен отсутствующим на второй половине дня из-за отсутствующих отметок о входе/выходе." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "Сотрудник {0} : {1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "У сотрудника {0} уже есть запрос на посещаемость {1}, который пересекается с этим периодом" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "У сотрудника {0} уже есть активная смена {1}: {2}, которая пересекается с этим периодом." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "Сотрудник {0} уже подал заявку {1} на расчетный период {2}" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "Сотрудник {0} уже подал заявку на смену {1}: {2}, которая пересекается с этим периодом" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "Сотрудник {0} уже подал заявку на {1} в период с {2} по {3}: {4}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "Сотрудник {0} уже подал заявку на пособие '{1}' для {2} ({3}).
    Во избежание переплат допускается только одно заявление на каждый тип пособия в каждом расчетном периоде." + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "Сотрудник {0} не активен или не существует" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "Сотрудник {0} в отпуске {1}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "Сотрудник {0} не найден среди участников обучающего мероприятия." + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "Сотрудник {0} на половине дня {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "Сотрудник {0}, освобожденный {1}, должен быть установлен как \"Уволен\"" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "Сотруднику {0} необходимо проработать минимум {1} года для получения пособия" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "Сотрудники HTML" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "Сотрудники, работающие в праздничные дни" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "Сотрудники не могут давать обратную связь самим себе. Используйте {0} вместо: {1}" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "HTML для сотрудников в полудневном режиме" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "Сотрудники будут пропускать напоминания о праздниках с {} до {}.
    Вы хотите продолжить с этим изменением?" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "Сотрудники без отзывов: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "Сотрудники без целей: {0}" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "Сотрудники, работающие в праздничный день" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "Вид занятости" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "Включить автоматическое присутствие" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "Включить раннюю отметку выхода" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "Включить отметку о позднем входе" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "Включить push-уведомления" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "Включите этот параметр, чтобы использовать специальный множитель для государственных праздников. Если флажок не установлен, будет использоваться стандартный множитель." + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "Включите этот параметр, чтобы использовать определённый множитель для выходных. Если флажок не установлен, будет использоваться стандартный множитель." + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "Доступно только для компонентов пособий сотрудникам из назначения структуры заработной платы" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "Включение Push-уведомлений..." + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "Начисление" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "Сумма начисления" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "Дни начисления" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "Сумма дней начисления не может превышать {0} {1} в соответствии с настройками типа отпуска" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "Применяется лимит начисления" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "Шифровать расчетные листы в письмах" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "Дата окончания не может быть до даты начала" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "Дата окончания: {0}" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "Время окончания не может быть раньше времени начала" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "Примите участие в раунде собеседований" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "Введите ненулевое значение для корректировки." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "В обычный рабочий день введите время работы. Эти часы будут использоваться при расчетах отчетов, таких, как использование рабочих часов и анализ прибыльности проекта." + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "Введите количество дней отпуска без сохранения заработной платы (LWP), которые вы хотите отменить. Это значение не может превышать общее количество дней LWP, зарегистрированных в выбранном месяце" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "Введите количество дней отпуска, которые вы хотите распределить на этот период." + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "Введите суммы годового пособия" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "Введите {0}" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "Ошибка создания {0}" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "Ошибка удаления {0}" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "Ошибка загрузки PDF" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "Ошибка в формуле или условия" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "Ошибка в формуле или условии: {0} в налоговой категории" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "Ошибка в некоторых строках" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "Ошибка обновления {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "Ошибка при оценке {doctype} {doclink} на строке {row_id}.

    Ошибка: {error}

    Подсказка: {description}" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "Ориентировочная стоимость на позицию" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "Оценка" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "Дата оценки" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "Метод оценки не может быть изменен, так как для этого цикла уже созданы оценки" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "Детали события" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "Ссылка на событие" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "Место события" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "Название события" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "Статус события" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "Каждые 2 недели" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "Каждые 3 недели" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "Каждые 4 недели" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "Каждый действительный заезд и выезд" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "Каждую неделю" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "Поздравим их с годовщиной работы!" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "Давайте поздравим {0} с днем рождения." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "Экзамен" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "Обменный курс платежной записи против аванса сотрудника" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "Исключить праздники" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "Исключены {0} не подлежащих начислению дней отпуска для {1}" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "Освобожден от подоходного налога" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "Исключение" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "Категория исключения" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "Подтверждения исключения" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "Подкатегория исключения" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "Существующая запись" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "Существующие назначения смен" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "Увольнение подтверждено" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "Детали увольнения" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "Интервью при увольнении" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "Ожидается интервью при увольнении" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "Итоги интервью при увольнении" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "Интервью при увольнении {0} уже существует для сотрудника: {1}" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "Анкета при увольнении" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "Уведомление о анкете при увольнении" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "Шаблон уведомления о анкете при увольнении" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "Анкета при увольнении в ожидании" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "Веб-форма анкеты при увольнении" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "Выходы (в этом месяце)" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "Ожидаемый средний рейтинг" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "Ожидается от" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "Ожидаемая компенсация" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "Ожидаемый диапазон заработной платы в месяц" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "Ожидаемый набор навыков" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "Ожидаемый набор навыков" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "Согласующий расходы" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "Согласование расходов обязательно в заявке на возмещение расходов" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "Счет для заявок на возмещение расходов" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "Аванс по заявке на возмещение расходов" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "Детали заявки на возмещение расходов" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "Итоги заявки на возмещение расходов" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "Тип заявки на возмещение расходов" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "Заявка на возмещение расходов для учета транспортных средств {0}" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "Заявка на возмещение расходов {0} уже существует для учета транспортных средств" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "Заявки на возмещение расходов" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "Дата расхода" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "Элемент расхода" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "Подтверждение расходов" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "Налог" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "Налоги и сборы" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "Тип расходов" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "Расходы и авансы" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "Истекает срок" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "Истекает срок действия переносимых отпусков (дни)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "Истечение отпусков" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "Просроченный отпуск(и)" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "Истекшие дни отпуска" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "Объяснение" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "Экспорт..." + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "Не удалось создать/отправить {0} для сотрудников:" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "Не удалось удалить настройки по умолчанию для страны {0}." + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "Не удалось загрузить PDF: {0}" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "Не удалось отправить уведомление о переносе интервью. Пожалуйста, настройте свой аккаунт электронной почты." + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "Не удалось установить значения по умолчанию для страны {0}." + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "Не удалось отправить некоторые задания по политике отпусков:" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "Не удалось обновить статус соискателя" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "Не удалось обновить статус соискателя" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "Детали сбоя" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "Причина отказа" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "Сбой автоматического распределения оплачиваемых отпусков" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "Feb" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "Количество отзывов" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "Отзыв HTML" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "Рейтинг отзывов" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "Шаблон уведомления о напоминании" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "Оценка отзыва" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "Сообщение отправлено" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "Итог отзыва" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "Отзыв уже отправлен для интервью {0}. Пожалуйста, отмените предыдущий отзыв об интервью {1}, чтобы продолжить." + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "Отзыв не может быть записан для отсутствующего сотрудника." + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "Отзыв {0} успешно добавлен" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "Получить геолокацию" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "Получить информацию о сверхурочной работе" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "Получить смену" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "Получить смены" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "Получение сотрудников" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "Получение смены" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "Получить вашу геолокацию" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "Предпросмотр файла" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "Заполните форму и сохраните ее" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "Заполнено" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "Фильтр сотрудников" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "Фильтр по смене" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "Окончательное решение" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "Окончательный счет" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "Формула финальной оценки" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "Первая регистрация заезда и последняя регистрация отъезда" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "Первый день" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "Имя " + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "Финансовый год {0} не найден" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "Фиксированная почасовая ставка" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "Управление автопарком" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "Гибкая льгота" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "Гибкие льготы" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "Гибкий компонент" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "Авиа" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "FnF Ожидание" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "Подписаться по E-mail" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "Еда" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "Для обозначения " + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "Для сотрудника" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "Для дня взятого отпуска, если вы все еще платите (например) 50% от дневной зарплаты, введите 0,50 в это поле." + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "Формула" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "Доля применимого дохода " + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "Доля дневной зарплаты за половину дня" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "Доля дневной зарплаты за один день отпуска" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "Дополнительная стоимость" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "Frappe HR" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "От суммы" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "Дата \"С\" должна быть раньше даты \"По\"" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "Дата {0} не может быть позже даты окончания расчетного периода {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "Дата \"С\" {0} не может быть позже даты увольнения сотрудника {1}" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "Дата {0} не может быть раньше даты начала расчетного периода {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "Дата \"С\" {0} не может быть раньше даты присоединения сотрудника {1}" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "Дата \"С\" не может быть раньше даты присоединения сотрудника" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "Дата \"С\" не может быть раньше даты присоединения сотрудника." + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "Здесь вы можете включить использование неиспользованных отпусков." + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "С {0} по {1}" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "С (год)" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "Фуксия" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "Расходы на топливо" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "Расходы на топливо" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "Цена топлива" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "Количество топлива" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "Полный и окончательный отчет" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "Полный и окончательный отчет о задолженности" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "Полная занятость" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "Полностью спонсируемый" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "Сумма финансирования" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "Будущий подоходный налог" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "Будущие даты не допускаются" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "Счет прибылей и убытков" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "Ошибка геолокации" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "Геолокация не поддерживается вашим текущим браузером" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "Получить детали из декларации" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "Получить сотрудников" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "Получить запросы на работу" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "Получить шаблон" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "Установите приложение на ваше устройство для удобного доступа и улучшенного использования!" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "Установите приложение на ваш iPhone для удобного доступа и улучшенного использования" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "Без глютена" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "Перейти к входу" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "Перейти на страницу сброса пароля" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "Достижение цели (%)" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "Балл цели" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "Балл цели (%)" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "Балл цели (взвешенный)" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "Процент достижения цели не может превышать 100." + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "Цель должна соответствовать тому же ключевому результату (KRA), что и её родительская цель." + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "Цель должна принадлежать тому же сотруднику, что и её родительская цель." + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "Цель должна принадлежать тому же циклу оценки, что и её родительская цель." + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "Цель успешно обновлена" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "Цели успешно обновлены" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "Грейд" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "Пособие при увольнении" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "Компонент пособия при увольнении" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "Правила пособия при увольнении" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "Ставка правила пособия при увольнении" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "Жалоба" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "Жалоба на" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "Жалоба на сторону" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "Подробности жалобы" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "Тип жалобы" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "Валовые доходы" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "Валовая зарплата" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "Валовая зарплата (валюта компании)" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "Валовая сумма с начала года" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "Валовая сумма с начала года (валюта компании)" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "Прогресс групповой цели автоматически рассчитывается на основе дочерних целей." + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "HR" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "Кадры и зарплата" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "Настройки HR и зарплаты" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "Панель HR" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "Настройки HR" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "HRMS" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "Полдня" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "Полдня Дата" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "Дата половины дня обязательна" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "Дата половины дня должна находиться между датами \"С\" и \"По\"" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "Дата половины дня должна находиться между датой начала работы и датой окончания работы" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "Заголовок для сотрудников с полудневной отметкой" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "Записи о половине дня" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "Дата половины дня должна находиться между датами \"С\" и \"По\"" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "Имеет сертификат" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "ДМС" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "Название ДМС" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "Номер ДМС" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "Поставщик ДМС" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "Привет, {}! Это письмо напоминает вам о предстоящих праздниках." + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "Привет, {0}👋" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "Количество найма" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "Настройки найма" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "Праздники для дополнительного отпуска" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "Праздники в этом месяце." + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "Праздники на этой неделе." + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "Горизонтальный разрыв" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "Почасовая ставка (валюта компании)" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "Почасовая ставка" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "Дни оплаты аренды жилья пересекаются с {0}" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "Даты аренды жилья необходимы для расчета вычета" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "Даты аренды жилья должны отличаться как минимум на 15 дней" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "IFSC" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "Код IFSC" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "В" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "Идентификационный номер документа" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "Тип идентификационного документа" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "Если отмечено, задолженность по заработной плате будет начисляться каждому сотруднику" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "Если флажок установлен, гибкие льготы рассматриваются только при наличии заявки на льготу" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "Если отмечено, скрывает и отключает поле «Округленная сумма» в расчетных листах" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "Если этот флажок установлен, создание бланка сверхурочной работы может быть выполнено в рамках обработки заработной платы" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "Если отмечено, полная сумма будет вычтена из налогооблагаемого дохода перед расчетом налога на доходы без какой-либо декларации или подтверждения." + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "Если включено, декларация об освобождении от налога будет учитываться при расчете налога на доходы." + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "Если включено, автоматическое посещение будет отмечаться в праздничные дни, если существуют отметки о входе сотрудников" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "Если включено, вычитает дни оплаты за отсутствие на праздничные дни. По умолчанию праздники считаются оплачиваемыми" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "Если этот параметр включен, сумма будет исключена из бухгалтерских записей при создании журнальной записи." + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "Если включено, компонент будет считаться налоговым компонентом, и сумма будет автоматически рассчитываться в соответствии с установленными налоговыми категориями" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "Если включено, компонент будет учитываться в отчете по удержаниям налога на доходы" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "Если включено, компонент не будет отображаться в расчетном листе, если сумма равна нулю" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "Если включено, общее количество заявок, полученных на эту вакансию, будет отображаться на сайте" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Если включено, значение, указанное или рассчитанное в этом компоненте не будет влиять на доходы или удержания. Однако его значение может использоваться другими компонентами, которые могут быть добавлены или вычтены." + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "При включении этого компонента можно начислять суммы, не добавляя их к заработку. Начисленный остаток отслеживается в книге учёта пособий сотрудникам и может быть выплачен позднее по мере необходимости." + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "Если включен, этот компонент будет включен в расчеты задолженности" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "Если включено, общее количество рабочих дней будет включать праздники, что уменьшит значение зарплаты за день" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "Если значение больше нуля, это устанавливает максимальную сумму пособия, которое может быть назначено любому сотруднику" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "Если не отмечено, список необходимо будет добавлять в каждый отдел, где он должен применяться." + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Если выбрано, указанное или рассчитанное значение в этом компоненте не будет влиять на доходы или удержания. Однако его значение может использоваться другими компонентами, которые могут быть добавлены или вычтены" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "Если установлено, вакансия будет автоматически закрыта после этой даты" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "Если вы используете займы в расчетных листах, пожалуйста, установите приложение {0} из Frappe Cloud Marketplace или GitHub, чтобы продолжить использование интеграции займов с расчетом зарплаты." + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "Импорт посещаемости" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "Время" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "В случае возникновения ошибки в процессе выполнения в фоновом режиме система добавит комментарий об ошибке в эту запись зарплаты и вернет статус к \"Отправлено\"" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "Поощрения" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "Сумма поощрения" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "Включить дочерние компании" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "Включить праздники" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "Включить праздники в общее количество рабочих дней" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "Включить праздники в отпуск как дни отпуска" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "Источник дохода" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "Подоходный налог" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "Распределение подоходного налога" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "Компонент подоходного налога" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "Расчет подоходного налога" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "Удержанный подоходный налог до даты" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "Удержания подоходного налога" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "Налоговая категория" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "Прочие сборы налоговой категории" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "Налоговая категория обязательна, так как структура зарплаты {0} имеет налоговый компонент {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "Налоговая категория должна вступать в силу не позднее даты начала расчетного периода зарплаты: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "Налоговая категория не установлена в назначении структуры зарплаты: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "Налоговая категория: {0} отключена" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "Доход от других источников" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "Неправильное распределение веса" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "Указывает количество дней отпуска, которые нельзя использовать из остатка. Например, при остатке отпуска в 10 дней и 4 не подлежащих использование дней отпуска, вы можете использовать 6 дней, в то время как оставшиеся 4 дня могут быть перенесены или аннулированы" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "Инспекция" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "Установить" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "Установить Frappe HR" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "Недостаточно средств" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "Недостаточный остаток для типа отпуска {0}" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "Сумма процентов" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "Счет дохода от процентов" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "Стажер" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "Международный" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "Интернет" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "Интервью" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "Детали интервью" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "Детали интервью" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "Отзыв об интервью" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "Напоминание об отзыве на интервью" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "Отзыв об интервью {0} успешно отправлен" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "Интервью не перепланировано" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "Напоминание об интервью" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "Шаблон уведомления напоминания интервью" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "Интервью успешно перенесено" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "Этап интервью" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "Этап интервью {0} применим только для должности {1}" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "Этап интервью {0} предназначен только для должности {1}. Соискатель подал заявку на роль {2}" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "Дата запланированного интервью" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "Статус интервью" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "Резюме интервью" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "Тип интервью" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "Интервью: {0} перепланировано" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "Интервьюер" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "Интервьюеры" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "Интервью" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "Интервью (на этой неделе)" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "Неверный компонент начисления" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "Недопустимая дополнительная зарплата" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "Неверный компонент просроченной задолженности" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "Недействительные суммы пособий" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "Недопустимые даты" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "Недействительные дни LWP отменены" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "Неверная запись в журнале отпусков" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "Неверный счет для выплаты заработной платы. Валюта счета должна быть {0} или {1}" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "Недопустимое время смены" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "Предоставлены неверные параметры. Пожалуйста, передайте необходимые аргументы." + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "Исследовано" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "Детали исследования" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "Приглашен" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "Ссылка на счет" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "Выделено" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "Применимо для реферального бонуса" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "Переносится на следующий период" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "Является компенсационным" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "Компенсационный отпуск" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "Является заработанным отпуском" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "Истекло" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "Гибкие льготы" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "Является налоговым компонентом" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "Является отпуском без оплаты" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "Является необязательным отпуском" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "Является частично оплачиваемым отпуском" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "Является периодическим" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "Является периодической дополнительной зарплатой" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "Зарплата выплачена" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "Зарплата удержана" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "Налог применяется" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "Jan" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "Кандидат на работу" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "Источник заявки на работу" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "Кандидат {0} успешно создан." + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "Кандидатам не разрешается участвовать дважды в одном и том же этапе интервью. Интервью {0} уже запланировано для кандидата {1}" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "Заявление о приеме на работу" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "Маршрут заявки на вакансию" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "Описание вакансии" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "Предложение о работе" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "Условия предложения работы" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "Шаблон условий предложения работы" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "Условия предложения работы" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "Статус предложения о работе" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "Предложение работы: {0} уже отправлено кандидату: {1}" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "Вакансия" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "Связанная вакансия" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "Шаблон вакансии" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "Вакансии" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "Вакансии на должность {0} уже открыты или набор завершен согласно штатному расписанию {1}" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "Заявка на работу" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "Заявка на работу {0} была связана с вакансией {1}" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "Должностная инструкция, необходимые квалификации и т.д." + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "Вакансии" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "Дата трудоустройства" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "Июль" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "Июнь" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "KRA" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "Метод оценки KRA" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "KRA обновлен для всех дочерних целей." + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "KRA vs Цели" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "KRA" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "Ключевая область производительности" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "Ключевая область ответственности" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "Ключевая область результатов" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "Отмененные дни LWP ({0}) не соответствуют фактической сумме корректировок заработной платы ({1}) для сотрудника {2} с {3} по {4}" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "Последний день" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "Последняя успешная синхронизация отметок о входе сотрудников. Сбрасывайте это только в том случае, если вы уверены, что все журналы синхронизированы из всех мест. Пожалуйста, не изменяйте это, если вы не уверены." + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "Последнее значение одометра " + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "Последняя синхронизация отметок о входе" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "Последний {0} был в {1}" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "Поздние отметки" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "Поздняя отметка" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "Настройки позднего входа и раннего выхода для автоматического присутствия" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "Поздний вход" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "Льготный период для опоздания" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "Значения широты и долготы необходимы для отметки о входе." + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "Широта: {0}°" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "Отпуск" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "Регулировка отпуска" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "Оставить. Корректировка для этого распределения уже существует: {0}. Пожалуйста, исправьте существующую корректировку." + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "Распределение отпуска" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "Распределение отпуска существует" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "Распределения отпусков" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "Заявка на отпуск" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "Период заявки на отпуск не может приходиться на два непоследовательных отпуска {0} и {1}." + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "Уведомление согласования отпуска" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "Шаблон уведомления согласования отпуска" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "Согласующий отпуск" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "Согласующий отпуск обязателен в заявлении на отпуск" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "Имя согласующего отпуск" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "Остаток отпусков" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "Остаток отпусков до подачи заявки" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "Список заблокированных отпусков" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "Разрешить список заблокированных отпусков" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "Список заблокированных отпусков разрешен" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "Дата списка заблокированных отпусков" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "Даты списка заблокированных отпусков" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "Название списка заблокированных отпусков" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "Отпуск заблокирован" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "Панель управления отпусками" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "Детали отпуска" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "Компенсация отпуска" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "Сумма выплаты за день отпуска" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "История отпуска" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "Журнал отпусков" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "Запись в журнале отпусков" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "Дата 'По' в записи регистра отпусков должна быть после даты 'С'. В настоящее время дата 'С' - {0}, а дата 'По' - {1}" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "Период отпуска" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "Политика отпусков" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "Назначение политики отпусков" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "Наложение назначений политики отпусков" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "Детали политики отпусков" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "Детали политики отпусков" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "Политика отпусков: {0} уже назначено для сотрудника {1} на период с {2} по {3}" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "Уведомление согласования отпуска" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "Шаблон уведомления согласования отпуска" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "Тип отпуска" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "Название типа отпуска" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "Тип отпуска может быть либо компенсационным, либо заработанным." + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "Тип отпуска может быть либо без оплаты, либо частично оплачиваемым" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "Тип отпуска обязателен" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "Тип отпуска {0} не может быть назначен, так как это отпуск без оплаты" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "Тип отпуска {0} не может быть перенесен на следующий период" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "Тип отпуска {0} не подлежит денежной компенсации" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "Отпуск без сохранения заработной платы" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "Отпуск без сохранения заработной платы не соответствует утвержденным записям {}" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "Выделение листы пропускается для {0}, поскольку количество выделяемых листов равно 0." + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "Выделение отпуска {0} связано с заявлением на отпуск {1}" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "Отпуск уже назначен для данного назначения политики отпусков" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "Настройки отпусков и возмещения расходов" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "Заявление на отпуск связано с назначениями отпуска {0}. Заявление на отпуск не может быть установлено как отпуск без сохранения заработной платы" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Отпуск не может быть выделен до {0}, так как остаток отпуска уже перенесен в будущую запись распределения отпуска {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Отпуск не может быть использован/отменен до {0}, поскольку остаток отпуска уже перенесен в будущую запись распределения отпусков {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "Отпуск типа {0} не может быть дольше {1}." + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "Отпуск(а) истек(ли)" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "Отпуск(а) ожидают утверждения" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "Отпуск(а) взят(ы)" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "Отпуска" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "Отпуска и праздники" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "Листы после корректировки" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "Отпуска выделены" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "Отпуска истекли" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "Отпуска, ожидающие утверждения" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "Отпуска типа {0} не будут перенесены, поскольку перенос отключен." + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "Отпусков в год" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "Листы для регулировки" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "Отпуск, который вы можете использовать в качестве компенсации за отработанный вами отпуск. Вы можете подать заявку на отгул, используя форму «Запрос на отгул». Нажмите {0} чтобы узнать больше" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Остаток" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "Жизненный цикл" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "Лайм" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "Свяжите цикл и тег KRA с вашей целью, чтобы обновлять целевой балл оценки на основе прогресса в достижении цели." + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "Связанный проект {} и задачи удалены." + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "Счет кредита" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "Кредитный продукт" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "Погашение кредита" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "Ввод данных о погашении кредита" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "Кредит не может быть погашен из заработной платы сотрудника {0} поскольку заработная плата обрабатывается в валюте {1}" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "Нахождение..." + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "Местоположение/ID устройства" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "Требуется проживание" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "Выйти" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "Тип журнала" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "Для регистраций, попадающих на смену, требуется тип журнала: {0}." + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "Ошибка входа" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "Войти в Frappe HR" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "Долгота: {0}°" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "Нижний диапазон" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "MICR" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "Сделать банковскую запись" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "Заявление на получение обязательного пособия" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "Обязательные поля, необходимые для этого действия:" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "Ручная оценка" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "Вручную" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "Mar" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "Отметить посещаемость" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "Отметить автоматическое присутствие в праздничные дни" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "Отметить как завершенное" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "Отметить как «В процессе»" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "Отметить как {0}" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "Отметить посещаемость как {0} для {1} в выбранные даты?" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "Отмечайте посещаемость на основе «Проверки сотрудников» для сотрудников, назначенных на эту смену." + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "Отмечайте посещаемость в существующих журналах регистрации прихода/ухода перед изменением настроек смены" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "Отметить {0} как выполненное?" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "Отметить {0} {1} как {2}?" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "Отмеченная посещаемость" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "HTML-код отмеченной посещаемости" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "Отметка посещаемости" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "Максимальная сумма, подлежащая возмещению" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "Максимальная сумма пособия" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "Максимальная сумма пособия (годовая)" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "Максимальное пособие (сумма)" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "Максимальные преимущества (годовые)" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "Максимальная сумма освобождения от налога" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "Максимальная сумма освобождения от уплаты налога не может быть больше максимальной суммы освобождения {0} категории освобождения от уплаты налога {1}" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "Максимальный налогооблагаемый доход" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "Максимальное количество рабочих часов по табелю учета рабочего времени" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "Максимальная сумма пособия" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "Максимальное количество перенесенных листов" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "Максимально допустимое количество последовательных отпусков" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "Превышено максимальное количество последовательных отпусков" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "Максимальное количество обналичиваемых листов" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "Максимальная освобожденная сумма" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "Максимальная сумма освобождения от уплаты налога" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "Максимально допустимое количество отпусков за один период отпуска" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "Максимально допустимое количество сверхурочных часов" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "Максимальное количество сверхурочных часов, разрешенных в день" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "Максимальный годовой налогооблагаемый доход, дающий право на полную налоговую льготу. Налог не взимается, если доход не превышает этот лимит." + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "Максимальное количество обналичиваемых листов для {0} составляет {1}" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "Максимально допустимый отпуск для типа отпуска {0} составляет {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "Май" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "Предпочтения в еде" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "Медицинский" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "Пробег" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "Минимальный налогооблагаемый доход" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "Минимальный год для получения пособия" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "Минимальное количество рабочих дней, необходимое с даты присоединения, чтобы подать заявление на этот отпуск" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "Отсутствует авансовый счет" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "Отсутствует обязательное поле" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "Отсутствующие вступительные записи" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "Отсутствует дата смены" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "Отсутствующие компоненты заработной платы" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "Отсутствует налоговая плита" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "Способ передвижения" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "Для осуществления платежа необходимо указать способ оплаты" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "С начала месяца по сегодняшний день" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "С начала месяца (валюта компании)" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "Ежемесячный табель посещаемости" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "Не допускается более одного выбора для {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "Для компонента зарплаты {0} между {1} ​​и {2} существует несколько дополнительных зарплат со свойством перезаписи." + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "Многосменные назначения" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "Множители, которые корректируют почасовую сумму сверхурочной работы для определенных сценариев\n\n" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "Мои достижения" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "Мои претензии" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "Мои листы" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "Мои запросы" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "Ошибка имени" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "Имя организатора" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "Чистая зарплата" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "Чистая заработная плата (валюта компании)" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "Информация о чистой оплате" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "Чистая заработная плата не может быть меньше 0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "Сумма чистой заработной платы" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "Чистая заработная плата не может быть отрицательной" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "Новый идентификатор сотрудника" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "Новая статья расходов" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "Новый налог на расходы" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "Новый отзыв" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "Новые сотрудники (в этом месяце)" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "Выделены новые отпуска" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "Выделены новые листы" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "Выделено новых отпусков (в днях)" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "Новые сменные назначения будут созданы после этой даты." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "Не найден банковский/денежный счёт для валюты {0}. Создайте его для компании {1}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "Сотрудник не найден" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "Для указанного значения поля «Сотрудник» не найдено. '{}': {}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "Сотрудники не выбраны" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "Интервью не запланировано." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "Период отпуска не найден" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "Сотруднику не назначены отпуска: {0} для типа отпуска: {1}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "Расчетный лист для сотрудника: {0}не найден." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "Не найдено расчетных листков с {0} для сотрудника {1} за расчетный период {2}." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "Назначение структуры заработной платы для сотрудника {0} на дату {1}не найдено" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "Назначение структуры заработной платы для сотрудника {0} не найдено до {1}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "Структура заработной платы не назначена сотруднику {0} на указанную дату {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "Нет структуры заработной платы" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "Запросы на смену не выбраны" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "Планов по укомплектованию штата для этой должности не найдено" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "Не найдено активного назначения структуры заработной платы для сотрудника {0} со структурой заработной платы {1} на дату начала задолженности {2}или позже" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "Не найдено ни одного активного сотрудника, связанного с идентификатором электронной почты {0}. Попробуйте войти, используя идентификатор электронной почты сотрудника, или обратитесь к менеджеру по персоналу для получения доступа." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "Для сотрудника {0} на указанные даты не найдено активной или стандартной структуры заработной платы" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "Никаких дополнительных расходов не было добавлено" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "Никаких авансов не обнаружено" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "В последнем расчетном листке по зарплате не найден соответствующий компонент заработка для правила выплаты чаевых: {0}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "Не найдено соответствующих компонентов для правила выплаты вознаграждения: {0}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "Не найдено ни одного подходящего слэба для расчета суммы чаевых в соответствии с Правилом чаевых: {0}" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "В имеющихся расчетных листках по зарплате задолженность не обнаружена." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "В расчетном листке не обнаружено компонентов задолженности. Убедитесь, что в разделе «Компоненты зарплаты» отмечен флажок «Компонент задолженности»." + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "Информация о просроченной задолженности не обнаружена" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "Не найдено записей о посещаемости для сотрудника {0} между {1} и {2}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "По данному критерию записи о посещаемости не найдены." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "Записи о посещаемости не найдены." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "Нет необходимости создавать записи о посещаемости" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "Изменений в таймингах не обнаружено." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "Сотрудники не найдены" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "Не найдено сотрудников по указанным критериям:
    Компания: {0}
    Валюта: {1}
    Счет к выплате заработной платы: {2}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "По выбранным критериям сотрудники не найдены" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "Не найдено ни одного сотрудника с выбранными фильтрами и активной структурой заработной платы" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "Никаких дополнительных расходов" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "Отзывов пока нет" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "Элементы не выбраны" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "Не найдено распределение отпуска для {0} для {1} на указанную дату." + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "Не найдена запись об отпуске для сотрудника {0} на {1}" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "Отпуска не выделены." + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "Больше никаких обновлений" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "Количество должностей" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "Нет ответов от" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "Не найдено расчетного листа по зарплате для отправки по выбранным выше критериям ИЛИ расчетный лист уже отправлен" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "Расчетные листки не найдены" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "Для выбранного сотрудника из {0}не найдено зарплатных листков." + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "Никаких налогов не добавлено" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "Допустимый сдвиг для времени журнала не найден" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "Нет выбранных {0}" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "{0} не добавлено" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "Не дневник" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "Необлагаемые налогом доходы" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "Неоплачиваемые часы" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "Неоплачиваемые часы (NB)" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "Необналичиваемые отпуска" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "Невегетарианское" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "Примечание: смена не будет перезаписана в существующих записях о посещаемости" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "Примечание: общее количество выделенных отпусков {0} не должно быть меньше уже утвержденных отпусков {1} за этот период" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "Примечание: Ваша зарплатная квитанция защищена паролем, пароль для разблокировки PDF-файла имеет формат {0}." + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "Ничего не нужно менять" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "Срок уведомления" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "Шаблон уведомления" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "Уведомлять пользователей по электронной почте" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "Nov" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "Количество сотрудников" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "Количество позиций" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "Количество листов" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "Количество циклов удержания" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "Количество отпусков, подлежащих инкассации, в зависимости от настроек типа отпуска" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "OTP-код" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "Проверка одноразовых паролей" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "ВНЕ" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "Полученный средний рейтинг" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "Октябрь" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "Записи одометра" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "Показания одометра" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "Вне Смены" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "Вне смены" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "Срок действия предложения" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "Условия предложения работы" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "Дата" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "На дежурстве" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "В отпуске" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "Адаптация" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "Вводные мероприятия" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "Начало адаптации" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "Одобрить этот запрос могут только утверждающие." + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "Только заполненные документы могут быть поданы" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "Можно подать только жалобу сотрудника со статусом {0} или {1}" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "Только интервьюеру разрешено оставлять отзыв об интервью" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "К участию допускаются только собеседования со статусом «Одобрено» или «Отклонено»." + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "Подавать можно только заявления на отпуск со статусом «Одобрено» и «Отклонено»" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "Можно подать только запрос на смену со статусом 'Одобрено' или 'Отклонено'" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "Отменить можно только истекшее распределение" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "Только интервьюеры могут оставлять отзывы" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "Только пользователи с ролью {0} могут создавать заявления на отпуск задним числом" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "Только {0} Целей может быть {1}" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "Открыто и одобрено" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "Открытая обратная связь" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "Открыть сейчас" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "Открытие закрыто." + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "Дополнительный список праздников не установлен для периода отпуска {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "Необязательные отпуска — это выходные дни, которые сотрудники могут выбрать из списка выходных дней, опубликованного компанией." + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "Организационная структура" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "Прочие налоги и сборы" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "Другие" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "Время ухода" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "Исходящая зарплата" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "Избыточное распределение" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "Общий средний рейтинг" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "Запрос на перекрывающееся присутствие" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "Посещаемость перекрывающихся смен" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "Запросы на перекрывающиеся смены" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "Перекрывающиеся смены" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "Через некоторое время" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "Расчет суммы сверхурочных часов" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "Подробности сверхурочной работы" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "Продолжительность сверхурочной работы" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "Продолжительность сверхурочной работы для {0} превышает максимально допустимое количество сверхурочных часов" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "Компонент заработной платы за сверхурочную работу" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "Скидка за сверхурочную работу" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "Ошибка создания пропуска сверхурочной работы для {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "Не удалось создать квитанцию об оплате сверхурочных часов" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "Сверхурочный шаг" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "Ошибка подачи квитанции о сверхурочной работе для {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "Не удалось подать квитанцию об оплате сверхурочных часов" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "Подана заявка на сверхурочную работу" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "Создан талон сверхурочной работы для {0} сотрудников" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "Создание заявки на сверхурочную работу поставлено в очередь. Это может занять несколько минут" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "Подача заявления на сверхурочную работу поставлена в очередь. Это может занять несколько минут" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "Пробел сверхурочного времени:{0} был создан между {1} и {2}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "Создано квитанций о сверхурочной работе" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "Квитанции о сверхурочной работе предоставлены для {0} сотрудников" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "Тип сверхурочной работы" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "Заработок за сверхурочную работу будет учитываться в данном компоненте заработной платы для выплаты." + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "Перезаписать сумму структуры заработной платы" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "Номер PAN" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "Счет ПФ" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "Сумма ПФ" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "Кредит ПФ" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "Уведомление PWA" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "Оплачено через расчетный листок" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "Цель родителей" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "Неполная занятость" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "Частично спонсируется, требуется частичное финансирование" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "Частично востребовано и возвращено" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "Политика паролей" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "Политика паролей не может содержать пробелы или одновременные дефисы. Формат будет автоматически перестроен." + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "Политика паролей для зарплатных листков не установлена." + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "Множители ставок оплаты" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "Оплата через платежную запись" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "Оплата через зарплатную квитанцию" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "Для подачи заявления на возмещение расходов обязательно наличие счета к оплате." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "Платежный счет обязателен" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "Дата платежа" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "Дни оплаты" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "Помощь в расчете платежных дней" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "Зависимость от дней оплаты" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "Расчеты дней оплаты производятся на основе этих настроек расчета заработной платы." + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "Оплата и учет" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "Выплата {0} с {1} до {2}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "Выплата" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "Способ выплаты" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "Выплата невостребованной суммы в последнем расчетном цикле" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "Расчет зарплаты" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "Расчет заработной платы на основе" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "Корректировка заработной платы" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "Коррекция заработной платы для ребенка" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "Центр затрат на заработную плату" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "Центры затрат на заработную плату" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "Панель управления расчетом заработной платы" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "Дата выплаты заработной платы" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "Подробная информация о заработной плате сотрудников" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "Отмена записи о заработной плате поставлена в очередь. Это может занять несколько минут." + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "Частота выплаты заработной платы" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "Информация о заработной плате" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "Номер заработной платы" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "Счет к выплате заработной платы" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "Период расчета заработной платы" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "Дата расчетного периода" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "Периоды выплаты заработной платы" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "Отчеты по заработной плате" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "Настройки Платежей" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "Дата выплаты заработной платы не может быть позже даты увольнения сотрудника." + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "Дата выплаты заработной платы не может быть раньше даты приема сотрудника на работу." + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "Дата выплаты заработной платы не может быть в прошлом. Это необходимо для того, чтобы заявки можно было подавать как за текущий, так и за будущий период выплаты заработной платы." + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "Ожидаемая (неоплаченная) сумма из предыдущих авансов" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "Ожидаемые возвраты активов" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "В ожидании FnF" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "Ожидаемые интервью" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "Ожидаемые анкеты" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "Процентный вычет" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "Производительность" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "Окончательная отмена {0}" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "Навсегда отправить {0}" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "Сдельная работа" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "Планируемое количество позиций" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "Сначала включите функцию «Автопосещение» и завершите настройку." + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "Пожалуйста, сначала выберите компанию" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "Пожалуйста, сначала назначьте структуру заработной платы для сотрудника {0}, применимую с или до {1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "Проверьте, находится ли сотрудник в отпуске или существует ли присутствие с таким же статусом для выбранного(ых) дня(дней)." + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "Пожалуйста, подтвердите, как только вы завершите обучение" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "Сначала создайте новый {0} для даты {1}." + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "Пожалуйста, удалите сотрудника {0}, чтобы отменить этот документ." + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "Перед созданием группы ежедневных сводок работ включите входящую учетную запись по умолчанию." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "Пожалуйста, введите обозначение" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "Прежде чем получать данные о сверхурочной работе, пожалуйста, укажите данные о сотруднике, дату размещения и компанию." + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "Пожалуйста, уменьшите {0}, чтобы избежать наложения времени сдвига на себя." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "Пожалуйста, смотрите приложение." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "Выберите компанию и должность" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "Пожалуйста, выберите сотрудника" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "Сначала выберите «Сотрудник»." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "Пожалуйста, выберите Фильтр на основе" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "Сначала выберите дату и периодичность выплаты заработной платы" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "Пожалуйста, выберите дату." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "Выберите график смен и дату(ы) назначения." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "Выберите тип смены и дату(ы) назначения." + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "Пожалуйста, сначала выберите компанию" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "Сначала выберите компанию." + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "Пожалуйста, выберите CSV-файл" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "Пожалуйста, выберите дату." + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "Пожалуйста, выберите заявителя" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "Для выполнения этого действия выберите хотя бы один запрос на смену." + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "Пожалуйста, выберите хотя бы одного сотрудника для выполнения этого действия." + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "Для выполнения этого действия выберите хотя бы одну строку." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "Пожалуйста, выберите компанию." + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "Пожалуйста, сначала выберите сотрудника" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "Выберите сотрудников, для которых необходимо создать оценки" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "Пожалуйста, выберите статус посещения на полдня." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "Пожалуйста, выберите месяц и год." + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "Сначала выберите цикл оценки." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "Пожалуйста, выберите статус посещения." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "Выберите сотрудников, посещаемость которых вы хотите отметить." + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "Пожалуйста, выберите зарплатные листки для отправки по электронной почте" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "Установите «Счет для выплаты заработной платы по умолчанию» в настройках компании по умолчанию" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "Установите базовый компонент и компонент HRA в компании {0}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "Установите компонент заработка для типа отпуска: {0}." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "Пожалуйста, установите расчет заработной платы на основе настроек расчета заработной платы" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "Пожалуйста, установите дату увольнения сотрудника: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "Пожалуйста, установите диапазон дат менее 90 дней." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "Пожалуйста, установите счет в компоненте зарплаты {0}" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "Установите шаблон по умолчанию для уведомления об утверждении отпуска в настройках отдела кадров." + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "Установите шаблон по умолчанию для уведомления о статусе отпуска в настройках отдела кадров." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "Пожалуйста, установите Шаблон оценки для всех {0} или выберите шаблон в таблице «Сотрудники» ниже." + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "Пожалуйста, укажите компанию" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "Пожалуйста, установите дату вступления в должность для сотрудника {0}" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "Пожалуйста, составьте список праздников." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "Пожалуйста, укажите диапазон дат." + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "Пожалуйста, установите дату увольнения сотрудника {0}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "Пожалуйста, установите {0} и {1} в {2}." + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "Пожалуйста, установите {0} для сотрудника {1}" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "Пожалуйста, установите {0} для Сотрудника: {1}" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "Пожалуйста, установите {0}." + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "Настройте систему именования сотрудников в разделе «Кадровые ресурсы» > «Настройки HR»." + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "Пожалуйста, настройте серию нумерации для посещаемости через «Настройка» > «Серия нумерации»." + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "Пожалуйста, оставьте свой отзыв об обучении, нажав «Отзыв об обучении», а затем «Новый»." + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "Пожалуйста, укажите соискателя, данные о котором необходимо обновить." + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "Пожалуйста, укажите {0} и {1} (если есть) для правильного расчета налога в будущих зарплатных ведомостях." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "Пожалуйста, отправьте {0} прежде чем отметить цикл как завершенный." + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "Пожалуйста, обновите свой статус для этого обучающего мероприятия" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "Опубликовано" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "Дата публикации" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "Предпочтительный район для проживания" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "Присутствует" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "Текущие записи" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "Запретить самостоятельное одобрение заявок на расходы, даже если у пользователя есть разрешения" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "Запретить самостоятельное одобрение отпусков, даже если у пользователя есть разрешения" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "Предварительный просмотр расчетного листка" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "Основная сумма" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "Напечатано на {0}" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "Привилегированный отпуск" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "Испытательный срок" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "Испытательный срок" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "Процесс посещаемости после" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "Процесс ввода данных по расчету заработной платы на основе данных о сотруднике" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "Запросы на обработку" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "Запросы на смену процесса" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "Обработка выплаты отпускных через отдельную платежную запись вместо расчетного листка" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "Обрабатывать {0} запросы на сдвиг как {1}?" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "Обработка запросов" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "Обработка запросов..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "Обработка заявок на смену поставлена в очередь. Это может занять несколько минут." + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "Профессиональные налоговые вычеты" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "Знание" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "Выгода" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "Рентабельность проекта" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "Повышение" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "Дата повышения" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "Недвижимость уже добавлена" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "Вычеты из резервного фонда" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "Множитель государственных праздников" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "Опубликовать полученные заявки" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "Опубликовать диапазон зарплат" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "Опубликовать на сайте" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "Цель и сумма" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "Цель поездки" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "Отказано в разрешении на push-уведомление" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "Push-уведомления отключены" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "На вашем сайте отключены push-уведомления" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "Электронное письмо с анкетой отправлено" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "Быстрые фильтры" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "Быстрые ссылки" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "Радиус, в пределах которого разрешена регистрация (в метрах)" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "Оценить цели вручную" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "Критерии оценки" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "Рейтинги" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "Перераспределить листья" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "Причина корректировки" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "Причина запроса" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "Причина удержания зарплаты" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "Причина пропуска автопосещения:" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "Последние запросы на присутствие" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "Недавние расходы" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "Недавние листы" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "Последние запросы на смену" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "Рекомендуется для одного биометрического устройства / регистрации через мобильное приложение" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "Возврат стоимости" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "Набор персонала" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "Аналитика подбора персонала" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "Уменьшать" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "Сокращение максимально допустимого количества отпусков после их распределения может привести к тому, что планировщик выделит неправильное количество заработанных отпусков. Действуйте осторожно." + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "Сокращение составляет более чем {0}доступный остаток отпуска {1} для типа отпуска {2}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "Ссылка: {0}" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "Статус выплаты реферального бонуса" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "Подробности направления" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "Данные реферера" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "Имя реферера" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "Размышления" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "Подробности заправки" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "Отклонять" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "Отклонить рекомендацию сотрудника" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "Отклонение" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "Выплата удержанных зарплат" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "Выпущенный" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "Дата освобождения " + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "Дата освобождения отсутствует" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "Оставшиеся преимущества (ежегодные)" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "Напомнить перед" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "Напомнил" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "Напоминания" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "Удалить, если значение равно нулю" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "Арендованный автомобиль" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "Возврат из зарплаты" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "«Погашение с зарплаты» можно выбрать только для срочных кредитов." + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "Возврат невостребованной суммы из зарплаты" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "Повторять по дням" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "Ответы" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "Отчеты в" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "Запросить присутствие" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "Запрос на отпуск" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "Запросить отпуск" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "Запросить смену" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "Запрос аванса" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "Запросил" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "Запрос от (Имя)" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "Требуется полное финансирование" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "Требуемые навыки" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "Требуется для создания сотрудников" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "Перенести собеседование" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "Обязанности" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "Ограничить подачу заявлений на отпуск задним числом" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "Приложение к резюме" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "Ссылка на резюме" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "Ссылка на резюме" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "Сохранено" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "Бонус за удержание" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "Пенсионный возраст (в годах)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "Повторная попытка не удалась" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "Повторить неудачные выделения" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "Повтор успешен" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "Повторные попытки распределения" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "Сумма возврата не может быть больше невостребованной суммы" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "Ознакомьтесь с другими настройками, связанными с отпусками сотрудников и требованиями о возмещении расходов." + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "Рецензент" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "Имя рецензента" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "Пересмотренный CTC" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "Роль, разрешенная для подачи заявления на отпуск задним числом" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "Расписание" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "Цвет состава" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "Название раунда" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "Опыт работы" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "Округлить до ближайшего целого числа" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "Округление" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "Маршрут к пользовательской веб-форме заявления о приеме на работу" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "Строка #{0}: невозможно установить сумму или формулу для компонента зарплаты {1} с переменной, основанной на налогооблагаемой зарплате." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "Строка #{0}: компонент {1} имеет включенные опции {2} и {3}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "Строка #{0}: Сумма табеля учета рабочего времени заменит сумму компонента заработка для компонента зарплаты {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "Номер строки {0}: Сумма не может быть больше суммы задолженности по претензии на возмещение расходов {1}. Сумма задолженности составляет {2}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "Строка {0}# Выделенная сумма {1} не может быть больше невостребованной суммы {2}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "Строка {0}# Сумма оплаты не может быть больше суммы инкассации" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "Строка {0}# Оплаченная сумма не может быть больше общей суммы" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "Строка {0}# Оплаченная сумма не может быть больше запрошенной суммы аванса" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "Строка {0}: С (год) не может быть больше, чем До (год)" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "Строка {0}: Счет голов не может быть больше, чем {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "Строка {0}: Оплаченная сумма {1} больше ожидаемой начисленной суммы {2} по кредиту {3}" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "Строка {0}: {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "Строка {0}: {1} требуется в таблице расходов для регистрации заявления на возмещение расходов." + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "Компонент заработной платы" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "Компонент заработной платы " + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "Счет компонента заработной платы" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "На основе компонентов заработной платы" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "Тип компонента зарплаты" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "Компонент «зарплата» для расчета заработной платы на основе табеля учета рабочего времени." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "Компонент зарплаты {0} не может быть выбран более одного раза в разделе «Льготы сотрудникам»" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "Компонент зарплаты {0} в настоящее время не используется ни в одной структуре зарплаты." + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "Компонент зарплаты {0} должен иметь тип «Доход», чтобы его можно было использовать в книге учета льгот сотрудников." + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "Информация о зарплате" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "Информация о зарплате" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "Ожидаемая зарплата" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "Информация о зарплате" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "Зарплата, выплачиваемая за" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "Выплата заработной платы в зависимости от способа оплаты" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "Выплата заработной платы через ECS" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "Диапазон зарплат" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "Регистр заработной платы" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "Расчетный листок" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "Расчет заработной платы на основе табеля учета рабочего времени" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "Идентификатор зарплатной квитанции" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "Отпуск по зарплате" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "Кредит под залог зарплаты" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "Ссылка на расчетный листок" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "Табель учета рабочего времени с зарплатой" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "Расчетный листок уже существует для {0} на указанные даты" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "Создание зарплатной расписки поставлено в очередь. Это может занять несколько минут" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "Расчетный листок не найден." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "Расчетный листок сотрудника {0} уже создан за этот период" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "Расчетный лист сотрудника {0} уже создан для табеля учета рабочего времени {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "Подача заявления о зарплате поставлена в очередь. Это может занять несколько минут" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "Расчетный листок {0} не подошел для ввода заработной платы {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "Ошибка при выдаче зарплатного листка {0}. Вы можете исправить ошибку {1} и повторить попытку {0}." + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "Квитанции о зарплате" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "Созданы зарплатные листки" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "Представленные расчетные листы" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "Зарплатные листки уже существуют для сотрудников {} и не будут обработаны этой платежной ведомостью." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "Расчетные листки, представленные за период с {0} по {1}" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "Структура заработной платы" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "Назначение структуры заработной платы" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "Поле назначения структуры заработной платы" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "Назначение структуры заработной платы для сотрудника уже существует" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "Назначение структуры заработной платы не найдено для сотрудника {0} на дату {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "Структура заработной платы отсутствует" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "Структура заработной платы должна быть представлена до подачи {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "Структура заработной платы не назначена сотруднику {0} на дату {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "Структура заработной платы {0} не принадлежит компании {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "Структура заработной платы успешно обновлена" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "Удержание из заработной платы" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "Цикл удержания заработной платы" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "Удержание из заработной платы {0} уже существует для сотрудника {1} за выбранный период" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "Зарплата уже обработана за период между {0} и {1}. Период подачи заявления на отпуск не может находиться в этом диапазоне дат." + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "Распределение заработной платы по доходам и вычетам." + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "Компоненты заработной платы типа «Фонд сбережений», «Дополнительный фонд сбережений» или «Кредит фонда сбережений» не устанавливаются." + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "Компоненты заработной платы должны быть частью структуры заработной платы." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "Письма с зарплатными расписками поставлены в очередь на отправку. Проверьте статус {0}." + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "Санкционированная сумма" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "Санкционированная сумма (валюта компании)" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "Санкционированная сумма не может быть больше суммы иска в строке {0}." + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "Запланировано на" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "Заработанный счет" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "Оценка должна быть меньше или равна 5" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "Очки" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "Поиск работы" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "Выберите применимые компоненты для типа сверхурочной работы" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "Выберите первый раунд собеседования" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "Сначала выберите «Интервью»" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "Выберите месяц для отмены LWP" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "Выберите счет для совершения банковского перевода" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "Выберите периодичность выплаты заработной платы." + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "Выберите период расчета заработной платы" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "Выбрать недвижимость" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "Запросы на смену" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "Выберите положения и условия" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "Выбрать пользователей" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "Выберите сотрудника, чтобы получить аванс." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "Выберите сотрудника, которому вы хотите предоставить отпуск." + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "Выберите сотрудника." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "Выберите тип отпуска: больничный, отпуск по собственному желанию, отпуск по временной нетрудоспособности и т. д." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "Выберите дату, после которой истекает срок действия данного отпуска." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "Выберите дату, с которой данное распределение отпуска будет действовать." + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "Выберите конечную дату для вашего заявления на отпуск." + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "Выберите компоненты зарплаты, общая сумма которых будет использоваться из расчетной ведомости для расчета почасовой ставки сверхурочной работы." + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "Выберите дату начала действия вашего заявления на отпуск." + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "Выберите этот параметр, если вы хотите, чтобы назначения смен создавались автоматически на неопределенный срок." + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "Выберите тип отпуска, на который хочет подать заявление сотрудник, например, больничный, отпуск по собственному желанию, отпуск по временной нетрудоспособности и т. д." + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "Выберите утверждающего отпуск, т.е. человека, который одобряет или отклоняет ваши отпуска." + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "Самооценка" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "Ожидается самооценка: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "Оценка самооценки" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "Самооценка" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "Самостоятельное обучение" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "Самостоятельное одобрение заявок на возмещение расходов не допускается." + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "Самостоятельное одобрение отпусков не допускается" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "Семинар" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "Отправить электронные письма по адресу" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "Отправить анкету выхода" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "Отправить анкеты выхода" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "Отправить напоминание об отзыве на собеседовании" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "Отправить напоминание о собеседовании" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "Отправить уведомление об отпуске" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "Копия отправителя" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "Отправка не удалась из-за отсутствия информации об электронной почте сотрудника(ов): {1}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "Отправлено успешно: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "Sep" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "Разделение деятельности" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "Разделение начинается" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "Подробности обслуживания" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "Расходы на обслуживание" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "Установите «С(год)» и «По(год)» на 0, чтобы не указывать верхний и нижний пределы." + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "Установить детали задания" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "Установить детали отпуска" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "Установить дату увольнения сотрудника: {0}" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "Установите фильтры для выбора сотрудников" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "Установить начальный баланс по доходам и налогам от предыдущего работодателя" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "Установите дополнительные фильтры для извлечения сотрудников из списка аттестуемых" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "Установить учетную запись по умолчанию для {0} {1}" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "Установите частоту напоминаний о праздниках" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "Установите свойства, которые следует обновить в мастере сотрудников при подаче заявления на повышение" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "При необходимости установите статус на {0}." + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "Установить {0} для выбранных сотрудников" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "Настройки отсутствуют" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "Расчет по авансам" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "Урегулировать все дебиторские и кредиторские задолженности перед подачей" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "Документ предоставлен пользователю {0} с разрешением «Отправить»" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Смена и посещаемость" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "Фактический конец смены" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "Фактическое время окончания смены" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "Фактическое начало смены" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "Фактическое время начала смены" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "Назначение смены" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "Подробности назначения смен" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "История назначений смен" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "Инструмент назначения смен" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "Назначение смены: {0} создано для сотрудника: {1}" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "Назначения смен, созданные для расписания между {0} и {1} через фоновое задание" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "Посещаемость смены" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "Подробности смены" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "Конец смены" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "Время окончания смены" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "Расположение смены" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "Запрос на смену" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "Утверждающий запрос на смену" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "Фильтры запроса смены" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "Запросы на смену, заканчивающиеся до этой даты, будут исключены." + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "Запросы на смену, начинающиеся после этой даты, будут исключены." + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "График смен" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "Назначение сменного графика" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "Настройки смены" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "Начало смены" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "Время начала смены" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "Статус смены" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "Время переключения передач" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "Инструменты сдвига" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "Тип смены" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "Назначения смен для {0} после {1} уже созданы. Измените дату {2} на более позднюю, чем {3} {4}." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "Shift успешно обновлен до {0}." + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Смены" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "Показать сотрудника" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "Показывать остатки отпусков в расчетном листке" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "Показывать отпуска всех сотрудников отдела в календаре" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "Показать расчетный лист" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "Показ" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "Больничный" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "Одиночное задание" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "Навык" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "Оценка навыков" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "Название навыка" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "Навыки" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "Пропустить автоматическое присутствие" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "Пропускаем назначение структуры заработной платы для следующих сотрудников, так как записи о назначении структуры заработной платы для них уже существуют. {0}" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "Источник и рейтинг" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "Исходные и целевые сдвиги не могут быть одинаковыми" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "Спонсируемая сумма" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "Сведения о персонале" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "План кадрового обеспечения" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "Детали плана кадрового обеспечения" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "План штатного расписания {0} уже существует для назначения {1}" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "Стандартный множитель" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "Стандартная сумма налогового вычета" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "Стандартные рабочие часы" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "Даты начала и окончания не попадают в допустимый расчетный период, невозможно рассчитать {0}." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "Дата начала не может быть позже даты окончания" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "Дата начала не может быть позже даты окончания." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "Дата начала: {0}" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "Время начала и время окончания не могут совпадать." + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "Статистический компонент" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "Статус для второй половинки" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "Опционы на акции" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "Запретить пользователям подавать заявления на отпуск в последующие дни." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "Строго на основе типа журнала регистрации сотрудников" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "Структуры были успешно назначены" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "Дата подачи" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "Отправка не удалась" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "Отправка {0} перед {1} не допускается" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "Отправить отзыв" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "Отправить сейчас" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "Подать квитанции о сверхурочной работе" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "Предоставить доказательство" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "Отправить расчетный лист" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "Для подтверждения отправьте это заявление на отпуск." + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "Отправьте это, чтобы создать запись о сотруднике" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "Подано через Payroll Entry" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "Отправка расчетных листков и создание журнальных записей..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "Отправка расчетных листков..." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "Дочерние компании уже запланировали {1} вакансий при бюджете {2}. В штатном плане для {0} должно быть выделено больше вакансий и бюджета для {3}, чем запланировано для дочерних компаний" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "Успешно создано {0} для сотрудников:" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "Успешно {0} {1} для следующих сотрудников:" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "Сумма всех предыдущих слэбов" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "Сумма пособий {0} превышает максимальный предел {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "Обобщенный вид" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "Синхронизация {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "Синтаксическая ошибка" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "Синтаксическая ошибка в условии: {0} в секции подоходного налога" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "Возьмите точное количество полных лет" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "Налоги и льготы" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "Налог вычтен до даты" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "Категория освобождения от уплаты налога" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "Декларация об освобождении от уплаты налогов" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "Доказательства освобождения от уплаты налогов" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "Настройка налога" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "Налог на дополнительную заработную плату" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "Налог на гибкие льготы" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "Налогооблагаемый доход на дату" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "Предельный размер налоговой льготы по налогооблагаемому доходу" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "Налогооблагаемая заработная плата" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "Налогооблагаемые плиты заработной платы" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "Налоги и сборы" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "Налоги и сборы по подоходному налогу" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "Такси" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "Команда продвигается" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "Претензии команды" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "Команда уходит" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "Запросы команды" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "Обновления команды" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "Срок полномочий" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "Спасибо за заявку." + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "Валюта {0} должна совпадать с валютой компании по умолчанию. Выберите другой счёт." + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "Дата, на которую компонент заработной платы с указанием суммы будет учитываться при расчете заработка/вычета в расчетном листке. " + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "День месяца, когда следует предоставлять отпуска" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "День(ы), на которые вы подаёте заявление на отпуск, являются праздничными. Вам не нужно подавать заявление на отпуск." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "Дни между {0} и {1} не являются праздничными днями." + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "Первый утверждающий в списке будет установлен в качестве утверждающего по умолчанию." + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "Доля дневной зарплаты на отпуск должна быть в пределах от 0 до 1" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "Доля дневной заработной платы, выплачиваемая за работу в течение половины рабочего дня" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "Метрики для этого отчёта рассчитываются на основе {0}. Установите {0} в {1}." + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "Метрики для этого отчёта рассчитываются на основе {0}. Установите {0} в {1}." + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "Расчетный листок, отправляемый сотруднику по электронной почте, будет защищен паролем, пароль будет сгенерирован на основе политики паролей." + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "Время после начала смены, когда регистрация считается опозданием (в минутах)." + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "Время до окончания смены, когда уход считается ранним (в минутах)." + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "Время до начала смены, в течение которого регистрация сотрудников считается посещаемостью." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "Теория" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "В этом месяце праздников больше, чем рабочих дней." + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "Разницы в выплате задолженности по существующим и новым компонентам структуры заработной платы не существует." + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "В штатном расписании вакансий нет {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "Для {0} не назначена структура заработной платы. Сначала назначьте структуру заработной платы." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "Нет сотрудника с указанием структуры зарплаты: {0}. Назначьте сотруднику {1}, чтобы просмотреть зарплатный листок" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "Эти отпуска являются праздничными днями, разрешенными компанией, однако их использование является необязательным для сотрудника." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "Это действие предотвратит внесение изменений в связанные с оценкой отзывы/цели." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "Эта регистрация происходит вне назначенных часов смены и не будет учитываться при посещении. Если смена назначена, скорректируйте её временной интервал и снова выберите «Выбрать смену»." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "Этот компенсационный отпуск будет применяться с {0}." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "У этого сотрудника уже есть журнал с такой же временной меткой.{0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "Эта ошибка может быть вызвана неверной формулой или условием." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "Эта ошибка может быть вызвана неверным синтаксисом." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "Эта ошибка может быть вызвана отсутствием или удалением поля." + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "В этом поле можно установить максимальное количество последовательных отпусков, на которые может подать заявление сотрудник." + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "Это поле позволяет вам установить максимальное количество отпусков, которые могут быть выделены ежегодно для этого типа отпуска при создании политики отпусков" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "Это основано на посещаемости данного сотрудника" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "Этот метод предназначен только для режима разработчика" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "Это приведет к перезаписи налогового компонента {0} в расчетном листке, и налог не будет рассчитываться на основе налоговых ведомостей" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "Это приведет к отправке зарплатных листков и созданию записи в журнале начислений. Вы хотите продолжить?" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "Время после окончания смены, в течение которого уход с работы засчитывается в посещаемость." + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "Время, затраченное на заполнение открытых позиций" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "Время заполнения" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "Хронология" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "Подробности табеля учета рабочего времени" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "Сроки" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "Общая сумма" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "Дата \"До\" должна быть больше даты \"С\"" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "Пользователю" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "Чтобы разрешить это, включите {0} в разделе {1}." + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "Чтобы подать заявку на неполный рабочий день, отметьте «Неполный рабочий день» и выберите дату неполного рабочего дня" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "Дата \"до\" не может быть равна или меньше даты \"от\"" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "Дата не может быть позже даты увольнения сотрудника." + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "Дата \"до\" не может быть меньше даты \"от\"" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "Дата не может быть позже даты увольнения сотрудника" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "До даты не может быть раньше с даты" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "Чтобы перезаписать сумму компонента зарплаты для налогового компонента, включите {0}" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "До(года)" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "Год до (год) не может быть меньше года с (год)" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "Сегодня день рождения у {0}🎉" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "Сегодня {0} в нашей компании! 🎉" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "Сегодня в нашей компании {0} завершилось {1} {2} ! 🎉" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "Полное отсутствие" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "Всего начислено" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "Общая фактическая сумма" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "Общая сумма аванса" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "Общая сумма аванса (валюта компании)" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "Всего выделено отпусков" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "Всего выделено отпусков" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "Общая возмещенная сумма" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "Общая сумма не может быть равна нулю" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "Общая стоимость восстановления активов" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "Общая заявленная сумма" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "Общая заявленная сумма (валюта компании)" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "Общее количество дней без оплаты" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "Общая заявленная сумма" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "Общий вычет" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "Общая сумма вычета (валюта компании)" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "Всего ранних выходов" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "Общий доход" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "Общий доход" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "Общий предполагаемый бюджет" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "Общая предполагаемая стоимость" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "Общая курсовая прибыль/убыток" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "Общая сумма освобождения" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "Заявление на возмещение общих расходов (через заявление на возмещение расходов)" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "Заявление на возмещение общих расходов (через заявления на возмещение расходов)" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "Общий счет голов" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "Общая валовая заработная плата" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "Общее количество часов (T)" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "Общий подоходный налог" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "Общая сумма процентов" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "Всего поздних записей" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "Общее количество дней отпуска" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "Всего листов" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "Всего листьев ({0})" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "Всего выделено листьев" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "Всего листьев инкассировано" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "Полное погашение кредита" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "Общая чистая заработная плата" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "Общее количество неоплаченных часов" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "Общая продолжительность сверхурочной работы" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "Общая сумма к оплате" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "Общая сумма оплаты" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "Общая выплата" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "Общее настоящее" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "Общая основная сумма" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "Общая сумма дебиторской задолженности" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "Всего отставок" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "Общая санкционированная сумма" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "Общая санкционированная сумма (валюта компании)" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "Общий балл" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "Общая самооценка" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "Общая сумма аванса не может превышать общую санкционированную сумму" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "Общее количество выделенных отпусков превышает максимально допустимое количество для типа отпуска {0} для сотрудника {1} за этот период" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "Общее количество выделенных отпусков {0} не может быть меньше уже утвержденных отпусков {1} за период" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "Всего прописью" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "Итого прописью (валюта компании)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "Общее количество выделенных отпусков не может превышать годовую норму {0}." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "Общее количество выделенных отпусков является обязательным для типа отпуска {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "Общая сумма всех льгот для сотрудников не может превышать максимальную сумму льгот {0}" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Общая заработная плата, начисленная по данному компоненту для данного сотрудника с начала года (расчетного периода или финансового года) до даты окончания текущего расчетного листка." + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "Общая заработная плата, начисленная данному сотруднику с начала месяца до даты окончания текущего расчетного листка." + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Общая заработная плата, начисленная данному сотруднику с начала года (расчетного периода или финансового года) до даты окончания текущего расчетного листка." + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "Суммарный вес всех {0} должен составлять 100. В настоящее время он составляет {1}%" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "Всего рабочих дней в году" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "Общее количество рабочих часов не должно превышать максимальное количество рабочих часов {0}" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "Тренироваться" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "Электронная почта тренера" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "Имя тренера" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "Обучение" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "Дата обучения" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "Учебное мероприятие" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "Сотрудник учебного мероприятия" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "Учебное мероприятие:" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "Учебные мероприятия" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "Обратная связь по обучению" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "Программа обучения" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "Результат обучения" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "Результат обучения Сотрудник" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "Тренинги" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "Тренинги (на этой неделе)" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "Транзакции не могут быть созданы для неактивного сотрудника {0}." + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "Дата перевода" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "Командировка" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "Требуется аванс на поездку" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "Путешествие из" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "Финансирование поездок" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "Маршрут путешествия" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "Запрос на поездку" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "Расчет стоимости запроса на поездку" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "Путешествие в" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "Тип путешествия" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "Тип доказательства" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "Не удалось определить ваше местоположение" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "Разархивировать" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "Невостребованная сумма" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "Невостребованная сумма (валюта компании)" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "На рассмотрении" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "Отменить привязку платежа" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "Несвязанная запись о посещаемости из проверок сотрудников: {}" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "Несвязанные журналы" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "Неотмеченная посещаемость в течение дней" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "Найдены неотмеченные журналы регистрации" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "Неотмеченные дни" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "Неотмеченный заголовок сотрудника" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "HTML-код неотмеченных сотрудников" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "Неотмеченные дни" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "Неоплаченное начисление" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "Заявление о неоплаченных расходах" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "Неустроенный" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "Неурегулированные транзакции" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "Неотправленные оценки" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "Неотслеживаемые часы" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "Неотслеживаемые часы (U)" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "Неиспользованные листья" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "Предстоящие праздники" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "Напоминание о предстоящих праздниках" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "Предстоящие смены" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "Обновление расходов" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "Обновление данных о соискателе работы" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "Прогресс обновления" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "Обновление ответа" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "Обновление структуры заработной платы" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "Обновить статус" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "Обновление налога" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "Обновлен статус с {0} на {1} для даты {2} в записи посещаемости {3}" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "Статус соискателя вакансии обновлен до {0}" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "Обновлен статус предложения о работе {0} для связанного соискателя {1} до {2}" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "Обновлен статус связанного соискателя {0} до {1}" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "Загрузить посещаемость" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "Загрузить HTML" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "Загрузить изображения или документы" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "Загрузка..." + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "Верхний диапазон" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "Использованный отпуск(ы)" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "Использованные листья" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "Вакансии" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "Количество вакансий не может быть ниже текущего количества мест" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "Вакансии заполнены" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "Подтвердить посещаемость" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "Проверка присутствия сотрудников на работе..." + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "Значение / Описание" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "Значение отсутствует" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "Переменная" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "Переменная, основанная на налогооблагаемой зарплате" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "Вегетарианец" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "Расходы на транспортные средства" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "Журнал транспортного средства" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "Автосервис" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "Элемент технического обслуживания транспортного средства" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "Просмотреть цели" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "Просмотреть историю отпусков" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "Просмотреть зарплатные квитанции" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "Фиолетовый" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "ВНИМАНИЕ: Модуль управления кредитами отделен от ERPNext." + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "Внимание: Недостаточный баланс отпуска для типа отпуска {0} в этом распределении." + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "Внимание: Недостаточный баланс отпуска для типа отпуска {0}." + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "Внимание: Заявка на отпуск содержит следующие даты блокировки" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "Внимание: у {0} уже есть активное назначение смены {1} на некоторые/все эти даты." + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "Листинг веб-сайта" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "Множитель выходного дня" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "Вес (%)" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "Если установлено значение «Неактивно», сотрудники с конфликтующими активными сменами не будут исключены." + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "При этом распределение компенсационных отпусков автоматически создается или обновляется при подаче заявления на компенсационный отпуск." + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "Почему этот кандидат подходит на эту позицию?" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "Удержано" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "Годовщины работы " + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "Напоминание о годовщине работы" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "Дата окончания работы" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "Метод расчета трудового стажа" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "Работа с даты" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "Работа на дому" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "Рекомендации по работе" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "Краткое описание работы для {0}" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "Работал в отпуске" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "Рабочие дни" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "Рабочие дни и часы" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "Расчет рабочего времени на основе" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "Порог рабочего времени для отсутствия" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "Порог рабочего времени для половины дня" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "Рабочее время, ниже которого отмечается «Отсутствует». (Ноль — отключить)" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "Рабочее время, ниже которого отмечается «Полдня». (Ноль — отключить)" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "Мастерская" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "С начала года" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "С начала года (валюта компании)" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "Годовая сумма" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "Ежегодное пособие" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "Да, продолжить" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "Вы не уполномочены утверждать отпуска в блочные даты" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "Вы не присутствуете на работе в течение всего дня между днями подачи заявления на отгул" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "Вы не сможете определить несколько плит, если у вас есть плита без нижних и верхних пределов." + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "Вы не можете запросить смену по умолчанию: {0}" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "Вы можете запланировать не более {0} вакансий и бюджет {1} для {2} в соответствии со штатным планом {3} для материнской компании {4}." + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "Вы можете подать заявку на получение Leave Encashment только на допустимую сумму инкассации" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "Вы можете загружать только документы в формате JPG, PNG, PDF, TXT или Microsoft." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "Вы не можете отменить более {0}дней отпуска. Вы уже отменили {1} дней отпуска для этого сотрудника." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "У вас нет разрешения на выполнение этого действия." + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "У вас нет авансов" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "У вас нет выделенных отпусков" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "У вас нет уведомлений" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "У вас нет запросов" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "У вас нет предстоящих праздников" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "У вас нет предстоящих смен" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "Вы можете добавить дополнительные сведения, если таковые имеются, и отправить предложение." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "Для регистрации вам необходимо находиться в пределах {0} метров от места вашей смены." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "Вы присутствовали только полдня в {}. Не можете подать заявку на полный рабочий день" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "Ваша сессия собеседования перенесена с {0} {1} - {2} на {3} {4} - {5}" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "Срок действия вашего пароля истёк. Пожалуйста, сбросьте пароль, чтобы продолжить" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "активный" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "основанный на" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "отмена" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "отменен" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "создать/отправить" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "созданный" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "johndoe@mail.com" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "изменить_половину_дня_статус" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "или для отдела сотрудников: {0}" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "процесс" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "обработано" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "результат" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "результаты" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "обзор" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "обзоры" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "утвержден" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "через синхронизацию компонентов зарплаты" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "год" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "годы" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "{0} & {1}" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "{0} и {1} больше" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "{0} : {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "{0}
    Эта ошибка может быть вызвана отсутствием или удалением поля." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "{0} Оценка(и) еще не поданы" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "{0} Поле" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "{0} Отсутствует" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "{0} Строка #{1}: Формула задана, но {2} отключена для компонента зарплаты {3}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "{0} Строка #{1}: {2} должна быть включена для рассмотрения формулы." + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "{0} Непрочитано" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} уже выделено для сотрудника {1} на период с {2} по {3}" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0} уже существует для сотрудника {1} и периода {2}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "{0} уже имеет активное назначение смены {1} на некоторые/все эти даты." + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "{0} применимо после {1} рабочих дней" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "{0} баланс" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "{0} завершено {1} {2}" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "{0} успешно создан!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "{0} успешно удален!" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "{0} не удалось!" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "{0} имеет включенный {1}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "{0} — это компонент начисления, который будет зафиксирован как выплата в книге учета льгот сотрудников" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "{0} — недействительный статус посещения." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "{0} не является праздником." + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "{0} не разрешено отправлять отзыв об интервью для интервью: {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} не в списке дополнительных праздников" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "{0} отпусков успешно распределено" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "{0} отпусков из распределения для типа отпуска {1} истекли и будут обработаны во время следующей запланированной задачи. Рекомендуется завершить их сейчас перед созданием новых назначений политики отпусков." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "{0} отпусков было вручную назначено пользователем {1} {2}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} должно быть отправлено" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "{0} из {1} завершено" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "{0} успешно!" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "{0} успешно!" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "{0} для {1} сотрудника(ов)?" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "{0} успешно обновлено!" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "{0} вакансий и {1} бюджет для {2} уже запланированы для дочерних компаний {3}. Вы можете планировать только до {4} вакансий и бюджет {5} согласно кадровому плану {6} для материнской компании {3}." + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "{0} будет обновлено для следующих структур зарплаты: {1}." + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "{0} {1} {2}?" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "{0}. Проверьте журнал ошибок для получения более подробной информации." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}: Email сотрудника не найден, поэтому письмо не отправлено" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "{0}: От {0} типа {1}" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "{0}д" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "{} " + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "{} Принято" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "{} Активен" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "{} Черновик" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "{} Невостребованные" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "{} {} открыто для этой позиции." + diff --git a/apps/erpnext/src/hrms/hrms/locale/sl.po b/apps/erpnext/src/hrms/hrms/locale/sl.po new file mode 100644 index 000000000..487bf2356 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/sl.po @@ -0,0 +1,11514 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Slovenian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: sl\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: sl_SI\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr " Plačne liste, izdane od tega datuma naprej, bodo upoštevane pri izračunu zaostalih plačil" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr " Prekinitev povezave plačila ob preklicu predplačila Osebja" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "\"Od datuma\" ne more biti kasneje ali enak \"Do datuma\"" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "% Izkoriščenost (B + NB) / T" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "% Izkoriščenost (B / T)" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "'employee_field_value' in 'timestamp' sta obvezna." + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") za {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "...Pridobivanje Osebja" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0,5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "01:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "05:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "08:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "Osnovni znesek ni bil določen za naslednjega osebja: {0}" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "Primer: SAL-{first_name}-{date_of_birth.year}
    To bo ustvarilo geslo, kot je SAL-Jane-1972" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "Skupno število dodeljenih dopustov je večje od števila dni v obdobju dodelitve" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "

    Pomoč

    \n\n" +"

    Opombe:

    \n\n" +"
      \n" +"
    1. Za uporabo osnovne plače zaposlenega uporabite polje osnova
    2. \n" +"
    3. V pogojih in formulah uporabite okrajšave za komponente plače. BS = Osnovna plača
    4. \n" +"
    5. Za podrobnosti o zaposlenem v pogojih in formulah uporabite ime polja. Vrsta zaposlitve = vrsta_zaposlitvePodružnica = podružnica
    6. \n" +"
    7. V pogojih in formulah uporabite ime polja iz plačilne liste. Plačilni dnevi = payment_daysDopust brez plačila = leave_without_pay
    8. \n" +"
    9. Neposredni znesek lahko vnesete tudi na podlagi pogoja. Glej primer 3
    \n\n" +"

    Primeri

    \n" +"
      \n" +"
    1. Izračun osnovne plače na podlagi osnove\n" +"
      Pogoj: osnova < 10000
      \n" +"
      Formula: osnova * 0,2
    2. \n" +"
    3. Izračun HRA na podlagi osnovne plačeBS \n" +"
      Pogoj: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Izračun TDS na podlagi vrste zaposlitveemployment_type \n" +"
      Pogoj: employment_type==\"Intern\"
      \n" +"
      Znesek: 1000
    6. \n" +"
    " + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "

    Primeri pogojev

    \n" +"
      \n" +"
    1. Uporaba davka za zaposlenega, rojenega med 31. 12. 1937 in 01. 01. 1958 (zaposleni, stari od 60 do 80 let)
      \n" +"Pogoj: datum_rojstva>datum(1937, 12, 31) in datum_rojstva<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "
    Poldnevno Osebje
    " + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "
    Neoznačeno Osebje
    " + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "
    " + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "Transakcije & Poročila" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Nastavitve & Poročila" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "
    {0}{1}
    " + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "Odsoten" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "Odsotni Dnevi" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "Odsotni Zapisi" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "Številka Računa" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "Računovodstvo & Plačila" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "Računovodska Poročila" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "Računi niso nastavljeni za komponento plače {0}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "Obračun" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "Zaostanki pri Obračunavanju" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "Obračunska komponenta" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "Nakopičene Ugodnosti" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "Ime Dejavnosti" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "Dejanski Znesek" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "Dejanski Dnevi Unovčitve" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "Dodaj Strošek" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "Dodaj Povratne Informacije" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "Dodaj Davek" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "Dodaj v Podrobnosti" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "Dodane so bile davčne komponente iz glavnega menija Komponenta plače, ker struktura plač ni imela davčne komponente." + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "Dodano v podrobnosti" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "Dodatni Znesek" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "Dodatne Informacije " + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "Dodatni Mirovinski Fond" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "Dodatna Plača" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "Dodatna Plača " + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "Prilagodi Dodelitev" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "Tip Prilagoditve" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "Predplačilo" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "Predplačilni račun je obvezen. V evidenci podjetja {0} nastavite privzeti predplačilni račun zaposlenega in predložite ta dokument." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "Napredni Filtri" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "Vsi Cilji" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "Vsa Delovna Mesta" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "Dodeli Dopust" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "Dodeli na Dan" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "Dodeljeni Dopusti" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "Dodeljeno prek" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "Dodeljevanje Dopusta" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "Datum Dodelitve" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "Podrobnosti Dodelitve" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "Dodelitev potekla!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "Dovoli Unovčenje" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "Dovoli Uporabnika" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "Dovoli Uporabnike" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "Znesek na podlagi formule" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "Znesek na podlagi formule" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "Znesek, zahtevan prek zahtevka za povračilo stroškov" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "Znesek Stroškov" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "Letna Dodelitev" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "Presežena Letna Dodelitev" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "Letna Plača" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "Letna Davčna Osnova" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "Vse druge podrobnosti" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "E-poštni naslov prosilca" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "Ime prosilca" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "Ocena prosilca" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "Prosilec za delovno mesto" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "Ime prosilca" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "Prijava" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "Status Prijave" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "Obdobje prijave ne more biti v dveh zapisih o dodelitvi" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "Obdobje prijave ne sme biti izven obdobja dodelitve dopusta" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "Prejete Prijave" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "Prejete Prijave:" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "Velja za Podjetje" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "Uporabi / Odobri Dopuste" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "Prijavi se zdaj" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "Prijavite se za državni praznik" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "Prijavite se za Vikend" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "Datum Imenovanja" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "Pismo Imenovanja" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "Predloga Pisma Imenovanja" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Vsebina Pisma Imenovanja" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "Ocenjevanje" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "Ocenjevalni cikel" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "Cilj Ocenjevanja" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "Ocenjevanje Ključnih Področij Rezultatov" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "Povezovanje Ocenjevanja" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "Pregled Ocenjevanja" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "Predloga Ocenjevanja" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "Cilj Predloga Ocenjevanja" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "Manjka Predloga Ocenjevanja" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "Ime Predloga Ocenjevanja" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "Ocenjevalec" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "Ocenjeni: {0}" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "Vajenec" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "Odobritev" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "Stanje Odobritve" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "Stanje odobritve mora biti »Odobreno« ali »Zavrnjeno«" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "Odobritev" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "Odobreno" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "Odobritelj" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "Odobritelji" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "Apr" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "Zaostanek" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "Komponenta Zaostalih Plačil" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "Za komponente plače, ki temeljijo na obdavčljivi plači, ni mogoče določiti zaostalega dela plače." + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "Datum začetka zaostanka" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "Zaostanki" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "Datum in ura Prihoda" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "Dodeljena sredstva" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "Dodeli Izmeno" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "Dodeli urnik izmen" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "Dodeli Strukturo" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "Dodelitev plačne strukture" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "Dodeljevanje strukture..." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "Dodeljevanje struktur..." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "Dodelitev na podlagi" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "Priložite dokazilo" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "Poskus" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "Prisotnost" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "Koledar Prisotnosti" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Število Udeležencev" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "Datum Udeležbe" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "Udeležba Od datuma" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "Udeležba od in do je obvezna" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "ID Prisotnosti" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "Označena Prisotnost" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "Zahtev Prisotnost" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "Zgodovina zahtevkov za udeležbo" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "Nastavitve Prisotnosti" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "Udeležba do danes" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "Udeležba posodobljena" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "Opozorila Prisotnosti" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "Datum udeležbe {0} ne sme biti krajši od datuma zaposlitve zaposlenega {1}: {2}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "Udeležba vseh osebja po tem merilu je že zabeležena." + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "Udeležba osebja {0} je že označena za prekrivajočo se izmeno {1}: {2}" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "Udeležba osebja {0} je že označena za datum {1}: {2}" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "Udeležba osebja {0} je že označena za naslednje datume: {1}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "Udeleženci" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "Število Odhodkov" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "Avg" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "Samodejna dodelitev dopusta ni uspela za naslednje zaslužene dopuste: {0}. Za več podrobnosti preverite {1}." + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "Samodejno pridobi vsa sredstva, dodeljena osebju, če obstajajo" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "Samodejno posodobi zadnjo sinhronizacijo prijave" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "Razpoložljivi dopust(i)" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "Razpoložljivi Dopust" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "Povprečna ocena povratnih informacij" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "Povprečna ocena" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "Bančni Vnosi" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "Bančno Nakazilo" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "Osnova" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "Osnovno & Spremenljivo" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "Ugodnosti" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "Znesek Ugodnosti" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "Podrobnosti Ugodnosti" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "Ugodnosti" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "Znesek Fakture" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "Ure Fakture" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "Ure Fakture (B)" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "Dvomesečno" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "Opomnik za rojstni dan 🎂" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "Rojstni dnevi" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "Bonus" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "Znesek bonusa" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "Datum izplačila bonusa" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "Datum izplačila bonusa ne more biti pretekli datum" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "Podružnica: {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "Množične dodelitve" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "Letna Plača" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "Izračunano v dnevih" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "Klici" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "Prenesi Naprej" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "Preneseni Dopusti" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "Priložnostni Dopust" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "Prijavi se" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "Odjavi se" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "Prijavi se" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "Datum Prijave" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "Odjavi se" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "Datum Odjave" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "Polmer Prijave" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "Zahtevek za strošek" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "Zahtevano" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "Zahtevani Znesek" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "Zahtevki" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "Obdelano" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "Zaprto" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "Zapre se" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "Zapre se:" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "Zaključne Opombe" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "Informacije o Podjetju" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "Konferenca" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "Potrdi {0}" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "Upoštevaj Obdobje Mirovanja" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "Tečaj" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "Spremno Pismo" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "Ustvari cenitve" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "Ustvari intervju" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "Ustvari prosilca za delovno mesto" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "Ustvari prosto delovno mesto" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "Ustvari nov Id Osebja" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "Ustvarite listek za nadure za upravičeno osebje" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "Ustvari listke za nadure" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "Ustvari plačilno listo" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "Ustvari plačilne liste" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "Ustvari izmene po" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "Izdelava cenitev" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "Ustvarjanje {0}..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "Datum Ustanovitve" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "Ustvarjanje ni uspelo" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "Valuta " + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "Trenutna Letna Plača" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "Trenutno Število" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "Trenutni Delodajalec " + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "Trenutni Poklic" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "Dohodnina za Tekoči Mesec" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "Trenutna vrednost števca kilometrov mora biti večja od zadnje vrednosti števca kilometrov {0}" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "Trenutna vrednost števca kilometrov " + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "Trenutne ponudbe za delo" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "Trenutno Plačilno Obdobje" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "Trenutna Tabela" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "Trenutne delovne izkušnje" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "Obseg po meri" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "Ime Cikla" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "Cikli" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "Datumi & Razlog" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "Datumi na podlagi" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "Dni za Preobrat" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "Številka Debetnega Računa" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "Dec" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "Odločitev v teku" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "Deklaracije" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "Deklarirani Znesek" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "Odbitek" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "Zaostanki pri odbitku" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "Poročila o Odbitkih" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "Odbitek od Plače" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "Odbitki" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "Odbitki pred izračunom davka" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "Privzeti Znesek" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "Privzeta Izmena" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "Izbriši {0}" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "Naziv: {0}" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "Domače" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "Podvojena Prisotnost" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "NAPAKA ({0}): {1}" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "Zgodnja Odjava" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "Zgodnja Odjava do" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "Zgodnja Odjava Obdobje" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "Zgodnje Odjave" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "Zasluženi Dopust" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "Pogostost Zasluženega Dopusta" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "Razpored Zasluženega Dopusta" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "Zasluženi Dopusti" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "Zaslužek" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "Zapadli Zaslužki" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "Komponenta Zaslužka" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "Zaslužek" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "Zaslužki & Odbitki" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "Uredi Pastavku Stroškov" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "Uredi Davek Stroškov" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "Velja od" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "Bančni Račun" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "Predplačilni Račun" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "Stanje Predujma" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "Povzetek Predujma" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "Analitika" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "Orodje Prisotnosti" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "Zahtev Ugodnosti" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "Podrobnosti Zahteva Ugodnosti" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "Zahtev Ugodnosti" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "Podrobnosti Ugodnosti" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "Register Ugodnosti" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "Ugodnosti" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "Rojstni dan" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "Uvodna Dejavnost" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "Prijava" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "Zgodovina Prijav" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "Stroškovni Centar" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "Podrobnosti" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "E-pošta" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "Nastavitve Izhoda" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "Izhodi" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "Merila za povratne informacije" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "Ocena povratnih informacij" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "Kvalifikacija" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "Pritožbe" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "Zdravstveno Zavarovanje" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "Izkoriščenost ur na podlagi delovnega lista" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "Slika" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "Spodbuda" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "Informacije" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "Informacije" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "Potovanje" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "Stanje Dopusta" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "Povzetek Stanja Dopusta" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "Posojilo" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "Imenovanje po" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "Uvajanje" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "Predloga Uvajanja" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "Uvajanje: {0} že obstaja za kandidata za delovno mesto: {1}" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "Drugi dohodki" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "Povratne informacije o uspešnosti" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "Napredovanje" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "Podrobnosti Napredovanja" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "Napredovanja ni mogoče predložiti pred datumom napredovanja" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "Zgodovina premoženja" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "Priporočilo" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "Priporočilo {0} se ne uporablja za bonus za priporočilo." + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "Priporočila" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "Odgovorni " + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "Obdržani" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "Ločitev" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "Predloga za ločitev" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "Nastavitve" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "Spretnost" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "Zemljevid Spretnosti" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "Spretnosti" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "Status" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "Kategorija davčne oprostitve" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "Deklaracija o oprostitvi davka" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "Kategorija Deklaracija o oprostitvi davka" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "Predložitev dokazila o davčni oprostitvi" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "Podrobnosti o predložitvi dokazila o davčni oprostitvi" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "Podkategorija davčne oprostitve" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "Usposabljanje" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "Premestitev" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "Podrobnosti Premestitve" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "Podrobnosti Premestitve" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "Premestitve ni mogoče oddati pred datumom prenosa" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "Predplačilni račun {0} mora biti tipa {1}." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "Osebje je mogoče poimenovati z ID osebja, če ga dodelite, ali prek serije poimenovanj. Tukaj izberite želeno ime." + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "Ime" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "Zapisi osebja so ustvarjeni z izbrano možnostjo" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "Osebje je bil označen kot odsoten zaradi manjkajočih prijav zaposlenih." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "Osebje je bil označen kot odsoten, ker ni dosegel praga delovnih ur." + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "Osebje je bil označen kot odsoten za drugo polovico zaradi manjkajočih prijav osebja." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "Osebje {0} : {1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "Osebje {0} že ima zahtevo za prisotnost {1}, ki se prekriva s tem obdobjem" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "Osebje {0} že ima aktivno izmeno {1}: {2}, ki se prekriva s tem obdobjem." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "Osebje {0} je že oddal vlogo {1} za obračunsko obdobje {2}" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "Osebje {0} se je že prijavil za izmeno {1}: {2}, ki se prekriva s tem obdobjem" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "Osebje{0} se je že prijavil za {1} med {2} in {3} : {4}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "Osebje {0} je že uveljavljal ugodnost '{1}' za {2} ({3}).
    Da bi preprečili preplačila, je v vsakem plačilnem ciklu dovoljen le en zahtevek za vsako vrsto ugodnosti." + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "Osebje {0} ni aktiven ali ne obstaja" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "Osebje {0} je na dopustu dne {1}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "Osebje {0} ni mogoče najti med udeleženci usposabljanja." + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "Osebje {0} na pol dneva na {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "Osebje {0}, ki je bil odpuščen dne {1}, mora biti nastavljen kot »Odšel«" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "Osebje: {0} mora imeti najmanj {1} let delovne dobe za odpravnino" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "HTML Osebja" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "Osebje, ki delajo na praznik" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "Osebje si ne morejo sami dajati povratnih informacij. Namesto tega uporabite {0}: {1}" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "Osebje na pol dneva HTML" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "Osebje bodo zamudili opomnike za praznike od {} do {}.
    Ali želite nadaljevati s to spremembo?" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "Osebje brez povratnih informacij: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "Osebje brez ciljev: {0}" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "Zaposleni, ki delajo na praznik" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "Tip Zaposlitve" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "Omogoči samodejno udeleževanje" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "Omogoči označevanje zgodnjega izhoda" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "Omogoči označevanje poznih vnosov" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "Unovčenje" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "Znesek Unovčenja" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "Dnevi Unovčenja" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "Uporabljena omejitev unovčenja" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "Končni datum: {0}" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "Vnesite vrednost, ki ni nič, za prilagoditev." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "Vnesi {0}" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "Vrednotenje" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "Vsaka 2 tedna" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "Vsake 3 tedna" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "Vsake 4 tedna" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "Vsak teden" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "Izpit" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "Izjema" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "Kategorija Izjeme" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "Dokazila Izjeme" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "Podkategorija Izjem" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "Obstoječe Dodelitve Izmene" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "Izhod Potrjen" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "IztečI Dopust" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "Iztečeni Dopust" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "Iztekel Dopust" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "Izvoz..." + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "Neuspeh samodejne dodelitve zasluženega dopusta" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "Feb" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "Število povratnih informacij" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "HTML povratnih informacij" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "Ocene povratnih informacij" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "Ocena povratnih informacij" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "Povratne informacije poslane" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "Povzetek povratnih informacij" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "Pridobi zemljepisne lokacije" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "Pridobi Izmen" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "Pridobi Izmene" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "Pridobivanje Izmene" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "Polnjeno" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "Filtriraj Osebje" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "Filtriraj po Izmeni" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "Končna Odločitev" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "Končni Rezultat" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "Formula Končnega Rezultata" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "Prva Prijava in Zadnja Odjava" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "Prvi dan" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "Ime " + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "Let" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "Hrana" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "Za Osebje" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "Formula" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "Delež veljavnega zaslužka " + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "Od Zneska" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "Tukaj lahko omogočite unovčenje preostalo dopusta." + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "Od {0} do {1}" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "Od (Leto)" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "Fuksija" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "Stroški Goriva" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "Stroški Goriva" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "Cena Goriva" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "Količina Goriva" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "Polno in končno sredstvo" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "Popolna in končna izjava o neporavnanih obveznostih" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "Polni delovni čas" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "Popolnoma sponzorirano" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "Financirani znesek" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "Pridobite Osebje" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "Pridobite zahteve za delo" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "Pridobi predlogo" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "Brez glutena" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "Pojdi na Prijava" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "Napitnina" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "Pritožba" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "Pritožba zoper" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "Pritožba zoper stranko" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "Podrobnosti Pritožbe" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "Tip Pritožbe" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "Osebje" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "Osebje & Plače" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "Nastavitve Osebja & Plač" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "Nadzorna Plošča Osebja" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "Nastavitve Osebja" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "Osebje" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "Pol Dneva" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "Poldnevni Datum" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "Poldnevni Datum je obvezen" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "Hej, {0}👋" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "Zaposlovanje" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "Nastavitve Zaposlovanja" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "Urna Postavka" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "IFSC" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "Koda IFSC" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "PRIJAVA" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "Vključi praznike znotraj dopusta kot dopust" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "Vir Dohodka" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "Znesek Davka na Plačo" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "Tabela Davka od Plač" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "Namesti" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "Interni" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "Mednarodno" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "Internet" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "Intervju" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "Podrobnosti Intervjuja" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "Intervjui" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "Neveljavni časi izmene" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "Povabljeni" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "Referenca Fakture" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "Je Dodeljeno" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "Je Poteklo" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "Je Fleksibilna Ugodnost" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "Je Dopust Brez Plačila" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "Je Neobvezen Dopust" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "Je Delno Plačan Dopust" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "Je Ponavljajoče" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "Je Plača Objavljena" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "Je Plača Zadržana" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "Jan" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "Kandidat za delo" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "Ključno Področje Učinkovitosti" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "Metoda ocenjevanja Ključnog Področje Učinkovitosti" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "Ključno področje učinkovitosti posodobljen za vse podcilje." + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "Dodelitev Dopusta" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "Zahtev Dopusta" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "Unovčenje Dopusta" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "Obdobje Dopusta" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "Pravilo Dopusta" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "Dodelitev pravilnika Dopusta" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "Tip Dopusta" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "Dopust(-i) v postopku odobritve" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "Dopust" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "Dopust & Prazniki" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "Dopust po Prilagoditvi" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "Dodeljeni Dopust" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "Potekli Dopust" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "Dopust v postopku odobritve" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "Dopust za Prilagoditev" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "Moj Dopust" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "Dodeljeni novi dopusti" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "Dodeljeni novi dopusti (v dnevih)" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "Ni dopusta dodeljeno: {0} za tip dopusta: {1}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "Dodeljeni niso bili nobeni dopusti." + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "Ne unovčljivi Dopusti" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "Število Dopusta" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "IZHOD" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "Okt" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "Izven Izmene" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "Izven Izmene" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "Nadurno Delo" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "Tip Nadurnega Dela" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "Stroškovni Centar Plač" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "Stroškovni Centri Plač" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "Nastavi {0}." + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "Prerazporeditev Dopusta" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "Nedavni Dopust" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "Zavrni" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "Konec Izmene" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "Urnik Izmene" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "Dodelitev Urnika Izmene" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "Nastavitve Izmene" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "Začetek Izmene" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "Začetni Čas Izmene" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "Stanje Izmene" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "Tip Izmene" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "Dopusti Ekipe" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "Mandat" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "Do Zneska" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "Do (Leto)" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "Skupno dodeljenih dopustov" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "Skupaj Dodeljeni Dopust" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "Skupaj Dopust" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "Skupaj Dostup ({0})" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "Skupaj Dodeljeni Dopust" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "Skupaj Unovčenih Dopustov" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "Neuporabljeni Dopust" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "Posodobljen status ponudbe za delo {0} za povezanega kandidata za delo {1} na {2}" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "Posodobljen status povezanega kandidata za delovno mesto {0} na {1}" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "Izkoriščen(I) Dopust(I)" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "Izkoriščeni Dopust" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "Vijolična" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "Nimate dodeljenih dopusta" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "Dodate lahko dodatne podrobnosti, če obstajajo, in oddate ponudbo." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "{0} dopustov je uspešno dodeljeno" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "{0} dopustov iz dodelitve za vrsto dopusta {1} je poteklo in bo obdelano med naslednjim načrtovanim opravilom. Priporočljivo je, da jih potečete zdaj, preden ustvarite nove dodelitve pravilnika o dopustu." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "{0} dopustov je ročno dodelil {1} dne {2}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/sr.po b/apps/erpnext/src/hrms/hrms/locale/sr.po new file mode 100644 index 000000000..65e1dbfc5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/sr.po @@ -0,0 +1,11515 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Serbian (Cyrillic)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: sr\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: sr_SP\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr " Обрачунски листићи почев од овог датума биће узети у обзир за обрачун заостатака" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr " Поништи повезивање уплате приликом сторнирања аконтације за запосленог" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "\"Датум почетка\" не може бити већи или једнак \"Датум завршетка\"" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "% Искоришћеност (Б + НБ) / Т" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "% Искоришћеност (Б / Т)" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "'employee_field_value' и 'временски жиг' су обавезни." + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") за {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "...учитавање запослених лица" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "01:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "05:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "08:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "Основна зарада није постављена за следећа запослена лица: {0}" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "Пример: ЗАРАДА-{first_name}-{date_of_birth.year}
    Ово ће генерисати лозинку попут ЗАРАДА-Петар-2000" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "Укупан број додељених дана одсуства је већи од броја дана у периоду расподеле" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "

    Помоћ

    \n\n" +"

    Напомене:

    \n\n" +"
      \n" +"
    1. Користите поље baseза коришћење основне зараде запосленог лица
    2. \n" +"
    3. Користите скраћенице у компоненти зараде у условима и формулама. BS = Basic Salary
    4. \n" +"
    5. Користите називе поља за детаље о запосленом лицу у условима и формулама Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Користите назив поља из обрачунског листића у условима и формулама Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Директни износ се такође може унети на основу услова. Погледајте пример 3
    \n\n" +"

    Примери

    \n" +"
      \n" +"
    1. Израчунавање основне зараде на основу base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Израчунавање додатка за стан на основуBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Израчунавање пореза по одбитку на основу врсте запослењаemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "

    Примери услова

    \n" +"
      \n" +"
    1. Примена пореза уколико је запослено лице рођено између 31-12-1937 и 01-01-1958 (запослена лица старости од 60 до 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Примена пореза према роду запосленог лица
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Примена пореза према компоненти зараде
      \n" +"Condition: base > 10000
    " + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "
    Запослена лица на половини радног дана
    " + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "
    Запослена лица без евидентираног присуства
    " + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "
    " + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "Трансакције & извештаји" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Мастер подаци & извештаји" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "
    {0}{1}
    " + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "Захтев за запошљавање за {0} који је затражен од стране {1} већ постоји: {2}" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "Пријатељски подсетник на важан датум за наш тим." + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "Постоји {0} између {1} и {2} (" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "Изостанак" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "Дани изостанака" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "Евиденција изостанака" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "Број рачуна" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "Врста рачуна треба да буде подешена на {0} за рачун обавеза по основу обрачуна зарада {1}, молимо Вас да подесите вредност и покушате поново" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "Рачун {0} не одговара компанији {1}" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "Рачуноводство и уплате" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "Рачуноводствени извештаји" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "Рачуни нису постављени за компоненту зараде {0}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "Обрачун" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "Заостатак обрачуна" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "Обрачунска компонента" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "Обрачунска компонента може се подесити само за компоненте зараде врсте приход." + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "Обрачунска компонента може се подесити само за флексибилне бенефиције са методом обрачунске исплате." + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "Обрачунска компонента мора бити подешена за флексибилне бенефиције са методом обрачунске исплате." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "Књижење по основу обрачунатих зарада од {0} до {1}" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "Обрачунати и исплатити на крају обрачунског периода" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "Обрачунавање по циклусу, исплата само по захтеву" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "Обрачунате бенефиције" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "Извештај о обрачунатим приходима" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "Обрачунати износ {0} је мањи од исплаћеног износа {1} за бенефицију {2} у обрачунском периоду {3}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "Радња при подношењу" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "Назив активности" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "Стварни износ" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "Стварни број дана за надокнаду" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "Стварно трајање прековременог рада" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "Стварно стање није доступно јер захтев за одсуство обухвата период који прелази преко различитих додела одсуства. Ипак и даље можете поднети захтев за одсуство које ће бити надокнађено приликом следеће доделе." + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "Додај појединачне датуме" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "Додај имовину запосленог" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "Додај трошак" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "Додај повратну информацију" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "Додај порез" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "Додај у детаље" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "Додај неискоришћене дане одсуства из претходних расподела" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "Додај неискоришћене дане одсуства из претходног периода у ову расподелу" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "Додате пореске компоненте из мастер података компоненте зараде јер структура зараде није имала ниједну пореску компоненту." + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "Додато у детаље" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "Додатни износ" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "Додатна информација " + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "Додатни пензиони фонд" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "Додатна зарада" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "Додатна зарада " + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "Додатна зарада по основу бонуса за препоруку може бити креирана само за препоруку запосленог лица које има статус {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "Додатна зарада за ову компоненту зараде са омогућеним {0} већ постоји за овај датум" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "Додатна зарада: {0} већ постоји за компоненту зараде: {1} за период {2} и {3}" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "Адреса организатора" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "Коригуј доделу" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "Корекција успешно креирана" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "Врста корекције" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "Аконтација" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "Аконтациони рачун је обавезан. Молимо Вас да подесите Подразумевани аконтациони рачун запосленог лица у евиденцији компаније {0} и поднесете овај документ." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "Валута аконтационог рачуна {} мора бити иста као валута зараде запосленог лица. Молимо Вас да изаберете аконтациони рачун са истом валутом" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "Плаћена аконтација (валута компаније)" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "Филтери аконтације" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "Сав износ курсних разлика за {0} књижен је преко {1}" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "Сви циљеви" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "Сви послови" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "Целокупна додељена имовина мора бити враћена пре подношења" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "Сви обавезни задаци за креирање запосленог лица још увек нису завршени." + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "Расподели у складу са политиком одсуства" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "Додели одсуство" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "Додели одсуства за {0} запослених лица?" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "Додели на дан" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "Додељени износ (валута компаније)" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "Додељена одсуства" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "Додељено путем" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "Додељивање одсуства" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "Датум доделе" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "Детаљи доделе" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "Додељивање истекло!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "Додељени износ је већи од дозвољеног максималног износа {0} за врсту одсуства {1}" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "Додела за корекцију" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "Додела је прескочена због прекорачења годишње доделе дефинисане политиком одсуства" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "Додела је прескочена због максималног ограничења доделе одсуства постављеног за врсту одсуства. Молимо Вас да повећате ограничење и покушате поново неуспешну доделу." + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "Дозволи запис о присуству са мобилне апликације" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "Дозволи накнаду за неискоришћено одсуство" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "Дозволи праћење геолокације" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "Дозволи захтев за одсуство након (радних дана)" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "Дозволи више додела смена за исти датум" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "Дозволи негативно стање" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "Дозволи прекорачење доделе" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "Дозволи пореско ослобођење" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "Дозволи кориснику" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "Дозволи корисницима" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "Дозволи одјаву након краја смене (у минутима)" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "Дозволи захтев за цео износ бенефиције" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "Дозволи следећим корисницима да одобравају захтев за одсуство током блокираних дана." + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "Омогућава доделу више дана одсуства него што је предвиђено за период доделе." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "Наизменични уноси као ДОЛАЗАК и ОДЛАЗАК током исте смене" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "Износ заснован на формули" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "Износ заснован на формули" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "Износ захтеван путем захтева за надокнаду трошкова" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "Износ трошкова" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "Износ исплаћен по основу ове исплате неискоришћеног одсуства" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "Износ планиран за одбитак путем зараде" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "Износ не сме бити мањи од нуле" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "Износ који је плаћен по овој аконтацији" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "Документ заостатка већ постоји за запослено лице {0} са структуром зараде {1} у обрачунском периоду {2}" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "Евиденција присуства је повезана са овом записом присуства. Молимо Вас да откажете присуство пре него што измените време." + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "Годишња расподела" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "Годишња расподела је премашена" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "Годишња зарада" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "Годишњи опорезиви износ" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "Остали детаљи" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "Додатне напомене, запажени труд који треба евидентирати" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "Примењива компонента зараде" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "Примењиве компоненте зараде" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "Примењиво у случају увођења запосленог лица" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "Имејл адреса кандидата" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "Име кандидата" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "Оцена кандидата" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "Кандидат за посао" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "Име кандидата" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "Пријава" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "Статус пријаве" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "Период пријаве не може да се протеже кроз два записа о додели" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "Период пријаве не може бити ван периода доделе одсуства" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "Примљене пријаве" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "Примљене пријаве:" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "Примењиво на компанију" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "Примени / одобри одсуства" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "Примени сада" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "Примени за државни празник" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "Примени за викенд" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "Датум термина" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "Решење о запослењу" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "Шаблон решења о запослењу" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Садржај решења о запослењу" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "Евалуација" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "Циклус евалуације" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "Циљ евалуације" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "Евалуација KRA" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "Повезивање евалуације" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "Преглед евалуације" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "Шаблон евалуације" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "Циљ шаблона евалуације" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "Недостаје шаблон евалуације" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "Наслов шаблона евалуације" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "Шаблон евалуације није пронађен за неке позиције." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "Креирање евалуације је у реду чекања. Може потрајати неколико минута." + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "Евалуација {0} већ постоји за запослено лице {1} за овај циклус евалуације или период који се поклапа" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "Евалуација {0} не припада запосленом лицу {1}" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "Оцењивање" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "Лица која се оцењују: {0}" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "Приправник" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "Одобрење" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "Статус одобрења" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "Статус одобрења мора бити 'Одобрено' или 'Одбијено'" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "Одобри" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "Одобрено" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "Одобравалац" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "Одобраваоци" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "Апр" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "Да ли сте сигурни да желите да обришете прилог" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "Да ли сте сигурни да желите да обришете {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "Да ли сте сигурни да желите да пошаљете обрачунски листић путем имејла?" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "Да ли сте сигурни да желите да одбијете препоруку запосленог лица?" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "Заостатак" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "Компонента заостатка" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "Компонента заостатка не може се поставити за компоненте зараде које се заснивају на опорезивој заради." + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "Датум почетка заостатка" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "Заостаци" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "Датум и време доласка" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "У складу са додељеном структуром зараде не можете поднети захтев за бенефиције" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "Трошак повраћаја имовине за {0}: {1}" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "Додељена имовина" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "Додели структуру зараде за {0} запослених лица?" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "Додели смену" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "Додели распоред смене" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "Додели структуру" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "Додељивање структуре зараде" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "Додељивање структуре..." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "Додељивање структуре..." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "Додељивање засновано на" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "Повежи отворено радно место" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "Повезани документ" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "Врста повезаног документа" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "Неопходно је изабрати барем један интервју." + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "Приложи доказ" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "Покушано" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "Присуство" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "Календар присуства" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Број присуства" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "Датум присуства" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "Датум почетка присуства" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "Датум почетка присуства и датум завршетка присуства је обавезан" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "ИД присуства" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "Означено присуство" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "Захтев за евидентирање присуства" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "Историја захтева за евидентирање присуства" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "Подешавање присуства" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "Датум завршетка присуства" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "Присуство је ажурирано" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "Упозорења присуства" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "Датум присуства {0} не може бити пре датума запослења запосленог лица {1}: {2}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "Присуство за сва запослена лица која испуњавају овај критеријум већ је евидентирано." + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "Присуство за запослено лице {0} већ је евидентирано за преклапајућу смену {1}: {2}" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "Присуство за запослено лице {0} већ је евидентирано за датум {1}: {2}" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "Присуство за запослено лице {0} већ је евидентирано за следеће датуме: {1}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "Присуство за следеће датуме биће прескочено или замењено приликом подношења" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "Присуство од {0} до {1} већ је евидентирано за запослено лице {2}" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "Присуство је евидентирано за сва запослена лица у периоду између изабраних датума обрачуна зараде." + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "За ова запослена лица присуство је на чекању у периоду између изабраних датума обрачуна зараде. Означите присуство да бисте наставили. Погледајте {0} за детаље." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "Присуство је успешно евидентирано" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "Присуство није поднето за {0} јер је у питању празник." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "Присуство није поднето за {0} јер је {1} на одсуству." + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "Присуство ће бити аутоматски евидентирано тек након овог датума." + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "Преглед захтева за присуство" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "Учесници" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "Број одлазака запослених лица" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "Авг" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "Подешавање аутоматске евиденције присуства" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "Аутоматска накнада за неискоришћено одсуство" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "Аутоматски на основу напретка циља" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "Аутоматска додела одсуства за следећа стечена одсуства: {0} није успела. Погледајте {1} за више детаља." + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "Аутоматски преузима сву имовину додељену запосленом лицу, уколико је има" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "Аутоматски ажурирај последњу синхронизацију записа о присуству" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "Доступно одсуство" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "Доступна одсуства" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "Просечна оцена повратних информација" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "Просечна оцена" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "Просек оцене циља, оцене повратних информација и оцене самопроцене" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "Просечна оцена приказаних вештина" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "Просечна оцена повратних информација" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "Просечна искоришћеност" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "Просечна искоришћеност (само фактурисано)" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "Чека се одговор" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "Захтеви за одсуство са ретроактивним датумима су ограничени. Молимо Вас да поставите {} у {}" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "Банкарско књижење" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "Банкарски пренос" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "Основна" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "Основни и варијабилни део" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "Дозволи пријаву доласка пре почетка смене (у минутима)" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "У наставку је списак предстојећих празника:" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "Погодност" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "Износ бенефиције" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "Детаљи бенефиције" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "Износ бенефиције компоненте {0} прелази {1}" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "Износ бенефиције компоненте {0} треба бити већи од 0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "Износ бенефиције {0} за компоненту зараде {1} не сме бити већи од максималног износа бенефиције {2} подешеног у {3}" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "Погодности" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "Износ фактуре" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "Фактурисани часови" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "Фактурисани часови (B)" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "Двапут месечно" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "Подсетник за рођендан" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "Подсетник за рођендан 🎂" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "Рођендани" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "Блокирани датуми" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "Блокирани дани" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "Блокиран празник за коришћење на важне дане." + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "Бонус" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "Износ бонуса" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "Датум исплате бонуса" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "Датум исплате бонуса не може бити у прошлости" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "Филијала: {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "Масовна додела" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "Масовна додела политике одсуства" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "Масовна додела структуре зараде" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "Подразумевано, коначна оцена се израчунава као просек оцене циља, оцене повратних информација и оцене самопроцене. Омогућите ову опцију да бисте поставили другачију формулу" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "Укупни трошак по запосленом лицу" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "Израчунај коначан резултат на основу формуле" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "Израчунај износ отпремнине заснован на" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "Обрачунај радне дане за обрачун зараде на основу" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "Обрачунато у данима" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "Позиви" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "Отказивање је стављено у ред" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "Није могуће изменити време" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "Није могуће доделити одсуство ван периода доделе {0} - {1}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "Није могуће доделити више одсустава због максималног ограничења доделе одсустава од {0} у додели политике одсуства" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "Није могуће доделити више одсустава због максималног дозвољеног ограничења од {0} у врсти доделе {1}." + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "Није могуће прекинути смену након датума завршетка" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "Није могуће прекинути смену пре датума почетка" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "Није могуће отказати доделу смене: {0} јер је повезана са присуством: {1}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "Не може се отказати додела смене: {0} јер је повезана са записом о присуству: {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "Није могуће креирати обрачунски листић за запослено лице које се запослило након обрачунског периода" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "Није могуће креирати обрачунски листић за запослено лице које је отишло пре обрачунског периода" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "Није могуће креирати кандидата за посао за отворено радно место" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "Није могуће креирати или изменити трансакције за циклус евалуације са статусом {0}." + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "Није пронађен активан период одсуства" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "Није могуће евидентирати присуство за неактивно запослено лице {0}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "Није могуће поднети. Присуство није евидентирано за нека запослена лица." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "Није могуће ажурирати доделу за {0} након подношења" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "Није могуће ажурирати статус група циљева" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "Пренеси" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "Пренети дани одсуства" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "Слободан дан" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "Узрок притужбе" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "Статус је промењен из {0} у {1}, а статус за другу половину у {2} путем захтева за евиденцију присуства" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "Је променио статус са {0} на {1} путем захтева за евидентирање присуства" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "Промена '{0}' у {1}." + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "Промена KRA у овом матичном циљу ускладиће све повезане зависне циљеве, уколико постоје." + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "Проверите {1} за више детаља" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "Проверите евиденцију грешака {0} за више детаља." + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "Пријава" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "Одјава" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "Провера непопуњених радних места приликом креирање понуде за посао" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "Проверите {0} за више детаља" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "Пријава" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "Датум пријаве" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "Одјава" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "Датум одјаве" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "Радијус за запис о присуству" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "Зависни чворови се могу креирати само у оквиру чворова врсте 'Група'" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "Изаберите начин обрачуна сатнице за прековремени рад:
    1. Фиксна сатница: Фиксна, ручно унета сатница.
    2. Засновано на компоненти зараде:\n\n" +"(Збир одабраних компоненти) ÷ (Дани исплате) ÷ (Стандардни дневни сати)
    " + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "Изаберите датум када желите да креирате ове компоненте као заостатке." + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "Захтевај бенефицију за" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "Захтевај надокнаду трошкова" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "Захтевано" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "Захтевани износ" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "Затражени износ запосленог лица {0} прелази максимални износ за захтев {1}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "Затражени износ запосленог лица {0} мора бити већи од 0" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "Захтеви" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "Успешно" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "Кликните {0} да измените конфигурацију и да сачувате обрачунски листић" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "Затворено" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "Затвара се" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "Затвара се:" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "Завршне напомене" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "Информације о компанији" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "Захтев за компензационо одсуство" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "Компензационо одсуство" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "Завршавање увођења запосленог лица" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "Својства компоненти и референци " + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "Услов и формула" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "Помоћ за услове и формуле" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "Услов и формула" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "Променљиве и примери услова и формула" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "Конференција" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "Потврди {0}" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "Узми у обзир период толеранције" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "Узми у обзир евидентирано присуство током празника" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "Узмите у обзир изјаву о пореском ослобођењу" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "Третирај неевидентирано присуство као" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "Консолидуј врсте одсуства" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "Контакт број" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "Копија позива/обавештења" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "Није могуће поднети неке од обрачунских листића: {}" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "Није могуће ажурирати циљ" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "Није могуће ажурирати циљеве" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "Брисање подешавања за државу није успело" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "Поставке државе нису успеле" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "Држава пребивалишта" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "Курс" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "Пропратно писмо" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "Креирај додатну зараду" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "Креирај евалуације" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "Креирај интервју" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "Креирај кандидата за посао" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "Креирај отворено радно место" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "Креирај нови ИД запосленог лица" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "Креирај обрачун прековременог рада за запослено лице које испуњава услове" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "Креирај обрачуне прековременог рада" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "Креирај обрачунски листић" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "Креирај обрачунске листиће" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "Креирај смене након" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "Креирање евалуација" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "Креирање уноса уплате......" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "Креирање обрачунских листића..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "Креирање {0}..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "Датум креирања" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "Креирање је неуспешно" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "Креирање доделе структуре зараде је стављено у ред. Може потрајати неколико минута." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "Креирање {0} је у реду чекања. Може потрајати неколико минута." + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "Критеријуми на основу којих запослена лица треба да буду оцењена у повратној информацији о учинку и самопроцени" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "Валута " + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "Валута изабраног пореског разреда пореза на доходак треба да буде {0} уместо {1}" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "Тренутни укупни трошак по запосленом лицу" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "Тренутни број" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "Тренутни послодавац " + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "Тренутни назив радног места" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "Тренутни месец пореза на доходак" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "Тренутна вредност одометра мора бити већа од последње вредности {0}" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "Тренутна вредност одометра " + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "Тренутно отворена радна места" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "Тренутни обрачунски период" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "Тренутни платни разред" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "Тренутно радно искуство" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "Тренутно не постоји {0} период одсуства за овај датум за креирање/ажурирање доделе одсуства." + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "Прилагођени опсег" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "Назив циклуса" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "Циклус" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "Дневни извештај о раду" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "Група дневних извештаја о раду" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "Корисник групе дневних извештаја о раду" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "Одговори на дневни извештај о раду" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "Опсег датума је прекорачен" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "Датум је поновљен" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "Датум {0} се понавља у детаљима прековременог рада" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "Датум и разлог" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "Датуми засновани на" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "Дани када су празници блокирани за ово одељење." + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "Дани за сторнирање" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "Дани за сторнирање морају бити већи од нуле." + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "Број рачуна задужења" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "Дец" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "Одлука на чекању" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "Изјаве" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "Пријављени износ" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Одбиј целу пореску обавезу на изабрани датум обрачуна зараде" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "Одбити порез уколико доказ о пореском ослобођењу није поднет" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "Одбитак" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "Заостатак одбитака" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "Извештаји о одбицима" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "Одбитак од зараде" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "Одбици" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "Одбици пре обрачуна пореза" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "Подразумевани износ" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "Подразумевани текући рачун / благајна ће се аутоматски ажурирати у налогу књижења обрачуна зараде када је изабран овај начин." + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "Подразумевана основна зарада" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "Подразумевани рачун за аконтацију запосленог лица" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "Подразумевани рачун обавеза по основу захтева за надокнаду трошкова" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "Подразумевани рачун обавеза по основу зараде" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "Подразумевана структура зараде" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "Подразумевана смена" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "Обриши прилог" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "Обриши {0}" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "Одобравалац одељења" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "Отворена радна места по одељењима" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "Одељење {0} не припада компанији: {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "Одељење: {0}" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "Датум и време поласка" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "Зависи од дана исплате" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "Зависи од дана исплате" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "Опис отвореног радног места" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "Вештина за позицију" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "Позиција: {0}" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "Детаљи спонзора (назив, локација)" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "Одреди пријаву и одјаву" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "Онемогући {0} за компоненту {1} како би се спречило двоструко одбијање износа, јер формула већ користи компоненту базирану на данима исплате." + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "Онемогућите {0} или {1} да бисте наставили." + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "Онемогућавање обавештења..." + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "Немој укључивати у рачуноводствене уносе" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "Немој укључивати у укупан износ" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "Немој укључивати у укупан износ" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "Да ли желите да ажурирате кандидата за посао {0} као {1} на основу резултата интервјуа?" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "Документ {0} није успео!" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "Домаће" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "Дупликат присуства" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "Откривен је дупликат захтева" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "Дупликат захтева за запошљавање" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "Дупликат корекције одсуства" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "Дупликат замењене зараде" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "Дупликат задржане зараде" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "ГРЕШКА({0}): {1}" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "Ранији излазак" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "Ранији излазак од" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "Период толеранције за ранији излазак" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "Ранији изласци" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "Стечено одсуство" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "Учесталост стеченог одсуства" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "Распоред стечених одсустава" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "Стечена одсуства" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "Стечена одсуства се додељују у складу са подешеном учесталошћу планера." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "Стечена одсуства се аутоматски додељују путем планера, на основу годишње расподеле дефинисане у политици одсуства: {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "Стечена одсуства представљају право запосленог лица на одсуство које стиче након одређеног времена проведеног у компанији. Омогућавањем ове опције, одсуства ће се додељивати пропорционално аутоматским ажурирањем доделе одсуства за ову врсту одсуства у интервалима који су дефинисани путем опције 'Учесталост стеченог одсуства'." + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "Приход" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "Заостатак прихода" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "Компонента прихода" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "Компонента прихода зараде је обавезна за бонус за препоруку запосленог лица." + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "Приходи" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "Приходи и одбици" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "Уреди ставку трошка" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "Уреди порез на трошак" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "Важи од" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "Важи до" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "Важи од" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "Пошаљи обрачунски листић запосленом лицу путем имејла" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "Пошаљи обрачунске листиће путем имејла" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "Имејл послат" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "Обрачунски листић запосленом лицу на основу изабране жељене имејл адресе у картици запосленог лица" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "Број рачуна запосленог лица" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "Аконтациони рачун запосленог лица" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "Стање аконтације запосленог лица" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "Резиме аконтације запосленог лица" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "Аналитика запосленог лица" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "Алат за евиденцију присуства запослених лица" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "Захтев за бенефицију запосленог лица" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "Детаљи захтева за бенефицију запосленог лица" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "Захтев за бенефицију запосленог лица" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "Детаљ бенефиције запосленог лица" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "Књига бенефиција запосленог лица" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "Бенефиције запосленог лица" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "Рођендан запосленог лица" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "Активност увођења запосленог лица" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "Запис о присуству" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "Историја записа о присуству" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "Трошковни центар запосленог лица" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "Детаљи запосленог лица" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "Имејлови запосленог лица" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "Подешавање одласка запосленог лица" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "Одласци запослених лица" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "Критеријуми за повратне информације о запосленом лицу" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "Оцењивање повратних информација о запосленом лицу" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "Ранг запосленог лица" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "Притужба запосленог лица" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "Здравствено осигурање запосленог лица" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "Искоришћеност радних часова запосленог лица на основу евиденције времена" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "Слика запосленог лица" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "Стимулација запосленог лица" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "Информације о запосленом лицу" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "Информације о запосленом лицу" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "Пут запосленог лица" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "Стање одсуства запосленог лица" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "Резиме стања одсуства запосленог лица" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "Зајам запосленог лица" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "Начин именовања запосленог лица" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "Увођење запосленог лица" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "Шаблон увођења запосленог лица" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "Увођење запосленог лица: {0} већ постоји за кандидата за посао: {1}" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "Остали приходи запосленог лица" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "Повратна информација о учинку запосленог лица" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "Унапређење запосленог лица" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "Детаљи о унапређењу запосленог лица" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "Унапређење запосленог лица не може бити поднето пре датума унапређења" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "Историја имовине запосленог лица" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "Препорука запосленог лица" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "Препорука запосленог лица {0} већ постоји за имејл: {1}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "Препорука запосленог лица {0} не испуњава услове за бонус за препоруку." + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "Препоруке запослених лица" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "Одговорно запослено лице " + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "Задржано запослено лице" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "Престанак радног односа запосленог лица" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "Шаблон о престанку радног односа запосленог лица" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "Подешавање запосленог лица" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "Вештина запосленог лица" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "Мапа вештина запосленог лица" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "Вештине запосленог лица" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "Статус запосленог лица" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "Категорија пореског ослобођења запосленог лица" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "Изјава о пореском ослобођењу запосленог лица" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "Категорија изјаве о пореском ослобођењу запосленог лица" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "Подношење доказа о пореском ослобођењу запосленог лица" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "Детаљи подношења доказа о пореском ослобођењу запосленог лица" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "Подкатегорија пореског ослобођења запосленог лица" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "Обука запосленог лица" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "Премештај запосленог лица" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "Детаљи о премештају запосленог лица" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "Детаљи о премештају запосленог лица" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "Премештај запосленог лица не може бити поднет пре датума премештаја" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "Аконтациони рачун запосленог лица {0} треба да буде врсте {1}." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "Запослено лице може бити именовано путем ИД броја, уколико га доделите, или кроз серију именовања. Изаберите жељени начин овде." + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "Име запосленог лица" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "Записи о запосленим лицима креирају се према изабраној опцији" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "Запосленом лицу је означен изостанак због недостајућих записа о присуству." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "Запосленом лицу је означен изостанак због неиспуњавања минималног броја радних часова." + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "Запосленом лицу је означен изостанак за други део радног времена због недостајућих записа о присуству." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "Запослено лице {0} : {1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "Запослено лице {0} већ има захтев за евидентирање присуства {1} који се преклапа са овим периодом" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "Запослено лице {0} већ има активну смену {1}: {2} која се преклапа у овом периоду." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "Запослено лице {0} је већ поднело захтев {1} за обрачунски период {2}" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "Запослено лице {0} је већ поднело захтев за смену {1}: {2} која се преклапа у овом периоду" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "Запослено лице {0} је већ поднело захтев за {1} у периоду од {2} до {3} : {4}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "Запослено лице {0} је већ поднело захтев за бенефицију '{1}' за {2} ({3}).
    У циљу спречавања преплате, дозвољен је само један захтев по врсти бенефиције у сваком обрачунском циклусу." + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "Запослено лице {0} није активно или не постоји" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "Запослено лице {0} је на одсуству на {1}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "Запослено лице {0} није пронађено међу учесницима догађаја обуке." + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "Запослено лице {0} је на половини радног дана {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "Запослено лице {0} разрешено на {1} мора бити означено као 'Прекинут радни однос'" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "Запослено лице: {0} треба да има најмање {1} година за право на отпремнину" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "Запослена лица HTML" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "Запослена лица која раде током празника" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "Запослена лица не могу давати повратну информацију себи. Користити {0} уместо: {1}" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "Запослена лица са половином радног дана HTML" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "Запослена лица неће добијати подсетнике о празницима од {} до {}.
    Да ли желите да наставите са овом изменом?" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "Запослена лица без повратне информације: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "Запослена лица без циљева: {0}" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "Запослена лица која раде током празника" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "Врста запосленог лица" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "Омогући аутоматску евиденцију присуства" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "Омогући означавање раног одласка" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "Омогући означавање касног доласка" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "Омогући обавештења" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "Омогућите ово како би користили посебан коефицијент за државне празнике. Уколико није означено, користи се стандардни коефицијент." + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "Омогућите ово како би користили посебан коефицијент за викенде. Уколико није означено, користи се стандардни коефицијент." + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "Омогућено само за бенефиције запослених лица из доделе структуре зараде" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "Омогућавање обавештења..." + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "Накнада за неискоришћено одсуство" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "Износ накнаде за неискоришћено одсуство" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "Дани за које се исплаћује накнада" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "Број дана за исплату накнаде не може прећи {0} {1} према подешавањима врсте одсуства" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "Примењено ограничење за исплату накнаде" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "Шифровање обрачунских листића у имејлу" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "Датум завршетка не може бити пре датума почетка" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "Датум завршетка: {0}" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "Време завршетка не може бити пре времена почетка" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "Унесите круг интервјуа" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "Унесите вредност различиту од нуле за корекцију." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "Унесите стандардни број радних часова за један нормалан радни дан. Ови часови ће се користити за прорачуне у извештајима као што су искоришћеност радних часова и анализа профитабилности пројекта." + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "Унесите број дана одсуства без накнаде које желите да сторнирате. Ова вредност не може бити већа од укупног броја дана одсуства без накнаде евидентираних за изабрани месец" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "Унесите број дана одсуства који желите да доделите за овај период." + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "Унесите годишње износе бенефиција" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "Унесите {0}" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "Грешка приликом креирања {0}" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "Грешка приликом брисања {0}" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "Грешка приликом преузимања PDF" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "Грешка у формули или услову" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "Грешка у формули или услову: {0} у пореском разреду пореза на доходак" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "Грешка у неким редовима" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "Грешка приликом ажурирања {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "Грешка приликом обраде {doctype} {doclink} у реду {row_id}.

    Грешка: {error}

    Савет: {description}" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "Процењени трошак по радном месту" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "Евалуација" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "Датум евалуације" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "Метода евалуације се не може мењати јер су за овај циклус већ креиране евалуације" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "Детаљи догађаја" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "Линк догађаја" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "Локација догађаја" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "Назив догађаја" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "Статус догађаја" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "Сваке 2 недеље" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "Сваке 3 недеље" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "Сваке 4 недеље" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "Свако важеће евидентирање доласка и одласка" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "Сваке недеље" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "Сви, честитајмо им годишњицу рада!" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "Сви, честитајмо {0} рођендан." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "Испит" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "Девизни курс уноса уплате у односу на аконтацију запосленог лица" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "Искључи празнике" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "Искључено {0} дана неисплаћеног одсуства за {1}" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "Ослобођен од пореза на доходак" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "Ослобођење" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "Категорија ослобођења" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "Докази о ослобођењу" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "Подкатегорија ослобођења" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "Постојећи запис" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "Постојеће доделе смена" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "Одлазак потврђен" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "Детаљи о одласку" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "Излазни интервју" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "Излазни интервју на чекању" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "Резиме излазног интервјуа" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "Излазни интервју {0} већ постоји за запослено лице {1}" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "Упитник за одлазак" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "Обавештење о упитнику за одлазак" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "Шаблон обавештења за упитник за одлазак" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "Упитник за одлазак на чекању" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "Веб-формулар упитника за одлазак" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "Одлазака (овај месец)" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "Очекивана просечна оцена" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "Очекивано до" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "Очекивана накнада" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "Очекивани месечни распон зараде" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "Очекивани скуп вештина" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "Очекивани скуп вештина" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "Одобравалац трошкова" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "Одобравалац трошкова је обавезан у захтеву за надокнадом трошкова" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "Рачун захтева за надокнаду трошкова" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "Аконтација захтева за надокнаду трошкова" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "Детаљи захтева за надокнаду трошкова" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "Резиме захтева за надокнаду трошкова" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "Врста захтева за надокнаду трошкова" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "Захтев за надокнаду трошкова за евиденцију о коришћењу возила {0}" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "Захтев за надокнаду трошкова {0} већ постоји за евиденцију о коришћењу возила" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "Захтеви за надокнаду трошкова" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "Датум трошка" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "Ставка трошка" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "Доказ о трошку" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "Порез на трошак" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "Порези и таксе на трошкове" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "Врста трошка" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "Трошкови и аконтације" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "Истек доделе" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "Истичу пренесени дани одсуства (у данима)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "Истекло одсуство" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "Истекло одсуство" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "Истекла одсуства" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "Образложење" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "Извоз..." + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "Неуспешно креирање/подношење {0} за запослена лица:" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "Неуспешно брисање подразумеваних вредности за државу {0}." + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "Неуспешно преузимање PDF: {0}" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "Неуспешно слање обавештења о промени термина интервјуа. Молимо Вас да подесите своју имејл адресу." + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "Неуспешне поставке подразумеваних вредности за државу {0}." + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "Неке доделе политике одсуства није било могуће поднети:" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "Неуспешно ажурирање статуса кандидата за посао" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "Неуспешно {0} {1} за запослена лица:" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "Детаљи о неуспеху" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "Разлог неуспеха" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "Неуспех аутоматске доделе стечених одсустава" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "Феб" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "Број повратних информација" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "Повратна информација HTML" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "Оцене повратних информација" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "Шаблон обавештења за подсетник за повратну информацију" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "Оцена повратних информација" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "Повратна информација је поднета" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "Резиме повратне информације" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "Повратна информација за интервју {0} је већ поднета. Молимо Вас да откажете претходну повратну информацију {1} да бисте наставили." + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "Повратна информација не може бити записана за одсутно запослено лице." + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "Повратна информација {0} је успешно додата" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "Преузми геолокацију" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "Преузми детаље прековременог рада" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "Преузми смену" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "Преузми смене" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "Преузимање запослених лица" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "Преузимање смене" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "Преузимање Ваше геолокације" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "Преглед фајла" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "Попуните формулар и сачувајте га" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "Попуњено" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "Филтрирај запослена лица" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "Филтрирај по смени" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "Коначна одлука" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "Коначна оцена" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "Формула за коначну оцену" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "Прво евидентирање доласка и последње евидентирање доласка" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "Први дан" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "Име " + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "Фискална година {0} није пронађена" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "Фиксна сатница" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "Управљање возним парком" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "Флексибилна бенефиција" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "Флексибилне бенефиције" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "Флексибилна компонента" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "Авион" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "Завршни обрачун је на чекању" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "Прати путем имејла" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "Храна" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "За позицију " + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "За запослено лице" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "За један дан одсуства, уколико се ипак исплаћује (на пример) 50% дневне зараде, онда унесите 0.50 у ово поље." + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "Формула" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "Део примењивих прихода " + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "Део дневне зараде за половину радног дана" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "Део дневне зараде по одсуству" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "Делимични трошак" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "Frappe HR" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "Од износа" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "Датум почетка мора бити испред датума завршетка" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "Датум почетка {0} не може бити након датума завршетка обрачунског периода {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "Датум почетка {0} не може бити после датума престанка радног односа {1}" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "Датум почетка {0} не може бити пре датума почетка обрачунског периода {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "Датум почетка {0} не може бити пре датума запослења {1}" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "Датум почетка не може бити мањи од датума запослења" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "Датум почетка не може бити мањи од датума запослења." + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "Овде можете омогућити исплату накнаде зараде за преостале дане одсуства." + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "Од {0} до {1}" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "Почетна година" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "Фуксија" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "Трошак горива" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "Трошкови горива" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "Цена горива" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "Количина горива" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "Преостала имовина" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "Извод неизмирених ставки за завршни обрачун" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "Пуно радно време" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "Спонзорисано у целости" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "Износ средстава" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "Предвиђени порез на доходак" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "Будући датуми нису дозвољени" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "Рачун курсних разлика" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "Грешка геолокације" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "Геолокација није подржана са Вашим тренутним интернет претраживачом" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "Преузми детаље из изјаве" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "Преузми запослена лица" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "Преузми захтеве за запошљавање" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "Преузми шаблон" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "Преузми апликацију на свом уређају за лакши приступ и боље корисничко искуство!" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "Преузми апликацију на свом иПхоне уређају за лакши приступ и боље корисничко искуство" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "Без глутена" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "Иди на пријаву" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "Иди на страницу за ресетовање лозинке" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "Остварење циља (%)" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "Оцена циља" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "Оцена циља (%)" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "Оцена циља (пондерисана)" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "Проценат напретка циља не може бити већи од 100." + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "Циљ треба да буде усклађен са истим KRA као и његов матични циљ." + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "Циљ мора припадати истом запосленом лицу као и његов матични циљ." + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "Циљ треба да припада истом циклусу евалуације као и његов матични циљ." + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "Циљ је успешно ажуриран" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "Циљеви су успешно ажурирани" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "Платни разред" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "Отпремнина" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "Компонента отпремнине" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "Правило отпремнине" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "Правило разреда отпремнине" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "Притужба" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "Притужба против" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "Страна против које је поднета притужба" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "Детаљи притужбе" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "Врста притужбе" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "Бруто приходи" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "Бруто зарада" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "Бруто зарада (валута компаније)" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "Бруто зарада од почетка године до данас" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "Бруто зарада од почетка године до данас (валута компаније)" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "Напредак групног циља се аутоматски израчунава на основу његових подциљева." + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "HR" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "HR и обрачун зарада" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "Подешавање HR и обрачуна зарада" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "HR контролна табла" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "HR подешавања" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "HRMS" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "Половина радног дана" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "Датум половине радног дана" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "Датум половине радног дана је обавезан" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "Датум половине радног дана треба да буде између датума почетка и датума завршетка" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "Датум половине радног дана треба да буде између датума почетка рада и датума завршетка рада" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "Заглавље за запослена лица означена са половином радног дана" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "Записи за половину радног дана" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "Датум половине радног дана треба да буде између датума почетка и датума завршетка" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "Поседује сертификат" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "Здравствено осигурање" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "Назив здравственог осигурања" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "Број здравственог осигурања" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "Пружалац здравственог осигурања" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "Здраво {}! Овај имејл је подсетник за предстојеће празнике." + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "Здраво, {0} 👋" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "Број ангажованих лица" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "Подешавање запошљавања" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "Листа празника за опционо одсуство" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "Празници током овог месеца." + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "Празници током ове недеље." + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "Хоризонтални размак" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "Зарада по часу (валута компаније)" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "Сатница" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "Дани плаћеног закупа преклапају се са {0}" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "Датуми закупа су обавезни за обрачун пореског ослобођења" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "Датуми закупа морају бити у размаку од најмање 15 дана" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "IFSC" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "IFSC Code" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "ДОЛАЗАК" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "Број идентификационог документа" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "Врста идентификационог документа" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "Уколико је означено, обавеза по основу зараде ће бити књижења по запосленом лицу" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "Уколико је означено, флексибилне бенефиције се узимају у обзир само уколико постоји захтев за бенефицијом" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "Уколико је означено, сакрива и онемогућава поље заокружено укупно у обрачунским листићима" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "Уколико је означено, креирање обрачуна прековременог рада може се обављати у оквиру процеса обрачуна зарада" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "Уколико је означено, цео износ ће бити одбијен од опорезивог дохотка пре обрачуна пореза, без потребе за изјавом или подношењем доказа." + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "Уколико је омогућено, изјава о пореском ослобођењу биће узета у обзир при обрачуну пореза на доходак." + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "Уколико је омогућено, аутоматска евиденција присуства биће означена и током празника уколико постоје записи о присуству" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "Уколико је омогућено, одузима се број дана плаћања за изостанак током празника. Подразумевано, празници се сматрају као плаћени дани" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "Уколико је омогућено, износ неће бити укључен у рачуноводствене уносе током књижења." + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "Уколико је омогућено, компонента ће се сматрати пореском компонентом и износ ће бити аутоматски обрачунат према подешеним пореским разредима пореза на доходак" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "Уколико је омогућено, компонента ће бити укључена у извештај о одбицима пореза на доходак" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "Уколико је омогућено, компонента неће бити приказана у обрачунском листићу уколико је износ нула" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "Уколико је омогућено, укупан број пријава за ово радно место ће бити приказано на веб-сајту" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Уколико је омогућено, вредност из ове компоненте неће улазити у приходе ни одбитке, али може бити референцирана у другим компонентама. " + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "Уколико је омогућено, ова компонента ће омогућити обрачунавање износа без додавања у приходе. Обрачунати салдо се прати у књизи бенефиција запослених лица и може се исплатити касније по потреби." + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "Уколико је омогућено, ова компонента ће бити укључена у обрачун заостатака" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "Уколико је омогућено, укупан број радних дана ће укључивати и празнике, што ће смањити вредност зараде по дану" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "Уколико је веће од нуле, ово одређује максималан износ бенефиције која се може доделити запосленом лицу" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "Уколико није означено, листа мора бити додата сваком одељењу појединачно." + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Уколико је изабрано, вредност дефинисана или израчуната у овој компоненти неће улазити у обрачун прихода или одбитака. Ипак, ту вредност могу користити друге компоненте које се додају или одузимају. " + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "Уколико је постављено, отворено радно место ће се аутоматски затворити након овог датума" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "Уколико користите зајмове у обрачунским листићима, молимо Вас да инсталирате {0} апликацију са Frappe Cloud Маркетплаце или GitHub како бисте наставили са интеграцијом зајмова у обрачуну зараде." + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "Увоз евиденција присуства" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "На време" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "У случају било какве грешке током овог позадинског процеса, систем ће додати коментаре о грешци на овај унос обрачуна зараде и вратити га на статус поднето" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "Подстицај" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "Износ подстицаја" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "Укључи подређене ентитете компаније" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "Укључи празнике" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "Укључи празнике у укупан број радних дана" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "Укључи празнике у одсуство као део одсуства" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "Извор прихода" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "Износ пореза на доходак" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "Структура пореза на доходак" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "Компонента пореза на доходак" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "Обрачун пореза на доходак" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "Порез на доходак одбијен до данас" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "Одбици пореза на доходак" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "Порески разред пореза на доходак" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "Остали намети у пореском разреду пореза на доходак" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "Порески разред пореза на доходак је обавезан с обзиром да структура зараде {0} садржи пореску компоненту {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "Порески разред пореза на доходак мора бити важећи на или пре почетка обрачунског периода: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "Порески разред пореза на доходак није постављен у додели структуре зараде: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "Порески разред пореза на доходак: {0} је онемогућен" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "Приходи из осталих извора" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "Неисправна расподела пондера" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "Означава број дана одсуства који се не могу уновчити из укупног стања одсуства. На пример, уколико имате стање од 10 дана и 4 дана која се не могу уновчити, можете уновчити 6 дана, док се преостала 4 могу пренети у наредни период или истећи" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "Инспекција" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "Инсталирај" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "Инсталирај Frappe HR" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "Недовољан број дана одсуства" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "Недовољан број дана одсуства за врсту одсуства {0}" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "Износ камате" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "Рачун прихода од камата" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "Приправник" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "Међународни" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "Интернет" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "Интервју" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "Детаљ интервјуа" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "Детаљи интервјуа" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "Повратна информација интервјуа" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "Подсетник за повратну информацију о интервјуу" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "Повратна информација о интервјуу {0} је успешно поднета" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "Промена термина интервјуа није успела" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "Подсетник за интервју" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "Шаблон подсетника за интервју" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "Промена термина интервјуа је успешна" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "Круг интервјуа" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "Круг интервјуа {0} је искључиво примењив за позицију {1}" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "Круг интервјуа {0} је предвиђен само за позицију {1}. Кандидат за посао је аплицирао за улогу {2}" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "Заказани датум интервјуа" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "Статус интервјуа" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "Резиме интервјуа" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "Врста интервјуа" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "Интервју: {0} промењен термин" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "Испитивач" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "Испитивачи" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "Интервјуи" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "Интервјуи (ове недеље)" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "Неважећа обрачунска компонента" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "Неважећа додатна зарада" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "Неважећа компонента заостатка" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "Неважећи износ бенефиција" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "Неважећи датуми" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "Неважећи број сторнираних дана одсуства без накнаде" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "Неважећи унос у евиденцију одсуства" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "Неважећи рачун за обрачун зараде. Валута рачуна мора бити {0} или {1}" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "Неважећи термини смене" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "Прослеђени су неважећи параметри. Молимо Вас да унесте неопходне аргументе." + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "Истражено" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "Детаљи истраге" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "Позван" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "Референца фактуре" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "Додељено" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "Укључује бонус за препоруку" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "Преноси се у наредни период" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "Компензационо" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "Компензационо одсуство" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "Стечено одсуство" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "Истекло" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "Флексибилна бенефиција" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "Компонента пореза на доходак" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "Одсуство без накнаде" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "Опционо одсуство" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "Делимично плаћено одсуство" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "Понављајуће" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "Понављајућа додатна зарада" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "Зарада исплаћена" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "Зарада задржана" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "Примењује се порез" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "Јан" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "Кандидат за посао" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "Извор кандидата за посао" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "Кандидат за посао {0} је успешно креиран." + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "Кандидати за посао не смеју два пута учествовати у истом кругу интервјуа. Интервју {0} је већ заказан за кандидата за посао {1}" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "Пријава за посао" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "Путања пријаве за посао" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "Опис посла" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "Понуда за посао" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "Услов понуде за посао" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "Шаблон услова понуде за посао" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "Услови понуде за посао" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "Статус понуде за посао" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "Понуда за посао: {0} већ постоји за кандидата за посао: {1}" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "Отворено радно место" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "Повезано отворено радно место" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "Шаблон отвореног радног места" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "Отворена радна места" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "Отворена радна места за позицију {0} су већ отворена или је запошљавање у складу са планом особља {1}" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "Захтев за запошљавање" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "Захтев за запошљавање {0} је повезан са отвореним радним место {1}" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "Опис посла, потребне квалификације и слично." + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "Послови" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "Датум запослења" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "Јул" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "Јун" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "KRA" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "KRA евалуациона метода" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "KRA је ажурирана за све зависне циљеве." + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "KRA наспрам циљева" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "KRA" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "Кључна област перформанси" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "Кључна област одговорности" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "Кључна област резултата" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "Број сторнираних дана одсуства без накнаде ({0}) се не поклапа са укупним износом корекције обрачуна зараде ({1}) за запослено лице {2} у периоду од {3} до {4}" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "Последњи дан" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "Последња позната успешна синхронизација записа о присуству. Ресетујте ово само уколико сте сигурни да су сви записи синхронизовани са свих локација. Молимо Вас да не мењате ову вредност уколико нисте сигурни." + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "Последња вредност одометра " + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "Последња синхронизација записа о присуству" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "Последњи {0} био је {1}" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "Касни доласци" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "Касни долазак" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "Подешавање аутоматске евиденције за касни долазак и ранији одлазак" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "Касни долазак од стране" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "Толеранција за касни долазак" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "Обавезно је унети вредности географске ширине и географске дужине за пријаву." + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "Географска ширина: {0}°" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "Одсуство" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "Корекција одсуства" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "Корекција одсуства за ову доделу већ постоји: {0}. Молимо Вас да измените постојећу корекцију." + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "Додела одсуства" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "Додела одсуства већ постоји" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "Доделе одсуства" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "Захтев за одсуство" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "Период захтева за одсуство не може да обухвата два неповезана периода доделе одсуства {0} и {1}." + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "Обавештење о одобрењу одсуства" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "Шаблон обавештења о одобрењу одсуства" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "Одобравалац одсуства" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "Одобравалац одсуства је обавезан у захтеву за одсуство" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "Назив одобраваоца одсуства" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "Стање одсуства" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "Стање одмора пре подношења захтева" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "Листа блокираних одсуства" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "Дозволи у листи блокираних одсуства" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "Дозвољено у листи блокираних одсуства" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "Датум листе блокираних одсуства" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "Датуми листе блокираних одсуства" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "Назив листе блокираних одсуства" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "Одсуство је блокирано" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "Контролна табла за одсуства" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "Детаљи одсуства" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "Накнада за неискоришћено одсуство" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "Износ накнаде за неискоришћено одсуство по дану" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "Историја одсуства" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "Евиденција одсуства" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "Унос у евиденцију одсуства" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "Датум уноса у евиденцију одсуства мора бити након датума почетка. Тренутно је датум почетка {0}, док је датум завршетка {1}" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "Период одсуства" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "Политика одсуства" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "Додела политике одсуства" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "Преклапање доделе политике одсуства" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "Детаљ политике одсуства" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "Детаљи политике одсуства" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "Политика одсуства: {0} је већ додељена запосленом лицу {1} за период {2} до {3}" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "Обавештење о статусу одсуства" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "Шаблон обавештења о статусу одсуства" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "Врста одсуства" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "Назив врсте одсуства" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "Врста одсуства не може бити компензационо или стечено одсуство." + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "Врста одсуства може бити без накнаде или са делимичном накнадом" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "Врста одсуства је обавезна" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "Врста одсуства {0} не може бити додељена јер је одсуство без накнаде" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "Врста одсуства {0} не може бити пренета у наредни период" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "Врста одсуства {0} није предмет исплате" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "Одсуство без накнаде" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "Одсуство без накнаде не одговара одобреним {} записима" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "Додела одсуства је прескочена за {0}, јер је број дана одсуства за доделу једнак 0." + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "Додела одсуства {0} је повезана са захтевом за одсуство {1}" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "Одсуство је већ додељено за ову политику одсуства" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "Подешавање захтева за одсуство и надокнаду трошкова" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "Захтев за одсуство је повезан са доделом одсуства {0}. Захтев за одсуство се не може поставити као одсуство без накнаде" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Одсуство не може бити додељено пре {0}, јер је стање одсуства већ пренесено у будући запис о додели одсуства {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Одсуство не може бити примењено/отказано пре {0}, јер је стање одмора већ пренето у будући запис о додели одмора {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "Врста одсуства {0} не може трајати дуже од {1}." + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "Одсуство истекло" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "Одсуство на чекању за одобрење" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "Искоришћено одсуство" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "Одсуства" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "Одсуства и празници" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "Одсуства након корекције" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "Додељена одсуства" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "Истекли дани одсуства" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "Одсуства на чекању за одобрење" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "Дани одсуства за врсту одсуства {0} неће бити пренети у наредни период јер је пренос онемогућен." + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "Дани одсуства годишње" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "Одсуства за корекцију" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "Одсуство које можете искористити за дан када сте радили на дан празника. Компензационо одсуство можете захтевати преко захтева за компензационо одсуство. Кликните на {0} за више информација" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Прекинут радни однос" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "Животни циклус" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "Светлозелена" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "Повежите циклус и означите кључна подручја резултата за сопствени циљ како бисте ажурирали оцену циља у евалуацију на основу напретка циља" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "Повезани пројекат {} и задаци су обрисани." + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "Рачун зајма" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "Кредитни производ" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "Отплата зајма" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "Унос отплате зајма" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "Зајам не може бити отплаћен од зараде запосленог лица {0} јер се зарада обрачунава у валути {1}" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "Лоцирање..." + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "Локација / ИД уређаја" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "Неопходна ноћења" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "Одјави се" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "Врста евиденције" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "Врста евиденције је неопходна за пријаве које падају у смену: {0}." + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "Неуспешна пријава" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "Пријављивање на Frappe HR" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "Географска дужина: {0}°" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "Доња граница" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "MICR" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "Направи банкарски унос" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "Обавезан захтев за бенефицију" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "Обавезна поља су неопходна за ову радњу:" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "Ручно оцењивање" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "Ручно" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "Мар" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "Означи присуство" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "Аутоматски означи присуство за дане празника" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "Означи као завршено" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "Означи као у току" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "Означи као {0}" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "Означи присуство као {0} за {1} на изабраним датумима?" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "Означи присуство на основу 'Запис о присуству' за запослена лица додељена овој смени." + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "Означи присуство за постојеће пријаве/одјаве пре промене подешавања смене" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "Означи {0} као завршено?" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "Означи {0} {1} као {2}?" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "Означено присуство" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "Означено присуство HTML" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "Означавање присуства" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "Максималан дозвољени износ за захтев" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "Максимални износ бенефиције" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "Максимални износ бенефиције (годишње)" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "Максимална бенефиција (износ)" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "Максимална бенефиција (годишње)" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "Максимални износ ослобођења" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "Максимални износ ослобођења не може бити већи од максималног износа ослобођења {0} за категорију пореског ослобођења {1}" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "Максимални опорезиви приход" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "Максималан број радних часова према евиденцији времена" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "Максималан износ бенефиције" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "Максималан број пренетих дана одсуства" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "Максималан број узастопних дана одсуства" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "Прекорачен је максималан број узастопних дана одсуства" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "Максималан број дана одсуства за накнаду" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "Максималан износ ослобођења" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "Максималан износ пореског ослобођења" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "Максимално дозвољена додела одсуства по периоду одсуства" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "Максимално дозвољени сати прековременог рада" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "Максимално дозвољени сати прековременог рада по дану" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "Максимални годишњи опорезиви приход за потпуно пореско ослобођење. Порез се не примењује уколико приход не прелази овај лимит" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "Максималан број дана одсуства за накнаду за {0} је {1}" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "Максимални број дана дозвољен за врсту одсуства {0} је {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "Мај" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "Преференција оброка" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "Медицинско" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "Километража" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "Минимални опорезиви приход" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "Минимални број година за отпремнину" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "Минимални број радних дана од датума запослења неопходан за подношење захтева за ово одсуство" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "Недостаје аконтациони рачун" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "Недостаје обавезно поље" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "Недостају уноси почетног стања" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "Недостаје датум престанка радног односа" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "Недостаје компонента зараде" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "Недостаје порески разред" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "Начин путовања" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "Начин плаћања је обавезан како би се извршила уплата" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "За месец до данас" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "За месец до данас (валута компаније)" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "Месечна табела присуства" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "Више од једног избора за {0} није дозвољено" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "Вишеструке додатне зараде са опцијом преписивања постоје за компоненту зараде {0} између {1} и {2}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "Вишеструке доделе смене" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "Коефицијенти који прилагођавају сатницу за прековремени рад у специфичним ситуацијама\n\n" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "Моје аконтације" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "Моји захтеви за надокнаду" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "Моја одсуства" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "Моји захтеви" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "Назив грешке" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "Назив организатора" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "Нето зарада" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "Нето зарада (валута компаније)" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "Информације о нето заради" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "Нето зарада не може бити мања од 0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "Износ нето зараде" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "Нето зарада не може бити негативна" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "Нови ИД запосленог лица" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "Нова ставка трошка" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "Нови порез на трошак" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "Нова повратна информација" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "Нова запослена лица (овај месец)" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "Ново додељено одсуство" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "Нова додељена одсуства" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "Нова додељена одсуства (у данима)" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "Нова додела смене биће креирана након овог датума." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "Није пронађен текући рачун/благајна за валуту {0}. Молимо Вас да га креирате у оквиру компаније {1}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "Није пронађено запослено лице" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "Није пронађено запослено лице за унету вредност поља. '{}': {}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "Није изабрано ниједно запослено лице" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "Ниједан интервју није заказан." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "Није пронађен период одсуства" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "Нема додељеног одсуства запосленом лицу: {0} за врсту одсуства: {1}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "Није пронађен обрачунски листић за запослено лице: {0}" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "Нису пронађени обрачунски листићи са {0} за запослено лице {1} у обрачунском периоду {2}." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "Није пронађена структура зараде за запослено лице {0} на датум {1}" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "Није пронађена додела структуре зараде за запослено лице {0} на дан или пре {1}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "За запослено лице {0} није додељена структура зараде на датум {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "Нема структура зараде" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "Није изабран захтев за радну смену" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "Није пронађен план особља за ову позицију" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "Није пронађена активна додела структуре зараде за запослено лице {0} са структуром зараде {1} на или након датума почетка заостатка {2}" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "Нема активног запосленог лица повезаног са имејл ИД {0}. Покушајте да се пријавите са пословним имејлом или контактирајте HR менаџера за приступ." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "Није пронађена активна или подразумевана структура зараде за запослено лице {0} за наведене датуме" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "Нису додати додатни трошкови" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "Нема пронађених аконтација" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "Није пронађена одговарајућа компонента прихода у последњем обрачунском листићу за правило отпремнине: {0}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "Није пронађена одговарајућа компонента прихода за правило отпремнине: {0}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "Није пронађен одговарајући разред за обрачун износа отпремнине према правилу отпремнине: {0}" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "У постојећим обрачунским листићима нису пронађене компоненте заостатка." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "Нису пронађене компоненте заостатка у обрачунском листићу. Проверите да ли је означена компонента заостатка у мастер подацима компоненте зараде." + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "Нису пронађени детаљи заостатка" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "Нису пронађени записи присуства за запослено лице {0} између {1} и {2}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "Није пронађена евиденција присуства која одговара овим критеријумима." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "Није пронађена евиденција присуства." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "Не постоји евиденција присуства за креирање" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "Нема промена у терминима." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "Нису пронађена запослена лица" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "Не постоје запослена лица која одговарају наведеним критеријумима:
    Компанија: {0}
    Валута: {1}
    Рачун обрачуна зараде: {2}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "Нису пронађена запослена лица за изабране критеријуме" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "Није пронађено ниједно запослено лице са изабраним филтерима и активном структуром зараде" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "Нема додатних трошкова" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "Још није примљена ниједна повратна информација" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "Није изабрана ниједна ставка" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "Није пронађена додела одсуства {0} за {1} на дати датум." + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "Нема евиденције одсуства за запослено лице {0} на {1}" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "Дани одсуства нису додељени." + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "Нема додатних ажурирања" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "Број позиција" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "Нема одговора од" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "Није пронађен обрачунски листић за подношење према изабраним критеријумима или је обрачунски листић већ поднет" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "Нису пронађени обрачунски листићи" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "Нису пронађени обрачунски листићи за изабрано запослено лице од {0}" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "Нису додати порези" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "Није пронађена важећа смена за време пријаве" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "{0} није изабра" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "{0} није додат" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "Без млечних производа" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "Приходи који нису предмет опорезивања" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "Нефактурисани часови" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "Нефактурисани часови (НБ)" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "Одсуства која се не могу исплатити" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "Исхрана која укључује месо" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "Напомена: Смена неће бити преписана у постојећим евиденцијама присуства" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "Напомена: Укупно додељених одсуства {0} не може бити мање од већ одобрених одсуства {1} за период" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "Напомена: Ваш обрачунски листић је заштићен лозинком, лозинка за откључавање PDF-а има формат {0}." + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "Нема података за измену" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "Отказни рок" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "Шаблон обавештења" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "Обавести кориснике путем имејла" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "Нов" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "Број запослених лица" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "Број позиција" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "Број одсуства" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "Број циклуса задржавања зараде" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "Број дана одсуства који се могу исплатити, у складу са подешавањима врсте одсуства" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "Једнократна лозинка" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "Верификација једнократном лозинком" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "ОДЛАЗАК" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "Добијена просечна оцена" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "Окт" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "Очитавање одометра" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "Вредност одометра" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "Ван радне смене" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "Ван радне смене" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "Услов понуде" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "Услови понуде" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "На датум" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "На задатку" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "На одсуству" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "Увођење" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "Активности увођења" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "Увођење почиње на" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "Искључиво одобраваоци могу да одобре овај захтев." + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "Искључиво завршени документи могу бити поднети" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "Искључиво притужбе запослених лица са статусом {0} или {1} могу бити поднете" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "Искључиво испитивач може поднети повратну информацију" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "Искључиво интервјуи са статусом успешно или одбијено могу бити поднети." + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "Искључиво захтев за одсуством са статусом 'Одобрено' или 'Одбијено' може бити поднет" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "Искључиво захтев за радну смену са статусом 'Одобрено' или 'Одбијено' може бити поднет" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "Искључиво истекла додељивања могу бити отказана" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "Искључиво испитивачи могу поднети повратну информацију" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "Искључиво корисници са улогом {0} могу креирати захтев са одсуством са ретроактивним датумом" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "Искључиво циљеви врсте {0} могу бити {1}" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "Отворено и одобрено" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "Отвори повратну информацију" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "Отвори сада" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "Отворено радно место је затворено." + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "Листа опционих празника није подешена за период одсуства {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "Опциони празници су нерадни дани које запослена лица могу да искористе са листе празника коју је објавила компанија." + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "Организациони дијаграм" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "Остали порези и накнаде" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "Остало" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "Време изласка" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "Одлазна зарада" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "Прекорачена додела" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "Укупна просечна оцена" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "Преклапајући захтев за евидентирање присуства" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "Преклапајуће присуство у сменама" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "Преклапајући захтеви за радне смене" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "Преклапајуће смене" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "Прековремени рад" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "Обрачун износа прековременог рада" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "Детаљи прековременог рада" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "Трајање прековременог рада" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "Трајање прековременог рада за {0} је веће од максимално дозвољених часова" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "Компонента зараде за прековремени рад" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "Обрачун прековременог рада" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "Грешка при креирању обрачуна прековременог рада за {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "Креирање обрачуна прековременог рада је неуспешно" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "Корак обрачуна прековременог рада" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "Грешка при подношењу обрачуна прековременог рада за {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "Подношење обрачуна прековременог рада је неуспешно" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "Обрачун прековременог рада је поднет" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "Обрачуна прековременог рада је креиран за {0} запослена лица" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "Креирање обрачуна прековременог рада је у реду чекања. Може потрајати неколико минута" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "Подношење обрачуна прековременог рада је у реду чекања. Може потрајати неколико минута" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "Обрачун прековременог рада: {0} је креиран између {1} и {2}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "Креирани обрачуни прековременог рада" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "Поднети обрачуни прековременог рада за {0} запослених лица" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "Врста прековременог рада" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "Приходи од прековременог рада књижиће се под овом компонентом зараде ради исплате." + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "Заменити износ у структури зараде" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "PAN број" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "Рачун пензионог фонда" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "Износ доприноса за пензиони фонд" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "Зајам у оквиру пензионог фонда" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "PWA обавештење" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "Исплаћено путем обрачунског листића" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "Матични циљ" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "Непуно радно време" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "Делимично спонзорисано, неопходан је додатни део средстава" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "Делимично потраживано и враћено" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "Политика лозинки" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "Политика лозинки не сме садржати размаке или узастопне цртице. Формат ће бити аутоматски преуређен" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "Политика лозинки за обрачунски листић није постављена" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "Коефицијенти стопе исплате" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "Плати путем уноса уплате" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "Уплата путем обрачунског листића" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "Рачун обавеза је обавезан за подношење захтева за надокнаду трошкова" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "Рачун за исплату је обавезан" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "Датум уплате" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "Дани обрачуна" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "Помоћ за обрачун дана за плаћање" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "Зависност дана обрачуна" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "Број дана обрачуна одређује се према подешавањима обрачуна зараде" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "Уплата и рачуноводство" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "Уплата {0} од {1} до {2}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "Исплата" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "Начин исплате" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "Исплата неискоришћеног износа у завршном обрачунском циклусу" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "Обрачун зараде" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "Обрачун зараде на основу" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "Корекција обрачуна зарада" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "Зависна ставка корекције обрачуна зарада" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "Трошковни центар обрачуна зараде" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "Трошковни центри обрачуна зараде" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "Контролна табла обрачуна зараде" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "Датум обрачуна зараде" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "Детаљи о запосленом лицу за обрачун зараде" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "Отказивање уноса обрачуна зараде је у реду чекања. Може потрајати неколико минута" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "Учесталост обрачуна зарада" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "Информације о обрачуну зараде" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "Број обрачуна зараде" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "Рачун обавеза за зараде" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "Обрачунски период" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "Датум обрачунског периода" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "Обрачунски периоди" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "Извештаји о обрачуну зараде" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "Подешавање обрачуна зараде" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "Датум обрачуна зараде не може бити већи од датума престанка радног односа." + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "Датум обрачуна зараде не може бити пре датума запослења запосленог лица." + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "Датум обрачуна зарада не може бити у прошлости. Ово осигурава да се захтеви подносе за текуће или будуће обрачунске циклусе." + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "Преостали (неуплаћени) износ из претходних аконтација" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "Задужена имовина која није враћена" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "На чекању за коначан обрачун" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "Интервјуи на чекању" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "Упитници на чекању" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "Одбитак у процентима" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "Перформансе" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "Трајно отказивање {0}" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "Трајно подношење {0}" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "Рад по учинку" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "Планирани број позиција" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "Молимо Вас да омогућите аутоматску евиденцију присуства и завршите поставке." + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "Молимо Вас да прво изаберете компанију" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "Молимо Вас да прво доделите структуру зараде запосленом лицу {0} која важи од или пре {1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "Молимо Вас да проверите да ли је запослено лице на одсуству или већ постоји присуство са истим статусом за изабран дан(е)." + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "Молимо Вас да потврдите када завршите обуку" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "Молимо Вас да креирате нови {0} за датум {1}." + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "Молимо Вас да обришете запослено лице {0} да бисте отказали овај документ" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "Молимо Вас да омогућите подразумевани долазни рачун пре креирања групе за дневни извештај о раду" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "Молимо Вас да унесете позицију" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "Молимо Вас да унесете запослено лице, датум књижења и компанију пре преузимања детаља о прековременом раду." + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "Молимо Вас да смањите {0} да бисте избегли преклапање времена смене" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "Молимо Вас да погледате прилог" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "Молимо Вас да унесете компанију и позицију" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "Молимо Вас да изаберете запослено лице" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "Молимо Вас да прво изаберете запослено лице." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "Молимо Вас да изаберете филтер заснован на" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "Молимо Вас да прво изаберете датум почетка и учесталост обрачуна зарада" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "Молимо Вас да изаберете датум почетка." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "Молимо Вас да изаберете распоред смена и датуме додељивања." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "Молимо Вас да изаберете врсту смене и датуме додељивања." + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "Молимо Вас да прво изаберете компанију" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "Молимо Вас да прво изаберете компанију." + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "Молимо Вас да изаберете CSV фајл" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "Молимо Вас да изаберете датум." + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "Молимо Вас да изаберете кандидата" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "Молимо Вас да изаберете барем један захтев за радну смену да бисте извршили ову радњу." + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "Молимо Вас да изаберете најмање једно запослено лице за ову радњу." + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "Молимо Вас да изаберете најмање један ред за ову радњу." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "Молимо Вас да изаберете компанију." + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "Молимо Вас да прво изаберете запослено лице" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "Молимо Вас да изаберете запослено лице да бисте креирали евалуације за" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "Молимо Вас да изаберете статус присуства за половину радног дана." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "Молимо Вас да изаберете месец и годину." + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "Молимо Вас да прво изаберете циклус евалуације." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "Молимо Вас да изаберете статус присуства." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "Молимо Вас да изаберете запослена лица за које желите да означите присуство." + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "Молимо Вас да изаберете обрачунски листић за слање путем имејла" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "Молимо Вас да подесите \"Подразумевани рачун обавеза по основу зараде\" у подразумеваним подешавањима компаније" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "Молимо Вас да подесите основну и HRA компоненту у компанији {0}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "Молимо Вас да поставите компоненту прихода за врсту одсуства: {0}." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "Молимо Вас да подесите основу за обрачун зараде у подешавањима обрачуна зараде" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "Молимо Вас да поставите датум престанка радног односа за запослено лице: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "Молимо Вас да поставите опсег датума краћи од 90 дана." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "Молимо Вас да подесите рачун у компоненти зараде {0}" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "Молимо Вас да поставите подразумевани шаблон за обавештење о одобрењу одсуства у HR подешавањима." + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "Молимо Вас да поставите подразумевани шаблон за обавештење о статусу одсуства у HR подешавањима." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "Молимо Вас да подесите шаблон евалуације за све {0} или да изаберете шаблон у табели запослених лица испод." + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "Молимо Вас да поставите компанију" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "Молимо Вас да поставите датум запослења за запослено лице {0}" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "Молимо Вас да поставите листу празника." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "Молимо Вас да поставите опсег датума." + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "Молимо Вас да поставите датум престанка радног односа за запослено лице {0}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "Молимо Вас да поставите {0} и {1} у {2}." + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "Молимо Вас да поставите {0} за запослено лице {1}" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "Молимо Вас да поставите {0} за запослено лице: {1}" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "Молимо Вас да поставите {0}." + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "Молимо Вас да подесите систем именовања запослених у Људски ресурси >HR подешавања" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "Молимо Вас да подесите серију нумерације за присуство путем Поставке > Серије нумерације" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "Молимо Вас да поделите Вашу повратну информацију о обуци кликом на 'Повратна информација о обуци', а затим на 'Ново'" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "Молимо Вас да наведете кандидата за посао који треба да буде ажуриран." + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "Молимо Вас да наведете {0} и {1} (уколико постоје), ради правилног обрачуна пореза у будућим обрачунским листићима." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "Молимо Вас да поднесете {0} пре него што означите циклус као завршен" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "Молимо Вас да ажурирате свој статус за ову обуку" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "Објављено на" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "Датум књижења" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "Преферирана локација за ноћење" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "Присутан" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "Евиденција присуства" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "Спречити самоодобравање захтева за трошкове и уколико корисник има дозволе" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "Онемогући самоодобравање одсуства чак и уколико корисник има дозволе" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "Преглед обрачунског листића" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "Главница" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "Штампано на {0}" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "Плаћено одсуство" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "Пробни рад" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "Период пробног рада" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "Обрада присуства након" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "Обрада уноса обрачуна зараде по запосленом лицу" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "Обрада захтева" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "Обрада захтева за радну смену" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "Обрада накнаде за неискоришћено одсуство преко посебног уноса уплате, а не преко обрачунског листића" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "Обрада {0} захтева за радну смену као {1}?" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "Обрада захтева" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "Захтеви се обрађују..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "Обрада захтева за радну смену је стављена у ред чекања. Може потрајати неколико минута." + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "Порески одбитак по основу професионалне делатности" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "Степен знања" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "Профит" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "Профитабилност пројекта" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "Унапређење" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "Датум унапређења" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "Имовина је већ додата" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "Одбици за пензиони фонд" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "Коефицијент за државни празник" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "Објави примљене пријаве" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "Објави опсег зараде" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "Објави на веб-сајту" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "Сврха и износ" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "Сврха путовања" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "Дозвола за обавештења је одбијена" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "Обавештења су онемогућена" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "Обавештења су онемогућена на Вашем веб-сајту" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "Упитник је послат путем имејла" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "Брзи филтери" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "Брзи линкови" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "Радијус у оквиру ког је дозвољено евидентирање доласка (у метрима)" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "Ручно оцени циљеве" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "Критеријум оцењивања" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "Оцењивања" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "Прерасподела одсуства" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "Разлог за корекцију" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "Разлог захтева" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "Разлог за задржану зараду" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "Разлог за прескакање аутоматског евидентирања присуства:" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "Недавни захтеви за евидентирање присуства" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "Недавни трошкови" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "Недавна одсуства" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "Недавни захтеви за радну смену" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "Препоручено за један биометријски уређај / пријаву путем мобилне апликације" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "Наплата трошка" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "Запошљавање" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "Аналитика запошљавања" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "Смањење" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "Смањење максималног броја дозвољених одсустава након доделе може довести до неправилног распоређивања зарађених одсустава. Наставите са опрезом." + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "Смањење је веће од расположивог салда одсуства {1} за запослено лице {0} за врсту одсуства {2}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "Референца: {0}" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "Статус исплате бонуса за препоруку" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "Детаљи препоруке" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "Детаљи препоручиоца" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "Име препоручиоца" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "Запажања" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "Детаљи о точењу горива" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "Одбиј" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "Одбиј препоруку запосленог лица" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "Одбијање" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "Исплати задржане зараде" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "Исплаћено" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "Датум престанка радног односа " + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "Недостаје датум престанка радног односа" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "Преостале бенефиције (годишње)" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "Подсети пре" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "Подсетник послат" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "Подсетници" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "Уклони уколико је вредност нула" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "Изнајмљено возило" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "Отплата из зараде" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "Отплата из зараде може се изабрати само за зајмове на одређени рок" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "Врати неискоришћени износ путем зараде" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "Понављање на дане" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "Одговори" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "Извештава" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "Захтевај евиденцију присуства" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "Захтевај одсуство" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "Захтевај одсуство" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "Захтевај смену" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "Захтевај аконтацију" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "Захтев од стране" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "Захтев од стране (име)" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "Неопходно потпуно финансирање" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "Неопходне вештине" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "Неопходно за креирање запосленог лица" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "Промени термин интервјуа" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "Одговорности" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "Ограничи ретроактивни захтев за одсуство" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "Прилог CV" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "CV линк" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "CV линк" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "Задржано" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "Бонус за задржавање" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "Старосна граница за пензију (у годинама)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "Поновни покушај није успео" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "Поновни покушај неуспешних додела" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "Поновни покушај је успео" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "Покушај поновне доделе" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "Износ за повраћај не може бити већи од неискоришћеног износа" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "Прегледајте разна друга подешавања везана за одсуства запослених лица и захтеве за надокнаду трошкова" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "Оцењивач" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "Име оцењивача" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "Ревидирани укупни трошак по запосленом лицу" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "Улоге које имају дозволу за креирање ретроактивних захтева за одсуство" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "Распоред" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "Боја распореда" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "Назив круга" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "Заокруживање радног искуства" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "Заокруживање на најближи цео број" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "Заокруживање" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "Преусмери ка прилагођеној веб-форми за пријаву на посао" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "Ред #{0}: Није могуће поставити износ или формулу за компоненту зараде {1} која је заснована на опорезивом износу" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "Ред #{0}: Компонента {1} има омогућене опције {2} и {3}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "Ред #{0}: Износ из евиденције времена ће заменити износ компоненте прихода са износом компоненте зараде {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "Ред број {0}: Износ не може бити већи од неизмиреног износа у захтеву за надокнаду трошкова {1}. Неизмирени износ је {2}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "Ред {0}# додељени износ {1} не може бити већи од неискоришћеног износа {2}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "Ред {0}# исплаћени износ не може бити већи од износа за исплату накнаде" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "Ред {0}# исплаћени износ не може бити већи од укупног износа" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "Ред {0}# исплаћени износ не може бити већи од захтеваног износа аконтације" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "Ред {0}: Почетна година не може бити већа од завршне године" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "Ред {0}: Оцена циља не може бити већа од {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "Ред {0}: Уплаћени износ {1} је већи од преосталог обрачунатог износа {2} за зајам {3}" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "Ред {0}: {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "Ред {0}: {1} је обавезно у табели трошкова за унос захтева за надокнаду трошкова." + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "Компонента зараде" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "Компонента зараде " + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "Рачун компоненте зараде" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "Засновано на компоненти зараде" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "Врста компоненте зараде" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "Компонента зараде за евиденцију времена на основу обрачуна зараде." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "Компонента зараде {0} не може бити изабрана више од једном у бенефицијама запосленог лица" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "Компонента зараде {0} тренутно није коришћена ни у једној структури зараде." + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "Компонента зараде {0} мора бити врсте 'Приход' како би могла бити коришћена у књизи бенефиција запосленог лица" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "Детаљ зараде" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "Детаљи зараде" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "Очекивана зарада" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "Информације о заради" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "Зарада исплаћена по" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "Исплата зараде заснована на начину плаћања" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "Исплата зараде путем аутоматског електронског преноса (ECS)" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "Опсег зараде" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "Регистар зарада" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "Обрачунски листић" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "Обрачунски листић заснован на евиденцији времена" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "ИД обрачунског листића" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "Обрачунски листић за одсуство" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "Обрачунски листић за зајам" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "Референца обрачунског листића" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "Обрачунски листић на основу евиденције времена" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "Обрачунски листић за {0} већ постоји за задате датуме" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "Креирање обрачунског листића је у реду чекања. Може потрајати неколико минута" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "Обрачунски листић није пронађен." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "Обрачунски листић запосленог лица {0} је већ креиран за овај период" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "Обрачунски листић запосленог лица {0} је већ креиран за временску евиденцију {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "Подношење обрачунских листића је у реду чекања. Може потрајати неколико минута" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "Креирање обрачунског листића {0} није успело за унос обрачуна зараде {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "Креирање обрачунског листића {0} није успело. Можете решити {1} и поново покушати са {0}." + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "Обрачунски листићи" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "Креирани обрачунски листићи" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "Поднети обрачунски листићи" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "Обрачунски листићи за запослена лица {} већ постоје и неће бити обрађени у овом обрачуну зараде." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "Обрачунски листићи су поднети за период од {0} до {1}" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "Структура зараде" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "Додела структуре зараде" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "Поље за доделу структуре зараде" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "Додела структуре зараде за запослено лице већ постоји" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "Додела структуре зараде није пронађена за запослено лице {0} на датум {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "Недостаје структура зараде" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "Структура зараде мора бити поднета пре подношења {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "Структура зараде није додељена запосленом лицу {0} за датум {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "Структура зараде {0} не припада компанији {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "Структура зараде је успешно ажурирана" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "Задржана зарада" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "Циклус задржавања зараде" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "Задржана зарада {0} већ постоји за запослено лице {1} за изабрани период" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "Зарада је већ обрачуната за период {0} и {1}, период захтева за одсуство не може обухватити овај опсег датума." + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "Структура зараде по основу прихода и одбитака." + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "Компоненте зараде врсте пензиони фонд, додатни пензиони фонд или кредит из пензионог фонда нису подешене." + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "Компонента зараде би требало да буде део структуре зараде." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "Имејлови са обрачунским листићима су стављени у ред за слање. Проверите {0} за статус." + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "Одобрен износ" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "Одобрен износ (валута компаније)" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "Одобрени износ не може бити већи од захтеваног износа у реду {0}." + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "Заказано на" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "Постигнут резултат" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "Број поена мора бити мањи или једнак 5" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "Резултат" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "Претрага послова" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "Изаберите примењиве компоненте за врсту прековременог рада" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "Прво изаберите круг интервјуа" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "Прво изаберите интервју" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "Изаберите месец за сторнирање одсуства без накнаде" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "Изаберите рачун за исплату да бисте направили банкарски унос" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "Изаберите учесталост обрачуна зарада." + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "Изаберите обрачунски период" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "Изаберите имовину" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "Изаберите захтев за радну смену" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "Изаберите услове и одредбе" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "Изаберите кориснике" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "Изаберите запослено лице за исплату аконтације." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "Изаберите запослено лице коме желите да доделите одсуство." + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "Изаберите запослено лице." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "Изаберите врсту одсуства као што је боловање, плаћено одсуство, слободан дан итд." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "Изаберите датум након којег ће ова додела одсуства истећи." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "Изаберите датум након којег ће ова додела одсуства бити важећа." + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "Изаберите датум завршетка за Ваш захтев за одсуство." + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "Изаберите компоненте зараде чији ће збир из обрачунског листића бити коришћен за обрачун сатнице прековременог рада." + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "Изаберите датум почетка за Ваш захтев за одсуство." + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "Изаберите ову опцију уколико желите да се додела смене аутоматски креира неограничено." + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "Изаберите врсту одсуства за коју запослено лице жели да аплицира, као што је боловање, плаћено одсуство, слободан дан, итд." + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "Изаберите одобраваоца одсуства, тј. особу која одобрава или одбија Ваше захтеве за одсуство." + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "Самопроцена" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "Самопроцена на чекању: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "Оцена самопроцене" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "Самоевалуација" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "Самостално учење" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "Самоодобравање захтева за трошкове није дозвољено" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "Самоодобравање одсуства није дозвољено" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "Семинар" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "Пошаљи имејлове у" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "Пошаљи излазни упитник" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "Пошаљи излазне упитнике" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "Пошаљи подсетник за повратну информацију о интервјуу" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "Пошаљи подсетник за интервју" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "Пошаљи обавештење о одсуству" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "Копија пошиљаоца" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "Слање није успело због недостајућих података о имејлу за запослено лице: {1}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "Успешно послато: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "Сеп" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "Активности везане за престанак радног односа" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "Престанак радног односа почиње" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "Детаљи одржавања" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "Трошак одржавања" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "Поставите \"Почетна година\" и \"Завршна година\" на 0 уколико не желите доњу и горњу границу." + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "Поставите детаље додељивања" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "Поставите детаље одсуства" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "Поставите датум престанка радног односа за запослено лице: {0}" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "Поставите филтере за претрагу запослених лица" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "Поставите почетна стања за зараде и порезе од претходног послодавца" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "Поставите опционе филтере за претрагу запослених лица у листи за оцењивање" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "Поставите подразумевани рачун за {0} {1}" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "Поставите учесталост подсетника за празнике" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "Поставите које ће се особине ажурирати у основном запису запосленог лица приликом подношења унапређења" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "Поставите статус на {0} уколико је неопходно." + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "Поставите {0} за изабрана запослена лица" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "Подешавања недостају" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "Поравнајте против аконтације" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "Поравнајте све обавезе и потраживања пре подношења" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "Документ је са корисником {0} са дозволом за 'Поднеси'" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Смена и присуство" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "Стварни крај смене" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "Време стварног краја смене" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "Стварни почетак смене" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "Време стварног почетка смене" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "Додела смене" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "Детаљи доделе смене" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "Историја доделе смене" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "Алат за доделу смене" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "Додела смене: {0} је креирана за запослено лице: {1}" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "Доделе смена креиране за распоред између {0} и {1} путем позадинског задатка" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "Сменско присуство" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "Детаљи смене" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "Крај смене" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "Време краја смене" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "Локација смене" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "Захтев за радну смену" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "Одобравалац захтева за радну смену" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "Филтери захтева за радну смену" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "Захтеви за радну смену који се завршавају пре овог датума биће искључени." + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "Захтеви за радну смену који почињу након овог датума биће искључени." + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "Распоред смене" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "Додела распореда смене" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "Подешавање смене" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "Почетак смене" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "Време почетка смене" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "Статус смене" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "Временски оквир смене" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "Алати за смену" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "Врста смене" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "Доделе смена за {0} након {1} су већ креиране. Молимо Вас да промените датум {2} на каснији од {3} {4}" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "Смена је успешно ажурирана на {0}." + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Смене" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "Прикажи запослено лице" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "Прикажи стање одсуства у обрачунском листићу" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "Прикажи одсуства свих чланова одељења у календару" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "Прикажи обрачунски листић" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "Приказано" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "Боловање" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "Једна додела" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "Вештина" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "Процена вештина" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "Назив вештине" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "Вештине" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "Прескочи аутоматско евидентирање присуства" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "Прескаче се додела структуре зараде за следећа запослена лица, јер запис о додели структуре зараде већ постоји за њих. {0}" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "Извор и оцена" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "Изворна и циљана смена не могу бити исте" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "Спонзорисани износ" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "Детаљи особља" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "План особља" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "Детаљи плана особља" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "План особља {0} већ постоји за позицију {1}" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "Стандардни коефицијент" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "Стандардни износ пореског ослобођења" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "Стандардни радни часови" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "Почетни и крајњи датуми нису важећи у обрачунском периоду, није могуће израчунати {0}." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "Датум почетка не може бити већи од датума завршетка" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "Датум почетка не може бити већи од датума завршетка." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "Датум почетка: {0}" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "Време почетка и време завршетка не могу бити исти." + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "Статистичка компонента" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "Статус за другу половину" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "Акционарске опције" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "Забраните корисницима да праве захтев за одсуство на следеће дане." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "Искључиво на основу врсте записа у запису о присуству" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "Структуре су успешно додељене" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "Датум подношења" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "Подношење неуспешно" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "Подношење {0} пре {1} није дозвољено" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "Поднеси повратну информацију" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "Поднеси сада" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "Поднеси обрачун прековременог рада" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "Поднеси доказ" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "Поднеси обрачунски листић" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "Поднесите захтев за одсуство како бисте потврдили." + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "Поднесите ово да бисте креирали запис о запосленом лицу" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "Поднето путем уноса обрачуна зарада" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "Подношење обрачунских листића и креирање налога књижења..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "Подношење обрачунских листића..." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "Подружнице су већ планирале {1} непопуњених радних места са буџетом од {2}. План особља за {0} треба да расподели више непопуњених радних места и већи буџет за {3} него што је планирано за њихове подружнице" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "Успешно је креиран {0} за запослена лица:" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "Успешно {0} {1} за следећа запослена лица:" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "Збир свих претходних разреда" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "Збир износа бенефиција {0} прелази максимално ограничење од {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "Сажети приказ" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "Синхронизуј {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "Грешка синтаксе" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "Грешка синтаксе у услову: {0} у пореском разреду пореза на доходак" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "Узми тачно број завршених година" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "Порези и бенефиције" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "Порез одбијен до данас" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "Категорија пореског ослобођења" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "Изјава о пореском ослобођењу" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "Докази о пореском ослобођењу" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "Поставке пореза" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "Порез на додатну зараду" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "Порез на флексибилне бенефиције" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "Опорезиви приходи до данас" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "Праг опорезивог прихода за ослобођење од пореза" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "Опорезиви платни разред" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "Опорезиви платни разреди" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "Порези и накнаде" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "Порези и накнаде на порез на доходак" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "Такси" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "Тимске аконтације" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "Тимски захтеви" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "Тимска одсуства" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "Тимски захтеви" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "Ажурирања тима" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "Радни циклус" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "Хвала Вам на пријављивању." + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "Валута за {0} мора бити иста као подразумевана валута компаније. Молимо Вас да изаберете други рачун." + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "Датум на који ће компонента зараде са износом бити обрачуната као приход/одбитак у обрачунском листићу. " + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "Дан у месецу када се одсуства додељују" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "Дани за које тражите одсуство су празници. Нема потребе да тражите одсуство." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "Дани између {0} и {1} нису важећи празници." + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "Први одобравалац на листи биће постављен као подразумевани одобравалац." + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "Део дневне зараде по одсуству треба да буде између 0 и 1" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "Део дневнице која се исплаћује за пола радног дана" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "Методологија за обрачун овог извештаја је заснована на {0}. Молимо Вас да подесите {0} у {1}." + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "Методологија за обрачун овог извештаја је заснована на {0}. Молимо Вас да подесите {0} у {1}." + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "Обрачунски листић који се доставља запосленом лицу биће заштићен лозинком, а лозинка ће бити генерисана у складу са политиком лозинки." + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "Време након почетка смене када се пријава рачуна са закашњењем (у минутима)." + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "Време пре краја смене када се одјава рачуна као ранији одлазак (у минутима)." + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "Време почетка смене у којем се пријава запосленог лица рачуна као присуство." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "Теорија" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "Овај месец има више празника него радних дана." + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "Нема разлика у заостатку између постојећих и нових компонената структуре зараде." + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "Нема непопуњених радних места према плану особља {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "Структура зараде није додељена за {0}. Прво морате доделити структуру зараде." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "Не постоји запослено лице са структуром зараде: {0}. Додели {1} запосленом лицу да би могао да прегледа обрачунски листић" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "Ова одсуства су празници које компанија дозвољава, али је њихово коришћење опционо за запослено лице." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "Ова радња ће онемогућити измену повезане повратне информације о оцењивању/циљевима." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "Ова пријава је ван додељеног радног времена и неће бити узета у обзир као присуство. Уколико је смена додељена, прилагодите временски оквир и поново учитајте смену." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "Ово компензационо одсуство биће примењиво од {0}." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "Ово запослено лице већ има евидентиран унос са истим временом.{0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "Грешка може бити узрокована неисправном формулом или условом." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "Грешка може бити узрокована неисправном синтаксом." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "Грешка може бити узрокована недостајућим или обрисаним пољем." + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "Ово поље омогућава да поставите максималан број узастопних дана одсуства које запослено лице може да затражи." + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "Ово поље омогућава да поставите максималан број дана одсуства који се могу доделити годишње за ову врсту одсуства приликом креирања политике одсуства" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "Ово се заснива на евиденцији присуства овог запосленог лица" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "Ова метода је намењена само за развојни режим" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "Ово ће изменити пореску компоненту {0} у обрачунском листићу и порез неће бити обрачунат на основу пореских разреда пореза на доходак" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "Ово ће поднети обрачунски листић и креирати налог књижења обрачунатих обавеза. Да ли желите да наставите?" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "Време након завршетка смене током ког се одјава и даље сматра као присуство." + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "Време потребно за попуњавање отворених радних места" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "Време за попуну" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "Временски оквири" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "Детаљи евиденције времена" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "Временски распоред" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "До износа" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "Датум завршетка треба да буде након датума почетка" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "За корисника" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "Да бисте дозволили ово, омогућите {0} у оквиру {1}." + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "Да бисте поднели захтев за половину радног дана означите опцију 'Половина радног дана' и изаберите датум половине радног дана" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "Датум завршетка не може бити једнак или мањи од датума почетка" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "Датум завршетка не може бити већи од датума престанка радног односа." + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "Датум завршетка не може бити мањи од датума почетка" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "Датум завршетка не може бити већи од датума престанка радног односа" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "Датум завршетка не може бити пре датума почетка" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "Да бисте изменили компоненту зараде са пореском компонентом, омогућите опцију {0}" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "Завршна година" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "Завршна година не може бити мања од почетне године" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "Данас {0} слави рођендан 🎉" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "Данас је {0} у нашој компанији! 🎉" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "Данас је испуњено {1} {2} од стране {0} у нашој компанији! 🎉" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "Укупно изостанака" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "Укупно обрачунато" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "Укупан стварни износ" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "Укупан износ аконтације" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "Укупан износ аконтације (валута компаније)" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "Укупно додељених дана одсуства" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "Укупно додељених дана одсуства" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "Укупан рефундирани износ" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "Укупан износ не може бити нула" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "Укупан трошак повраћаја имовине" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "Укупан износ накнаде" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "Укупан износ накнаде (валута компаније)" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "Укупан број дана без накнаде" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "Укупан пријављени износ" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "Укупан износ одбитка" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "Укупан износ одбитка (валута компаније)" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "Укупан број ранијих излазака" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "Укупан приход" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "Укупни приходи" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "Укупно процењени буџет" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "Укупан процењени трошак" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "Укупан износ курсних разлика" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "Укупан износ ослобођења" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "Укупан износ за надокнаду трошкова (путем захтева за надокнаду трошкова)" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "Укупан износ за надокнаду трошкова (путем захтева за надокнаду трошкова)" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "Укупна оцена циља" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "Укупна бруто зарада" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "Укупно часова (Т)" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "Укупно пореза на доходак" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "Укупан износ камате" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "Укупан број кашњења" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "Укупан број дана одсуства" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "Укупан број одсуства" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "Укупан број одсуства ({0})" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "Укупно додељених одсуства" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "Укупно исплаћених накнада за неискоришћена одсуства" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "Укупна отплата зајма" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "Укупна нето зарада" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "Укупан број нефактурисаних часова" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "Укупно трајање прековременог рада" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "Укупан износ за исплату" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "Укупна уплата" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "Укупна исплата" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "Укупан број присуства" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "Укупан износ главнице" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "Укупан износ потраживања" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "Укупан број престанка радног односа" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "Укупан одобрени износ" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "Укупан одобрени износ (валута компаније)" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "Укупан број поена" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "Укупан број самопроцене" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "Укупан износ аконтације не може бити већи од укупно одобреног износа" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "Укупно додељени дани одсуства премашују максимално дозвољени број за врсту одсуства {0} за запослено лице {1} у том периоду" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "Укупно додељених одсуства {0} не може бити мање од већ одобрених одсуства {1} за период" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "Укупно словима" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "Укупно словима (валута компаније)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "Укупан број додељених одсуства не може премашити годишњу доделу од {0}." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "Укупан број додељених одсуства је обавезан за врсту одсуства {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "Збир свих износа бенефиција запосленог лица не може бити већи од максималног износа бенефиција {0}" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Укупан износ зараде евидентиран по овој компоненти за ово запослено лице, од почетка године (обрачунског периода или фискалне године) до датума завршетка текућег обрачунског листића." + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "Укупан износ зараде за ово запослено лице, обрачунат од почетка месеца до датума завршетка текућег обрачунског листића." + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Укупан износ зараде за ово запослено лице, обрачуната од почетка године (обрачунског периода или фискалне године) до датума завршетка текућег обрачунског листића." + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "Укупан пондер за све {0} мора износити 100. Тренутно је {1}%" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "Укупан број радних дана годишње" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "Укупно радних часова не сме бити веће од максималних радних часова {0}" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "Воз" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "Имејл тренера" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "Име тренера" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "Обука" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "Датум обуке" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "Догађај обуке" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "Запослено лице на догађају обуке" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "Догађај обуке:" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "Догађаји обуке" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "Повратна информација о обуци" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "Програм обуке" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "Резултат обуке" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "Резултат обуке запосленог лица" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "Обуке" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "Обуке (ове недеље)" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "Трансакције не могу бити креиране за неактивно запослено лице {0}." + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "Датум премештаја" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "Путовање" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "Потребна аконтација за путовање" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "Путовање из" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "Финансирање путовања" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "План пута" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "Захтев за путовање" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "Трошкови захтева за путовање" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "Путовање ка" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "Врста путовања" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "Врста доказа" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "Није могуће одредити Вашу локацију" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "Поништи архивирање" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "Неискоришћени износ" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "Неискоришћени износ (валута компаније)" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "Разматрање" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "Поништи повезивање уплате" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "Евиденција присуства није повезана са записом о присуству: {}" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "Неповезани записи" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "Неозначена присуства за дане" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "Пронађене неозначене евиденције пријаве" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "Неозначени дани" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "Неозначено заглавље запослених лица" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "Неозначена запослена лица HTML" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "Неозначени дани" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "Неисплаћени обрачун" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "Неплаћена надокнада трошкова" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "Није поравнато" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "Трансакције које нису поравнате" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "Евалуације које нису поднете" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "Часови који нису праћени" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "Часови који нису праћени (U)" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "Неискоришћени дани одсуства" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "Предстојећи празници" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "Подсетник о предстојећим празницима" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "Предстојеће смене" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "Ажурирај трошак" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "Ажурирај кандидата за посао" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "Ажурирај напредак" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "Ажурирај одговор" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "Ажурирај структуре зараде" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "Ажурирај статус" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "Ажурирај порез" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "Статус је ажуриран са {0} на {1} за датум {2} у евиденцији присуства {3}" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "Ажуриран статус кандидата за посао на {0}" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "Ажуриран статус понуде за посао {0} за повезаног кандидата за посао са {1} на {2}" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "Ажуриран статус повезаног кандидата за посао са {0} на {1}" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "Отпреми евиденцију присуства" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "Отпреми HTML" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "Отпреми слике или документа" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "Отпремање..." + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "Горњи распон" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "Искоришћени дани одсуства" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "Искоришћени дани одсуства" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "Непопуњена радна места" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "Непопуњена радна места не могу бити мања од отворених позиција" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "Непопуњена радна места су попуњена" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "Валидирај присуство" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "Проверавање присуства запослених лица..." + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "Вредност / Опис" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "Недостаје вредност" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "Промењива" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "Промењива на основу опорезиве зараде" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "Вегетаријанско" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "Трошкови возила" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "Евиденција о коришћењу возила" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "Сервис возила" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "Ставка сервиса возила" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "Прикажи циљеве" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "Прикажи историју одсуства" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "Прикажи обрачунске листиће" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "Љубичаста" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "УПОЗОРЕЊЕ: Модул за управљање зајмовима је одвојен од ERPNext система." + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "Упозорење: Недовољан број дана одсуства за врсту одсуства {0} у овој расподели." + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "Упозорење: Недовољан број дана одсуства за врсту одсуства {0}." + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "Упозорење: Захтев за одсуство садржи следеће блокиране датуме" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "Упозорење: {0} већ има активну доделу смене {1} за неке или све одабране датуме." + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "Приказ на веб-сајту" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "Коефицијенти за викенд" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "Пондер (%)" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "Када је подешено као 'Неактиван', запослена лица са преклапајућим сменама неће бити искључена." + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "Док се расподела за компензациона одсуства аутоматски креира или ажурира приликом подношења захтева за компензационо одсуство." + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "Зашто је овај кандидат квалификован за ову позицију?" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "Задржано" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "Годишњице рада " + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "Подсетник на годишњицу рада" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "Датум завршетка рада" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "Метод израчунавања радног искуства" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "Датум почетка рада" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "Рад од куће" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "Пословне препоруке" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "Резиме рада за {0}" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "Рад током празника" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "Радни дани" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "Радни дани и часови" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "Обрачун радних часова је заснован на" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "Праг радних часова за изостанке" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "Праг радних часова за половину радног дана" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "Радни часови испод којих се означава изостанак. (нула за онемогућавање)" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "Радни часови испод који се означава половина радног дана. (нула да онемогућите)" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "Радионица" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "За текућу годину" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "За текућу годину (валута компаније)" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "Годишњи износ" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "Годишња бенефиција" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "Да, настави" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "Немате дозволу да одобравате одсуства током блокираних датума" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "Нисте били присутни током свих дана у периоду за који сте поднели захтев за компензационо одсуство" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "Не можете дефинисати више разреда уколико већ постоји разред без доњих и горњих граница." + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "Не можете тражити своју подразумевану смену: {0}" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "Можете планирати највише до {0} непопуњених радних места и буџет {1} за {2} у складу са планом особља {3} за матичну компанију {4}." + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "Можете поднети накнаду за неискоришћено одсуство само уз важећи износ уплате" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "Можете отпремити искључиво JPG, PNG, PDF, ТXТ или Мајкрософт документа." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "Није могуће сторнирати више од укупног броја дана одсуства без накнаде {0}. Већ сте сторнирали {1} дана за ово запослено лице." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "Немате дозволу да извршите ову радњу" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "Немате аконтације" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "Немате додељене дане одсуства" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "Немате обавештења" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "Немате захтева" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "Немате предстојеће празнике" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "Немате предстојеће смене" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "Можете додати додатне информације, уколико постоје, и послати понуду." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "Морате бити унутар {0} метара од локације смене да бисте се пријавили." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "Били сте присутни само половину радног дана {}. Није могуће поднети захтев за компензационо одсуство за цео дан" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "Ваш интервју је померен са {0} {1} - {2} на {3} {4} - {5}" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "Ваша лозинка је истекла. Молимо Вас да је ресетујете како бисте наставили" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "активно" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "засновано на" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "отказивање" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "отказано" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "креирај/поднеси" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "креирано" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "petarpetrovic@mail.com" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "modify_half_day_status" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "или за одељење запосленог лица: {0}" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "обрада" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "обрађено" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "резултат" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "резултати" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "преглед" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "прегледи" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "поднето" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "путем синхронизације компоненте зараде" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "година" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "године" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "{0} и {1}" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "{0} и још {1}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "{0} : {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "{0}
    Ова грешка може бити проузрокована недостајућим или обрисаним пољима." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "{0} евалуација још увек није поднето" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "{0} поље" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "{0} недостаје" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "{0} Ред #{1}: Формула је постављена, али је {2} онемогућено за компоненту зараде {3}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "{0} Ред#{1}: {2} мора бити омогућено да би се формула узела у обзир." + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "{0} непрочитано" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} је већ додељено запосленом лицу {1} за период од {2} до {3}" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0} већ постоји за запослено лице {1} и период {2}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "{0} већ има активну доделу смене {1} за неке или све од ових датума." + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "{0} је примењиво након {1} радних дана" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "{0} стање" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "Испуњено је {1} {2} од стране {0}" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "{0} је успешно креирано!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "{0} је успешно обрисано!" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "{0} није успело!" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "{0} има омогућено {1}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "{0} је обрачунска компонента и биће евидентирана као исплата у књизи бенефиција запосленог лица" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "{0} је неважећи статус присуства." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "{0} није празник." + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "{0} нема дозволу да поднесе повратну информацију за интервју: {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} се не налази на листи опционих празника" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "{0} одсуства успешно додељена" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "{0} дана одсуства из расподеле за врсту одсуства {1} је истекло и биће обрађено током следећег заказаног процеса. Препоручује се да их сада означите као истекле пре него што креирате нове доделе политике одсуства." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "{0} одсуства су ручно додељена од стране {1} на {2}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} мора бити поднето" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "{0} од {1} завршено" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "{0} успешно!" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "{0} успешно!" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "{0} за {1} запослена лица?" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "{0} успешно ажурирано!" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "{0} непопуњених радних места и буџет од {1} за {2} су већ планирани за подружнице за {3}. Можете планирати највише {4} непопуњених радних места и буџет од {5} у складу са планом особља {6} за матичну компанију {3}." + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "{0} ће бити ажурирано за следеће структуре зараде: {1}." + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "{0} {1} {2}?" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "{0}. Проверите евиденцију грешака за више детаља." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}: Имејл запосленог лица није пронађен, због чега имејл није ни послат" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "{0}: Од {0} врсте {1}" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "{0}д" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "{} " + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "{} прихваћено" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "{} активно" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "{} нацрт" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "{} неискоришћено" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "{} {} отворено за ову позицију." + diff --git a/apps/erpnext/src/hrms/hrms/locale/sr_CS.po b/apps/erpnext/src/hrms/hrms/locale/sr_CS.po new file mode 100644 index 000000000..36e1f30ce --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/sr_CS.po @@ -0,0 +1,11515 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Serbian (Latin)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: sr-CS\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: sr_CS\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr " Obračunski listići počev od ovog datuma biće uzeti u obzir za obračun zaostataka" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr " Poništi povezivanje uplate prilikom storniranja akontacije za zaposlenog" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "\"Datum početka\" ne može biti veći ili jednak \"Datum završetka\"" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "% Iskorišćenost (B + NB) / T" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "% Iskorišćenost (B / T)" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "'employee_field_value' i 'vremenski žig' su obavezni." + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") za {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "...učitavanje zaposlenih lica" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "01:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "05:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "08:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "Osnovna zarada nije postavljena za sledeća zaposlena lica: {0}" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "Primer: ZARADA-{first_name}-{date_of_birth.year}
    Ovo će generisati lozinku poput ZARADA-Petar-2000" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "Ukupan broj dodeljenih dana odsustva je veći od broja dana u periodu raspodele" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "

    Pomoć

    \n\n" +"

    Napomene:

    \n\n" +"
      \n" +"
    1. Koristite polje baseza korišćenje osnovne zarade zaposlenog lica
    2. \n" +"
    3. Koristite skraćenice u komponenti zarade u uslovima i formulama. BS = Basic Salary
    4. \n" +"
    5. Koristite nazive polja za detalje o zaposlenom licu u uslovima i formulama Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Koristite naziv polja iz obračunskog listića u uslovima i formulama Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direktni iznos se takođe može uneti na osnovu uslova. Pogledajte primer 3
    \n\n" +"

    Primeri

    \n" +"
      \n" +"
    1. Izračunavanje osnovne zarade na osnovu base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Izračunavanje dodatka za stan na osnovuBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Izračunavanje poreza po odbitku na osnovu vrste zaposlenjaemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "

    Primeri uslova

    \n" +"
      \n" +"
    1. Primena poreza ukoliko je zaposleno lice rođeno između 31-12-1937 i 01-01-1958 (zaposlena lica starosti od 60 do 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Primena poreza prema rodu zaposlenog lica
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Primena poreza prema komponenti zarade
      \n" +"Condition: base > 10000
    " + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "
    Zaposlena lica na polovini radnog dana
    " + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "
    Zaposlena lica bez evidentiranog prisustva
    " + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "
    " + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "Transakcije & izveštaji" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Master podaci & izveštaji" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "
    {0}{1}
    " + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "Zahtev za zapošljavanje za {0} koji je zatražen od strane {1} već postoji: {2}" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "Prijateljski podsetnik na važan datum za naš tim." + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "Postoji {0} između {1} i {2} (" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "Izostanak" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "Dani izostanaka" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "Evidencija izostanaka" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "Broj računa" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "Vrsta računa treba da bude podešena na {0} za račun obaveza po osnovu obračuna zarada {1}, molimo Vas da podesite vrednost i pokušate ponovo" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "Račun {0} ne odgovara kompaniji {1}" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "Računovodstvo i uplate" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "Računovodstveni izveštaji" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "Računi nisu postavljeni za komponentu zarade {0}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "Obračun" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "Zaostatak obračuna" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "Obračunska komponenta" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "Obračunska komponenta može se podesiti samo za komponente zarade vrste prihod." + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "Obračunska komponenta može se podesiti samo za fleksibilne beneficije sa metodom obračunske isplate." + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "Obračunska komponenta mora biti podešena za fleksibilne beneficije sa metodom obračunske isplate." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "Knjiženje po osnovu obračunatih zarada od {0} do {1}" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "Obračunati i isplatiti na kraju obračunskog perioda" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "Obračunavanje po ciklusu, isplata samo po zahtevu" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "Obračunate beneficije" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "Izveštaj o obračunatim prihodima" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "Obračunati iznos {0} je manji od isplaćenog iznosa {1} za beneficiju {2} u obračunskom periodu {3}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "Radnja pri podnošenju" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "Naziv aktivnosti" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "Stvarni iznos" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "Stvarni broj dana za nadoknadu" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "Stvarno trajanje prekovremenog rada" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "Stvarno stanje nije dostupno jer zahtev za odsustvo obuhvata period koji prelazi preko različitih dodela odsustva. Ipak i dalje možete podneti zahtev za odsustvo koje će biti nadoknađeno prilikom sledeće dodele." + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "Dodaj pojedinačne datume" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "Dodaj imovinu zaposlenog" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "Dodaj trošak" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "Dodaj povratnu informaciju" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "Dodaj porez" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "Dodaj u detalje" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "Dodaj neiskorišćene dane odsustva iz prethodnih raspodela" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "Dodaj neiskorišćene dane odsustva iz prethodnog perioda u ovu raspodelu" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "Dodate poreske komponente iz master podataka komponente zarade jer struktura zarade nije imala nijednu poresku komponentu." + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "Dodato u detalje" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "Dodatni iznos" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "Dodatna informacija " + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "Dodatni penzioni fond" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "Dodatna zarada" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "Dodatna zarada " + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "Dodatna zarada po osnovu bonusa za preporuku može biti kreirana samo za preporuku zaposlenog lica koje ima status {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "Dodatna zarada za ovu komponentu zarade sa omogućenim {0} već postoji za ovaj datum" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "Dodatna zarada: {0} već postoji za komponentu zarade: {1} za period {2} i {3}" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "Adresa organizatora" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "Koriguj dodelu" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "Korekcija uspešno kreirana" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "Vrsta korekcije" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "Akontacija" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "Akontacioni račun je obavezan. Molimo Vas da podesite Podrazumevani akontacioni račun zaposlenog lica u evidenciji kompanije {0} i podnesete ovaj dokument." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "Valuta akontacionog računa {} mora biti ista kao valuta zarade zaposlenog lica. Molimo Vas da izaberete akontacioni račun sa istom valutom" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "Plaćena akontacija (valuta kompanije)" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "Filteri akontacije" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "Sav iznos kursnih razlika za {0} knjižen je preko {1}" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "Svi ciljevi" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "Svi poslovi" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "Celokupna dodeljena imovina mora biti vraćena pre podnošenja" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "Svi obavezni zadaci za kreiranje zaposlenog lica još uvek nisu završeni." + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "Raspodeli u skladu sa politikom odsustva" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "Dodeli odsustvo" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "Dodeli odsustva za {0} zaposlenih lica?" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "Dodeli na dan" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "Dodeljeni iznos (valuta kompanije)" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "Dodeljena odsustva" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "Dodeljeno putem" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "Dodeljivanje odsustva" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "Datum dodele" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "Detalji dodele" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "Dodeljivanje isteklo!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "Dodeljeni iznos je veći od dozvoljenog maksimalnog iznosa {0} za vrstu odsustva {1}" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "Dodela za korekciju" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "Dodela je preskočena zbog prekoračenja godišnje dodele definisane politikom odsustva" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "Dodela je preskočena zbog maksimalnog ograničenja dodele odsustva postavljenog za vrstu odsustva. Molimo Vas da povećate ograničenje i pokušate ponovo neuspešnu dodelu." + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "Dozvoli zapis o prisustvu sa mobilne aplikacije" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "Dozvoli naknadu za neiskorišćeno odsustvo" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "Dozvoli praćenje geolokacije" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "Dozvoli zahtev za odsustvo nakon (radnih dana)" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "Dozvoli više dodela smena za isti datum" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "Dozvoli negativno stanje" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "Dozvoli prekoračenje dodele" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "Dozvoli poresko oslobođenje" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "Dozvoli korisniku" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "Dozvoli korisnicima" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "Dozvoli odjavu nakon kraja smene (u minutima)" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "Dozvoli zahtev za ceo iznos beneficije" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "Dozvoli sledećim korisnicima da odobravaju zahtev za odsustvo tokom blokiranih dana." + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "Omogućava dodelu više dana odsustva nego što je predviđeno za period dodele." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "Naizmenični unosi kao DOLAZAK i ODLAZAK tokom iste smene" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "Iznos zasnovan na formuli" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "Iznos zasnovan na formuli" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "Iznos zahtevan putem zahteva za nadoknadu troškova" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "Iznos troškova" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "Iznos isplaćen po osnovu ove isplate neiskorišćenog odsustva" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "Iznos planiran za odbitak putem zarade" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "Iznos ne sme biti manji od nule" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "Iznos koji je plaćen po ovoj akontaciji" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "Dokument zaostatka već postoji za zaposleno lice {0} sa strukturom zarade {1} u obračunskom periodu {2}" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "Evidencija prisustva je povezana sa ovom zapisom prisustva. Molimo Vas da otkažete prisustvo pre nego što izmenite vreme." + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "Godišnja raspodela" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "Godišnja raspodela je premašena" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "Godišnja zarada" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "Godišnji oporezivi iznos" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "Ostali detalji" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "Dodatne napomene, zapaženi trud koji treba evidentirati" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "Primenjiva komponenta zarade" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "Primenjive komponente zarade" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "Primenjivo u slučaju uvođenja zaposlenog lica" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "Imejl adresa kandidata" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "Ime kandidata" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "Ocena kandidata" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "Kandidat za posao" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "Ime kandidata" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "Prijava" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "Status prijave" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "Period prijave ne može da se proteže kroz dva zapisa o dodeli" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "Period prijave ne može biti van perioda dodele odsustva" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "Primljene prijave" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "Primljene prijave:" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "Primenjivo na kompaniju" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "Primeni / odobri odsustva" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "Primeni sada" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "Primeni za državni praznik" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "Primeni za vikend" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "Datum termina" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "Rešenje o zaposlenju" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "Šablon rešenja o zaposlenju" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Sadržaj rešenja o zaposlenju" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "Evaluacija" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "Ciklus evaluacije" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "Cilj evaluacije" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "Evaluacija KRA" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "Povezivanje evaluacije" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "Pregled evaluacije" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "Šablon evaluacije" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "Cilj šablona evaluacije" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "Nedostaje šablon evaluacije" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "Naslov šablona evaluacije" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "Šablon evaluacije nije pronađen za neke pozicije." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "Kreiranje evaluacije je u redu čekanja. Može potrajati nekoliko minuta." + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "Evaluacija {0} već postoji za zaposleno lice {1} za ovaj ciklus evaluacije ili period koji se poklapa" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "Evaluacija {0} ne pripada zaposlenom licu {1}" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "Ocenjivanje" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "Lica koja se ocenjuju: {0}" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "Pripravnik" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "Odobrenje" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "Status odobrenja" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "Status odobrenja mora biti 'Odobreno' ili 'Odbijeno'" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "Odobri" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "Odobreno" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "Odobravalac" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "Odobravaoci" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "Apr" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "Da li ste sigurni da želite da obrišete prilog" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "Da li ste sigurni da želite da obrišete {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "Da li ste sigurni da želite da pošaljete obračunski listić putem imejla?" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "Da li ste sigurni da želite da odbijete preporuku zaposlenog lica?" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "Zaostatak" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "Komponenta zaostatka" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "Komponenta zaostatka ne može se postaviti za komponente zarade koje se zasnivaju na oporezivoj zaradi." + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "Datum početka zaostatka" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "Zaostaci" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "Datum i vreme dolaska" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "U skladu sa dodeljenom strukturom zarade ne možete podneti zahtev za beneficije" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "Trošak povraćaja imovine za {0}: {1}" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "Dodeljena imovina" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "Dodeli strukturu zarade za {0} zaposlenih lica?" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "Dodeli smenu" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "Dodeli raspored smene" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "Dodeli strukturu" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "Dodeljivanje strukture zarade" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "Dodeljivanje strukture..." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "Dodeljivanje strukture..." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "Dodeljivanje zasnovano na" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "Poveži otvoreno radno mesto" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "Povezani dokument" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "Vrsta povezanog dokumenta" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "Neophodno je izabrati barem jedan intervju." + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "Priloži dokaz" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "Pokušano" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "Prisustvo" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "Kalendar prisustva" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Broj prisustva" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "Datum prisustva" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "Datum početka prisustva" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "Datum početka prisustva i datum završetka prisustva je obavezan" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "ID prisustva" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "Označeno prisustvo" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "Zahtev za evidentiranje prisustva" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "Istorija zahteva za evidentiranje prisustva" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "Podešavanje prisustva" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "Datum završetka prisustva" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "Prisustvo je ažurirano" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "Upozorenja prisustva" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "Datum prisustva {0} ne može biti pre datuma zaposlenja zaposlenog lica {1}: {2}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "Prisustvo za sva zaposlena lica koja ispunjavaju ovaj kriterijum već je evidentirano." + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "Prisustvo za zaposleno lice {0} već je evidentirano za preklapajuću smenu {1}: {2}" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "Prisustvo za zaposleno lice {0} već je evidentirano za datum {1}: {2}" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "Prisustvo za zaposleno lice {0} već je evidentirano za sledeće datume: {1}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "Prisustvo za sledeće datume biće preskočeno ili zamenjeno prilikom podnošenja" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "Prisustvo od {0} do {1} već je evidentirano za zaposleno lice {2}" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "Prisustvo je evidentirano za sva zaposlena lica u periodu između izabranih datuma obračuna zarade." + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "Za ova zaposlena lica prisustvo je na čekanju u periodu između izabranih datuma obračuna zarade. Označite prisustvo da biste nastavili. Pogledajte {0} za detalje." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "Prisustvo je uspešno evidentirano" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "Prisustvo nije podneto za {0} jer je u pitanju praznik." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "Prisustvo nije podneto za {0} jer je {1} na odsustvu." + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "Prisustvo će biti automatski evidentirano tek nakon ovog datuma." + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "Pregled zahteva za prisustvo" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "Učesnici" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "Broj odlazaka zaposlenih lica" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "Avg" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "Podešavanje automatske evidencije prisustva" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "Automatska naknada za neiskorišćeno odsustvo" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "Automatski na osnovu napretka cilja" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "Automatska dodela odsustva za sledeća stečena odsustva: {0} nije uspela. Pogledajte {1} za više detalja." + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "Automatski preuzima svu imovinu dodeljenu zaposlenom licu, ukoliko je ima" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "Automatski ažuriraj poslednju sinhronizaciju zapisa o prisustvu" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "Dostupno odsustvo" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "Dostupna odsustva" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "Prosečna ocena povratnih informacija" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "Prosečna ocena" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "Prosek ocene cilja, ocene povratnih informacija i ocene samoprocene" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "Prosečna ocena prikazanih veština" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "Prosečna ocena povratnih informacija" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "Prosečna iskorišćenost" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "Prosečna iskorišćenost (samo fakturisano)" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "Čeka se odgovor" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "Zahtevi za odsustvo sa retroaktivnim datumima su ograničeni. Molimo Vas da postavite {} u {}" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "Bankarsko knjiženje" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "Bankarski prenos" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "Osnovna" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "Osnovni i varijabilni deo" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "Dozvoli prijavu dolaska pre početka smene (u minutima)" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "U nastavku je spisak predstojećih praznika:" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "Pogodnost" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "Iznos beneficije" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "Detalji beneficije" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "Iznos beneficije komponente {0} prelazi {1}" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "Iznos beneficije komponente {0} treba biti veći od 0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "Iznos beneficije {0} za komponentu zarade {1} ne sme biti veći od maksimalnog iznosa beneficije {2} podešenog u {3}" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "Pogodnosti" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "Iznos fakture" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "Fakturisani časovi" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "Fakturisani časovi (B)" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "Dvaput mesečno" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "Podsetnik za rođendan" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "Podsetnik za rođendan 🎂" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "Rođendani" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "Blokirani datumi" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "Blokirani dani" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "Blokiran praznik za korišćenje na važne dane." + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "Bonus" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "Iznos bonusa" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "Datum isplate bonusa" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "Datum isplate bonusa ne može biti u prošlosti" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "Filijala: {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "Masovna dodela" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "Masovna dodela politike odsustva" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "Masovna dodela strukture zarade" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "Podrazumevano, konačna ocena se izračunava kao prosek ocene cilja, ocene povratnih informacija i ocene samoprocene. Omogućite ovu opciju da biste postavili drugačiju formulu" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "Ukupni trošak po zaposlenom licu" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "Izračunaj konačan rezultat na osnovu formule" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "Izračunaj iznos otpremnine zasnovan na" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "Obračunaj radne dane za obračun zarade na osnovu" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "Obračunato u danima" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "Pozivi" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "Otkazivanje je stavljeno u red" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "Nije moguće izmeniti vreme" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "Nije moguće dodeliti odsustvo van perioda dodele {0} - {1}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "Nije moguće dodeliti više odsustava zbog maksimalnog ograničenja dodele odsustava od {0} u dodeli politike odsustva" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "Nije moguće dodeliti više odsustava zbog maksimalnog dozvoljenog ograničenja od {0} u vrsti odsustva {1}." + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "Nije moguće prekinuti smenu nakon datuma završetka" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "Nije moguće prekinuti smenu pre datuma početka" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "Nije moguće otkazati dodelu smene: {0} jer je povezana sa prisustvom: {1}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "Ne može se otkazati dodela smene: {0} jer je povezana sa zapisom o prisustvu: {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "Nije moguće kreirati obračunski listić za zaposleno lice koje se zaposlilo nakon obračunskog perioda" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "Nije moguće kreirati obračunski listić za zaposleno lice koje je otišlo pre obračunskog perioda" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "Nije moguće kreirati kandidata za posao za otvoreno radno mesto" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "Nije moguće kreirati ili izmeniti transakcije za ciklus evaluacije sa statusom {0}." + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "Nije pronađen aktivan period odsustva" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "Nije moguće evidentirati prisustvo za neaktivno zaposleno lice {0}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "Nije moguće podneti. Prisustvo nije evidentirano za neka zaposlena lica." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "Nije moguće ažurirati dodelu za {0} nakon podnošenja" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "Nije moguće ažurirati status grupa ciljeva" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "Prenesi" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "Preneti dani odsustva" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "Slobodan dan" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "Uzrok pritužbe" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "Status je promenjen iz {0} u {1}, a status za drugu polovinu u {2}, putem zahteva za evidenciju prisustva" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "Je promenio status sa {0} na {1} putem zahteva za evidentiranJe prisustva" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "Promena '{0}' u {1}." + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "Promena KRA u ovom matičnom cilju uskladiće sve povezane zavisne ciljeve, ukoliko postoje." + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "Proverite {1} za više detalja" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "Proverite evidenciju grešaka {0} za više detalja." + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "Prijava" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "Odjava" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "Provera nepopunjenih radnih mesta prilikom kreiranje ponude za posao" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "Proverite {0} za više detalja" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "Prijava" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "Datum prijave" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "Odjava" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "Datum odjave" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "Radijus za zapis o prisustvu" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "Zavisni čvorovi se mogu kreirati samo u okviru čvorova vrste 'Grupa'" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "Izaberite način obračuna satnice za prekovremeni rad:
    1. Fiksna satnica: Fiksna, ručno uneta satnica.
    2. Zasnovano na komponenti zarade:\n\n" +"(Zbir odabranih komponenti) ÷ (Dani isplate) ÷ (Standardni dnevni sati)
    " + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "Izaberite datum kada želite da kreirate ove komponente kao zaostatke." + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "Zahtevaj beneficiju za" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "Zahtevaj nadoknadu troškova" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "Zahtevano" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "Zahtevani iznos" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "Zatraženi iznos zaposlenog lica {0} prelazi maksimalni iznos za zahtev {1}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "Zatraženi iznos zaposlenog lica {0} mora biti veći od 0" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "Zahtevi" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "Uspešno" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "Kliknite {0} da izmenite konfiguraciju i da sačuvate obračunski listić" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "Zatvoreno" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "Zatvara se" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "Zatvara se:" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "Završne napomene" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "Informacije o kompaniji" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "Zahtev za kompenzaciono odsustvo" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "Kompenzaciono odsustvo" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "Završavanje uvođenja zaposlenog lica" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "Svojstva komponenti i referenci " + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "Uslov i formula" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "Pomoć za uslove i formule" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "Uslov i formula" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "Promenljive i primeri uslova i formula" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "Konferencija" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "Potvrdi {0}" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "Uzmi u obzir period tolerancije" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "Uzmi u obzir evidentirano prisustvo tokom praznika" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "Uzmite u obzir izjavu o poreskom oslobođenju" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "Tretiraj neevidentirano prisustvo kao" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "Konsoliduj vrste odsustva" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "Kontakt broj" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "Kopija poziva/obaveštenja" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "Nije moguće podneti neke od obračunskih listića: {}" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "Nije moguće ažurirati cilj" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "Nije moguće ažurirati ciljeve" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "Brisanje podešavanja za državu nije uspelo" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "Postavke države nisu uspele" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "Država prebivališta" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "Kurs" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "Propratno pismo" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "Kreiraj dodatnu zaradu" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "Kreiraj evaluacije" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "Kreiraj intervju" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "Kreiraj kandidata za posao" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "Kreiraj otvoreno radno mesto" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "Kreiraj novi ID zaposlenog lica" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "Kreiraj obračun prekovremenog rada za zaposleno lice koje ispunjava uslove" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "Kreiraj obračune prekovremenog rada" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "Kreiraj obračunski listić" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "Kreiraj obračunske listiće" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "Kreiraj smene nakon" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "Kreiranje evaluacija" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "Kreiranje unosa uplate......" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "Kreiranje obračunskih listića..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "Kreiranje {0}..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "Datum kreiranja" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "Kreiranje je neuspešno" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "Kreiranje dodele strukture zarade je stavljeno u red. Može potrajati nekoliko minuta." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "Kreiranje {0} je u redu čekanja. Može potrajati nekoliko minuta." + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "Kriterijumi na osnovu kojih zaposlena lica treba da budu ocenjena u povratnoj informaciji o učinku i samoproceni" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "Valuta " + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "Valuta izabranog poreskog razreda poreza na dohodak treba da bude {0} umesto {1}" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "Trenutni ukupni trošak po zaposlenom licu" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "Trenutni broj" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "Trenutni poslodavac " + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "Trenutni naziv radnog mesta" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "Trenutni mesec poreza na dohodak" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "Trenutna vrednost odometra mora biti veća od poslednje vrednosti {0}" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "Trenutna vrednost odometra " + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "Trenutno otvorena radna mesta" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "Trenutni obračunski period" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "Trenutni platni razred" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "Trenutno radno iskustvo" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "Trenutno ne postoji {0} period odsustva za ovaj datum za kreiranje/ažuriranje dodele odsustva." + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "Prilagođeni opseg" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "Naziv ciklusa" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "Ciklus" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "Dnevni izveštaj o radu" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "Grupa dnevnih izveštaja o radu" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "Korisnik grupe dnevnih izveštaja o radu" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "Odgovori na dnevni izveštaj o radu" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "Opseg datuma je prekoračen" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "Datum je ponovljen" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "Datum {0} se ponavlja u detaljima prekovremenog rada" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "Datum i razlog" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "Datumi zasnovani na" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "Dani kada su praznici blokirani za ovo odeljenje." + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "Dani za storniranje" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "Dani za storniranje moraju biti veći od nule." + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "Broj računa zaduženja" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "Dec" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "Odluka na čekanju" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "Izjave" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "Prijavljeni iznos" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Odbij celu poresku obavezu na izabrani datum obračuna zarade" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "Odbiti porez ukoliko dokaz o poreskom oslobođenju nije podnet" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "Odbitak" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "Zaostatak odbitaka" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "Izveštaji o odbicima" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "Odbitak od zarade" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "Odbici" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "Odbici pre obračuna poreza" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "Podrazumevani iznos" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "Podrazumevani tekući račun / blagajna će se automatski ažurirati u nalogu knjiženja obračuna zarade kada je izabran ovaj način." + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "Podrazumevana osnovna zarada" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "Podrazumevani račun za akontaciju zaposlenog lica" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "Podrazumevani račun obaveza po osnovu zahteva za nadoknadu troškova" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "Podrazumevani račun obaveza po osnovu zarade" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "Podrazumevana struktura zarade" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "Podrazumevana smena" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "Obriši prilog" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "Obriši {0}" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "Odobravalac odeljenja" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "Otvorena radna mesta po odeljenjima" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "Odeljenje {0} ne pripada kompaniji: {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "Odeljenje: {0}" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "Datum i vreme polaska" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "Zavisi od dana isplate" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "Zavisi od dana isplate" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "Opis otvorenog radnog mesta" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "Veština za poziciju" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "Pozicija: {0}" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "Detalji sponzora (naziv, lokacija)" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "Odredi prijavu i odjavu" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "Onemogući {0} za komponentu {1} kako bi se sprečilo dvostruko odbijanje iznosa, jer formula već koristi komponentu baziranu na danima isplate." + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "Onemogućite {0} ili {1} da biste nastavili." + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "Onemogućavanje obaveštenja..." + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "Nemoj uključivati u računovodstvene unose" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "Nemoj uključivati u ukupan iznos" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "Nemoj uključivati u ukupan iznos" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "Da li želite da ažurirate kandidata za posao {0} kao {1} na osnovu rezultata intervjua?" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "Dokument {0} nije uspeo!" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "Domaće" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "Duplikat prisustva" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "Otkriven je duplikat zahteva" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "Duplikat zahteva za zapošljavanje" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "Duplikat korekcije odsustva" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "Duplikat zamenjene zarade" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "Duplikat zadržane zarade" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "GREŠKA({0}): {1}" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "Raniji izlazak" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "Raniji izlazak od" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "Period tolerancije za raniji izlazak" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "Raniji izlasci" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "Stečeno odsustvo" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "Učestalost stečenog odsustva" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "Raspored stečenih odsustava" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "Stečena odsustva" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "Stečena odsustva se dodeljuju u skladu sa podešenom učestalošću planera." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "Stečena odsustva se automatski dodeljuju putem planera, na osnovu godišnje raspodele definisane u politici odsustva: {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "Stečena odsustva predstavljaju pravo zaposlenog lica na odsustvo koje stiče nakon određenog vremena provedenog u kompaniji. Omogućavanjem ove opcije, odsustva će se dodeljivati proporcionalno automatskim ažuriranjem dodele odsustva za ovu vrstu odsustva u intervalima koji su definisani putem opcije 'Učestalost stečenog odsustva'." + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "Prihod" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "Zaostatak prihoda" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "Komponenta prihoda" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "Komponenta prihoda zarade je obavezna za bonus za preporuku zaposlenog lica." + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "Prihodi" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "Prihodi i odbici" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "Uredi stavku troška" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "Uredi porez na trošak" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "Važi od" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "Važi do" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "Važi od" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "Pošalji obračunski listić zaposlenom licu putem imejla" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "Pošalji obračunske listiće putem imejla" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "Imejl poslat" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "Obračunski listić zaposlenom licu na osnovu izabrane željene imejl adrese u kartici zaposlenog lica" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "Broj računa zaposlenog lica" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "Akontacioni račun zaposlenog lica" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "Stanje akontacije zaposlenog lica" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "Rezime akontacije zaposlenog lica" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "Analitika zaposlenog lica" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "Alat za evidenciju prisustva zaposlenih lica" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "Zahtev za beneficiju zaposlenog lica" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "Detalji zahteva za beneficiju zaposlenog lica" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "Zahtev za beneficiju zaposlenog lica" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "Detalj beneficije zaposlenog lica" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "Knjiga beneficija zaposlenog lica" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "Beneficije zaposlenog lica" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "Rođendan zaposlenog lica" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "Aktivnost uvođenja zaposlenog lica" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "Zapis o prisustvu" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "Istorija zapisa o prisustvu" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "Troškovni centar zaposlenog lica" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "Detalji zaposlenog lica" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "Imejlovi zaposlenog lica" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "Podešavanje odlaska zaposlenog lica" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "Odlasci zaposlenih lica" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "Kriterijumi za povratne informacije o zaposlenom licu" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "Ocenjivanje povratnih informacija o zaposlenom licu" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "Rang zaposlenog lica" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "Pritužba zaposlenog lica" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "Zdravstveno osiguranje zaposlenog lica" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "Iskorišćenost radnih časova zaposlenog lica na osnovu evidencije vremena" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "Slika zaposlenog lica" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "Stimulacija zaposlenog lica" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "Informacije o zaposlenom licu" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "Informacije o zaposlenom licu" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "Put zaposlenog lica" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "Stanje odsustva zaposlenog lica" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "Rezime stanja odsustva zaposlenog lica" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "Zajam zaposlenog lica" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "Način imenovanja zaposlenog lica" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "Uvođenje zaposlenog lica" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "Šablon uvođenja zaposlenog lica" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "Uvođenje zaposlenog lica: {0} već postoji za kandidata za posao: {1}" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "Ostali prihodi zaposlenog lica" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "Povratna informacija o učinku zaposlenog lica" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "Unapređenje zaposlenog lica" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "Detalji o unapređenju zaposlenog lica" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "Unapređenje zaposlenog lica ne može biti podneto pre datuma unapređenja" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "Istorija imovine zaposlenog lica" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "Preporuka zaposlenog lica" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "Preporuka zaposlenog lica {0} već postoji za imejl: {1}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "Preporuka zaposlenog lica {0} ne ispunjava uslove za bonus za preporuku." + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "Preporuke zaposlenih lica" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "Odgovorno zaposleno lice " + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "Zadržano zaposleno lice" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "Prestanak radnog odnosa zaposlenog lica" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "Šablon o prestanku radnog odnosa zaposlenog lica" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "Podešavanje zaposlenog lica" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "Veština zaposlenog lica" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "Mapa veština zaposlenog lica" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "Veštine zaposlenog lica" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "Status zaposlenog lica" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "Kategorija poreskog oslobođenja zaposlenog lica" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "Izjava o poreskom oslobođenju zaposlenog lica" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "Kategorija izjave o poreskom oslobođenju zaposlenog lica" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "Podnošenje dokaza o poreskom oslobođenju zaposlenog lica" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "Detalji podnošenja dokaza o poreskom oslobođenju zaposlenog lica" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "Podkategorija poreskog oslobođenja zaposlenog lica" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "Obuka zaposlenog lica" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "Premeštaj zaposlenog lica" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "Detalji o premeštaju zaposlenog lica" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "Detalji o premeštaju zaposlenog lica" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "Premeštaj zaposlenog lica ne može biti podnet pre datuma premeštaja" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "Akontacioni račun zaposlenog lica {0} treba da bude vrste {1}." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "Zaposleno lice može biti imenovano putem ID broja, ukoliko ga dodelite, ili kroz seriju imenovanja. Izaberite željeni način ovde." + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "Ime zaposlenog lica" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "Zapisi o zaposlenim licima kreiraju se prema izabranoj opciji" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "Zaposlenom licu je označen izostanak zbog nedostajućih zapisa o prisustvu." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "Zaposlenom licu je označen izostanak zbog neispunjavanja minimalnog broja radnih časova." + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "Zaposlenom licu je označen izostanak za drugi deo radnog vremena zbog nedostajućih zapisa o prisustvu." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "Zaposleno lice {0} : {1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "Zaposleno lice {0} već ima zahtev za evidentiranje prisustva {1} koji se preklapa sa ovim periodom" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "Zaposleno lice {0} već ima aktivnu smenu {1}: {2} koja se preklapa u ovom periodu." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "Zaposleno lice {0} je već podnelo zahtev {1} za obračunski period {2}" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "Zaposleno lice {0} je već podnelo zahtev za smenu {1}: {2} koja se preklapa u ovom periodu" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "Zaposleno lice {0} je već podnelo zahtev za {1} u periodu od {2} do {3} : {4}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "Zaposleno lice {0} je već podnelo zahtev za beneficiju '{1}' za {2} ({3}).
    U cilju sprečavanja preplate, dozvoljen je samo jedan zahtev po vrsti beneficije u svakom obračunskom ciklusu." + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "Zaposleno lice {0} nije aktivno ili ne postoji" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "Zaposleno lice {0} je na odsustvu na {1}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "Zaposleno lice {0} nije pronađeno među učesnicima događaja obuke." + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "Zaposleno lice {0} je na polovini radnog dana {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "Zaposleno lice {0} razrešeno na {1} mora biti označeno kao 'Prekinut radni odnos'" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "Zaposleno lice: {0} treba da ima najmanje {1} godina za pravo na otpremninu" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "Zaposlena lica HTML" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "Zaposlena lica koja rade tokom praznika" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "Zaposlena lica ne mogu davati povratnu informaciju sebi. Koristiti {0} umesto: {1}" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "Zaposlena lica sa polovinom radnog dana HTML" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "Zaposlena lica neće dobijati podsetnike o praznicima od {} do {}.
    Da li želite da nastavite sa ovom izmenom?" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "Zaposlena lica bez povratne informacije: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "Zaposlena lica bez ciljeva: {0}" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "Zaposlena lica koja rade tokom praznika" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "Vrsta zaposlenog lica" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "Omogući automatsku evidenciju prisustva" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "Omogući označavanje ranog odlaska" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "Omogući označavanje kasnog dolaska" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "Omogući obaveštenja" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "Omogućite ovo kako bi koristili poseban koeficijent za državne praznike. Ukoliko nije označeno, koristi se standardni koeficijent." + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "Omogućite ovo kako bi koristili poseban koeficijent za vikende. Ukoliko nije označeno, koristi se standardni koeficijent." + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "Omogućeno samo za beneficije zaposlenih lica iz dodele strukture zarade" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "Omogućavanje obaveštenja..." + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "Naknada za neiskorišćeno odsustvo" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "Iznos naknade za neiskorišćeno odsustvo" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "Dani za koje se isplaćuje naknada" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "Broj dana za isplatu naknade ne može preći {0} {1} prema podešavanjima vrste odsustva" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "Primenjeno ograničenje za isplatu naknade" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "Šifrovanje obračunskih listića u imejlu" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "Datum završetka ne može biti pre datuma početka" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "Datum završetka: {0}" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "Vreme završetka ne može biti pre vremena početka" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "Unesite krug intervjua" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "Unesite vrednost različitu od nule za korekciju." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "Unesite standardni broj radnih časova za jedan normalan radni dan. Ovi časovi će se koristiti za proračune u izveštajima kao što su iskorišćenost radnih časova i analiza profitabilnosti projekta." + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "Unesite broj dana odsustva bez naknade koje želite da stornirate. Ova vrednost ne može biti veća od ukupnog broja dana odsustva bez naknade evidentiranih za izabrani mesec" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "Unesite broj dana odsustva koji želite da dodelite za ovaj period." + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "Unesite godišnje iznose beneficija" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "Unesite {0}" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "Greška prilikom kreiranja {0}" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "Greška prilikom brisanja {0}" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "Greška prilikom preuzimanja PDF" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "Greška u formuli ili uslovu" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "Greška u formuli ili uslovu: {0} u poreskom razredu poreza na dohodak" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "Greška u nekim redovima" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "Greška prilikom ažuriranja {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "Greška prilikom obrade {doctype} {doclink} u redu {row_id}.

    Greška: {error}

    Savet: {description}" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "Procenjeni trošak po radnom mestu" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "Evaluacija" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "Datum evaluacije" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "Metoda evaluacije se ne može menjati jer su za ovaj ciklus već kreirane evaluacije" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "Detalji događaja" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "Link događaja" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "Lokacija događaja" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "Naziv događaja" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "Status događaja" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "Svake 2 nedelje" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "Svake 3 nedelje" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "Svake 4 nedelje" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "Svako važeće evidentiranje dolaska i odlaska" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "Svake nedelje" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "Svi, čestitajmo im godišnjicu rada!" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "Svi, čestitajmo {0} rođendan." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "Ispit" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "Devizni kurs unosa uplate u odnosu na akontaciju zaposlenog lica" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "Isključi praznike" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "Isključeno {0} dana neisplaćenog odsustva za {1}" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "Oslobođen od poreza na dohodak" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "Oslobođenje" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "Kategorija oslobođenja" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "Dokazi o oslobođenju" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "Podkategorija oslobođenja" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "Postojeći zapis" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "Postojeće dodele smena" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "Odlazak potvrđen" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "Detalji o odlasku" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "Izlazni intervju" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "Izlazni intervju na čekanju" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "Rezime izlaznog intervjua" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "Izlazni intervju {0} već postoji za zaposleno lice {1}" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "Upitnik za odlazak" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "Obaveštenje o upitniku za odlazak" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "Šablon obaveštenja za upitnik za odlazak" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "Upitnik za odlazak na čekanju" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "Veb-formular upitnika za odlazak" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "Odlazaka (ovaj mesec)" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "Očekivana prosečna ocena" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "Očekivano do" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "Očekivana naknada" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "Očekivani mesečni raspon zarade" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "Očekivani skup veština" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "Očekivani skup veština" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "Odobravalac troškova" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "Odobravalac troškova je obavezan u zahtevu za nadoknadom troškova" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "Račun zahteva za nadoknadu troškova" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "Akontacija zahteva za nadoknadu troškova" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "Detalji zahteva za nadoknadu troškova" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "Rezime zahteva za nadoknadu troškova" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "Vrsta zahteva za nadoknadu troškova" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "Zahtev za nadoknadu troškova za evidenciju o korišćenju vozila {0}" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "Zahtev za nadoknadu troškova {0} već postoji za evidenciju o korišćenju vozila" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "Zahtevi za nadoknadu troškova" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "Datum troška" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "Stavka troška" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "Dokaz o trošku" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "Porez na trošak" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "Porezi i takse na troškove" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "Vrsta troška" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "Troškovi i akontacije" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "Istek dodele" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "Ističu preneseni dani odsustva (u danima)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "Isteklo odsustvo" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "Isteklo odsustvo" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "Istekla odsustva" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "Obrazloženje" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "Izvoz..." + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "Neuspešno kreiranje/podnošenje {0} za zaposlena lica:" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "Neuspešno brisanje podrazumevanih vrednosti za državu {0}." + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "Neuspešno preuzimanje PDF: {0}" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "Neuspešno slanje obaveštenja o promeni termina intervjua. Molimo Vas da podesite svoju imejl adresu." + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "Neuspešne postavke podrazumevanih vrednosti za državu {0}." + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "Neke dodele politike odsustva nije bilo moguće podneti:" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "Neuspešno ažuriranje statusa kandidata za posao" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "Neuspešno {0} {1} za zaposlena lica:" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "Detalji o neuspehu" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "Razlog neuspeha" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "Neuspeh automatske dodele stečenih odsustava" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "Feb" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "Broj povratnih informacija" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "Povratna informacija HTML" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "Ocene povratnih informacija" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "Šablon obaveštenja za podsetnik za povratnu informaciju" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "Ocena povratnih informacija" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "Povratna informacija je podneta" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "Rezime povratne informacije" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "Povratna informacija za intervju {0} je već podneta. Molimo Vas da otkažete prethodnu povratnu informaciju {1} da biste nastavili." + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "Povratna informacija ne može biti zapisana za odsutno zaposleno lice." + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "Povratna informacija {0} je uspešno dodata" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "Preuzmi geolokaciju" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "Preuzmi detalje prekovremenog rada" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "Preuzmi smenu" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "Preuzmi smene" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "Preuzimanje zaposlenih lica" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "Preuzimanje smene" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "Preuzimanje Vaše geolokacije" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "Pregled fajla" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "Popunite formular i sačuvajte ga" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "Popunjeno" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "Filtriraj zaposlena lica" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "Filtriraj po smeni" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "Konačna odluka" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "Konačna ocena" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "Formula za konačnu ocenu" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "Prvo evidentiranje dolaska i poslednje evidentiranje dolaska" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "Prvi dan" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "Ime " + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "Fiskalna godina {0} nije pronađena" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "Fiksna satnica" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "Upravljanje voznim parkom" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "Fleksibilna beneficija" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "Fleksibilne beneficije" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "Fleksibilna komponenta" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "Avion" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "Završni obračun je na čekanju" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "Prati putem imejla" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "Hrana" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "Za poziciju " + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "Za zaposleno lice" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "Za jedan dan odsustva, ukoliko se ipak isplaćuje (na primer) 50% dnevne zarade, onda unesite 0.50 u ovo polje." + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "Formula" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "Deo primenjivih prihoda " + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "Deo dnevne zarade za polovinu radnog dana" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "Deo dnevne zarade po odsustvu" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "Delimični trošak" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "Frappe HR" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "Od iznosa" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "Datum početka mora biti ispred datuma završetka" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "Datum početka {0} ne može biti nakon datuma završetka obračunskog perioda {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "Datum početka {0} ne može biti posle datuma prestanka radnog odnosa {1}" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "Datum početka {0} ne može biti pre datuma početka obračunskog perioda {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "Datum početka {0} ne može biti pre datuma zaposlenja {1}" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "Datum početka ne može biti manji od datuma zaposlenja" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "Datum početka ne može biti manji od datuma zaposlenja." + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "Ovde možete omogućiti isplatu naknade zarade za preostale dane odsustva." + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "Od {0} do {1}" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "Početna godina" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "Fuksija" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "Trošak goriva" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "Troškovi goriva" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "Cena goriva" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "Količina goriva" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "Preostala imovina" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "Izvod neizmirenih stavki za završni obračun" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "Puno radno vreme" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "Sponzorisano u celosti" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "Iznos sredstava" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "Predviđeni porez na dohodak" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "Budući datumi nisu dozvoljeni" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "Račun kursnih razlika" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "Greška geolokacije" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "Geolokacija nije podržana sa Vašim trenutnim internet pretraživačom" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "Preuzmi detalje iz izjave" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "Preuzmi zaposlena lica" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "Preuzmi zahteve za zapošljavanje" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "Preuzmi šablon" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "Preuzmi aplikaciju na svom uređaju za lakši pristup i bolje korisničko iskustvo!" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "Preuzmi aplikaciju na svom iPhone uređaju za lakši pristup i bolje korisničko iskustvo" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "Bez glutena" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "Idi na prijavu" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "Idi na stranicu za resetovanje lozinke" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "Ostvarenje cilja (%)" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "Ocena cilja" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "Ocena cilja (%)" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "Ocena cilja (ponderisana)" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "Procenat napretka cilja ne može biti veći od 100." + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "Cilj treba da bude usklađen sa istim KRA kao i njegov matični cilj." + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "Cilj mora pripadati istom zaposlenom licu kao i njegov matični cilj." + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "Cilj treba da pripada istom ciklusu evaluacije kao i njegov matični cilj." + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "Cilj je uspešno ažuriran" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "Ciljevi su uspešno ažurirani" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "Platni razred" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "Otpremnina" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "Komponenta otpremnine" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "Pravilo otpremnine" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "Pravilo razreda otpremnine" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "Pritužba" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "Pritužba protiv" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "Strana protiv koje je podneta pritužba" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "Detalji pritužbe" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "Vrsta pritužbe" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "Bruto prihodi" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "Bruto zarada" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "Bruto zarada (valuta kompanije)" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "Bruto zarada od početka godine do danas" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "Bruto zarada od početka godine do danas (valuta kompanije)" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "Napredak grupnog cilja se automatski izračunava na osnovu njegovih podciljeva." + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "HR" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "HR i obračun zarada" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "Podešavanje HR i obračuna zarada" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "HR kontrolna tabla" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "HR podešavanja" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "HRMS" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "Polovina radnog dana" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "Datum polovine radnog dana" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "Datum polovine radnog dana je obavezan" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "Datum polovine radnog dana treba da bude između datuma početka i datuma završetka" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "Datum polovine radnog dana treba da bude između datuma početka rada i datuma završetka rada" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "Zaglavlje za zaposlena lica označena sa polovinom radnog dana" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "Zapisi za polovinu radnog dana" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "Datum polovine radnog dana treba da bude između datuma početka i datuma završetka" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "Poseduje sertifikat" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "Zdravstveno osiguranje" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "Naziv zdravstvenog osiguranja" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "Broj zdravstvenog osiguranja" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "Pružalac zdravstvenog osiguranja" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "Zdravo {}! Ovaj imejl je podsetnik za predstojeće praznike." + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "Zdravo, {0} 👋" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "Broj angažovanih lica" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "Podešavanje zapošljavanja" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "Lista praznika za opciono odsustvo" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "Praznici tokom ovog meseca." + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "Praznici tokom ove nedelje." + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "Horizontalni razmak" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "Zarada po času (valuta kompanije)" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "Satnica" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "Dani plaćenog zakupa preklapaju se sa {0}" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "Datumi zakupa su obavezni za obračun poreskog oslobođenja" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "Datumi zakupa moraju biti u razmaku od najmanje 15 dana" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "IFSC" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "IFSC Code" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "DOLAZAK" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "Broj identifikacionog dokumenta" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "Vrsta identifikacionog dokumenta" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "Ukoliko je označeno, obaveza po osnovu zarade će biti knjiženja po zaposlenom licu" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "Ukoliko je označeno, fleksibilne beneficije se uzimaju u obzir samo ukoliko postoji zahtev za beneficiju" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "Ukoliko je označeno, sakriva i onemogućava polje zaokruženo ukupno u obračunskim listićima" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "Ukoliko je označeno, kreiranje obračuna prekovremenog rada može se obavljati u okviru procesa obračuna zarada" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "Ukoliko je označeno, ceo iznos će biti odbijen od oporezivog dohotka pre obračuna poreza, bez potrebe za izjavom ili podnošenjem dokaza." + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "Ukoliko je omogućeno, izjava o poreskom oslobođenju biće uzeta u obzir pri obračunu poreza na dohodak." + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "Ukoliko je omogućeno, automatska evidencija prisustva biće označena i tokom praznika ukoliko postoje zapisi o prisustvu" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "Ukoliko je omogućeno, oduzima se broj dana plaćanja za izostanak tokom praznika. Podrazumevano, praznici se smatraju kao plaćeni dani" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "Ukoliko je omogućeno, iznos neće biti uključen u računovodstvene unose tokom knjiženja." + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "Ukoliko je omogućeno, komponenta će se smatrati poreskom komponentom i iznos će biti automatski obračunat prema podešenim poreskim razredima poreza na dohodak" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "Ukoliko je omogućeno, komponenta će biti uključena u izveštaj o odbicima poreza na dohodak" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "Ukoliko je omogućeno, komponenta neće biti prikazana u obračunskom listiću ukoliko je iznos nula" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "Ukoliko je omogućeno, ukupan broj prijava za ovo radno mesto će biti prikazano na veb-sajtu" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Ukoliko je omogućeno, vrednost iz ove komponente neće ulaziti u prihode ni odbitke, ali može biti referencirana u drugim komponentama. " + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "Ukoliko je omogućeno, ova komponenta će omogućiti obračunavanje iznosa bez dodavanja u prihode. Obračunati saldo se prati u knjizi beneficija zaposlenih lica i može se isplatiti kasnije po potrebi." + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "Ukoliko je omogućeno, ova komponenta će biti uključena u obračun zaostataka" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "Ukoliko je omogućeno, ukupan broj radnih dana će uključivati i praznike, što će smanjiti vrednost zarade po danu" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "Ukoliko je veće od nule, ovo određuje maksimalan iznos beneficije koja se može dodeliti zaposlenom licu" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "Ukoliko nije označeno, lista mora biti dodata svakom odeljenju pojedinačno." + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Ukoliko je izabrano, vrednost definisana ili izračunata u ovoj komponenti neće ulaziti u obračun prihoda ili odbitaka. Ipak, tu vrednost mogu koristiti druge komponente koje se dodaju ili oduzimaju. " + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "Ukoliko je postavljeno, otvoreno radno mesto će se automatski zatvoriti nakon ovog datuma" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "Ukoliko koristite zajmove u obračunskim listićima, molimo Vas da instalirate {0} aplikaciju sa Frappe Cloud Marketplace ili GitHub kako biste nastavili sa integracijom zajmova u obračunu zarade." + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "Uvoz evidencija prisustva" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "Na vreme" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "U slučaju bilo kakve greške tokom ovog pozadinskog procesa, sistem će dodati komentare o grešci na ovaj unos obračuna zarade i vratiti ga na status podneto" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "Podsticaj" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "Iznos podsticaja" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "Uključi podređene entitete kompanije" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "Uključi praznike" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "Uključi praznike u ukupan broj radnih dana" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "Uključi praznike u odsustvo kao deo odsustva" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "Izvor prihoda" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "Iznos poreza na dohodak" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "Struktura poreza na dohodak" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "Komponenta poreza na dohodak" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "Obračun poreza na dohodak" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "Porez na dohodak odbijen do danas" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "Odbici poreza na dohodak" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "Poreski razred poreza na dohodak" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "Ostali nameti u poreskom razredu poreza na dohodak" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "Poreski razred poreza na dohodak je obavezan s obzirom da struktura zarade {0} sadrži poresku komponentu {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "Poreski razred poreza na dohodak mora biti važeći na ili pre početka obračunskog perioda: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "Poreski razred poreza na dohodak nije postavljen u dodeli strukture zarade: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "Poreski razred poreza na dohodak: {0} je onemogućen" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "Prihodi iz ostalih izvora" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "Neispravna raspodela pondera" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "Označava broj dana odsustva koji se ne mogu unovčiti iz ukupnog stanja odsustva. Na primer, ukoliko imate stanje od 10 dana i 4 dana koja se ne mogu unovčiti, možete unovčiti 6 dana, dok se preostala 4 mogu preneti u naredni period ili isteći" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "Inspekcija" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "Instaliraj" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "Instaliraj Frappe HR" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "Nedovoljan broj dana odsustva" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "Nedovoljan broj dana odsustva za vrstu odsustva {0}" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "Iznos kamate" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "Račun prihoda od kamata" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "Pripravnik" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "Međunarodni" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "Internet" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "Intervju" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "Detalj intervjua" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "Detalji intervjua" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "Povratna informacija intervjua" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "Podsetnik za povratnu informaciju o intervjuu" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "Povratna informacija o intervjuu {0} je uspešno podneta" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "Promena termina intervjua nije uspela" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "Podsetnik za intervju" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "Šablon podsetnika za intervju" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "Promena termina intervjua je uspešna" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "Krug intervjua" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "Krug intervjua {0} je isključivo primenjiv za poziciju {1}" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "Krug intervjua {0} je predviđen samo za poziciju {1}. Kandidat za posao je aplicirao za ulogu {2}" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "Zakazani datum intervjua" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "Status intervjua" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "Rezime intervjua" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "Vrsta intervjua" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "Intervju: {0} promenjen termin" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "Ispitivač" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "Ispitivači" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "Intervjui" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "Intervjui (ove nedelje)" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "Nevažeća obračunska komponenta" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "Nevažeća dodatna zarada" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "Nevažeća komponenta zaostatka" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "Nevažeći iznosi beneficija" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "Nevažeći datumi" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "Nevažeći broj storniranih dana odsustva bez naknade" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "Nevažeći unos u evidenciju odsustva" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "Nevažeći račun za obračun zarade. Valuta računa mora biti {0} ili {1}" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "Nevažeći termini smene" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "Prosleđeni su nevažeći parametri. Molimo Vas da uneste neophodne argumente." + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "Istraženo" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "Detalji istrage" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "Pozvan" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "Referenca fakture" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "Dodeljeno" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "Uključuje bonus za preporuku" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "Prenosi se u naredni period" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "Kompenzaciono" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "Kompenzaciono odsustvo" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "Stečeno odsustvo" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "Isteklo" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "Fleksibilna beneficija" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "Komponenta poreza na dohodak" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "Odsustvo bez naknade" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "Opciono odsustvo" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "Delimično plaćeno odsustvo" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "Ponavljajuće" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "Ponavljajuća dodatna zarada" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "Zarada isplaćena" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "Zarada zadržana" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "Primenjuje se porez" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "Jan" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "Kandidat za posao" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "Izvor kandidata za posao" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "Kandidat za posao {0} je uspešno kreiran." + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "Kandidati za posao ne smeju dva puta učestvovati u istom krugu intervjua. Intervju {0} je već zakazan za kandidata za posao {1}" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "Prijava za posao" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "Putanja prijave za posao" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "Opis posla" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "Ponuda za posao" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "Uslov ponude za posao" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "Šablon uslova ponude za posao" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "Uslovi ponude za posao" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "Status ponude za posao" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "Ponuda za posao: {0} već postoji za kandidata za posao: {1}" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "Otvoreno radno mesto" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "Povezano otvoreno radno mesto" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "Šablon otvorenog radnog mesta" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "Otvorena radna mesta" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "Otvorena radna mesta za poziciju {0} su već otvorena ili je zapošljavanje u skladu sa planom osoblja {1}" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "Zahtev za zapošljavanje" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "Zahtev za zapošljavanje {0} je povezan sa otvorenim radnim mesto {1}" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "Opis posla, potrebne kvalifikacije i slično." + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "Poslovi" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "Datum zaposlenja" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "Jul" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "Jun" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "KRA" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "KRA evaluaciona metoda" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "KRA je ažurirana za sve zavisne ciljeve." + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "KRA naspram ciljeva" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "KRA" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "Ključna oblast performansi" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "Ključna oblast odgovornosti" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "Ključna oblast rezultata" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "Broj storniranih dana odsustva bez naknade ({0}) se ne poklapa sa ukupnim iznosom korekcije obračuna zarade ({1}) za zaposleno lice {2} u periodu od {3} do {4}" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "Poslednji dan" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "Poslednja poznata uspešna sinhronizacija zapisa o prisustvu. Resetujte ovo samo ukoliko ste sigurni da su svi zapisi sinhronizovani sa svih lokacija. Molimo Vas da ne menjate ovu vrednost ukoliko niste sigurni." + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "Poslednja vrednost odometra " + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "Poslednja sinhronizacija zapisa o prisustvu" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "Poslednji {0} bio je {1}" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "Kasni dolasci" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "Kasni dolazak" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "Podešavanje automatske evidencije za kasni dolazak i raniji odlazak" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "Kasni dolazak od strane" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "Tolerancija za kasni dolazak" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "Obavezno je uneti vrednosti geografske širine i geografske dužine za prijavu." + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "Geografska širina: {0}°" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "Odsustvo" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "Korekcija odsustva" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "Korekcija odsustva za ovu dodelu već postoji: {0}. Molimo Vas da izmenite postojeću korekciju." + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "Dodela odsustva" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "Dodela odsustva već postoji" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "Dodele odsustva" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "Zahtev za odsustvo" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "Period zahteva za odsustvo ne može da obuhvata dva nepovezana perioda dodele odsustva {0} i {1}." + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "Obaveštenje o odobrenju odsustva" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "Šablon obaveštenja o odobrenju odsustva" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "Odobravalac odsustva" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "Odobravalac odsustva je obavezan u zahtevu za odsustvo" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "Naziv odobravaoca odsustva" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "Stanje odsustva" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "Stanje odmora pre podnošenja zahteva" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "Lista blokiranih odsustva" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "Dozvoli u listi blokiranih odsustva" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "Dozvoljeno u listi blokiranih odsustva" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "Datum liste blokiranih odsustva" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "Datumi liste blokiranih odsustva" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "Naziv liste blokiranih odsustva" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "Odsustvo je blokirano" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "Kontrolna tabla za odsustva" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "Detalji odsustva" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "Naknada za neiskorišćeno odsustvo" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "Iznos naknade za neiskorišćeno odsustvo po danu" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "Istorija odsustva" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "Evidencija odsustva" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "Unos u evidenciju odsustva" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "Datum unosa u evidenciju odsustva mora biti nakon datuma početka. Trenutno je datum početka {0}, dok je datum završetka {1}" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "Period odsustva" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "Politika odsustva" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "Dodela politike odsustva" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "Preklapanje dodele politike odsustva" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "Detalj politike odsustva" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "Detalji politike odsustva" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "Politika odsustva: {0} je već dodeljena zaposlenom licu {1} za period {2} do {3}" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "Obaveštenje o statusu odsustva" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "Šablon obaveštenja o statusu odsustva" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "Vrsta odsustva" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "Naziv vrste odsustva" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "Vrsta odsustva ne može biti kompenzaciono ili stečeno odsustvo." + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "Vrsta odsustva može biti bez naknade ili sa delimičnom naknadom" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "Vrsta odsustva je obavezna" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "Vrsta odsustva {0} ne može biti dodeljena jer je odsustvo bez naknade" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "Vrsta odsustva {0} ne može biti preneta u naredni period" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "Vrsta odsustva {0} nije predmet isplate" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "Odsustvo bez naknade" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "Odsustvo bez naknade ne odgovara odobrenim {} zapisima" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "Dodela odsustva je preskočena za {0}, jer je broj dana odsustva za dodelu jednak 0." + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "Dodela odsustva {0} je povezana sa zahtevom za odsustvo {1}" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "Odsustvo je već dodeljeno za ovu politiku odsustva" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "Podešavanje zahteva za odsustvo i nadoknadu troškova" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "Zahtev za odsustvo je povezan sa dodelom odsustva {0}. Zahtev za odsustvo se ne može postaviti kao odsustvo bez naknade" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Odsustvo ne može biti dodeljeno pre {0}, jer je stanje odsustva već preneseno u budući zapis o dodeli odsustva {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Odsustvo ne može biti primenjeno/otkazano pre {0}, jer je stanje odmora već preneto u budući zapis o dodeli odmora {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "Vrsta odsustva {0} ne može trajati duže od {1}." + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "Odsustvo isteklo" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "Odsustvo na čekanju za odobrenje" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "Iskorišćeno odsustvo" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "Odsustva" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "Odsustva i praznici" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "Odsustva nakon korekcije" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "Dodeljena odsustva" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "Istekli dani odsustva" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "Odsustva na čekanju za odobrenje" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "Dani odsustva za vrstu odsustva {0} neće biti preneti u naredni period jer je prenos onemogućen." + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "Dani odsustva godišnje" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "Odsustva za korekciju" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "Odsustvo koje možete iskoristiti za dan kada ste radili na dan praznika. Kompenzaciono odsustvo možete zahtevati preko zahteva za kompenzaciono odsustvo. Kliknite na {0} za više informacija" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Prekinut radni odnos" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "Životni ciklus" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "Svetlozelena" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "Povežite ciklus i označite ključna područja rezultata za sopstveni cilj kako biste ažurirali ocenu cilja u evaluaciju na osnovu napretka cilja" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "Povezani projekat {} i zadaci su obrisani." + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "Račun zajma" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "Kreditni proizvod" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "Otplata zajma" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "Unos otplate zajma" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "Zajam ne može biti otplaćen od zarade zaposlenog lica {0} jer se zarada obračunava u valuti {1}" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "Lociranje..." + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "Lokacija / ID uređaja" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "Neophodna noćenja" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "Odjavi se" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "Vrsta evidencije" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "Vrsta evidencije je neophodna za prijave koje padaju u smenu: {0}." + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "Neuspešna prijava" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "Prijavljivanje na Frappe HR" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "Geografska dužina: {0}°" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "Donja granica" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "MICR" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "Napravi bankarski unos" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "Obavezan zahtev za beneficiju" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "Obavezna polja su neophodna za ovu radnju:" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "Ručno ocenjivanje" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "Ručno" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "Mar" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "Označi prisustvo" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "Automatski označi prisustvo za dane praznika" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "Označi kao završeno" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "Označi kao u toku" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "Označi kao {0}" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "Označi prisustvo kao {0} za {1} na izabranim datumima?" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "Označi prisustvo na osnovu 'Zapis o prisustvu' za zaposlena lica dodeljena ovoj smeni." + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "Označi prisustvo za postojeće prijave/odjave pre promene podešavanja smene" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "Označi {0} kao završeno?" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "Označi {0} {1} kao {2}?" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "Označeno prisustvo" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "Označeno prisustvo HTML" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "Označavanje prisustva" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "Maksimalan dozvoljeni iznos za zahtev" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "Maksimalni iznos beneficije" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "Maksimalni iznos beneficije (godišnje)" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "Maksimalna beneficija (iznos)" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "Maksimalna beneficija (godišnje)" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "Maksimalni iznos oslobođenja" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "Maksimalni iznos oslobođenja ne može biti veći od maksimalnog iznosa oslobođenja {0} za kategoriju poreskog oslobođenja {1}" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "Maksimalni oporezivi prihod" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "Maksimalan broj radnih časova prema evidenciji vremena" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "Maksimalan iznos beneficije" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "Maksimalan broj prenetih dana odsustva" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "Maksimalan broj uzastopnih dana odsustva" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "Prekoračen je maksimalan broj uzastopnih dana odsustva" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "Maksimalan broj dana odsustva za naknadu" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "Maksimalan iznos oslobođenja" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "Maksimalan iznos poreskog oslobođenja" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "Maksimalno dozvoljena dodela odsustva po periodu odsustva" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "Maksimalno dozvoljeni sati prekovremenog rada" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "Maksimalno dozvoljeni sati prekovremenog rada po danu" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "Maksimalni godišnji oporezivi prihod za potpuno poresko oslobođenje. Porez se ne primenjuje ukoliko prihod ne prelazi ovaj limit" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "Maksimalan broj dana odsustva za naknadu za {0} je {1}" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "Maksimalni broj dana dozvoljen za vrstu odsustva {0} je {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "Maj" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "Preferencija obroka" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "Medicinsko" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "Kilometraža" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "Minimalni oporezivi prihod" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "Minimalni broj godina za otpremninu" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "Minimalni broj radnih dana od datuma zaposlenja neophodan za podnošenje zahteva za ovo odsustvo" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "Nedostaje akontacioni račun" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "Nedostaje obavezno polje" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "Nedostaju unosi početnog stanja" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "Nedostaje datum prestanka radnog odnosa" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "Nedostaje komponenta zarade" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "Nedostaje poreski razred" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "Način putovanja" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "Način plaćanja je obavezan kako bi se izvršila uplata" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "Za mesec do danas" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "Za mesec do danas (valuta kompanije)" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "Mesečna tabela prisustva" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "Više od jednog izbora za {0} nije dozvoljeno" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "Višestruke dodatne zarade sa opcijom prepisivanja postoje za komponentu zarade {0} između {1} i {2}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "Višestruke dodele smene" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "Koeficijenti koji prilagođavaju satnicu za prekovremeni rad u specifičnim situacijama\n\n" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "Moje akontacije" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "Moji zahtevi za nadoknadu" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "Moja odsustva" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "Moji zahtevi" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "Naziv greške" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "Naziv organizatora" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "Neto zarada" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "Neto zarada (valuta kompanije)" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "Informacije o neto zaradi" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "Neto zarada ne može biti manja od 0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "Iznos neto zarade" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "Neto zarada ne može biti negativna" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "Novi ID zaposlenog lica" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "Nova stavka troška" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "Novi porez na trošak" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "Nova povratna informacija" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "Nova zaposlena lica (ovaj mesec)" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "Novo dodeljeno odsustvo" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "Nova dodeljena odsustva" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "Nova dodeljena odsustva (u danima)" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "Nova dodela smene biće kreirana nakon ovog datuma." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "Nije pronađen tekući račun/blagajna za valutu {0}. Molimo Vas da ga kreirate u okviru kompanije {1}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "Nije pronađeno zaposleno lice" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "Nije pronađeno zaposleno lice za unetu vrednost polja. '{}': {}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "Nije izabrano nijedno zaposleno lice" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "Nijedan intervju nije zakazan." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "Nije pronađen period odsustva" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "Nema dodeljenog odsustva zaposlenom licu: {0} za vrstu odsustva: {1}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "Nije pronađen obračunski listić za zaposleno lice: {0}" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "Nisu pronađeni obračunski listići sa {0} za zaposleno lice {1} u obračunskom periodu {2}." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "Nije pronađena struktura zarade za zaposleno lice {0} na datum {1}" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "Nije pronađena dodela strukture zarade za zaposleno lice {0} na dan ili pre {1}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "Za zaposleno lice {0} nije dodeljena struktura zarade na datum {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "Nema struktura zarade" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "Nije izabran zahtev za radnu smenu" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "Nije pronađen plan osoblja za ovu poziciju" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "Nije pronađena aktivna dodela strukture zarade za zaposleno lice {0} sa strukturom zarade {1} na ili nakon datuma početka zaostatka {2}" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "Nema aktivnog zaposlenog lica povezanog sa imejl ID {0}. Pokušajte da se prijavite sa poslovnim imejlom ili kontaktirajte HR menadžera za pristup." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "Nije pronađena aktivna ili podrazumevana struktura zarade za zaposleno lice {0} za navedene datume" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "Nisu dodati dodatni troškovi" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "Nema pronađenih akontacija" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "Nije pronađena odgovarajuća komponenta prihoda u poslednjem obračunskom listiću za pravilo otpremnine: {0}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "Nije pronađena odgovarajuća komponenta prihoda za pravilo otpremnine: {0}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "Nije pronađen odgovarajući razred za obračun iznosa otpremnine prema pravilu otpremnine: {0}" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "U postojećim obračunskim listićima nisu pronađene komponente zaostatka." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "Nisu pronađene komponente zaostatka u obračunskom listiću. Proverite da li je označena komponenta zaostatka u master podacima komponente zarade." + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "Nisu pronađeni detalji zaostatka" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "Nisu pronađeni zapisi prisustva za zaposleno lice {0} između {1} i {2}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "Nije pronađena evidencija prisustva koja odgovara ovim kriterijumima." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "Nije pronađena evidencija prisustva." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "Ne postoji evidencija prisustva za kreiranje" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "Nema promena u terminima." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "Nisu pronađena zaposlena lica" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "Ne postoje zaposlena lica koja odgovaraju navedenim kriterijumima:
    Kompanija: {0}
    Valuta: {1}
    Račun obračuna zarade: {2}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "Nisu pronađena zaposlena lica za izabrane kriterijume" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "Nije pronađeno nijedno zaposleno lice sa izabranim filterima i aktivnom strukturom zarade" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "Nema dodatnih troškova" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "Još nije primljena nijedna povratna informacija" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "Nije izabrana nijedna stavka" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "Nije pronađena dodela odsustva za {0} za {1} na dati datum." + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "Nema evidencije odsustva za zaposleno lice {0} na {1}" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "Dani odsustva nisu dodeljeni." + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "Nema dodatnih ažuriranja" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "Broj pozicija" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "Nema odgovora od" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "Nije pronađen obračunski listić za podnošenje prema izabranim kriterijumima ili je obračunski listić već podnet" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "Nisu pronađeni obračunski listići" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "Nisu pronađeni obračunski listići za izabrano zaposleno lice od {0}" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "Nisu dodati porezi" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "Nije pronađena važeća smena za vreme prijave" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "{0} nije izabra" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "{0} nije dodat" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "Bez mlečnih proizvoda" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "Prihodi koji nisu predmet oporezivanja" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "Nefakturisani časovi" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "Nefakturisani časovi (NB)" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "Odsustva koja se ne mogu isplatiti" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "Ishrana koja uključuje meso" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "Napomena: Smena neće biti prepisana u postojećim evidencijama prisustva" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "Napomena: Ukupno dodeljenih odsustva {0} ne može biti manje od već odobrenih odsustva {1} za period" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "Napomena: Vaš obračunski listić je zaštićen lozinkom, lozinka za otključavanje PDF-a ima format {0}." + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "Nema podataka za izmenu" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "Otkazni rok" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "Šablon obaveštenja" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "Obavesti korisnike putem imejla" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "Nov" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "Broj zaposlenih lica" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "Broj pozicija" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "Broj odsustva" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "Broj ciklusa zadržavanja zarade" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "Broj dana odsustva koji se mogu isplatiti, u skladu sa podešavanjima vrste odsustva" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "Jednokratna lozinka" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "Verifikacija jednokratnom lozinkom" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "ODLAZAK" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "Dobijena prosečna ocena" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "Okt" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "Očitavanje odometra" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "Vrednost odometra" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "Van radne smene" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "Van radne smene" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "Uslov ponude" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "Uslovi ponude" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "Na datum" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "Na zadatku" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "Na odsustvu" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "Uvođenje" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "Aktivnosti uvođenja" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "Uvođenje počinje na" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "Isključivo odobravaoci mogu da odobre ovaj zahtev." + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "Isključivo završeni dokumenti mogu biti podneti" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "Isključivo pritužbe zaposlenih lica sa statusom {0} ili {1} mogu biti podnete" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "Isključivo ispitivač može podneti povratnu informaciju" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "Isključivo intervjui sa statusom uspešno ili odbijeno mogu biti podneti." + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "Isključivo zahtev za odsustvom sa statusom 'Odobreno' ili 'Odbijeno' može biti podnet" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "Isključivo zahtev za radnu smenu sa statusom 'Odobreno' ili 'Odbijeno' može biti podnet" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "Isključivo istekla dodeljivanja mogu biti otkazana" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "Isključivo ispitivači mogu podneti povratnu informaciju" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "Isključivo korisnici sa ulogom {0} mogu kreirati zahtev sa odsustvom sa retroaktivnim datumom" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "Isključivo ciljevi vrste {0} mogu biti {1}" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "Otvoreno i odobreno" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "Otvori povratnu informaciju" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "Otvori sada" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "Otvoreno radno mesto je zatvoreno." + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "Lista opcionih praznika nije podešena za period odsustva {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "Opcioni praznici su neradni dani koje zaposlena lica mogu da iskoriste sa liste praznika koju je objavila kompanija." + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "Organizacioni dijagram" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "Ostali porezi i naknade" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "Ostalo" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "Vreme izlaska" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "Odlazna zarada" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "Prekoračena dodela" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "Ukupna prosečna ocena" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "Preklapajući zahtev za evidentiranje prisustva" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "Preklapajuće prisustvo u smenama" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "Preklapajući zahtevi za radne smene" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "Preklapajuće smene" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "Prekovremeni rad" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "Obračun iznosa prekovremenog rada" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "Detalji prekovremenog rada" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "Trajanje prekovremenog rada" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "Trajanje prekovremenog rada za {0} je veće od maksimalno dozvoljenih časova" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "Komponenta zarade za prekovremeni rad" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "Obračun prekovremenog rada" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "Greška pri kreiranju obračuna prekovremenog rada za {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "Kreiranje obračuna prekovremenog rada je neuspešno" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "Korak obračuna prekovremenog rada" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "Greška pri podnošenju obračuna prekovremenog rada za {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "Kreiranje obračuna prekovremenog rada je neuspešno" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "Obračun prekovremenog rada je podnet" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "Obračun prekovremenog rada je kreiran za {0} zaposlena lica" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "Kreiranje obračuna prekovremenog rada je u redu čekanja. Može potrajati nekoliko minuta" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "Podnošenje obračuna prekovremenog rada je u redu čekanja. Može potrajati nekoliko minuta" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "Obračun prekovremenog rada: {0} je kreiran između {1} i {2}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "Kreirani obračuni prekovremenog rada" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "Podneti obračuni prekovremenog rada za {0} zaposlenih lica" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "Vrsta prekovremenog rada" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "Prihodi od prekovremenog rada knjižiće se pod ovom komponentom zarade radi isplate." + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "Zameniti iznos u strukturi zarade" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "PAN broj" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "Račun penzionog fonda" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "Iznos doprinosa za penzioni fond" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "Zajam u okviru penzionog fonda" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "PWA obaveštenje" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "Isplaćeno putem obračunskog listića" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "Matični cilj" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "Nepuno radno vreme" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "Delimično sponzorisano, neophodan je dodatni deo sredstava" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "Delimično potraživano i vraćeno" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "Politika lozinki" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "Politika lozinki ne sme sadržati razmake ili uzastopne crtice. Format će biti automatski preuređen" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "Politika lozinki za obračunski listić nije postavljena" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "Koeficijenti stope isplate" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "Plati putem unosa uplate" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "Uplata putem obračunskog listića" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "Račun obaveza je obavezan za podnošenje zahteva za nadoknadu troškova" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "Račun za isplatu je obavezan" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "Datum uplate" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "Dani obračuna" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "Pomoć za obračun dana za plaćanje" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "Zavisnost dana obračuna" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "Broj dana obračuna određuje se prema podešavanjima obračuna zarade" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "Uplata i računovodstvo" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "Uplata {0} od {1} do {2}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "Isplata" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "Način isplate" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "Isplata neiskorišćenog iznosa u završnom obračunskom ciklusu" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "Obračun zarade" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "Obračun zarade na osnovu" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "Korekcija obračuna zarada" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "Zavisna stavka korekcije obračuna zarada" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "Troškovni centar obračuna zarade" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "Troškovni centri obračuna zarade" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "Kontrolna tabla obračuna zarade" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "Datum obračuna zarade" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "Detalji o zaposlenom licu za obračun zarade" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "Otkazivanje unosa obračuna zarade je u redu čekanja. Može potrajati nekoliko minuta" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "Učestalost obračuna zarada" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "Informacije o obračunu zarade" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "Broj obračuna zarade" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "Račun obaveza za zarade" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "Obračunski period" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "Datum obračunskog perioda" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "Obračunski periodi" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "Izveštaji o obračunu zarade" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "Podešavanje obračuna zarade" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "Datum obračuna zarade ne može biti veći od datuma prestanka radnog odnosa." + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "Datum obračuna zarade ne može biti pre datuma zaposlenja zaposlenog lica." + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "Datum obračuna zarada ne može biti u prošlosti. Ovo osigurava da se zahtevi podnose za tekuće ili buduće obračunske cikluse." + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "Preostali (neuplaćeni) iznos iz prethodnih akontacija" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "Zadužena imovina koja nije vraćena" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "Na čekanju za konačan obračun" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "Intervjui na čekanju" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "Upitnici na čekanju" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "Odbitak u procentima" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "Performanse" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "Trajno otkazivanje {0}" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "Trajno podnošenje {0}" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "Rad po učinku" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "Planirani broj pozicija" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "Molimo Vas da omogućite automatsku evidenciju prisustva i završite postavke." + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "Molimo Vas da prvo izaberete kompaniju" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "Molimo Vas da prvo dodelite strukturu zarade zaposlenom licu {0} koja važi od ili pre {1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "Molimo Vas da proverite da li je zaposleno lice na odsustvu ili već postoji prisustvo sa istim statusom za izabran dan(e)." + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "Molimo Vas da potvrdite kada završite obuku" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "Molimo Vas da kreirate novi {0} za datum {1}." + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "Molimo Vas da obrišete zaposleno lice {0} da biste otkazali ovaj dokument" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "Molimo Vas da omogućite podrazumevani dolazni račun pre kreiranja grupe za dnevni izveštaj o radu" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "Molimo Vas da unesete poziciju" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "Molimo Vas da unesete zaposleno lice, datum knjiženja i kompaniju pre preuzimanja detalja o prekovremenom radu." + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "Molimo Vas da smanjite {0} da biste izbegli preklapanje vremena smene" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "Molimo Vas da pogledate prilog" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "Molimo Vas da unesete kompaniju i poziciju" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "Molimo Vas da izaberete zaposleno lice" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "Molimo Vas da prvo izaberete zaposleno lice." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "Molimo Vas da izaberete filter zasnovan na" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "Molimo Vas da prvo izaberete datum početka i učestalost obračuna zarada" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "Molimo Vas da izaberete datum početka." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "Molimo Vas da izaberete raspored smena i datume dodeljivanja." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "Molimo Vas da izaberete vrstu smene i datume dodeljivanja." + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "Molimo Vas da prvo izaberete kompaniju" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "Molimo Vas da prvo izaberete kompaniju." + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "Molimo Vas da izaberete CSV fajl" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "Molimo Vas da izaberete datum." + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "Molimo Vas da izaberete kandidata" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "Molimo Vas da izaberete barem jedan zahtev za radnu smenu da biste izvršili ovu radnju." + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "Molimo Vas da izaberete najmanje jedno zaposleno lice za ovu radnju." + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "Molimo Vas da izaberete najmanje jedan red za ovu radnju." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "Molimo Vas da izaberete kompaniju." + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "Molimo Vas da prvo izaberete zaposleno lice" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "Molimo Vas da izaberete zaposleno lice da biste kreirali evaluacije za" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "Molimo Vas da izaberete status prisustva za polovinu radnog dana." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "Molimo Vas da izaberete mesec i godinu." + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "Molimo Vas da prvo izaberete ciklus evaluacije." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "Molimo Vas da izaberete status prisustva." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "Molimo Vas da izaberete zaposlena lica za koje želite da označite prisustvo." + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "Molimo Vas da izaberete obračunski listić za slanje putem imejla" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "Molimo Vas da podesite \"Podrazumevani račun obaveza po osnovu zarade\" u podrazumevanim podešavanjima kompanije" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "Molimo Vas da podesite osnovnu i HRA komponentu u kompaniji {0}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "Molimo Vas da postavite komponentu prihoda za vrstu odsustva: {0}." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "Molimo Vas da podesite osnovu za obračun zarade u podešavanjima obračuna zarade" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "Molimo Vas da postavite datum prestanka radnog odnosa za zaposleno lice: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "Molimo Vas da postavite opseg datuma kraći od 90 dana." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "Molimo Vas da podesite račun u komponenti zarade {0}" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "Molimo Vas da postavite podrazumevani šablon za obaveštenje o odobrenju odsustva u HR podešavanjima." + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "Molimo Vas da postavite podrazumevani šablon za obaveštenje o statusu odsustva u HR podešavanjima." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "Molimo Vas da podesite šablon evaluacije za sve {0} ili da izaberete šablon u tabeli zaposlenih lica ispod." + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "Molimo Vas da postavite kompaniju" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "Molimo Vas da postavite datum zaposlenja za zaposleno lice {0}" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "Molimo Vas da postavite listu praznika." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "Molimo Vas da postavite opseg datuma." + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "Molimo Vas da postavite datum prestanka radnog odnosa za zaposleno lice {0}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "Molimo Vas da postavite {0} i {1} u {2}." + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "Molimo Vas da postavite {0} za zaposleno lice {1}" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "Molimo Vas da postavite {0} za zaposleno lice: {1}" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "Molimo Vas da postavite {0}." + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "Molimo Vas da podesite sistem imenovanja zaposlenih u Ljudski resursi >HR podešavanja" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "Molimo Vas da podesite seriju numeracije za prisustvo putem Postavke > Serije numeracije" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "Molimo Vas da podelite Vašu povratnu informaciju o obuci klikom na 'Povratna informacija o obuci', a zatim na 'Novo'" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "Molimo Vas da navedete kandidata za posao koji treba da bude ažuriran." + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "Molimo Vas da navedete {0} i {1} (ukoliko postoje), radi pravilnog obračuna poreza u budućim obračunskim listićima." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "Molimo Vas da podnesete {0} pre nego što označite ciklus kao završen" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "Molimo Vas da ažurirate svoj status za ovu obuku" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "Objavljeno na" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "Datum knjiženja" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "Preferirana lokacija za noćenje" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "Prisutan" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "Evidencija prisustva" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "Sprečiti samoodobravanje zahteva za troškove i ukoliko korisnik ima dozvole" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "Onemogući samoodobravanje odsustva čak i ukoliko korisnik ima dozvole" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "Pregled obračunskog listića" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "Glavnica" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "Štampano na {0}" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "Plaćeno odsustvo" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "Probni rad" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "Period probnog rada" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "Obrada prisustva nakon" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "Obrada unosa obračuna zarade po zaposlenom licu" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "Obrada zahteva" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "Obrada zahteva za radnu smenu" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "Obrada naknade za neiskorišćeno odsustvo preko posebnog unosa uplate, a ne preko obračunskog listića" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "Obrada {0} zahteva za radnu smenu kao {1}?" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "Obrada zahteva" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "Zahtevi se obrađuju..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "Obrada zahteva za radnu smenu je stavljena u red čekanja. Može potrajati nekoliko minuta." + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "Poreski odbitak po osnovu profesionalne delatnosti" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "Stepen znanja" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "Profit" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "Profitabilnost projekta" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "Unapređenje" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "Datum unapređenja" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "Imovina je već dodata" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "Odbici za penzioni fond" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "Koeficijent za državni praznik" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "Objavi primljene prijave" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "Objavi opseg zarade" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "Objavi na veb-sajtu" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "Svrha i iznos" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "Svrha putovanja" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "Dozvola za obaveštenja je odbijena" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "Obaveštenja su onemogućena" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "Obaveštenja su onemogućena na Vašem veb-sajtu" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "Upitnik je poslat putem imejla" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "Brzi filteri" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "Brzi linkovi" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "Radijus u okviru kog je dozvoljeno evidentiranje dolaska (u metrima)" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "Ručno oceni ciljeve" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "Kriterijum ocenjivanja" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "Ocenjivanja" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "Preraspodela odsustva" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "Razlog za korekciju" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "Razlog zahteva" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "Razlog za zadržanu zaradu" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "Razlog za preskakanje automatskog evidentiranja prisustva:" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "Nedavni zahtevi za evidentiranje prisustva" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "Nedavni troškovi" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "Nedavna odsustva" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "Nedavni zahtevi za radnu smenu" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "Preporučeno za jedan biometrijski uređaj / prijavu putem mobilne aplikacije" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "Naplata troška" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "Zapošljavanje" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "Analitika zapošljavanja" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "Smanjenje" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "Smanjenje maksimalnog broja dozvoljenih odsustva nakon dodele može dovesti do nepravilnog raspoređivanja zarađenih odsustava. Nastavite sa oprezom." + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "Smanjenje je veće od raspoloživog salda odsustva {1} za zaposleno lice {0} za vrstu odsustva {2}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "Referenca: {0}" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "Status isplate bonusa za preporuku" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "Detalji preporuke" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "Detalji preporučioca" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "Ime preporučioca" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "Zapažanja" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "Detalji o točenju goriva" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "Odbij" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "Odbij preporuku zaposlenog lica" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "Odbijanje" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "Isplati zadržane zarade" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "Isplaćeno" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "Datum prestanka radnog odnosa " + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "Nedostaje datum prestanka radnog odnosa" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "Preostale beneficije (godišnje)" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "Podseti pre" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "Podsetnik poslat" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "Podsetnici" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "Ukloni ukoliko je vrednost nula" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "Iznajmljeno vozilo" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "Otplata iz zarade" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "Otplata iz zarade može se izabrati samo za zajmove na određeni rok" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "Vrati neiskorišćeni iznos putem zarade" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "Ponavljanje na dane" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "Odgovori" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "Izveštava" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "Zahtevaj evidenciju prisustva" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "Zahtevaj odsustvo" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "Zahtevaj odsustvo" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "Zahtevaj smenu" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "Zahtevaj akontaciju" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "Zahtev od strane" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "Zahtev od strane (ime)" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "Neophodno potpuno finansiranje" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "Neophodne veštine" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "Neophodno za kreiranje zaposlenog lica" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "Promeni termin intervjua" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "Odgovornosti" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "Ograniči retroaktivni zahtev za odsustvo" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "Prilog CV" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "CV link" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "CV link" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "Zadržano" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "Bonus za zadržavanje" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "Starosna granica za penziju (u godinama)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "Ponovni pokušaj nije uspeo" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "Ponovni pokušaj neuspešnih dodela" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "Ponovni pokušaj je uspeo" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "Pokušaj ponovne dodele" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "Iznos za povraćaj ne može biti veći od neiskorišćenog iznosa" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "Pregledajte razna druga podešavanja vezana za odsustva zaposlenih lica i zahteve za nadoknadu troškova" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "Ocenjivač" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "Ime ocenjivača" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "Revidirani ukupni trošak po zaposlenom licu" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "Uloge koje imaju dozvolu za kreiranje retroaktivnih zahteva za odsustvo" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "Raspored" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "Boja rasporeda" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "Naziv kruga" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "Zaokruživanje radnog iskustva" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "Zaokruživanje na najbliži ceo broj" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "Zaokruživanje" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "Preusmeri ka prilagođenoj veb-formi za prijavu na posao" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "Red #{0}: Nije moguće postaviti iznos ili formulu za komponentu zarade {1} koja je zasnovana na oporezivom iznosu" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "Red #{0}: Komponenta {1} ima omogućene opcije {2} i {3}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "Red #{0}: Iznos iz evidencije vremena će zameniti iznos komponente prihoda sa iznosom komponente zarade {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "Red broj {0}: Iznos ne može biti veći od neizmirenog iznosa u zahtevu za nadoknadu troškova {1}. Neizmireni iznos je {2}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "Red {0}# dodeljeni iznos {1} ne može biti veći od neiskorišćenog iznosa {2}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "Red {0}# isplaćeni iznos ne može biti veći od iznosa za isplatu naknade" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "Red {0}# isplaćeni iznos ne može biti veći od ukupnog iznosa" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "Red {0}# isplaćeni iznos ne može biti veći od zahtevanog iznosa akontacije" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "Red {0}: Početna godina ne može biti veća od završne godine" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "Red {0}: Ocena cilja ne može biti veća od {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "Red {0}: Uplaćeni iznos {1} je veći od preostalog obračunatog iznosa {2} za zajam {3}" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "Red {0}: {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "Red {0}: {1} je obavezno u tabeli troškova za unos zahteva za nadoknadu troškova." + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "Komponenta zarade" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "Komponenta zarade " + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "Račun komponente zarade" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "Zasnovano na komponenti zarade" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "Vrsta komponente zarade" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "Komponenta zarade za evidenciju vremena na osnovu obračuna zarade." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "Komponenta zarade {0} ne može biti izabrana više od jednom u beneficijama zaposlenog lica" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "Komponenta zarade {0} trenutno nije korišćena ni u jednoj strukturi zarade." + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "Komponentna zarade {0} mora biti vrste 'Prihod' kako bi mogla biti korišćena u knjizi beneficija zaposlenog lica" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "Detalj zarade" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "Detalji zarade" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "Očekivana zarada" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "Informacije o zaradi" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "Zarada isplaćena po" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "Isplata zarade zasnovana na načinu plaćanja" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "Isplata zarade putem automatskog elektronskog prenosa (ECS)" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "Opseg zarade" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "Registar zarada" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "Obračunski listić" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "Obračunski listić zasnovan na evidenciji vremena" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "ID obračunskog listića" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "Obračunski listić za odsustvo" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "Obračunski listić za zajam" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "Referenca obračunskog listića" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "Obračunski listić na osnovu evidencije vremena" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "Obračunski listić za {0} već postoji za zadate datume" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "Kreiranje obračunskog listića je u redu čekanja. Može potrajati nekoliko minuta" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "Obračunski listić nije pronađen." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "Obračunski listić zaposlenog lica {0} je već kreiran za ovaj period" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "Obračunski listić zaposlenog lica {0} je već kreiran za vremensku evidenciju {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "Podnošenje obračunskih listića je u redu čekanja. Može potrajati nekoliko minuta" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "Kreiranje obračunskog listića {0} nije uspelo za unos obračuna zarade {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "Kreiranje obračunskog listića {0} nije uspelo. Možete rešiti {1} i ponovo pokušati sa {0}." + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "Obračunski listići" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "Kreirani obračunski listići" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "Podneti obračunski listići" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "Obračunski listići za zaposlena lica {} već postoje i neće biti obrađeni u ovom obračunu zarade." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "Obračunski listići su podneti za period od {0} do {1}" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "Struktura zarade" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "Dodela strukture zarade" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "Polje za dodelu strukture zarade" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "Dodela strukture zarade za zaposleno lice već postoji" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "Dodela strukture zarade nije pronađena za zaposleno lice {0} na datum {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "Nedostaje struktura zarade" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "Struktura zarade mora biti podneta pre podnošenja {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "Struktura zarade nije dodeljena zaposlenom licu {0} za datum {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "Struktura zarade {0} ne pripada kompaniji {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "Struktura zarade je uspešno ažurirana" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "Zadržana zarada" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "Ciklus zadržavanja zarade" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "Zadržana zarada {0} već postoji za zaposleno lice {1} za izabrani period" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "Zarada je već obračunata za period {0} i {1}, period zahteva za odsustvo ne može obuhvatiti ovaj opseg datuma." + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "Struktura zarade po osnovu prihoda i odbitaka." + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "Komponente zarade vrste penzioni fond, dodatni penzioni fond ili kredit iz penzionog fonda nisu podešene." + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "Komponenta zarade bi trebalo da bude deo strukture zarade." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "Imejlovi sa obračunskim listićima su stavljeni u red za slanje. Proverite {0} za status." + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "Odobren iznos" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "Odobren iznos (valuta kompanije)" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "Odobreni iznos ne može biti veći od zahtevanog iznosa u redu {0}." + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "Zakazano na" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "Postignut rezultat" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "Broj poena mora biti manji ili jednak 5" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "Rezultat" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "Pretraga poslova" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "Izaberite primenjive komponente za vrstu prekovremenog rada" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "Prvo izaberite krug intervjua" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "Prvo izaberite intervju" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "Izaberite mesec za storniranje odsustva bez naknade" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "Izaberite račun za isplatu da biste napravili bankarski unos" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "Izaberite učestalost obračuna zarada." + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "Izaberite obračunski period" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "Izaberite imovinu" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "Izaberite zahtev za radnu smenu" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "Izaberite uslove i odredbe" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "Izaberite korisnike" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "Izaberite zaposleno lice za isplatu akontacije." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "Izaberite zaposleno lice kome želite da dodelite odsustvo." + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "Izaberite zaposleno lice." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "Izaberite vrstu odsustva kao što je bolovanje, plaćeno odsustvo, slobodan dan itd." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "Izaberite datum nakon kojeg će ova dodela odsustva isteći." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "Izaberite datum nakon kojeg će ova dodela odsustva biti važeća." + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "Izaberite datum završetka za Vaš zahtev za odsustvo." + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "Izaberite komponente zarade čiji će zbir iz obračunskog listića biti korišćen za obračuna satnice prekovremenog rada." + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "Izaberite datum početka za Vaš zahtev za odsustvo." + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "Izaberite ovu opciju ukoliko želite da se dodela smene automatski kreira neograničeno." + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "Izaberite vrstu odsustva za koju zaposleno lice želi da aplicira, kao što je bolovanje, plaćeno odsustvo, slobodan dan, itd." + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "Izaberite odobravaoca odsustva, tj. osobu koja odobrava ili odbija Vaše zahteve za odsustvo." + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "Samoprocena" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "Samoprocena na čekanju: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "Ocena samoprocene" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "Samoevaluacija" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "Samostalno učenje" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "Samoodobravanje zahteva za troškove nije dozvoljeno" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "Samoodobravanje odsustva nije dozvoljeno" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "Seminar" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "Pošalji imejlove u" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "Pošalji izlazni upitnik" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "Pošalji izlazne upitnike" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "Pošalji podsetnik za povratnu informaciju o intervjuu" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "Pošalji podsetnik za intervju" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "Pošalji obaveštenje o odsustvu" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "Kopija pošiljaoca" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "Slanje nije uspelo zbog nedostajućih podataka o imejlu za zaposleno lice: {1}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "Uspešno poslato: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "Sep" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "Aktivnosti vezane za prestanak radnog odnosa" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "Prestanak radnog odnosa počinje" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "Detalji održavanja" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "Trošak održavanja" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "Postavite \"Početna godina\" i \"Završna godina\" na 0 ukoliko ne želite donju i gornju granicu." + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "Postavite detalje dodeljivanja" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "Postavite detalje odsustva" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "Postavite datum prestanka radnog odnosa za zaposleno lice: {0}" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "Postavite filtere za pretragu zaposlenih lica" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "Postavite početna stanja za zarade i poreze od prethodnog poslodavca" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "Postavite opcione filtere za pretragu zaposlenih lica u listi za ocenjivanje" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "Postavite podrazumevani račun za {0} {1}" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "Postavite učestalost podsetnika za praznike" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "Postavite koje će se osobine ažurirati u osnovnom zapisu zaposlenog lica prilikom podnošenja unapređenja" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "Postavite status na {0} ukoliko je neophodno." + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "Postavite {0} za izabrana zaposlena lica" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "Podešavanja nedostaju" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "Poravnajte protiv akontacije" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "Poravnajte sve obaveze i potraživanja pre podnošenja" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "Dokument je sa korisnikom {0} sa dozvolom za 'Podnesi'" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Smena i prisustvo" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "Stvarni kraj smene" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "Vreme stvarnog kraja smene" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "Stvarni početak smene" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "Vreme stvarnog početka smene" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "Dodela smene" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "Detalji dodele smene" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "Istorija dodele smene" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "Alat za dodelu smene" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "Dodela smene: {0} je kreirana za zaposleno lice: {1}" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "Dodele smena kreirane za raspored između {0} i {1} putem pozadinskog zadatka" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "Smensko prisustvo" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "Detalji smene" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "Kraj smene" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "Vreme kraja smene" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "Lokacija smene" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "Zahtev za radnu smenu" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "Odobravalac zahteva za radnu smenu" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "Filteri zahteva za radnu smenu" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "Zahtevi za radnu smenu koji se završavaju pre ovog datuma biće isključeni." + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "Zahtevi za radnu smenu koji počinju nakon ovog datuma biće isključeni." + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "Raspored smene" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "Dodela rasporeda smene" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "Podešavanje smene" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "Početak smene" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "Vreme početka smene" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "Status smene" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "Vremenski okvir smene" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "Alati za smenu" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "Vrsta smene" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "Dodele smena za {0} nakon {1} su već kreirane. Molimo Vas da promenite datum {2} na kasniji od {3} {4}" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "Smena je uspešno ažurirana na {0}." + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Smene" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "Prikaži zaposleno lice" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "Prikaži stanje odsustva u obračunskom listiću" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "Prikaži odsustva svih članova odeljenja u kalendaru" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "Prikaži obračunski listić" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "Prikazano" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "Bolovanje" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "Jedna dodela" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "Veština" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "Procena veština" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "Naziv veštine" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "Veštine" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "Preskoči automatsko evidentiranje prisustva" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "Preskače se dodela strukture zarade za sledeća zaposlena lica, jer zapis o dodeli strukture zarade već postoji za njih. {0}" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "Izvor i ocena" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "Izvorna i ciljana smena ne mogu biti iste" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "Sponzorisani iznos" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "Detalji osoblja" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "Plan osoblja" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "Detalji plana osoblja" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "Plan osoblja {0} već postoji za poziciju {1}" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "Standardni koeficijent" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "Standardni iznos poreskog oslobođenja" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "Standardni radni časovi" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "Početni i krajnji datumi nisu važeći u obračunskom periodu, nije moguće izračunati {0}." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "Datum početka ne može biti veći od datuma završetka" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "Datum početka ne može biti veći od datuma završetka." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "Datum početka: {0}" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "Vreme početka i vreme završetka ne mogu biti isti." + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "Statistička komponenta" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "Status za drugu polovinu" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "Akcionarske opcije" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "Zabranite korisnicima da prave zahtev za odsustvo na sledeće dane." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "Isključivo na osnovu vrste zapisa u zapisu o prisustvu" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "Strukture su uspešno dodeljene" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "Datum podnošenja" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "Podnošenje neuspešno" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "Podnošenje {0} pre {1} nije dozvoljeno" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "Podnesi povratnu informaciju" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "Podnesi sada" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "Podnesi obračun prekovremenog rada" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "Podnesi dokaz" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "Podnesi obračunski listić" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "Podnesite zahtev za odsustvo kako biste potvrdili." + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "Podnesite ovo da biste kreirali zapis o zaposlenom licu" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "Podneto putem unosa obračuna zarada" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "Podnošenje obračunskih listića i kreiranje naloga knjiženja..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "Podnošenje obračunskih listića..." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "Podružnice su već planirale {1} nepopunjenih radnih mesta sa budžetom od {2}. Plan osoblja za {0} treba da raspodeli više nepopunjenih radnih mesta i veći budžet za {3} nego što je planirano za njihove podružnice" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "Uspešno je kreiran {0} za zaposlena lica:" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "Uspešno {0} {1} za sledeća zaposlena lica:" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "Zbir svih prethodnih razreda" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "Zbir iznosa beneficija {0} prelazi maksimalno ograničenje od {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "Sažeti prikaz" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "Sinhronizuj {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "Greška sintakse" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "Greška sintakse u uslovu: {0} u poreskom razredu poreza na dohodak" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "Uzmi tačno broj završenih godina" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "Porezi i beneficije" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "Porez odbijen do danas" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "Kategorija poreskog oslobođenja" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "Izjava o poreskom oslobođenju" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "Dokazi o poreskom oslobođenju" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "Postavke poreza" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "Porez na dodatnu zaradu" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "Porez na fleksibilne beneficije" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "Oporezivi prihodi do danas" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "Prag oporezivog prihoda za oslobođenje od poreza" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "Oporezivi platni razred" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "Oporezivi platni razredi" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "Porezi i naknade" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "Porezi i naknade na porez na dohodak" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "Taksi" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "Timske akontacije" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "Timski zahtevi" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "Timska odsustva" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "Timski zahtevi" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "Ažuriranja tima" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "Radni ciklus" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "Hvala Vam na prijavljivanju." + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "Valuta za {0} mora biti ista kao podrazumevana valuta kompanije. Molimo Vas da izaberete drugi račun." + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "Datum na koji će komponenta zarade sa iznosom biti obračunata kao prihod/odbitak u obračunskom listiću. " + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "Dan u mesecu kada se odsustva dodeljuju" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "Dani za koje tražite odsustvo su praznici. Nema potrebe da tražite odsustvo." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "Dani između {0} i {1} nisu važeći praznici." + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "Prvi odobravalac na listi biće postavljen kao podrazumevani odobravalac." + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "Deo dnevne zarade po odsustvu treba da bude između 0 i 1" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "Deo dnevnice koja se isplaćuje za pola radnog dana" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "Metodologija za obračun ovog izveštaja je zasnovana na {0}. Molimo Vas da podesite {0} u {1}." + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "Metodologija za obračun ovog izveštaja je zasnovana na {0}. Molimo Vas da podesite {0} u {1}." + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "Obračunski listić koji se dostavlja zaposlenom licu biće zaštićen lozinkom, a lozinka će biti generisana u skladu sa politikom lozinki." + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "Vreme nakon početka smene kada se prijava računa sa zakašnjenjem (u minutima)." + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "Vreme pre kraja smene kada se odjava računa kao raniji odlazak (u minutima)." + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "Vreme početka smene u kojem se prijava zaposlenog lica računa kao prisustvo." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "Teorija" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "Ovaj mesec ima više praznika nego radnih dana." + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "Nema razlika u zaostatku između postojećih i novih komponenata strukture zarade." + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "Nema nepopunjenih radnih mesta prema planu osoblja {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "Struktura zarade nije dodeljena za {0}. Prvo morate dodeliti strukturu zarade." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "Ne postoji zaposleno lice sa strukturom zarade: {0}. Dodeli {1} zaposlenom licu da bi mogao da pregleda obračunski listić" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "Ova odsustva su praznici koje kompanija dozvoljava, ali je njihovo korišćenje opciono za zaposleno lice." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "Ova radnja će onemogućiti izmenu povezane povratne informacije o ocenjivanju/ciljevima." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "Ova prijava je van dodeljenog radnog vremena i neće biti uzeta u obzir kao prisustvo. Ukoliko je smena dodeljena, prilagodite vremenski okvir i ponovo učitajte smenu." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "Ovo kompenzaciono odsustvo biće primenjivo od {0}." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "Ovo zaposleno lice već ima evidentiran unos sa istim vremenom.{0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "Greška može biti uzrokovana neispravnom formulom ili uslovom." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "Greška može biti uzrokovana neispravnom sintaksom." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "Greška može biti uzrokovana nedostajućim ili obrisanim poljem." + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "Ovo polje omogućava da postavite maksimalan broj uzastopnih dana odsustva koje zaposleno lice može da zatraži." + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "Ovo polje omogućava da postavite maksimalan broj dana odsustva koji se mogu dodeliti godišnje za ovu vrstu odsustva prilikom kreiranja politike odsustva" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "Ovo se zasniva na evidenciji prisustva ovog zaposlenog lica" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "Ova metoda je namenjena samo za razvojni režim" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "Ovo će izmeniti poresku komponentu {0} u obračunskom listiću i porez neće biti obračunat na osnovu poreskih razreda poreza na dohodak" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "Ovo će podneti obračunski listić i kreirati nalog knjiženja obračunatih obaveza. Da li želite da nastavite?" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "Vreme nakon završetka smene tokom kog se odjava i dalje smatra kao prisustvo." + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "Vreme potrebno za popunjavanje otvorenih radnih mesta" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "Vreme za popunu" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "Vremenski okviri" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "Detalji evidencije vremena" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "Vremenski raspored" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "Do iznosa" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "Datum završetka treba da bude nakon datuma početka" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "Za korisnika" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "Da biste dozvolili ovo, omogućite {0} u okviru {1}." + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "Da biste podneli zahtev za polovinu radnog dana označite opciju 'Polovina radnog dana' i izaberite datum polovine radnog dana" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "Datum završetka ne može biti jednak ili manji od datuma početka" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "Datum završetka ne može biti veći od datuma prestanka radnog odnosa." + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "Datum završetka ne može biti manji od datuma početka" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "Datum završetka ne može biti veći od datuma prestanka radnog odnosa" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "Datum završetka ne može biti pre datuma početka" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "Da biste izmenili komponentu zarade sa poreskom komponentom, omogućite opciju {0}" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "Završna godina" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "Završna godina ne može biti manja od početne godine" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "Danas {0} slavi rođendan 🎉" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "Danas je {0} u našoj kompaniji! 🎉" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "Danas je ispunjeno {1} {2} od strane {0} u našoj kompaniji! 🎉" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "Ukupno izostanaka" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "Ukupno obračunato" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "Ukupan stvarni iznos" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "Ukupan iznos akontacije" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "Ukupan iznos akontacije (valuta kompanije)" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "Ukupno dodeljenih dana odsustva" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "Ukupno dodeljenih dana odsustva" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "Ukupan refundirani iznos" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "Ukupan iznos ne može biti nula" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "Ukupan trošak povraćaja imovine" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "Ukupan iznos naknade" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "Ukupan iznos naknade (valuta kompanije)" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "Ukupan broj dana bez naknade" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "Ukupan prijavljeni iznos" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "Ukupan iznos odbitka" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "Ukupan iznos odbitka (valuta kompanije)" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "Ukupan broj ranijih izlazaka" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "Ukupan prihod" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "Ukupni prihodi" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "Ukupno procenjeni budžet" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "Ukupan procenjeni trošak" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "Ukupan iznos kursnih razlika" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "Ukupan iznos oslobođenja" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "Ukupan iznos za nadoknadu troškova (putem zahteva za nadoknadu troškova)" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "Ukupan iznos za nadoknadu troškova (putem zahteva za nadoknadu troškova)" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "Ukupna ocena cilja" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "Ukupna bruto zarada" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "Ukupno časova (T)" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "Ukupno poreza na dohodak" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "Ukupan iznos kamate" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "Ukupan broj kašnjenja" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "Ukupan broj dana odsustva" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "Ukupan broj odsustva" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "Ukupan broj odsustva ({0})" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "Ukupno dodeljenih odsustva" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "Ukupno isplaćenih naknada za neiskorišćena odsustva" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "Ukupna otplata zajma" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "Ukupna neto zarada" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "Ukupan broj nefakturisanih časova" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "Ukupno trajanje prekovremenog rada" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "Ukupan iznos za isplatu" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "Ukupna uplata" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "Ukupna isplata" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "Ukupan broj prisustva" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "Ukupan iznos glavnice" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "Ukupan iznos potraživanja" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "Ukupan broj prestanka radnog odnosa" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "Ukupan odobreni iznos" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "Ukupan odobreni iznos (valuta kompanije)" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "Ukupan broj poena" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "Ukupan broj samoprocene" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "Ukupan iznos akontacije ne može biti veći od ukupno odobrenog iznosa" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "Ukupno dodeljeni dani odsustva premašuju maksimalno dozvoljeni broj za vrstu odsustva {0} za zaposleno lice {1} u tom periodu" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "Ukupno dodeljenih odsustva {0} ne može biti manje od već odobrenih odsustva {1} za period" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "Ukupno slovima" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "Ukupno slovima (valuta kompanije)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "Ukupan broj dodeljenih odsustva ne može premašiti godišnju dodelu od {0}." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "Ukupan broj dodeljenih odsustva je obavezan za vrstu odsustva {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "Zbir svih beneficija zaposlenog lica ne može biti veći od maksimalnog iznosa beneficije {0}" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Ukupan iznos zarade evidentiran po ovoj komponenti za ovo zaposleno lice, od početka godine (obračunskog perioda ili fiskalne godine) do datuma završetka tekućeg obračunskog listića." + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "Ukupan iznos zarade za ovo zaposleno lice, obračunat od početka meseca do datuma završetka tekućeg obračunskog listića." + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Ukupan iznos zarade za ovo zaposleno lice, obračunata od početka godine (obračunskog perioda ili fiskalne godine) do datuma završetka tekućeg obračunskog listića." + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "Ukupan ponder za sve {0} mora iznositi 100. Trenutno je {1}%" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "Ukupan broj radnih dana godišnje" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "Ukupno radnih časova ne sme biti veće od maksimalnih radnih časova {0}" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "Voz" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "Imejl trenera" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "Ime trenera" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "Obuka" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "Datum obuke" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "Događaj obuke" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "Zaposleno lice na događaju obuke" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "Događaj obuke:" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "Događaji obuke" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "Povratna informacija o obuci" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "Program obuke" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "Rezultat obuke" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "Rezultat obuke zaposlenog lica" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "Obuke" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "Obuke (ove nedelje)" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "Transakcije ne mogu biti kreirane za neaktivno zaposleno lice {0}." + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "Datum premeštaja" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "Putovanje" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "Potrebna akontacija za putovanje" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "Putovanje iz" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "Finansiranje putovanja" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "Plan puta" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "Zahtev za putovanje" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "Troškovi zahteva za putovanje" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "Putovanje ka" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "Vrsta putovanja" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "Vrsta dokaza" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "Nije moguće odrediti Vašu lokaciju" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "Poništi arhiviranje" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "Neiskorišćeni iznos" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "Neiskorišćeni iznos (valuta kompanije)" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "Razmatranje" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "Poništi povezivanje uplate" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "Evidencija prisustva nije povezana sa zapisom o prisustvu: {}" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "Nepovezani zapisi" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "Neoznačena prisustva za dane" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "Pronađene neoznačene evidencije prijave" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "Neoznačeni dani" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "Neoznačeno zaglavlje zaposlenih lica" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "Neoznačena zaposlena lica HTML" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "Neoznačeni dani" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "Neisplaćeni obračun" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "Neplaćena nadoknada troškova" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "Nije poravnato" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "Transakcije koje nisu poravnate" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "Evaluacije koje nisu podnete" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "Časovi koji nisu praćeni" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "Časovi koji nisu praćeni (U)" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "Neiskorišćeni dani odsustva" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "Predstojeći praznici" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "Podsetnik o predstojećim praznicima" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "Predstojeće smene" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "Ažuriraj trošak" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "Ažuriraj kandidata za posao" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "Ažuriraj napredak" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "Ažuriraj odgovor" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "Ažuriraj strukture zarade" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "Ažuriraj status" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "Ažuriraj porez" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "Status je ažuriran sa {0} na {1} za datum {2} u evidenciji prisustva {3}" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "Ažuriran status kandidata za posao na {0}" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "Ažuriran status ponude za posao {0} za povezanog kandidata za posao sa {1} na {2}" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "Ažuriran status povezanog kandidata za posao sa {0} na {1}" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "Otpremi evidenciju prisustva" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "Otpremi HTML" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "Otpremi slike ili dokumenta" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "Otpremanje..." + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "Gornji raspon" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "Iskorišćeni dani odsustva" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "Iskorišćeni dani odsustva" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "Nepopunjena radna mesta" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "Nepopunjena radna mesta ne mogu biti manja od otvorenih pozicija" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "Nepopunjena radna mesta su popunjena" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "Validiraj prisustvo" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "Proveravanje prisustva zaposlenih lica..." + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "Vrednost / Opis" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "Nedostaje vrednost" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "Promenjiva" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "Promenjiva na osnovu oporezive zarade" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "Vegetarijansko" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "Troškovi vozila" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "Evidencija o korišćenju vozila" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "Servis vozila" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "Stavka servisa vozila" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "Prikaži ciljeve" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "Prikaži istoriju odsustva" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "Prikaži obračunske listiće" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "Ljubičasta" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "UPOZORENJE: Modul za upravljanje zajmovima je odvojen od ERPNext sistema." + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "Upozorenje: Nedovoljan broj dana odsustva za vrstu odsustva {0} u ovoj raspodeli." + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "Upozorenje: Nedovoljan broj dana odsustva za vrstu odsustva {0}." + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "Upozorenje: Zahtev za odsustvo sadrži sledeće blokirane datume" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "Upozorenje: {0} već ima aktivnu dodelu smene {1} za neke ili sve odabrane datume." + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "Prikaz na veb-sajtu" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "Koeficijent za vikend" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "Ponder (%)" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "Kada je podešeno kao 'Neaktivan', zaposlena lica sa preklapajućim smenama neće biti isključena." + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "Dok se raspodela za kompenzaciona odsustva automatski kreira ili ažurira prilikom podnošenja zahteva za kompenzaciono odsustvo." + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "Zašto je ovaj kandidat kvalifikovan za ovu poziciju?" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "Zadržano" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "Godišnjice rada " + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "Podsetnik na godišnjicu rada" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "Datum završetka rada" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "Metod izračunavanja radnog iskustva" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "Datum početka rada" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "Rad od kuće" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "Poslovne preporuke" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "Rezime rada za {0}" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "Rad tokom praznika" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "Radni dani" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "Radni dani i časovi" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "Obračun radnih časova je zasnovan na" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "Prag radnih časova za izostanke" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "Prag radnih časova za polovinu radnog dana" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "Radni časovi ispod kojih se označava izostanak. (nula za onemogućavanje)" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "Radni časovi ispod koji se označava polovina radnog dana. (nula da onemogućite)" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "Radionica" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "Za tekuću godinu" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "Za tekuću godinu (valuta kompanije)" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "Godišnji iznos" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "Godišnja beneficija" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "Da, nastavi" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "Nemate dozvolu da odobravate odsustva tokom blokiranih datuma" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "Niste bili prisutni tokom svih dana u periodu za koji ste podneli zahtev za kompenzaciono odsustvo" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "Ne možete definisati više razreda ukoliko već postoji razred bez donjih i gornjih granica." + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "Ne možete tražiti svoju podrazumevanu smenu: {0}" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "Možete planirati najviše do {0} nepopunjenih radnih mesta i budžet {1} za {2} u skladu sa planom osoblja {3} za matičnu kompaniju {4}." + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "Možete podneti naknadu za neiskorišćeno odsustvo samo uz važeći iznos uplate" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "Možete otpremiti isključivo JPG, PNG, PDF, TXT ili Majkrosoft dokumenta." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "Nije moguće stornirati više od ukupnog broja dana odsustva bez naknade {0}. Već ste stornirali {1} dana za ovo zaposleno lice." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "Nemate dozvolu da izvršite ovu radnju" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "Nemate akontacije" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "Nemate dodeljene dane odsustva" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "Nemate obaveštenja" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "Nemate zahteva" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "Nemate predstojeće praznike" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "Nemate predstojeće smene" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "Možete dodati dodatne informacije, ukoliko postoje, i poslati ponudu." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "Morate biti unutar {0} metara od lokacije smene da biste se prijavili." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "Bili ste prisutni samo polovinu radnog dana {}. Nije moguće podneti zahtev za kompenzaciono odsustvo za ceo dan" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "Vaš intervju je pomeren sa {0} {1} - {2} na {3} {4} - {5}" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "Vaša lozinka je istekla. Molimo Vas da je resetujete kako biste nastavili" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "aktivno" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "zasnovano na" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "otkazivanje" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "otkazano" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "kreiraj/podnesi" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "kreirano" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "petarpetrovic@mail.com" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "modify_half_day_status" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "ili za odeljenje zaposlenog lica: {0}" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "obrada" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "obrađeno" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "rezultat" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "rezultati" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "pregled" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "pregledi" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "podneto" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "putem sinhronizacije komponente zarade" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "godina" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "godine" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "{0} i {1}" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "{0} i još {1}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "{0} : {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "{0}
    Ova greška može biti prouzrokovana nedostajućim ili obrisanim poljima." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "{0} evaluacija još uvek nije podneto" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "{0} polje" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "{0} nedostaje" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "{0} Red #{1}: Formula je postavljena, ali je {2} onemogućeno za komponentu zarade {3}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "{0} Red#{1}: {2} mora biti omogućeno da bi se formula uzela u obzir." + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "{0} nepročitano" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} je već dodeljeno zaposlenom licu {1} za period od {2} do {3}" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0} već postoji za zaposleno lice {1} i period {2}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "{0} već ima aktivnu dodelu smene {1} za neke ili sve od ovih datuma." + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "{0} je primenjivo nakon {1} radnih dana" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "{0} stanje" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "Ispunjeno je {1} {2} od strane {0}" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "{0} je uspešno kreirano!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "{0} je uspešno obrisano!" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "{0} nije uspelo!" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "{0} ima omogućeno {1}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "{0} je obračunska komponenta i biće evidentirana kao isplata u knjizi beneficija zaposlenog lica" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "{0} je nevažeći status prisustva." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "{0} nije praznik." + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "{0} nema dozvolu da podnese povratnu informaciju za intervju: {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} se ne nalazi na listi opcionih praznika" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "{0} odsustva uspešno dodeljena" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "{0} dana odsustva iz raspodele za vrstu odsustva {1} je isteklo i biće obrađeno tokom sledećeg zakazanog procesa. Preporučuje se da ih sada označite kao istekle pre nego što kreirate nove dodele politike odsustva." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "{0} odsustva su ručno dodeljena od strane {1} na {2}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} mora biti podneto" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "{0} od {1} završeno" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "{0} uspešno!" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "{0} uspešno!" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "{0} za {1} zaposlena lica?" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "{0} uspešno ažurirano!" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "{0} nepopunjenih radnih mesta i budžet od {1} za {2} su već planirani za podružnice za {3}. Možete planirati najviše {4} nepopunjenih radnih mesta i budžet od {5} u skladu sa planom osoblja {6} za matičnu kompaniju {3}." + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "{0} će biti ažurirano za sledeće strukture zarade: {1}." + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "{0} {1} {2}?" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "{0}. Proverite evidenciju grešaka za više detalja." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}: Imejl zaposlenog lica nije pronađen, zbog čega imejl nije ni poslat" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "{0}: Od {0} vrste {1}" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "{0}d" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "{} " + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "{} prihvaćeno" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "{} aktivno" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "{} nacrt" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "{} neiskorišćeno" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "{} {} otvoreno za ovu poziciju." + diff --git a/apps/erpnext/src/hrms/hrms/locale/sv.po b/apps/erpnext/src/hrms/hrms/locale/sv.po new file mode 100644 index 000000000..35e8dec97 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/sv.po @@ -0,0 +1,11517 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Swedish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: sv-SE\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: sv_SE\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr " Lönespecifikationer som börjar gälla från och med detta datum kommer att inkluderas vid beräkning av efterskott" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr " Ta bort länk till betalning vid annullering av förskott" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "\"Från Datum\" kan inte vara senare än eller lika med \"Till Datum\"" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "% Användning (B + NB) / T" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "% Användning (B / T)" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "Personal och tidstämpel erfordras." + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") för {0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "...Hämtar Personal" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr " " + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr " " + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr " " + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "Basbelopp är inte angiven för följande personal: {0}" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "Exempel: SAL- {first_name} - {date_of_birth.year}
    Detta kommer att skapa lösenord som SAL-Jane-1972" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "Totalt Tilldelad Frånvaro är fler dagar än antal dagar i tilldelning period" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "

    Hjälp

    \n\n" +"

    Anmärkningar:

    \n\n" +"
      \n" +"
    1. Använd fält bas för att använda grundlön för personal
    2. \n" +"
    3. Använd löne komponent förkortningar i villkor och formler. BS = Grundlön
    4. \n" +"
    5. Använd fält namn för personal detaljer i villkor och formler. Anställning Typ = employment_typeBranch = branch
    6. \n" +"
    7. Använd fält namn från lönespecifikation i villkor och formler. Betalning Dagar = payment_daysLedighet utan lön = leave_without_pay
    8. \n" +"
    9. Belopp kan också anges direkt baserat på villkor. Se exempel 3
    \n\n" +"

    Exempel

    \n" +"
      \n" +"
    1. Beräkna grundlön baserat på bas\n" +"
      Villkor: bas < 10 000
      \n" +"
      Formel: bas * .2
    2. \n" +"
    3. Beräknar HRA baserat på grundlönBS\n" +"
      Villkor: BS > 2000
      \n" +"
      Formel: BS * .1
    4. \n" +"
    5. Beräknar TDS baserat på Anställning Typemployment_type\n" +"
      Villkor: employment_type==\"Intern\"
      \n" +"
      Belopp: 1000
    6. \n" +"
    " + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "

    Villkor Exempel

    \n" +"
      \n" +"
    1. Tillämpa skatt för personal född mellan 1937-12-31 och 1958-01-01 (personal i åldrarna 60 till 80)
      \n" +"Villkor: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Tillämpa skatt efter personal kön
      \n" +"Villkor: gender==\"Man\"

    3. \n" +"
    4. Tillämpa skatt efter löne komponent
      \n" +"Villkor: bas > 10 000
    " + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "
    Halvdag Personal
    " + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "
    Ej Angiven Personal
    " + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "
    " + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "Transaktioner & Rapporter" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Inställningar & Rapporter" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "
    {0}{1}
    " + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "Jobbrekvisition för {0} efterfrågad av {1} finns redan: {2}" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "Vänlig påminnelse om ett viktigt datum för vårt team." + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "{0} finns mellan {1} och {2} (" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "Frånvarande" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "Frånvarande Dagar" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "Frånvarande Poster" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "Konto Nummer" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "Kontotyp ska anges som {0} för löneutbetalning konto {1}, ange och försök igen" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "Konto {0} stämmer inte överens med bolag {1}" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "Bokföring & Betalning" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "Bokföring Rapporter" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "Konto inte angiven för Lönekomponent {0}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "Upplupna" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "Upplupna Skulder" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "Beräkning Komponent" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "Beräkning Komponent kan endast anges för Lönekomponenter." + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "Beräkning Komponent kan endast anges för Flexibla Förmån Lönekomponenter med beräknade utbetalning metoder." + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "Beräkning Komponent måste anges för Flexibla Förmån Lönekomponenter med beräknade utbetalning metoder." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "Beräknad Journal Post för Löner från {0} till {1}" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "Periodisera och betala vid löneperiodens slut" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "Periodisera per cykel, betala endast vid anspråk" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "Ackumulerade Förmåner" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "Ackumulerad Resultat Rapport" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "Ackumulerad belopp {0} är lägre än utbetald belopp {1} för Förmån {2} i löneperiod {3}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "Åtgärd vid Godkännande" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "Aktivitet Namn" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "Faktiskt Belopp" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "Faktiska Uttagbara Dagar" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "Faktisk Övertid" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "Faktiska saldon är inte tillgängliga eftersom frånvaro ansökan sträcker sig över olika frånvaro tilldelningar. Du kan fortfarande ansöka om frånvaro som skulle kompenseras vid nästa tilldelning." + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr " Lägg till Veckodagar" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "Lägg till Personal Egenskap" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "Lägg till Kostnad" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "Lägg till Återkoppling" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "Lägg till Moms" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "Lägg till Detaljer" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "Lägg till oanvänd frånvaro från tidigare tilldelningar" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "Lägg till oanvänd frånvaro från tidigare frånvaro period tilldelning till denna tilldelning" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "La till skattkomponenter från lönekomponenter eftersom löneart inte hade någon skattkomponent." + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "La till till Detaljer" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "Extra Belopp" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "Extra Information" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "Extra Pension Fond" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "Extra Lön" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "Extra Lön" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "Extra Lön för hänvisning kan endast skapas mot Personal Hänvisning med status {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "Extra Lön för denna lönekomponent med {0} aktiverat finns redan för detta datum" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "Extra Lön: {0} finns redan för Lönekomponent: {1} för period {2} och {3}" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "Arrangör Adress" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "Justera Tilldelning" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "Justering Skapad" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "Justering Typ" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "Förskott" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "Förskott Konto erfordras. Ange Standard Personal Förskott Konto i Bolag Registret {0} och godkänn detta dokument." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "Förskott Konto {} valuta ska vara samma som lönevaluta för {}. Välj samma valuta för Förskott Konto" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "Förskott Betald (Bolag Valuta)" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "Avancerade Filter" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "All Valutaväxling resultat belopp för {0} har bokförts via {1}" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "Alla Mål" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "Alla Jobb" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "Alla tilldelade tillgångar ska returneras innan godkännade" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "Alla erfodrade uppgifter för att skapa Personal är inte klara ännu." + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "Tilldela Baserat På Frånvaro Princip" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "Tilldela Frånvaro" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "Tilldela frånvaro till {0} personal?" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "Tilldela" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "Tilldelad Belopp (Bolag Valuta)" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "Tilldelad Frånvaro" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "Tilldelat Via" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "Tilldelar Frånvaro" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "Tilldelning Datum" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "Tilldelning Detaljer" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "Tilldelning Förfallen!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "Tilldelning är högre än det högsta tillåtna {0} för frånvaro typ {1}" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "Tilldelning att Justera" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "Tilldelning hoppades över på grund av att årlig tilldelning angiven i frånvaro princip överskreds" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "Tilldelningen hoppades över på grund av att maximal gräns för frånvaro tilldelning angiven i frånvaro typ. Öka gräns och försök igen med misslyckad tilldelning." + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "Tillåt Personal Stämpling från Mobil App" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "Tillåt Uttag" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "Tillåt Geolokalisering Spårning" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "Tillåt Frånvaro Ansökan Efter (Arbetsdagar)" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "Tillåt Flera Skift Tilldelningar för Samma Datum" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "Tillåt Negativt Balans" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "Tillåt Övertilldelning" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "Tillåt Skatt Undantag" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "Tillåt Användare" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "Tillåt Användare" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "Tillåt Utstämpling efter Skift Sluttid (Minuter)" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "Tillåt anspråk på full ersättning" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "Tillåt följande användarna att godkänna Frånvaro Ansökningar för spärrade dagar." + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "Tillåt tilldelning av mer frånvaro än antal dagar under tilldelning period." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "Växlande poster som IN och UT under samma skift" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "Belopp Baserad på Formel" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "Belopp Baserad på Formel" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "Belopp som begärts via Utlägg" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "Förskott Belopp" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "Belopp betald mot denna uttag" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "Belopp planerad för avdrag via lön" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "Belopp ska inte vara lägre än noll" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "Utbetald Belopp" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "Efterskott dokument finns redan för {0} med löneart {1} för löneperiod {2}" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "Närvaro post är kopplad till denna stämpling. Avbryt närvaro innan du ändrar tid." + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "Årlig Tilldelning" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "Årlig Tilldelning Överskriden" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "Årslön" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "Årlig Beskattningsbart Belopp" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "Eventuella Detaljer" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "Eventuella andra anmärkningar, anmärkningsvärd ansträngning som borde skriva i" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "Tillämplig Inkomst Komponent" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "Tillämpliga Lönekomponenter" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "Tillämpligt vid Personal Introduktion" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "Sökande E-post Adress" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "Sökande Namn" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "Sökande Bedömning" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "Sökande till Jobb" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "Sökande Namn" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "Ansökan" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "Ansökan Status" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "Ansökan Period kan inte vara över två Tilldelning poster" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "Ansökan Period kan inte vara utanför Frånvaro Tilldelning tid" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "Ansökan Mottagen" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "Ansökan Mottagen:" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "Gäller Bolag" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "Tillämpa / Godkänn Frånvaro" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "Ansök Nu" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "Ansök för Allmän Helg" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "Ansök för Helg" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "Utnämning Datum" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "Utnämning Brev" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "Utnämning Brev Mall" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Utnämning Brev Innehåll" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "Utvärdering" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "Utvärdering Cykel" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "Utvärdering Mål" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "Utvärdering Nyckel Resultat Område" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "Utvärdering Länkning" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "Utvärdering Översikt" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "Utvärdering Mall" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "Utvärdering Mall Mål" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "Utvärdering Mall Saknas" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "Utvärdering Mall Benämning" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "Utvärdering Mall hittades inte för vissa beteckningar." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "Utvärdering skapande i kö. Det kan ta några minuter." + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "Utvärdering {0} finns redan för Personal {1} för denna Utvärdering Cykel eller överlappande period" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "Utvärdering {0} tillhör inte Personal {1}" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "Utvärderare" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "Utvärderare: {0}" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "Lärling" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "Godkännande" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "Godkännande Status" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "Godkännande Status måste vara \"Godkänd\" eller \"Avvisad\"" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "Godkänn" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "Godkänd" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "Godkännare" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "Godkännare" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "Apr" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "Är du säker på att du vill radera bifogad fil" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "Är du säker att du vill ta bort {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "Är du säker på att du vill e-posta valda lönespecifikationer?" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "Är du säker på att du vill avvisa Personal Hänvisning?" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "Efterskott" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "Efterskott Komponent" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "Efterskott komponent kan inte anges för lönekomponenter som baseras på beskattningsbar lön." + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "Efterskott Startdatum" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "Efterskott" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "Ankomst Datum och Tid" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "Enligt din tilldelade Löneart kan man inte ansöka om förmåner" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "Tillgång Återställning Kostnad för {0}: {1}" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "Tillgång Tilldelad" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "Tilldela Löneart till {0} personal?" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "Tilldela Skift" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "Tilldela Skift Schema" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "Tilldela Löneart" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "Tilldelar Löneart" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "Tilldelar Löneart..." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "Tilldelar Lönearter..." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "Tilldelning Baserad På" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "Tillhörande Lediga Jobb" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "Tillhörande Dokument" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "Tillhörande DocType" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "Åtminstone en intervju måste väljas." + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "Bifoga Verifikat" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "Försökt" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "Närvaro" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "Närvaro Kalender" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Närvaro" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "Närvaro Datum" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "Närvaro Från Datum" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "Närvaro Från Datum och Till Datum erfordras" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "Närvari ID" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "Närvaro Angiven" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "Närvaro Begäran" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "Närvaro Begäran Historik" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "Närvaro Inställningar" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "Närvaro Till Datum" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "Närvaro Uppdaterad" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "Närvaro Varning" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "Närvaro datum {0} får inte vara tidigare än personal {1} anslutning datum: {2}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "Närvaro för all personal under dessa kriterier är redan angiven." + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "Närvaro för personal {0} är redan angiven för överlappande skift {1}: {2}" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "Närvaro för personal {0} är redan angiven för följande datum {1}: {2}" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "Närvaro för personal {0} är redan angiven för följande datum: {1}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "Närvaro för följande datum kommer att hoppas över/skrivas över vid godkännande" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "Närvaro från {0} till {1} är redan angiven för personal {2}" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "Närvaro angiven för all personal mellan valda lönedatum." + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "Närvaro inte angiven för följande personal mellan valda lönedatum. Ange närvaro för att fortsätta. Se {0} för mer information." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "Närvaro angiven" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "Närvaro ej angiven för {0} som är helgdag." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "Närvaro ej angiven för {0} eftersom {1} är ledig." + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "Närvaro kommer att väljas automatiskt först efter detta datum." + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "Närvarobegäran ListVy" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "Deltagare" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "Avgångar" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "Aug" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "Automatiska Närvaro Inställningar" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "Automatiskt Frånvaro Uttag" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "Automatiskt Baserad på Mål Framsteg" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "Automatisk frånvaro tilldelning misslyckades för följande intjänad frånvaro: {0}. Kontrollera {1} för mer information." + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "Automatiskt hämtar alla tillgångar som tilldelats till vald personal, om några" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "Uppdatera automatiskt senaste synkronisering av Stämpling" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "Tillgänglig Frånvaro" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "Tillgänglig Frånvaro" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "Genomsnittlig Återkoppling Resultat" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "Genomsnittlig Betyg" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "Genomsnitt av Målsättning Resultat, Återkoppling Resultat och Självbedömning Resultat" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "Genomsnittlig bedömning av uppvisade färdigheter" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "Genomsnittlig Återkoppling Resultat" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "Genomsnittlig Användning" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "Genomsnittlig Användning(Endast Fakturerad) " + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "Inväntar Svar" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "Frånvaro Ansökan i efter hand är begränsad. Ange {} i {}" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "Bank Poster" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "Bank Överföring" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "Bas" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr " Bas & Variabel" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "Starta Instämpling före Skift Start Tid (Minuter)" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "Nedan är lista över kommande helgdagar för dig:" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "Förmån" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "Förmån Belopp" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "Förmån Detaljer" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "Förmån belopp för komponent {0} överstiger {1}" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "Förmån belopp för komponent {0} ska vara högre än 0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "Förmån belopp {0} för Lönekomponent {1} ska inte vara högre än högsta förmån belopp {2} som anges i {3}" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "Förmåner" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "Faktura Belopp" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "Fakturerade Timmar" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "Fakturerade Timmar" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "Varannan Månad" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "Födelsedag Påminnelse" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "Födelsedag Påminnelse 🎂" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "Födelsedag" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "Spärra Datum" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "Spärra Dagar" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "Spärra helger på viktiga dagar." + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "Bonus" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "Bonus Belopp" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "Bonus Betalning Datum" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "Bonus Betalning Datum kan inte vara tidigare datum" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "Branch: {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "Mass Tilldelningar" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "Mass Frånvaro Princip Tilldelning" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "Löneart Masstilldelning" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "Som standard beräknas slut resultat som genomsnitt av mål resultat, återkoppling resultat och själv bedömning resultat. Aktivera detta för att ange en annan formel" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "Årslön" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "Beräkna slutresultat baserat på formel" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "Beräkna Belöning Belopp Baserat På" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "Beräkna Löne Dagar Baserat På" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "Beräknad (i Dagar)" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "Samtal" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "Annullering i Kö" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "Kan inte ändra tid" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "Kan inte tilldela frånvaro utanför tilldelning period {0} - {1}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "Kan inte tilldela mer frånvaro på grund av högsta tillåtna frånvaro tilldelning av {0} i frånvaro tilldelning princip" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "Kan inte tilldela mer frånvaro på grund av högst tillåtna gräns för frånvaro av {0} i {1} frånvaro typ." + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "Kan inte bryta skift efter slutdatum" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "Kan inte bryta skift före startdatum" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "Kan inte avbryta Skift Tilldelning: {0} eftersom det är kopplad till Närvaro: {1}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "Kan inte avbryta Skift Tilldelning: {0} eftersom det är kopplad till Personal Stämpling: {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "Kan inte skapa Lönespecifikation för Personal som börjar efter Löneperiod" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "Kan inte skapa Lönespecifikation för Personal som slutat före Löneperiod" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "Kan inte skapa Jobb Sökande mot stängd Jobb Erbjudande" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "Kan inte skapa eller ändra transaktioner mot utvärderingscykel med status {0}." + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "Kan inte hitta aktiv Frånvaro Period" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "Kan inte ange närvaro för inaktiv personal {0}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "Kan inte godkänna. Närvaro är inte angiven för viss personal." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "Kan inte att uppdatera tilldelning för {0} efter godkännande" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "Kan inte uppdatera status för målgrupper" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "Vidarebefodra" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "Vidarebefordra Frånvaro" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "Oplanerad Frånvaro" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "Klagomål Orsak" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "Ändrade status från {0} till {1} och status för andra halvan till {2} via Närvaro Begäran" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "Ändrade status från {0} till {1} Närvaro Begäran" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "Ändrar '{0}' till {1}." + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "Om du ändrar Nyckel Resultat Område i överordnad mål kommer alla underordnade mål att anpassas till samma Nyckel Resultat Område" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "Se {1} för mer information" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "Se Fel Logg {0} för mer detaljer." + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "Stämpla In" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "Stämpla Ut" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "Kontrollera Lediga Jobb vid skapande av Jobb Erbjudande" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "Se {0} för mer detaljer." + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "Stämpla In" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "Incheckning Datum" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "Stämpla Ut" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "Utcheckning Datum" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "Stämpling Radie" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "Underordnade noder kan endast skapas under \"Grupp\" typ noder " + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "Välj hur timlön för övertid beräknas:\n" +"
    1. Fast Timlön: Fast, manuellt angiven timlön.
    2. \n" +"
    3. Lönekomponent Bserad:\n\n" +"(Summan av valda komponent belopp) ÷ (Betalda Dagar) ÷ (Standard Dagliga Timmar)
    " + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "Välj datum då dessa komponenter ska skapas som efterskott." + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "Förmån för" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "Begär Utlägg" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "Begärd" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "Begärd Belopp" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "Anspråk belopp för {0} överstiger maximal belopp som är berättigat till anspråk {1}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "Anspråk belopp för {0} ska vara högre än 0" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "Anspråk" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "Avklarad" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "Klicka på {0} för att ändra konfiguration och spara om lönespecifikation" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "Stängd Datum" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "Stängning Datum" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "Stänger:" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "Avslutande Anteckningar" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "Bolag Information" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "Kompensation Frånvaro Begäran" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "Kompensation Av" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "Avslutar Introduktion" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "Komponent Egenskaper och Referenser" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "Villkor & Formel" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "Villkor och Formel Hjälp" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "Villkor och Formel" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "Villkor och Formel variabel och exempel" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "Konferens" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "Bekräfta {0}" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "Inkludera Anstånd Period" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "Inkludera Närvaro under Helger" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "Inkludera Skatt Undantag Deklaration" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "Inkludera Ej Registrerad Närvaro som" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "Konsolidera Frånvaro Typer" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "Kontakt Nummer" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "Kopia av Inbjudan / Tillkännagivande" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "Kunde inte godkänna vissa Lönespecifikationer: {}" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "Kunde inte uppdatera mål" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "Kunde inte uppdatera mål" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "Borttagning av landfixtur misslyckades" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "Land Inställningar misslyckades" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "Bosättningsland" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "Utbildning" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "Personligt Brev" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "Skapa Extra Lön" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "Skapa Utvärdering" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "Skapa Intervju" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "Skapa Jobb Sökande" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "Skapa Jobb Erbjudande" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "Skapa Ny Personal" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "Skapa Övertid Specifikation för Berättigad Personal" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "Skapa Övertid Specifikationer" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "Skapa Lönespecifikation" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "Skapa Lönespecifikationer" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "Skapa Skift Efter" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "Skapa Utvärderingar" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "......Skapar Betalning Poster......" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "Skapar Lönespecifikationer..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "Skapar {0}..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "Skapad Datum" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "Skapande Misslyckades" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "Skapande av Löneart Tilldelning är i kö. Det kan ta några minuter." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "Skapande av {0} är i kö. Det kan ta några minuter." + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "Kriterier baserade på vilken Personal som ska Bedömas i Prestation Återkoppling och Själv Bedömning" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "Valuta" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "Valuta för vald Inkomst Skatt Tabell ska vara {0} istället för {1}" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "Aktuell Årslön (CTC)" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "Aktuell Antal" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "Aktuell Arbetsgivare " + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "Aktuell Yrke" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "Aktuell Månad Inkomst Skatt" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "Nuvarande Vägmätare värde ska vara hägre än senaste värde {0}" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "Aktuell Vägmätare Värde " + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "Aktuella Lediga Jobb" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "Aktuell Löneperiod" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "Aktuell Tabell" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "Aktuell Arbetsliv Erfarenhet" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "För närvarande finns det ingen {0} frånvaro period för detta datum för att skapa/uppdatera frånvaro tilldelning." + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "Anpassat Intervall" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "Utvärdering Cykel Namn" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "Cykler" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "Daglig Arbete Översikt" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "Daglig Arbete Översikt Grupp" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "Daglig Arbete Översikt Grupp Användare" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "Daglig Arbete Översikt Svar" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "Datum Intervall Överskriden" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "Datum Återkommer" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "Datum {0} upprepas i Övertid Detaljer" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "Datum & Anledning" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "Datum Baserade På" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "Dagar för vilka helgdagar är spärrade för denna avdelning." + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "Dagar att Ångra" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "Dagar att återföra måste vara högre än noll." + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "Debet Konto Nummer" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "Dec" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "Beslut Väntar" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "Deklarationer" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "Deklarerad Belopp" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Dra Full Skatt på vald Lön Datum" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "Dra av Skatt för ej godkänd skattebefrielse Verifikat" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "Avdrag" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "Efterskott Avdrag" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "Avdrag Rapporter" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "Avdrag från Lön" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "Avdrag" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "Avdrag före Skatt" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "Standard Belopp" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "Standard Bank / Kassa Konto kommer att uppdateras automatiskt i Lön Journal Post när detta läge är valt." + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "Standard Grund Lön" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "Standard Förskott Konto" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "Standard Utlägg Konto" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "Standard Löneutbetalning Konto" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "Standard Löneart" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "Standard Skift" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "Ta bort bilaga" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "Ta bort {0}" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "Avdelning Godkännare" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "Lediga Jobb per Avdelning" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "Avdelning {0} tillhör inte bolag: {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "Avdelning: {0}" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "Avgång Datum och Tid" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "Beroende av Lönedagar" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "Beror på Lönedagar" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "Beskrivning av ett Jobb Erbjudande" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "Befattning Färdighet" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "Befattning: {0}" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "Sponsor Detaljer (Namn, Plats)" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "Stämpling baserat på" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "Inaktivera {0} för {1} komponent för att förhindra att belopp dras två gånger, eftersom dess formel redan använder betalning dag baserad komponent." + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "Inaktivera {0} eller {1} för att fortsätta." + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "Inaktiverar Push-Notiser..." + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "Inkludera inte i Bokföring Poster" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "Inkludera inte i Totalt" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "Inkludera inte i Totalt" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "Vill du uppdatera Jobb Sökande {0} som {1} baseras på detta intervju resultat?" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "Dokument {0} misslyckades!" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "Inrikes" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "Kopiera Närvaro" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "Dubblett av Anspråk Upptäckt" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "Duplicera Jobb Ansökan" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "Duplicera Frånvaro Justering" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "Kopiera Överskriven Lön" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "Dubbla Lön Kvarhållning" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "FEL ({0}): {1}" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "Tidig Utstämpling" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "Tidig Utstämpling Efter" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "Tidig Utstämpling Anstånd Period" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "Tidiga Utstämplingar" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "Intjänad Frånvaro" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "Intjänad Ledighet Intervall" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "Intjänad Frånvaro Schema" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "Intjänad Frånvaro" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "Intjänad Frånvaro tilldelas enligt konfigurerade intervall via schemaläggare." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "Intjänad Frånvaro tilldelas automatiskt via schemaläggare baserat på årlig tilldelning som anges i Frånvaro Regel: {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "Intjänad Frånvaro är frånvaro som intjänats efter att Personal har arbetat på bolaget under viss tid. Om detta aktiveras kommer det att tilldela frånvaro på proportionell bas genom att automatiskt uppdatera tilldelningen av frånvaro för frånvaro av denna typ med intervaller som anges av intervall för intjänad frånvaro." + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "Inkomst" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "Inkomst Fordringar" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "Inkomst Komponent" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "Lönekomponent erfordras för Personal Hänvisning Bonus." + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "Inkomst" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "Inkomst & Avdrag" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "Redigera Kostnad Post" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "Redigera Kostnad Moms" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "Gäller Från(Datum)" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "Gäller Till(Datum)" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "Gäller Från" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "E-posta Lönespecifikationer till Personal" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "E-posta Lönespecifikationer" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "E-post Skickad Till" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "Skickar Lönespecifikation baserat på angiven e-post adress i Personal Inställningar" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "Bank Konto Nummer" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "Förskott Konto" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "Förskott Saldo" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "Förskott Översikt" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "Analys" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "Närvaro Verktyg" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "Förmån Ansökan" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "Förmån Ansökan Detalj" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "Förmån Anspråk" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "Personal Förmån Detaljer" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "Personal Förmån Register" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "Förmåner" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "Födelsedag" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "Introduktion Aktivitet" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "Stämpling" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "Stämpling Historik" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "Resultat Enhet" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "Detaljer" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "E-post" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "Personal Avgång Inställningar" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "Avgångar" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "Återkoppling Kriterier" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "Återkoppling Bedömning" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "Kvalificering" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "Klagomål" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "Sjukförsäkring" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "Tid Användning Baserat på Tidrapport" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "Bild" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "Motivation" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "Information" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "Information" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "Arbetsliv" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "Frånvaro Saldo" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "Frånvaro Saldo Översikt" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "Personal Lån" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "Namngivning Efter" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "Introduktion" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "Introduktion Mall" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "Introduktion: {0} finns redan för Jobb Sökande: {1}" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "Andra Intäkter" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "Prestation Återkoppling" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "Personal Befordran" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "Befordran Detaljer" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "Personal Befordran kan inte godkännas före Befodran Datum" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "Egenskap Historik" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "Referens" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "Hänvisning {0} finns redan för e-post: {1}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "Personal Hänvisning {0} är inte tillämplig för hänvisning bonus." + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "Referens" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "Ansvarig Personal " + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "Personal Behållen" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "Avgång" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "Avgång Mall" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "Personal Inställningar" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "Färdighet" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "Färdighet Mapp" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "Färdigheter" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "Status" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "Skatt Undantag Kategori" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "Skatt Undantag Deklaration" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "Skatt Undantag Deklaration Kategori" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "Skatt Undantag Verifikat Inlämning" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "Skatt Undantag Verifikat Godkännande Detalj" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "Skatt Undantag Underkategori" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "Utbildning" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "Personal Överföring" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "Överföring Detalj" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "Överföring Detaljer" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "Överföring kan inte godkännas före Överföring Datum" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "Personal Förskott Konto {0} ska vara av typ {1}." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "Personal kan namnges med Personal ID, om det finns, eller via Namngivning Serie. Välj preferens här." + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "Personal Namn" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "Personal poster skapas med valda alternativ" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "Personal angavs som Frånvarande på grund av saknade stämplingar." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "Personal angavs Frånvarande för att inte ha uppfyllt arbetstid tröskel." + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "Personal angiven som Frånvarande för andra halvan på grund av uteblivna stämplingar." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "Personal {0} : {1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "Personal {0} har redan Närvaro Begäran {1} som överlappar med denna period" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "Personal {0} har redan aktivt Skift {1}: {2} som överlappar under denna period." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "Personal {0} har redan skickat in ansökan {1} för Löne Period {2}" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "Personal {0} har redan ansökt om Skift {1}: {2} som överlappar under denna period" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "Personal {0} har redan ansökt om {1} mellan {2} och {3}: {4}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "{0} har redan ansökt om förmån \"{1}\" för {2} ({3}).
    För att förhindra överbetalningar tillåts endast en ansökan per förmånstyp i varje lönecykel." + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "Personal {0} är inte aktiv eller finns inte" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "Personal {0} är Ledig {1}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "Personal {0} hittades inte i Utbildning Händelse Deltagare." + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "Personal {0} halvdag {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "Personal {0} som avskedades {1} måste anges som 'Slutat'" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "Personal: {0} måste arbeta minst {1} år för dricks" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "Personal HTML" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "Helg Personal" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "Personal kan inte ge återkoppling till sig själva. Använd {0} istället: {1}" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "Halvdag Personal HTML" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "Personal kommer att missa frånvaro påminnelser från {} till {}.
    Vill du fortsätta med denna ändring?" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "Personal utan Återkoppling: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "Personal utan Mål: {0}" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "Helg Personal" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "Personal Typ" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "Aktivera Automatisk Närvaro" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "Aktivera Tidig Utstämpling Val" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "Aktivera Sen Instämpling Val" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "Aktivera Push-Notiser" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "Aktivera detta för att använda specifik multiplikator för helgdagar. Om inte aktiverad används standard multiplikator istället." + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "Aktivera detta för att använda specifik multiplikator för helger. Om inte aktiverad används standard multiplikator istället." + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "Aktiverad endast för Personal Förmån Komponenter från Löneart Tilldelning" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "Aktiverar Push-Notiser..." + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "Uttag" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "Uttagbar Belopp" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "Uttag Dagar" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "Uttag Dagar får inte överstiga {0} {1} enligt Frånvaro Typ Inställningar" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "Uttag Gräns Tillämpad" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "Kryptera Lönespecifikationer i E-post" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "Slut Datum kan inte vara före Start Datum" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "Slut Datum: {0}" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "Slut Tid kan inte vara tidigare Start Tid" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "Ange Intervju Runda" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "Ange ett värde som inte är noll för att justera." + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "Ange Standard Arbetstid för arbetsdag. Dessa timmar kommer att användas i beräkningar av rapporter som t. ex. Personal Tid Användning och Projekt Resultat Analys." + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "Ange antal dagar för obetald frånvaro som du vill återställa. Detta värde får inte överstiga total anta obetalda dagar som registrerats för vald månad" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "Ange frånvaro antal du vill ta för period." + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "Ange Årliga Förmånsbelopp" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "Ange {0}" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "Fel vid skapandet av {0}" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "Fel vid borttagning av {0}" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "Fel vid nedladdning av PDF" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "Fel i formel eller villkor" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "Fel i formel eller villkor: {0} i Inkomst Skatt Tabell" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "Fel i vissa rader" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "Fel vid uppdatering av {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "Fel vid utvärdering av {doctype} {doclink} på rad {row_id}.

    Fel: {error}

    Tips: {description}" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "Uppskattad Kostnad per Position" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "Utvärdering" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "Utvärdering Datum" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "Utvärdering Sätt kan inte ändras eftersom det finns befintliga bedömningar skapade för denna cykel" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "Händelse Detaljer" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "Händelse Länk" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "Händelse Plats" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "Händelse Namn" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "Händelse Status" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "Varannan Vecka" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "Var 3:e Vecka" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "Var 4:e Vecka" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "Varje Giltig Stämpling" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "Varje Vecka" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "Alla, låt oss gratulera dem till deras arbetsjubileum!" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "Alla, låt oss gratulera {0} på deras födelsedag." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "Examen" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "Växelkurs för Betalning Post mot Förskott Konto" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "Exkludera Helgdagar" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "Exkluderade {0} ej Uttagbar Frånvaro för {1}" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "Undantagen från Inkomst Skatt" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "Undantag" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "Undantag Kategori" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "Undantag Verifikat" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "Undantag Underkategori" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "Befintlig Post" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "Befintliga Skift Tilldelningar" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "Avgång Bekräftad" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "Avgång Detaljer" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "Avgång Intervju" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "Avgång Intervju Väntar" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "Avgång Intervju Översikt" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "Avgång intervju {0} finns redan för Personal: {1}" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "Avgång Frågeformulär" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "Avgång Frågeförmulär Avisering" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "Avgång Frågeförmulär Avisering Mall" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "Avgång Frågeformulär Väntar" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "Avgång Frågeförmulär Webbformulär" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "Avgångar (Denna Månad)" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "Förväntat Genomsnittlig Betyg" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "Förväntad Till" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "Förväntad Ersättning" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "Förväntad Lön per månad" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "Förväntad Arbetsfärdighet" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "Förväntad Färdighet" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "Kostnad Godkännare" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "Kostnad Godkännare erfordras för Utlägg" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "Utlägg Konto" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "Utlägg Förskott" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "Utlägg Detalj" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "Utlägg Sammanfattning" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "Utlägg Typ" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "Utlägg för Fordon Logg {0}" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "Utlägg {0} finns redan för Fordon Logg" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "Utlägg" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "Kostnad Datum" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "Kostnad Post" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "Kostnad Verifikat" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "Kostnad Moms" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "Skatter och Avgifter" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "Kostnad Typ" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "Kostnader & Förskott" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "Dra Tilldelning" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "Ta bort Vidarebefordrad Frånvaro (dagar)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "Utgå Frånvaro" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "Utgången Frånvaro" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "Utgången Frånvaro" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "Förklaring" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "Exporterar..." + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "Misslyckades med att skapa/godkänna {0} för personal:" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "Kunde inte ta bort standardinställningar för land {0}." + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "Misslyckades med att ladda ner PDF: {0}" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "Misslyckades att skicka meddelande om ombokning av intervju. Konfigurera ditt e-post konto." + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "Kunde inte ange standard inställningarna för land {0}." + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "Misslyckades att godkänna några frånvaro princip tilldelningar:" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "Misslyckades med att uppdatera Jobb Sökande Status" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "Kunde inte {0} {1} för personal:" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "Misslyckande Detaljer" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "Misslyckad Anledning" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "Fel vid Automatisk Tilldelning av Intjänad Frånvaro" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "Feb" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "Återkoppling Antal" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "Återkoppling HTML" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "Återkoppling Bedömning" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "Återkoppling Påminnelse Avisering Mall" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "Återkoppling Resultat" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "Återkoppling Godkänd" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "Återkoppling Sammanfattning" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "Återkoppling är redan godkänd för intervju {0}. Annullera tidigare intervju återkoppling {1} för att fortsätta." + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "Återkoppling kan inte registreras för frånvarande personal." + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "Återkoppling {0} har lagts till" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "Hämta Geografisk Position" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "Hämta Övertid Detaljer" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "Hämta Skift" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "Hämta Skift" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "Hämtar Personal" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "Hämtar Skift" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "Hämta din geolokalisering" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "Filförhandsvisning" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "Fyll i Formulär och Spara" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "Fylld" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "Filtrera Personal" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "Filtrera efter Skift" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "Slutgiltig Beslut" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "Slutgiltig Resultat" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "Slutlig Resutat Formel" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "Första Instämpling och Sista Utstämpling" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "Första Dag" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "Förnamn" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "Bokföringsår {0} hittades inte" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "Fast Timlön" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "Fordon Hantering" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "Flexibel Förmån" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "Flexibla Förmåner" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "Flexibel Komponent" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "Flyg" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "Pågående Avtal" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "Följ via E-post" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "Mat" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "För Befattning" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "För Personal" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "För uttagen frånvaro dag, om du fortfarande betalar (säg) 50 % av dagslön, skriv då 0,50 i detta fält." + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "Formel" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "Bråkdel av Tillämpliga Inkomster " + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "Andel av Daglig Lön för Halvdag" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "Andel Daglig Lön per Frånvaro" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "Delkostnad" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "Frappe HR" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "Från Belopp" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "Från Datum kan inte vara senare än Till Datum" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "Från datum {0} kan inte vara efter löneperiod slut datum {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "Från Datum {0} kan inte vara efter Personal avgång Datum {1}" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "Från datum {0} kan inte vara före löneperiod start datum {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "Från Datum {0} kan inte vara före Personal anställning Datum {1}" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "Från Datum kan inte vara tidigare än Personal anställning Datum" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "Från Datum kan inte vara tidigare än Personal anställning Datum." + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "Härifrån kan du aktivera Uttag för Frånvaro Saldo." + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "Från {0} till {1}" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "Från (År)" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "Fuchsia" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "Bränsle Kostnad" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "Bränsle Kostnader" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "Bränsle Pris" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "Bränsle Kvantitet" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "Slutlig Tillgång" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "Utestående Avgång Avtal" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "Heltid" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "Helt Sponsrad" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "Finansierad Belopp" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "Framtida Inkomst Skatt" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "Framtida datum ej tillåtna" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "Resultat Konto" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "Geolokalisering Fel" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "Geolokalisering stöds inte av din nuvarande webbläsare" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "Hämta Detaljer från Deklaration" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "Hämta Personal" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "Hämta Jobb Rekvisitioner" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "Hämta Mall" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "Skaffa appen på din enhet för enkel åtkomst och en bättre upplevelse!" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "Skaffa appen på din iPhone för enkel åtkomst och en bättre upplevelse" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "Glutenfri" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "Gå till Inloggning" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "Gå till lösenord återställning sida" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "Mål Framsteg (%)" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "Mål Resultat" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "Mål Resultat (%)" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "Mål Resultat (avvägd)" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "Procentuell Mål Framsteg får inte vara mer än 100." + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "Mål ska vara i linje med samma Nyckel Prestation Område som dess överordnade mål." + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "Mål ansvarig ska vara samma personal som dess överordnade mål." + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "Målet ska tillhöra samma Utvärdering Cykel som dess överordnade mål." + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "Mål är uppdaterad" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "Mål är uppdaterad" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "Grad" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "Belöning" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "Belöning Tillämplig Komponent" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "Belöningsregel" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "Belöningsregel Tabell" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "Klagomål" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "Klagomål Mot" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "Klagomål mot Parti" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "Klagomål Detaljer" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "Klagomål Typ" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "Brutto Inkomst" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "Brutto Lön" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "Brutto Lön (Bolag Valuta)" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "Brutto Lön Hittills i År" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "Brutto Lön Hittills i År (Bolag Valuta)" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "Grupp Mål framsteg beräknas automatiskt baserat på underordnade mål." + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "Personal" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "Personal & Lön" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "Personal & Löneinställningar" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "Personal Översikt Panel" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "Personal Inställningar" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "Personal" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "Halv Dag" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "Halv Dag Datum" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "Halv Dag Datum erfordras" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "Halv Dag Datum ska vara mellan Från Datum och Till Datum" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "Halv Dag Datum ska vara mellan Arbete från datum och Arbete slut datum" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "Halvdag Vald Personal Rubrik" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "Halv Dag" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "Halvdag datum ska vara mellan från datum och till datum" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "Har Certifikat" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "Sjukförsäkring" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "Sjukförsäkring Namn" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "Sjukförsäkring Nummer" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "Sjukförsäkring Leverantör" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "Hej {}! Detta e-post meddelande är för att påminna dig om kommande helgdagarna." + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "Hej, {0}👋" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "Anställningar" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "Anställning Inställningar" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "Helg Lista för Valfri Frånvaro" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "Helgdagar denna Månad" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "Helgdagar denna Vecka" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "Horisontell Brytning" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "Timpris (Bolag Valuta)" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "Timlön" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "Hus uthyrning betalda dagar överlappar med {0}" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "Hus uthyrning datum erfordras för undantag beräkning" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "Hus uthyrning datum borde vara minst 15 dagar från varandra" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "IFSC" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "IFSC Kod" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "IN" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "Identifikation Handling Nummer" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "Identifikation Handling" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "Om vald,kommer Lön Skuld bokföras per varje anställd" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "Om vald, inkluderas flexibla förmåner endast om förmånsansökan finns" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "Om vald, döljs och inaktiveras fält Avrundat Totalt i Lönespecifikationer" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "Om vald, kan skapande av övertid specifikation hanteras som del av lönehantering" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "Om vald, kommer hela belopp dras av från beskattningsbar Inkomst före Inkomst Skatt beräkning utan någon förklaring eller underlag." + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "Om vald, kommer skatt befrielse deklaration att övervägas för beräkning av inkomst skatt." + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "Om vald, kommer automatisk närvaro att anges på helgdagar om det finns stämplingar för personal" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "Om vald, dras betalning för lönedagar av för frånvaro på helgdagar. Som standard är helgdagar betalda" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "Om aktiverad, kommer belopp att uteslutas från Bokföring Poster när Journal Post skapas." + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "Om vald, kommer komponent att betraktas som skatt komponent och belopp kommer att automatiskt beräknas enligt konfigurerade inkomst skatt tabeller" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "Om vald, kommer komponent att beaktas i rapport för inkomst skatt avdrag" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "Om vald, kommer komponent inte att visas i lönespecifikation om belopp är noll" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "Om aktiverat, total antal av ansökningar som tas emot för denna erbjudande kommer att visas på webbplats" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Om vald kommer värdet som anges eller beräknas i denna komponent inte att bidra till intäkter eller avdrag. Men dess värde kan refereras av andra komponenter som kan läggas till eller dras av." + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "Om denna komponent är aktiverad kan man ackumulera belopp utan att lägga till dem i inkomster. Ackumulerad saldo spåras i Personal Förmån Register och kan betalas ut senare vid behov." + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "Om aktiverad, kommer denna komponent att inkluderas i beräkning av efterskott betalningar" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "Om vald, kommer totalt antal arbetsdagar att inkludera helgdagar, och detta kommer att minska värdet av lön per dag" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "Om det är högre än noll anger detta maximal förmån belopp som kan tilldelas personal" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "Om inte vald, måste lista läggas till varje avdelning där den ska tillämpas." + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Om vald, kommer det angivna eller beräknade värdet i denna komponent inte att bidra till förtjänst eller avdrag. Men dess värde kan hänvisas till andra komponenter som kan läggas till eller dras av." + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "Om vald,jobb erbjudande stängs automatiskt efter detta datum" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "Om du använder lån i lönespecifikation, installera {0} app från Frappe Cloud Marketplace eller GitHub för att fortsätta använda låneintegration med lön." + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "Importera Närvaro" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "I Tid" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "I händelse av något fel under denna bakgrundsprocess kommer system att lägga till kommentar om fel på denna Lön Post och återgå till status Godkänd" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "Motivation" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "Motivation Belopp" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "Inkludera Dotterbolag" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "Inkludera Helgdagar" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "Inkludera Helger i Totalt Antal Arbetsdagar" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "Inkludera helgdagar inom frånvaro som frånvaro" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "Inkomst Källa" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "Inkomst Skatt Belopp" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "Inkomst Skatt Uppdelning" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "Inkomst Skatt Komponent" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "Inkomst Skatt Beräkning" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "Inkomstskatt Avdragen till Datum" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "Inkomst Skatt Avdrag" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "Inkomst Skatt Tabell" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "Inkomst Skatt Tabell Övriga Avgifter" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "Inkomst Skatt Tabell erfordras eftersom Löneart {0} har skattkomponent {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "Inkomst Skatt Tabell måste vara aktiv före eller före start datum för Löneperiod Start Datum: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "Inkomst Skatt Tabell inte angiven i Löneart Tilldelning: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "Inkomst Skatt Tabell: {0} är inaktiverad" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "Inkomst från Andra Källor" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "Felaktig Vikt Fördelning" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "Indikerar antal lediga dagar som inte kan tas ut från frånvaro saldo. T.ex. med frånvaro saldo på 10 och 4 ej uttagbara dagar, kan man ta ut 6, medan återstående 4 kan överföras eller förfaller" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "Kontroll" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "Installera" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "Installera Frappe HR" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "Otillräckligt Saldo" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "Otillräckligt Frånvaro Saldo för Frånvaro Typ {0}" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "Ränte Belopp" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "Ränte Intäkt Konto" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "Intern" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "Utrikes" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "Internet" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "Intervju" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "Intevju Detalj" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "Intevju Detaljer" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "Intervju Återkoppling" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "Intervju Återkoppling Påminnelse" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "Intervju Återkoppling {0} skickad" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "Intervju Ej Ombokad" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "Intervju Påminnelse" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "Intervju Påminnelse Avisering Mall" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "Intervju Ombokad" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "Intervju Omgång" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "Intervju Omgång {0} är endast tillämplig för Beteckning {1}" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "Intervju Omgång {0} är endast för Beteckning {1}. Jobb Sökande har ansökt {2} roll" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "Intervju Schemalagd Datum" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "Jobb Intervju Status" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "Intervju Översikt" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "Intervju Typ" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "Intervju: {0} Ombokad" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "Intervjuare" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "Intervjuare" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "Intervjuer" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "Intervjuer (Denna Vecka)" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "Ogiltig Beräkning Komponent" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "Ogiltig Extra Lön" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "Ogiltig Efterskott Komponent" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "Ogiltiga Förmån Belopp" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "Ogiltiga Datum" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "Ogiltiga Obetalda Frånvaro Dagar Återförda" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "Ogiltig Frånvaro Register Post" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "Ogiltig Löne Konto. Konto valuta måste vara {0} eller {1}" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "Ogiltiga Skifttider" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "Ogiltiga parametrar angivna. Skicka erfordrade argument." + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "Undersökt" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "Utredning Detaljer" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "Inbjuden" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "Faktura Referens" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "Är Tilldelad" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "Är Tillämplig för Referens Bonus" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "Är Vidarebefodrad" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "Är Kompensation" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "Är Kompensation Frånvaro" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "Är Intjänad Frånvaro" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "Är Förfallen" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "Är Flexibel Förmån" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "Är Inkomst Skatt Komponent" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "Är Obetald Ledighet" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "Är Valfri Frånvaro" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "Är Delvis Betald Frånvaro" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "Är Återkommande" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "Är Återkommande Extra Lön" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "Är Lön Släppt" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "Är Lön Kvarhållen" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "Är Skatt Tillämplig" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "Jan" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "Jobb Sökande" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "Jobb Sökande Källa" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "Jobb Sökande {0} skapad" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "Jobb Sökande får inte vara två gånger för samma intervju runda. Intervju {0} redan planerad för Jobb Sökande {1}" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "Jobbansökan" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "Jobb Erbjudande Sökväg" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "Jobb Beskrivning" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "Jobb Erbjudande" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "Jobb Erbjudande Villkor" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "Jobb Erbjudande Villkor Mall" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "Jobb Erbjudande Villkor" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "Jobb Erbjudande Status" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "Jobb Erbjudande: {0} är redan till för Jobb Sökande: {1}" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "Jobb Erbjudande" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "Jobb Erbjudande Kopplad" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "Lediga Jobb Mall" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "Jobb Erbjudande" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "Jobb Erbjudande för Beteckning {0} är redan öppna eller anställningen är klar enligt Bemanning Plan {1}" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "Jobb Annons" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "Jobb Annons {0} är kopplad till Jobb Erbjudande {1}" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "Jobb profil, kvalifikationer som erfordras osv." + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "Jobb" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "Anställning Datum" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "Juli" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "Juni" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "Nyckel Prestation Område" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "Nyckel Prestation Område Evaluering Sätt" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "Nyckel Prestation Område uppdaterad för underordnade mål" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "Nyckel Prestation Område mot Mål" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "Nyckel Prestation Områden" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "Nyckel Prestanda Område" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "Nyckel Ansvar Område" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "Nyckel Resultat Område" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "Obetalda Frånvaro Dagar Återförda ({0}) stämmer inte med faktiska totala Lönekorrigeringar ({1}) för {2} från {3} till {4}" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "Sista Dag" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "Senast känd lyckad synkronisering av Personal Stämplingar. Återställ detta endast om du är säker på att alla loggar är synkroniserade från alla platser. Ändra inte detta om du är osäker." + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "Senaste Odometer Värde " + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "Senaste Synkronisering av Stämplingar" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "Senaste {0} var {1}" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "Sena Ankomster" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "Sen Instämpling" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "Sen Instämpling & Tidig Utstämpling för Automatiskt Närvaro" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "Sen Ankomst Av" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "Sen Instämpling Anstånd Period" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "Latitud och longitud värde erfordras för att stämpla." + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "Latitud: {0}°" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "Frånvaro" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "Frånvaro Justering" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "Frånvaro Justering för denna tilldelning finns redan: {0}. Ändra befintlig justering." + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "Frånvaro Tilldelning" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "Frånvaro Tilldelning Finns" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "Frånvaro Tilldelningar" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "Skapa Frånvaro Ansökan" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "Frånvaro Ansökan Period kan inte vara över två ej efterföljande frånvaro tilldelningar {0} och {1}." + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "Ledighet Godkännande Avisering" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "Frånvaro Godkännande Avisering Mall" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "Ledighet Godkännare" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "Frånvaro Godkännare Erfordras i Frånvaro Ansökan" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "Frånvaro Godkännare Namn" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "Frånvaro Saldo" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "Frånvaro Saldo Före Ansökan" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "Frånvaro Spärr Lista" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "Frånvaro Spärr Lista Tillåt" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "Frånvaro Spärr Lista Tillåtna Användare" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "Frånvaro Spärr Lista Datum" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "Frånvaro Spärr Lista Datum" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "Frånvaro Spärr Lista Namn" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "Frånvaro Spärrad" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "Frånvaro Översikt Panel" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "Frånvaro Detaljer" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "Frånvaro Uttag" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "Frånvaro Uttag Belopp per dag" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "Frånvaro Historik" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "Frånvaro Register" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "Frånvaro Register Post" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "Frånvaro Register Post Till datum måste vara efter Från datum. För närvarande Från Datum är {0} och Till Datum är {1}" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "Frånvaro Period" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "Frånvaro Princip" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "Frånvaro Tilldelning Princip" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "Frånvaro Princip Tilldelning Överlappar" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "Frånvaro Princip Detalj" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "Frånvaro Princip Detaljer" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "Frånvaro Princip: {0} redan tilldelad för personal {1} för period {2} till {3}" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "Frånvaro Status Avisering" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "Frånvaro Status Avisering Mall" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "Frånvaro Typ" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "Frånvaro Typ Namn" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "Frånvaro Typ kan antingen vara kompenserande eller intjänad frånvaro." + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "Frånvaro Typ kan antingen vara obetald eller delbetald" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "Frånvaro Typ erfordras" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "Frånvaro Typ {0} kan inte tilldelas eftersom det är obetald ledighet" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "Frånvaro Typ {0} kan inte vidarebefordras" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "Frånvaro Typ {0} är inte uttagbar" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "Obetald Frånvaro" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "Obetald Frånvaro stämmer inte med godkända {} poster" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "Frånvaro hoppas över för {0}, eftersom antalet som ska tilldelas är 0." + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "Frånvaro Tilldelning {0} är länkad till Frånvaro Ansökan {1}" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "Frånvaro är redan tilldelad denna Frånvaro Princip Tilldelning" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "Frånvaro och Utgift Inställningar" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "Frånvaro ansökan är kopplad till frånvaro tilldelningar {0}. Frånvaro ansökan kan inte anges som frånvaro utan lön" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Frånvaro kan inte tilldelas före {0}, eftersom Frånvaro Saldo redan har vidarebefordrats framtida frånvaro tilldelning poster {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Frånvaro inte kan tillämpas/annulleras före {0}, eftersom Frånvaro Saldo redan är vidarebefordrad framtida frånvaro tilldelning poster {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "Frånvaro av typ {0} får inte vara längre än {1}." + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "Frånvaro har gått ut" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "Frånvaro som väntar på Godkännande" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "Frånvaro Uttagen" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "Frånvaro" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "Frånvaro & Helgdagar" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "Frånvaro Efter Justering" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "Frånvaro Tilldelad" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "Frånvaro Utgången" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "Frånvaro som väntar på Godkännande" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "Frånvaro för Frånvaro Typ {0} kommer inte att vidarebefordras eftersom vidarebefordring är inaktiverad." + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "Frånvaro per År" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "Frånvaro att Justera" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "Frånvaro som du kan ta ut mot helgdag du jobbat på. Du kan ansöka om kompensation frånvaro med hjälp av begäran om kompensation frånvaro. Klicka på {0} för att få veta mer" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Slutat" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "Arbetsliv" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "Lime" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "Länka cykeln och tagga Nyckel Prestation Område till ditt mål för att uppdatera utvärdering mål poäng baserat på mål framsteg" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "Länkad Projekt {} och Uppgifter raderade." + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "Lån Konto" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "Låneartikel" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "Låneåterbetalning" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "Låneåterbetalning Post" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "Lån kan inte återbetalas från lön för personal {0} eftersom lön är i valuta {1}" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "Lokaliserar..." + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "Plats/Enhet" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "Logi Erfordras" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "Logga ut" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "Typ" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "Logg Typ erfordras för Stämplingar som infaller under skift: {0}." + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "Inloggning misslyckades" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "Logga in på Frappe HR" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "Longitud: {0}°" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "Nedre Intervall" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "MICR" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "Skapa Bank Post" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "Förmån Ansökan Erfordras" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "Erfordrade fält krävs för denna åtgärd:" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "Manuellt Bedömning" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "Manuellt" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "Mar" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "Hämta Närvaro" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "Aktivera Automatisk Närvaro under Helger" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "Ange som Klar" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "Ange som Pågående" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "Ange som {0}" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "Ange närvaro som {0} för {1} på valda datum?" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "Ange närvaro baserat på 'Personal Stämplingar' för Personal som tilldelats detta skift." + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "Markera närvaro för befintliga instämpling/utstämpling loggar innan skiftbytet" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "Ange {0} som Klar?" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "Ange {0} {1} som {2}?" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "Angiven Närvaro" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "Angiven Närvaro HTML" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "Anger Närvaro" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "Maximalt Belopp Berättigat för Anspråk" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "Maximum Förmån Belopp" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "Maximum Förmån Belopp (Årlig)" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "Maximum Förmåner (belopp)" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "Maximum Förmåner (Årlig)" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "Maximum Undantag Belopp" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "Maximal Undantag Belopp kan inte vara högre än maximal undantag belopp {0} för Moms Undantag Kategori {1}" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "Maximum Beskattningsbar Inkomst" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "Maximum Arbetstid mot Tidrapport" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "Maximalt Förmån Belopp" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "Maximum Vidarebefordrad Frånvaro" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "Maximum Tillåten Frånvaro i Följd" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "Maximum Antal Konsekutiv Frånvaro Överskriden" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "Maximum Uttagbar Frånvaro" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "Maximum Undantaget Belopp" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "Maximum Undantag Belopp" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "Maximalt Frånvaro Tilldelning tillåten per Frånvaro Period" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "Maximalt Antal Tillåtna Övertid Timmar" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "Maximalt Antal Tillåtna Övertid Timmar per dag" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "Högsta årliga beskattningsbara inkomst som berättigar till full skattelättnad. Ingen skatt utgår om inkomsten inte överstiger denna gräns" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "Maximum antal uttagbar frånvaro för {0} är {1}" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "Maximum Tillåten Frånvaro i Frånvaro Typ {0} är {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "Maj" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "Måltid Preferens" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "Vård" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "Miltal" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "Minimum Beskattningsbar Inkomst" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "Minimum antal år för Belöning" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "Minimum antal arbetsdagar som erfordras sedan tillträde för att ansöka om denna frånvaro" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "Förskott Konto saknas" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "Erfordrad fält saknas" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "Öppning poster saknas" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "Saknar Avgång Datum" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "Lönekomponenter saknas" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "Inkomst Skatt Tabell saknas" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "Rese Sätt" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "Betalning Sätt erfordras att skapa betalning" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "Månad Hitills" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "Månad Hitills (Bolag Valuta)" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "Närvaro Rapport per Månad" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "Mer än ett val för {0} ej tillåtet" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "Flera Extra Löner med överskrivning egenskap finns för lön komponent {0} mellan {1} och {2}." + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "Flera Skift Tilldelningar" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "Multiplikatorer som justerar övertidsbelopp per timme för specifika fall\n\n" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "Mina Förskott" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "Mina Anspråk" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "Min Frånvaro" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "Mina Begäran" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "Namn Fel" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "Arrangör" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "Netto Lön" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "Netto Lön (Bolag Valuta)" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "Netto Lön" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "Netto Lön kan inte vara lägre än 0" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "Netto Lön Belopp" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "Netto Lön kan inte vara negativ" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "Ny Personal ID" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "Ny Kostnad Post" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "Ny Kostnad Moms" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "Ny Återkoppling" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "Nya Anställningar (Denna Månad)" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "Ny Frånvaro Tilldelad" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "Ny Frånvaro Tilldelade" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "Ny Frånvaro Tilldelad (i Dagar)" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "Nya skift tilldelningar kommer att skapas efter detta datum." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "Inget Bank/Kontant Konto hittades för valuta {0}. Skapa konto under {1}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "Ingen Personal hittades" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "Ingen Personal hittades för angiven Personal fält värde. '{}': {}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "Ingen Personal Vald" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "Ingen intervju är schemalagd." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "Ingen Frånvaro Period Hittades" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "Ingen Frånvaro tilldelad Personal: {0} för Frånvaro Typ: {1}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "Ingen Lönespecifikation hittades för: {0}" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "Inga Lönespecifikationer med {0} hittades för {1} för löneperiod {2}." + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "Ingen Löneart Tilldelning hittades för {0} per den {1}" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "Ingen Lön Struktur Tilldelning hittades för {0} på eller före {1}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "Ingen Löneart tilldelad {0} på angiven datum {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "Inga Lönearter" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "Inga Skift Begäran valda" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "Inga Bemanning Planer hittades för denna Befattning" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "Inget aktivt löneart tilldelning hittades för {0} med löneart {1} på eller efter efterskott start datum {2}" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "Ingen aktiv personal hittades kopplad till e-post {0}. Försök att logga in med personal e-post eller kontakta Personal ansvarig för åtkomst." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "Ingen aktiv eller standard löneart hittades för {0} för angivna datum" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "Inga extra kostnader har lagts till" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "Inga förskott hittades" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "Ingen tillämplig komponent hittades i senaste lönespecifikation för Belöning Regel: {0}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "Ingen tillämplig inkomst komponent hittades för Belöning Regel: {0}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "Ingen tillämplig tabell hittades för beräkning av Belöning Belopp i Belöning Regel: {0}" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "Inga efterskott komponenter hittades i befintliga lönespecifikationer." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "Inga Efterskott Komponenter hittades i Lönespecifikationen. Se till att Efterskott Komponent är angiven i Lönekomponent Inställningar." + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "Inga detaljer om efterskott hittades" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "Inga närvaro poster hittades för {0} mellan {1} och {2}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "Inga närvaro poster funna för dessa kriterier." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "Inga närvaro poster funna." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "Inga närvaro poster att skapa" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "Inga ändringar hittades i tider." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "Ingen personal hittad" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "Ingen personal hittades för angivna kriterier:
    Bolag: {0}
    Valuta: {1}
    Löne Konto: {2}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "Ingen personal hittades för valda kriterier" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "Ingen personal hittades med valda filter och aktiv löneart" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "Inga utgifter tillagda" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "Ingen återkoppling har mottagits än" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "Inga poster valda" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "Ingen frånvaro tilldelning hittades för {0} för {1} på angiven datum." + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "Ingen Ledighet Post hittades för Personal {0} {1}" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "Ingen frånvaro är tilldelad." + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "Inga fler uppdateringar" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "Antal Positioner" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "Inga svar från" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "Ingen Lönespecifikation hittad att godkänna för ovanstående valda kriterier eller Lönespecifikation är redan godkänd" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "Inga lönespecifikationer hittades" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "Inga lönespecifikationer hittades för valda personal från {0}" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "Inga skatter tillagda" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "Inget giltigt skift hittades för loggtid" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "Inget {0} Vald" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "Inga {0} tillagda" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "Ej Mejeri" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "Ej Beskattningbara Inkomster" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "Ofakturerade Timmar" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "Ofakturerade Timmar" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "Ej Uttagbar Frånvaro" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "Ej Vegetarian" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "Obs! Skift kommer inte att skrivas över i befintliga närvaro poster" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "Obs! Totalt antal tilldelad frånvaro {0} ska inte vara lägre än redan godkänd frånvaro {1} för period" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "Obs: Lönespecifikation är lösenord skyddad, lösenord för att låsa upp PDF fil är {0} format." + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "Inget att ändra" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "Avisering Period" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "Avisering Mall" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "Avisera Användare via E-post" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "Nov" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "Personal Antal" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "Antal Positioner" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "Antal Frånvaro" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "Antal Kvarhållna Cykler" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "Antal Frånvaro som är berättigad till Uttag baserat på Frånvaro Typ Inställningar" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "OTP Kod" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "OTP Verifiering" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "UT" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "Erhållet medel Bedömning" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "Okt" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "Vägmätare Avläsning" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "Vägmätare Värde" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "Utanför Skift" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "Utanför Skift" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "Erbjudande Villkor" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "Erbjudande Villkor" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "På Datum" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "Arbete" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "Ledig" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "Introduktion" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "Introduktion Aktiviteter" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "Introduktion Börjar" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "Endast Godkännare Roll kan godkänna denna Förslag." + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "Endast ifyllda dokument kan godkännas" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "Endast klagomål från personal med status {0} eller {1} kan godkännas" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "Endast Intervjuare får lämna Intervju Återkoppling" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "Endast intervjuer med status Klar eller Avvisad kan godkännas." + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "Endast Frånvaro Ansökan med status 'Godkänd' och 'Avvisad' kan skickas in" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "Endast Skift förfågan med status 'Godkänd' och 'Avvisad' kan skickas in" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "Endast Förfallen Tilldelning kan annulleras" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "Endast intervjuare kan lämna Återkoppling" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "Endast Användare med {0} roll kan skapa efterdaterade frånvaro ansökningar" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "Endast {0} Mål kan bli {1}" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "Öppen & Godkänd" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "Öppna Återkoppling" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "Öppna Nu" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "Jobb Erbjudande Stängd" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "Valfri helg lista inte angiven för frånvaro period {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "Valfri frånvaro är helgdagar som personal kan välja att utnyttja från en lista över helgdagar som publiceras av bolag." + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "Organisatoriskt Diagram" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "Övriga Skatter och Avgifter" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "Övriga" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "Utgående Tid" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "Utbetald Lön" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "Övertildelning" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "Övergripande Genomsnittlig Betyg" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "Överlappande Närvaro Begäran" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "Överlappande Skift Närvaro" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "Överlappande Skift Begäranden" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "Överlappande Skift" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "Övertid" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "Övertid Belopp Beräkning" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "Övertid Detaljer" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "Övertid Varaktighet" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "Övertid Varaktighet för {0} är högre än Maximalt Tillåtna Övertid Timmar" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "Övertid Lönekomponent" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "Övertid Specifikation" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "Fel vid skapande av Övertid Specifikation för {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "Skapande av Övertid Specifikation misslyckades" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "Övertid Specifikation Steg" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "Fel vid godkännande av Övertid Specifikation för {0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "Godkännande av Övertid Specifikation misslyckades" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "Övertid Specifikation Godkänd" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "Övertid Specifikation skapad för {0}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "Skapandet av Övertid Specifikation står i kö. Det kan ta några minuter" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "Godkännande av Övertid Specifikation står i kö. Det kan ta några minuter" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "Övertid Specifikation:{0} är skapad mellan {1} och {2}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "Övertid Specifikationer skapade" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "Övertid Specifikationer godkända för {0}" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "Övertid Typ" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "Övertidsersättning bokförs under denna lönekomponent för utbetalning." + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "Skriv över Löneart Belopp" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "PAN Nummer" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "Pension Fond Konto" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "Pension Fond Belopp" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "Pension Fond Lån" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "Progressiv Webbapplikation Meddelande" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "Betald via Lönespecifikation" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "Övergripande Mål" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "Deltid" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "Delvis Sponsrad, Erfodrar Delfinansiering" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "Delvis Begärd och Returnerad" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "Lösenord Regel" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "Lösenord Regel kan inte innehålla mellanslag eller bindestreck. Format omstruktureras automatiskt" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "Lösenord Regel för Lönespecifikation är inte angiven" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "Lönemultiplikatorer" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "Betala via Betalning Post" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "Betala via Lönespecifikation" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "Betalning Konto erfordras för att godkänna Utlägg Anspråk" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "Betalning Konto erfordras" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "Betalning Datum" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "Lönedagar" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "Lönedagar Beräkning Hjälp" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "Lönedagar beroende av" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "Lönedagar beräkning baseras på dessa Löneinställningar" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "Betalning och Bokföring" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "Betalning av {0} från {1} till {2}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "Utbetalning" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "Utbetalning Metod" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "Betala Outnyttjad Belopp i Slutlig Lön" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "Lön" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "Lön Baserad På" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "Lönekorrigering" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "Underordnad Lönekorrigering" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "Lön Resultat Enhet" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "Lön Resultat Enhet" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "Lön Översikt Panel" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "Lönedatum" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "Lön Detalj" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "Lönepost annullering i kö. Det kan ta några minuter" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "Löneintervall" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "Lön Info" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "Lön Nummer" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "Löneutbetalning Konto" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "Löneperiod" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "Löneperiod Datum" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "Löneperioder" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "Lönerapporter" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "Lön Inställningar" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "Lön Datum kan inte vara senare än Personal Avgång Datum." + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "Lön Datum kan inte vara tidigare än Personal Anställning Datum." + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "Lönedatum får inte vara i det förflutna. Detta för att säkerställa att anspråk görs för nuvarande eller framtida löner." + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "Väntande (obetald) belopp från tidigare förskott" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "Pågående Tillgång Retur" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "Pågående Avtal" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "Pågående Intervjuer" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "Pågående Frågeformulär" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "Procent Avdrag" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "Prestation" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "Permanent annullera {0}" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "Permanent godkänn {0}" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "Ackord" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "Planerad antal Positioner" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "Aktivera Automatisk Närvaro och slutför installation." + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "Välj Bolag" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "Tilldela först Löneart för {0} som gäller från eller före {1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "Kontrollera om personal är frånvarande eller om närvaro med samma status finns för vald(a) dag(ar)." + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "Bekräfta när du har slutfört din utbildning" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "Skapa ny {0} för datum {1} först." + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "Ta bort personal {0} för att annuller detta dokument" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "Aktivera standard inkommande konto före skapande av Daglig Arbete Översikt Grupp" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "Ange Befattning" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "Ange Personal, Bokföring Datum och Bolag innan du hämtar övertid detaljer." + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "Minska {0} för att undvika att skifttid överlappar sig själv" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "Se Bilaga" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "Välj Bolag och Befattning" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "Välj Personal" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "Välj Personal" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "Välj Filter Baserat På" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "Välj Från Datum och Löneintervall först" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "Välj Från Datum." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "Välj Skift Schema och Tilldelning Datum." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "Vänligen välj Skift Typ och Tilldelning Datum." + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "Välj Bolag" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "Välj Bolag" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "Välj CSV fil" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "Välj Datum" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "Välj Sökande" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "Välj minst en Skift Begäran för att utföra denna åtgärd." + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "Välj minst en i personal för att utföra denna åtgärd." + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "Välj minst en rad för att utföra denna åtgärd." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "Välj Bolag." + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "Välj Personal" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "Välj Personal att skapa Utvärderingar för" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "Ange status för halvdagsnärvaro." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "Välj månad och år" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "Välj Utvärdring Cykel" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "Välj närvaro status." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "Välj personal du vill ange närvaro för." + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "Välj de lönespecifikationer som ska skickas via e-post" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "Ange \"Standard Löneutbetalning Konto\" i Bolag Inställningar" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "Ange Grund och HRA Komponent i Bolag {0}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "Ange Inkomst Komponent för Frånvaro Typ: {0}." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "Ange Lön baserad på Löneinställningar" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "Ange avgång datum för: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "Ange datum intervall som är kortare än 90 dagar." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "Ange konto i Lönekomponent {0}" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "Ange Standard Mall för Frånvaro Godkännande Avisering i Personal Inställningar." + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "Ange Standard Mall för Frånvaro Status Avisering i Personal Inställningar." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "Ange Utvärdering Mall för alla {0} eller välj mall i Personal Inställningar" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "Ange Bolag" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "Ange Anställning Datum för Personal {0}" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "Ange Helg Lista" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "Ange datum intervall." + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "Ange avgång datum för {0}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "Ange {0} och {1} i {2}." + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "Ange {0} för Personal: {1}" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "Ange {0} för Personal: {1}" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "Obs: Ange {0}." + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "Ange Personal Namngivning Serie i Personal > Personal Inställningar" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "Ange Nummer Serier för Närvaro via Inställningar > Nummer Serie" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "Dela din återkoppling till utbildning genom att klicka på 'Utbildning Återkoppling' och sedan 'Ny'" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "Ange jobbsökande som ska uppdateras." + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "Ange {0} och {1} (om sådana finns), för korrekt skatteberäkning i framtida lönespecifikationer." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "Godkänn {0} innan du anger Utvärdering Cykel som Klar" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "Uppdatera din status för den här utbildning händelse" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "Datum" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "Registrering Datum" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "Prioriterad Område för Logi" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "Närvarande" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "Närvaro Poster" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "Förhindra självgodkännande för utlägg anspråk även om användare har behörighet" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "Förhindra självgodkännande för frånvaro även om användare har behörighet" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "Förhandsgranska Lönespecifikation" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "Kapital Belopp" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "Utskriven {0}" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "Privilegierad Frånvaro" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "Prov" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "Prov Period" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "Hämta Närvaro Efter" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "Behandla Lön Bokföring Post per Anställd" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "Behandla Begäran" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "Behandla Skift Begäran" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "Behandla frånvaro uttag via separat Betalning Post istället för Lönespecifikation" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "Behandla {0} Shift Begäran som {1}?" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "Behandlar Begäran" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "Behandlar Begäran..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "Behandling av skift begäran är i kö. Det kan ta några minuter." + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "Professionell Skatt Avdrag" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "Skicklighet" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "Vinst" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "Projekt Resultat" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "Befodran" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "Befordran Datum" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "Egenskap är redan tillagd" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "Försäkring Fond Avdrag" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "Allmän Helg Multiplikator" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "Publicera Mottagna Ansökningar" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "Publicera Löneintervall" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "Publicera på Webbplats" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "Anledning & Belopp" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "Reseanledning" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "Push Notis behörighet nekad" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "Push Notis inaktiverad" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "Push Notiser är inaktiverade på din webbplats" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "Frågeformulär E-post Skickat" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "Snabb Filter" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "Snabb Länkar" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "Radie inom vilken stämpling är tillåten (i meter)" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "Bedöm Mål Manuellt" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "Bedömning Kriterier" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "Bedömningar" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "Omfördela Frånvaro" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "Justering Anledning" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "Anledning till Förfråga" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "Anledning till Kvarhållande av Lön" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "Anledning att hoppa över Automatisk Närvaro:" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "Senaste Närvarobegäran" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "Senaste Kostnader" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "Senaste Frånvaro" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "Senaste Skift Begäran" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "Rekommenderas för en biometrisk enhet / stämplingar via mobilapp" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "Återställning Kostnad" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "Rekrytering" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "Rekrytering Analys" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "Minska" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "Att minska maximal antal tillåten frånvaro efter tilldelning kan göra att schemaläggaren tilldelar felaktigt antal intjänad frånvaro. Var försiktig." + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "Minskning är högre än {0} tillgänglig frånvaro saldo {1} för frånvaro typ {2}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "Referens:{0}" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "Hänvisning Bonus Betalning Status" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "Refererande Detaljer" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "Referens Detaljer" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "Referens Namn" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "Reflektioner" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "Bränsle Detaljer" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "Avvisa" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "Avvisa Personal Referens" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "Avslag" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "Släpp Kvarhållna Löner" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "Släppt" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "Avgång Datum" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "Avgång Datum Saknas" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "Återstående Förmåner (Årlig)" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "Påminn Före" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "Påmind" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "Påminnelser" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "Ta Bort om Värde är Noll" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "Hyrbil" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "Återbetala Från Lön" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "Återbetalning från Lön kan endast väljas för Långfristiga Lån" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "Återbetala Förskött Belopp från Lön" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "Veckodagar" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "Svar" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "Rapporterar Till" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "Begär Närvaro" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "Begär Frånvaro" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "Begär Frånvaro" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "Begär Skift" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "Begär Förskott" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "Begärd Av" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "Begärd Av (Namn)" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "Erfodrar Full Finansiering" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "Erfordrad Färdighet" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "Erfordras för att skapa Personal" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "Boka om Intervju" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "Ansvar" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "Begränsa Efterdaterad Frånvaro Ansökan" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "Resume Bilaga" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "Resume Länk" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "Resume Länk" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "Behållen" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "Bonus" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "Pensionsålder" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "Försök Misslyckades" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "Återförsök med Misslyckade Tilldelningar" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "Återförsök Lyckades" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "Återförsöker Tilldelningar" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "Retur Belopp kan inte vara högre än Outtagen Belopp" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "Granska olika andra inställningar relaterade till tjänstledighet och kostnadskrav" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "Recensent" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "Recensent Namn" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "Reviderad Årslön (CTC)" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "Roll tillåten för att skapa Efterdaterad Frånvaro Ansökan" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "Schemaläggning" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "Schemaläggning Färg" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "Omgång Namn" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "Avrunda Arbetsliv Erfarenhet" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "Avrunda till Närmaste Heltal" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "Avrundning" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "Sökväg till anpassad Jobb Erbjudande Webförmulär" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "Rad #{0}: Kan inte ange belopp eller formel för Lönekomponent {1} med variabel baserat på Skattepliktig Lön" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "Rad #{0}: Komponent {1} har alternativ {2} och {3} aktiverade." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "Rad #{0}: Tidrapport belopp kommer att skriva över Inkomst komponent belopp för löne komponent {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "Rad #{0}: Belopp kan inte vara högre än Utestående Belopp mot Utlägg {1}. Utestående Belopp är {2}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "Rad #{0}: Tilldelad Belopp {1} kan inte vara högre än ofodrad belopp {2}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "Rad {0}# Betald Belopp kan inte vara högre än Uttag Belopp" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "Rad #{0}: Betald belopp får inte vara högre än Totalt Belopp" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "Rad #{0}: Betald belopp kan inte vara högre än begärd Förskott Belopp" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "Rad #{0}: Från (År) kan inte vara senare än Till (År)" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "Rad {0}: Målsättning resultat kan inte vara högre än {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "Rad {0}: Betalt belopp {1} är högre än förväntad ackumulerad belopp {2} mot lån {3}" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "Rad {0}: {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "Rad #{0}: {1} erfordras i Kostnad Tabell att registrera Utlägg." + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "Lönekomponent" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "Lönekomponent" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "Lönekomponent Konto" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "Lönekomponent Baserad" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "Lönekomponent Typ" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "Lönekomponent för tidrapport baserad lön." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "Lönekomponent {0} kan inte väljas mer än en gång i Personal Förmåner" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "Lönekomponent {0} används för närvarande inte i någon Löneart." + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "Lönekomponent {0} måste vara av typ \"Inkomst\" för att kunna användas i Personal Förmån Register" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "Lön Detalj" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "Lön Detaljer" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "Lön Förväntning" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "Löneinformation" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "Löneintervall" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "Lön Betalningar Baserat på Betalning Sätt" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "Lön Utbetalningar via ECS" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "Lönespann" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "Löneregister" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "Lönespecifikation" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "Lönespecifikation Baserad på Tidrapport" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "Lönespecifikation" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "Lönespecifikation Frånvaro" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "Lönespecifikation Lån" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "Lönespecifikation Referens" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "Lönespecifikation Tidrapport" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "Lönespecifikation finns redan för {0} för angivna datum" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "Lönespecifikation skapande i kö. Det kan ta några minuter" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "Lönespecifikation hittades inte." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "Lönespecifikation för {0} redan skapad för denna period" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "Lönespecifikation för {0} redan skapad för Tidrapport {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "Lönespecifikation godkännade i kö. Det kan ta några minuter" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "Lönespecifikation {0} misslyckades för Lönepost {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "Lönespecifikation {0} misslyckades. Du kan lösa {1} och försöka igen {0}." + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "Lönespecifikationer" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "Lönespecifikationer Skapade" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "Lönespecifikationer Godkända" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "Lönespecifikation finns redan för {} och kommer inte att behandlas på denna lönelista." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "Lönespecifikationer godkända för period från {0} till {1}" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "Löneart" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "Löneart Tilldelning" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "Löneart Tilldelning fält" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "Löneart Tilldelning för Personal finns redan" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "Löneart tilldelning hittades inte för {0} per den {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "Löneart Saknas" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "Löneart måste godkännas innan {0} godkänns" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "Löneart är inte tilldelad för {0} per den {1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "Löneart {0} tillhör inte bolag {1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "Lönearter uppdaterades" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "Lön Kvarhållande" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "Lön Kvarhållning Cykel" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "Lön Kvarhållande {0} finns redan för {1} för valda period" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "Lön redan behandlad för period mellan {0} och {1} Frånvaro ansökning period kan inte vara mellan detta datum intervall." + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "Lön Uppdelning baserat på Inkomst och Avdrag." + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "Lönekomponenter av typ Förmånsfond, Extra Förmånsfond eller Förmånsfond Lån är inte angivna." + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "Lönekomponenter ska vara en del av Löneart." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "Lönespecifikationer är i e-post kö att skickas. Kontrollera {0} för status." + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "Godkänd Belopp" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "Sanktionerad Belopp (Bolag Valuta)" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "Godkänd Belopp kan inte vara högre än Fordring Belopp på rad {0}." + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "Schemalagd Datum/Tid" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "Resultat Intjänad" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "Resultat måste vara lägre än eller lika med 5" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "Resultat" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "Sök för Jobb" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "Välj Tillämpliga Komponenter för Övertidstyp" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "Välj Intervju Runda" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "Välj Intervju" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "Välj Månad för Obetald Frånvaro Återföring" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "Välj Betalning Konto att skapa Bank Post" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "Välj Löneintervall" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "Välj Löneperiod" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "Välj Egenskaper" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "Välj Skift Begäran" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "Välj Villkor" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "Välj Användare" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "Välj Personal att hämta Förskott." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "Välj anställd som du vill tilldela frånvaro för." + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "Välj Personal." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "Välj Frånvaro Typ som sjukfrånvaro, privilegiefrånvaro, tillfällig frånvaro, osv." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "Välj datum efter vilket denna frånvaro tilldelning ska upphöra." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "Välj datum från vilket denna frånvaro tilldelning ska gälla." + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "Välj slut datum för Frånvaro." + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "Välj lönekomponenter vars totala summa ska användas från lönespecifikation för att beräkna övertid ersättning per timme." + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "Välj start datum för Frånvaro." + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "Välj detta för att skift tilldelningar ska skapas automatiskt på obestämd tid." + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "Välj typ av frånvaro personal kommer att ansöka om, t. ex. sjuk frånvaro, privilegierad frånvaro, tillfällig frånvaro osv." + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "Frånvaro beviljas av:" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "Själv Bedömning" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "Pågående Självbedömning: {0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "Själv Bedömning Resultat" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "Själv Resultat" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "Självlärd" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "Självgodkännande för Utlägg Anspråk är inte tillåtet" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "Självgodkännande av frånvaro är inte tillåtet" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "Seminarium" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "Skicka E-post Vid" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "Skicka Avgång Frågeformulär" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "Skicka Avgång Frågeformulär" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "Skicka Intervju Återkoppling Påminnelse" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "Skicka Intervju Påminnelse" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "Skicka Frånvaro Meddelande" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "Avsändare Kopia" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "Kunde inte skicka på grund av saknad e-post information för personal: {1}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "Skickat: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "Sep" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "Avgång Aktiviteter" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "Avgång Datum" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "Service Detaljer" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "Service Kostnad" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "Ange \"Från (År)\" och \"Till(År)\" till 0 för ingen övre och nedre gräns." + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "Ange Tilldelning Detaljer" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "Ange Frånvaro Detaljer" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "Ange avgång datum för personal: {0}" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "Ange filter att Hämta Personal" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "Ange öppning saldo för inkomster och skatter från tidigare arbetsgivare" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "Ange filter (frivilligt) att söka personal för Bedömning." + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "Ange Standard Konto för {0} {1}" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "Ange Intervall för Helg Påminnelser " + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "Ange egenskaper som ska uppdateras i Personal Tabell vid befordran" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "Ange status till {0} om det erfordras." + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "Ange {0} för vald personal" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "Inställningar Saknas" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "Stäm av mot Förskott" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "Stäm av alla skulder och fordringar innan godkännade" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "Delat dokument med användare {0} med \"Godkänn\" behörighet" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Skift & Närvaro" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "Skift Faktisk Slut" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "Skift Faktisk Slut Tid" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "Skift Faktisk Start" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "Skift Faktisk Start Tid" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "Skift Tilldelning" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "Skift Tilldelning Detaljer" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "Skifttilldelning Historik" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "Skift Tilldelning Verktyg" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "Skift Tilldelning: {0} skapad för Personal: {1}" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "Skift tilldelningar skapade för schema mellan {0} och {1} via bakgrundsjobb" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "Skift Närvaro" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "Skift Detaljer" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "Shift Slut" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "Skift Slut Tid" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "Skift Plats" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "Skift Begäran" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "Skift Begäran Godkännare" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "Skift Begäran Filter" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "Skift Begäran som slutar före detta datum kommer att exkluderas." + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "Skift Begäran som startar före detta datum kommer att exkluderas." + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "Skift Schema" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "Skift Schema Tilldelning" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "Skift Inställningar" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "Skift Start" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "Skift Start Tid" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "Skiftstatus" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "Skift Tider" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "Skift Verktyg" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "Skift Typ" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "Skift tilldelningar för {0} efter {1} har redan skapats. Ändra {2} datum till ett datum senare än {3} {4}" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "Skift är uppdaterad till {0}." + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Skift" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "Visa Personal" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "Visa Frånvaro Saldo på Lönespecifikation" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "Visa Frånvaro för alla Avdelning Medlemmar på Kalender" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "Visa Lönespecifikation" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "Visning" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "Sjuk Frånvaro" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "Singel Tilldelning" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "Färdighet" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "Färdighet Bedömning" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "Färdighet Namn" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "Färdigheter" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "Hoppa över Automatisk Närvaro" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "Hoppar över Löneart tilldelning för följande Personal, eftersom Löneart tilldelning redan finns mot dem. {0}" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "Källa och Bedömning" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "Käll och Mål Skift kan inte vara desamma" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "Sponsrad Belopp" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "Bemanning Detaljer" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "Bemanning Plan" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "Bemanning Plan Detalj" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "Bemanning Plan {0} finns redan för Befattning {1}" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "Standard Multiplikator" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "Standard Skatt Dispans Belopp" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "Standard Arbets Timmar" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "Start och Slut Datum inte i giltig Löneeriod, kan inte beräkna {0}." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "Startdatum kan inte vara senare än slutdatum" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "Startdatum kan inte vara senare än slutdatum." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "Start Datum:{0}" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "Starttid och sluttid kan inte vara samma." + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "Statistisk Komponent" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "Status för andra halvan" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "Lager Optioner" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "Tillåt inte Användare att skapa Frånvaro Ansökningar på följande dagar." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "Strikt baserat på Logg Typ i Personal Stämplingar" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "Lönearter är tilldelade" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "Godkännande Datum" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "Godkännade Misslyckad" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "Godkännande av {0} före {1} är inte tillåtet" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "Godkänn Återkoppling" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "Godkänn Nu" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "Godkänn Övertid Specifikationer" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "Godkänn Verifikat" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "Godkänn Lönespecifikation" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "Godkänn denna ledighet ansökan för att bekräfta." + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "Godkänn detta för att skapa Anställning Post" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "Godkänn via Lönepost" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "Godkänner Lönespecifikationer och skapar Journal Post..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "Godkänner Lönespecifikationer..." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "Dotterbolag har redan planerat för {1} lediga tjänster till en budget på {2}. Bemanningsplan för {0} ska tilldela fler lediga tjänster och budget för {3} än planerat för dotterbolag" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "Skapad {0} för personal:" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "{0} {1} för följande personal:" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "Summa av alla tidigare tabeller" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "Summan av förmånsbelopp {0} överskrider maxgräns för {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "Översikt Vy" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "Synkronisera {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "Syntaxfel" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "Syntaxfel i Tillstånd: {0} i Inkomst Skatt Tabell" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "Ta Exakta Fullbordade År" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr " Skatt & Förmåner" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "Skatt Avdragen Till Datum" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "Skatt Undantag Kategori" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "Skattbefrielse Deklaration" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "Skatt Undantag Verifikat" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "Skatt Inställningar" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "Skatt på Extra Lön" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "Skatt på Flexibel Förmån" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "Beskattningbar Inkomst Till Datum" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "Gräns för ej beskattningsbar inkomst" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "Skatt Tabell" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "Skatt Tabeller" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "Skatter & Avgifter" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "Moms och Avgifter på Inkomst Skatt" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "Taxi" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "Team Förskott" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "Team Anspråk" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "Team Frånvaro" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "Team Begäran" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "Team Uppdateringar" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "Anställning" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "Tack för din ansökan." + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "Valuta för {0} ska vara samma som bolag standard valuta. Välj annan konto." + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "Datum då Lönekomponent med Belopp kommer att bidra för Inkomst/Avdrag i Lönespecifikation. " + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "Dag i Månaden då frånvaro ska tilldelas" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "Dag(ar) som man ansöker om frånvaro är helg dagar. Du behöver inte ansöka om frånvaro." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "Dagarna mellan {0} och {1} är inte giltiga helgdagar." + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "Första godkännare i lista kommer att anges som standard Godkännare." + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "Bråkdel av dagslön per frånvaro ska vara mellan 0 och 1" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "Bråkdel av dagslön som ska betalas för halvdags närvaro" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "Parametrar för denna rapport beräknas baserat på {0}. Ange {0} i {1}." + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "Parametrar för denna rapport beräknas baserat på {0}. Ange {0} i {1}." + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "Lönespecifikation skickad via e-post till Personal kommer att vara lösenordsskyddad, lösenord kommer att genereras baserat på lösenord regel." + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "Tid efter Skift Start Tid när Instämpling beaktas som sen (minuter)." + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "Tid före Skift Slut Tid när Utstämpling betraktas som tidig (Minuter)." + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "Tiden före Skift Start tid under vilken Personal Stämpling anses vara Närvaro." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "Teori" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "Det finns mer helger än arbetsdagar denna månad." + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "Det finns inga efterskott skillnader mellan befintliga och nya löneart komponenter." + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "Det finns inga lediga jobb inom bemanning plan {0}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "Det finns ingen Löneart tilldelad till {0}. Tilldela Löneart först." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "Det finns ingen personal med Löneart: {0}. Tilldela {1} till personal för att förhandsgranska Lönespecifikation" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "Dessa Frånvaro är helgdagar som är tillåtna av Bolaget, men att använda dem är valfri för Personal." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "Denna åtgärd förhindrar att ändringar görs i länkad återkoppling/mål för bedömning." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "Denna stämpling sker utanför tilldelade skifttider och kommer inte att beaktas för närvaro. Om ett skift är tilldelat, justera dess tidsfönster och hämta skift igen." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "Denna kompensation frånvaro gäller från och med {0}." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "Personal har redan logg med samma tidstämpel. {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "Detta fel kan bero på ogiltig formel eller villkor." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "Det här felet kan bero på ogiltig syntax." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "Detta fel kan bero på att fält saknas eller tagits bort." + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "Detta fält låter dig ange maximal antal efterföljande frånvaro anställd kan ansöka om." + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "Detta fält anger maximal antal frånvaro som tilldelas årligen för denna Frånvaro Typ vid skapande av Frånvaro Regel" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "Detta baseras på Personal Närvaro" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "Denna metod är endast avsedd för utvecklarläge" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "Detta kommer att skriva över skatt komponent {0} på lönespecifikation och skatt kommer inte att beräknas baserat på inkomst Skatt Tabeller" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "Detta kommer att godkänna Lönespecifikation och skapa Beräknad Journal Post. Vill du fortsätta?" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "Tid efter Avslutad Skift under vilken Utstämpling anses vara Närvaro." + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "Tid det tog att fylla öppna positioner" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "Tidsram" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "Tidsram" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "Tidrapport Detaljer" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "Tidpunkt" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "Till Belopp" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "Till Datum ska vara senare än Från Datum" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "Till Användare" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "För att tillåta detta, aktivera {0} under {1}." + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "För att ansöka om halv dag frånvaro, välj här Halv Dag och välj också datum till halv dag frånvaro." + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "Till Datum kan det inte vara lika eller tidiggare än Från Datum" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "Till Datum kan inte vara senare än Personal Avgång Datum." + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "Till Datum kan inte vara tidigare än Från Datum" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "Till Datum kan det inte vara senare än Personal Avgång Datum" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "Till Datum kan inte vara tidiggare än Från Datum" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "För att skriva över lönekomponent belopp för skattkomponent, aktivera {0}" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "Till (År)" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "Till(År) år kan inte vara tidigare än Från(År)" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "Idag är {0}'s födelsedag 🎉" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "Idag {0} på vårt Bolag! 🎉" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "Idag {0} fyller {1} {2} hos oss! 🎉" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "Totalt Frånvarande" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "Totalt Ackumulerad" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "Totalt Faktisk Belopp" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "Totalt Förskott Belopp" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "Totalt Förskott Belopp (Bolag Valuta)" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "Totalt Tilldelad Frånvaro" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "Totalt Tilldelad Frånvaro" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "Totalt Belopp Återbetald" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "Totalt Belopp kan inte vara noll" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "Totalt Återställning Kostnad för Tillgångar" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "Totalt Fordrad Belopp" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "Totalt Begärd Belopp (Bolag Valuta)" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "Totalt Antal Dagar Utan Lön" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "Totalt Deklarerad Belopp" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "Totalt Avdrag" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "Totalt Avdrag (Bolag Valuta)" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "Totalt Tidiga Avgångar" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "Total Inkomst" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "Totala Inkomster" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "Totalt Uppskattad Budget" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "Totalt Uppskattad Kostnad" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "Totalt Valutaväxling Resultat" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "Totalt Undantag Belopp" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "Totalt Utlägg (via Utlägg)" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "Totalt Utlägg (via Utlägg)" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "Totalt Mål Resultat" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "Totalt Brutto Lön" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "Tottalt Timmar (T)" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "Totalt Inkomst Skatt" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "Räntebelopp" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "Totalt Sena Ankomster" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "Totalt Frånvaro Dagar" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "Totalt Frånvaro" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "Totalt Antal Frånvaro ({0})" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "Totalt Tilldelad Frånvaro" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "Totalt Uttagen Frånvaro" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "Låneåterbetalning" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "Totalt Netto Lön" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "Totalt Ofakturerade Timmar" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "Total Övertid" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "Totalt Betalt Belopp" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "Totalt Betalning" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "Total Utbetalning" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "Totalt Närvarande" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "Totalt Huvudbelopp" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "Totalt Fordring Belopp" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "Totalt Avgångar" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "Beviljad Belopp" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "Totalt Sanktionerad Belopp (Bolag Valuta)" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "Totalt Resultat" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "Totalt Själv Resultat" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "Totalt Förskott Belopp får inte vara högre än Totalt Godkänd Belopp" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "Totalt tilldelad frånvaro är mer än maximum tillåtet för {0} frånvaro typ för {1} under period" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "Totalt antal tilldelad frånvaro {0} kan inte vara mindre än redan godkänd frånvaro {1} för period" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "Totalt i Ord" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "Totalt I Ord (Bolag Valuta)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "Totalt tilldelad frånvaro får inte överstiga årlig tilldelning på {0}." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "Totalt tilldelad frånvaro erfordras för Frånvaro Typ {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "Summan av alla personal förmåner kan inte vara högre än Maximal Förmån Belopp {0}" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Totalt lön bokförd mot denna komponent för denna personal från början av året (löneperiod eller bokföringsår) fram till aktuell lönespecifikation slutdatum." + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "Totalt lön bokförd för personal från början av månaden fram till aktuell lönespecifikation slutdatum." + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "Totalt lön bokförd för denna personal från början av året (löneperiod eller bokföringsår) fram till aktuell lönespecifikation slutdatum." + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "Total vikt för alla {0} måste uppgå till 100 %. För närvarande är det {1} %" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "Totalt antal Arbetsdagar per År" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "Totalt arbetstid ska inte vara högre än maximum arbetstid {0}" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "Tåg" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "Utbildarens E-post" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "Utbildarens Namn" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "Utbildning" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "Utbildning Datum" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "Utbildning Händelse" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "Utbildning Händelse Personal" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "Utbildning Händelse:" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "Utbildning Händelser" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "Utbildning Återkoppling" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "Utbildning Program" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "Utbildning Resultat" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "Utbildning Resultat Personal" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "Utbildning" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "Utbildningar (Denna Vecka)" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "Transaktioner kan inte skapas för en inaktiv personal {0}." + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "Överföring Datum" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "Resa" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "Rese Förskott Erfordras" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "Resa Från" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "Resefinansiering" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "Reseplan" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "Resebegäran" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "Resebegäran Kostnad" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "Resa Till" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "Resetyp" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "Typ av Verifikat" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "Kunde inte hämta din position" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "Avarkivera" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "Oanvänd Belopp" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "Ej Begärd Belopp (Bolag Valuta)" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "Under Recension" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "Ta bort länk till betalning" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "Ej Länkad Närvaro post från Personal Stämplingar: {}" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "Olänkade Loggar" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "Oregistrerad Närvaro för dagar" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "Omärkta stämplingsloggar hittade" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "Oanmälda Dagar" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "Ej Angiven Personal Rubrik" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "Ej Angiven Personal HTML" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "Oanmälda Dagar" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "Obetald Ackumulerad" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "Obetald Utlägg" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "Oreglerad" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "Oreglerade Transaktioner" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "Ej Godkännda Uppskattningar" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "Ej Spårade Timmar" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "Ej Spårade Timmar (U)" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "Oanvänd Frånvaro" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "Kommande Helgdagar" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "Kommande Helgdagar Påminnelse" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "Kommande Skift" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "Uppdatera Kostnad" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "Uppdatera Jobb Sökande" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "Uppdatera Framsteg" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "Uppdatera Svar" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "Uppdatera Lönearter" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "Uppdatera Status" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "Uppdatera Moms" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "Uppdaterade status från {0} till {1} för datum {2} i närvaro post {3}" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "Uppdaterade status för Jobb Sökande till {0}" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "Uppdaterade status för Jobb Erbjudande {0} för länkad Jobb Sökande {1} till {2}" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "Uppdaterade status för länkad Jobb Sökande {0} till {1}" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "Importera Närvaro" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "Ladda upp HTML" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "Ladda upp bilder eller dokument" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "Ladda Upp..." + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "Övre Intervall" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "Använd Frånvaro" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "Använd Frånvaro" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "Lediga Jobb" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "Antal Lediga Jobb kan inte vara lägre än Antal Aktuella Lediga Jobb" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "Lediga Jobb Uppfyllda" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "Validera Närvaro" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "Validerar Personal Närvaro..." + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "Värde / Beskrivning" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "Värde saknas" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "Variabel" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "Variabel baserad på Beskattningsbar Lön" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "Vegetarian" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "Fordon Kostnader" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "Fordon Logg" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "Fordon Service" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "Fordon Service Artikel" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "Visa Mål" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "Visa Frånvaro Historik" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "Visa Lönespecifikationer" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "Violett" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "Varning: Lånehantering modul är separerad från System." + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "Varning: Otillräckligt Frånvaro Saldo för Frånvaro Typ {0} i denna tilldelning." + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "Varning: Otillräckligt Frånvaro Saldo för Frånvaro Typ {0}." + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "Varning: Frånvaro Ansökan innehåller följande spärrade datum" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "Varning: {0} har redan en aktiv Skift Tilldelning {1} för några/alla dessa datum." + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "Webbplats Lista" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "Helg Multiplikator" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "Av Vikt (%)" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "När satt till 'Inaktiv', kommer personal med motstridiga aktiva skift inte att uteslutas." + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "Medan tilldelning för kompensation frånvaro skapas eller uppdateras automatiskt vid godkännade av begäran om kompensation frånvaro." + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "Varför är denna kandidat kvalificerad för denna position?" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "Kvarhållen" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "Arbetsjubileum" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "Arbetsjubileum Påminelse" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "Arbete Slut Datum" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "Arbetserfarenhet Beräkning Sätt" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "Arbete Från Datum" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "Hemarbete" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "Erfarenhet" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "Arbetsöversikt för {0}" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "Arbete Under Helg" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "Arbetsdagar" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "Arbetsdagar och Tid" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "Arbetstid Beräkning baserat på" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "Arbetstid Tröskel för Frånvarande" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "Arbetstider Tröskel för Halv dag" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "Arbetstid under vilken Frånvaro anges. (Noll att inaktivera)" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "Arbetstider under vilka Halvdag anges. (Noll att inaktivera)" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "Verkstad" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "Hittills i År" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "Hittills i År (Bolag Valuta)" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "Årlig Belopp" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "Årlig Förmån" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "Ja, Fortsätt" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "Behörighet saknas för att godkänna frånvaro på Spärrad Datum" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "Du är inte närvarande hela dagen/dagarna mellan de dagar du begär kompensation frånvaro för" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "Du kan inte definiera flera tabeller om du har tabell utan nedre och övre gräns." + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "Man kan inte begära din Standard Skift: {0}" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "Du kan bara planera för upp till {0} lediga platser och budget {1} för {2} enligt bemanning plan {3} för moderbolag {4}." + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "Du kan bara ansöka om Frånvaro Uttag för giltig Uttag Belopp" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "Du kan bara ladda upp JPG, PNG, PDF, TXT eller Microsoft Dokument." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "Du kan inte återföra mer än total antal obetald frånvaro dagar {0}. Du har redan återfört {1} dagar för denna personal." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "Du har inte behörighet att slutföra denna åtgärd" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "Du har inga förskott" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "Du har inga tilldelade ledigheter" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "Du har inga aviseringar" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "Du har inga begäran" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "Du har inga kommande helgdagar" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "Du har inga kommande skift" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "Du kan lägga till ytterligare detaljer, om någon, och skicka erbjudande." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "Du måste befinna dig inom {0} meter från din arbetsplats för att stämpla." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "Du var bara närvarande under halvdag den {}. Kan inte ansöka om heldag kompensation ledighet" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "Din Intervju är ombokad från {0} {1} - {2} till {3} {4} - {5}" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "Ditt lösenord har upphört att gälla. Återställ ditt lösenord för att fortsätta" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "aktiv" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "baserat på" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "annullering" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "annullerad" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "skapa/godkänn" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "skapad" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "johndoe@mail.com" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "ändra_halvdags_status" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "eller för Personal Avdelning: {0}" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "process" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "bearbetat" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "resultat" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "resultat" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "recension" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "recensioner" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "godkänd" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "via Lönekomponent synk" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "år" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "år" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "{0} & {1}" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "{0} & {1} mer" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "{0} : {1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "{0}
    Detta fel kan bero på att fält saknas eller tagits bort." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "{0} Bedömning(ar) är inte godkännda ännu" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "{0} Fält" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "{0} Saknas" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "{0} Rad #{1}: Formel är angiven men {2} är inaktiverad för Lönekomponent {3}." + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "{0} Rad #{1}: {2} måste vara aktiverad för att formen ska beaktas." + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "{0} Olästa" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} som redan tilldelats för Personal {1} för period {2} till {3}" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0} finns redan för Personal {1} och period {2}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "{0} har redan Skift Tilldelning för några/alla dessa datum," + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "{0} gäller efter {1} arbetsdagar" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "{0} saldo" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "{0} fyller {1} {2}" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "{0} skapades!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "{0} raderad!" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "{0} misslyckad!" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "{0} har {1} aktiverat" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "{0} är Beräkning Komponent och detta kommer att registreras som en utbetalning i Personal Förmåner Register" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "{0} är ogiltig Närvaro Status." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "{0} är inte helgdag" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "{0} är inte tillåtern att godkänna Intervju Återoppling för Intervju: {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} finns inte i valfri Helg Lista" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "{0} Frånvaro tilldelad" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "{0} frånvaro från tilldelning för {1} frånvaro typ har gått ut och kommer att behandlas under nästa schemalagda jobb. Det rekommenderas att radera dem nu innan du skapar nya frånvaro princip tilldelning." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "{0} ledigheter tilldelades manuellt av {1} {2}" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} måste godkännas" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "{0} av {1} Slutförda" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "{0} klar!" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "{0} lyckad!" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "{0} till {1} i personal?" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "{0} uppdaterad!" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "{0} lediga platser och {1} budget för {2} redan planerade för dotterbolagför {3}. Du kan bara planera för upp till {4} lediga platser och budget {5} enligt bemanningsplan {6} för moderbolag {3}." + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "{0} kommer att uppdateras för följande Lönearter: {1}." + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "{0} {1} {2}?" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "{0}. Kontrollera fellogg för mer information." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}: Personal E-post hittades inte, därför skickades inte E-post" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "{0}: Från {0} av typ {1}" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "{0}d" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "{} " + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "{} Accepterad" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "{} Aktiva" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "{} Utkast" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "{} Ej Uttagna" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "{} {} öppen för detta position." + diff --git a/apps/erpnext/src/hrms/hrms/locale/ta.po b/apps/erpnext/src/hrms/hrms/locale/ta.po new file mode 100644 index 000000000..4df5b9dab --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/ta.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Tamil\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: ta\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: ta_IN\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/th.po b/apps/erpnext/src/hrms/hrms/locale/th.po new file mode 100644 index 000000000..03b34c547 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/th.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Thai\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: th\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: th_TH\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr " ยกเลิกการเชื่อมโยงการชำระเงินเมื่อยกเลิกเงินล่วงหน้าของพนักงาน" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "“ตั้งแต่วันที่” ไม่สามารถมากกว่าหรือเท่ากับ “ถึงวันที่” ได้" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "มาสเตอร์ & รายงาน" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "คำขอจ้างงานสำหรับตำแหน่ง {0} ที่ขอโดย {1} มีอยู่แล้ว: {2}" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "ขาดงาน" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "เลขที่บัญชี" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "จำนวนการเข้างาน" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "เปลี่ยนสถานะจาก {0} เป็น {1} ผ่านคำขอการเข้างาน" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "ครึ่งวัน" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "มีใบรับรอง" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "ซ้าย" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "ปฏิเสธ" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "แถว {0}# จำนวนเงินที่จ่ายไม่สามารถมากกว่าจำนวนเงินล่วงหน้าที่ร้องขอได้" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "กะและการเข้างาน" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "กะ" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "ปี" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/tr.po b/apps/erpnext/src/hrms/hrms/locale/tr.po new file mode 100644 index 000000000..3f1ac08e4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/tr.po @@ -0,0 +1,11514 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Turkish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: tr\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: tr_TR\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "Çalışan Avansı İptalinde Ödemeyi Bağlantıdan Kaldır" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "\"Başlangıç Tarihi\", \"Bitiş Tarihi \"nden büyük veya eşit olamaz" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "% Kullanım (B + NB) / T" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "% Kullanım (B / T)" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "'employee_field_value' ve 'timestamp' gereklidir." + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ") {0} için" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "...Personelleri Getir" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "05:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "08:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "Aşağıdaki personeller için baz tutar belirlenmemiştir: {0}" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "Örnek: SAL-{first_name}-{date_of_birth.year}
    Bu, SAL-Jane-1972 gibi bir şifre üretir." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "Toplam Verilen İzinler, izin dönemindeki gün sayısından fazladır" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "

    Yardım

    \n\n" +"

    Notlar:

    \n\n" +"
      \n" +"
    1. Personelin brüt maaşını kullanmak için base alanını kullanın
    2. \n" +"
    3. Koşullar ve formüllerde Maaş Bileşeni kısaltmalarını kullanın. BS = Brüt Maaş
    4. \n" +"
    5. Personel detayları için koşullar ve formüllerde alan adını kullanın. İstihdam Türü = employment_typeŞube = branch
    6. \n" +"
    7. Maaş Bordrosundaki alan adını koşullar ve formüllerde kullanın. Ödeme Günleri = payment_daysÜcretsiz izin = leave_without_pay
    8. \n" +"
    9. Doğrudan Miktar da Koşula bağlı olarak girilebilir. Örnek 3'e bakın
    \n\n" +"

    Örnekler

    \n" +"
      \n" +"
    1. base üzerinden Brüt Maaş hesaplama\n" +"
      Koşul: base < 10000
      \n" +"
      Formül: base * .2
    2. \n" +"
    3. Brüt Maaşa dayalı HRA hesaplamaBS \n" +"
      Koşul: BS > 2000
      \n" +"
      Formül: BS * .1
    4. \n" +"
    5. İstihdam Türüne dayalı Gelir Vergisi Kesintisi hesaplamaemployment_type \n" +"
      Koşul: employment_type==\"Stajyer\"
      \n" +"
      Miktar: 1000
    6. \n" +"
    " + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "

    Koşul Örnekleri

    \n" +"
      \n" +"
    1. 31-12-1937 ile 01-01-1958 tarihleri arasında doğan personelden vergi alınması (60 ile 80 yaş arası personel)
      \n" +"Koşul: date_of_birth>date(1937, 12, 31) ve date_of_birth<date(1958, 01, 01)

    2. Personelin cinsiyetine göre vergilendirme
      \n" +"Koşul: gender==\"Erkek\"

    3. \n" +"
    4. Maaş Bileşeni üzerinden vergilendirme
      \n" +"Koşul: base > 10000
    " + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "İşlemler & Raporlar" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Kayıtlar & Raporlar" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "
    {0}{1}
    " + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "{1} tarafından talep edilen {0} için zaten bir İş Talebi mevcut: {2}" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "Ekibimiz için önemli bir tarihin hatırlatması." + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "{1} ve {2} arasında bir {0} var (" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "Gelmedi" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "Devamsızlık Günleri" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "Devamsızlık Kayıtları" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "Hesap No" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "{0} Hesabı, {1} Şirketi ile eşleşmiyor" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "Hesap Bilgisi & Ödeme" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "Muhasebe Raporları" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "Maaş Bileşeni için ayarlanmamış hesaplar {0}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "{0} - {1} tarihleri arasında maaşlar için Günlük Tahakkuk Girişi" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "Teslim Üzerine Eylem" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "İşlem İsmi" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "Gerçek Tutar" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "Paraya Çevrilebilir Günler" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "Gerçek bakiyeler mevcut değil çünkü izin başvurusu farklı izin atamalarını kapsıyor. Yine de, bir sonraki atamada telafi edilecek izinler için başvuruda bulunabilirsiniz." + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "Gün Bazında Tarih Ekle" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "Personel Özelliği Ekle" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "Harcama Ekle" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "Geri Bildirim Ekle" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "Vergi Ekle" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "Ayrıntılara Ekle" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "Önceki ödeneklerden çalıştırman izinleri ekle" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "Önceki izin döneminin atamasından kullanılmayan izinleri bu atamaya ekle" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "Maaş yapısında vergi bileşeni olmadığı için, Maaş Bileşeni ana kaydından vergi bileşenleri eklendi." + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "Ayrıntılara eklendi" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "ek miktar" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "Ekle Bilgi " + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "Ek PF" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "Ek Ücret" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "Ek Maaş" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "Yönlendirme bonusu için Ek Maaş yalnızca {0} statüsündeki Personel Yönlendirmesine karşı oluşturulabilir" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "Bu maaş bileşeni için {0} etkinleştirilmiş Ek Maaş bu tarih için zaten mevcut" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "Ek Maaş: {0} Maaş Bileşeni için zaten mevcut: {1} {2} dönem ve {3}" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "Organizatörün Adresi" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "Gelişmiş" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "Gelişmiş Filtreler" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "Tüm Hedefler" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "Tüm işler" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "Tahsis edilen tüm varlıklar teslim edilmeden önce iade edilmelidir" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "Personel oluşturma için zorunlu olan tüm görevler henüz tamamlanmadı." + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "İzin Politikasına Göre Tahsis Et" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "İzin Tahsisi" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "{0} personele izin tahsis edilsin mi?" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "Güne Göre Tahsis Et" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "Ayrılmış İzinler" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "İzin Tahsisi" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "Tahsis Süresi Bitti!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "Personelin Giriş/Çıkışı Mobil Uygulama ile Yapmasına İzin Ver" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "Paraya çevirmeye İzin Ver" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "Coğrafi Konum İzlemeye İzin Ver" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "Personel İzin Talebine İzin Ver (İş Günü)" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "Aynı Tarih İçin Birden Fazla Vardiya Atamalarına İzin Ver" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "Eksi Bakiyeye İzin Ver" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "Fazla Tahsis Etmeye İzin Ver" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "Vergi Muafiyetine İzin Ver" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "Kullanıcıya izin ver" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "Kullanıcılara izin ver" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "Vardiya bitiş zamanından sonra check-out yapılmasına izin ver (dakika olarak)" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "Blok günleri için aşağıdaki kullanıcıların izin uygulamalarını onaylamasına izin ver." + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "Tahsis edilen dönemdeki gün sayısından daha fazla izin tahsis edilmesine olanak sağlar." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "Aynı vardiyada alternatif girişler ve girişler" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "Formüle Dayalı Tutar" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "Formüle Dayalı Tutar" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "Gider Talebi yoluyla talep edilen tutar" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "Harcama tutarı" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "Maaş üzerinden kesinti yapılması planlanan tutar" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "Tutar sıfırdan az olmamalıdır" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "Bu avansa karşılık ödenen tutar" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "Yıllık Tahsis" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "Yıllık Tahsis Aşıldı" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "Yıllık Maaş" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "Yıllık Vergilendirilebilir Tutar" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "Diğer Ayrıntılar" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "Kayıtlara geçmesi gereken başka herhangi bir açıklama, kayda değer çaba var mı?" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "Uygulanabilir Kazanç Bileşeni" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "Çalışan Oryantasyonu durumunda geçerlidir" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "Başvuru Sahibinin E-posta Adresi" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "Başvuru İsmi" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "Başvuru Puanı" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "İş Başvurusu" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "Başvuranın ismi" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "Başvuru" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "Başvuru Durumu" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "Başvuru süresi iki ödenek boyunca kaydırılamaz" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "Uygulama süresi dışında izin tahsisi dönemi olamaz" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "Alınan Başvurular" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "Alınan başvurular:" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "Şirket için geçerli" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "İzinler Onayla" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "Şimdi Başvur" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "Randevu Tarihi" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "Randevu mektubu" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "Randevu Mektubu Şablonu" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "Randevu Mektubu içeriği" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "Değerlendirme" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "Değerlendirme Döngüsü" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "Değerlendirme Hedefi" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "Performans Değerlendirme" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "Değerlendirme Bağlantısı" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "Değerlendirme Genel Bakışı" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "Değerlendirme Şablonu" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "Değerlendirme Şablonu Hedefi" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "Değerlendirme Şablonu Eksik" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "Değerlendirme Şablonu Başlığı" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "Bazı Görev Tanımları için Değerlendirme Şablonu bulunamadı." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "Değerlendirme oluşturma sıraya alındı. Birkaç dakika sürebilir." + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "Değerlendirme {0} bu Değerlendirme Döngüsü veya çakışan dönem için {1} Personeli için zaten mevcut" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "{0} Değerlendirmesi {1} Personeline ait değildir" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "Değerlendirilen" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "Değerlendirilenler: {0}" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "Çırak" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "Onay" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "Onay Durumu" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "Onay Durumu 'Onaylandı' veya 'Reddedildi' olmalıdır" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "Onayla" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "Onaylandı" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "Onaylayan" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "Onaylayanlar" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "Nisan" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "Bu dosyayı silmek istediğinizden emin misiniz" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "{0} öğesini silmek istediğinizden emin misiniz?" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "Seçilen maaş bordrolarını e-posta ile göndermek istediğinizden emin misiniz?" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "Personel Refransını reddetmek istediğinizden emin misiniz?" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "Varış Tarihsaat" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "Atanan Maaş Yapınıza göre, faydalar için başvuruda bulunamazsınız." + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "{0} için Varlık Kurtarma Maliyeti: {1}" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "Tahsis Edilen Varlıklar" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "Maaş Yapısınının {0} personellere atanmasını onaylıyor musunuz?" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "Vardiya Ata" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "Vardiya Programını Ata" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "Atama Yapısı" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "Maaş Yapısı Atanıyor" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "Yapılar Atanıyor..." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "Yapılar atanıyor..." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "Atamanın Temeli" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "İş İlanı İlişkilendir" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "İlgili Belge" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "İlgili Alan" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "En az bir mülakat seçilmelidir." + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "Kanıt Ekle" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "Devamlılık" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Devamlılık Sayısı" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "Devamlılık Tarihi" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "İlk Tarih" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "Devamlılık için Başlangıç ve Bitiş Tarihi zorunludur" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "Devamlılık ID" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "Geldi Olarak Kaydedildi" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "Devamlılık Talebi" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "Giriş-Çıkıi Talebi Geçmişi" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "Devamlılık Ayarları" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "Son Tarih" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "Devamlılık Güncellendi" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "Devamlılık Uyarıları" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "Devamlılık tarihi {0}, {1} Personelin işe başlama tarihi olan {2} değerinden önce olamaz." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "Bu kritere göre tüm personellerin devamlılığı zaten işaretlenmiştir." + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "Seçilen maaş dönemi tarihleri arasında tüm personelin devamlılığı işaretlendi." + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "Devamlılık Başarıyla Kaydedildi" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "Bugün tatil olduğundan Personel {0} için devamlılık kaydedilemedi." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "Personel {0} için devamlılık kaydedilmedi çünkü {1} izinli." + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "Devamlılık, yalnızca bu tarihten sonra otomatik olarak işaretlenecek." + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "Katılımcılar" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "Ayrılan" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "Ağustos" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "Otomatik Devamlılık Ayarları" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "Otomatik İzin Ücreti Ödemesi" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "Personele tahsis edilen tüm varlıklar varsa bunları otomatik olarak getirir" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "Mevcut İzinler" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "Mevcut İzinler" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "Ortalama Geri Bildirim Puanı" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "Ortalama Puan" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "Gösterilen becerilerin ortalama değerlendirmesi" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "Ortalama Geri Bildirim Puanı" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "Ortalama Kullanım" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "Cevap Bekleniyor" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "Banka Girişleri" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "Banka Havalesi" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "Temel" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "Taban & Değişken" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "Vardiya başlama zamanından önce check-ine başlama (dakika olarak)" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "Aşağıda sizin için yaklaşan tatillerin listesini bulabilirsiniz:" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "Yarar" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "Faydalar" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "Fatura Tutarı" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "Faturalandırılan Saatler" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "Faturalandırılan Saatler (B)" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "İki Ayda Bir" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "Doğum Günü Hatırlatıcısı" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "Doğum Günü 🎂" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "Doğum Günleri" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "Blok Tarihi" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "Engellenen Günler" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "Önemli günlerdeki tatilleri engelleyin." + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "Bonus" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "Bonus Tutarı" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "Bonus Ödeme Tarihi" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "Bonus Ödeme Tarihi bir tarih olamaz" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "Bölüm: {0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "Toplu Atamalar" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "Toplu İzin Politikası Ataması" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "Toplu Maaş Yapısı Ataması" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "Varsayılan olarak, Son Puan Hedef Puanı, Geri Bildirim Puanı ve Öz Değerlendirme Puanının ortalaması olarak hesaplanır. Farklı bir formül ayarlamak için bunu etkinleştirin" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "Brüt Maaş" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "Nihai Puanı Formüle Göre Hesapla" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "Bordro Çalışma Günlerini Şuna Göre Hesaplayın" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "Gün olarak hesaplandı" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "Aramalar" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "İptal Sırada Bekliyor" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "Bitiş tarihinden sonra vardiyaya ara verilemez" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "Vardiya başlangıç tarihinden önce bölünemez" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "Vardiya Ataması: {0} Devamlılık: {1} ile bağlantılı olduğu için iptal edilemez" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "Vardiya Ataması {0}, Personel Hareketi {1} ile bağlantılı olduğu için iptal edilemez" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "Maaş Bordrosu Döneminden Önce Ayrılan Çalışan için Maaş Bordrosu Oluşturulamaz" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "Kapalı bir İş İlanı için İş Başvurusu oluşturulamaz" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "Etkin İzin Dönemi bulunamadı" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "Devreden İzinler" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "Mazeret İzni" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "Şikayet Nedeni" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "Daha fazla ayrıntı için {1} adresini kontrol edin" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "Daha fazla ayrıntı için Hata Günlüğü {0} adresini kontrol edin." + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "Giriş" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "Çıkış" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "İş Teklifi Oluşturmada Açık Pozisyonları Kontrol Et" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "Daha fazla ayrıntı için {0} adresini kontrol edin" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "Giriş" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "Giriş Tarihi" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "Çıkış" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "tarihi kontrol et" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "Hak talebi" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "İddia Edilen" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "Talep Edilen Tutar" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "Talepler" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "Temizlendi" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "Yapılandırmayı değiştirmek ve ardından maaş bordrosunu yeniden kaydetmek için {0} öğesine tıklayın" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "Kapanış Tarihi" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "Kapanış Tarihi" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "Kapanış Tarihi:" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "Kapanış Notları" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "Şirket Bilgileri" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "Telafi Bırakma Talebi" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "Telafi İzni" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "Tanıtım Tamamlanıyor" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "Bileşen özellikleri ve referansları" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "Formülasyon" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "Koşul ve Formül Yardımı" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "Koşul ve Formüller" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "Koşullar ve Formül değişkeni ve örneği" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "Konferans" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "Onayla {0}" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "Vergi Muafiyet Beyanını Göz Önünde Bulundurun" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "İşaretlenmemiş Devamlılığı Şu Şekilde Kabul Et" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "İzin Türlerini Birleştirin" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "İletişim Numarası" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "Davetiye / Duyurunun kopyaları" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "Bazı Maaş Bordroları gönderilemedi: {}" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "Hedef güncellenemedi" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "Hedefler güncellenemedi" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "Ülke Fikstürü Silme İşlemi Başarısız" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "Ülke Kurulumu başarısız oldu" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "Kurs" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "Ön Yazı" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "Ek Maaş Oluştur" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "Değerlendirmeler Oluşturun" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "Mülakat Oluştur" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "İş Başvurusu Oluştur" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "İş İlanı Oluştur" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "Yeni Personel ID Oluştur" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "Maaş Bordrosu Oluştur" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "Maaş Bordroları Oluştur" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "Vardiyaları Şu Tarihten Sonra Oluştur" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "Değerlendirmeler Oluşturuluyor" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "Ödeme Girişleri Oluşturuluyor..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "Maaş Fişleri Oluşturuluyor..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "{0} Oluşturuluyor..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "Oluşturma Tarihi" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "Oluşturulamadı" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "Maaş Yapısı Atamalarının oluşturulması sıraya alındı. Birkaç dakika sürebilir." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "Personelin Performans Geri Bildirimi ve Öz Değerlendirme sırasında değerlendirilmesi gereken kriterler" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "Para Birimi" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "Seçilen Gelir Vergisi Diliminin para birimi {1} yerine {0} olmalıdır" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "Mevcut (Şirkete Maliyeti)" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "Mevcut Sayım" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "Mevcut İşveren " + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "Mevcut İş Ünvanı" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "Mevcut Kilometre Sayacı Değeri, Son Yolölçer Değerinden büyük olmalıdır {0}" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "Geçerli Kilometre Sayacı değeri" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "Mevcut Açıklıklar" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "Mevcut Durum" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "Mevcut İş Deneyimi" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "İzin tahsisi oluşturmak/güncellemek için bu tarih adına {0} izin dönemi bulunmamaktadır." + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "Özel Aralık" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "Döngü Adı" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "Döngüler" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "Günlük Çalışma Özeti" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "Günlük Çalışma Özet Grubu" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "Günlük Çalışma Özet Grubu Kullanıcısı" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "Günlük İş Özeti Cevapları" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "Tarih tekrarlanır" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "Tarih & Gerekçe" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "Tarihe Göre" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "Bu departman için Tatillerin bloke edildiği günler." + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "Borç A/C Numarası" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "Aralık" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "Karar Bekleniyor" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "Beyannameler" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "Beyan Edilen Tutar" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "Seçilen Bordro Tarihinde Tam Vergi Kesintisi" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "Gönderilmeyen Vergi Muafiyeti Kanıtı için Vergi İndirimi" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "Kesinti" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "Kesinti Raporları" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "Maaştan Kesinti" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "Kesintiler" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "Vergi hesaplaması öncesi kesintiler" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "Varsayılan Tutar" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "Bu mod seçildiğinde varsayılan Banka / Kasa hesabı otomatik Maaş Dergisi'ne girecektir." + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "Varsayılan Baz Ücret" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "Varsayılan Personel Avans Hesabı" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "Varsayılan Gider Alacak Hesabı" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "Varsayılan Ödenecek Bordro Hesabı" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "Varsayılan Maaş Yapısı" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "Varsayılan Vardiya" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "Eki Sil" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "Sil {0}" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "Bölüm Onaycısı" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "Departman Bazında Açık Pozisyonlar" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "Departman {0} şu şirkete ait değil: {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "Departman: {0}" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "Kalkış Datetime" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "Ödeme Günlerine Göre Değişir" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "Ödeme Günlerine Bağlı" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "İş İlanının Açıklaması" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "Atama Becerisi" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "Görev Tanımı: {0}" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "Sponsorun Detayları (İsim, Yer)" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "Giriş ve Çıkış Belirleme" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "Tutarın iki kez düşülmesini önlemek için {1} bileşeni için {0} öğesini devre dışı bırakın, çünkü formülü zaten ödeme günü tabanlı bir bileşen kullanıyor." + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "Devam etmek için {0} veya {1} öğesini devre dışı bırakın." + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "Anlık Bildirimleri Devre Dışı Bırakılıyor..." + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "Toplama Dahil Etme" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "Toplama Dahil Etme" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "Bu mülakat sonucuna göre İş Başvuru Sahibinin {0} değerini {1} olarak güncellemek istiyor musunuz?" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "Belge {0} başarısız oldu!" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "Domestic (Yerli)" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "HATA ({0}): {1}" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "Erken Çıkış" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "Erken Grace Çıkış Dönemi" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "Erken Çıkışlar" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "Kazanılan İzin" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "Kazanılan İzin Sıklığı" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "Kazanılan İzinler" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "Kazanılan İzinler, zamanlayıcı aracılığıyla yapılandırılan sıklığa göre tahsis edilir." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "Kazanılan İzinler, İzin Politikasında belirlenen yıllık tahsise göre zamanlayıcı aracılığıyla otomatik olarak tahsis edilir: {0}" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "Kazanılmış İzinler, bir Personelin şirkette belirli bir süre çalıştıktan sonra kazandığı izinlerdir. Bunun etkinleştirilmesi, bu tür izinler için İzin Tahsisini 'Kazanılan İzin Sıklığı' tarafından belirlenen aralıklarla otomatik olarak güncelleyerek izinleri orantılı olarak tahsis edecektir." + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "Kazanma" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "Kazanç Bileşenleri" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "Kazançlar" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "Kazançlar & Kesintiler" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "Gider Kalemini Düzenle" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "Gider Kalemi Vergisini Düzenle" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "Başlangıç Tarihi" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "Geçerlilik Tarihi" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "İtibaren geçerli" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "Çalışan e-posta Maaş Kayma" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "E-posta Maaş Bordroları" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "E-posta Gönderildi" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "Çalışan tarafından tercih edilen e-posta tabanlı çalışana e-postalar maaş kayması" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "Personel A/C Numarası" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "Personel Avans Bakiyesi" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "Personel Avans Özeti" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "Personel Analitiği" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "Personel Devam Takip Aracı" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "Personel Yan Hakları Başvurusu" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "çalışanlara Sağlanan Fayda Uygulama Detayı" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "Fayda Talebi" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "Personele sağlanan faydalar" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "Personel Doğum Günü" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "Çalışan Yatılı Etkinliği" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "Personel Hareketi" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "Personel Puantaj Geçmişi" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "Personel Maliyet Merkezi" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "Personel Detayları" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "Çalışan E-postaları" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "Personel Çıkış Ayarları" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "Personel Çıkışları" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "Personel Geri Bildirim Kriteri" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "Personel Geri Bildirimi Değerlendirmesi" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "Personel Ünvanı" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "Personel Şikayeti" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "Çalışan Sağlık Sigortası" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "Personel Resmi" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "Personel Teşviği" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "Personel Bilgisi" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "Personel Bilgileri" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "Personel İzin Bakiyesi" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "Personel İzin Bakiyesi Özeti" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "Personel İsimlendirmesi" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "Personel Modül Tanıtımı" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "Personel Modül Tanıtımı Şablonu" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "Çalışan Diğer Gelir" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "Personel Performans Geri Bildirimi" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "Personel Terfisi" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "Personel Terfisi" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "Çalışan Mülkiyet Tarihi" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "Personel başvurusu" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "Personel Referansı {0} referans bonusu için geçerli değildir." + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "Personel Referansı" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "Personel Sorumluluğu" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "Personel Detayları" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "Personel Ayrılığı" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "Çalışan Ayırma Şablonu" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "Personel Ayarları" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "Personel Yetkinliği" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "Personel Yetkinlik Matrisi" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "Personel Yetkinlikleri" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "Personel Durumu" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "Çalışan Vergisi İstisnası Kategorisi" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "Çalışan Vergisi İstisnası Beyanı" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "Çalışan Vergisi İstisna Beyannamesi Kategorisi" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "Çalışan Vergi Muafiyeti Proof Sunumu" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "Çalışan Vergi Muafiyeti Prova Gönderme Detayı" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "Çalışan Vergi Muafiyeti Alt Kategorisi" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "çalışan eğitim" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "Personel Transferi" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "Transfer Detayları" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "Personel Transfer Detayları" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "Personel Adı" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "Personel kayıtları seçilen ayara göre oluşturulacaktır" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "Personel {0}, bu dönem içinde çakışan aktif bir Vardiyaya ({1}: {2}) zaten sahip" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "Personel {0} , bu dönem içinde çakışan {1}: {2} vardiyası için zaten başvuruda bulunmuştur" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "Personel {0} aktif değil veya yok" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "Personel {0}, {1} tarihinde izinli" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "{0} isimli Personel Eğitim Katılımcılarında bulunamadı." + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "Personel {0}, {1} tarihinde yarım gün çalışacak" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "Personeller HTML" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "Tatilde Çalışan Personeller" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "Hedefi Bulunmayan Personeller: {0}" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "Tatilde Çalışan Personeller" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "Çalışma Türü" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "Otomatik Devamlılığı Etkinleştir" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "Anlık Bildirimleri Etkinleştir" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "Anlık Bildirimler Etkinleştiriliyor..." + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "Paraya çevir" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "Muhafaza Tutarı" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "E-postalardaki Maaş Notlarını Şifrele" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "Bitiş Tarihi, Başlangıç Tarihi'nden önce olamaz" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "Bitiş tarihi: {0}" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "Bitiş saati başlangıç saatinden önce olamaz" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "Normal bir iş günü için Standart Çalışma Saatlerini girin. Bu saatler Çalışan Saat Kullanımı ve Proje Karlılığı analizi gibi raporların hesaplanmasında kullanılacaktır." + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "Dönem için tahsis etmek istediğiniz izin sayısını girin." + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "{0} girin" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "{0} oluşturulurken hata oluştu" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "{0} silinirken hata oluştu" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "Formülde veya koşulda hata var" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "Formül veya koşulda hata: Gelir Vergisi Diliminde {0}" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "Bazı satırlarda hata var" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "{0} Güncellenirken hata oluştu" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "{row_id}satırında {doctype} {doclink} değerlendirilirken hata oluştu.

    Hata: {error}

    İpucu: {description}" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "Pozisyon Başına Tahmini Maliyet" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "Değerlendirme" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "Değerlendirme Tarihi" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "Değerlendirme Yöntemi değiştirilemez çünkü bu döngü için oluşturulmuş mevcut değerlendirmeler vardır" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "Etkinlik Detayları" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "Etkinlik Bağlantısı" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "Etkinlik Yeri" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "Etkinlik Adı" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "Etkinlik Durumu" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "Her 2 Haftada Bir" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "Her 3 Haftada Bir" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "Her 4 Haftada Bir" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "Her yürütme Giriş ve Çıkış" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "Her Hafta" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "Çalışma arkadaşımızı tebrik edebilirsiniz." + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "Çalışma arkadaşlarınız {0} isimli personelin doğum gününü kutlamasını hatırlatabilirsiniz." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "Sınav" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "Tatilleri Hariç Tut" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "Gelir Vergisinden Muaf" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "Muafiyet" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "Muafiyet Kategorisi" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "Muafiyet Alt Kategorisi" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "Mevcut Kayıt" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "Çıkış Onayı" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "Çıkış Detayları" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "Çıkış Görüşmesi" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "Çıkış Görüşmesi Bekleniyor" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "Ayrılma Görüşmesi Özeti" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "Çıkış Görüşmesi {0} zaten Personel için mevcut: {1}" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "Çıkış Soruları" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "Çıkış Görüşmesi Bildirimi" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "Çıkış Mülakatı Bildirim Şablonu" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "Çıkış Mülakatı Bekleniyor" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "Çıkış Mülakatı Web Formu" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "Beklenen Ortalama Derecelendirme" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "Beklenen Zaman" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "Tahmini Maaş" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "Gerekli Beceriler" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "Gerekli Beceriler" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "Harcama Onaylayıcısı" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "Harcama Talebinde Onaylayıcı Zorunlu Olsun" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "Gider Talep Hesabı" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "Gider Talep İlerlemesi" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "Gideri Talebi Detayı" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "Gideri Talebi Türü" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "Araç girişi için Gider Talebi {0}" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "Gider Talebi {0} zaten Araç girişi için var" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "Harcama Talepleri" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "Harcama Tarihi" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "Gidermek" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "Gider Vergileri ve Masrafları" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "Gider Türü" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "Harcamalar & Avanslar" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "Tahsisin Sona Ermesi" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "Devredilen İzinlerin Sona Ermesi (Gün)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "Süresi Dolan İzinler" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "Son kullanma tarihi geçmiş izinler" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "Açıklamalar" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "Dışa Aktarılıyor..." + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "Personeller için {0} oluşturulamadı/gönderilemedi:" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "{0} ülkesinin varsayılanları silinemedi." + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "Mülakat Yeniden Planlama bildirimi gönderilemedi. Lütfen e-posta hesabınızı yapılandırın." + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "Ülke için varsayılanlar ayarlanamadı {0}." + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "Bazı izin politikası atamaları gönderilemedi:" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "İş Başvurusu Durumu güncellenemedi" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "Personeller için {0} {1} başarısız oldu:" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "Arıza Detayları" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "Şubat" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "Geri Bildirim Sayısı" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "Geri bildirim HTML" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "Geri Bildirim Puanı" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "Geri Bildirim Hatırlatma Bildirim Şablonu" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "Geri Bildirim Puanı" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "Geri Bildirim Alındı" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "Geri Bildirim Özeti" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "Mülakat için geri bildirim gönderildi {0}. Devam etmek için lütfen önceki Mülakat Geri Bildirimini {1} iptal edin." + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "Geri bildirim {0} başarıyla eklendi" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "Coğrafi Konumu Getir" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "Vardiyayı Getir" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "Vardiyaları Getir" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "Personelleri Getir" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "Vardiya Getiriliyor" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "Coğrafi konumunuz getiriliyor" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "Dosya Önizlemesi" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "Form doldurucu ve denetleyicileri" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "Dolduruldu" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "Personeli Filtrele" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "Son Karar" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "Final Puanı" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "Nihai Puan Formülü" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "İlk Check-in ve Oğul Check-out" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "İlk Gün" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "Adı " + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "Mali Yıl {0} bulunamadı" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "Filo Yönetimi" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "Esnek Faydalar" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "uçuş" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "E-Posta ile Takip Et" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "Yiyecek Grupları" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "Görev Tanımı" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "Personel" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "Formül" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "Yarım Gün Günlük Maaş Kesri" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "Kesirli Maliyet" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "Frappe HR" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "Miktardan" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "Başlangıç Tarihi Bitiş Tarihinden önce olmalıdır" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "{0} personelden çalışanın masrafından sonra tarih olamaz {1}" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "{0} personelinin çalışanlardan {1} yayınlanmasından önce olamaz." + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "Başlangıç elde etmek, çalışanın birleştirme yöntemleri daha az olamaz" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "İşçinin işe giriş yükünün önceki tarihi olamaz." + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "Buradan izinlerin paraya çevrilmesini aktif hale getirebilirsiniz." + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "Fuşya" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "Yakıt Gideri" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "Yakıt Giderleri" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "Yakıt Fiyatı" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "Yakıt Adet" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "tam mesai" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "tamamen Sponsorlu" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "Fonlanan Tutar" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "Gelecek tarihlere izin verilmiyor" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "Coğrafi Konum Hatası" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "Coğrafi konum, mevcut tarayıcınız tarafından desteklenmiyor" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "Açıklamadan Detaylar Alın" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "Çalışanları Al" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "İş Talep Formlarını Getir" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "Şablonu Getir" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "glütensiz" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "Şifre Sıfırlama sayfasına git" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "Hedef Tamamlama (%)" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "Hedef Puanı" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "Hedef Puanı (%)" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "Hedef Puanı (Ağırlıklı)" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "Hedef ilerleme yüzdesi 100'den fazla olamaz." + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "Hedef başarıyla güncellendi" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "Hedefler başarıyla güncellendi" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "Ünvan" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "Şikayet" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "Şikayet Ayrıntıları" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "Şikayet Türü" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "Brüt Ödeme" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "Brüt Ücret (Şirket Para Birimi)" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "Yılbaşından Bugüne Brüt (Şirket Para Birimi)" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "İnsan Kaynakları" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "Bordro" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "İnsan Kaynakları & Bordro Ayarları" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "İK Gösterge Paneli" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "İnsan Kaynakları Ayarları" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "İKYS" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "Yarım Gün" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "Yarım Gün Tarih" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "Yarım Gün Tarih cezaları" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "Yarım Gün Tarih Tarihinden ve Tarihi arasında olmalıdır" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "Yarım Gün Tarih, İş Başlangıç Tarihi ile İş Bitiş Tarihi arasında olmalıdır." + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "Yarım Gün Kayıtları" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "Yarım günlük tarih, başlangıç ile bitiş tarihi arasında olmalıdır" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "Sertifikası Var" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "Sağlık Sigortası" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "Sağlık Sigortası İsmi" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "Sağlık Sigortası No" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "Sağlık Sigortası Sağlayıcısı" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "Merhaba {}! Bu e-posta size yaklaşan tatilleri hatırlatmak içindir gönderilmiştir." + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "Merhaba, {0}" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "Başlayan" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "İşe Alma Ayarları" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "İsteğe Bağlı İzin İçin Tatil Listesi" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "Bu Ayın Tatilleri." + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "Bu Haftanın Tatilleri." + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "Saatlik Ücreti" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "Konut kirası {0} ile örtüşen günler ödedi" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "Muafiyet hesaplaması için gerekli ev kiralama masrafları" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "Kiralanan kiralık evlerin en az 15 gün ara olması gerekmektedir." + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "IFSC" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "IFSC Kodu" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "GİRİŞ" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "Kimlik Belgesi Numarası" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "Kimlik Belgesi Türü" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "İşaretlenirse, Maaş Fişlerindeki Yuvarlatılmış Toplam oda gizler ve devre dışı bırakır" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "İşaretliyse, tutarın tamamı, herhangi bir beyan veya kanıt sunmaktan gelir vergisi hesabından önce vergiye tabi gelirden düşülecektir." + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "Etkinleştirilirse, Vergi Muafiyeti Beyanı, gelir vergisi hesaplaması için dikkate alınması." + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "Etkinleştirilirse, tatil günlerinde devamsızlık için ödeme günlerini düşer. Varsayılan olarak, tatiller ücretli olarak kabul edilir" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "Bu bileşen Gelir Vergisi Kesintileri raporunda dikkate alınacaktır" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Etkinleştirilirse, bu bileşende belirtilen veya hesaplanan değer kazançlara veya kesintilere katkıda bulunmayacaktır. Ancak, değeri eklenebilen veya düşülebilen diğer bileşenler tarafından referans alınabilir. " + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "İşaretliyse, listelenmesi gereken her Departmana eklenmelidir" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "Seçilirse, bu bilgiler içinde belirtilen veya hesaplanan değer kazancı veya kesintilere katılmaz. Bununla birlikte, bu değer, eklenebilecek veya düşülebilecek diğer verim tarafından referans alınır." + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "İş ilanı bu tarihten sonra otomatik olarak kapatılacaktır" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "Devamlılıkları İçeri Aktar" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "Zamanında" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "Bu arka plan işlemi sırasında herhangi bir hata olması durumunda, sistem bu Bordro Girişine hata hakkında bir yorum ekleyecek ve Gönderildi durumuna geri dönecektir." + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "Teşvik" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "Teşvik Tutarı" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "Tatilleri Dahil Et" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "Çalışma günlerinin toplam sayısı ile tatilleri dahil edin" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "Tatilleri izinlere izin olarak dahil et" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "Gelir Kaynağı" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "Gelir Vergisi Tutarı" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "Gelir Vergisi Bileşenleri" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "Gelir Vergisi Hesaplaması" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "Gelir Vergisi Kesintileri" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "Gelir Vergisi Levhası" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "Gelir Vergisi Levhası Diğer Masraflar" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "Gelir Vergisi Levhası, Bordro Dönemi Başlangıç Tarihi: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "Gelir Vergisi Levhası, Maaş Yapısı Atamasında belirlenmemiş: {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "Gelir Vergisi Levhası: {0} devre dışı bırakıldı" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "Diğer Kaynaklardan Elde Edilen Gelir" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "Muayene" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "Faiz Tutarı" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "Faiz Geliri Hesabı" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "Stajyer" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "Uluslararası" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "Online Eğitim" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "Görüşme" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "Mülakat Detayı" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "Mülakat Detayları" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "Görüşme Geri Bildirimi" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "Mülakat Geri Bildirim Hatırlatıcısı" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "Mülakat Geri Bildirimi {0} başarıyla gönderildi" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "Görüşme Yeniden Planlanmadı" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "Mülakat Hatırlatıcı" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "Mülakat Hatırlatma Bildirim Şablonu" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "Mülakat Başarıyla Yeniden Planlandı" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "Karar Görüşmesi" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "Mülakat Turu {0} yalnızca {1} Pozisyonu için geçerlidir" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "Mülakat Turu {0} yalnızca {1} Pozisyonu için geçerlidir. İş başvurusunda bulunan aday, {2} rolüne başvurmuştur" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "Planlanan Mülakat Tarihi" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "Mülakat Durumu" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "Görüşme Özeti" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "Görüşme Türü" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "Mülakat: {0} Yeniden Planlandı" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "Görüşmeci" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "Görüşmeyi Yapanlar" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "Mülakatlar" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "Geçersiz Ek Maaş" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "Geçersiz Bordro Borç Hesabı. Hesap para birimi {0} veya {1} olmalıdır." + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "Araştırıldı" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "İnceleme Detayları" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "Davet Edildi" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "Fatura Ref" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "Referans Bonusu Uygulanabilir" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "İleriye Dönük" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "Telafi" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "Telafi İzni" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "Kazanılmış İzin" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "süresi doldu" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "Esnek Fayda" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "Gelir Vergisi Bileşenleri" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "Ücretsiz İzin" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "İsteğe Bağlı İzin" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "Kısmi Ücretli İzin" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "Yinelenen" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "Vergi Uygulanabilir" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "Ocak" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "İş Başvurusu" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "İş Başvurusu Kaynağı" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "İş Başvurusu Yapanların aynı Mülakat turuna iki kez katılmalarına izin verilmez. Mülakat {0} İş Başvurusu Yapan için zaten planlanmıştır {1}" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "İş Başvuru Yolu" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "İş Tanımı" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "İş Teklifi" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "İş Teklifi Süresi" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "İş Teklifi Şartları Şablonu" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "İş Teklifi Şartları" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "İş Teklifi durumu" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "İş Teklifi: {0}, İş Başvurusu Sahibi için zaten: {1}" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "İş İlanı" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "{0} pozisyonu için iş ilanları zaten açık ya da İstihdam Planı {1} doğrultusunda işe alım tamamlanmıştır" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "İşe Alım Talebi" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "İşe Alım Talebi {0} Pozisyon Açıklığı {1} ile ilişkilendirilmiştir" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "İş tanımı, gerekli nitelikler vb." + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "İşler" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "birleştirme tarihi" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "Temmuz" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "Haziran" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "KRA" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "Anahtar Performans Alanı" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "Anahtar Sorumluluk Alanı" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "Son Gün" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "Çalışan Checkin En Son Başarılı Başarılı Senkronizasyonu. Bunu, yalnızca Kayıtların tüm konumlardan entegre olarak kendinizden eminseniz sıfırlayın. Emin değilseniz lütfen bunu değiştirmeyin." + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "Kontrolün Son Senkronizasyonu" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "Geç giriş" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "Geç Giriş Grace Dönemi" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "Ayrılmak" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "İzin Tahsisi" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "Tahsisleri Bırak" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "İzin Formu" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "İzin başvuru süresi, ardışık olmayan iki farklı izin tahsisi {0} ve {1} arasında olamaz." + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "İzin Onay Bildirimi" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "İzin Onay Bildirimi Şablonu" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "İzni Onaylayan" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "İzin Başvurusunda Onaylayıcı Zorunlu Olsun" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "Onaylayan Adı bırak" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "İzin Bakiyesi" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "Uygulamadan Önce Kalan İzin" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "Bloklu İzin Listesi" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "İzin engel listesini sürdürür" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "Müsaade edilen izin engel listesi" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "izin engel listesi tarihi" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "izin engel listesi süreleri" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "izin engel listesi adı" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "İzin Engellendi" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "İzin Kontrol Paneli" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "İzin Detayları" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "İzin Paraya çevirme" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "Gündem Muhafaza Miktarını Bırak" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "İzin Geçmişi" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "İzin Defteri" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "Defter Girişini Bırakın" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "İzin Dönemi" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "İzin Politikası" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "İzin Politikası Ataması" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "İzin Politikası Atama Çakışması" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "İzin Politika Ayrıntısı" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "İzin Politikası Ayrıntıları" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "İzin Politikası: {0} zaten {1} Personeli için {2} ile {3} dönemi için atanmış" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "İzin Durum Bildirimi" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "İzin Durumu Bildirim Şablonu" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "İzin Türü" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "İzin Türü Adı" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "İzin türü telafi edici veya hak edilmiş izin olabilir." + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "İzin Türü ücretsiz veya kısmi ücretli olabilir" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "İzin Türü zorunludur" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "o ödeme yapmadan terk beri Türü {0} tahsisi gereksiz bırakın" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "{0} carry-ilet çocuklar olamaz Type bırakın" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "{0} Türü Ayrılma özelliği değiştirilemez" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "Ücretsiz izin" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "Ödemesiz bırakma, mahremiyetler {} kayıtlarıyla eşleşmiyor" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "İzin tahsisi {0} İzin Talebi {1} ile bağlantılıdır" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "Bu İzin Politikası Ataması için zaten izin atanmış" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "İzin ve Harcama Talebi Ayarları" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "İzin projesi, {0} izin tahsisleri ile bağlantılı. İzinsiz yapılması, izinsiz izinsiz yapılamaz" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "Öncelik tahsis edememek izin {0}, izin özellikleri zaten devredilen gelecek izin tahsisi kayıtlarında olduğu gibi {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "İzin yapısı zaten devredilen gelecek izin tahsisi kayıtlarında olduğu gibi, daha önce {0} iptal / tatbik etmek anlamsız bırakın {1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "{0} türündeki izin {1} değerinden daha uzun olamaz." + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "Süresi Dolan İzinler" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "Onay Bekleyen İzinler" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "Alınan İzinler" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "İzinler" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "İzinler & Tatiller" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "Ayrılan İzinler" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "Onay Bekleyen İzinler" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "{0} İzin Türü için izinler devre dışı bırakıldığından devredilemez." + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "Yıllık İzin" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "Ayrıldı" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "Yaşam döngüsü" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "Limon Yeşili" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "Avans Hesabı" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "Kredi Geri Ödeme Girişi" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "Bulunuyor..." + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "Lokasyon / Cihaz" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "Konaklama Gerekli" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "Çıkış Yap" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "Giriş Türü" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "Vardiyaya giriş check-in işlemleri için Günlük Tipi gereklidir: {0}." + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "Giriş Başarısız" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "Frappe HR'ye giriş yapın" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "Boylam: {0}°" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "Alt Aralık" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "MİKR" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "Banka Ödeme Girişi" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "Bu eylem için gerekli zorunlu alanlar:" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "Manuel Derecelendirme" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "Mart" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "Devamlılığı İşaretle" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "Tatil Günlerinde Otomatik Devamlılığı İşaretleyin" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "Tamamlandı Olarak İşaretle" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "Devam Ediyor Olarak İşaretle" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "{0} Olarak İşaretle" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "Bu vardiyaya atanan personel için Personel Hareketine göre devamlılığı işaretle." + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "{0} Tamamlandı olarak işaretlensin mi?" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "Devamlılık Kaydedildi" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "Kaydedilmiş Devamlılık HTML" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "Devamlılık Kaydediliyor" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "Maksimum Fayda Tutarı" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "Maksimum Fayda Tutarı (Yıllık)" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "Maksimum Faydalar (Tutar)" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "Maksimum Faydalar (Yıllık)" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "Maksimum Muafiyet Tutarı" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "Azami Muafiyet Tutarı, {1} Vergi Muafiyeti Kategorisi {1} azami muafiyet yöneticilerinden fazla olamaz." + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "Maksimum Vergilendirilebilir Gelir" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "Max Çizelgesi karşı çalışma saatleri" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "Maksimum Devredilen İzin" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "İzin Verilen Maksimum Ardışık İzinler" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "Maksimum Ardışık İzin Sayısı Aşıldı" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "Maksimum Paraya Çevrilebilir İzinler" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "Maksimum Muaf Tutar" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "Maksimum Muafiyet Tutarı" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "{0} izin türü izin verilen maksimum izin {1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "Mayıs" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "Yemek Tercihi" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "Tıbbi" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "Kilometre" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "Asgari Vergiye Tabi Gelir" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "İkramiye için Minimum Yıl" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "Zorunlu Alan Eksik" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "Seyahat Şekli" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "Ödeme Modu ödeme yapmak için gereklidir" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "Ay Başından Bugüne (Şirket Para Birimi)" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "Aylık Devamlılık Tablosu" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "{0} için birden fazla seçime izin verilmiyor" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "Çoklu Vardiya Atamaları" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "Avanslarım" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "İzinlerim" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "Taleplerim" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "İsim hatası" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "Organizatörün Adı" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "Net Ödeme" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "Net Ücret (Şirket Para Birimi)" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "Net Ödeme Bilgisi" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "Net Ücret az 0 olamaz" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "Net Maaş Tutarı" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "Net ödeme negatif olamaz" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "Yeni Personel ID" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "Yeni Gider Kalemi" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "Yeni Gider Vergisi" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "Yeni Geri Bildirim" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "Yeni İzinler Tahsis Edildi" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "Tahsis Edilen Yeni İzinler" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "Tahsis Edilen Yeni İzinler (Günler)" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "Yeni vardiya atamaları bu tarihten sonra oluşturulacaktır." + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "Personel bulunamadı" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "verilen çalışanın saha değeri için çalışan bulunamadı. '{}': {}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "Personel Seçilmedi" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "Henüz bir görüşme planlanmadı." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "İzin Süresi Bulunamadı" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "Çalışana Ayrılan Yaprak Yok: {0} İzin Türü için: {1}" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "Seçili Vardiya Talebi Yok" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "Bu Unvan için Personel Planı Bulunamadı" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "veri tarihleri için çalışanlar {0} için bulunma aktif veya varsayılan Maaş Yapısı" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "Hiçbir ek masraf eklenmedi" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "Bu kriter için herhangi bir giriş-çıkış kaydı bulunamadı." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "Giriş Çıkış kaydı bulunamadı." + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "Zamanlamalarda herhangi bir değişiklik bulunamadı." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "Personel bulunamadı" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "Belirtilen kriterler için personel bulunamadı:
    Şirket: {0}
    Para Birimi: {1}
    Bordro Ödeme Hesabı: {2}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "Seçilen kriterler için uygun personel bulunamadı" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "Seçilen filtrelere ve aktif maaş yapısına sahip Personel bulunamadı" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "Henüz geri bildirim alınmadı" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "Hiçbir öğe seçilmedi" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "{0} personeli için {1} tarihinde izin kaydı bulunamadı" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "Hiçbir izin tahsis edilmedi." + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "Başka güncelleme yok" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "Pozisyon Sayısı" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "Şundan yanıt yok" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "Yukarıdaki özelliklere göre maaş fişi bulunmayan VEYA maaş fişi zaten gönderildi" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "Hiç {0} Seçilmedi" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "Günlük Olmayan" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "Vergiye Tabi Olmayan Kazançlar" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "Faturalandırılmayan Saatler" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "Vejeteryan olmayan" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "Not: Vardiya mevcut devamlılık kayıtlarının üzerine yazılmayacaktır" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "Not: Toplam tahsis edilen izinler {0} , dönem için onaylanan izinlerden {1} daha az olmamalıdır" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "Not: Maaş bordronuz şifreyle korunmaktadır, PDF'i açmak için gereken şifre {0} formatındadır." + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "Değiştirecek bir şey yok" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "İhbar süresi" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "Bildirim Şablonu" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "E-Posta İle Bilgilendir" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "Kasım" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "Çalışan Sayısı" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "Pozisyon Sayısı" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "ÇIKIŞ" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "Ekim" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "Kilometre Sayacı Okuması" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "Teklif Dönemi" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "Teklif Şartları" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "Tarihinde" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "Görevde" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "İzinli" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "Tanıtım" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "Tanıtım Aktiviteleri" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "Tanıtım Başlangıcı" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "Bu İsteği Yalnızca Onaylayanlar Onaylayabilirim." + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "Yalnızca Tamamlanmış belgeler gönderilebilir" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "Sadece sunulabilir 'Reddedildi' 'Onaylandı' ve statülü Uygulamaları bırakın" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "Yalnızca 'Onaylandı' ve 'Reddedildi' Durumunda Vardiya İsteği gönderilebilir" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "Yalnızca süresi dolmuş tahsisler iptal edilebilir" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "Yalnızca {0} rolüne sahip kullanıcılar, geriye dönük uygulamalara izin vermek" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "Açık & Onaylandı" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "Şimdi Açık" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "İsteğe bağlı Tatil Listesi, {0} dönem izin için ayarlanmamış" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "İsteğe Bağlı İzinler, Çalışanların şirket tarafından yayınlanan bir tatil listesinden yararlanmayı seçebilecekleri tatillerdir." + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "Organizasyon Şeması" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "Diğer Vergiler ve Masraflar" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "Diğer" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "Çıkış Süresi" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "Genel Ortalama Puan" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "Çakışan Vardiyalar" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "Maaş Yapısı Miktarının Üzerine Yazma" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "PAN Numarası" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "PF Hesabı" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "PF Miktarı" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "KM Kredisi" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "Yarı zamanlı" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "Kısmen Sponsorlu, Kısmi Finansman Gerektirir" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "Kısmen Talep Edildi ve İade Edildi" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "Şifre politikası" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "Parola koruma hapları veya kısa süreler tire içeremez. Format otomatik olarak yeniden yapılandıracak" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "Maaş bordrosu için şifre politikası belirlenmedi" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "Maaş Bordrosu ile Ödeme" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "Gider Talebi göndermek için Borç Hesabı zorunludur" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "Ödeme Hesabı verileri" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "Ödeme Tarihi" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "Ödeme Günleri" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "Hakediş Günleri Hesaplama Yardımı" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "Ödeme ve Muhasebe" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "{1} ile {2} arasındaki {0} ödemesi" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "Bordro" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "Bordro Maliyet Merkezleri" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "Maaş Tarihi" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "Bordro Çalışan Ayrıntısı" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "Maaş Ödeme Döngüsü" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "Bordro Bilgileri" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "Bordro Numarası" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "Bordro Borç Hesabı" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "Bordro Dönemi" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "Bordro Dönemi Tarihi" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "Bordro Dönemleri" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "Bordro Raporları" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "Bordro Ayarları" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "Bordro tarihi, çalışanların cayma yolları büyük olamaz." + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "Bordro tarihi, çalışanların işe giriş işlemleri az olamaz." + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "Bekleyen Mülakatlar" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "Bekleyen Mülakatlar" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "Yüzde kesinti" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "Performans" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "parça başı iş" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "Planlanan Pozisyon Sayısı" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "Lütfen önce Otomatik Devamlılığı etkinleştirin ve kurulumu tamamlayın." + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "Lütfen Önce Firma Seçin" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "Lütfen eğitiminizi tamamladığınızda onaylayın" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "Lütfen öncelikle {1} tarihi için yeni bir {0} oluşturun." + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "Günlük İş Özet Grubunu oluşturmadan önce varsayılan gelen hesabı etkinleştirin" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "Lütfen belirti giriniz" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "Lütfen dosya ekini inceleyin" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "Lütfen Şirket ve Atamayı seçiniz" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "Lütfen Çalışan Seçin" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "Lütfen önce çalıştır seçin." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "Lütfen önce Başlangıç Tarihi ve Bordro Sıklığını seçin" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "Lütfen Başlangıç Tarihini seçin." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "Lütfen Vardiya Programını ve görevlendirme tarihlerini seçiniz." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "Lütfen Vardiya Türünü ve atama tarihlerini seçin." + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "Lütfen önce bir Şirket seçin" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "Lütfen önce bir şirket seçin." + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "Lütfen bir csv dosyası seçin" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "Lütfen bir tarih seçin." + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "Lütfen bir Başvuru Seçin" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "Bu işlemi gerçekleştirmek için lütfen en az bir Vardiya Talebi seçin." + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "Lütfen bu işlemi gerçekleştirmek için en az bir personel seçin." + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "Bu işlemi gerçekleştirmek için lütfen en az bir satır seçin." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "Lütfen şirket seçiniz." + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "Lütfen önce Personeli seçin" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "Lütfen değerlendirmeleri oluşturmak için personelleri seçin" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "Lütfen ay ve yıl seçin." + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "Lütfen öncelikle Değerlendirme Döngüsünü seçin." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "Lütfen devamlılık durumunuzu seçiniz." + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "Lütfen devamlılığını işaretlemek istediğiniz personelleri seçin." + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "Lütfen e-postayla gönderilecek maaş bordrolarını seçin" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "Lütfen Şirket Varsayılanları'nda \"Varsayılan Bordro Ödenecek Hesabı \"nı ayarlayın" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "Lütfen Bordro ayarlarına göre Bordro ayarı" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "Lütfen İK Ayarları'nda Onay Onay Bildirimi için varsayılan şablonu ayarı." + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "Lütfen İK Ayarları'nda Durum Bildirimi Bırakma için varsayılan şablonu ayarlayın." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "Lütfen tüm {0} için Değerlendirme Şablonunu ayarlayın veya aşağıdaki Personeller tablosundan şablonu seçin." + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "Lütfen şirketi ayarlayın." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "Lütfen çalışan {0} için Katılma Tarihi'ni ayarlayın." + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "Lütfen Tatil Listesini ayarlayın." + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "Lütfen Önce {0} Alanlarını Doldurun." + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "Lütfen İnsan Kaynakları> İK Yapılandırma bölümü Çalışan Adlandırma Sistemini kurun" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "Lütfen Devamlılık için numaralandırmayı Ayarlar > Adlandırma Serisi üzerinden yapılandırın" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "Eğitime geribildiriminizi 'Eğitim Geri Bildirimi' ve ardından 'Yeni'" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "Lütfen güncellenecek iş başvurusu sahibini belirtiniz." + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "Lütfen bu eğitim olayına ilişkin açıklamayı güncelleyin" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "Yayınlama Tarihi" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "Kayıt. Tarihi" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "Konaklama için Tercih Edilen Alan" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "Geldi" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "Maaş Bordrosu Önizleme" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "Ayrıcalık izni" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "Deneme Süresi" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "Deneme Dönemi" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "İşlem Sonrasına Devam Etme" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "Vardiya Taleplerini İşle" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "Devam Eden Talepler" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "Talepler İşleniyor..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "Profesyonel Vergi İndirimleri" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "Yeterlilik" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "Kâr" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "Proje Karlılığı" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "Terfi" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "Terfi Tarihi" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "Özellik zaten eklendi" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "Yardım Sandığı Kesintileri" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "Alınan Başvuruları Yayınla" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "Maaşı Göster" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "Web Sitesinde Yayınla" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "Amaç & Miktar" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "Seyahat Amacı" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "Anında Bildirim izni reddedildi" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "Anlık bildirimler devre dışı bırakıldı" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "Sitenizde anlık bildirimler devre dışı bırakıldı" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "Anket E-postası Gönderildi" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "Hızlı Filtreler" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "Hızlı Bağlantılar" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "Hedefleri Manuel Olarak Değerlendirin" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "Değerlendirme Kriteri" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "Değerlendirme" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "İzinler yeniden ayır" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "Talep Nedeni" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "Son Harcamalar" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "Son İzinler" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "Son Vardiya Talepleri" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "Maliyet Kurtarma" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "İşe Alım" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "İşe Alım Analitiği" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "Referans: {0}" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "Referans Bonusu Ödeme Durumu" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "Referans Detayları" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "Referans Detayları" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "Referansın Adı" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "Yansımalar" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "Yakıt Detayları" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "Reddet" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "Çalışan Referansını Reddet" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "Reddetme" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "Yayınlandı" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "Ayrılma Tarihi " + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "Kalan Faydalar (Yıllık)" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "Daha Önce Hatırlat" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "hatırlatıldı" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "Hatırlatıcılar" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "Sıfır Değerindeyse Kaldır" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "kiralanmış araba" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "Maaştan Geri Ödeme beklemek krediler için kullanmak" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "Maaştan Talep Edilmemiş Tutarı Geri Öde" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "Tekrar Eden Günler" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "Yanıtlar" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "Raporlanan Kişi" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "İzin Talebi" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "Talep Eden" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "Talep Eden (İsim)" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "Tam Finansman Gerektir" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "Gerekli Beceriler" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "Çalışan Yaratma için Gerekli" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "Röportajı Yeniden Planla" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "Sorumluluklar" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "Geçmiş Tarihli İzin Başvurusunu Kısıtla" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "Özgeçmiş Yükleme" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "Özgeçmişin Bağlantısı" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "Özgeçmişin Bağlantısı" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "Tutma Bonusu" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "Emeklilik Yaşı" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "Personel İzinleri ve Gider Talebi ile ilgili diğer çeşitli ayarları inceleyin" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "Gecikmeli İzin Başvurusu Oluşturma Rolüne İzin Verildi" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "Görev Planı" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "Görev Rengi" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "Aşama Adı" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "En Yakın Tam Sayıya Yuvarla" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "Yuvarlatma" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "İş Başvurusunu Web Formuna Yönlendirme" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "Satır # {0}: Vergilendirilebilir Maaşa Dayali işletimle {1} Maaş Bileşeni için tutar veya formüller ayarlanamaz" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "Satır {0} # Tahsis edilen tutarlar {1}, talep edilmeyen tutarlardan {2} daha büyük olamaz" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "Satır {0} # Ödenen Miktar istenen avans kadar büyük olamaz" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "Satır {0}: {1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "Satır {0}: Bir gider talebi rezerve etmek için gider tablosunda {1} gereklidir." + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "Maaş Bileşenleri" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "Maaş Bileşeni " + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "Maaş Bileşen Hesabı" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "Maaş Bileşeni Türü" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "zaman girerken bina bordrosu için maaş Bileşeni." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "Maaş Detay" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "Maaş Detayları" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "Maaş Beklentisi" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "Maaş Bilgisi" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "Maaş Döngüsü" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "Ödeme Moduna Göre Maaş Ödemeleri" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "ECS ile Maaş Ödemeleri" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "Maaş Aralığı" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "Maaş Kaydı" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "Maaş Bordrosu" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "Maaş Yapısını Devamlılık Tablosuna Göre Oluştur" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "Maaş kayma kimliği" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "Maaş Kaybı Kredisi" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "Maaş Kayma Zaman Çizelgesi" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "çalışanın maaş Kuponu {0} zaten bu dönem için tahrik edilen" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "çalışanın maaş Kuponu {0} zaten zaman ayırmak için çalışanlar {1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "Maaş Bordroları" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "Maaş Balıkları Oluşturuldu" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "Maaş Balıkları Gönderildi" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "Maaş Bordroları {} personeller için zaten mevcuttur ve bu bordro tarafından işlenmeyecektir." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "Maaş Yapısı" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "Maaş Yapısı Atama" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "Çalışan için Maaş Yapısı Ataması zaten var" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "Maaş Yapısı Eksik" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "Maaş zaten {0} ve {1}, bu tarih aralığında başvuru yapılamaz süreler arası dönem için işlenmiş." + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "Kazanç ve Kesintiye Dayalı Maaş Dağılımı" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "Maaş bordrosu e-postaları gönderilmek üzere sıraya alınmıştır. Durum için {0} adresini kontrol edin." + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "Yaptırıma Tutar Satır talep miktarı daha büyük olamaz {0}." + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "Planlandığı Tarih" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "Kazanılan Puan" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "Skor 5'ten az veya eşit olmalıdır" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "İş Ara" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "Önce Mülakat Turunu Seçin" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "Önce Mülakatı Seçin" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "Banka Girişi Yapmak İçin Ödeme Hesabını Seçin" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "Maaş Sıklığını Seçin." + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "Maaş Dönemini Seçin" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "Özellik Seç" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "Vardiya Taleplerini Seçin" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "Şartlar ve Koşulları Seçin" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "Kullanıcıları Seç" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "Çalışan avansını elde etmek için bir çalışan seçin." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "İzin tahsis etmek istediğiniz Personeli seçin." + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "Personel Seçin" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "Hastalık İzni, Mazeret İzni, Ücretli İzin vb. gibi İzin Türünü seçin." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "Bu İzin Tahsisinin sona ereceği tarihi seçin." + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "Bu İzin Tahsisinin hangi tarihten itibaren geçerli olacağını seçin." + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "İzin Talebiniz için bitiş tarihini seçin." + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "İzin Talebiniz için başlangıç tarihini seçin." + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "Vardiya atamalarının süresiz olarak otomatik oluşturulmasını istiyorsanız bunu seçin." + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "Personelin başvurmak istediği izin türünü seçin; örneğin Hastalık İzni, Özel İzin, Günlük İzin vb." + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "İzin Onaylayıcınızı, yani izinlerinizi onaylayan veya reddeden kişiyi seçin." + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "Bireysel Çalışma" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "Seminer" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "E-Posta Gönder" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "Çıkış Anketi Gönder" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "Çıkış Anketi Gönderin" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "Mülakat Geri Bildirim Hatırlatıcısı Gönderme" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "Mülakat Hatırlatması Gönder" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "İzin Bildirimi Gönder" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "Personeller için eksik e-posta bilgileri nedeniyle Gönderim Başarısız Oldu: {1}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "Başarıyla Gönderildi: {0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "Eylül" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "Ayrılma İşlemleri" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "Hizmet Detayları" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "Hizmet Masrafı" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "Atama Ayrıntılarını Ayarla" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "İzin Ayrıntılarını" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "Personel listelemek için filtreler ayarlayın" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "Değerlendirilenler listesindeki personelleri getirmek için isteğe bağlı filtreler ayarlayın" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "{0} {1} için varsayılan hesap ayarı" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "Tatil Hatırlatma Sıklığı" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "Terfi sonrası personel özelliklerinde gerçekleşecek değişiklikleri ayarlayın." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "Seçilen Personeller için {0} adresini ayarlayın" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "Eksik Ayarlar" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Vardiya & Devamlılık" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "Vardiya Sonu" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "Vardiya Gerçek Bitiş Saati" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "Vardiya Gerçek Başlangıç" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "Vardiya Gerçek Başlangıç Saati" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "Vardiya Atama" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "Vardiya Atama Detayları" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "Vardiya Atama Geçmişi" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "Vardiya Atama Aracı" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "Vardiya Ataması: {0} Çalışan için yayınladı: {1}" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "Vardiya Devamlılığı" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "Vardiya Detayları" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "vardiya sonu" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "Vardiya Bitiş Saati" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "Vardiya Konumu" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "Vardiya Talebi" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "Vardiya Talebi Onaylayıcısı" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "Vardiya Talep Filtreleri" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "Bu tarihten önce biten Vardiya Talepleri hariç tutulacaktır." + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "Bu tarihten sonra başlayan Vardiya Talepleri dikkate alınmayacaktır." + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "Vardiya Programı" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "Vardiya Programı Ataması" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "Vardiya Ayarları" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "Vardiya Başlangıcı" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "Vardiya Başlangıç Saati" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "Vardiya Durumu" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "Vardiya Zamanları" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "Vardiya Araçları" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "Vardiya Türü" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "Vardiya başarıyla {0} olarak güncellendi." + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Vardiyalar" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "Çalışanı Göster" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "Maaş Bordrosunda İzin Bakiyesini Göster" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "Takvimde Tüm Departman Üyelerinin Yapraklarını Göster" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "Göster Maaş Kayma" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "Gösteriliyor" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "Hastalık İzni" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "Tek Görevlendirme" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "Beceri" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "Beceri Değerlendirmesi" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "Yetkinlik İsmi" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "Yetkinlikler" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "Otomatik Devamlılığı Yoksay" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "Aşağıdaki çalışanlar için Maaş Yapısı Ataması kayıtları zaten mülkü olduğu için, Maaş Yapısı Ataması kayıtları zaten atılmıştır. {0}" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "Kaynak ve Değerlendirme" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "Kaynak ve hedef vardiyaları aynı olamaz" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "Sponsorlu Tutar" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "Personel Kadrosu Detayları" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "Personel Kadrosu Planı" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "Kadro Planı Detayı" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "{1} atanması için {0} Kişisel Planı zaten mevcut" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "Standart Vergi Muafiyeti Tutarı" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "Standart Çalışma Saatleri" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "Başlangıç ve bitiş süreleri geçerli bir Bordro Döneminde değil, {0} değeri hesaplayamaz." + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "Başlangıç Tarihi: {0}" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "İstatistiksel Bileşen" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "Stok Seçenekleri" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "Kullanıcıların şu günlerinde izinleri engelle." + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "Çalışan Kesinlikle Checkin'de Günlük Tipine Göre" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "Yapılar başarıyla atandı" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "teslim tarihi" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "Gönderim Başarısız" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "Geri Bildirimi Gönder" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "Şimdi Gönder" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "Kanıt Gönder" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "Bordro Gönder" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "Çalışan kaydını oluşturmak için bunu gönderin" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "Maaş Fişleri Gönderme ve Yevmiye Kaydı Oluşturma ..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "Maaş Fişleri Gönderiliyor ..." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "Bağlı şirketler zaten {1} pozisyon için {2} bütçesiyle planlama yapmış durumda. {0} için Personel Planı, bağlı şirketler için planlanan pozisyon ve bütçeden daha fazlasını {3} için tahsis etmelidir" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "Özet Görünüm" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "Senkronize Et {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "Söz dizimi hatası" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "Gelir Vergisi Diliminde {0} koşulu için söz dizimi hatası" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "Vergi & Kazançlar" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "Vergi Muafiyet Kategorisi" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "Vergi Muafiyet İspatları" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "Vergi Kurulumu" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "ek maaş vergisi" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "esnek fayda vergisi" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "Vergilendirilebilir Maaş Döşeme" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "Vergilendirilebilir Maaş Levhaları" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "Vergiler & Kesintiler" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "Gelir Vergisi Üzerindeki Vergiler ve Masraflar" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "taksi" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "Ekip Talepleri" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "Ekip Güncellemeleri" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "{0} para birimi şirketin varsayılan para birimiyle aynı olmalıdır. Lütfen başka bir hesap seçin." + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "Maaş Bordrosunda Maaş Bileşeninin Tutar ile Kazanç/Kesintiye katkı sağlayacağı tarih. " + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "İzinlerin tahsis edileceği ayın günü" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "Eğer izin için başvuruda bulunulduğu gün (ler) tatildir. İstemenize izin gerekmez." + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "Yarım Günlük çalışma için ödenecek ücretin oranı" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "Bu rapordaki metrikler {0} temel alınarak hesaplanır. Lütfen {1} sayfasında {0} alanını ayarlayın." + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "Bu rapordaki metrikler {0} temel alınarak hesaplanır. Lütfen {1} sayfasında {0} alanını ayarlayın." + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "Çalışana gönderilecek maaş bordrosu şifre koruyucu olacak, şifre şifre politikasına göre üretilecektir." + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "Check-in işlemlerinden sonraki saat geç (dakika olarak) olarak kabul edilir." + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "Check-out işleminin erken olduğu ve bir önceki süre (dakika olarak)." + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "Personel Girişinin devamlılık olarak kabul edildiği vardiya başlangıç saatinden önceki süre." + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "Teori" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "Bu aylık çalışma günlerinden daha fazla tatil vardır." + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "{0} kadro planında boş yer yok" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "Bu izinler, şirket tarafından izin verilen tatillerdir, ancak bir Çalışan için isteğe bağlıdır." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "Bu eylem, bağlantılı değerlendirme geri bildirimlerinde/hedeflerinde değişiklik yapılmasını engelleyecektir." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "Bu çalışanın zaten aynı zaman damgasına sahip bir günlüğü var. {0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "Bu hata geçersiz formül veya koşuldan kaynaklanıyor olabilir." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "Bu hata geçersiz söz diziminden kaynaklanıyor olabilir." + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "Bu hata eksik veya silinmiş bir alandan kaynaklanıyor olabilir." + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "Bu alan, bir Personelin arka arkaya başvurabileceği maksimum izin sayısını ayarlamanıza olanak tanır." + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "Bu alan, İzin Politikası oluşturulurken bu İzin Türü için yıllık olarak tahsis edilebilecek maksimum izin sayısını ayarlamanıza olanak tanır" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "Bu tablo, Personelin işe devamlılığını gösterir" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "Bu, maaş bordrosundaki vergi bileşenini {0} üzerine yazacak ve vergi Gelir Vergisi Dilimlerine göre hesaplanmayacaktır" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "Bu, Maaş Balıkları gönderecek ve Tahakkuk Yevmiye Kaydı oluşturacaktır. Devam etmek istiyor musunuz?" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "Vardiyanın bitiminden sonra çıkış işleminin devam olarak değerlendirildiği zaman." + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "Açık pozisyonların doldurulması için gereken süre" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "Doldurma Zamanı" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "Zaman" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "Zaman Çizelgesi Detayı" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "Zamanlama" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "tutarına" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "Bitiş Tarihi, Başlangıç Tarihinden büyük olmalıdır" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "Yarım Gün başvurusunda bulunmak için 'Yarım Gün' seçeneğini işaretleyin ve Yarım Gün Tarihini seçin" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "Bugüne kadar aynı anda eşit veya daha az olamaz" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "Bugüne kadar çalışanların rahatlaması fazla olamaz." + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "Bugüne kadar bugünden daha az olamaz" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "Bugüne kadar çalışanın sevkıyatı daha büyük olamaz" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "Bitiş tarihi başlangıç tarihinden önce olamaz" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "Bir vergi bileşeni için maaş bileşeni tutarını geçersiz kılmak için lütfen {0} öğesini etkinleştirin" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "Bugün {0} isimli Personelin Doğum Günü 🎉" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "Bugün Şirketimizde {0}! 🎉" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "Toplam Devamsız" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "Toplam Gerçek Tutar" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "Toplam Avans Tutarı" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "Toplam Tahsis Edilen İzinler" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "Toplam Tahsis Edilen İzinler" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "Toplam Tutar Geri Çekenler" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "Toplam Tutar sıfır olamaz" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "Toplam Varlık Geri Kazanım Maliyeti" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "Toplam İade Alınan Tutar" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "Toplam Beyan Tutarı" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "Toplam Kesinti" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "Toplam Kesinti (Şirket Para Birimi)" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "Toplam Erken Çıkış" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "Toplam Kazanç" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "Toplam Kazanç" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "Toplam Tahmini Bütçe" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "Toplam Tahmini Maliyeti" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "Toplam Muafiyet Tutarı" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "Toplam Harcama Talepleri" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "Toplam Hedef Puanı" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "Toplam Brüt Ücret" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "Toplam Saat (T)" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "Toplam Gelir Vergisi" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "Toplam Geç Girişler" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "Toplam İzin Günü" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "Toplam İzin" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "Toplam İzinler ({0})" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "Ayrılan Toplam İzinler" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "Toplam İzin Paraya çevrilen" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "Toplam Net Ücret" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "Toplam Borç Tutarı" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "Toplam Ödeme" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "Toplam Gün" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "Toplam İstifalar" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "Toplam Tasdiklenmiş Tutar" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "toplam puan" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "Toplam avans miktarı, toplam onaylanan tutarlardan fazla olamaz" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "Toplam tahsis edilen izinler, {1} döneminde {0} personeline izin türü için izin verilen maksimum tahsisten daha fazladır" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "Toplam tahsis edilen izinler {0} , dönem için onaylanan izinlerden {1} daha az olamaz" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "Yazıyla Toplam" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "Toplam Yazı ile (Şirket Para Birimi)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "{0} İzin Türü için koruma toplam izinler süreleri" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "Tüm {0} için toplam ağırlık 100'e kadar eklenmelidir. Şu anda %{1}'dir" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "Toplam çalışma süresi maksimum çalışma saatleri fazla harcama {0}" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "Tren" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "Eğitmen E-posta" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "Eğitmen Adı" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "Eğitim" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "Eğitim Tarihi" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "Eğitim" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "Eğitim Etkinlik Çalışan" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "Eğitim Etkinliği:" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "Eğitim Etkinlikleri" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "Eğitim Geri Bildirimi" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "Eğitim Programı" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "Eğitim Sonucu" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "Eğitim Sonucu Çalışan" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "Eğitimler" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "Transfer Tarihi" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "Gezi" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "Seyahat Öncesi Gerekli" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "Seyahat Formu" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "Seyahat Finansmanı" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "Seyahat Programı" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "Seyahat Talebi" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "Seyahat Talebi Maliyeti" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "Seyahat" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "Seyahat Türü" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "Kanıt Türü" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "Arşivden Çıkar" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "İnceleniyor" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "Bağlantısız kayıtlar" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "Belirsiz Günler" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "İşaretlenmemiş günler" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "Ödenmemiş Gider Talebi" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "Etkilenen İşlemler" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "Gönderilmemiş Değerlendirmeler" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "Takip Edilmeyen Saatler" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "Takip Edilmeyen Saatler (U)" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "Kullanılmayan İzinler" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "Yaklaşan Tatiller" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "Yaklaşan Tatiller" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "Yaklaşan Vardiyalar" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "Harcamayı Güncelle" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "İş Başvurusunu Güncelle" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "İlerlemeyi Güncelle" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "yanıt güncelle" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "Maaş Yapılarını Güncelle" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "Durumu Güncelle" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "Vergiyi Güncelle" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "İş Başvurusu Durumu {0} olarak güncellendi" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "Devamlılık Tablosu Yükle" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "HTML Yükle" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "Yükleniyor..." + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "Üst Aralık" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "Kullanılmış İzinler" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "Kullanılan İzinler" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "Açık İşler" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "Boş pozisyonlar mevcut patlamalardan daha düşük olamaz" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "Devamlılığı Doğrula" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "Personel Devamlılığı Doğrulanıyor..." + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "Değer / Açıklama" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "değer eksik" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "Değişken" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "Vergilendirilebilir Maaşlara Günlük kullanım" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "Vejetaryen" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "Araç Giderleri" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "Araç Günlüğü" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "Araç Servis" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "Araç Servis Kalemi" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "Hedefleri Göster" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "İzin Geçmişini Görüntüle" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "Maaş Bordrolarını Görüntüle" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "Mor" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "Uyarı: İzin yazılımı aşağıdaki engel bölümleri bulunmaktadır" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "Uyarı: {0} adresinde bu tarihlerin bazıları/hepsi için halihazırda aktif bir Vardiya Ataması {1} bulunmaktadır." + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "Web Sitesi Listesi" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "Ağırlık (%)" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "‘Etkin Değil’ olarak ayarlandığında, çakışan aktif vardiyalara sahip personel hariç tutulmayacaktır." + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "Çalışma Yıldönümleri" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "Çalışma Yıldönümü Hatırlatması" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "İş Bitiş Tarihi" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "Tarihten Çalışma" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "Evden Çalışma" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "İş Deneyimi" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "{0} İçin İş Özeti" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "Tatilde Çalıştı" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "Çalışma Günleri" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "Çalışma Günü ve Saatleri" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "Mesai Saatine Göre Hesaplama" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "Devamsızlık için Çalışma Saatleri Eşiği" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "Yarım Gün Çalışma Saatleri Eşiği" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "Devamsız işaretli çalışma saatleri. (Devre dışı için sıfır)" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "Yarım günün işaretlendiği çalışma saatleri. (Devre dışı için sıfır)" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "Atölye" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "Yıl Başından Bugüne (Şirket Para Birimi)" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "Evet, Devam et" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "Blok Tarihlerindeki çıkışları onaylama yetkiniz yok" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "Telafi edici izin talebi gün arasında tüm gün (ler) mevcut değilsiniz." + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "Varsayılan Vardiyanızı talep edemezsiniz: {0}" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "Personel planına göre, ana şirket {4} için {3} personel planında yalnızca {0} açık pozisyon ve {1} bütçe ile {2} planlaması yapabilirsiniz." + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "İzin Depozitini geçerli bir nakit miktarı için gönderebilirsiniz." + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "Sadece JPG, PNG, PDF, TXT veya Microsoft belgelerini yükleyebilirsiniz." + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "Varsa ek bilgilerinizi ekleyip teklifinizi kaydedebilirsiniz." + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "{} günü yalnızca Yarım Gün için hazır bulundunuz. Tam gün telafi izni için başvuruda bulunamazsınız" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "aktif" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "i̇ptal Edildi" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "oluşturdu" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "sonuç" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "sonuçlar" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "gözden geçir" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "i̇ncelemeler" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "kaydedildi" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "Maaş Bileşeni senkronizasyonu aracılığıyla" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "yıl" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "{0} & {1}" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "{0} ve {1} daha fazlası" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "{0}
    Bu hata eksik veya silinmiş bir alandan kaynaklanıyor olabilir." + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "{0} Değerlendirme henüz gönderilmedi" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "{0} Alanı" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "{0} Eksik" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "{0} Satır #{1}: Formül ayarlandı ancak Maaş Bileşeni {3} için {2} devre dışı bırakıldı." + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "{0} Satır #{1}: {2} formülün dikkate alınması için etkinleştirilmesi gerekir." + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0} zaten çalışan ödenekleri {1} dönem {2} için {3}" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "{0}, {1} çalışanı ve {2} dönemi için zaten mevcut" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "{0} bu tarihlerin bazıları/hepsi için {1} adresinde zaten aktif bir Vardiya Ataması bulunmaktadır." + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "{1} iş gününden sonra {0} uygulanabilir" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "{0} başarıyla oluşturuldu!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "{0} başarıyla silindi!" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "{0} başarısız oldu!" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "{0} {1} etkinleştirildi" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "{0} tatil değil." + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "{0} İsteğe Bağlı Tatil Listesinde değil" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "{0} gönderilmelidir" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "{0} / {1} Tamamlandı" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "{0} başarılı!" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "{0} başarılı!" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "{0} başarıyla güncellendi!" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "{3} bağlı şirketler için {0} açık pozisyon ve {1} bütçe zaten planlanmış. Ana şirket {3} için {6} personel planına göre yalnızca {4} açık pozisyon ve {5} bütçe planlayabilirsiniz." + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "{0} {1} {2}?" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}: Çalışanın e-posta adresi bulunamadığı için e-posta gönderilemedi" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "{0}: gönderen {0} çeşidi {1}" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "{0}g" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "{} Kabul Edildi" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "{} Aktif" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "{} Taslak" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "{} Talep Edilmemiş" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "Bu pozisyon için {} {} açık." + diff --git a/apps/erpnext/src/hrms/hrms/locale/vi.po b/apps/erpnext/src/hrms/hrms/locale/vi.po new file mode 100644 index 000000000..f8e9e3d47 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/vi.po @@ -0,0 +1,11489 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Vietnamese\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: vi\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: vi_VN\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "" + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "" + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "" + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "Danh mục & Báo cáo" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "" + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "Số lượng chấm công" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "Đã thay đổi trạng thái từ {0} thành {1} qua Yêu cầu chấm công" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "" + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "" + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "" + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "" + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "Ca Làm & Điểm Danh" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "Ca làm" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "" + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "năm" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/locale/zh.po b/apps/erpnext/src/hrms/hrms/locale/zh.po new file mode 100644 index 000000000..b4701de47 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/zh.po @@ -0,0 +1,11517 @@ +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2025-12-21 09:37+0000\n" +"PO-Revision-Date: 2025-12-22 11:22\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: Chinese Simplified\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: frappe\n" +"X-Crowdin-Project-ID: 639578\n" +"X-Crowdin-Language: zh-CN\n" +"X-Crowdin-File: /[frappe.hrms] develop/hrms/locale/main.pot\n" +"X-Crowdin-File-ID: 58\n" +"Language: zh_CN\n" + +#. Description of the 'Arrear Start Date' (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid " Salary slips starting on or after this date will be considered for arrear calculations" +msgstr "起始日期在此日期及之后的工资条将纳入欠薪计算范围" + +#. Label of the unlink_payment_on_cancellation_of_employee_advance (Check) +#. field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid " Unlink Payment on Cancellation of Employee Advance" +msgstr " 员工预支取消时解除支付关联" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:23 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "“起始日期”不能大于等于“结束日期”" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:86 +msgid "% Utilization (B + NB) / T" +msgstr "利用率%(基本 + 非基本)/ 总时长" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:92 +msgid "% Utilization (B / T)" +msgstr "利用率%(基本 / 总时长)" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:157 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "必须提供'employee_field_value'和'timestamp'" + +#: hrms/hr/utils.py:252 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ")用于{0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:54 +msgid "...Fetching Employees" +msgstr "...正在获取员工数据" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.25" +msgstr "0.25" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "0.5" +msgstr "0.5" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "00:00" +msgstr "00:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "01:00" +msgstr "01:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "02:00" +msgstr "02:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "03:00" +msgstr "03:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "04:00" +msgstr "04:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "05:00" +msgstr "05:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "06:00" +msgstr "06:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "07:00" +msgstr "07:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "08:00" +msgstr "08:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "09:00" +msgstr "09:00" + +#. Option for the 'Rounding' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "1.0" +msgstr "1.0" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "10:00" +msgstr "10:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "11:00" +msgstr "11:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "12:00" +msgstr "12:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "13:00" +msgstr "13:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "14:00" +msgstr "14:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "15:00" +msgstr "15:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "16:00" +msgstr "16:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "17:00" +msgstr "17:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "18:00" +msgstr "18:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "19:00" +msgstr "19:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "20:00" +msgstr "20:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "21:00" +msgstr "21:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "22:00" +msgstr "22:00" + +#. Option for the 'Send Emails At' (Select) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "23:00" +msgstr "23:00" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:272 +msgid "Base amount has not been set for the following employee(s): {0}" +msgstr "基本金额未对以下员工设置:{0}" + +#. Description of the 'Password Policy' (Data) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "示例:SAL-{first_name}-{date_of_birth.year}
    将生成类似SAL-Jane-1972的密码" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:280 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:288 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "分配的总假期超过分配周期天数" + +#. Content of the 'Help' (HTML) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "

    Help

    \n\n" +"

    Notes:

    \n\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "

    帮助

    \n\n" +"

    注释:

    \n\n" +"
      \n" +"
    1. 用字段 base 表示员工基本工资
    2. \n" +"
    3. 在条件和公式中使用工资组成部分的缩写。 BS = Basic Salary
    4. \n" +"
    5. 在条件和公式中使用字段名称来显示员工详细信息。 就业类型 = employment_type分部 = branch
    6. \n" +"
    7. 在条件和公式中使用工资单中的字段名称。 账期 = payment_days无薪假期 = leave_without_pay
    8. \n" +"
    9. 也可以根据条件输入具体金额。参见示例 3
    \n\n" +"

    示例

    \n" +"
      \n" +"
    1. 根据 base 计算基本工资\n" +"
      条件:base < 10000
      \n" +"
      公式:base * .2
    2. \n" +"
    3. 计算 HRA 基本工资 BS\n" +"
      条件:BS > 2000
      \n" +"
      公式:BS * .1
    4. \n" +"
    5. 计算基于 TDS 的员工类型 employment_type \n" +"
      条件:employment_type==\"实习\"
      \n" +"
      金额:1000
    6. \n" +"
    " + +#. Content of the 'html_6' (HTML) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "

    条件示例

    \n" +"
      \n" +"
    1. 如果员工出生在 1937 年 12 月 31 日至 1958 年 1 月 1 日之间(员工年龄在 60 岁至 80 岁之间),则需纳税
      \n" +"条件:date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. 按员工性别算税
      \n" +"条件:gender==\"男\"

    3. \n" +"
    4. 按工资组成算税
      \n" +"条件:base > 10000
    " + +#. Content of the 'Half Day Marked Employee Header' (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Employees on Half Day
    " +msgstr "
    半日制员工
    " + +#. Content of the 'Unmarked Employee Header' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    Unmarked Employees
    " +msgstr "
    未标记员工
    " + +#. Content of the 'Horizontal Break' (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "
    " +msgstr "
    " + +#. Header text in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Transactions & Reports" +msgstr "交易 & 报告" + +#. Header text in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Masters & Reports" +msgstr "雇主 & 报告" + +#: hrms/public/js/utils/index.js:166 +msgid "
    {0}{1}
    " +msgstr "
    {0}{1}
    " + +#: hrms/hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "由{1}申请的{0}职位申请已存在:{2}" + +#: hrms/controllers/employee_reminders.py:123 +#: hrms/controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "关于团队重要日期的温馨提示" + +#: hrms/hr/utils.py:248 +#: hrms/payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "在{1}至{2}期间存在{0}(" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:732 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Absent" +msgstr "缺勤" + +#. Label of the absent_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:185 +msgid "Absent Days" +msgstr "缺勤天数" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "缺勤记录" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:56 +msgid "Account No" +msgstr "账号" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:115 +msgid "Account type should be set {0} for payroll payable account {1}, please set and try again" +msgstr "工资应付账户{1}的账户类型应设置为{0},请设置后重试" + +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "账户{0}与公司{1}不匹配" + +#. Label of the accounting_dimensions_tab (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Accounting & Payment" +msgstr "会计与支付" + +#. Label of a Card Break in the Expenses Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Accounting Reports" +msgstr "会计报告" + +#: hrms/payroll/doctype/salary_component/salary_component.py:59 +msgid "Accounts not set for Salary Component {0}" +msgstr "薪资组件{0}未设置账户" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Accrual" +msgstr "计提" + +#. Label of the accrual_arrears (Table) field in DocType 'Arrear' +#. Label of the accrual_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Accrual Arrears" +msgstr "计提欠薪" + +#. Label of the accrual_component (Check) field in DocType 'Salary Component' +#. Label of the accrual_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Accrual Component" +msgstr "计提组件" + +#: hrms/payroll/doctype/salary_component/salary_component.py:66 +msgid "Accrual Component can only be set for Earning Salary Components." +msgstr "计提组件仅可为收入类工资组件设置" + +#: hrms/payroll/doctype/salary_component/salary_component.py:86 +msgid "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "计提组件仅可为采用计提支付方式的弹性福利工资组件设置" + +#: hrms/payroll/doctype/salary_component/salary_component.py:78 +msgid "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." +msgstr "采用计提支付方式的弹性福利工资组件必须设置计提组件" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:627 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "{0}至{1}期间工资的应计日记账分录" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue and payout at end of payroll period" +msgstr "在薪资期末计提并支付" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Accrue per cycle, pay only on claim" +msgstr "按周期计提,仅报销时支付" + +#. Label of the accrued_benefits (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Accrued Benefits" +msgstr "计提福利" + +#. Name of a report +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json +msgid "Accrued Earnings Report" +msgstr "计提收入报告" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:99 +msgid "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" +msgstr "在薪资期间{3}中,福利{2}的计提金额{0}小于已付金额{1}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:8 +msgid "Action on Submission" +msgstr "提交时动作" + +#. Label of the activity_name (Data) field in DocType 'Employee Boarding +#. Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Activity Name" +msgstr "活动名称" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Actual Amount" +msgstr "实际金额" + +#. Label of the actual_encashable_days (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:131 +msgid "Actual Encashable Days" +msgstr "实际可兑换天数" + +#. Label of the actual_overtime_duration (Float) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "Actual Overtime Duration" +msgstr "实际加班时长" + +#: hrms/hr/doctype/leave_application/leave_application.py:422 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "由于请假申请跨越不同假期分配,当前无法显示实际余额。您仍可申请假期,差额将在下次分配时补足。" + +#. Label of the add_day_wise_dates (Button) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Add Day-wise Dates" +msgstr "添加逐日日期" + +#: hrms/hr/employee_property_update.js:43 +msgid "Add Employee Property" +msgstr "添加员工属性" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Add Expense" +msgstr "添加费用" + +#: hrms/public/js/performance/performance_feedback.js:95 +msgid "Add Feedback" +msgstr "添加反馈" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Add Tax" +msgstr "添加税费" + +#: hrms/hr/employee_property_update.js:116 +msgid "Add to Details" +msgstr "添加至明细" + +#. Label of the carry_forward (Check) field in DocType 'Leave Allocation' +#. Label of the carry_forward (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Add unused leaves from previous allocations" +msgstr "添加上次未使用假期" + +#. Description of the 'Carry Forward' (Check) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "将上一假期周期未使用的假期添加至本次分配" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1593 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "薪资结构未配置税费组件,已自动从主薪资组件中添加税费项" + +#: hrms/hr/employee_property_update.js:193 +msgid "Added to details" +msgstr "已添加至明细" + +#. Label of the additional_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Amount" +msgstr "附加金额" + +#. Label of the additional_information_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Additional Information " +msgstr "补充信息" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:46 +msgid "Additional PF" +msgstr "附加公积金" + +#. Label of the additional_salary (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Expenses Workspace +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Additional Salary" +msgstr "附加薪资" + +#. Label of the additional_salary (Link) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Additional Salary " +msgstr "附加薪资" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:116 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "推荐奖金类附加薪资只能针对状态为{0}的员工推荐创建" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:151 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "该薪资组件已存在启用{0}的附加薪资" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:68 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "薪资组件{1}在期间{2}至{3}已存在附加薪资{0}" + +#. Label of the address_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Address of Organizer" +msgstr "组织者地址" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:51 +msgid "Adjust Allocation" +msgstr "调整分配" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:412 +msgid "Adjustment Created Successfully" +msgstr "调整项创建成功" + +#. Label of the adjustment_type (Select) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Adjustment Type" +msgstr "调整类型" + +#. Option for the 'Level' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Advance" +msgstr "预支" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:44 +msgid "Advance Account is mandatory. Please set the Default Employee Advance Account in the Company record {0} and submit this document." +msgstr "预支账户为必填项。请在 公司记录{0} 中设置默认员工预支账户并提交本文档。" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:79 +msgid "Advance Account {} currency should be same as Salary Currency of Employee {}. Please select same currency Advance Account" +msgstr "" + +#. Label of the base_advance_paid (Currency) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Advance Paid (Company Currency)" +msgstr "" + +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Leave Control Panel' +#. Label of the advanced_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#. Label of the advanced_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Advanced Filters" +msgstr "高级筛选" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:422 +msgid "All Exchange Gain/Loss amount of {0} has been booked through {1}" +msgstr "" + +#: hrms/hr/doctype/goal/goal_tree.js:215 +msgid "All Goals" +msgstr "所有目标" + +#: hrms/hr/doctype/job_opening/job_opening.py:102 +msgid "All Jobs" +msgstr "所有职位" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:70 +msgid "All allocated assets should be returned before submission" +msgstr "提交前需归还所有已分配资产" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "员工建档的必填任务尚未全部完成" + +#. Label of the allocate_based_on_leave_policy (Check) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Allocate Based On Leave Policy" +msgstr "按假期政策分配" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:176 +msgid "Allocate Leave" +msgstr "分配假期" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:192 +msgid "Allocate leaves to {0} employee(s)?" +msgstr "是否为{0}名员工分配假期?" + +#. Label of the allocate_on_day (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allocate on Day" +msgstr "按日分配" + +#. Label of the base_allocated_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Allocated Amount (Company Currency)" +msgstr "" + +#. Label of the allocated_leaves (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_application/leave_application.js:75 +msgid "Allocated Leaves" +msgstr "已分配假期" + +#. Label of the allocated_via (Select) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocated Via" +msgstr "" + +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.js:205 +msgid "Allocating Leave" +msgstr "假期分配中" + +#. Label of the allocation_date (Date) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Allocation Date" +msgstr "" + +#. Label of the section_break_etvg (Section Break) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation Details" +msgstr "分配明细" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:119 +msgid "Allocation Expired!" +msgstr "分配已过期!" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:60 +msgid "Allocation is greater than the maximum allowed {0} for leave type {1}" +msgstr "分配天数超过假期类型{1}允许的最大值{0}" + +#. Label of the leave_allocation (Link) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Allocation to Adjust" +msgstr "待调整分配" + +#: hrms/hr/utils.py:438 +msgid "Allocation was skipped due to exceeding annual allocation set in leave policy" +msgstr "" + +#: hrms/hr/utils.py:428 +msgid "Allocation was skipped due to maximum leave allocation limit set in leave type. Please increase the limit and retry failed allocation." +msgstr "" + +#. Label of the allow_employee_checkin_from_mobile_app (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Employee Checkin from Mobile App" +msgstr "允许移动端考勤签到" + +#. Label of the allow_encashment (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Encashment" +msgstr "允许兑换" + +#. Label of the allow_geolocation_tracking (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Allow Geolocation Tracking" +msgstr "启用地理位置追踪" + +#. Label of the applicable_after (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Leave Application After (Working Days)" +msgstr "允许假期申请截止时间(工作日)" + +#. Label of the allow_multiple_shift_assignments (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:105 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "允许同日期多班次分配" + +#. Label of the allow_negative (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Negative Balance" +msgstr "允许负余额" + +#. Label of the allow_over_allocation (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allow Over Allocation" +msgstr "允许超额分配" + +#. Label of the allow_tax_exemption (Check) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Allow Tax Exemption" +msgstr "允许税务豁免" + +#. Label of the allow_user (Link) field in DocType 'Leave Block List Allow' +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Allow User" +msgstr "授权用户" + +#. Label of the allow_list (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow Users" +msgstr "授权用户" + +#. Label of the allow_check_out_after_shift_end_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Allow check-out after shift end time (in minutes)" +msgstr "允许班次结束后签退时间(分钟)" + +#. Option for the 'Payout Method' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Allow claim for full benefit amount" +msgstr "允许全额福利报销" + +#. Description of the 'Allow Users' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "授权以下用户审批封班日期的请假申请" + +#. Description of the 'Allow Over Allocation' (Check) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "允许分配的假期数超过分配周期天数" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "同一班次内交替记录签到/签退" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:49 +msgid "Amount Based on Formula" +msgstr "公式计算金额" + +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Component' +#. Label of the amount_based_on_formula (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_structure/salary_structure.py:108 +msgid "Amount based on formula" +msgstr "基于公式的金额" + +#. Description of the 'Claimed Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount claimed via Expense Claim" +msgstr "通过费用报销申请的金额" + +#. Description of the 'Advance Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount of expense" +msgstr "费用金额" + +#. Description of the 'Paid Amount' (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Amount paid against this encashment" +msgstr "本次兑换已支付金额" + +#. Description of the 'Returned Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount scheduled for deduction via salary" +msgstr "计划通过薪资扣除的金额" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:37 +msgid "Amount should not be less than zero" +msgstr "金额不能小于零" + +#. Description of the 'Paid Amount (Company Currency)' (Currency) field in +#. DocType 'Employee Advance' +#. Description of the 'Paid Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Amount that has been paid against this advance" +msgstr "本预支已支付金额" + +#: hrms/payroll/doctype/arrear/arrear.py:92 +msgid "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" +msgstr "员工{0}在薪资期间{2}已存在薪资结构{1}的欠薪文档" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:56 +msgid "An attendance record is linked to this checkin. Please cancel the attendance before modifying time." +msgstr "存在关联的考勤记录。修改时间前请先取消考勤记录" + +#. Label of the annual_allocation (Float) field in DocType 'Leave Policy +#. Detail' +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Annual Allocation" +msgstr "年度分配" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:372 +msgid "Annual Allocation Exceeded" +msgstr "超出年度分配额度" + +#: hrms/setup.py:404 +msgid "Annual Salary" +msgstr "年薪" + +#. Label of the annual_taxable_amount (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Annual Taxable Amount" +msgstr "年度应税金额" + +#. Label of the description (Small Text) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Any other details" +msgstr "其他详细信息" + +#. Description of the 'Remarks' (Text) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "其他需记录的备注或突出贡献" + +#. Label of the applicable_earnings_component (Table MultiSelect) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Applicable Earnings Component" +msgstr "适用收入组件" + +#. Label of the applicable_salary_component (Table MultiSelect) field in +#. DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Applicable Salary Components" +msgstr "适用工资组件" + +#. Description of the 'Required for Employee Creation' (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Applicable in the case of Employee Onboarding" +msgstr "适用于员工入职场景" + +#. Label of the applicant_email (Data) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Applicant Email Address" +msgstr "申请人邮箱" + +#. Label of the applicant_name (Data) field in DocType 'Appointment Letter' +#. Label of the applicant_name (Data) field in DocType 'Job Applicant' +#. Label of the applicant_name (Data) field in DocType 'Job Offer' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Applicant Name" +msgstr "申请人姓名" + +#. Label of the applicant_rating (Rating) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant Rating" +msgstr "申请人评分" + +#. Description of a DocType +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Applicant for a Job" +msgstr "职位申请人" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:44 +msgid "Applicant name" +msgstr "申请人姓名" + +#. Label of a Card Break in the Leaves Workspace +#: hrms/hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "申请" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:46 +msgid "Application Status" +msgstr "申请状态" + +#: hrms/hr/doctype/leave_application/leave_application.py:210 +msgid "Application period cannot be across two allocation records" +msgstr "申请周期不可跨越两个分配记录" + +#: hrms/hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be outside leave allocation period" +msgstr "申请周期不可超出假期分配期间" + +#: hrms/templates/generators/job_opening.html:162 +msgid "Applications Received" +msgstr "已收申请" + +#: hrms/www/jobs/index.html:235 +msgid "Applications received:" +msgstr "已接收申请:" + +#. Label of the applies_to_all_departments (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Applies to Company" +msgstr "适用公司" + +#. Description of a DocType +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Apply / Approve Leaves" +msgstr "申请/审批假期" + +#: hrms/templates/generators/job_opening.html:29 +#: hrms/templates/generators/job_opening.html:209 +msgid "Apply Now" +msgstr "立即申请" + +#. Label of the applicable_for_public_holiday (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Public Holiday" +msgstr "应用于公共假日" + +#. Label of the applicable_for_weekend (Check) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Apply for Weekend" +msgstr "应用于周末" + +#. Label of the appointment_date (Date) field in DocType 'Appointment Letter' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Date" +msgstr "任命日期" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter" +msgstr "聘书" + +#. Label of the appointment_letter_template (Link) field in DocType +#. 'Appointment Letter' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Appointment Letter Template" +msgstr "聘书模板" + +#. Name of a DocType +#: hrms/hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "聘书内容" + +#. Name of a DocType +#. Label of the appraisal (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of a Card Break in the Performance Workspace +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:44 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "绩效考核" + +#. Label of the appraisal_cycle (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_cycle (Link) field in DocType 'Employee Performance +#. Feedback' +#. Label of the appraisal_cycle (Link) field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:17 +#: hrms/hr/doctype/goal/goal_tree.js:105 +#: hrms/hr/report/appraisal_overview/appraisal_overview.js:18 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:37 +#: hrms/hr/workspace/performance/performance.json +msgid "Appraisal Cycle" +msgstr "考核周期" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "考核目标" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "关键绩效领域" + +#. Label of the section_break_cycle (Section Break) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:96 +msgid "Appraisal Linking" +msgstr "考核关联" + +#. Name of a report +#: hrms/hr/report/appraisal_overview/appraisal_overview.json +msgid "Appraisal Overview" +msgstr "考核概览" + +#. Label of the appraisal_template (Link) field in DocType 'Appraisal' +#. Name of a DocType +#. Label of the appraisal_template (Link) field in DocType 'Appraisee' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +#: hrms/hr/doctype/appraisee/appraisee.json hrms/setup.py:162 +msgid "Appraisal Template" +msgstr "考核模板" + +#. Name of a DocType +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "考核模板目标" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "考核模板缺失" + +#. Label of the template_title (Data) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template Title" +msgstr "考核模板标题" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "部分职级未找到考核模板" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "考核创建已加入队列,可能需要几分钟时间" + +#: hrms/hr/doctype/appraisal/appraisal.py:58 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "员工{1}在本考核周期或重叠期间已存在考核{0}" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:45 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "考核{0}不属于员工{1}" + +#. Name of a DocType +#: hrms/hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "被考核人" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:159 +msgid "Appraisees: {0}" +msgstr "被考核人:{0}" + +#: hrms/setup.py:396 +msgid "Apprentice" +msgstr "实习生" + +#. Label of the section_break_7 (Section Break) field in DocType 'Leave +#. Application' +#: frontend/src/components/RequestActionSheet.vue:290 +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Approval" +msgstr "审批" + +#. Label of the approval_status (Select) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Approval Status" +msgstr "审批状态" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:148 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "审批状态必须为'已批准'或'已拒绝'" + +#: frontend/src/components/RequestActionSheet.vue:108 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:119 +msgid "Approve" +msgstr "批准" + +#. Option for the 'Approval Status' (Select) field in DocType 'Expense Claim' +#. Option for the 'Status' (Select) field in DocType 'Leave Application' +#. Option for the 'Status' (Select) field in DocType 'Shift Request' +#: frontend/src/components/ExpenseClaimSummary.vue:36 +#: frontend/src/views/leave/List.vue:30 +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approved" +msgstr "已批准" + +#. Label of the approver (Link) field in DocType 'Department Approver' +#. Label of the approver (Link) field in DocType 'Shift Assignment Tool' +#. Label of the approver (Link) field in DocType 'Shift Request' +#: hrms/hr/doctype/department_approver/department_approver.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +msgid "Approver" +msgstr "审批人" + +#: hrms/setup.py:133 hrms/setup.py:235 +msgid "Approvers" +msgstr "审批人列表" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:39 +#: hrms/public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "四月" + +#: frontend/src/components/FileUploaderView.vue:53 +msgid "Are you sure you want to delete the attachment" +msgstr "确认删除该附件?" + +#: frontend/src/components/FormView.vue:228 +msgid "Are you sure you want to delete the {0}" +msgstr "确认删除{0}?" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:19 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "确认发送所选工资条?" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "确认拒绝该员工推荐?" + +#. Name of a DocType +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear" +msgstr "欠薪" + +#. Label of the arrear_component (Check) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Arrear Component" +msgstr "欠薪组件" + +#: hrms/payroll/doctype/salary_component/salary_component.py:95 +msgid "Arrear Component cannot be set for Salary Components based on taxable salary." +msgstr "基于应税工资的工资组件不可设置欠薪组件" + +#. Label of the arrear_start_date (Date) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrear Start Date" +msgstr "欠薪起始日期" + +#. Label of the arrears_tab (Tab Break) field in DocType 'Arrear' +#: hrms/payroll/doctype/arrear/arrear.json +msgid "Arrears" +msgstr "欠薪" + +#. Label of the arrival_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Arrival Datetime" +msgstr "到达时间" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:23 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "根据您的薪资结构,无法申请此福利" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:101 +msgid "Asset Recovery Cost for {0}: {1}" +msgstr "{0}的资产回收成本:{1}" + +#. Label of the section_break_15 (Section Break) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Assets Allocated" +msgstr "已分配资产" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:283 +msgid "Assign Salary Structure to {0} employee(s)?" +msgstr "是否为{0}名员工分配薪资结构?" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:110 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift" +msgstr "分配班次" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:114 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Assign Shift Schedule" +msgstr "分配班次表" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:53 +msgid "Assign Structure" +msgstr "分配结构" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:298 +msgid "Assigning Salary Structure" +msgstr "正在分配薪资结构" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:113 +msgid "Assigning Structure..." +msgstr "分配结构中..." + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:257 +msgid "Assigning Structures..." +msgstr "分配多个结构..." + +#. Label of the assignment_based_on (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Assignment based on" +msgstr "分配依据" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:50 +#: hrms/hr/doctype/job_requisition/job_requisition.js:74 +msgid "Associate Job Opening" +msgstr "关联职位空缺" + +#. Label of the associated_document (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document" +msgstr "关联文档" + +#. Label of the associated_document_type (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Associated Document Type" +msgstr "关联文档类型" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:108 +msgid "At least one interview has to be selected." +msgstr "至少需选择一个面试" + +#. Label of the attach_proof (Attach) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Attach Proof" +msgstr "附证明" + +#. Label of the attempted (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Attempted" +msgstr "" + +#. Name of a DocType +#. Label of the attendance (Select) field in DocType 'Training Event Employee' +#. Label of a Card Break in the HR Workspace +#. Label of a Link in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: frontend/src/components/BottomTabs.vue:48 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/overrides/dashboard_overrides.py:10 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "考勤" + +#: frontend/src/components/AttendanceCalendar.vue:3 +msgid "Attendance Calendar" +msgstr "考勤日历" + +#. Label of a chart in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "考勤次数" + +#. Label of the attendance_date (Date) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "考勤日期" + +#. Label of the att_fr_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance From Date" +msgstr "考勤起始日期" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "必须填写考勤起止日期" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "考勤编号" + +#. Label of the attendance (Link) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/attendance/attendance_list.js:122 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:102 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Attendance Marked" +msgstr "已记录考勤" + +#. Label of the attendance_request (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.js:18 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Request" +msgstr "考勤申请" + +#: frontend/src/views/attendance/AttendanceRequestList.vue:5 +msgid "Attendance Request History" +msgstr "考勤申请历史" + +#. Label of the attendance_settings_section (Section Break) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Attendance Settings" +msgstr "考勤设置" + +#. Label of the att_to_date (Date) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Attendance To Date" +msgstr "考勤截止日期" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:121 +msgid "Attendance Updated" +msgstr "考勤已更新" + +#: hrms/hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "考勤预警" + +#: hrms/hr/doctype/attendance/attendance.py:60 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "考勤日期{0}不得早于员工{1}的入职日期{2}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:99 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "符合条件的所有员工考勤已记录" + +#: hrms/hr/doctype/attendance/attendance.py:118 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "员工{0}的考勤已记录在重叠班次{1}:{2}中" + +#: hrms/hr/doctype/attendance/attendance.py:72 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "员工{0}在日期{1}的考勤已记录:{2}" + +#: hrms/hr/doctype/leave_application/leave_application.py:587 +msgid "Attendance for employee {0} is already marked for the following dates: {1}" +msgstr "员工{0}在以下日期已有考勤记录:{1}" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:2 +msgid "Attendance for the following dates will be skipped/overwritten on submission" +msgstr "提交时将跳过/覆盖以下日期的考勤记录" + +#: hrms/hr/doctype/attendance/attendance_list.js:102 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "员工{2}在{0}至{1}期间的考勤已记录" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:36 +msgid "Attendance has been marked for all the employees between the selected payroll dates." +msgstr "所选薪资期间内的所有员工考勤已记录" + +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:6 +msgid "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details." +msgstr "这些员工在所选薪资期间的考勤待处理,请记录考勤后继续。详情参考{0}" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:291 +msgid "Attendance marked successfully" +msgstr "考勤记录成功" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:140 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "{0}为节假日,未提交考勤" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:149 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "{0}因{1}请假未提交考勤" + +#. Description of the 'Process Attendance After' (Date) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Attendance will be marked automatically only after this date." +msgstr "仅在此日期后自动记录考勤" + +#: frontend/src/views/attendance/Dashboard.vue:19 +msgid "AttendanceRequestListView" +msgstr "考勤申请列表视图" + +#. Label of the section_break_18 (Section Break) field in DocType 'Training +#. Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Attendees" +msgstr "参会人员" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:56 +msgid "Attrition Count" +msgstr "流失人数" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:43 +#: hrms/public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "八月" + +#. Label of the auto_attendance_settings_section (Section Break) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Auto Attendance Settings" +msgstr "自动考勤设置" + +#. Label of the auto_leave_encashment (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Auto Leave Encashment" +msgstr "自动假期折现" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Automated Based on Goal Progress" +msgstr "基于目标进度自动化" + +#: hrms/hr/utils.py:482 +msgid "Automatic Leave Allocation has failed for the following Earned Leaves: {0}. Please check {1} for more details." +msgstr "" + +#. Description of the 'Assets Allocated' (Section Break) field in DocType 'Full +#. and Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "自动获取员工所有已分配资产(如有)" + +#. Label of the auto_update_last_sync (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Automatically update Last Sync of Checkin" +msgstr "自动更新签到最后同步时间" + +#. Label of the available_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Available Leave(s)" +msgstr "可用假期" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:11 +msgid "Available Leaves" +msgstr "可用假期天数" + +#. Label of the avg_feedback_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:84 +msgid "Average Feedback Score" +msgstr "平均反馈得分" + +#. Label of the average_rating (Rating) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/public/js/templates/feedback_summary.html:5 +msgid "Average Rating" +msgstr "平均评分" + +#. Description of the 'Final Score' (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score" +msgstr "目标评分、反馈评分与自评评分的平均值" + +#: hrms/public/js/templates/interview_feedback.html:16 +msgid "Average rating of demonstrated skills" +msgstr "展示技能的平均评分" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "平均反馈分" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:218 +msgid "Avg Utilization" +msgstr "平均利用率" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:224 +msgid "Avg Utilization (Billed Only)" +msgstr "平均利用率(仅计费)" + +#. Option for the 'Status' (Select) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Awaiting Response" +msgstr "等待回复" + +#: hrms/hr/doctype/leave_application/leave_application.py:170 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "禁止补请假申请,请在{}设置{}" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:285 +msgid "Bank Entries" +msgstr "银行流水" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/bank_remittance/bank_remittance.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bank Remittance" +msgstr "银行汇款" + +#. Label of the base (Currency) field in DocType 'Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:180 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base" +msgstr "基本" + +#. Label of the section_break_7 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Base & Variable" +msgstr "基本+浮动" + +#. Label of the begin_check_in_before_shift_start_time (Int) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Begin check-in before shift start time (in minutes)" +msgstr "允许班次开始前签到时间(分钟)" + +#: hrms/controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "以下是您即将到来的假期列表:" + +#: hrms/overrides/dashboard_overrides.py:35 +msgid "Benefit" +msgstr "福利" + +#. Label of the amount (Currency) field in DocType 'Employee Benefit Detail' +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Benefit Amount" +msgstr "福利金额" + +#. Label of the employee_benefit_details_section (Section Break) field in +#. DocType 'Employee Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Benefit Details" +msgstr "福利明细" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:36 +msgid "Benefit amount of component {0} exceeds {1}" +msgstr "组件{0}的福利金额超过{1}" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:30 +msgid "Benefit amount of component {0} should be greater than 0" +msgstr "组件{0}的福利金额应大于0" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:451 +msgid "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" +msgstr "工资组件{1}的福利金额{0}不应大于在{3}中设置的最大福利金额{2}" + +#. Label of the section_break_4 (Section Break) field in DocType 'Employee +#. Benefit Application' +#. Label of the benefit_type_and_amount (Section Break) field in DocType +#. 'Employee Benefit Claim' +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "福利项目" + +#: hrms/hr/report/project_profitability/project_profitability.py:169 +msgid "Bill Amount" +msgstr "账单金额" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:249 +msgid "Billed Hours" +msgstr "计费工时" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Billed Hours (B)" +msgstr "计费工时(B)" + +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Payroll Entry' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary Slip' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Structure' +#. Option for the 'Payroll Frequency' (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Bimonthly" +msgstr "双月" + +#: hrms/controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "生日提醒" + +#: hrms/controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "生日提醒 🎂" + +#. Label of the send_birthday_reminders (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Birthdays" +msgstr "生日列表" + +#. Label of the block_date (Date) field in DocType 'Leave Block List Date' +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Block Date" +msgstr "封存日期" + +#. Label of the block_days (Section Break) field in DocType 'Leave Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Days" +msgstr "封存天数" + +#. Description of a DocType +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Block Holidays on important days." +msgstr "在重要日期封存假期" + +#. Label of the bonus_section (Section Break) field in DocType 'Retention +#. Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus" +msgstr "奖金" + +#. Label of the bonus_amount (Currency) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Amount" +msgstr "奖金金额" + +#. Label of the bonus_payment_date (Date) field in DocType 'Retention Bonus' +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +msgid "Bonus Payment Date" +msgstr "奖金发放日期" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "奖金发放日期不能为过去日期" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:233 +msgid "Branch: {0}" +msgstr "分支机构:{0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:131 +msgid "Bulk Assignments" +msgstr "批量分配" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "批量分配休假政策" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure/salary_structure_list.js:3 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Bulk Salary Structure Assignment" +msgstr "批量分配薪资结构" + +#. Description of the 'Calculate Final Score based on Formula' (Check) field in +#. DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "By default, the Final Score is calculated as the average of Goal Score, Feedback Score, and Self Appraisal Score. Enable this to set a different formula" +msgstr "默认最终得分为目标得分、反馈得分和自评得分的平均值,启用后可自定义计算公式" + +#. Label of the ctc (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "CTC" +msgstr "人力总成本" + +#. Label of the calculate_final_score_based_on_formula (Check) field in DocType +#. 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Calculate Final Score based on Formula" +msgstr "按公式计算最终得分" + +#. Label of the calculate_gratuity_amount_based_on (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Calculate Gratuity Amount Based On" +msgstr "离职金计算依据" + +#. Label of the payroll_based_on (Select) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Calculate Payroll Working Days Based On" +msgstr "薪资工作日计算依据" + +#. Description of the 'Expire Carry Forwarded Leaves (Days)' (Int) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Calculated in days" +msgstr "按天数计算" + +#: hrms/setup.py:332 +msgid "Calls" +msgstr "通话记录" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:149 +msgid "Cancellation Queued" +msgstr "取消已排队" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:55 +msgid "Cannot Modify Time" +msgstr "不可修改时间" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:323 +msgid "Cannot allocate leaves outside the allocation period {0} - {1}" +msgstr "不可在分配期间{0}-{1}外分配假期" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:446 +msgid "Cannot allocate more leaves due to maximum leave allocation limit of {0} in leave policy assignment" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:438 +msgid "Cannot allocate more leaves due to maximum leaves allowed limit of {0} in {1} leave type." +msgstr "" + +#: hrms/api/roster.py:139 +msgid "Cannot break shift after end date" +msgstr "不可在结束日期后拆分班次" + +#: hrms/api/roster.py:141 +msgid "Cannot break shift before start date" +msgstr "不可在开始日期前拆分班次" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:70 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Attendance: {1}" +msgstr "无法取消班次分配{0},因其关联考勤记录{1}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:53 +msgid "Cannot cancel Shift Assignment: {0} as it is linked to Employee Checkin: {1}" +msgstr "无法取消班次分配{0},因其关联员工签到{1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:306 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "无法为薪资周期后入职员工创建工资条" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:309 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "无法为薪资周期前离职员工创建工资条" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "无法为已关闭的职位空缺创建申请人" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:201 +msgid "Cannot create or change transactions against an Appraisal Cycle with status {0}." +msgstr "无法对状态为{0}的考核周期创建或修改事务" + +#: hrms/hr/doctype/leave_application/leave_application.py:604 +msgid "Cannot find active Leave Period" +msgstr "未找到有效假期周期" + +#: hrms/hr/doctype/attendance/attendance.py:152 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "无法为停用员工{0}记录考勤" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:72 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "无法提交,部分员工考勤未记录" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:140 +msgid "Cannot update allocation for {0} after submission" +msgstr "提交后不可更新{0}的分配" + +#: hrms/hr/doctype/goal/goal_list.js:101 +msgid "Cannot update status of Goal groups" +msgstr "无法更新目标组状态" + +#. Label of the carry_forward (Check) field in DocType 'Leave Control Panel' +#. Label of the carry_forward_section (Section Break) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Carry Forward" +msgstr "结转" + +#. Label of the carry_forwarded_leaves_count (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Carry Forwarded Leaves" +msgstr "结转假期" + +#: hrms/setup.py:347 hrms/setup.py:348 +msgid "Casual Leave" +msgstr "事假" + +#. Label of the cause_of_grievance (Text) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Cause of Grievance" +msgstr "申诉事由" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:105 +msgid "Changed the status from {0} to {1} and Status for Other Half to {2} via Attendance Request" +msgstr "通过考勤申请将状态从{0}更改为{1},并将另一半状态更改为{2}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:109 +msgid "Changed the status from {0} to {1} via Attendance Request" +msgstr "通过考勤申请将状态从{0}更改为{1}" + +#: hrms/hr/doctype/leave_application/leave_application.js:187 +msgid "Changing '{0}' to {1}." +msgstr "正在将‘{0}’更改为{1}。" + +#: hrms/hr/doctype/goal/goal.js:112 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "修改父级目标的KRA将同步所有子目标KRA(如存在)" + +#: hrms/public/js/utils/index.js:147 +msgid "Check {1} for more details" +msgstr "查看{1}获取详情" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1537 +msgid "Check Error Log {0} for more details." +msgstr "查看错误日志{0}获取详情" + +#: frontend/src/components/CheckInPanel.vue:123 +msgid "Check In" +msgstr "签到" + +#: frontend/src/components/CheckInPanel.vue:122 +msgid "Check Out" +msgstr "签退" + +#. Label of the check_vacancies (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Check Vacancies On Job Offer Creation" +msgstr "创建录用通知时检查空缺" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:467 +#: hrms/hr/utils.py:935 +msgid "Check {0} for more details" +msgstr "查看{0}获取详情" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-in" +msgstr "签到" + +#. Label of the check_in_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-in Date" +msgstr "签到日期" + +#: frontend/src/components/CheckInPanel.vue:159 +msgid "Check-out" +msgstr "签退" + +#. Label of the check_out_date (Date) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Check-out Date" +msgstr "签退日期" + +#. Label of the checkin_radius (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Checkin Radius" +msgstr "签到半径" + +#: hrms/hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "子节点只能在'组'类型节点下创建" + +#. Description of the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Choose how the hourly overtime amount is calculated:\n" +"
    1. Fixed Hourly Rate: A fixed, manually entered hourly rate.
    2. \n" +"
    3. Salary Component-Based:\n\n" +"(Sum of selected component amounts) ÷ (Payment Days) ÷ (Standard Daily Hours)
    " +msgstr "选择小时加班费计算方式:\n" +"
    1. 固定小时费率:固定且手动输入的小时费率。
    2. \n" +"
    3. 基于工资组件\n\n" +"(所选组件金额总和)÷(支付天数)÷(标准每日工时)
    " + +#. Description of the 'Payroll Date' (Date) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Choose the date on which you want to create these components as arrears." +msgstr "选择将这些组件创建为欠薪的日期" + +#. Label of the earning_component (Link) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claim Benefit For" +msgstr "申请福利对象" + +#: frontend/src/views/Home.vue:47 +#: frontend/src/views/expense_claim/Dashboard.vue:17 +msgid "Claim an Expense" +msgstr "费用报销" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Claimed" +msgstr "已申报" + +#. Label of the claimed_amount (Currency) field in DocType 'Employee Advance' +#. Label of the claimed_amount (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.py:77 +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Claimed Amount" +msgstr "申报金额" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:34 +msgid "Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}" +msgstr "员工{0}的报销金额超过符合条件的最大报销金额{1}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:30 +msgid "Claimed amount of employee {0} should be greater than 0" +msgstr "员工{0}的报销金额应大于0" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +#: hrms/overrides/dashboard_overrides.py:84 +msgid "Claims" +msgstr "报销单" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#. Option for the 'Result' (Select) field in DocType 'Interview Feedback' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +msgid "Cleared" +msgstr "已清算" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:292 +msgid "Click {0} to change the configuration and then resave salary slip" +msgstr "点击{0}修改配置后重新保存工资条" + +#. Label of the closed_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closed On" +msgstr "关闭日期" + +#. Label of the closes_on (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/templates/generators/job_opening.html:187 +msgid "Closes On" +msgstr "截止日期" + +#: hrms/www/jobs/index.html:243 +msgid "Closes on:" +msgstr "截止于:" + +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter' +#. Label of the closing_notes (Text) field in DocType 'Appointment Letter +#. Template' +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Closing Notes" +msgstr "结案说明" + +#: frontend/src/views/Profile.vue:177 +msgid "Company Information" +msgstr "公司信息" + +#. Name of a DocType +#. Label of the compensatory_request (Link) field in DocType 'Leave Allocation' +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Compensatory Leave Request" +msgstr "补休申请" + +#: hrms/setup.py:356 hrms/setup.py:357 +msgid "Compensatory Off" +msgstr "调休" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:118 +msgid "Completing onboarding" +msgstr "完成入职流程" + +#. Label of the section_break_5 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Component properties and references " +msgstr "组件属性及引用" + +#. Label of the configure_component_tab (Tab Break) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Condition & Formula" +msgstr "条件与公式" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:8 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:12 +msgid "Condition and Formula Help" +msgstr "条件与公式说明" + +#. Label of the section_break_2 (Section Break) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Condition and formula" +msgstr "条件与公式" + +#. Label of the conditions_and_formula_variable_and_example (HTML) field in +#. DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Conditions and Formula variable and example" +msgstr "条件公式变量及示例" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Conference" +msgstr "会议" + +#: frontend/src/components/CheckInPanel.vue:73 +msgid "Confirm {0}" +msgstr "确认{0}" + +#: hrms/hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "考虑宽限期" + +#. Label of the consider_marked_attendance_on_holidays (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Marked Attendance on Holidays" +msgstr "节假日考勤纳入考量" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:49 +msgid "Consider Tax Exemption Declaration" +msgstr "考虑免税申报" + +#. Label of the consider_unmarked_attendance_as (Select) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Consider Unmarked Attendance As" +msgstr "未记录考勤视为" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:53 +msgid "Consolidate Leave Types" +msgstr "合并休假类型" + +#. Label of the contact_number (Data) field in DocType 'Training Event' +#. Label of the contact_number (Data) field in DocType 'Training Program' +#. Label of the cell_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Contact Number" +msgstr "联系电话" + +#. Label of the travel_proof (Attach) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Copy of Invitation/Announcement" +msgstr "邀请函/公告副本" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1600 +msgid "Could not submit some Salary Slips: {}" +msgstr "无法提交部分工资条:{}" + +#: hrms/hr/doctype/goal/goal_tree.js:292 +msgid "Could not update Goal" +msgstr "无法更新目标" + +#: hrms/hr/doctype/goal/goal_list.js:133 +msgid "Could not update goals" +msgstr "无法更新多个目标" + +#: hrms/overrides/company.py:38 +msgid "Country Fixture Deletion Failed" +msgstr "国家基础数据删除失败" + +#: hrms/overrides/company.py:51 +msgid "Country Setup failed" +msgstr "国家配置失败" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Country of Residence" +msgstr "居住国家" + +#. Label of the course (Data) field in DocType 'Training Event' +#. Label of the course (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +msgid "Course" +msgstr "课程" + +#. Label of the cover_letter (Text) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Cover Letter" +msgstr "求职信" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:40 +msgid "Create Additional Salary" +msgstr "创建附加薪资" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:34 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:38 +msgid "Create Appraisals" +msgstr "创建绩效考核" + +#: hrms/hr/doctype/interview_round/interview_round.js:7 +#: hrms/hr/doctype/job_applicant/job_applicant.js:95 +msgid "Create Interview" +msgstr "创建面试安排" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "创建职位申请人" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:39 +msgid "Create Job Opening" +msgstr "创建职位空缺" + +#. Label of the create_new_employee_id (Check) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Create New Employee Id" +msgstr "创建新员工编号" + +#. Label of the create_overtime_slip (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Create Overtime Slip For Eligible Employee(s)" +msgstr "为符合条件的员工创建加班单" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:83 +msgid "Create Overtime Slips" +msgstr "创建加班单" + +#: hrms/public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "创建工资条" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:97 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:175 +msgid "Create Salary Slips" +msgstr "批量创建工资条" + +#. Label of the create_shifts_after (Date) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Create Shifts After" +msgstr "创建班次时间范围" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:192 +msgid "Creating Appraisals" +msgstr "正在创建绩效考核" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:458 +msgid "Creating Payment Entries......" +msgstr "正在创建付款分录......" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1560 +msgid "Creating Salary Slips..." +msgstr "正在创建工资条..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:246 +msgid "Creating {0}..." +msgstr "正在创建{0}..." + +#: hrms/hr/report/leave_ledger/leave_ledger.py:41 +msgid "Creation Date" +msgstr "创建日期" + +#: hrms/hr/utils.py:944 +msgid "Creation Failed" +msgstr "创建失败" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py:73 +msgid "Creation of Salary Structure Assignments has been queued. It may take a few minutes." +msgstr "薪资结构分配创建已加入队列,可能需要几分钟时间" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:200 +msgid "Creation of {0} has been queued. It may take a few minutes." +msgstr "{0}创建已加入队列,可能需要几分钟时间" + +#. Description of the 'Rating Criteria' (Table) field in DocType 'Appraisal +#. Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "绩效反馈与自评的评分依据标准" + +#. Label of the currency_section (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Currency " +msgstr "币种" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:94 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "所选所得税税级的币种应为{0}而非{1}" + +#. Label of the current_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Current CTC" +msgstr "当前人力总成本" + +#. Label of the current_count (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Count" +msgstr "当前数量" + +#. Label of the current_employer (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Employer " +msgstr "当前雇主" + +#. Label of the current_job_title (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Current Job Title" +msgstr "当前职位" + +#. Label of the current_month_income_tax (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Month Income Tax" +msgstr "本月所得税" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "当前里程表读数应大于上次读数{0}" + +#. Label of the odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Current Odometer value " +msgstr "当前里程表读数" + +#. Label of the current_openings (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Current Openings" +msgstr "当前空缺职位" + +#. Label of the current_payroll_period (Link) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Current Payroll Period" +msgstr "当前薪资期间" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Slab" +msgstr "当前税级" + +#. Label of the current_work_experience (Float) field in DocType 'Gratuity' +#. Label of the gratuity_rule_slabs (Table) field in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Current Work Experience" +msgstr "当前工作经验" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "当前没有适用于该日期的{0}假期周期用于创建/更新假期分配" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Custom Range" +msgstr "自定义范围" + +#. Label of the cycle_name (Data) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Cycle Name" +msgstr "周期名称" + +#. Label of the cycles (Table) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Cycles" +msgstr "周期" + +#. Name of a DocType +#. Label of a Card Break in the Tenure Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary" +msgstr "每日工作摘要" + +#. Label of the daily_work_summary_group (Link) field in DocType 'Daily Work +#. Summary' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hrms/hr/page/team_updates/team_updates.js:12 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Group" +msgstr "每日工作摘要组" + +#. Name of a DocType +#: hrms/hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "每日工作摘要组成员" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Daily Work Summary Replies" +msgstr "每日工作摘要回复" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:167 +msgid "Date Range Exceeded" +msgstr "日期范围超出" + +#: hrms/hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "日期重复" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:59 +msgid "Date {0} is repeated in Overtime Details" +msgstr "日期{0}在加班明细中重复" + +#. Label of the section_break_5 (Section Break) field in DocType 'Leave +#. Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Dates & Reason" +msgstr "日期及原因" + +#. Label of the dates_based_on (Select) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Dates Based On" +msgstr "日期依据" + +#: hrms/setup.py:121 +msgid "Days for which Holidays are blocked for this department." +msgstr "本部门封存的假期天数" + +#. Label of the days_to_reverse (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Days to Reverse" +msgstr "待冲销天数" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:19 +msgid "Days to Reverse must be greater than zero." +msgstr "待冲销天数必须大于零" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "借方账号" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:47 +#: hrms/public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "十二月" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "待决策" + +#. Label of the declarations (Table) field in DocType 'Employee Tax Exemption +#. Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Declarations" +msgstr "申报项" + +#. Label of the amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Declared Amount" +msgstr "申报金额" + +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Additional Salary' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Component' +#. Label of the deduct_full_tax_on_selected_payroll_date (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "在选定薪资日期全额扣税" + +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Payroll Entry' +#. Label of the deduct_tax_for_unsubmitted_tax_exemption_proof (Check) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "为未提交免税证明的情况扣税" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Deduction" +msgstr "扣除项" + +#. Label of the deduction_arrears (Table) field in DocType 'Arrear' +#. Label of the deduction_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Deduction Arrears" +msgstr "扣款欠薪" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Deduction Reports" +msgstr "扣除项报告" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:84 +msgid "Deduction from Salary" +msgstr "薪资扣除" + +#. Label of the deductions (Table) field in DocType 'Salary Slip' +#. Label of the deductions (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Deductions" +msgstr "扣除项" + +#. Label of the deductions_before_tax_calculation (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Deductions before tax calculation" +msgstr "税前扣除项" + +#. Label of the default_amount (Currency) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Default Amount" +msgstr "默认金额" + +#. Description of the 'Account' (Link) field in DocType 'Salary Component +#. Account' +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "选择此模式时,银行/现金默认账户将自动更新至薪资日记账" + +#. Label of the default_base_pay (Currency) field in DocType 'Employee Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Base Pay" +msgstr "默认基本工资" + +#: hrms/setup.py:81 +msgid "Default Employee Advance Account" +msgstr "默认员工预支账户" + +#: hrms/setup.py:73 +msgid "Default Expense Claim Payable Account" +msgstr "默认费用报销应付账户" + +#: hrms/overrides/company.py:133 hrms/setup.py:96 +msgid "Default Payroll Payable Account" +msgstr "默认应付薪资账户" + +#. Label of the default_salary_structure (Link) field in DocType 'Employee +#. Grade' +#: hrms/hr/doctype/employee_grade/employee_grade.json +msgid "Default Salary Structure" +msgstr "默认薪资结构" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:204 +#: hrms/setup.py:207 +msgid "Default Shift" +msgstr "默认班次" + +#: frontend/src/components/FileUploaderView.vue:49 +msgid "Delete Attachment" +msgstr "删除附件" + +#: frontend/src/components/FormView.vue:224 +msgid "Delete {0}" +msgstr "删除{0}" + +#. Name of a DocType +#: hrms/hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "部门审批人" + +#. Label of a chart in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "部门空缺分布" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:107 +msgid "Department {0} does not belong to company: {1}" +msgstr "部门{0}不属于公司{1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:235 +msgid "Department: {0}" +msgstr "部门:{0}" + +#. Label of the departure_date (Datetime) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Departure Datetime" +msgstr "离开时间" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:109 +#: hrms/payroll/doctype/salary_structure/salary_structure.py:113 +msgid "Depends On Payment Days" +msgstr "依赖计薪天数" + +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Component' +#. Label of the depends_on_payment_days (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Depends on Payment Days" +msgstr "依赖计薪天数" + +#. Description of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Description of a Job Opening" +msgstr "职位空缺描述" + +#. Name of a DocType +#: hrms/hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "职级技能" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:237 +msgid "Designation: {0}" +msgstr "职级:{0}" + +#. Label of the details_of_sponsor (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Details of Sponsor (Name, Location)" +msgstr "担保人详细信息(姓名,所在地)" + +#. Label of the determine_check_in_and_check_out (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Determine Check-in and Check-out" +msgstr "确定签到/签退规则" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:111 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "请为{1}组件禁用{0},因其公式已包含基于计薪天数的组件,避免重复扣除" + +#: hrms/hr/doctype/leave_type/leave_type.py:40 +msgid "Disable {0} or {1} to proceed." +msgstr "禁用{0}或{1}以继续" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Disabling Push Notifications..." +msgstr "正在禁用推送通知..." + +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Component' +#. Label of the do_not_include_in_accounts (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do Not Include in Accounting Entries" +msgstr "不包含在会计分录入账中" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Do Not Include in Total" +msgstr "不计入合计" + +#. Label of the do_not_include_in_total (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Do not include in total" +msgstr "不计入合计" + +#: hrms/hr/doctype/interview/interview.py:68 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "是否根据本次面试结果将职位申请人{0}状态更新为{1}?" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "Document {0} failed!" +msgstr "单据{0}处理失败!" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Domestic" +msgstr "国内" + +#: hrms/hr/doctype/attendance/attendance.py:77 +msgid "Duplicate Attendance" +msgstr "重复考勤记录" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:57 +msgid "Duplicate Claim Detected" +msgstr "检测到重复报销" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "重复职位申请" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:40 +msgid "Duplicate Leave Adjustment" +msgstr "重复假期调整" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:158 +msgid "Duplicate Overwritten Salary" +msgstr "重复覆盖薪资" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:43 +msgid "Duplicate Salary Withholding" +msgstr "重复薪资代扣" + +#: hrms/public/js/utils/index.js:210 +msgid "ERROR({0}): {1}" +msgstr "错误({0}):{1}" + +#. Label of the early_exit (Check) field in DocType 'Attendance' +#. Label of the early_exit (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "早退" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "早退处理人" + +#. Label of the early_exit_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Early Exit Grace Period" +msgstr "早退宽限期" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "早退记录" + +#. Label of the earned_leave (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave" +msgstr "带薪休假" + +#. Label of the earned_leave_frequency (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Earned Leave Frequency" +msgstr "带薪休假分配频率" + +#. Name of a DocType +#. Label of the earned_leave_schedule_section (Section Break) field in DocType +#. 'Leave Allocation' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Earned Leave Schedule" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:141 +msgid "Earned Leaves" +msgstr "累计休假" + +#: hrms/hr/doctype/leave_type/leave_type.py:35 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "带薪休假按配置频率通过调度程序自动分配" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:144 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "根据休假政策{0}设定的年度分配,带薪休假通过调度程序自动分配" + +#: hrms/hr/doctype/leave_type/leave_type.js:59 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "带薪休假是员工在公司工作一定时间后获得的假期。启用后,系统将按'分配频率'定期自动按比例更新此类假期分配" + +#. Option for the 'Type' (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/report/salary_register/salary_register.py:90 +#: hrms/payroll/report/salary_register/salary_register.py:96 +msgid "Earning" +msgstr "收入项" + +#. Label of the earning_arrears (Table) field in DocType 'Arrear' +#. Label of the earning_arrears (Table) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Earning Arrears" +msgstr "收入欠薪" + +#. Label of the earning_component (Link) field in DocType 'Leave Type' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Application Detail' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Detail' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Earning Component" +msgstr "收入组件" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:112 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "员工推荐奖金需要收入类薪资组件" + +#. Label of the earnings (Table) field in DocType 'Salary Slip' +#. Label of the earnings (Table) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings" +msgstr "收入项" + +#. Label of the earnings_and_deductions_tab (Tab Break) field in DocType +#. 'Salary Slip' +#. Label of the earning_deduction (Tab Break) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Earnings & Deductions" +msgstr "收入与扣除项" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "Edit Expense Item" +msgstr "编辑费用项" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "Edit Expense Tax" +msgstr "编辑费用税费" + +#. Label of the effective_from (Date) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective From" +msgstr "生效日期" + +#. Label of the effective_to (Date) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Effective To" +msgstr "失效日期" + +#. Label of the effective_from (Date) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Effective from" +msgstr "自生效日期" + +#. Label of the email_salary_slip_to_employee (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Email Salary Slip to Employee" +msgstr "邮件发送工资条至员工" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:13 +msgid "Email Salary Slips" +msgstr "批量发送工资条邮件" + +#. Label of the email_sent_to (Code) field in DocType 'Daily Work Summary' +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.json +msgid "Email Sent To" +msgstr "邮件接收人" + +#. Description of the 'Email Salary Slip to Employee' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "根据员工档案首选邮箱发送工资条邮件" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:40 +msgid "Employee A/C Number" +msgstr "员工银行账号" + +#: hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py:11 +#: hrms/setup.py:267 +msgid "Employee Advance Account" +msgstr "" + +#: frontend/src/views/expense_claim/Dashboard.vue:35 +msgid "Employee Advance Balance" +msgstr "员工预支余额" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/report/employee_advance_summary/employee_advance_summary.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "员工预支汇总" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_analytics/employee_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Analytics" +msgstr "员工分析" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Attendance Tool" +msgstr "员工考勤工具" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Application" +msgstr "员工福利申请" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "员工福利申请明细" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Benefit Claim" +msgstr "员工福利申报" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json +msgid "Employee Benefit Detail" +msgstr "员工福利明细" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Employee Benefit Ledger" +msgstr "员工福利分类账" + +#. Label of the employee_benefits_section (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:406 +msgid "Employee Benefits" +msgstr "员工福利" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_birthday/employee_birthday.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Birthday" +msgstr "员工生日" + +#. Name of a DocType +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "员工入职活动" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Checkin" +msgstr "员工签到" + +#: frontend/src/views/attendance/EmployeeCheckinList.vue:5 +msgid "Employee Checkin History" +msgstr "员工签到历史" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "员工成本中心" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Onboarding' +#. Label of the employee_details_tab (Tab Break) field in DocType 'Employee +#. Performance Feedback' +#. Label of the employee_details_section (Section Break) field in DocType 'Exit +#. Interview' +#. Label of the employee_details_section (Section Break) field in DocType 'Full +#. and Final Statement' +#. Label of the employee_details_section (Section Break) field in DocType +#. 'Shift Assignment' +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Schedule Assignment' +#. Label of the employee_details (Section Break) field in DocType 'Travel +#. Request' +#. Label of the employee_section (Section Break) field in DocType 'Employee +#. Other Income' +#. Label of the section_break_24 (Section Break) field in DocType 'Payroll +#. Entry' +#: frontend/src/views/Profile.vue:165 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Employee Details" +msgstr "员工详细信息" + +#. Label of the employee_emails (Small Text) field in DocType 'Training Event' +#. Label of the employee_emails (Small Text) field in DocType 'Training Result' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_result/training_result.json +msgid "Employee Emails" +msgstr "员工邮箱列表" + +#. Label of the employee_exit_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Exit Settings" +msgstr "员工离职设置" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_exits/employee_exits.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Exits" +msgstr "员工离职记录" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "员工反馈标准" + +#. Name of a DocType +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "员工反馈评分" + +#. Label of the employee_grade (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding' +#. Label of the employee_grade (Link) field in DocType 'Employee Onboarding +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation' +#. Label of the employee_grade (Link) field in DocType 'Employee Separation +#. Template' +#. Label of the employee_grade (Link) field in DocType 'Leave Control Panel' +#. Label of the grade (Link) field in DocType 'Shift Assignment Tool' +#. Label of a Link in the HR Workspace +#. Label of the grade (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employee_grade/employee_grade.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employee Grade" +msgstr "员工职级" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Grievance" +msgstr "员工申诉" + +#. Name of a DocType +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "员工健康保险" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "基于工时表的员工工时利用率" + +#. Label of the employee_image (Attach Image) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Employee Image" +msgstr "员工照片" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Employee Incentive" +msgstr "员工激励" + +#. Label of the section_break_6 (Section Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Employee Info" +msgstr "员工基本信息" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/report/employee_information/employee_information.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/tenure/tenure.json +msgid "Employee Information" +msgstr "员工信息" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Journey" +msgstr "员工职业历程管理" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "员工假期余额" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "员工假期余额汇总" + +#: hrms/setup.py:779 +msgid "Employee Loan" +msgstr "员工借款" + +#. Label of the emp_created_by (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Naming By" +msgstr "员工编号规则" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding" +msgstr "员工入职流程" + +#. Label of the employee_onboarding_template (Link) field in DocType 'Employee +#. Onboarding' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Onboarding Template" +msgstr "员工入职模板" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "职位申请人{1}已存在员工入职流程{0}" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "员工其他收入" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hrms/hr/workspace/performance/performance.json +msgid "Employee Performance Feedback" +msgstr "员工绩效反馈" + +#. Name of a DocType +#. Label of a Link in the Performance Workspace +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +#: hrms/hr/workspace/performance/performance.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Promotion" +msgstr "员工晋升" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion Details" +msgstr "员工晋升详情" + +#: hrms/hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "晋升日期前不可提交晋升记录" + +#. Name of a DocType +#: hrms/hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "员工属性变更历史" + +#. Name of a DocType +#. Label of the employee_referral (Link) field in DocType 'Job Applicant' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:18 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:400 +msgid "Employee Referral" +msgstr "员工推荐" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:26 +msgid "Employee Referral {0} already exists for email: {1}" +msgstr "" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:108 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "员工推荐{0}不符合推荐奖金条件" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:15 +msgid "Employee Referrals" +msgstr "员工推荐记录" + +#. Label of the employee_responsible (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Responsible " +msgstr "责任人" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Employee Retained" +msgstr "留任员工" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#. Label of a shortcut in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation" +msgstr "员工离职" + +#. Label of the employee_separation_template (Link) field in DocType 'Employee +#. Separation' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_separation/employee_separation.json +#: hrms/hr/doctype/employee_separation_template/employee_separation_template.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Separation Template" +msgstr "员工离职模板" + +#. Label of the employee_settings (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee Settings" +msgstr "员工设置" + +#. Name of a DocType +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "员工技能" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Skill Map" +msgstr "员工技能图谱" + +#. Label of the employee_skills (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skills" +msgstr "员工技能列表" + +#: hrms/hr/report/employee_exits/employee_exits.py:194 +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:40 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +#: hrms/hr/report/leave_ledger/leave_ledger.js:34 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:41 +msgid "Employee Status" +msgstr "员工状态" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Category" +msgstr "员工免税类别" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Declaration" +msgstr "员工免税申报" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "员工免税申报类别" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "员工免税证明提交" + +#. Name of a DocType +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "员工免税证明提交明细" + +#. Name of a DocType +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Employee Tax Exemption Sub Category" +msgstr "员工免税子类别" + +#. Name of a DocType +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "员工培训" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Employee Transfer" +msgstr "员工调岗" + +#. Label of the transfer_details (Table) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Detail" +msgstr "员工调岗明细" + +#. Label of the details_section (Section Break) field in DocType 'Employee +#. Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer Details" +msgstr "员工调岗详情" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "调岗日期前不可提交调岗记录" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:69 +#: hrms/hr/doctype/employee_advance/employee_advance.py:139 +msgid "Employee advance account {0} should be of type {1}." +msgstr "员工预支账户{0}应为{1}类型" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "员工编号可通过指定员工ID或命名规则生成,请在此选择首选项" + +#. Label of the employee_name (Data) field in DocType 'Leave Policy Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Employee name" +msgstr "员工姓名" + +#. Description of the 'Employee Naming By' (Select) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Employee records are created using the selected option" +msgstr "员工档案将按所选选项创建" + +#: hrms/hr/doctype/shift_type/shift_type.py:272 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "因缺少签到记录,员工标记为缺勤" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:248 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "因未达到工时阈值,员工标记为缺勤" + +#: hrms/hr/doctype/shift_type/shift_type.py:401 +msgid "Employee was marked Absent for other half due to missing Employee Checkins." +msgstr "由于缺少员工打卡记录,该员工另一半被标记为缺勤" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:456 +msgid "Employee {0} : {1}" +msgstr "员工{0}:{1}" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:67 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "员工{0}已有考勤申请{1}与本期间重叠" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:140 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "员工{0}存在活动班次{1}:{2}与本期间重叠" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:56 +msgid "Employee {0} already submitted an application {1} for the payroll period {2}" +msgstr "员工{0}已提交薪资期间{2}的申请{1}" + +#: hrms/hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "员工{0}已申请与本期间重叠的班次{1}:{2}" + +#: hrms/hr/doctype/leave_application/leave_application.py:476 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "员工{0}已在{2}至{3}期间申请{1}:{4}" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:48 +msgid "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." +msgstr "员工{0}已在{2}({3})期间报销过福利“{1}”。
    为防止超额支付,每个薪资周期内每种福利类型仅允许报销一次" + +#: hrms/hr/doctype/attendance/attendance.py:211 +msgid "Employee {0} is not active or does not exist" +msgstr "员工{0}未激活或不存在" + +#: hrms/hr/doctype/attendance/attendance.py:187 +msgid "Employee {0} is on Leave on {1}" +msgstr "员工{0}在{1}请假" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "未在培训参与者中找到员工{0}" + +#: hrms/hr/doctype/attendance/attendance.py:180 +msgid "Employee {0} on Half day on {1}" +msgstr "员工{0}在{1}为半日假" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:644 +msgid "Employee {0} relieved on {1} must be set as 'Left'" +msgstr "员工{0}于{1}离职需标记为'已离职'" + +#: hrms/payroll/doctype/gratuity/gratuity.py:161 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "员工{0}需满足最低{1}年工龄方可享受离职金" + +#. Label of the employees_html (HTML) field in DocType 'Leave Control Panel' +#. Label of the employees_html (HTML) field in DocType 'Shift Assignment Tool' +#. Label of the employees_html (HTML) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Employees HTML" +msgstr "员工HTML模板" + +#. Label of a Link in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "节假日出勤员工" + +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "员工不可自评,请使用{0}功能:{1}" + +#. Label of the half_marked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employees on Half Day HTML" +msgstr "半日制员工HTML" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:81 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "员工将错过{}至{}期间的假期提醒。
    是否继续此更改?" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:167 +msgid "Employees without Feedback: {0}" +msgstr "未提交反馈员工:{0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:171 +msgid "Employees without Goals: {0}" +msgstr "未设置目标员工:{0}" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "节假日工作员工" + +#. Label of the employment_type (Link) field in DocType 'Employee Attendance +#. Tool' +#. Name of a DocType +#. Label of the employee_type_name (Data) field in DocType 'Employment Type' +#. Label of the employment_type (Link) field in DocType 'Job Opening' +#. Label of the employment_type (Link) field in DocType 'Job Opening Template' +#. Label of the employment_type (Link) field in DocType 'Leave Control Panel' +#. Label of the employment_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the employment_type (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/employment_type/employment_type.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/setup.py:186 hrms/templates/generators/job_opening.html:141 +msgid "Employment Type" +msgstr "雇佣类型" + +#. Label of the enable_auto_attendance (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Auto Attendance" +msgstr "启用自动考勤" + +#. Label of the enable_early_exit_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Early Exit Marking" +msgstr "启用早退标记" + +#. Label of the enable_late_entry_marking (Check) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Enable Late Entry Marking" +msgstr "启用迟到标记" + +#: frontend/src/views/AppSettings.vue:25 +msgid "Enable Push Notifications" +msgstr "启用推送通知" + +#. Description of the 'Apply for Public Holiday' (Check) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for public holidays. If unchecked, the standard multiplier will be used instead." +msgstr "启用此项可为公共假日使用特定乘数。若未勾选,将使用标准乘数" + +#. Description of the 'Apply for Weekend' (Check) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Enable this to use a specific multiplier for weekends. If unchecked, the standard multiplier will be used instead." +msgstr "启用此项可为周末使用特定乘数。若未勾选,将使用标准乘数" + +#. Description of the 'Flexible Benefit' (Check) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Enabled only for Employee Benefit components from Salary Structure Assignment" +msgstr "仅对来自薪资结构分配的员工福利组件启用" + +#: frontend/src/views/AppSettings.vue:40 +msgid "Enabling Push Notifications..." +msgstr "正在启用推送通知..." + +#. Label of the encashment (Section Break) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Encashment" +msgstr "折现" + +#. Label of the encashment_amount (Currency) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Amount" +msgstr "折现金额" + +#. Label of the encashment_days (Float) field in DocType 'Leave Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Encashment Days" +msgstr "折现天数" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:130 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "根据假期类型设置,折现天数不得超过{0}{1}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:120 +msgid "Encashment Limit Applied" +msgstr "已应用折现限制" + +#. Label of the encrypt_salary_slips_in_emails (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Encrypt Salary Slips in Emails" +msgstr "邮件工资条加密" + +#: frontend/src/views/attendance/ShiftAssignmentForm.vue:75 +msgid "End Date cannot be before Start Date" +msgstr "结束日期不得早于开始日期" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:241 +msgid "End date: {0}" +msgstr "截止日期:{0}" + +#: hrms/hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "结束时间不得早于开始时间" + +#: hrms/hr/doctype/job_applicant/job_applicant.js:86 +msgid "Enter Interview Round" +msgstr "输入面试轮次" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:48 +msgid "Enter a non-zero value to adjust." +msgstr "请输入非零值进行调整。" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:34 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "输入标准工作日工时,该数值将用于员工工时利用率和项目盈利能力分析等报表" + +#. Description of the 'Days to Reverse' (Float) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month" +msgstr "输入要冲销的无薪假(LWP)天数。该值不能超过所选月份记录的总LWP天数" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:259 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "输入本期间需分配的假期天数" + +#. Description of the 'Flexible Benefits' (Table) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Enter yearly benefit amounts" +msgstr "输入年度福利金额" + +#: frontend/src/components/FormField.vue:42 +msgid "Enter {0}" +msgstr "输入{0}" + +#: frontend/src/components/FormView.vue:543 +msgid "Error creating {0}" +msgstr "创建{0}时出错" + +#: frontend/src/components/FormView.vue:592 +msgid "Error deleting {0}" +msgstr "删除{0}时出错" + +#: frontend/src/utils/commonUtils.js:46 +msgid "Error downloading PDF" +msgstr "下载 PDF 时出错" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1320 +msgid "Error in formula or condition" +msgstr "公式或条件错误" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2535 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "所得税税级公式或条件错误:{0}" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.js:57 +msgid "Error in some rows" +msgstr "部分行数据错误" + +#: frontend/src/components/FormView.vue:570 +msgid "Error updating {0}" +msgstr "更新{0}时出错" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2614 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "评估{doctype}{doclink}第{row_id}行时出错。

    错误:{error}

    提示:{description}" + +#. Label of the estimated_cost_per_position (Currency) field in DocType +#. 'Staffing Plan Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Estimated Cost Per Position" +msgstr "单岗位预估成本" + +#: hrms/overrides/dashboard_overrides.py:52 +msgid "Evaluation" +msgstr "评估" + +#. Label of the evaluation_date (Date) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Evaluation Date" +msgstr "评估日期" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "本考核周期已存在考核记录,不可更改评估方法" + +#. Label of the event_details (Section Break) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Event Details" +msgstr "活动详情" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "活动链接" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:23 +#: hrms/templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "活动地点" + +#. Label of the event_name (Data) field in DocType 'Training Event' +#. Label of the event_name (Data) field in DocType 'Training Feedback' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "活动名称" + +#. Label of the event_status (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Event Status" +msgstr "活动状态" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 2 Weeks" +msgstr "每两周" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 3 Weeks" +msgstr "每三周" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every 4 Weeks" +msgstr "每四周" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Every Valid Check-in and Check-out" +msgstr "每次有效签到/签退" + +#. Option for the 'Frequency' (Select) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Every Week" +msgstr "每周" + +#: hrms/controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "让我们共同祝贺他们的工作周年纪念!" + +#: hrms/controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "让我们共同祝贺{0}生日快乐!" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Exam" +msgstr "考试" + +#. Description of the 'Exchange Rate' (Float) field in DocType 'Expense Claim +#. Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Exchange rate of Payment Entry against Employee Advance" +msgstr "" + +#: hrms/hr/doctype/attendance/attendance_list.js:85 +msgid "Exclude Holidays" +msgstr "排除节假日" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:106 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "已排除{1}的不可折现假期{0}" + +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Component' +#. Label of the exempted_from_income_tax (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Exempted from Income Tax" +msgstr "免征所得税" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "豁免" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_category (Read Only) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Category" +msgstr "豁免类别" + +#. Label of the exemption_proofs_details_tab (Tab Break) field in DocType +#. 'Employee Tax Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Exemption Proofs" +msgstr "豁免证明" + +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Declaration Category' +#. Label of the exemption_sub_category (Link) field in DocType 'Employee Tax +#. Exemption Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Exemption Sub Category" +msgstr "豁免子类别" + +#: hrms/hr/doctype/attendance_request/attendance_warnings.html:10 +msgid "Existing Record" +msgstr "现有记录" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:37 +msgid "Existing Shift Assignments" +msgstr "现有班次分配" + +#. Option for the 'Final Decision' (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "离职确认" + +#. Label of the exit_details_section (Section Break) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Exit Details" +msgstr "离职详情" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.py:39 +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exit Interview" +msgstr "离职面谈" + +#: hrms/hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "待处理离职面谈" + +#. Label of the exit_interview (Text Editor) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Exit Interview Summary" +msgstr "离职面谈汇总" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "员工{1}已存在离职面谈{0}" + +#. Label of the exit_questionnaire_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/exit_interview/exit_interview.py:143 +msgid "Exit Questionnaire" +msgstr "离职问卷" + +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:116 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:126 +#: hrms/hr/doctype/exit_interview/test_exit_interview.py:128 hrms/setup.py:481 +#: hrms/setup.py:483 hrms/setup.py:504 +msgid "Exit Questionnaire Notification" +msgstr "离职问卷通知" + +#. Label of the exit_questionnaire_notification_template (Link) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Notification Template" +msgstr "离职问卷通知模板" + +#: hrms/hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "待处理离职问卷" + +#. Label of the exit_questionnaire_web_form (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/exit_interview/exit_interview.py:124 +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Exit Questionnaire Web Form" +msgstr "离职问卷Web表单" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Exits (This Month)" +msgstr "离职人数(本月)" + +#. Label of the expected_average_rating (Rating) field in DocType 'Interview' +#. Label of the expected_average_rating (Rating) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Average Rating" +msgstr "预期平均评分" + +#. Label of the expected_by (Date) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected By" +msgstr "期望完成时间" + +#. Label of the expected_compensation (Currency) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Expected Compensation" +msgstr "期望薪酬" + +#. Label of a field in the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Expected Salary Range per month" +msgstr "期望月薪范围" + +#. Name of a DocType +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "预期技能要求" + +#. Label of the expected_skill_set (Table) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Expected Skillset" +msgstr "预期技能组合" + +#. Name of a role +#. Label of the expense_approver (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/employee_advance/employee_advance.json +#: hrms/hr/doctype/expense_claim/expense_claim.json hrms/setup.py:153 +#: hrms/setup.py:241 +msgid "Expense Approver" +msgstr "费用审批人" + +#. Label of the expense_approver_mandatory_in_expense_claim (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "费用报销必须指定审批人" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "费用报销账户" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "费用预支报销" + +#. Name of a DocType +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "费用报销明细" + +#: frontend/src/components/ExpenseClaimSummary.vue:3 +msgid "Expense Claim Summary" +msgstr "费用报销汇总" + +#. Label of the expense_type (Link) field in DocType 'Expense Claim Detail' +#. Name of a DocType +#. Label of the expense_type (Data) field in DocType 'Expense Claim Type' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.py:703 +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/doctype/expense_claim_type/expense_claim_type.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claim Type" +msgstr "费用报销类型" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "车辆日志{0}的费用报销" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "该车辆日志已存在费用报销{0}" + +#. Label of a chart in the Expenses Workspace +#: frontend/src/views/expense_claim/Dashboard.vue:2 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Expense Claims" +msgstr "费用报销记录" + +#. Label of the expense_date (Date) field in DocType 'Expense Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Date" +msgstr "费用日期" + +#: frontend/src/components/ExpensesTable.vue:211 +msgid "Expense Item" +msgstr "费用项" + +#. Label of the section_break_9 (Section Break) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Expense Proof" +msgstr "费用凭证" + +#: frontend/src/components/ExpenseTaxesTable.vue:219 +msgid "Expense Tax" +msgstr "费用税费" + +#. Label of the taxes (Table) field in DocType 'Expense Claim' +#. Name of a DocType +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "费用税费及附加" + +#. Label of the expense_type (Link) field in DocType 'Travel Request Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Expense Type" +msgstr "费用类型" + +#. Label of the expenses_and_advances_tab (Tab Break) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Expenses & Advances" +msgstr "费用与预支" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:42 +msgid "Expire Allocation" +msgstr "分配到期" + +#. Label of the expire_carry_forwarded_leaves_after_days (Int) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "结转假期有效期(天)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:568 +msgid "Expire Leaves" +msgstr "过期假期处理" + +#. Label of the expired_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Expired Leave(s)" +msgstr "过期假期" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:8 +msgid "Expired Leaves" +msgstr "过期假期天数" + +#. Label of the explanation (Small Text) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Explanation" +msgstr "说明" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:137 +msgid "Exporting..." +msgstr "导出中..." + +#: hrms/hr/utils.py:932 +msgid "Failed to create/submit {0} for employees:" +msgstr "为员工创建/提交{0}失败:" + +#: hrms/overrides/company.py:36 +msgid "Failed to delete defaults for country {0}." +msgstr "删除国家{0}默认设置失败" + +#: hrms/api/__init__.py:769 +msgid "Failed to download PDF: {0}" +msgstr "无法下载 PDF: {0}" + +#: hrms/hr/doctype/interview/interview.py:117 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "无法发送面试改期通知。请配置您的邮箱账户。" + +#: hrms/overrides/company.py:49 +msgid "Failed to setup defaults for country {0}." +msgstr "设置国家{0}默认值失败" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:464 +msgid "Failed to submit some leave policy assignments:" +msgstr "部分休假政策分配提交失败:" + +#: hrms/hr/doctype/interview/interview.py:208 +msgid "Failed to update the Job Applicant status" +msgstr "更新职位申请人状态失败" + +#: hrms/public/js/utils/index.js:143 +msgid "Failed to {0} {1} for employees:" +msgstr "对员工{1}执行{0}操作失败:" + +#. Label of the failure_details_section (Tab Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Failure Details" +msgstr "故障详情" + +#. Label of the failure_reason (Small Text) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Failure Reason" +msgstr "" + +#: hrms/hr/utils.py:481 +msgid "Failure of Automatic Allocation of Earned Leaves" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:37 +#: hrms/public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "二月" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "反馈次数" + +#. Label of the feedback_html (HTML) field in DocType 'Appraisal' +#. Label of the feedback_html (HTML) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Feedback HTML" +msgstr "反馈HTML模板" + +#. Label of the feedback_ratings (Table) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Feedback Ratings" +msgstr "反馈评分" + +#. Label of the feedback_reminder_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Feedback Reminder Notification Template" +msgstr "反馈提醒通知模板" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "反馈得分" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Feedback Submitted" +msgstr "已提交反馈" + +#: hrms/public/js/templates/interview_feedback.html:14 +msgid "Feedback Summary" +msgstr "反馈汇总" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "面试{0}已存在反馈{1},请取消后再提交新反馈" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "缺勤员工无法记录反馈" + +#: hrms/public/js/performance/performance_feedback.js:120 +msgid "Feedback {0} added successfully" +msgstr "反馈{0}添加成功" + +#. Label of the fetch_geolocation (Button) field in DocType 'Employee Checkin' +#. Label of the fetch_geolocation (Button) field in DocType 'Shift Location' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Fetch Geolocation" +msgstr "获取地理位置" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:7 +msgid "Fetch Overtime Details" +msgstr "获取加班明细" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:33 +msgid "Fetch Shift" +msgstr "获取班次" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:9 +msgid "Fetch Shifts" +msgstr "获取多个班次" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:109 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:136 +msgid "Fetching Employees" +msgstr "正在获取员工数据" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:38 +msgid "Fetching Shift" +msgstr "正在获取班次" + +#: hrms/public/js/utils/index.js:193 +msgid "Fetching your geolocation" +msgstr "正在获取您的地理位置" + +#: frontend/src/components/FilePreviewModal.vue:4 +msgid "File Preview" +msgstr "文件预览" + +#: hrms/hr/doctype/leave_application/leave_application.js:99 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:50 +msgid "Fill the form and save it" +msgstr "填写表单并保存" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Filled" +msgstr "已填写" + +#. Label of the section_break_17 (Section Break) field in DocType 'Payroll +#. Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Filter Employees" +msgstr "筛选员工" + +#. Label of the filter_by_shift (Check) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Filter by Shift" +msgstr "按班次筛选" + +#. Label of the employee_status (Select) field in DocType 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:57 +#: hrms/hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "最终决定" + +#. Label of the final_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:57 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "最终得分" + +#. Label of the final_score_formula (Code) field in DocType 'Appraisal Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Final Score Formula" +msgstr "最终得分公式" + +#. Option for the 'Working Hours Calculation Based On' (Select) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "First Check-in and Last Check-out" +msgstr "首次签到与末次签退" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "First Day" +msgstr "首日" + +#. Label of the first_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "First Name " +msgstr "名字" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1520 +msgid "Fiscal Year {0} not found" +msgstr "未找到会计年度{0}" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Fixed Hourly Rate" +msgstr "固定小时费率" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "Fleet Management" +msgstr "车队管理" + +#. Label of the flexible_benefit (Check) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:90 +msgid "Flexible Benefit" +msgstr "弹性福利" + +#. Label of the employee_benefits (Table) field in DocType 'Employee Benefit +#. Application' +#. Label of the flexible_benefits_tab (Tab Break) field in DocType 'Salary +#. Component' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure' +#. Label of the employee_benefits (Table) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Flexible Benefits" +msgstr "弹性福利" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:64 +msgid "Flexible Component" +msgstr "弹性组件" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Flight" +msgstr "航班" + +#: hrms/hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "待处理离职结算" + +#. Label of the follow_via_email (Check) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Follow via Email" +msgstr "邮件关注" + +#: hrms/setup.py:333 +msgid "Food" +msgstr "餐饮" + +#. Label of the for_designation (Link) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "For Designation " +msgstr "适用于职级" + +#. Label of the employee (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/attendance/attendance_list.js:29 +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "For Employee" +msgstr "员工专属" + +#. Description of the 'Fraction of Daily Salary per Leave' (Float) field in +#. DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#, python-format +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "若员工请假当天仍支付(例如)50%日薪,则在此字段输入0.50" + +#. Label of the formula (Code) field in DocType 'Salary Component' +#. Label of the formula (Code) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Formula" +msgstr "公式" + +#. Label of the fraction_of_applicable_earnings (Float) field in DocType +#. 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Fraction of Applicable Earnings " +msgstr "适用收入比例" + +#. Label of the daily_wages_fraction_for_half_day (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Fraction of Daily Salary for Half Day" +msgstr "半日假薪资比例" + +#. Label of the fraction_of_daily_salary_per_leave (Float) field in DocType +#. 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Fraction of Daily Salary per Leave" +msgstr "单日假薪资扣除比例" + +#: hrms/hr/report/project_profitability/project_profitability.py:191 +msgid "Fractional Cost" +msgstr "分摊成本" + +#: frontend/src/components/BaseLayout.vue:9 +msgid "Frappe HR" +msgstr "Frappe HR系统" + +#. Label of the from_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "From Amount" +msgstr "起始金额" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "起始日期必须早于截止日期" + +#: hrms/payroll/doctype/arrear/arrear.py:47 +msgid "From Date {0} cannot be after Payroll Period end date {1}" +msgstr "起始日期{0}不能晚于薪资期间结束日期{1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:59 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "起始日期{0}不能晚于员工离职日期{1}" + +#: hrms/payroll/doctype/arrear/arrear.py:41 +msgid "From Date {0} cannot be before Payroll Period start date {1}" +msgstr "起始日期{0}不能早于薪资期间开始日期{1}" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:51 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "起始日期{0}不能早于员工入职日期{1}" + +#: hrms/hr/utils.py:197 +msgid "From date can not be less than employee's joining date" +msgstr "起始日期不能早于员工入职日期" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:89 +msgid "From date can not be less than employee's joining date." +msgstr "起始日期不得早于员工入职日期" + +#: hrms/hr/doctype/leave_type/leave_type.js:54 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "在此可启用剩余假期的折现功能" + +#: hrms/payroll/report/salary_register/salary_register.html:8 +msgid "From {0} to {1}" +msgstr "时间段:{0} 至 {1}" + +#. Label of the from_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "From(Year)" +msgstr "起始(年份)" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Fuchsia" +msgstr "紫红色" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "燃油费用" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:165 +msgid "Fuel Expenses" +msgstr "燃油费用记录" + +#. Label of the price (Currency) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "燃油价格" + +#. Label of the fuel_qty (Float) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "燃油数量" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "完全资产结算" + +#. Name of a DocType +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "完全未结清声明" + +#: hrms/setup.py:389 +msgid "Full-time" +msgstr "全职" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Fully Sponsored" +msgstr "全额资助" + +#. Label of the funded_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Funded Amount" +msgstr "资助金额" + +#. Label of the future_income_tax_deductions (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Future Income Tax" +msgstr "未来所得税" + +#: hrms/hr/utils.py:195 +msgid "Future dates not allowed" +msgstr "不允许未来日期" + +#. Label of the gain_loss_account (Link) field in DocType 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Gain Loss Account" +msgstr "" + +#: hrms/public/js/utils/index.js:186 hrms/public/js/utils/index.js:214 +msgid "Geolocation Error" +msgstr "地理位置错误" + +#: frontend/src/components/CheckInPanel.vue:143 +#: hrms/public/js/utils/index.js:185 +msgid "Geolocation is not supported by your current browser" +msgstr "当前浏览器不支持地理位置功能" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:47 +msgid "Get Details From Declaration" +msgstr "从申报获取明细" + +#. Label of the get_employees (Button) field in DocType 'Appraisal Cycle' +#. Label of the section_break_ackd (Section Break) field in DocType 'Employee +#. Attendance Tool' +#. Label of the get_employees (Button) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:69 +msgid "Get Employees" +msgstr "获取员工" + +#. Label of the get_job_requisitions (Button) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Get Job Requisitions" +msgstr "获取职位申请" + +#. Label of the get_template (Button) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Get Template" +msgstr "获取模板" + +#: frontend/src/components/InstallPrompt.vue:8 +msgid "Get the app on your device for easy access & a better experience!" +msgstr "在设备上安装应用,获得更便捷的访问与更优体验!" + +#: frontend/src/components/InstallPrompt.vue:41 +msgid "Get the app on your iPhone for easy access & a better experience" +msgstr "在iPhone安装应用,获得更便捷的访问与更优体验" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Gluten Free" +msgstr "无麸质" + +#: frontend/src/views/InvalidEmployee.vue:12 +msgid "Go to Login" +msgstr "前往登录" + +#: frontend/src/views/Login.vue:70 +msgid "Go to Reset Password page" +msgstr "前往重置密码页面" + +#. Label of the goal_completion (Percent) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Completion (%)" +msgstr "目标完成度(%)" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:55 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "目标得分" + +#. Label of the goal_score_percentage (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Goal Score (%)" +msgstr "目标得分(%)" + +#. Label of the goal_score (Float) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Goal Score (weighted)" +msgstr "目标得分(加权)" + +#: hrms/hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "目标进度百分比不可超过100%" + +#: hrms/hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "子目标应与父目标的关键绩效领域一致" + +#: hrms/hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "子目标应与父目标归属同一员工" + +#: hrms/hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "子目标应与父目标属于同一考核周期" + +#: hrms/hr/doctype/goal/goal_tree.js:288 +msgid "Goal updated successfully" +msgstr "目标更新成功" + +#: hrms/hr/doctype/goal/goal_list.js:129 +msgid "Goals updated successfully" +msgstr "目标批量更新成功" + +#. Label of the grade (Data) field in DocType 'Training Result Employee' +#. Label of the grade (Link) field in DocType 'Payroll Entry' +#. Label of the grade (Link) field in DocType 'Salary Structure Assignment' +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:173 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:200 +msgid "Grade" +msgstr "等级" + +#. Name of a DocType +#. Label of the details_tab (Tab Break) field in DocType 'Gratuity' +#. Label of the gratuity_details_tab (Section Break) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "离职金" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "适用离职金组件" + +#. Label of the gratuity_rule (Link) field in DocType 'Gratuity' +#. Name of a DocType +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "离职金规则" + +#. Name of a DocType +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "离职金规则分段" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance" +msgstr "申诉" + +#. Label of the grievance_against (Dynamic Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against" +msgstr "申诉对象" + +#. Label of the grievance_against_party (Link) field in DocType 'Employee +#. Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Against Party" +msgstr "被申诉方" + +#. Label of the grievance_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Grievance Details" +msgstr "申诉详情" + +#. Label of the grievance_type (Link) field in DocType 'Employee Grievance' +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/grievance_type/grievance_type.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Grievance Type" +msgstr "申诉类型" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:630 +msgid "Gross Earnings" +msgstr "收益总额" + +#. Label of the gross_pay (Currency) field in DocType 'Salary Slip' +#: frontend/src/components/SalarySlipItem.vue:13 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: hrms/payroll/report/salary_register/salary_register.py:211 +msgid "Gross Pay" +msgstr "应发工资" + +#. Label of the base_gross_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Pay (Company Currency)" +msgstr "应发工资(公司币种)" + +#. Label of the gross_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date" +msgstr "年度累计总收入" + +#. Label of the base_gross_year_to_date (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Gross Year To Date(Company Currency)" +msgstr "年度累计总收入(公司币种)" + +#: hrms/hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "组目标的进度根据子目标自动计算" + +#. Name of a Workspace +#: hrms/hr/workspace/hr/hr.json hrms/setup.py:322 +msgid "HR" +msgstr "人力资源" + +#: hrms/setup.py:59 +msgid "HR & Payroll" +msgstr "人力资源与薪资" + +#: hrms/setup.py:65 +msgid "HR & Payroll Settings" +msgstr "人力资源与薪资设置" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "HR仪表板" + +#. Name of a DocType +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:172 +#: hrms/hr/workspace/hr/hr.json +msgid "HR Settings" +msgstr "HR设置" + +#: hrms/config/desktop.py:5 +msgid "HRMS" +msgstr "人力资源管理系统" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Label of the half_day (Check) field in DocType 'Attendance Request' +#. Label of the half_day (Check) field in DocType 'Compensatory Leave Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Label of the half_day (Check) field in DocType 'Leave Application' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day" +msgstr "半日假" + +#. Label of the half_day_date (Date) field in DocType 'Attendance Request' +#. Label of the half_day_date (Date) field in DocType 'Compensatory Leave +#. Request' +#. Label of the half_day_date (Date) field in DocType 'Leave Application' +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Half Day Date" +msgstr "半日假日期" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:27 +msgid "Half Day Date is mandatory" +msgstr "必须填写半日假日期" + +#: hrms/hr/doctype/leave_application/leave_application.py:194 +msgid "Half Day Date should be between From Date and To Date" +msgstr "半日假日期应在起止日期之间" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:29 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "半日假日期应在工作起止日期之间" + +#. Label of the half_day_marked_employee_header (HTML) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Half Day Marked Employee Header" +msgstr "半日制员工标识标题" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "半日假记录" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:31 +msgid "Half day date should be in between from date and to date" +msgstr "半日假日期应在起止日期之间" + +#. Label of the has_certificate (Check) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Has Certificate" +msgstr "持有证书" + +#: hrms/setup.py:215 +msgid "Health Insurance" +msgstr "健康保险" + +#. Label of the health_insurance_name (Data) field in DocType 'Employee Health +#. Insurance' +#: hrms/hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Health Insurance Name" +msgstr "健康保险名称" + +#: hrms/setup.py:229 +msgid "Health Insurance No" +msgstr "健康保险编号" + +#: hrms/setup.py:221 +msgid "Health Insurance Provider" +msgstr "健康保险提供商" + +#: hrms/controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "您好{}!此邮件提醒您即将到来的假期。" + +#: frontend/src/components/CheckInPanel.vue:4 +msgid "Hey, {0} 👋" +msgstr "您好,{0} 👋" + +#: hrms/hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:55 +msgid "Hiring Count" +msgstr "招聘人数" + +#. Label of the hiring_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Hiring Settings" +msgstr "招聘设置" + +#. Label of the optional_holiday_list (Link) field in DocType 'Leave Period' +#: hrms/hr/doctype/leave_period/leave_period.json +msgid "Holiday List for Optional Leave" +msgstr "可选假期节假日列表" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "本月节假日" + +#: hrms/controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "本周节假日" + +#. Label of the horizontal_break (HTML) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Horizontal Break" +msgstr "横向分隔" + +#. Label of the base_hour_rate (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Hour Rate (Company Currency)" +msgstr "小时费率(公司币种)" + +#. Label of the hourly_rate (Currency) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Hourly Rate" +msgstr "小时费率" + +#: hrms/regional/india/utils.py:184 +msgid "House rent paid days overlapping with {0}" +msgstr "房租支付天数与{0}重叠" + +#: hrms/regional/india/utils.py:162 +msgid "House rented dates required for exemption calculation" +msgstr "房租免税计算需提供租赁日期" + +#: hrms/regional/india/utils.py:165 +msgid "House rented dates should be atleast 15 days apart" +msgstr "房租起止日期至少间隔15天" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:60 +msgid "IFSC" +msgstr "IFSC代码" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:48 +msgid "IFSC Code" +msgstr "IFSC代码" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "IN" +msgstr "签到" + +#. Label of the personal_id_number (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Number" +msgstr "证件号码" + +#. Name of a DocType +#. Label of the identification_document_type (Data) field in DocType +#. 'Identification Document Type' +#. Label of the personal_id_type (Link) field in DocType 'Travel Request' +#: hrms/hr/doctype/identification_document_type/identification_document_type.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Identification Document Type" +msgstr "证件类型" + +#. Description of the 'Process Payroll Accounting Entry based on Employee' +#. (Check) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "勾选后,应付薪资将按员工单独记账" + +#. Description of the 'Mandatory Benefit Application' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, flexible benefits are considered only if benefit application exists" +msgstr "若勾选,仅当存在福利申请时才考虑弹性福利" + +#. Description of the 'Disable Rounded Total' (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "勾选后,工资条中隐藏并禁用四舍五入总额字段" + +#. Description of the 'Create Overtime Slip For Eligible Employee(s)' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If checked, overtime slip creation can be handled as part of payroll processing" +msgstr "若勾选,加班单创建可作为薪资处理的一部分进行处理" + +#. Description of the 'Exempted from Income Tax' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "勾选后,计算所得税前将全额扣除应税收入,无需申报或证明" + +#. Description of the 'Allow Tax Exemption' (Check) field in DocType 'Income +#. Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "启用后,所得税计算将考虑免税申报" + +#. Description of the 'Mark Auto Attendance on Holidays' (Check) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "启用后,节假日存在员工签到将自动记录考勤" + +#. Description of the 'Consider Marked Attendance on Holidays' (Check) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "启用后,节假日缺勤将扣除计薪天数。默认节假日视为带薪" + +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Component' +#. Description of the 'Do Not Include in Accounting Entries' (Check) field in +#. DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If enabled, the amount will be excluded from accounting entries during Journal Entry creation." +msgstr "若启用,该金额将在日记账凭证创建时排除在会计分录入账之外。" + +#. Description of the 'Variable Based On Taxable Salary' (Check) field in +#. DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "启用后,该组件视为税务组件并按配置的所得税税级自动计算金额" + +#. Description of the 'Is Income Tax Component' (Check) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "启用后,该组件将计入所得税扣除报告" + +#. Description of the 'Remove if Zero Valued' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "启用后,当金额为零时该组件不显示在工资条中" + +#. Description of the 'Publish Applications Received' (Check) field in DocType +#. 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If enabled, the total no. of applications received for this opening will be displayed on the website" +msgstr "启用后,网站将显示该职位空缺的申请总数" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "启用后,该组件指定或计算的值不计入收入或扣除项,但可被其他组件引用" + +#. Description of the 'Accrual Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed." +msgstr "若启用,此组件允许计提金额而不将其添加到收入中。计提余额在员工福利分类账中追踪,可根据需要后续支付。" + +#. Description of the 'Arrear Component' (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If enabled, this component will be included in arrear calculations" +msgstr "若启用,此组件将包含在欠薪计算中" + +#. Description of the 'Include holidays in Total no. of Working Days' (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "启用后,总工作日数将包含节假日,从而降低日薪计算值" + +#. Description of the 'Max Benefit Amount (Yearly)' (Currency) field in DocType +#. 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "If greater than zero, this sets the maximum benefit amount assignable to any employee" +msgstr "若大于零,此值设置可分配给任何员工的最大福利金额" + +#. Description of the 'Applies to Company' (Check) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "未勾选时,需手动将该列表添加至每个适用部门" + +#. Description of the 'Statistical Component' (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "选中后,该组件指定或计算的值不计入收入或扣除项,但可被其他组件引用" + +#. Description of the 'Closes On' (Date) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "If set, the job opening will be closed automatically after this date" +msgstr "设置后,该职位空缺将在该日期后自动关闭" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "若在工资条中使用贷款功能,请从Frappe云端市场或GitHub安装{0}应用以继续使用薪资集成贷款功能。" + +#. Label of the upload_attendance_data (Section Break) field in DocType 'Upload +#. Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Import Attendance" +msgstr "导入考勤" + +#. Label of the in_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "准时" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:143 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "后台处理过程中若发生错误,系统将在薪资条目添加错误注释并恢复至已提交状态" + +#. Label of the incentive_section (Section Break) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive" +msgstr "激励" + +#. Label of the incentive_amount (Currency) field in DocType 'Employee +#. Incentive' +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +msgid "Incentive Amount" +msgstr "激励金额" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:102 +msgid "Include Company Descendants" +msgstr "包含子公司" + +#. Label of the include_holidays (Check) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Include Holidays" +msgstr "包含节假日" + +#. Label of the include_holidays_in_total_working_days (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Include holidays in Total no. of Working Days" +msgstr "将节假日计入总工作日数" + +#. Label of the include_holiday (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Include holidays within leaves as leaves" +msgstr "将包含节假日的假期视为正常假期" + +#. Label of the income_source_details_section (Section Break) field in DocType +#. 'Employee Other Income' +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +msgid "Income Source" +msgstr "收入来源" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "所得税金额" + +#. Label of the income_tax_calculation_breakup_section (Tab Break) field in +#. DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Breakup" +msgstr "所得税明细" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "所得税组件" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_computation/income_tax_computation.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "所得税计算" + +#. Label of the income_tax_deducted_till_date (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income Tax Deducted Till Date" +msgstr "截至当前已扣所得税" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "所得税扣除项" + +#. Label of the income_tax_slab (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Name of a DocType +#. Label of the income_tax_slab (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_structure/salary_structure.js:142 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:623 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Slab" +msgstr "所得税税级" + +#. Name of a DocType +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "所得税税级其他费用" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:79 +msgid "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" +msgstr "薪资结构{0}包含税费组件{1},必须设置所得税税级" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1869 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "所得税税级生效日期不得晚于薪资周期开始日期{0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1857 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "薪资结构分配{0}未设置所得税税级" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1865 +msgid "Income Tax Slab: {0} is disabled" +msgstr "所得税税级{0}已禁用" + +#. Label of the income_from_other_sources (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Income from Other Sources" +msgstr "其他来源收入" + +#: hrms/hr/doctype/appraisal/appraisal.py:159 hrms/mixins/appraisal.py:20 +msgid "Incorrect Weightage Allocation" +msgstr "权重分配错误" + +#. Description of the 'Non-Encashable Leaves' (Int) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "表示不可折现的假期余额数量。例如:总假期10天含4天不可折现,可折现6天,剩余4天可结转或过期" + +#. Option for the 'Type' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Inspection" +msgstr "检查" + +#: frontend/src/components/InstallPrompt.vue:13 +msgid "Install" +msgstr "安装" + +#: frontend/src/components/InstallPrompt.vue:5 +#: frontend/src/components/InstallPrompt.vue:28 +msgid "Install Frappe HR" +msgstr "安装Frappe HR系统" + +#: hrms/hr/doctype/leave_application/leave_application.py:435 +msgid "Insufficient Balance" +msgstr "余额不足" + +#: hrms/hr/doctype/leave_application/leave_application.py:433 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "假期类型{0}余额不足" + +#. Label of the interest_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Amount" +msgstr "利息金额" + +#. Label of the interest_income_account (Link) field in DocType 'Salary Slip +#. Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Interest Income Account" +msgstr "利息收入账户" + +#: hrms/setup.py:395 +msgid "Intern" +msgstr "实习生" + +#. Option for the 'Travel Type' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "International" +msgstr "国际" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Internet" +msgstr "互联网" + +#. Name of a DocType +#. Label of the interview (Link) field in DocType 'Interview Feedback' +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:25 +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:7 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview" +msgstr "面试" + +#. Name of a DocType +#: hrms/hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "面试明细" + +#. Label of the interview_summary_section (Section Break) field in DocType +#. 'Exit Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Interview Details" +msgstr "面试详情" + +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Feedback" +msgstr "面试反馈" + +#: hrms/hr/doctype/interview/test_interview.py:312 +#: hrms/hr/doctype/interview/test_interview.py:321 +#: hrms/hr/doctype/interview/test_interview.py:323 +#: hrms/hr/doctype/interview/test_interview.py:330 hrms/setup.py:467 +#: hrms/setup.py:469 hrms/setup.py:502 +msgid "Interview Feedback Reminder" +msgstr "面试反馈提醒" + +#: hrms/hr/doctype/interview/interview.py:343 +msgid "Interview Feedback {0} submitted successfully" +msgstr "面试反馈{0}提交成功" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "Interview Not Rescheduled" +msgstr "面试未改期" + +#: hrms/hr/doctype/interview/test_interview.py:296 +#: hrms/hr/doctype/interview/test_interview.py:305 +#: hrms/hr/doctype/interview/test_interview.py:307 +#: hrms/hr/doctype/interview/test_interview.py:329 hrms/setup.py:455 +#: hrms/setup.py:457 hrms/setup.py:498 +msgid "Interview Reminder" +msgstr "面试提醒" + +#. Label of the interview_reminder_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Interview Reminder Notification Template" +msgstr "面试提醒通知模板" + +#: hrms/hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "面试改期成功" + +#. Label of the interview_round (Link) field in DocType 'Interview' +#. Label of the interview_round (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:8 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Round" +msgstr "面试轮次" + +#: hrms/hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "面试轮次{0}仅适用于职级{1}" + +#: hrms/hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "面试轮次{0}仅限职级{1},而职位申请人申请的是{2}" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:40 +msgid "Interview Scheduled Date" +msgstr "面试预定日期" + +#: hrms/hr/report/employee_exits/employee_exits.js:51 +#: hrms/hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "面试状态" + +#. Label of the interview_summary (Text Editor) field in DocType 'Exit +#. Interview' +#. Label of the section_break_13 (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:77 +msgid "Interview Summary" +msgstr "面试汇总" + +#. Label of the interview_type (Link) field in DocType 'Interview Round' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interview_type/interview_type.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interview Type" +msgstr "面试类型" + +#: hrms/hr/doctype/interview/interview.py:103 +msgid "Interview: {0} Rescheduled" +msgstr "面试改期:{0}" + +#. Name of a role +#. Label of the interviewer (Link) field in DocType 'Interview Detail' +#. Label of the interviewer (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_detail/interview_detail.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/interview_round/interview_round.json +#: hrms/hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "面试官" + +#. Label of the interviewers (Table MultiSelect) field in DocType 'Exit +#. Interview' +#. Label of the interview_details (Table) field in DocType 'Interview' +#. Label of the interviewers (Table MultiSelect) field in DocType 'Interview +#. Round' +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Interviewers" +msgstr "面试官列表" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "面试记录" + +#. Label of a quick_list in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Interviews (This Week)" +msgstr "面试次数(本周)" + +#: hrms/payroll/doctype/salary_component/salary_component.py:67 +#: hrms/payroll/doctype/salary_component/salary_component.py:81 +#: hrms/payroll/doctype/salary_component/salary_component.py:89 +msgid "Invalid Accrual Component" +msgstr "无效计提组件" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:182 +msgid "Invalid Additional Salary" +msgstr "无效附加薪资" + +#: hrms/payroll/doctype/salary_component/salary_component.py:96 +msgid "Invalid Arrear Component" +msgstr "无效欠薪组件" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:467 +msgid "Invalid Benefit Amounts" +msgstr "无效福利金额" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:326 +msgid "Invalid Dates" +msgstr "无效日期" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2646 +msgid "Invalid LWP Days Reversed" +msgstr "无效LWP天数冲销" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:25 +msgid "Invalid Leave Ledger Entry" +msgstr "无效假期台账条目" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:294 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "应付薪资账户无效,账户币种必须为{0}或{1}" + +#: hrms/hr/doctype/shift_type/shift_type.py:48 +#: hrms/hr/doctype/shift_type/shift_type.py:57 +msgid "Invalid Shift Times" +msgstr "无效班次时间" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:933 +msgid "Invalid parameters provided. Please pass the required arguments." +msgstr "参数无效,请传递必要参数" + +#. Option for the 'Status' (Select) field in DocType 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigated" +msgstr "已调查" + +#. Label of the investigation_details_section (Section Break) field in DocType +#. 'Employee Grievance' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +msgid "Investigation Details" +msgstr "调查详情" + +#. Option for the 'Status' (Select) field in DocType 'Training Event Employee' +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Invited" +msgstr "已邀请" + +#. Label of the invoice (Data) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Invoice Ref" +msgstr "发票参考" + +#. Label of the is_allocated (Check) field in DocType 'Earned Leave Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Is Allocated" +msgstr "" + +#. Label of the is_applicable_for_referral_bonus (Check) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Is Applicable for Referral Bonus" +msgstr "是否适用推荐奖金" + +#. Label of the is_carry_forward (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_carry_forward (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:85 +msgid "Is Carry Forward" +msgstr "是否结转" + +#. Label of the is_compensatory (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Compensatory" +msgstr "是否为补休" + +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Compensatory Leave" +msgstr "是否为调休假" + +#. Label of the is_earned_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/doctype/leave_type/leave_type.py:41 +msgid "Is Earned Leave" +msgstr "是否为带薪假" + +#. Label of the is_expired (Check) field in DocType 'Leave Ledger Entry' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:91 +msgid "Is Expired" +msgstr "是否过期" + +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Component' +#. Label of the is_flexible_benefit (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Flexible Benefit" +msgstr "是否为弹性福利" + +#. Label of the is_income_tax_component (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Is Income Tax Component" +msgstr "是否所得税组件" + +#. Label of the is_lwp (Check) field in DocType 'Leave Ledger Entry' +#. Label of the is_lwp (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:97 +msgid "Is Leave Without Pay" +msgstr "是否无薪假" + +#. Label of the is_optional_leave (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Optional Leave" +msgstr "是否为可选假期" + +#. Label of the is_ppl (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Is Partially Paid Leave" +msgstr "是否为部分带薪假" + +#. Label of the is_recurring (Check) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Is Recurring" +msgstr "是否循环" + +#. Label of the is_recurring_additional_salary (Check) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Recurring Additional Salary" +msgstr "是否为循环附加薪资" + +#. Label of the is_salary_released (Check) field in DocType 'Salary Withholding +#. Cycle' +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Is Salary Released" +msgstr "工资是否已发放" + +#. Label of the is_salary_withheld (Check) field in DocType 'Payroll Employee +#. Detail' +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Is Salary Withheld" +msgstr "工资是否暂扣" + +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Component' +#. Label of the is_tax_applicable (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Is Tax Applicable" +msgstr "是否适用税费" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hrms/public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "一月" + +#. Label of the job_applicant (Link) field in DocType 'Appointment Letter' +#. Label of the job_applicant (Link) field in DocType 'Employee Onboarding' +#. Label of the job_applicant (Link) field in DocType 'Interview' +#. Label of the job_applicant (Link) field in DocType 'Interview Feedback' +#. Name of a DocType +#. Label of the job_applicant (Link) field in DocType 'Job Offer' +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/appointment_letter/appointment_letter.json +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:38 +#: hrms/hr/workspace/recruitment/recruitment.json hrms/setup.py:193 +msgid "Job Applicant" +msgstr "职位申请人" + +#. Name of a DocType +#: hrms/hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "职位申请人来源" + +#: hrms/hr/doctype/employee_referral/employee_referral.py:70 +msgid "Job Applicant {0} created successfully." +msgstr "职位申请人{0}创建成功" + +#: hrms/hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "同一面试轮次不得重复安排,职位申请人{1}已安排面试{0}" + +#. Title of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Job Application" +msgstr "职位申请" + +#. Label of the job_application_route (Data) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job Application Route" +msgstr "职位申请路径" + +#. Label of the job_description_tab (Tab Break) field in DocType 'Job +#. Requisition' +#. Label of the description (Text Editor) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json hrms/setup.py:410 +msgid "Job Description" +msgstr "职位描述" + +#. Label of the job_offer (Link) field in DocType 'Employee Onboarding' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/job_applicant/job_applicant.js:38 +#: hrms/hr/doctype/job_applicant/job_applicant.js:48 +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:52 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Offer" +msgstr "录用通知" + +#. Name of a DocType +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "录用条款" + +#. Label of the job_offer_term_template (Link) field in DocType 'Job Offer' +#. Name of a DocType +#: hrms/hr/doctype/job_offer/job_offer.json +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "录用条款模板" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Job Offer Terms" +msgstr "录用条款内容" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:61 +msgid "Job Offer status" +msgstr "录用通知状态" + +#: hrms/hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "职位申请人{1}已存在录用通知{0}" + +#. Label of the job_opening (Link) field in DocType 'Interview' +#. Label of the job_title (Link) field in DocType 'Job Applicant' +#. Name of a DocType +#. Label of a field in the job-application Web Form +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hrms/hr/doctype/interview/interview.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.js:54 +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:31 +#: hrms/hr/web_form/job_application/job_application.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Opening" +msgstr "职位空缺" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "关联职位空缺" + +#. Label of the job_opening_template (Link) field in DocType 'Job Opening' +#. Name of a DocType +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_opening_template/job_opening_template.json +msgid "Job Opening Template" +msgstr "" + +#: hrms/www/jobs/index.html:2 hrms/www/jobs/index.html:5 +msgid "Job Openings" +msgstr "职位空缺列表" + +#: hrms/hr/doctype/job_opening/job_opening.py:83 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "职级{0}的职位空缺已开放或按人员配置计划{1}已完成招聘" + +#. Label of the job_requisition (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/job_requisition/job_requisition.json +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Job Requisition" +msgstr "职位申请" + +#: hrms/hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "职位申请{0}已关联职位空缺{1}" + +#. Description of the 'Description' (Text Editor) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Job profile, qualifications required etc." +msgstr "岗位描述、资质要求等" + +#. Label of a Card Break in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "职位列表" + +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Joining Date" +msgstr "入职日期" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:42 +#: hrms/public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "七月" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:41 +#: hrms/public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "六月" + +#. Label of the kra (Link) field in DocType 'Appraisal KRA' +#. Label of the key_result_area (Link) field in DocType 'Appraisal Template +#. Goal' +#. Label of the kra (Link) field in DocType 'Goal' +#. Name of a DocType +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:134 +#: hrms/hr/doctype/kra/kra.json +msgid "KRA" +msgstr "关键绩效领域" + +#. Label of the kra_evaluation_method (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "KRA Evaluation Method" +msgstr "KRA评估方法" + +#: hrms/hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "所有子目标KRA已更新" + +#. Label of the appraisal_kra (Table) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "KRA vs Goals" +msgstr "KRA与目标对照" + +#. Label of the kra_tab (Tab Break) field in DocType 'Appraisal' +#. Label of the goals (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal/appraisal.py:145 +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "KRAs" +msgstr "关键绩效领域列表" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal KRA' +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Key Performance Area" +msgstr "关键绩效领域" + +#. Description of the 'Goal' (Small Text) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Key Responsibility Area" +msgstr "关键责任区" + +#. Description of the 'KRA' (Link) field in DocType 'Appraisal Template Goal' +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Key Result Area" +msgstr "关键成果领域" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2643 +msgid "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" +msgstr "员工{2}从{3}到{4}的LWP天数冲销({0})与实际薪资调整总额({1})不匹配" + +#. Option for the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Last Day" +msgstr "最后一日" + +#. Description of the 'Last Sync of Checkin' (Datetime) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "最后一次成功同步员工签到记录的时间。仅在所有日志已同步时重置,不确定请勿修改" + +#. Label of the last_odometer (Int) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Last Odometer Value " +msgstr "上次里程表读数" + +#. Label of the last_sync_of_checkin (Datetime) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Last Sync of Checkin" +msgstr "最后一次签到同步" + +#: frontend/src/components/CheckInPanel.vue:9 +msgid "Last {0} was at {1}" +msgstr "最后一次{0}时间为{1}" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "迟到记录" + +#. Label of the late_entry (Check) field in DocType 'Attendance' +#. Label of the late_entry (Check) field in DocType 'Employee Attendance Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "迟到记录" + +#. Label of the grace_period_settings_auto_attendance_section (Section Break) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "自动考勤迟到早退设置" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "迟到处理人" + +#. Label of the late_entry_grace_period (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Late Entry Grace Period" +msgstr "迟到宽限期" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:101 +msgid "Latitude and longitude values are required for checking in." +msgstr "签到需提供经纬度坐标" + +#: frontend/src/components/CheckInPanel.vue:131 +msgid "Latitude: {0}°" +msgstr "纬度:{0}°" + +#. Option for the 'Calculate Payroll Working Days Based On' (Select) field in +#. DocType 'Payroll Settings' +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:734 +#: hrms/overrides/dashboard_overrides.py:12 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Leave" +msgstr "假期" + +#. Name of a DocType +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leave Adjustment" +msgstr "假期调整" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:41 +msgid "Leave Adjustment for this allocation already exists: {0}. Please amend existing adjustment." +msgstr "此分配已存在假期调整:{0}。请修改现有调整。" + +#. Label of the leave_allocation (Link) field in DocType 'Compensatory Leave +#. Request' +#. Name of a DocType +#. Label of the leave_allocation (Link) field in DocType 'Leave Encashment' +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Allocation" +msgstr "假期分配" + +#: hrms/hr/doctype/leave_type/leave_type.py:68 +msgid "Leave Allocation Exists" +msgstr "假期分配已存在" + +#. Label of the leave_allocations_section (Section Break) field in DocType +#. 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Allocations" +msgstr "假期分配记录" + +#. Label of the leave_application (Link) field in DocType 'Attendance' +#. Name of a DocType +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/leaves/leaves.json +msgid "Leave Application" +msgstr "请假申请" + +#: hrms/hr/doctype/leave_application/leave_application.py:757 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "请假期间不可跨越不连续的假期分配记录{0}和{1}" + +#: hrms/setup.py:432 hrms/setup.py:434 hrms/setup.py:494 +msgid "Leave Approval Notification" +msgstr "请假审批通知" + +#. Label of the leave_approval_notification_template (Link) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approval Notification Template" +msgstr "请假审批通知模板" + +#. Label of the leave_approver (Link) field in DocType 'Leave Application' +#. Name of a role +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json hrms/setup.py:146 +#: hrms/setup.py:248 +msgid "Leave Approver" +msgstr "请假审批人" + +#. Label of the leave_approver_mandatory_in_leave_application (Check) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Approver Mandatory In Leave Application" +msgstr "请假申请必须指定审批人" + +#. Label of the leave_approver_name (Data) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Approver Name" +msgstr "请假审批人姓名" + +#. Label of the leave_balance (Float) field in DocType 'Leave Encashment' +#: frontend/src/components/LeaveBalance.vue:4 +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Balance" +msgstr "假期余额" + +#. Label of the leave_balance (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Leave Balance Before Application" +msgstr "申请前假期余额" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/workspace/leaves/leaves.json hrms/setup.py:125 +msgid "Leave Block List" +msgstr "假期封存列表" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "允许假期封存" + +#. Label of the leave_block_list_allowed (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Allowed" +msgstr "允许的封存日期" + +#. Name of a DocType +#: hrms/hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "封存日期" + +#. Label of the leave_block_list_dates (Table) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Dates" +msgstr "假期封存日期" + +#. Label of the leave_block_list_name (Data) field in DocType 'Leave Block +#. List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List Name" +msgstr "假期封存列表名称" + +#: hrms/hr/doctype/leave_application/leave_application.py:1368 +msgid "Leave Blocked" +msgstr "已封存假期" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Control Panel" +msgstr "假期控制面板" + +#. Label of the leave_details (Table) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leave Details" +msgstr "假期明细" + +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Encashment" +msgstr "假期折现" + +#. Label of the leave_encashment_amount_per_day (Currency) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Leave Encashment Amount Per Day" +msgstr "每日假期折现金额" + +#: frontend/src/views/leave/List.vue:5 +msgid "Leave History" +msgstr "假期历史" + +#. Name of a report +#: hrms/hr/report/leave_ledger/leave_ledger.json +msgid "Leave Ledger" +msgstr "假期台账" + +#. Name of a DocType +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/report/leave_ledger/leave_ledger.py:21 +msgid "Leave Ledger Entry" +msgstr "假期台账条目" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:18 +msgid "Leave Ledger Entry's To date needs to be after From date. Currently, From Date is {0} and To Date is {1}" +msgstr "假期台账截止日期需晚于起始日期。当前起始日期为{0},截止日期为{1}" + +#. Label of the leave_period (Link) field in DocType 'Leave Allocation' +#. Option for the 'Dates Based On' (Select) field in DocType 'Leave Control +#. Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_period (Link) field in DocType 'Leave Encashment' +#. Name of a DocType +#. Option for the 'Assignment based on' (Select) field in DocType 'Leave Policy +#. Assignment' +#. Label of the leave_period (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_period/leave_period.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Period" +msgstr "假期周期" + +#. Label of the leave_policy (Link) field in DocType 'Leave Allocation' +#. Label of the leave_policy (Link) field in DocType 'Leave Control Panel' +#. Name of a DocType +#. Label of the leave_policy (Link) field in DocType 'Leave Policy Assignment' +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_policy/leave_policy.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy" +msgstr "休假政策" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#. Label of the leave_policy_assignment (Link) field in DocType 'Leave +#. Allocation' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hrms/hr/workspace/leaves/leaves.json +msgid "Leave Policy Assignment" +msgstr "休假政策分配" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:70 +msgid "Leave Policy Assignment Overlap" +msgstr "休假政策分配重叠" + +#. Name of a DocType +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "休假政策明细" + +#. Label of the leave_policy_details (Table) field in DocType 'Leave Policy' +#: hrms/hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy Details" +msgstr "休假政策详情" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:64 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "员工{1}在{2}至{3}期间已分配休假政策{0}" + +#: hrms/setup.py:441 hrms/setup.py:443 hrms/setup.py:495 +msgid "Leave Status Notification" +msgstr "假期状态通知" + +#. Label of the leave_status_notification_template (Link) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave Status Notification Template" +msgstr "假期状态通知模板" + +#. Label of the leave_type (Link) field in DocType 'Attendance' +#. Label of the leave_type (Link) field in DocType 'Compensatory Leave Request' +#. Label of the leave_type (Link) field in DocType 'Leave Adjustment' +#. Label of the leave_type (Link) field in DocType 'Leave Allocation' +#. Label of the leave_type (Link) field in DocType 'Leave Application' +#. Label of the leave_type (Link) field in DocType 'Leave Block List' +#. Label of the leave_type (Link) field in DocType 'Leave Control Panel' +#. Label of the leave_type (Link) field in DocType 'Leave Encashment' +#. Label of the leave_type (Link) field in DocType 'Leave Ledger Entry' +#. Label of the leave_type (Link) field in DocType 'Leave Policy Detail' +#. Name of a DocType +#. Label of a Link in the Leaves Workspace +#. Label of the leave_type (Link) field in DocType 'Salary Slip Leave' +#: frontend/src/views/leave/List.vue:41 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:179 +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:6 +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy_detail/leave_policy_detail.json +#: hrms/hr/doctype/leave_type/leave_type.json +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:34 +#: hrms/hr/report/leave_ledger/leave_ledger.js:22 +#: hrms/hr/report/leave_ledger/leave_ledger.py:65 +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave Type" +msgstr "假期类型" + +#. Label of the leave_type_name (Data) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Leave Type Name" +msgstr "假期类型名称" + +#: hrms/hr/doctype/leave_type/leave_type.py:34 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "假期类型需为补休或带薪假" + +#: hrms/hr/doctype/leave_type/leave_type.py:46 +msgid "Leave Type can either be without pay or partial pay" +msgstr "假期类型需为无薪或部分带薪" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:34 +msgid "Leave Type is mandatory" +msgstr "必须选择假期类型" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:185 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "假期类型{0}为无薪假不可分配" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:557 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "假期类型{0}不可结转" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:96 +msgid "Leave Type {0} is not encashable" +msgstr "假期类型{0}不可折现" + +#. Label of the leave_without_pay (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:179 hrms/setup.py:381 +#: hrms/setup.py:382 +msgid "Leave Without Pay" +msgstr "无薪假" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:509 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "无薪假与已批准的{}记录不符" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:130 +msgid "Leave allocation is skipped for {0}, because number of leaves to be allocated is 0." +msgstr "" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:54 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "假期分配{0}关联请假申请{1}" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:90 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "该休假政策分配已关联假期" + +#. Label of the leave_and_expense_claim_settings (Section Break) field in +#. DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Leave and Expense Claim Settings" +msgstr "假期与费用报销设置" + +#: hrms/hr/doctype/leave_type/leave_type.py:27 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "请假申请关联假期分配{0},不可设为无薪假" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:225 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "不可在{0}前分配假期,因未来分配记录{1}已结转余额" + +#: hrms/hr/doctype/leave_application/leave_application.py:248 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "不可在{0}前申请/取消假期,因未来分配记录{1}已结转余额" + +#: hrms/hr/doctype/leave_application/leave_application.py:503 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "{0}类型假期不可超过{1}天" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:73 +msgid "Leave(s) Expired" +msgstr "过期假期" + +#. Label of the pending_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Leave(s) Pending Approval" +msgstr "待审批假期" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:67 +msgid "Leave(s) Taken" +msgstr "已休假天数" + +#. Label of the leaves (Float) field in DocType 'Leave Ledger Entry' +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#. Label of the leave_details_section (Tab Break) field in DocType 'Salary +#. Slip' +#: frontend/src/components/BottomTabs.vue:53 +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hrms/hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hrms/hr/report/leave_ledger/leave_ledger.py:59 hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/leaves/leaves.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Leaves" +msgstr "假期列表" + +#: frontend/src/views/leave/Dashboard.vue:2 +msgid "Leaves & Holidays" +msgstr "假期与节假日" + +#. Label of the leaves_after_adjustment (Float) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves After Adjustment" +msgstr "调整后假期" + +#. Label of the leaves_allocated (Check) field in DocType 'Leave Policy +#. Assignment' +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leaves Allocated" +msgstr "已分配假期" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:562 +msgid "Leaves Expired" +msgstr "已过期假期" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:10 +msgid "Leaves Pending Approval" +msgstr "待审批假期" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "假期类型{0}禁用结转,假期余额不可结转" + +#: hrms/setup.py:412 +msgid "Leaves per Year" +msgstr "年度假期天数" + +#. Label of the leaves_to_adjust (Float) field in DocType 'Leave Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Leaves to Adjust" +msgstr "待调整假期" + +#: hrms/hr/doctype/leave_type/leave_type.js:42 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave Request. Click {0} to know more" +msgstr "可在工作日申请补休假,通过补休申请流程操作。点击{0}了解更多" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hrms/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +#: hrms/hr/report/leave_ledger/leave_ledger.js:41 +msgctxt "Employee" +msgid "Left" +msgstr "已离职" + +#: hrms/overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "生命周期" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Lime" +msgstr "青柠色" + +#. Description of the 'Appraisal Linking' (Section Break) field in DocType +#. 'Goal' +#: hrms/hr/doctype/goal/goal.json hrms/hr/doctype/goal/goal_tree.js:97 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "将目标关联考核周期并标记KRA,系统将根据目标进度自动更新考核得分" + +#: hrms/controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "关联项目{}及任务已删除" + +#. Label of the loan_account (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Account" +msgstr "贷款账户" + +#. Label of the loan_product (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Product" +msgstr "贷款产品" + +#: hrms/payroll/report/salary_register/salary_register.py:233 hrms/setup.py:772 +msgid "Loan Repayment" +msgstr "贷款还款" + +#. Label of the loan_repayment_entry (Link) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Loan Repayment Entry" +msgstr "贷款还款分录" + +#: hrms/hr/utils.py:819 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "员工{0}薪资使用{1}币种处理,无法通过薪资扣款还贷" + +#: frontend/src/components/CheckInPanel.vue:145 +msgid "Locating..." +msgstr "定位中..." + +#. Label of the device_id (Data) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Location / Device ID" +msgstr "地点/设备ID" + +#. Label of the lodging_required (Check) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Lodging Required" +msgstr "需住宿" + +#: frontend/src/views/Profile.vue:107 +msgid "Log Out" +msgstr "退出登录" + +#. Label of the log_type (Select) field in DocType 'Employee Checkin' +#: frontend/src/views/attendance/EmployeeCheckinList.vue:25 +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Log Type" +msgstr "日志类型" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:83 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "班次{0}的签到需指定日志类型" + +#: frontend/src/views/InvalidEmployee.vue:7 +msgid "Login Failed" +msgstr "登录失败" + +#: frontend/src/views/Login.vue:8 +msgid "Login to Frappe HR" +msgstr "登录Frappe HR系统" + +#: frontend/src/components/CheckInPanel.vue:132 +msgid "Longitude: {0}°" +msgstr "经度:{0}°" + +#. Label of the lower_range (Currency) field in DocType 'Job Applicant' +#. Label of the lower_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Lower Range" +msgstr "下限" + +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:61 +msgid "MICR" +msgstr "磁墨字符识别码" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:184 +msgid "Make Bank Entry" +msgstr "创建银行分录" + +#. Label of the mandatory_benefit_application (Check) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Mandatory Benefit Application" +msgstr "强制福利申请" + +#: hrms/public/js/utils/index.js:37 +msgid "Mandatory fields required for this action:" +msgstr "执行此操作需填写以下必填字段:" + +#. Option for the 'KRA Evaluation Method' (Select) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Manual Rating" +msgstr "手动评分" + +#. Option for the 'Allocated Via' (Select) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Manually" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:38 +#: hrms/public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "三月" + +#: hrms/hr/doctype/attendance/attendance_list.js:17 +#: hrms/hr/doctype/attendance/attendance_list.js:25 +#: hrms/hr/doctype/attendance/attendance_list.js:135 +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:232 +#: hrms/hr/doctype/shift_type/shift_type.js:13 +msgid "Mark Attendance" +msgstr "记录考勤" + +#. Label of the mark_auto_attendance_on_holidays (Check) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark Auto Attendance on Holidays" +msgstr "节假日自动考勤" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:58 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:62 +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.js:67 +#: hrms/hr/doctype/goal/goal_tree.js:257 +msgid "Mark as Completed" +msgstr "标记为已完成" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:67 +msgid "Mark as In Progress" +msgstr "标记为进行中" + +#: hrms/hr/doctype/interview/interview.py:73 +msgid "Mark as {0}" +msgstr "标记为{0}" + +#: hrms/hr/doctype/attendance/attendance_list.js:109 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "确认将{1}在所选日期标记为{0}?" + +#. Description of the 'Enable Auto Attendance' (Check) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "根据'员工签到'记录为该班次员工标记考勤" + +#: hrms/hr/doctype/shift_type/shift_type.py:97 +msgid "Mark attendance for existing check-in/out logs before changing shift settings" +msgstr "修改班次设置前请先处理现有签到/签退记录" + +#: hrms/hr/doctype/goal/goal_tree.js:262 +msgid "Mark {0} as Completed?" +msgstr "确认标记{0}为已完成?" + +#: hrms/hr/doctype/goal/goal_list.js:81 +msgid "Mark {0} {1} as {2}?" +msgstr "确认将{0} {1}标记为{2}?" + +#. Label of the marked_attendance_section (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance" +msgstr "已记录考勤" + +#. Label of the marked_attendance_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Marked Attendance HTML" +msgstr "考勤记录HTML模板" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:286 +msgid "Marking Attendance" +msgstr "正在记录考勤" + +#. Label of the max_amount_eligible (Currency) field in DocType 'Employee +#. Benefit Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Max Amount Eligible For Claim" +msgstr "符合条件的最大报销金额" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Employee +#. Benefit Application Detail' +#: hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Max Benefit Amount" +msgstr "最高福利金额" + +#. Label of the max_benefit_amount (Currency) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Max Benefit Amount (Yearly)" +msgstr "最高福利金额(年度)" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Max Benefits (Amount)" +msgstr "最高福利(金额)" + +#. Label of the max_benefits (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Max Benefits (Yearly)" +msgstr "最高福利(年度)" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Category' +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Max Exemption Amount" +msgstr "最高豁免金额" + +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "最高豁免金额不得超过免税类别{1}的{0}" + +#. Label of the max_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Max Taxable Income" +msgstr "最高应税收入" + +#. Label of the max_working_hours_against_timesheet (Float) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Max working hours against Timesheet" +msgstr "工时表最大工时限制" + +#. Label of the max_benefits (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Maximum Benefit Amount" +msgstr "最大福利金额" + +#. Label of the maximum_carry_forwarded_leaves (Float) field in DocType 'Leave +#. Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Carry Forwarded Leaves" +msgstr "最多可结转的假期" + +#. Label of the max_continuous_days_allowed (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Consecutive Leaves Allowed" +msgstr "允许的最大连续假期天数" + +#: hrms/hr/doctype/leave_application/leave_application.py:513 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "超过最大连续假期限制" + +#. Label of the max_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Encashable Leaves" +msgstr "最大可折现假期天数" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Declaration Category' +#: hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Maximum Exempted Amount" +msgstr "最高豁免金额" + +#. Label of the max_amount (Currency) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Maximum Exemption Amount" +msgstr "最高免税额度" + +#. Label of the max_leaves_allowed (Float) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Maximum Leave Allocation Allowed per Leave Period" +msgstr "每个假期周期允许的最大分配天数" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Maximum Overtime Hours Allowed" +msgstr "允许的最大加班时数" + +#. Label of the maximum_overtime_hours_allowed (Float) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Maximum Overtime Hours Allowed Per Day" +msgstr "每日允许的最大加班时数" + +#. Description of the 'Taxable Income Relief Threshold Limit' (Currency) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit" +msgstr "符合全额税收减免资格的最大年度应税收入。若收入未超过此限额,则不征税" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:117 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "{0}类型假期的最大可折现天数为{1}" + +#: hrms/hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "假期类型{0}允许的最大休假天数为{1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:40 +#: hrms/public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "五月" + +#. Label of the meal_preference (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Meal Preference" +msgstr "餐饮偏好" + +#: hrms/setup.py:334 +msgid "Medical" +msgstr "医疗" + +#. Option for the 'Frequency' (Select) field in DocType 'Vehicle Service' +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Mileage" +msgstr "里程" + +#. Label of the min_taxable_income (Currency) field in DocType 'Income Tax Slab +#. Other Charges' +#: hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Min Taxable Income" +msgstr "最低应税收入" + +#. Label of the minimum_year_for_gratuity (Int) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Minimum Year for Gratuity" +msgstr "离职金最低服务年限" + +#. Description of the 'Allow Leave Application After (Working Days)' (Int) +#. field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Minimum working days required since Date of Joining to apply for this leave" +msgstr "申请该假期需满足自入职日起的最低工作天数" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:47 +msgid "Missing Advance Account" +msgstr "缺少预支账户" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Missing Mandatory Field" +msgstr "缺少必填字段" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:167 +msgid "Missing Opening Entries" +msgstr "缺少期初分录" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:48 +msgid "Missing Relieving Date" +msgstr "缺失离职日期" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:18 +msgid "Missing Salary Components" +msgstr "缺少工资组件" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1860 +msgid "Missing Tax Slab" +msgstr "缺失税级" + +#. Label of the mode_of_travel (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Mode of Travel" +msgstr "出行方式" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:439 +msgid "Mode of payment is required to make a payment" +msgstr "付款必须指定支付方式" + +#. Label of the month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date" +msgstr "本月累计" + +#. Label of the base_month_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Month To Date(Company Currency)" +msgstr "本月累计(公司币种)" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hrms/hr/workspace/hr/hr.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "月度考勤表" + +#: hrms/hr/utils.py:278 +msgid "More than one selection for {0} not allowed" +msgstr "{0}不允许选择多个选项" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:285 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "薪资组件{0}在{1}至{2}期间存在多个具有覆盖属性的附加薪资" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:110 +msgid "Multiple Shift Assignments" +msgstr "多班次分配" + +#. Description of the 'Pay Rate Multipliers' (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Multipliers that adjust the hourly overtime amount for specific scenarios\n\n" +msgstr "针对特定场景调整小时加班费的乘数\n\n" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "My Advances" +msgstr "我的预支" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "My Claims" +msgstr "我的报销" + +#: frontend/src/views/leave/List.vue:19 +msgid "My Leaves" +msgstr "我的假期" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "My Requests" +msgstr "我的申请" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1306 +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2530 +msgid "Name error" +msgstr "名称错误" + +#. Label of the name_of_organizer (Data) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Name of Organizer" +msgstr "组织者姓名" + +#. Label of the net_pay (Currency) field in DocType 'Salary Slip' +#. Label of the net_pay (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +#: hrms/payroll/report/salary_register/salary_register.py:247 +msgid "Net Pay" +msgstr "净工资" + +#. Label of the base_net_pay (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay (Company Currency)" +msgstr "净工资(公司币种)" + +#. Label of the net_pay_info (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Net Pay Info" +msgstr "净工资信息" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:209 +msgid "Net Pay cannot be less than 0" +msgstr "净工资不能小于零" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:53 +msgid "Net Salary Amount" +msgstr "净薪资金额" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:93 +msgid "Net pay cannot be negative" +msgstr "净工资不可为负数" + +#. Label of the new_employee_id (Link) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "New Employee ID" +msgstr "新员工编号" + +#: frontend/src/components/ExpensesTable.vue:213 +msgid "New Expense Item" +msgstr "新建费用项" + +#: frontend/src/components/ExpenseTaxesTable.vue:221 +msgid "New Expense Tax" +msgstr "新建费用税费" + +#: hrms/public/js/templates/performance_feedback.html:26 +msgid "New Feedback" +msgstr "新建反馈" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "New Hires (This Month)" +msgstr "新入职人数(本月)" + +#: hrms/hr/report/employee_leave_balance/employee_leave_balance.py:61 +msgid "New Leave(s) Allocated" +msgstr "新分配假期" + +#. Label of the new_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "New Leaves Allocated" +msgstr "新分配假期天数" + +#. Label of the no_of_days (Float) field in DocType 'Leave Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "New Leaves Allocated (In Days)" +msgstr "新分配假期(天数)" + +#. Description of the 'Create Shifts After' (Date) field in DocType 'Shift +#. Schedule Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "New shift assignments will be created after this date." +msgstr "新班次分配将在此日期后创建" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:375 +msgid "No Bank/Cash Account found for currency {0}. Please create one under company {1}." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:218 +msgid "No Employee Found" +msgstr "未找到员工" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:169 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "根据员工字段值'{}': {} 未找到对应员工" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 hrms/hr/utils.py:922 +msgid "No Employees Selected" +msgstr "未选择员工" + +#: hrms/hr/doctype/job_applicant/job_applicant_dashboard.html:53 +msgid "No Interview has been scheduled." +msgstr "未安排面试" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "未找到假期周期" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:140 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "员工{0}未分配{1}类型假期" + +#: hrms/payroll/doctype/gratuity/gratuity.py:265 +msgid "No Salary Slip found for Employee: {0}" +msgstr "未找到员工{0}的工资条" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:81 +msgid "No Salary Slips with {0} found for employee {1} for payroll period {2}." +msgstr "未找到员工{1}在薪资期间{2}包含{0}的工资条。" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:69 +msgid "No Salary Structure Assignment found for employee {0} on date {1}" +msgstr "未找到员工{0}在日期{1}的薪资结构分配" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:119 +msgid "No Salary Structure Assignment found for employee {0} on or before {1}" +msgstr "员工{0}在{1}或之前未分配薪资结构" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:36 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "员工{0}在指定日期{1}未分配薪资结构" + +#: hrms/payroll/doctype/salary_component/salary_component.js:115 +msgid "No Salary Structures" +msgstr "无薪资结构" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:261 +msgid "No Shift Requests Selected" +msgstr "未选择班次申请" + +#: hrms/hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "该职级未找到人员配置计划" + +#: hrms/payroll/doctype/arrear/arrear.py:71 +msgid "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" +msgstr "未找到员工{0}在欠薪起始日期{2}或之后有效的薪资结构{1}分配" + +#: frontend/src/views/InvalidEmployee.vue:8 +msgid "No active employee found associated with the email ID {0}. Try logging in with your employee email ID or contact your HR manager for access." +msgstr "未找到与邮箱ID {0}关联的有效员工,请使用员工邮箱登录或联系HR获取权限" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:435 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "员工{0}在指定日期范围内未找到有效或默认薪资结构" + +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "未添加额外费用" + +#: frontend/src/components/ExpenseAdvancesTable.vue:63 +msgid "No advances found" +msgstr "未找到预支款项" + +#: hrms/payroll/doctype/gratuity/gratuity.py:281 +msgid "No applicable Earning component found in last salary slip for Gratuity Rule: {0}" +msgstr "按离职金规则{0},最近工资条中未找到适用收入组件" + +#: hrms/payroll/doctype/gratuity/gratuity.py:294 +msgid "No applicable Earning components found for Gratuity Rule: {0}" +msgstr "离职金规则{0}未找到适用收入组件" + +#: hrms/payroll/doctype/gratuity/gratuity.py:254 +msgid "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" +msgstr "根据离职金规则{0}未找到适用税级" + +#: hrms/payroll/doctype/arrear/arrear.py:194 +msgid "No arrear components found in the existing salary slips." +msgstr "在现有工资条中未找到欠薪组件。" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:160 +msgid "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." +msgstr "在工资条中未找到欠薪组件。请确保在工资组件主数据中勾选“欠薪组件”。" + +#: hrms/payroll/doctype/arrear/arrear.py:407 +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:187 +msgid "No arrear details found" +msgstr "未找到欠薪明细" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:164 +msgid "No attendance records found for employee {0} between {1} and {2}" +msgstr "未找到员工{0}在{1}至{2}期间的考勤记录" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:71 +msgid "No attendance records found for this criteria." +msgstr "未找到符合该条件的考勤记录" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:64 +msgid "No attendance records found." +msgstr "未找到考勤记录" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:40 +msgid "No attendance records to create" +msgstr "无需创建考勤记录" + +#: hrms/hr/doctype/interview/interview.py:87 +msgid "No changes found in timings." +msgstr "未发现时间变更" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:242 +msgid "No employees found" +msgstr "未找到员工" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:225 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "未找到符合以下条件的员工:
    公司:{0}
    币种:{1}
    应付薪资账户:{2}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "未找到符合筛选条件的员工" + +#: hrms/payroll/report/income_tax_computation/income_tax_computation.py:71 +msgid "No employees found with selected filters and active salary structure" +msgstr "未找到符合筛选条件且激活薪资结构的员工" + +#: frontend/src/components/ExpensesTable.vue:64 +msgid "No expenses added" +msgstr "未添加费用明细" + +#: hrms/public/js/templates/feedback_history.html:55 +msgid "No feedback has been received yet" +msgstr "尚未收到反馈" + +#: hrms/hr/doctype/goal/goal_list.js:94 +msgid "No items selected" +msgstr "未选择项目" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.js:46 +msgid "No leave allocation found for {0} for {1} on given date." +msgstr "在指定日期未找到{0}的{1}假期分配。" + +#: hrms/hr/doctype/attendance/attendance.py:197 +msgid "No leave record found for employee {0} on {1}" +msgstr "未找到员工{0}在{1}的假期记录" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:29 +msgid "No leaves have been allocated." +msgstr "未分配假期" + +#: hrms/hr/page/team_updates/team_updates.js:49 +msgid "No more updates" +msgstr "无更多更新" + +#. Label of the no_of_positions (Int) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "No of. Positions" +msgstr "岗位数量" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "无来自的回复" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1586 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "未找到符合筛选条件的待提交工资条,或工资条已提交" + +#: frontend/src/views/salary_slip/Dashboard.vue:50 +msgid "No salary slips found" +msgstr "未找到工资单" + +#: hrms/payroll/doctype/arrear/arrear.py:136 +msgid "No salary slips found for the selected employee from {0}" +msgstr "未找到选定员工从{0}开始的工资条" + +#: frontend/src/components/ExpenseTaxesTable.vue:56 +msgid "No taxes added" +msgstr "未添加税费项目" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:51 +msgid "No valid shift found for log time" +msgstr "未找到日志时间的有效班次" + +#: hrms/public/js/utils/index.js:48 +msgid "No {0} Selected" +msgstr "未选择{0}" + +#: frontend/src/components/SalaryDetailTable.vue:32 +msgid "No {0} added" +msgstr "未添加{0}" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non Diary" +msgstr "非日志" + +#. Label of the non_taxable_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Non Taxable Earnings" +msgstr "非应税收入" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:250 +msgid "Non-Billed Hours" +msgstr "非计费工时" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:74 +msgid "Non-Billed Hours (NB)" +msgstr "非计费工时(NB)" + +#. Label of the non_encashable_leaves (Int) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Non-Encashable Leaves" +msgstr "不可折现假期" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Non-Vegetarian" +msgstr "非素食" + +#. Description of the 'Shift' (Link) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "注意:现有考勤记录中的班次不会被覆盖" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:156 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "注意:期间总分配假期{0}不得少于已批准假期{1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2169 +msgid "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." +msgstr "注意:工资条PDF密码格式为{0}" + +#: hrms/hr/employee_property_update.js:176 +msgid "Nothing to change" +msgstr "无变更内容" + +#: hrms/setup.py:413 +msgid "Notice Period" +msgstr "通知期" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:125 +msgid "Notification Template" +msgstr "通知模板" + +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Onboarding' +#. Label of the notify_users_by_email (Check) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Notify users by email" +msgstr "邮件通知用户" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:46 +#: hrms/public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "十一月" + +#. Label of the number_of_employees (Int) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Number Of Employees" +msgstr "员工人数" + +#. Label of the number_of_positions (Int) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Number Of Positions" +msgstr "岗位数量" + +#. Label of the number_of_leaves (Float) field in DocType 'Earned Leave +#. Schedule' +#: hrms/hr/doctype/earned_leave_schedule/earned_leave_schedule.json +msgid "Number of Leaves" +msgstr "" + +#. Label of the number_of_withholding_cycles (Int) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Number of Withholding Cycles" +msgstr "代扣周期数" + +#. Description of the 'Actual Encashable Days' (Float) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "根据假期类型设置符合条件的可折现天数" + +#: frontend/src/views/Login.vue:86 +msgid "OTP Code" +msgstr "一次性验证码" + +#: frontend/src/views/Login.vue:77 +msgid "OTP Verification" +msgstr "一次性验证码核验" + +#. Option for the 'Log Type' (Select) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "OUT" +msgstr "签退" + +#. Label of the average_rating (Rating) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Obtained Average Rating" +msgstr "获得平均评分" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:45 +#: hrms/public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "十月" + +#. Label of the odometer_reading (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Odometer Reading" +msgstr "里程表读数" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "里程表数值" + +#: hrms/hr/doctype/employee_checkin/employee_checkin_list.js:5 +msgid "Off-Shift" +msgstr "非班次时间" + +#. Label of the offshift (Check) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Off-shift" +msgstr "非当班" + +#. Label of the offer_term (Link) field in DocType 'Job Offer Term' +#. Name of a DocType +#. Label of the offer_term (Data) field in DocType 'Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +#: hrms/hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "录用条款" + +#. Label of the offer_terms (Table) field in DocType 'Job Offer Term Template' +#: hrms/hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Offer Terms" +msgstr "录用条款内容" + +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "日期" + +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#: hrms/hr/doctype/attendance_request/attendance_request.json +msgid "On Duty" +msgstr "在岗" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +msgid "On Leave" +msgstr "休假中" + +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Onboarding" +msgstr "入职管理" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Activities" +msgstr "入职活动" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Onboarding' +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Onboarding Begins On" +msgstr "入职流程开始日期" + +#: hrms/hr/doctype/shift_request/shift_request.py:95 +msgid "Only Approvers can Approve this Request." +msgstr "仅审批人可批准此请求" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "仅完成状态的单据可提交" + +#: hrms/hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "仅状态为{0}或{1}的员工申诉可提交" + +#: hrms/hr/doctype/interview/interview.py:325 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "仅面试官可提交面试反馈" + +#: hrms/hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "仅通过或拒绝状态的面试可提交" + +#: hrms/hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "仅'已批准'或'已拒绝'状态的请假申请可提交" + +#: hrms/hr/doctype/shift_request/shift_request.py:46 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "仅'已批准'或'已拒绝'状态的班次申请可提交" + +#: hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py:33 +msgid "Only expired allocation can be cancelled" +msgstr "仅过期分配可取消" + +#: hrms/hr/doctype/interview/interview.js:66 +msgid "Only interviewers can submit feedback" +msgstr "仅面试官可提交反馈" + +#: hrms/hr/doctype/leave_application/leave_application.py:178 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "仅具有{0}角色的用户可创建补请假申请" + +#: hrms/hr/doctype/goal/goal_list.js:110 +msgid "Only {0} Goals can be {1}" +msgstr "仅{0}类型目标可{1}" + +#. Option for the 'Status' (Select) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Open & Approved" +msgstr "开放且已批准" + +#: hrms/public/js/templates/feedback_history.html:44 +msgid "Open Feedback" +msgstr "开放反馈" + +#: hrms/hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "立即开放" + +#: hrms/templates/generators/job_opening.html:38 +#: hrms/templates/generators/job_opening.html:218 +msgid "Opening closed." +msgstr "期初已关闭" + +#: hrms/hr/doctype/leave_application/leave_application.py:610 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "假期周期{0}未设置可选节假日列表" + +#: hrms/hr/doctype/leave_type/leave_type.js:35 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "可选假期是员工可从公司公布的假期列表中选择的节假日" + +#: hrms/hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "组织架构图" + +#. Label of the other_taxes_and_charges (Table) field in DocType 'Income Tax +#. Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Other Taxes and Charges" +msgstr "其他税费及附加" + +#: hrms/setup.py:335 +msgid "Others" +msgstr "其他" + +#. Label of the out_time (Datetime) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "签退时间" + +#. Label of a chart in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "离职薪资" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:292 +msgid "Over Allocation" +msgstr "超额分配" + +#: hrms/public/js/templates/interview_feedback.html:4 +msgid "Overall Average Rating" +msgstr "总体平均评分" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:72 +msgid "Overlapping Attendance Request" +msgstr "重叠考勤申请" + +#: hrms/hr/doctype/attendance/attendance.py:123 +msgid "Overlapping Shift Attendance" +msgstr "重叠班次考勤" + +#: hrms/hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "重叠班次申请" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:147 +msgid "Overlapping Shifts" +msgstr "重叠班次" + +#. Label of the overtime_section (Section Break) field in DocType 'Attendance' +#. Label of the overtime_section (Section Break) field in DocType 'Shift Type' +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime" +msgstr "加班" + +#. Label of the overtime_calculation_method (Select) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Amount Calculation" +msgstr "加班费计算" + +#. Name of a DocType +#. Label of the overtime_details (Table) field in DocType 'Overtime Slip' +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Overtime Details" +msgstr "加班明细" + +#. Label of the overtime_duration (Float) field in DocType 'Overtime Details' +#: hrms/hr/doctype/overtime_details/overtime_details.json +msgid "Overtime Duration" +msgstr "加班时长" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:73 +msgid "Overtime Duration for {0} is greater than Maximum Overtime Hours Allowed" +msgstr "{0}的加班时长超过允许的最大加班时数" + +#. Name of a DocType +#. Label of the overtime_salary_component (Link) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime Salary Component" +msgstr "加班工资组件" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Slip" +msgstr "加班单" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:457 +msgid "Overtime Slip Creation Error for {0}" +msgstr "{0}的加班单创建错误" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:468 +msgid "Overtime Slip Creation Failed" +msgstr "加班单创建失败" + +#. Label of the overtime_step (Select) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Overtime Slip Step" +msgstr "加班单步骤" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:491 +msgid "Overtime Slip Submission Error for {0}" +msgstr "{0}的加班单提交错误" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:502 +msgid "Overtime Slip Submission Failed" +msgstr "加班单提交失败" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:497 +msgid "Overtime Slip Submitted" +msgstr "加班单已提交" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:461 +msgid "Overtime Slip created for {0} employee(s)" +msgstr "已为{0}名员工创建加班单" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1247 +msgid "Overtime Slip creation is queued. It may take a few minutes" +msgstr "加班单创建已加入队列。可能需要几分钟时间" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1271 +msgid "Overtime Slip submission is queued. It may take a few minutes" +msgstr "加班单提交已加入队列。可能需要几分钟时间" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:48 +msgid "Overtime Slip:{0} has been created between {1} and {2}" +msgstr "加班单:{0}已在{1}至{2}期间创建" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:463 +msgid "Overtime Slips Created" +msgstr "加班单已创建" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:495 +msgid "Overtime Slips submitted for {0} employee(s)" +msgstr "已为{0}名员工提交加班单" + +#. Label of the overtime_type (Link) field in DocType 'Attendance' +#. Label of the overtime_type (Link) field in DocType 'Employee Checkin' +#. Label of the overtime_type (Link) field in DocType 'Overtime Details' +#. Name of a DocType +#. Label of the overtime_type (Link) field in DocType 'Shift Assignment' +#. Label of the overtime_type (Link) field in DocType 'Shift Type' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/doctype/overtime_type/overtime_type.json +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Overtime Type" +msgstr "加班类型" + +#. Description of the 'Overtime Salary Component' (Link) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Overtime earnings will be booked under this salary component for payout." +msgstr "加班收入将计入此工资组件进行支付。" + +#. Label of the overwrite_salary_structure_amount (Check) field in DocType +#. 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/additional_salary/additional_salary.py:153 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:181 +msgid "Overwrite Salary Structure Amount" +msgstr "覆盖薪资结构金额" + +#: hrms/payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "永久账号号码" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:43 +msgid "PF Account" +msgstr "公积金账户" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:44 +msgid "PF Amount" +msgstr "公积金金额" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:51 +msgid "PF Loan" +msgstr "公积金贷款" + +#. Name of a DocType +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "渐进式Web应用通知" + +#. Label of the paid_via_salary_slip (Check) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Paid via Salary Slip" +msgstr "通过工资条支付" + +#. Label of the parent_goal (Link) field in DocType 'Goal' +#: hrms/hr/doctype/goal/goal.json +msgid "Parent Goal" +msgstr "父级目标" + +#: hrms/setup.py:390 +msgid "Part-time" +msgstr "兼职" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Partially Sponsored, Require Partial Funding" +msgstr "部分资助,需部分资金" + +#. Option for the 'Status' (Select) field in DocType 'Employee Advance' +#: frontend/src/views/employee_advance/List.vue:42 +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Partly Claimed and Returned" +msgstr "部分申报并退回" + +#. Label of the password_policy (Data) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Password Policy" +msgstr "密码策略" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.js:25 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "密码策略不能包含空格或连续连字符。格式将自动调整" + +#: hrms/payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "未设置工资条密码策略" + +#. Label of the pay_rate_multipliers_section (Section Break) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Pay Rate Multipliers" +msgstr "支付费率乘数" + +#. Label of the pay_via_payment_entry (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Pay Via Payment Entry" +msgstr "通过付款分录支付" + +#. Label of the pay_via_salary_slip (Check) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Pay via Salary Slip" +msgstr "通过工资条支付" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:137 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "提交费用报销必须填写应付账户" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:461 +msgid "Payment Account is mandatory" +msgstr "支付账户为必填项" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:26 +msgid "Payment Date" +msgstr "支付日期" + +#. Label of the payment_days (Float) field in DocType 'Payroll Correction' +#. Label of the payment_days (Float) field in DocType 'Salary Slip' +#. Label of the payment_days_tab (Tab Break) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/report/salary_register/salary_register.py:191 +msgid "Payment Days" +msgstr "计薪天数" + +#. Label of the payment_days_calculation_help (HTML) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payment Days Calculation Help" +msgstr "计薪天数计算说明" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:114 +msgid "Payment Days Dependency" +msgstr "计薪天数依赖项" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payment Days calculations are based on these Payroll Settings" +msgstr "计薪天数计算基于以下薪资设置" + +#. Label of the section_break_5 (Tab Break) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Payment and Accounting" +msgstr "支付与会计" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1097 +msgid "Payment of {0} from {1} to {2}" +msgstr "从{1}至{2}支付{0}" + +#. Option for the 'Transaction Type' (Select) field in DocType 'Employee +#. Benefit Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +msgid "Payout" +msgstr "支付" + +#. Label of the payout_method (Select) field in DocType 'Salary Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Method" +msgstr "支付方式" + +#. Label of the final_cycle_accrual_payout (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Payout Unclaimed Amount in Final Payroll Cycle" +msgstr "在最终薪资周期支付未申领金额" + +#. Label of the payroll (Section Break) field in DocType 'Leave Encashment' +#. Name of a Workspace +#. Label of a Card Break in the Payroll Workspace +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +#: hrms/overrides/dashboard_overrides.py:37 +#: hrms/overrides/dashboard_overrides.py:77 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll" +msgstr "薪资" + +#: hrms/payroll/doctype/salary_slip/salary_slip.js:282 +msgid "Payroll Based On" +msgstr "薪资计算依据" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Correction" +msgstr "薪资调整" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +msgid "Payroll Correction Child" +msgstr "薪资调整子项" + +#: hrms/setup.py:111 hrms/setup.py:281 +msgid "Payroll Cost Center" +msgstr "薪资成本中心" + +#. Label of the section_break_17 (Section Break) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Payroll Cost Centers" +msgstr "薪资成本中心" + +#. Label of a shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "Payroll Dashboard" +msgstr "薪资仪表板" + +#. Label of the payroll_date (Date) field in DocType 'Additional Salary' +#. Label of the payroll_date (Date) field in DocType 'Arrear' +#. Label of the payroll_date (Date) field in DocType 'Employee Benefit Claim' +#. Label of the payroll_date (Date) field in DocType 'Employee Incentive' +#. Label of the payroll_date (Date) field in DocType 'Gratuity' +#. Label of the payroll_date (Date) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Payroll Date" +msgstr "薪资日期" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "员工薪资明细" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:141 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "薪资条目取消已加入队列,可能需要几分钟" + +#. Label of the payroll_frequency (Select) field in DocType 'Payroll Entry' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Slip' +#. Label of the payroll_frequency (Select) field in DocType 'Salary Structure' +#. Label of the payroll_frequency (Select) field in DocType 'Salary +#. Withholding' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Payroll Frequency" +msgstr "薪资频率" + +#. Label of the section_break_gsts (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Payroll Info" +msgstr "薪资信息" + +#: hrms/payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "薪资编号" + +#. Label of the payroll_payable_account (Link) field in DocType 'Bulk Salary +#. Structure Assignment' +#. Label of the payroll_payable_account (Link) field in DocType 'Payroll Entry' +#. Label of the payroll_payable_account (Link) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/setup.py:845 +msgid "Payroll Payable Account" +msgstr "应付薪资账户" + +#. Label of the payroll_period (Link) field in DocType 'Arrear' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Application' +#. Label of the payroll_period (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the payroll_period (Link) field in DocType 'Employee Other Income' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Declaration' +#. Label of the payroll_period (Link) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#. Label of the payroll_period (Link) field in DocType 'Payroll Correction' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: frontend/src/views/salary_slip/Dashboard.vue:21 +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_other_income/employee_other_income.json +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/payroll_period/payroll_period.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:62 +#: hrms/payroll/report/income_tax_computation/income_tax_computation.js:18 +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Period" +msgstr "薪资周期" + +#. Name of a DocType +#: hrms/payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "薪资周期日期" + +#. Label of the section_break_5 (Section Break) field in DocType 'Payroll +#. Period' +#. Label of the periods (Table) field in DocType 'Payroll Period' +#: hrms/payroll/doctype/payroll_period/payroll_period.json +msgid "Payroll Periods" +msgstr "薪资周期列表" + +#. Label of a Card Break in the Payroll Workspace +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Payroll Reports" +msgstr "薪资报表" + +#. Label of a Link in the HR Workspace +#. Name of a DocType +#: hrms/hr/workspace/hr/hr.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "薪资设置" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:95 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "薪资日期不得晚于员工离职日期" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:87 +msgid "Payroll date can not be less than employee's joining date." +msgstr "薪资日期不得早于员工入职日期" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:24 +msgid "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." +msgstr "薪资日期不能为过去日期。此举旨在确保报销针对当前或未来薪资周期。" + +#. Description of the 'Pending Amount' (Currency) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Pending (unpaid) amount from previous advances" +msgstr "历史预支未付金额" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:73 +msgid "Pending Asset Returns" +msgstr "待归还资产" + +#: hrms/hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "待处理离职结算" + +#: hrms/hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "待处理面试" + +#: hrms/hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "待处理问卷" + +#. Label of the percent_deduction (Percent) field in DocType 'Taxable Salary +#. Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Percent Deduction" +msgstr "百分比扣除" + +#. Name of a Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Performance" +msgstr "绩效" + +#: frontend/src/components/FormView.vue:291 +msgid "Permanently cancel {0}" +msgstr "永久取消{0}" + +#: frontend/src/components/FormView.vue:260 +msgid "Permanently submit {0}" +msgstr "永久提交{0}" + +#: hrms/setup.py:394 +msgid "Piecework" +msgstr "计件工作" + +#. Label of the planned_vacancies (Int) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Planned number of Positions" +msgstr "计划岗位数量" + +#: hrms/hr/doctype/shift_type/shift_type.js:16 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "请先启用自动考勤并完成设置" + +#: hrms/payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "请先选择公司" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:832 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "请先为员工{0}分配自{1}或之前生效的薪资结构" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:41 +msgid "Please check if employee is on leave or attendance with the same status exists for selected day(s)." +msgstr "请检查员工是否请假或所选日期存在相同状态考勤" + +#: hrms/templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "完成培训后请确认" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "请先为日期{1}新建{0}" + +#: hrms/hr/doctype/employee_transfer/employee_transfer.py:55 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "请先删除员工{0}以取消该单据" + +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "创建每日工作摘要组前请先设置默认收入账户" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:97 +msgid "Please enter the designation" +msgstr "请输入职级" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.js:11 +msgid "Please fill in Employee, Posting Date, and Company before fetching overtime details." +msgstr "请在获取加班明细前填写员工、过账日期和公司。" + +#: hrms/hr/doctype/shift_type/shift_type.py:58 +msgid "Please reduce {0} to avoid shift time overlapping with itself" +msgstr "请调整{0}以避免班次时间重叠" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2158 +msgid "Please see attachment" +msgstr "请查看附件" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:225 +msgid "Please select Company and Designation" +msgstr "请选择公司和职级" + +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "请选择员工" + +#: hrms/hr/doctype/department_approver/department_approver.py:19 +#: hrms/hr/employee_property_update.js:45 +msgid "Please select Employee first." +msgstr "请先选择员工" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:41 +msgid "Please select Filter Based On" +msgstr "请选择筛选依据" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.js:25 +msgid "Please select From Date and Payroll Frequency first" +msgstr "请先选择起始日期和薪资频率" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:113 +msgid "Please select From Date." +msgstr "请选择起始日期" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:167 +msgid "Please select Shift Schedule and assignment date(s)." +msgstr "请选择班次表和分配日期" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:160 +msgid "Please select Shift Type and assignment date(s)." +msgstr "请选择班次类型和分配日期" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js:233 +msgid "Please select a company first" +msgstr "请先选择公司" + +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:103 +#: hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js:299 +msgid "Please select a company first." +msgstr "请先选择公司" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:172 +msgid "Please select a csv file" +msgstr "请选择CSV文件" + +#: hrms/hr/doctype/attendance/attendance.py:348 +msgid "Please select a date." +msgstr "请选择日期" + +#: hrms/hr/utils.py:810 +msgid "Please select an Applicant" +msgstr "请选择申请人" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:260 +msgid "Please select at least one Shift Request to perform this action." +msgstr "请至少选择一个班次申请执行此操作" + +#: hrms/hr/utils.py:921 +msgid "Please select at least one employee to perform this action." +msgstr "请至少选择一名员工执行此操作" + +#: hrms/public/js/utils/index.js:47 +msgid "Please select at least one row to perform this action." +msgstr "请至少选择一行执行此操作" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:55 +msgid "Please select company." +msgstr "请选择公司" + +#: hrms/hr/doctype/employee_advance/employee_advance.js:16 +#: hrms/hr/doctype/leave_encashment/leave_encashment.js:30 +msgid "Please select employee first" +msgstr "请先选择员工" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "请选择要创建绩效考核的员工" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:256 +msgid "Please select half day attendance status." +msgstr "请选择半日考勤状态。" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:44 +msgid "Please select month and year." +msgstr "请选择月份和年份" + +#: hrms/hr/doctype/goal/goal.js:103 +msgid "Please select the Appraisal Cycle first." +msgstr "请先选择考核周期" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:250 +msgid "Please select the attendance status." +msgstr "请选择考勤状态" + +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.js:243 +msgid "Please select the employees you want to mark attendance for." +msgstr "请选择要记录考勤的员工" + +#: hrms/payroll/doctype/salary_slip/salary_slip_list.js:15 +msgid "Please select the salary slips to email" +msgstr "请选择要发送邮件的工资条" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:286 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "请在公司默认设置中设置\"默认薪资账户\"" + +#: hrms/regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "请在公司{0}设置基本工资和HRA组件" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:162 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "请为假期类型{0}设置收入组件" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:493 +msgid "Please set Payroll based on in Payroll settings" +msgstr "请在薪资设置中选择薪资计算依据" + +#: hrms/payroll/doctype/gratuity/gratuity.py:173 +msgid "Please set Relieving Date for employee: {0}" +msgstr "请设置员工{0}的离职日期" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:166 +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:52 +msgid "Please set a date range less than 90 days." +msgstr "请设置小于90天的日期范围。" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:357 +msgid "Please set account in Salary Component {0}" +msgstr "请在薪资组件{0}设置账户" + +#: hrms/hr/doctype/leave_application/leave_application.py:665 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "请在HR设置中设置假期审批通知默认模板" + +#: hrms/hr/doctype/leave_application/leave_application.py:640 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "请在HR设置中设置假期状态通知默认模板" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "请为所有{0}设置考核模板,或在下方员工表中选择模板" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:521 +msgid "Please set the Company" +msgstr "请设置公司" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:302 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "请设置员工{0}的入职日期" + +#: hrms/controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "请设置节假日列表" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:48 +msgid "Please set the date range." +msgstr "请设置日期范围。" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:21 +#: hrms/hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "请设置员工{0}的离职日期" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:123 +msgid "Please set {0} and {1} in {2}." +msgstr "请在{2}中设置{0}和{1}" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:44 +msgid "Please set {0} for Employee {1}" +msgstr "请为员工{1}设置{0}" + +#: hrms/hr/doctype/department_approver/department_approver.py:84 +msgid "Please set {0} for the Employee: {1}" +msgstr "请为员工{1}设置{0}" + +#: hrms/hr/doctype/shift_type/shift_type.js:21 +#: hrms/hr/doctype/shift_type/shift_type.js:26 +msgid "Please set {0}." +msgstr "请设置{0}" + +#: hrms/overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "请在人力资源>HR设置中配置员工编号系统" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:159 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "请通过设置>编号规则配置考勤编号系列" + +#: hrms/hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "请点击'培训反馈'后点击'新建'提交反馈" + +#: hrms/hr/doctype/interview/interview.py:194 +msgid "Please specify the job applicant to be updated." +msgstr "请指定要更新的职位申请人" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:158 +msgid "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." +msgstr "请填写{0}及{1}(如有),以确保未来工资条正确计税" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "标记周期为已完成前请先提交{0}" + +#: hrms/templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "请更新您在此培训活动的状态" + +#. Label of the posted_on (Datetime) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Posted On" +msgstr "过账日期" + +#. Label of the posting_date (Date) field in DocType 'Gratuity' +#: hrms/payroll/doctype/gratuity/gratuity.json +msgid "Posting date" +msgstr "过账日期" + +#. Label of the preferred_area_for_lodging (Data) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Preferred Area for Lodging" +msgstr "首选住宿区域" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Status for Other Half' (Select) field in DocType +#. 'Attendance' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#. Option for the 'Status for Other Half' (Select) field in DocType 'Employee +#. Attendance Tool' +#. Option for the 'Attendance' (Select) field in DocType 'Training Event +#. Employee' +#. Option for the 'Consider Unmarked Attendance As' (Select) field in DocType +#. 'Payroll Settings' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:733 +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Present" +msgstr "出勤" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "出勤记录" + +#. Label of the prevent_self_expense_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for expense claims even if user has permissions" +msgstr "即使用户具有权限,也阻止费用报销的自我审批" + +#. Label of the prevent_self_leave_approval (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Prevent self approval for leaves even if user has permissions" +msgstr "即使有权限也禁止自我审批假期" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:155 +#: hrms/payroll/doctype/salary_structure/salary_structure.js:193 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js:73 +msgid "Preview Salary Slip" +msgstr "预览工资条" + +#. Label of the principal_amount (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Principal Amount" +msgstr "本金金额" + +#: hrms/payroll/report/salary_register/salary_register.html:40 +msgid "Printed On {0}" +msgstr "打印时间:{0}" + +#: hrms/setup.py:373 hrms/setup.py:374 +msgid "Privilege Leave" +msgstr "特权假" + +#: hrms/setup.py:391 +msgid "Probation" +msgstr "试用期" + +#: hrms/setup.py:405 +msgid "Probationary Period" +msgstr "试用期间" + +#. Label of the process_attendance_after (Date) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Process Attendance After" +msgstr "处理考勤时间范围" + +#. Label of the process_payroll_accounting_entry_based_on_employee (Check) +#. field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/setup.py:856 +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "按员工处理薪资会计条目" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:123 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:130 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:132 +msgid "Process Requests" +msgstr "处理请求" + +#. Option for the 'Action' (Select) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Process Shift Requests" +msgstr "处理班次申请" + +#. Description of the 'Pay Via Payment Entry' (Check) field in DocType 'Leave +#. Encashment' +#: hrms/hr/doctype/leave_encashment/leave_encashment.json +msgid "Process leave encashment via a separate Payment Entry instead of Salary Slip" +msgstr "通过独立付款分录处理假期折现而非工资条" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:289 +msgid "Process {0} Shift Request(s) as {1}?" +msgstr "是否将{0}个班次申请处理为{1}?" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:305 +msgid "Processing Requests" +msgstr "处理请求" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:299 +msgid "Processing Requests..." +msgstr "正在处理请求..." + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.py:271 +msgid "Processing of Shift Requests has been queued. It may take a few minutes." +msgstr "班次申请处理已加入队列,可能需要几分钟" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Professional Tax Deductions" +msgstr "职业税扣除" + +#. Label of the proficiency (Rating) field in DocType 'Employee Skill' +#: hrms/hr/doctype/employee_skill/employee_skill.json +msgid "Proficiency" +msgstr "熟练程度" + +#: hrms/hr/report/project_profitability/project_profitability.py:183 +msgid "Profit" +msgstr "利润" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/project_profitability/project_profitability.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "项目盈利能力" + +#. Label of a Card Break in the Performance Workspace +#: hrms/hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "晋升" + +#. Label of the promotion_date (Date) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Promotion Date" +msgstr "晋升日期" + +#: hrms/hr/employee_property_update.js:172 +msgid "Property already added" +msgstr "属性已添加" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Provident Fund Deductions" +msgstr "公积金扣除" + +#. Label of the public_holiday_multiplier (Float) field in DocType 'Overtime +#. Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Public Holiday Multiplier" +msgstr "公共假日乘数" + +#. Label of the publish_applications_received (Check) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Applications Received" +msgstr "公开已收申请数" + +#. Label of the publish_salary_range (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish Salary Range" +msgstr "公开薪资范围" + +#. Label of the publish (Check) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Publish on website" +msgstr "在网站发布" + +#. Label of the section_break_8 (Section Break) field in DocType 'Employee +#. Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Purpose & Amount" +msgstr "用途与金额" + +#. Name of a DocType +#. Label of the purpose_of_travel (Data) field in DocType 'Purpose of Travel' +#. Label of the purpose_of_travel (Link) field in DocType 'Travel Request' +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Purpose of Travel" +msgstr "差旅目的" + +#: frontend/src/views/AppSettings.vue:128 +msgid "Push Notification permission denied" +msgstr "推送通知权限被拒绝" + +#: frontend/src/views/AppSettings.vue:96 +msgid "Push notifications disabled" +msgstr "推送通知已禁用" + +#: frontend/src/views/AppSettings.vue:80 +msgid "Push notifications have been disabled on your site" +msgstr "您的站点已禁用推送通知" + +#. Label of the questionnaire_email_sent (Check) field in DocType 'Exit +#. Interview' +#: hrms/hr/doctype/exit_interview/exit_interview.json +msgid "Questionnaire Email Sent" +msgstr "问卷邮件已发送" + +#. Label of the quick_filters_section (Section Break) field in DocType 'Leave +#. Control Panel' +#. Label of the quick_filters_section (Section Break) field in DocType 'Shift +#. Assignment Tool' +#. Label of the quick_filters_section (Section Break) field in DocType 'Bulk +#. Salary Structure Assignment' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Quick Filters" +msgstr "快速筛选" + +#: frontend/src/components/QuickLinks.vue:3 frontend/src/views/Home.vue:6 +msgid "Quick Links" +msgstr "快速链接" + +#. Description of the 'Checkin Radius' (Int) field in DocType 'Shift Location' +#: hrms/hr/doctype/shift_location/shift_location.json +msgid "Radius within which check-in is allowed (in meters)" +msgstr "允许签到半径(米)" + +#. Label of the rate_goals_manually (Check) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Rate Goals Manually" +msgstr "手动评分目标" + +#. Label of the rating_criteria (Table) field in DocType 'Appraisal Template' +#: hrms/hr/doctype/appraisal_template/appraisal_template.json +msgid "Rating Criteria" +msgstr "评分标准" + +#. Label of the section_break_23 (Section Break) field in DocType 'Appraisal' +#. Label of the ratings_section (Section Break) field in DocType 'Interview' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/interview/interview.json +msgid "Ratings" +msgstr "评分列表" + +#. Label of the reallocate_leaves (Check) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Re-allocate Leaves" +msgstr "重新分配假期" + +#. Label of the reason_for_adjustment (Small Text) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reason for Adjustment" +msgstr "调整原因" + +#. Label of the reason_for_requesting (Text) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Reason for Requesting" +msgstr "申请原因" + +#. Label of the reason_for_withholding_salary (Small Text) field in DocType +#. 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Reason for Withholding Salary" +msgstr "薪资代扣原因" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:444 +msgid "Reason for skipping auto attendance:" +msgstr "跳过自动考勤的原因:" + +#: frontend/src/views/attendance/Dashboard.vue:14 +msgid "Recent Attendance Requests" +msgstr "最近考勤申请" + +#: frontend/src/views/expense_claim/Dashboard.vue:23 +msgid "Recent Expenses" +msgstr "最近费用" + +#: frontend/src/views/leave/Dashboard.vue:21 +msgid "Recent Leaves" +msgstr "最近假期" + +#: frontend/src/views/attendance/Dashboard.vue:40 +msgid "Recent Shift Requests" +msgstr "最近班次申请" + +#. Description of the 'Automatically update Last Sync of Checkin' (Check) field +#. in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Recommended for a single biometric device / checkins via mobile app" +msgstr "推荐用于单一生物识别设备/移动端签到" + +#. Option for the 'Action' (Select) field in DocType 'Full and Final Asset' +#: hrms/hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Recover Cost" +msgstr "收回成本" + +#. Name of a Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "招聘" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.json +#: hrms/hr/workspace/hr/hr.json hrms/hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "招聘分析" + +#. Option for the 'Adjustment Type' (Select) field in DocType 'Leave +#. Adjustment' +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.json +msgid "Reduce" +msgstr "减少" + +#: hrms/hr/doctype/leave_type/leave_type.py:69 +msgid "Reducing maximum leaves allowed after allocation may cause scheduler to allocate incorrect number of earned leaves. Proceed with caution." +msgstr "分配后减少允许的最大假期天数可能导致调度程序分配错误的应计假期天数。请谨慎操作。" + +#: hrms/hr/doctype/leave_adjustment/leave_adjustment.py:75 +msgid "Reduction is more than {0}'s available leave balance {1} for leave type {2}" +msgstr "减少天数超过{0}在假期类型{2}下的可用假期余额{1}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:371 +#: hrms/hr/doctype/leave_application/leave_application.py:507 +#: hrms/payroll/doctype/additional_salary/additional_salary.py:155 +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:101 +msgid "Reference: {0}" +msgstr "参考编号:{0}" + +#. Label of the referral_payment_status (Select) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Bonus Payment Status" +msgstr "推荐奖金支付状态" + +#. Label of the referral_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referral Details" +msgstr "推荐详情" + +#. Label of the referrer_details_section (Section Break) field in DocType +#. 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Details" +msgstr "推荐人详情" + +#. Label of the referrer_name (Data) field in DocType 'Employee Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Referrer Name" +msgstr "推荐人姓名" + +#. Label of the reflections_section (Section Break) field in DocType +#. 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Reflections" +msgstr "总结" + +#. Label of the refuelling_details (Section Break) field in DocType 'Vehicle +#. Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Refuelling Details" +msgstr "加油详情" + +#: frontend/src/components/RequestActionSheet.vue:96 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:126 +msgid "Reject" +msgstr "拒绝" + +#: hrms/hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "拒绝员工推荐" + +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "Rejection" +msgstr "拒绝" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:188 +msgid "Release Withheld Salaries" +msgstr "发放代扣薪资" + +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Released" +msgstr "已发放" + +#. Label of the relieving_date (Date) field in DocType 'Full and Final +#. Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Relieving Date " +msgstr "离职日期" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:28 +#: hrms/hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "缺失离职日期" + +#. Label of the remaining_benefit (Currency) field in DocType 'Employee Benefit +#. Application' +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Remaining Benefits (Yearly)" +msgstr "剩余福利(年度)" + +#. Label of the remind_before (Time) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Remind Before" +msgstr "提前提醒" + +#. Label of the reminded (Check) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Reminded" +msgstr "已提醒" + +#. Label of the reminders_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Reminders" +msgstr "提醒列表" + +#. Label of the remove_if_zero_valued (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Remove if Zero Valued" +msgstr "零值时移除" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Rented Car" +msgstr "租用车辆" + +#: hrms/setup.py:829 hrms/setup.py:838 +msgid "Repay From Salary" +msgstr "从工资中偿还" + +#: hrms/hr/utils.py:825 +msgid "Repay From Salary can be selected only for term loans" +msgstr "仅定期贷款可选择从工资中偿还" + +#. Label of the repay_unclaimed_amount_from_salary (Check) field in DocType +#. 'Employee Advance' +#: hrms/hr/doctype/employee_advance/employee_advance.json +msgid "Repay Unclaimed Amount from Salary" +msgstr "从工资中偿还未申领金额" + +#. Label of the repeat_on_days (Table) field in DocType 'Shift Schedule' +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +msgid "Repeat On Days" +msgstr "重复天数" + +#: hrms/hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "回复" + +#. Label of the reports_to (Link) field in DocType 'Employee Grievance' +#. Label of the reports_to (Link) field in DocType 'Exit Interview' +#: hrms/hr/doctype/employee_grievance/employee_grievance.json +#: hrms/hr/doctype/exit_interview/exit_interview.json +#: hrms/hr/report/employee_exits/employee_exits.js:45 +#: hrms/hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "汇报对象" + +#: frontend/src/views/Home.vue:32 frontend/src/views/attendance/Dashboard.vue:9 +msgid "Request Attendance" +msgstr "申请考勤" + +#: frontend/src/views/Home.vue:42 +msgid "Request Leave" +msgstr "申请休假" + +#: frontend/src/views/leave/Dashboard.vue:17 +msgid "Request a Leave" +msgstr "申请休假" + +#: frontend/src/views/Home.vue:37 +#: frontend/src/views/attendance/Dashboard.vue:35 +msgid "Request a Shift" +msgstr "申请班次" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:21 +#: frontend/src/views/Home.vue:52 +msgid "Request an Advance" +msgstr "申请预支" + +#. Label of the requested_by (Link) field in DocType 'Job Requisition' +#. Label of the section_break_7 (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By" +msgstr "申请人" + +#. Label of the requested_by_name (Data) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Requested By (Name)" +msgstr "申请人(姓名)" + +#. Option for the 'Travel Funding' (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Require Full Funding" +msgstr "需全额资助" + +#: hrms/setup.py:170 +msgid "Required Skills" +msgstr "所需技能" + +#. Label of the required_for_employee_creation (Check) field in DocType +#. 'Employee Boarding Activity' +#: hrms/hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Required for Employee Creation" +msgstr "员工建档必填" + +#: hrms/hr/doctype/interview/interview.js:31 +msgid "Reschedule Interview" +msgstr "重新安排面试" + +#: hrms/setup.py:411 +msgid "Responsibilities" +msgstr "职责" + +#. Label of the restrict_backdated_leave_application (Check) field in DocType +#. 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Restrict Backdated Leave Application" +msgstr "限制补请假申请" + +#. Label of the resume_attachment (Attach) field in DocType 'Job Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Resume Attachment" +msgstr "简历附件" + +#. Label of the resume_link (Data) field in DocType 'Employee Referral' +#. Label of the resume_link (Data) field in DocType 'Job Applicant' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/employee_referral/employee_referral.json +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Resume Link" +msgstr "简历链接" + +#. Label of the resume_link (Data) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Resume link" +msgstr "简历链接" + +#: hrms/hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "留任" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Retention Bonus" +msgstr "留任奖金" + +#. Label of the retirement_age (Data) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Retirement Age (In Years)" +msgstr "退休年龄(年)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:441 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:449 +msgid "Retry Failed" +msgstr "" + +#. Label of the retry_failed_allocations (Button) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Retry Failed Allocations" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:191 +msgid "Retry Successful" +msgstr "" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:188 +msgid "Retrying allocations" +msgstr "" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:185 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "返还金额不可超过未申领金额" + +#: hrms/hr/doctype/hr_settings/hr_settings.js:41 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "审阅与员工假期及费用报销相关的其他设置" + +#. Label of the reviewer (Link) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer" +msgstr "审核人" + +#. Label of the reviewer_name (Data) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Reviewer Name" +msgstr "审核人姓名" + +#. Label of the revised_ctc (Currency) field in DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Revised CTC" +msgstr "修订后人力总成本" + +#. Label of the role_allowed_to_create_backdated_leave_application (Link) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/leave_application/leave_application.py:171 +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "允许创建补请假申请的角色" + +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:252 hrms/public/js/utils/index.js:273 +msgid "Roster" +msgstr "排班表" + +#. Label of the color (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Roster Color" +msgstr "排班颜色" + +#. Label of the round_name (Data) field in DocType 'Interview Round' +#: hrms/hr/doctype/interview_round/interview_round.json +msgid "Round Name" +msgstr "轮次名称" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Round off Work Experience" +msgstr "四舍五入工作年限" + +#. Label of the round_to_the_nearest_integer (Check) field in DocType 'Salary +#. Component' +#: hrms/payroll/doctype/salary_component/salary_component.json +msgid "Round to the Nearest Integer" +msgstr "四舍五入至整数" + +#. Label of the rounding (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "Rounding" +msgstr "四舍五入" + +#. Description of the 'Job Application Route' (Data) field in DocType 'Job +#. Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Route to the custom Job Application Webform" +msgstr "指向自定义职位申请网页表单的路径" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:86 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "行号#{0}:无法为薪资组件{1}设置金额或公式,因其基于应税工资变量" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:105 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "行号#{0}:组件{1}已启用{2}和{3}选项" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:129 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "行号#{0}:工时表金额将覆盖薪资组件{1}的收入项金额" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:908 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "行号{0}:金额不可超过费用报销{1}的未结金额{2}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:521 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "行号{0}# 分配金额{1}不可超过未申领金额{2}" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:270 +msgid "Row {0}# Paid Amount cannot be greater than Encashment amount" +msgstr "行号{0}# 已付金额不可超过折现金额" + +#: hrms/payroll/doctype/gratuity/gratuity.py:133 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "行号{0}# 已付金额不可超过总金额" + +#: hrms/hr/doctype/employee_advance/employee_advance.py:177 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "行号{0}# 已付金额不可超过申请的预支金额" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "行号{0}:起始年份不可大于截止年份" + +#: hrms/hr/doctype/appraisal/appraisal.py:137 +msgid "Row {0}: Goal Score cannot be greater than {1}" +msgstr "第{0}行:目标评分不能大于{1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py:59 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "行号{0}:已付金额{1}超过贷款{3}的待计金额{2}" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:65 +msgid "Row {0}: {1}" +msgstr "行号{0}:{1}" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:432 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "行号{0}:费用表中需填写{1}以登记费用报销" + +#. Label of the salary_component (Link) field in DocType 'Overtime Salary +#. Component' +#. Label of the salary_component (Link) field in DocType 'Additional Salary' +#. Label of the salary_component (Link) field in DocType 'Employee Benefit +#. Ledger' +#. Label of the salary_component (Link) field in DocType 'Employee Incentive' +#. Label of the salary_component (Link) field in DocType 'Gratuity' +#. Label of the salary_component (Link) field in DocType 'Payroll Correction +#. Child' +#. Label of the salary_component (Link) field in DocType 'Retention Bonus' +#. Name of a DocType +#. Label of the salary_component (Link) field in DocType 'Salary Structure' +#. Label of a Link in the Payroll Workspace +#: hrms/hr/doctype/overtime_salary_component/overtime_salary_component.json +#: hrms/payroll/doctype/additional_salary/additional_salary.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/employee_incentive/employee_incentive.json +#: hrms/payroll/doctype/gratuity/gratuity.json +#: hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json +#: hrms/payroll/doctype/retention_bonus/retention_bonus.json +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js:77 +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:33 +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/public/js/utils/payroll_utils.js:23 +msgid "Salary Component" +msgstr "薪资组件" + +#. Label of the salary_component (Link) field in DocType 'Gratuity Applicable +#. Component' +#: hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Salary Component " +msgstr "薪资组件" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "薪资组件账户" + +#. Option for the 'Overtime Amount Calculation' (Select) field in DocType +#. 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Salary Component Based" +msgstr "基于工资组件" + +#. Label of the type (Data) field in DocType 'Additional Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "Salary Component Type" +msgstr "薪资组件类型" + +#. Description of the 'Salary Component' (Link) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Component for timesheet based payroll." +msgstr "基于工时表的薪资组件" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:440 +msgid "Salary Component {0} cannot be selected more than once in Employee Benefits" +msgstr "工资组件{0}在员工福利中不能重复选择" + +#: hrms/payroll/doctype/salary_component/salary_component.js:113 +msgid "Salary Component {0} is currently not used in any Salary Structure." +msgstr "薪资组件{0}当前未在任何薪资结构中使用" + +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py:15 +msgid "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" +msgstr "工资组件{0}必须为“收入”类型才能用于员工福利分类账" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "薪资明细" + +#. Label of the salary_details_section (Section Break) field in DocType +#. 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Salary Details" +msgstr "薪资详情" + +#. Label of the section_break_16 (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Salary Expectation" +msgstr "期望薪资" + +#: frontend/src/views/Profile.vue:200 +msgid "Salary Information" +msgstr "薪资信息" + +#. Label of the salary_per (Select) field in DocType 'Job Opening' +#: hrms/hr/doctype/job_opening/job_opening.json +msgid "Salary Paid Per" +msgstr "薪资支付周期" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments Based On Payment Mode" +msgstr "基于支付方式的薪资支付" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Payments via ECS" +msgstr "通过ECS支付的薪资" + +#: hrms/templates/generators/job_opening.html:108 +msgid "Salary Range" +msgstr "薪资范围" + +#. Name of a report +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/payroll/report/salary_register/salary_register.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Register" +msgstr "薪资登记表" + +#. Label of the salary_slip (Link) field in DocType 'Leave Application' +#. Label of the salary_slip (Link) field in DocType 'Overtime Slip' +#. Label of the salary_slip (Link) field in DocType 'Employee Benefit Ledger' +#. Label of the column_break_rnoq (Section Break) field in DocType 'Payroll +#. Settings' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#. Label of a shortcut in the Payroll Workspace +#: hrms/hr/doctype/leave_application/leave_application.json +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/workspace/payroll/payroll.json hrms/setup.py:309 +msgid "Salary Slip" +msgstr "工资条" + +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType +#. 'Payroll Entry' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Slip' +#. Label of the salary_slip_based_on_timesheet (Check) field in DocType 'Salary +#. Structure' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Slip Based on Timesheet" +msgstr "基于工时表的工资条" + +#: hrms/payroll/report/salary_register/salary_register.py:113 +msgid "Salary Slip ID" +msgstr "工资条编号" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "工资条假期" + +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "工资条贷款" + +#. Label of the salary_slip_reference (Link) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Salary Slip Reference" +msgstr "工资条参考" + +#. Label of the timesheets (Table) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "工资条工时表" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:97 +msgid "Salary Slip already exists for {0} for the given dates" +msgstr "员工{0}的工资条在指定日期已存在" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:290 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "工资条创建已加入队列,可能需要几分钟" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:121 +msgid "Salary Slip not found." +msgstr "未找到工资条。" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:336 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "员工{0}的工资条已在本周期创建" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:342 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "员工{0}的工资条已关联工时表{1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:335 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "工资条提交已加入队列,可能需要几分钟" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1525 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "工资条{0}处理失败,关联薪资条目{1}" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:117 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "工资条{0}处理失败。解决{1}后重试{0}" + +#: frontend/src/views/salary_slip/Dashboard.vue:2 +msgid "Salary Slips" +msgstr "工资条列表" + +#. Label of the salary_slips_created (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Created" +msgstr "已创建工资条" + +#. Label of the salary_slips_submitted (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Salary Slips Submitted" +msgstr "已提交工资条" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1567 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "员工{}的工资条已存在,本次薪资处理将跳过" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1592 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "已提交{0}至{1}期间的工资条" + +#. Label of the salary_structure (Link) field in DocType 'Arrear' +#. Label of the salary_structure (Link) field in DocType 'Bulk Salary Structure +#. Assignment' +#. Label of the salary_structure (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of the salary_structure (Link) field in DocType 'Salary Structure +#. Assignment' +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/arrear/arrear.json +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +#: hrms/payroll/doctype/salary_component/salary_component.js:31 +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure" +msgstr "薪资结构" + +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.js:8 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Structure Assignment" +msgstr "薪资结构分配" + +#: hrms/public/js/utils/payroll_utils.js:31 +msgid "Salary Structure Assignment field" +msgstr "薪资结构分配字段" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:46 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "员工薪资结构分配已存在" + +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:223 +msgid "Salary Structure Assignment not found for employee {0} on date {1}" +msgstr "未找到员工{0}在日期{1}的薪资结构分配" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:438 +msgid "Salary Structure Missing" +msgstr "缺失薪资结构" + +#: hrms/regional/india/utils.py:29 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "提交{0}前需先提交薪资结构" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:92 +msgid "Salary Structure not assigned for employee {0} for date {1}" +msgstr "员工{0}在日期{1}未分配薪资结构" + +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:70 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "薪资结构{0}不属于公司{1}" + +#: hrms/payroll/doctype/salary_component/salary_component.js:150 +msgid "Salary Structures updated successfully" +msgstr "薪资结构更新成功" + +#. Label of the salary_withholding (Link) field in DocType 'Salary Slip' +#. Name of a DocType +#. Label of a Link in the Payroll Workspace +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +#: hrms/payroll/workspace/payroll/payroll.json +msgid "Salary Withholding" +msgstr "薪资代扣" + +#. Label of the salary_withholding_cycle (Data) field in DocType 'Salary Slip' +#. Name of a DocType +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json +msgid "Salary Withholding Cycle" +msgstr "薪资代扣周期" + +#: hrms/payroll/doctype/salary_withholding/salary_withholding.py:39 +msgid "Salary Withholding {0} already exists for employee {1} for the selected period" +msgstr "员工{1}在选定期间已存在薪资代扣{0}" + +#: hrms/hr/doctype/leave_application/leave_application.py:348 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "薪资已在{0}至{1}期间处理,请假申请期间不可在此范围内" + +#. Description of the 'Earnings & Deductions' (Tab Break) field in DocType +#. 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Salary breakup based on Earning and Deduction." +msgstr "基于收入与扣除项的薪资明细" + +#: hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py:15 +msgid "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." +msgstr "未设置公积金、附加公积金或公积金贷款类型的工资组件。" + +#. Description of the 'Applicable Earnings Component' (Table MultiSelect) field +#. in DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Salary components should be part of the Salary Structure." +msgstr "薪资组件应属于薪资结构的一部分" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2710 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "工资条邮件已加入发送队列,查看{0}了解状态" + +#. Label of the sanctioned_amount (Currency) field in DocType 'Expense Claim +#. Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Sanctioned Amount" +msgstr "批准金额" + +#. Label of the base_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim Detail' +#: hrms/hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Sanctioned Amount (Company Currency)" +msgstr "" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:545 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "行号{0}中批准金额不可超过报销金额" + +#. Label of the scheduled_on (Date) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Scheduled On" +msgstr "安排日期" + +#. Label of the score_earned (Float) field in DocType 'Appraisal Goal' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Score Earned" +msgstr "获得分数" + +#: hrms/hr/doctype/appraisal/appraisal.js:131 +msgid "Score must be less than or equal to 5" +msgstr "得分必须小于等于5" + +#: hrms/hr/doctype/appraisal/appraisal.js:104 +msgid "Scores" +msgstr "得分列表" + +#: hrms/www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "搜索职位" + +#: hrms/hr/doctype/overtime_type/overtime_type.py:16 +msgid "Select Applicable Components for Overtime Type" +msgstr "选择加班类型适用的组件" + +#: hrms/hr/doctype/interview/interview.js:209 +msgid "Select Interview Round First" +msgstr "请先选择面试轮次" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.js:49 +msgid "Select Interview first" +msgstr "请先选择面试" + +#. Label of the month_for_lwp_reversal (Select) field in DocType 'Payroll +#. Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Select Month for LWP Reversal" +msgstr "选择LWP冲销月份" + +#. Description of the 'Payment Account' (Link) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Select Payment Account to make Bank Entry" +msgstr "选择支付账户以创建银行分录" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1730 +msgid "Select Payroll Frequency." +msgstr "选择薪资频率" + +#: frontend/src/views/salary_slip/Dashboard.vue:23 +msgid "Select Payroll Period" +msgstr "选择薪资周期" + +#: hrms/hr/employee_property_update.js:109 +msgid "Select Property" +msgstr "选择属性" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:134 +msgid "Select Shift Requests" +msgstr "选择班次申请" + +#. Label of the select_terms (Link) field in DocType 'Job Offer' +#: hrms/hr/doctype/job_offer/job_offer.json +msgid "Select Terms and Conditions" +msgstr "选择条款与条件" + +#. Label of the select_users (Section Break) field in DocType 'Daily Work +#. Summary Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Select Users" +msgstr "选择用户" + +#: hrms/hr/doctype/expense_claim/expense_claim.js:566 +msgid "Select an employee to get the employee advance." +msgstr "选择员工以获取预支款" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:237 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "选择需要分配假期的员工" + +#: hrms/hr/doctype/leave_application/leave_application.js:300 +msgid "Select the Employee." +msgstr "选择员工" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:242 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "选择假期类型如病假、特权假、事假等" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:254 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "选择本假期分配过期日期" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.js:249 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "选择本假期分配生效日期" + +#: hrms/hr/doctype/leave_application/leave_application.js:317 +msgid "Select the end date for your Leave Application." +msgstr "选择请假申请截止日期" + +#. Description of the 'Applicable Salary Components' (Table MultiSelect) field +#. in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Select the salary components whose total will be used from the salary slip to calculate the hourly overtime rate." +msgstr "选择将从工资条中提取总额用于计算小时加班费的工资组件。" + +#: hrms/hr/doctype/leave_application/leave_application.js:312 +msgid "Select the start date for your Leave Application." +msgstr "选择请假申请开始日期" + +#. Description of the 'Enabled' (Check) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Select this if you want shift assignments to be automatically created indefinitely." +msgstr "选择此项将无限期自动创建班次分配" + +#: hrms/hr/doctype/leave_application/leave_application.js:305 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "选择员工申请的假期类型如病假、特权假、事假等" + +#: hrms/hr/doctype/leave_application/leave_application.js:327 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "选择您的假期审批人" + +#. Label of the self_appraisal_tab (Tab Break) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.py:33 +msgid "Self Appraisal" +msgstr "自我评估" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:163 +msgid "Self Appraisal Pending: {0}" +msgstr "待自我评估:{0}" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:89 +msgid "Self Appraisal Score" +msgstr "自我评估得分" + +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:56 +#: hrms/hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "自我评分" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Self-Study" +msgstr "自主学习" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:121 +msgid "Self-approval for Expense Claims is not allowed" +msgstr "不允许费用报销的自我审批" + +#: hrms/hr/doctype/leave_application/leave_application.py:847 +msgid "Self-approval for leaves is not allowed" +msgstr "禁止自我审批假期" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Seminar" +msgstr "研讨会" + +#. Label of the send_emails_at (Select) field in DocType 'Daily Work Summary +#. Group' +#: hrms/hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgid "Send Emails At" +msgstr "邮件发送时间" + +#: hrms/hr/doctype/exit_interview/exit_interview.js:11 +msgid "Send Exit Questionnaire" +msgstr "发送离职问卷" + +#: hrms/hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "批量发送离职问卷" + +#. Label of the send_interview_feedback_reminder (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Feedback Reminder" +msgstr "发送面试反馈提醒" + +#. Label of the send_interview_reminder (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Interview Reminder" +msgstr "发送面试提醒" + +#. Label of the send_leave_notification (Check) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Send Leave Notification" +msgstr "发送休假通知" + +#. Label of the sender_copy (Link) field in DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Sender Copy" +msgstr "发件人副本" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:139 +msgid "Sending Failed due to missing email information for employee(s): {1}" +msgstr "发送失败,缺失员工邮箱信息:{1}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:135 +msgid "Sent Successfully: {0}" +msgstr "成功发送:{0}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:44 +#: hrms/public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "九月" + +#. Label of the table_for_activity (Section Break) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Activities" +msgstr "离职活动" + +#. Label of the boarding_begins_on (Date) field in DocType 'Employee +#. Separation' +#: hrms/hr/doctype/employee_separation/employee_separation.json +msgid "Separation Begins On" +msgstr "离职流程开始日期" + +#. Label of the service_details (Section Break) field in DocType 'Vehicle Log' +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +msgid "Service Details" +msgstr "服务明细" + +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "服务费用" + +#. Description of the 'Current Work Experience' (Table) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "将 \"从(年份) \"和 \"到(年份) \"设置为 0 表示无上限和下限。" + +#. Label of the set_assignment_details_section (Section Break) field in DocType +#. 'Bulk Salary Structure Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json +msgid "Set Assignment Details" +msgstr "设置分配明细" + +#. Label of the allocate_leaves_section (Section Break) field in DocType 'Leave +#. Control Panel' +#: hrms/hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Set Leave Details" +msgstr "设置休假明细" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:79 +msgid "Set Relieving Date for Employee: {0}" +msgstr "设置员工{0}的离职日期" + +#. Description of the 'Get Employees' (Section Break) field in DocType +#. 'Employee Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Set filters to fetch employees" +msgstr "设置筛选条件获取员工" + +#. Description of the 'Opening Balances' (Section Break) field in DocType +#. 'Salary Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Set opening balances for earnings and taxes from the previous employer" +msgstr "设置前雇主收入与税费期初余额" + +#. Description of the 'Filters' (Section Break) field in DocType 'Appraisal +#. Cycle' +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.json +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "设置可选筛选条件获取被考核人列表" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:702 +msgid "Set the default account for the {0} {1}" +msgstr "为{0}{1}设置默认账户" + +#. Label of the frequency (Select) field in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Set the frequency for holiday reminders" +msgstr "设置假期提醒频率" + +#. Description of the 'Employee Promotion Details' (Section Break) field in +#. DocType 'Employee Promotion' +#: hrms/hr/doctype/employee_promotion/employee_promotion.json +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "设置晋升提交时需更新的员工主数据属性" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:205 +msgid "Set the status to {0} if required." +msgstr "必要时设置状态为{0}" + +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:200 +msgid "Set {0} for selected employees" +msgstr "为选定员工设置{0}" + +#: hrms/hr/doctype/exit_interview/exit_interview.py:128 +msgid "Settings Missing" +msgstr "缺失配置" + +#: frontend/src/components/ExpenseAdvancesTable.vue:4 +msgid "Settle against Advances" +msgstr "冲抵预支款" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:55 +msgid "Settle all Payables and Receivables before submission" +msgstr "提交前需结清所有应收应付" + +#: hrms/hr/utils.py:773 +msgid "Shared document with the user {0} with 'Submit' permission" +msgstr "已与用户{0}共享文档并授予“提交”权限" + +#. Name of a Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "班次与考勤" + +#. Label of the shift_actual_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual End" +msgstr "班次实际结束" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "班次实际结束时间" + +#. Label of the shift_actual_start (Datetime) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Actual Start" +msgstr "班次实际开始" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "班次实际开始时间" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Assignment" +msgstr "班次分配" + +#. Label of the shift_assignment_details_section (Section Break) field in +#. DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Assignment Details" +msgstr "班次分配明细" + +#: frontend/src/views/attendance/ShiftAssignmentList.vue:5 +msgid "Shift Assignment History" +msgstr "班次分配历史" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +#: hrms/public/js/utils/index.js:240 hrms/public/js/utils/index.js:262 +msgid "Shift Assignment Tool" +msgstr "班次分配工具" + +#: hrms/hr/doctype/shift_request/shift_request.py:61 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "已为员工{1}创建班次分配{0}" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:135 +msgid "Shift Assignments created for the schedule between {0} and {1} via background job" +msgstr "已通过后台任务为{0}至{1}期间的排班创建班次分配" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/report/shift_attendance/shift_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "班次考勤" + +#. Label of the shift_details_section (Section Break) field in DocType 'Shift +#. Assignment' +#. Label of the schedule_settings_section (Section Break) field in DocType +#. 'Shift Schedule Assignment' +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Details" +msgstr "班次详情" + +#. Label of the shift_end (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift End" +msgstr "班次结束" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "班次结束时间" + +#. Label of the shift_location (Link) field in DocType 'Shift Assignment' +#. Label of the shift_location (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_location (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_location/shift_location.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Location" +msgstr "班次地点" + +#. Label of the shift_request (Link) field in DocType 'Shift Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:220 +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Request" +msgstr "班次申请" + +#: hrms/setup.py:139 hrms/setup.py:260 +msgid "Shift Request Approver" +msgstr "班次申请审批人" + +#. Label of the shift_request_filters_section (Section Break) field in DocType +#. 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Request Filters" +msgstr "班次申请筛选器" + +#. Description of the 'From Date' (Date) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests ending before this date will be excluded." +msgstr "此日期前结束的班次申请将被排除" + +#. Description of the 'To Date' (Date) field in DocType 'Shift Assignment Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "Shift Requests starting after this date will be excluded." +msgstr "此日期后开始的班次申请将被排除" + +#. Label of the shift_schedule (Link) field in DocType 'Shift Assignment Tool' +#. Name of a DocType +#. Label of the shift_schedule (Link) field in DocType 'Shift Schedule +#. Assignment' +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule" +msgstr "班次表" + +#. Label of the shift_schedule_assignment (Link) field in DocType 'Shift +#. Assignment' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Schedule Assignment" +msgstr "班次表分配" + +#. Label of the shift_settings_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Shift Settings" +msgstr "班次设置" + +#. Label of the shift_start (Datetime) field in DocType 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Start" +msgstr "班次开始" + +#: hrms/hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "班次开始时间" + +#. Label of the shift_status (Select) field in DocType 'Shift Schedule +#. Assignment' +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.json +msgid "Shift Status" +msgstr "班次状态" + +#. Label of the shift_timings_section (Section Break) field in DocType +#. 'Employee Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Shift Timings" +msgstr "班次时间" + +#: hrms/public/js/utils/index.js:248 hrms/public/js/utils/index.js:256 +#: hrms/public/js/utils/index.js:270 hrms/public/js/utils/index.js:277 +msgid "Shift Tools" +msgstr "班次工具" + +#. Label of the shift_type (Link) field in DocType 'Shift Assignment' +#. Label of the shift_type (Link) field in DocType 'Shift Assignment Tool' +#. Label of the shift_type_filter (Link) field in DocType 'Shift Assignment +#. Tool' +#. Label of the shift_type (Link) field in DocType 'Shift Request' +#. Label of the shift_type (Link) field in DocType 'Shift Schedule' +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: frontend/src/views/attendance/ShiftAssignmentList.vue:24 +#: frontend/src/views/attendance/ShiftRequestList.vue:42 +#: hrms/hr/doctype/shift_assignment/shift_assignment.json +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:230 +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +#: hrms/hr/doctype/shift_request/shift_request.json +#: hrms/hr/doctype/shift_schedule/shift_schedule.json +#: hrms/hr/doctype/shift_type/shift_type.json +#: hrms/hr/report/shift_attendance/shift_attendance.js:28 +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Type" +msgstr "班次类型" + +#: hrms/hr/doctype/shift_schedule_assignment/shift_schedule_assignment.py:21 +msgid "Shift assignments for {0} after {1} are already created. Please change {2} date to a date later than {3} {4}" +msgstr "{0}在{1}之后的班次分配已创建。请将{2}日期更改为晚于{3}{4}的日期" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:42 +msgid "Shift has been successfully updated to {0}." +msgstr "班次已成功更新为{0}" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "班次列表" + +#: hrms/hr/doctype/job_offer/job_offer.js:51 +msgid "Show Employee" +msgstr "显示员工" + +#. Label of the show_leave_balances_in_salary_slip (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Show Leave Balances in Salary Slip" +msgstr "工资条显示假期余额" + +#. Label of the show_leaves_of_all_department_members_in_calendar (Check) field +#. in DocType 'HR Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "日历显示部门全体成员假期" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:204 +msgid "Show Salary Slip" +msgstr "显示工资条" + +#: hrms/www/jobs/index.html:121 +msgid "Showing" +msgstr "显示中" + +#: hrms/setup.py:365 hrms/setup.py:366 +msgid "Sick Leave" +msgstr "病假" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:120 +msgid "Single Assignment" +msgstr "单次分配" + +#. Label of the skill (Link) field in DocType 'Designation Skill' +#. Label of the skill (Link) field in DocType 'Employee Skill' +#. Label of the skill (Link) field in DocType 'Expected Skill Set' +#. Name of a DocType +#. Label of the skill (Link) field in DocType 'Skill Assessment' +#: hrms/hr/doctype/designation_skill/designation_skill.json +#: hrms/hr/doctype/employee_skill/employee_skill.json +#: hrms/hr/doctype/expected_skill_set/expected_skill_set.json +#: hrms/hr/doctype/skill/skill.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill" +msgstr "技能" + +#. Label of the section_break_4 (Section Break) field in DocType 'Interview +#. Feedback' +#. Name of a DocType +#: hrms/hr/doctype/interview/interview.js:138 +#: hrms/hr/doctype/interview_feedback/interview_feedback.json +#: hrms/hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "技能评估" + +#. Label of the skill_name (Data) field in DocType 'Skill' +#: hrms/hr/doctype/skill/skill.json +msgid "Skill Name" +msgstr "技能名称" + +#. Label of the skills_section (Section Break) field in DocType 'Employee Skill +#. Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json hrms/setup.py:176 +msgid "Skills" +msgstr "技能列表" + +#. Label of the skip_auto_attendance (Check) field in DocType 'Employee +#. Checkin' +#: hrms/hr/doctype/employee_checkin/employee_checkin.json +msgid "Skip Auto Attendance" +msgstr "跳过自动考勤" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:326 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "以下员工薪资结构分配记录已存在,跳过分配:{0}" + +#. Label of the source_and_rating_section (Section Break) field in DocType 'Job +#. Applicant' +#: hrms/hr/doctype/job_applicant/job_applicant.json +msgid "Source and Rating" +msgstr "来源与评分" + +#: hrms/api/roster.py:100 +msgid "Source and target shifts cannot be the same" +msgstr "源班次与目标班次不可相同" + +#. Label of the sponsored_amount (Currency) field in DocType 'Travel Request +#. Costing' +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Sponsored Amount" +msgstr "赞助金额" + +#. Label of the staffing_details (Table) field in DocType 'Staffing Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Staffing Details" +msgstr "人员配置明细" + +#. Label of the staffing_plan (Link) field in DocType 'Job Opening' +#. Name of a DocType +#. Label of a Link in the Recruitment Workspace +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +#: hrms/hr/report/recruitment_analytics/recruitment_analytics.py:24 +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "Staffing Plan" +msgstr "人员配置计划" + +#. Name of a DocType +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "人员配置计划明细" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:71 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "职级{1}已存在人员配置计划{0}" + +#. Label of the standard_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Standard Multiplier" +msgstr "标准乘数" + +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Income Tax Slab' +#. Label of the standard_tax_exemption_amount (Currency) field in DocType +#. 'Salary Slip' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Standard Tax Exemption Amount" +msgstr "标准免税额度" + +#. Label of the standard_working_hours (Float) field in DocType 'Attendance' +#. Label of the standard_working_hours (Float) field in DocType 'HR Settings' +#. Label of the standard_working_hours (Float) field in DocType 'Overtime +#. Details' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/hr_settings/hr_settings.json +#: hrms/hr/doctype/overtime_details/overtime_details.json +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:36 +#: hrms/hr/report/project_profitability/project_profitability.py:102 +msgid "Standard Working Hours" +msgstr "标准工时" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1796 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "起止日期不在有效薪资周期内,无法计算{0}" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:27 +msgid "Start date cannot be greater than end date" +msgstr "开始日期不能大于结束日期" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:50 +msgid "Start date cannot be greater than end date." +msgstr "开始日期不能大于结束日期。" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:239 +msgid "Start date: {0}" +msgstr "开始日期:{0}" + +#: hrms/hr/doctype/shift_type/shift_type.py:49 +msgid "Start time and end time cannot be same." +msgstr "开始与结束时间不可相同" + +#. Label of the statistical_component (Check) field in DocType 'Salary +#. Component' +#. Label of the statistical_component (Check) field in DocType 'Salary Detail' +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Statistical Component" +msgstr "统计组件" + +#. Label of the half_day_status (Select) field in DocType 'Attendance' +#. Label of the half_day_status (Select) field in DocType 'Employee Attendance +#. Tool' +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Status for Other Half" +msgstr "其他部分状态" + +#: hrms/setup.py:408 +msgid "Stock Options" +msgstr "股票期权" + +#. Description of the 'Block Days' (Section Break) field in DocType 'Leave +#. Block List' +#: hrms/hr/doctype/leave_block_list/leave_block_list.json +msgid "Stop users from making Leave Applications on following days." +msgstr "禁止用户在下述日期申请休假" + +#. Option for the 'Determine Check-in and Check-out' (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "严格依据员工签到日志类型" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:267 +msgid "Structures have been assigned successfully" +msgstr "结构分配成功" + +#. Label of the submission_date (Date) field in DocType 'Employee Tax Exemption +#. Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Submission Date" +msgstr "提交日期" + +#: hrms/hr/doctype/leave_policy_assignment/leave_policy_assignment.py:475 +msgid "Submission Failed" +msgstr "提交失败" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "Submission of {0} before {1} is not allowed" +msgstr "禁止在{1}前提交{0}" + +#: hrms/hr/doctype/interview/interview.js:57 +#: hrms/hr/doctype/interview/interview.js:61 +#: hrms/hr/doctype/interview/interview.js:133 +msgid "Submit Feedback" +msgstr "提交反馈" + +#: hrms/hr/doctype/exit_interview/exit_questionnaire_notification_template.html:14 +msgid "Submit Now" +msgstr "立即提交" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:90 +msgid "Submit Overtime Slips" +msgstr "提交加班单" + +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "提交证明" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:171 +msgid "Submit Salary Slip" +msgstr "提交工资条" + +#: hrms/hr/doctype/leave_application/leave_application.js:108 +msgid "Submit this Leave Application to confirm." +msgstr "提交请假申请以确认" + +#: hrms/hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "提交以创建员工档案" + +#. Label of the submitted_via_payroll_entry (Check) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Submitted via Payroll Entry" +msgstr "通过薪资录入提交" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:430 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "提交工资条并创建日记账分录..." + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.py:1647 +msgid "Submitting Salary Slips..." +msgstr "正在提交工资条..." + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:161 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "子公司已规划{1}个空缺岗位,预算{2}。{0}的人员配置计划应为{3}分配更多空缺和预算" + +#: hrms/hr/utils.py:949 +msgid "Successfully created {0} for employees:" +msgstr "成功为员工创建{0}:" + +#: hrms/public/js/utils/index.js:160 +msgid "Successfully {0} {1} for the following employees:" +msgstr "成功为以下员工{0}{1}:" + +#. Option for the 'Calculate Gratuity Amount Based On' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Sum of all previous slabs" +msgstr "所有前期税级总和" + +#: hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py:44 +msgid "Sum of benefit amounts {0} exceeds maximum limit of {1}" +msgstr "福利金额总和{0}超过最大限额{1}" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:108 +msgid "Summarized View" +msgstr "汇总视图" + +#: hrms/payroll/doctype/salary_component/salary_component.js:99 +msgid "Sync {0}" +msgstr "同步{0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1313 +msgid "Syntax error" +msgstr "语法错误" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2533 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "所得税税级条件语法错误:{0}" + +#. Option for the 'Work Experience Calculation Method' (Select) field in +#. DocType 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Take Exact Completed Years" +msgstr "按整年计算" + +#. Name of a Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "税务与福利" + +#. Label of the tax_deducted_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:162 +msgid "Tax Deducted Till Date" +msgstr "截至当前已扣税款" + +#. Label of the exemption_category (Link) field in DocType 'Employee Tax +#. Exemption Sub Category' +#: hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Tax Exemption Category" +msgstr "免税类别" + +#. Label of the section_break_8 (Tab Break) field in DocType 'Employee Tax +#. Exemption Declaration' +#. Label of the tax_exemption_declaration (Currency) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Tax Exemption Declaration" +msgstr "免税申报" + +#. Label of the tax_exemption_proofs (Table) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Tax Exemption Proofs" +msgstr "免税证明" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "税务设置" + +#. Label of the tax_on_additional_salary (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on additional salary" +msgstr "附加薪资税费" + +#. Label of the tax_on_flexible_benefit (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Tax on flexible benefit" +msgstr "弹性福利税费" + +#. Label of the taxable_earnings_till_date (Currency) field in DocType 'Salary +#. Structure Assignment' +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:161 +msgid "Taxable Earnings Till Date" +msgstr "截至当前应税收入" + +#. Label of the tax_relief_limit (Currency) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Income Relief Threshold Limit" +msgstr "应税收入减免阈值限额" + +#. Name of a DocType +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "应税薪资税级" + +#. Label of the taxable_salary_slabs_section (Section Break) field in DocType +#. 'Income Tax Slab' +#. Label of the slabs (Table) field in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxable Salary Slabs" +msgstr "应税薪资税级" + +#. Label of the taxes_and_charges_sb (Section Break) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseTaxesTable.vue:4 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Taxes & Charges" +msgstr "税费与附加" + +#. Label of the taxes_and_charges_on_income_tax_section (Section Break) field +#. in DocType 'Income Tax Slab' +#: hrms/payroll/doctype/income_tax_slab/income_tax_slab.json +msgid "Taxes and Charges on Income Tax" +msgstr "所得税相关税费及附加" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Taxi" +msgstr "出租车" + +#: frontend/src/views/employee_advance/List.vue:19 +msgid "Team Advances" +msgstr "团队预支" + +#: frontend/src/views/expense_claim/List.vue:19 +msgid "Team Claims" +msgstr "团队报销" + +#: frontend/src/views/leave/List.vue:19 +msgid "Team Leaves" +msgstr "团队假期" + +#: frontend/src/components/RequestPanel.vue:36 +msgid "Team Requests" +msgstr "团队申请" + +#: hrms/hr/page/team_updates/team_updates.js:4 +msgid "Team Updates" +msgstr "团队动态" + +#. Name of a Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Tenure" +msgstr "" + +#. Success message of the job-application Web Form +#: hrms/hr/web_form/job_application/job_application.json +msgid "Thank you for applying." +msgstr "感谢您的申请。" + +#: hrms/overrides/company.py:131 +msgid "The currency of {0} should be same as the company's default currency. Please select another account." +msgstr "账户{0}的币种需与公司默认币种一致。请选择其他账户" + +#. Description of the 'Payroll Date' (Date) field in DocType 'Additional +#. Salary' +#: hrms/payroll/doctype/additional_salary/additional_salary.json +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "薪资组件金额计入工资条收入/扣除项的日期" + +#. Description of the 'Allocate on Day' (Select) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "The day of the month when leaves should be allocated" +msgstr "每月分配假期的日期" + +#: hrms/hr/doctype/leave_application/leave_application.py:391 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "申请日期为节假日,无需请假" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:64 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "{0}至{1}期间并非有效节假日" + +#: hrms/setup.py:130 +msgid "The first Approver in the list will be set as the default Approver." +msgstr "列表首位审批人将设为默认审批人" + +#: hrms/hr/doctype/leave_type/leave_type.py:51 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "单日假薪资扣除比例应在0到1之间" + +#. Description of the 'Fraction of Daily Salary for Half Day' (Float) field in +#. DocType 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "半日出勤需支付的日薪比例" + +#: hrms/hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the {0}. Please set {0} in {1}." +msgstr "本报告指标基于{0}计算,请在{1}设置{0}" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +msgid "The metrics for this report are calculated based on {0}. Please set {0} in {1}." +msgstr "本报告指标基于{0}计算,请在{1}设置{0}" + +#. Description of the 'Encrypt Salary Slips in Emails' (Check) field in DocType +#. 'Payroll Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "邮件发送的工资条将密码保护,密码根据密码策略生成" + +#. Description of the 'Late Entry Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "班次开始后签到视为迟到的时间(分钟)" + +#. Description of the 'Early Exit Grace Period' (Int) field in DocType 'Shift +#. Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "班次结束前签退视为早退的时间(分钟)" + +#. Description of the 'Begin check-in before shift start time (in minutes)' +#. (Int) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "班次开始前允许签到的时间范围" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Theory" +msgstr "理论" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:490 +msgid "There are more holidays than working days this month." +msgstr "本月节假日多于工作日" + +#: hrms/payroll/doctype/arrear/arrear.py:384 +msgid "There are no arrear differences between existing and new salary structure components." +msgstr "现有与新薪资结构组件之间无欠薪差异。" + +#: hrms/hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "人员配置计划{0}下无空缺岗位" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:42 +#: hrms/payroll/doctype/employee_incentive/employee_incentive.py:20 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:207 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Structure." +msgstr "" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:392 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "无员工使用薪资结构{0}。分配{1}给员工以预览工资条" + +#. Description of the 'Is Optional Leave' (Check) field in DocType 'Leave Type' +#: hrms/hr/doctype/leave_type/leave_type.json +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "此类假期为公司允许的节假日,员工可自主选择是否休假" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:130 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "此操作将阻止修改关联的考核反馈/目标" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.js:9 +msgid "This check-in is outside assigned shift hours and will not be considered for attendance. If a shift is assigned, adjust its time window and Fetch Shift again." +msgstr "当前签到时间超出班次时段不计入考勤。若已分配班次,请调整时间后重新获取班次" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "本补休假自{0}起生效" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:49 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "该员工已有相同时间戳记录{0}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1321 +msgid "This error can be due to invalid formula or condition." +msgstr "可能由无效公式或条件导致" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1314 +msgid "This error can be due to invalid syntax." +msgstr "可能由语法错误导致" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:1307 +msgid "This error can be due to missing or deleted field." +msgstr "可能由字段缺失或删除导致" + +#: hrms/hr/doctype/leave_type/leave_type.js:28 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "本字段用于设置员工可申请的最大连续休假天数" + +#: hrms/hr/doctype/leave_type/leave_type.js:21 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "本字段用于在创建休假政策时设置该假期类型的年度最大分配天数" + +#: hrms/overrides/dashboard_overrides.py:60 +msgid "This is based on the attendance of this Employee" +msgstr "基于该员工的考勤记录" + +#: hrms/www/hrms.py:19 +msgid "This method is only meant for developer mode" +msgstr "本方法仅适用于开发者模式" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:168 +msgid "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" +msgstr "这将覆盖工资单中的税务组件{0},且不再根据所得税税率表计算税额" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:421 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "将提交工资单并创建应计日记账分录。是否继续?" + +#. Description of the 'Allow check-out after shift end time (in minutes)' (Int) +#. field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "班次结束后仍允许签退计入考勤的时间段" + +#. Description of the 'Time to Fill' (Duration) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time taken to fill the open positions" +msgstr "填补空缺职位的耗时" + +#. Label of the time_to_fill (Duration) field in DocType 'Job Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Time to Fill" +msgstr "填补时间" + +#. Label of the timelines_tab (Section Break) field in DocType 'Job +#. Requisition' +#: hrms/hr/doctype/job_requisition/job_requisition.json +msgid "Timelines" +msgstr "时间线" + +#. Label of the timesheets_section (Section Break) field in DocType 'Salary +#. Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Timesheet Details" +msgstr "工时明细" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "时间安排" + +#. Label of the to_amount (Currency) field in DocType 'Taxable Salary Slab' +#: hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "To Amount" +msgstr "目标金额" + +#: hrms/hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "截止日期应晚于起始日期" + +#. Label of the to_user (Link) field in DocType 'PWA Notification' +#: hrms/hr/doctype/pwa_notification/pwa_notification.json +msgid "To User" +msgstr "接收用户" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:104 +msgid "To allow this, enable {0} under {1}." +msgstr "要允许此操作,请在{1}下启用{0}" + +#: hrms/hr/doctype/leave_application/leave_application.js:322 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "要申请半天假,请勾选'半天假'并选择半天假日期" + +#: hrms/hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "截止日期不可等于或早于起始日期" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:93 +msgid "To date can not be greater than employee's relieving date." +msgstr "截止日期不可晚于员工离职日期" + +#: hrms/hr/utils.py:193 +msgid "To date can not be less than from date" +msgstr "截止日期不可早于起始日期" + +#: hrms/hr/utils.py:199 +msgid "To date can not greater than employee's relieving date" +msgstr "截止日期不可超过员工离职日期" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:180 +#: hrms/hr/doctype/leave_application/leave_application.py:184 +msgid "To date cannot be before from date" +msgstr "截止日期不可早于起始日期" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:179 +msgid "To overwrite the salary component amount for a tax component, please enable {0}" +msgstr "要覆盖税务组件的薪资组件金额,请启用{0}" + +#. Label of the to_year (Int) field in DocType 'Gratuity Rule Slab' +#: hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "To(Year)" +msgstr "至(年度)" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.js:35 +msgid "To(Year) year can not be less than From(year)" +msgstr "至(年度)不可早于起始年度" + +#: hrms/controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "今天是{0}的生日🎉" + +#: hrms/controllers/employee_reminders.py:261 +msgid "Today {0} at our Company! 🎉" +msgstr "今天是{0}在我司的纪念日!🎉" + +#: hrms/controllers/employee_reminders.py:241 +msgid "Today {0} completed {1} {2} at our Company! 🎉" +msgstr "" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:149 +msgid "Total Absent" +msgstr "总缺勤数" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:46 +msgid "Total Accrued" +msgstr "总计提额" + +#. Label of the total_actual_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Actual Amount" +msgstr "实际总金额" + +#. Label of the total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount" +msgstr "预支总金额" + +#. Label of the base_total_advance_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Advance Amount (Company Currency)" +msgstr "" + +#. Label of the total_allocated_leaves (Float) field in DocType 'Salary Slip +#. Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Total Allocated Leave(s)" +msgstr "总分配假期" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:7 +msgid "Total Allocated Leaves" +msgstr "总分配假期" + +#. Label of the total_amount_reimbursed (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Amount Reimbursed" +msgstr "已报销总金额" + +#: hrms/payroll/doctype/gratuity/gratuity.py:102 +msgid "Total Amount cannot be zero" +msgstr "总金额不可为零" + +#. Label of the total_asset_recovery_cost (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Asset Recovery Cost" +msgstr "资产回收总成本" + +#. Label of the total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: frontend/src/components/ExpenseClaimSummary.vue:9 +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount" +msgstr "申报总金额" + +#. Label of the base_total_claimed_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Claimed Amount (Company Currency)" +msgstr "" + +#. Label of the lwp_days (Float) field in DocType 'Payroll Correction' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +msgid "Total Days Without Pay" +msgstr "无薪总天数" + +#. Label of the total_declared_amount (Currency) field in DocType 'Employee Tax +#. Exemption Declaration' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Total Declared Amount" +msgstr "申报总金额" + +#. Label of the total_deduction (Currency) field in DocType 'Salary Slip' +#. Label of the total_deduction (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_structure/salary_structure.json +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:148 +#: hrms/payroll/report/salary_register/salary_register.py:240 +msgid "Total Deduction" +msgstr "总扣除额" + +#. Label of the base_total_deduction (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Deduction (Company Currency)" +msgstr "总扣除额(公司币种)" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:174 +msgid "Total Early Exits" +msgstr "早退总次数" + +#. Label of the total_earning (Currency) field in DocType 'Salary Structure' +#: hrms/payroll/doctype/salary_structure/salary_structure.json +msgid "Total Earning" +msgstr "总收入" + +#. Label of the total_earnings (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Earnings" +msgstr "总收入" + +#. Label of the total_estimated_budget (Currency) field in DocType 'Staffing +#. Plan' +#: hrms/hr/doctype/staffing_plan/staffing_plan.json +msgid "Total Estimated Budget" +msgstr "总预算估算" + +#. Label of the total_estimated_cost (Currency) field in DocType 'Staffing Plan +#. Detail' +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Total Estimated Cost" +msgstr "总成本估算" + +#. Label of the total_exchange_gain_loss (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Exchange Gain/Loss" +msgstr "" + +#. Label of the total_exemption_amount (Currency) field in DocType 'Employee +#. Tax Exemption Declaration' +#. Label of the exemption_amount (Currency) field in DocType 'Employee Tax +#. Exemption Proof Submission' +#: hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Total Exemption Amount" +msgstr "免税额总计" + +#: hrms/setup.py:299 +msgid "Total Expense Claim (via Expense Claim)" +msgstr "费用报销总额(通过费用报销单)" + +#: hrms/setup.py:290 +msgid "Total Expense Claim (via Expense Claims)" +msgstr "费用报销总额(通过费用报销)" + +#. Label of the total_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:79 +msgid "Total Goal Score" +msgstr "目标总分" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:141 +msgid "Total Gross Pay" +msgstr "应发工资总额" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:66 +msgid "Total Hours (T)" +msgstr "总工时(T)" + +#. Label of the total_income_tax (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total Income Tax" +msgstr "所得税总额" + +#: hrms/setup.py:802 +msgid "Total Interest Amount" +msgstr "利息总金额" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:168 +msgid "Total Late Entries" +msgstr "迟到总次数" + +#. Label of the total_leave_days (Float) field in DocType 'Leave Application' +#: hrms/hr/doctype/leave_application/leave_application.json +msgid "Total Leave Days" +msgstr "总请假天数" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:148 +msgid "Total Leaves" +msgstr "总假期" + +#: hrms/hr/report/leave_ledger/leave_ledger.py:192 +msgid "Total Leaves ({0})" +msgstr "总假期({0})" + +#. Label of the total_leaves_allocated (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Allocated" +msgstr "总分配假期" + +#. Label of the total_leaves_encashed (Float) field in DocType 'Leave +#. Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Total Leaves Encashed" +msgstr "已兑现总假期" + +#: hrms/setup.py:816 +msgid "Total Loan Repayment" +msgstr "贷款偿还总额" + +#: hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:155 +msgid "Total Net Pay" +msgstr "实发工资总额" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:228 +msgid "Total Non-Billed Hours" +msgstr "不计费总工时" + +#. Label of the total_overtime_duration (Float) field in DocType 'Overtime +#. Slip' +#: hrms/hr/doctype/overtime_slip/overtime_slip.json +msgid "Total Overtime Duration" +msgstr "总加班时长" + +#. Label of the total_payable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Payable Amount" +msgstr "应付总金额" + +#. Label of the total_payment (Currency) field in DocType 'Salary Slip Loan' +#: hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Total Payment" +msgstr "总付款额" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:52 +msgid "Total Payout" +msgstr "总支付额" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:143 +msgid "Total Present" +msgstr "总出勤数" + +#: hrms/setup.py:793 +msgid "Total Principal Amount" +msgstr "本金总额" + +#. Label of the total_receivable_amount (Currency) field in DocType 'Full and +#. Final Statement' +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.json +msgid "Total Receivable Amount" +msgstr "应收总金额" + +#: hrms/hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "总离职人数" + +#. Label of the total_sanctioned_amount (Currency) field in DocType 'Expense +#. Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount" +msgstr "批准总金额" + +#. Label of the base_total_sanctioned_amount (Currency) field in DocType +#. 'Expense Claim' +#: hrms/hr/doctype/expense_claim/expense_claim.json +msgid "Total Sanctioned Amount (Company Currency)" +msgstr "" + +#. Label of the total_score (Float) field in DocType 'Employee Performance +#. Feedback' +#: hrms/hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Total Score" +msgstr "总分" + +#. Label of the self_score (Float) field in DocType 'Appraisal' +#: hrms/hr/doctype/appraisal/appraisal.json +msgid "Total Self Score" +msgstr "自评总分" + +#: hrms/hr/doctype/expense_claim/expense_claim.py:539 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "预支总额不可超过批准总额" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:73 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "分配假期总数超过员工{1}在期间内{0}假期类型的最大可分配数" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:162 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "分配假期总数{0}不可少于期间内已批准假期数{1}" + +#. Label of the total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words" +msgstr "大写金额" + +#. Label of the base_total_in_words (Data) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total in words (Company Currency)" +msgstr "大写金额(公司币种)" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:367 +msgid "Total leaves allocated cannot exceed annual allocation of {0}." +msgstr "分配假期总数不可超过年度分配额{0}" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:253 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "假期类型{0}必须填写分配假期总数" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:464 +msgid "Total of all employee benefits cannot be greater that Max Benefits Amount {0}" +msgstr "所有员工福利总额不能大于最大福利金额{0}" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary +#. Detail' +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "本年度(薪资周期或会计年度)至当前工资单截止日,该员工本组件累计薪资总额" + +#. Description of the 'Month To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "本月至当前工资单截止日,该员工累计薪资总额" + +#. Description of the 'Year To Date' (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "本年度(薪资周期或会计年度)至当前工资单截止日,该员工累计薪资总额" + +#: hrms/hr/doctype/appraisal/appraisal.py:156 hrms/mixins/appraisal.py:17 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "所有{0}的总权重必须为100%。当前为{1}%" + +#. Label of the total_working_days_per_year (Float) field in DocType 'Gratuity +#. Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Total working Days Per Year" +msgstr "年总工作日数" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:179 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "总工时不可超过最大工时{0}" + +#. Option for the 'Mode of Travel' (Select) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Train" +msgstr "培训" + +#. Label of the trainer_email (Data) field in DocType 'Training Event' +#. Label of the trainer_email (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Email" +msgstr "培训师邮箱" + +#. Label of the trainer_name (Data) field in DocType 'Training Event' +#. Label of the trainer_name (Data) field in DocType 'Training Feedback' +#. Label of the trainer_name (Data) field in DocType 'Training Program' +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_program/training_program.json +msgid "Trainer Name" +msgstr "培训师姓名" + +#. Label of the training (Link) field in DocType 'Employee Training' +#. Label of a Card Break in the Tenure Workspace +#: hrms/hr/doctype/employee_training/employee_training.json +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/overrides/dashboard_overrides.py:49 +msgid "Training" +msgstr "培训" + +#. Label of the training_date (Date) field in DocType 'Employee Training' +#: hrms/hr/doctype/employee_training/employee_training.json +msgid "Training Date" +msgstr "培训日期" + +#. Name of a DocType +#. Label of the training_event (Link) field in DocType 'Training Feedback' +#. Label of the training_event (Link) field in DocType 'Training Result' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/doctype/training_result/training_result.py:16 +#: hrms/hr/workspace/tenure/tenure.json +#: hrms/templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "培训活动" + +#. Name of a DocType +#: hrms/hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "培训活动员工" + +#: hrms/hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "培训活动:" + +#: hrms/hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "培训活动" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:16 +#: hrms/hr/doctype/training_feedback/training_feedback.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Feedback" +msgstr "培训反馈" + +#. Label of the training_program (Link) field in DocType 'Training Event' +#. Name of a DocType +#. Label of the training_program (Data) field in DocType 'Training Program' +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.json +#: hrms/hr/doctype/training_program/training_program.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Program" +msgstr "培训计划" + +#. Name of a DocType +#. Label of a Link in the Tenure Workspace +#: hrms/hr/doctype/training_event/training_event.js:10 +#: hrms/hr/doctype/training_result/training_result.json +#: hrms/hr/workspace/tenure/tenure.json +msgid "Training Result" +msgstr "培训结果" + +#. Name of a DocType +#: hrms/hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "培训结果员工" + +#. Label of the trainings_section (Section Break) field in DocType 'Employee +#. Skill Map' +#. Label of the trainings (Table) field in DocType 'Employee Skill Map' +#: hrms/hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Trainings" +msgstr "培训记录" + +#. Label of a quick_list in the Tenure Workspace +#: hrms/hr/workspace/tenure/tenure.json +msgid "Trainings (This Week)" +msgstr "培训次数(本周)" + +#: hrms/hr/utils.py:796 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "无法为离职员工{0}创建交易记录" + +#. Label of the transfer_date (Date) field in DocType 'Employee Transfer' +#: hrms/hr/doctype/employee_transfer/employee_transfer.json +msgid "Transfer Date" +msgstr "调岗日期" + +#. Label of a Card Break in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json hrms/setup.py:336 +msgid "Travel" +msgstr "差旅" + +#. Label of the travel_advance_required (Check) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Advance Required" +msgstr "需预支差旅费" + +#. Label of the travel_from (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel From" +msgstr "出发地" + +#. Label of the travel_funding (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Funding" +msgstr "差旅经费" + +#. Name of a DocType +#. Label of the travel_itinerary (Section Break) field in DocType 'Travel +#. Request' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Itinerary" +msgstr "差旅行程" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#. Label of a Link in the HR Workspace +#: hrms/hr/doctype/travel_request/travel_request.json +#: hrms/hr/workspace/expenses/expenses.json hrms/hr/workspace/hr/hr.json +msgid "Travel Request" +msgstr "差旅申请" + +#. Name of a DocType +#: hrms/hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "差旅申请成本核算" + +#. Label of the travel_to (Data) field in DocType 'Travel Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel To" +msgstr "目的地" + +#. Label of the travel_type (Select) field in DocType 'Travel Request' +#: hrms/hr/doctype/travel_request/travel_request.json +msgid "Travel Type" +msgstr "差旅类型" + +#. Label of the type_of_proof (Data) field in DocType 'Employee Tax Exemption +#. Proof Submission Detail' +#: hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Type of Proof" +msgstr "证明类型" + +#: hrms/public/js/utils/index.js:208 +msgid "Unable to retrieve your location" +msgstr "无法获取您的位置" + +#: hrms/hr/doctype/goal/goal.js:55 +msgid "Unarchive" +msgstr "取消归档" + +#. Label of the unclaimed_amount (Currency) field in DocType 'Expense Claim +#. Advance' +#: frontend/src/components/ExpenseAdvancesTable.vue:36 +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount" +msgstr "未认领金额" + +#. Label of the base_unclaimed_amount (Currency) field in DocType 'Expense +#. Claim Advance' +#: hrms/hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Unclaimed Amount (Company Currency)" +msgstr "" + +#. Option for the 'Status' (Select) field in DocType 'Interview' +#: hrms/hr/doctype/interview/interview.json +msgid "Under Review" +msgstr "审核中" + +#. Label of the unlink_payment_section (Section Break) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Unlink Payment" +msgstr "解除付款关联" + +#: hrms/hr/doctype/attendance/attendance.py:231 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "已解除考勤记录与员工签到的关联:{}" + +#: hrms/hr/doctype/attendance/attendance.py:234 +msgid "Unlinked logs" +msgstr "未关联日志" + +#: hrms/hr/doctype/attendance/attendance_list.js:91 +msgid "Unmarked Attendance for days" +msgstr "未标记考勤天数" + +#: hrms/hr/doctype/shift_type/shift_type.py:96 +msgid "Unmarked Check-in Logs Found" +msgstr "发现未标记签到记录" + +#: hrms/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:157 +#: hrms/public/js/templates/employees_with_unmarked_attendance.html:19 +msgid "Unmarked Days" +msgstr "未标记天数" + +#. Label of the unmarked_employee_header (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employee Header" +msgstr "未标记员工标题" + +#. Label of the unmarked_employees_html (HTML) field in DocType 'Employee +#. Attendance Tool' +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Unmarked Employees HTML" +msgstr "未标记员工HTML" + +#. Label of the unmarked_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Unmarked days" +msgstr "未标记天数" + +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:58 +msgid "Unpaid Accrual" +msgstr "未支付计提额" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Unpaid Expense Claim" +msgstr "未支付费用报销" + +#. Option for the 'Status' (Select) field in DocType 'Full and Final +#. Outstanding Statement' +#: hrms/hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Unsettled" +msgstr "未结算" + +#: hrms/hr/doctype/full_and_final_statement/full_and_final_statement.py:56 +msgid "Unsettled Transactions" +msgstr "未结算交易" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "未提交考核" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:251 +msgid "Untracked Hours" +msgstr "未跟踪工时" + +#: hrms/hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:80 +msgid "Untracked Hours (U)" +msgstr "未跟踪工时(U)" + +#. Label of the unused_leaves (Float) field in DocType 'Leave Allocation' +#: hrms/hr/doctype/leave_allocation/leave_allocation.json +msgid "Unused leaves" +msgstr "未使用假期" + +#: frontend/src/components/Holidays.vue:4 +msgid "Upcoming Holidays" +msgstr "即将到来的假期" + +#: hrms/controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "假期临近提醒" + +#: frontend/src/views/attendance/Dashboard.vue:23 +msgid "Upcoming Shifts" +msgstr "即将排班" + +#: frontend/src/components/ExpensesTable.vue:123 +msgid "Update Expense" +msgstr "更新费用" + +#: hrms/hr/doctype/interview/interview.py:71 +msgid "Update Job Applicant" +msgstr "更新职位申请人" + +#: hrms/hr/doctype/goal/goal_tree.js:232 hrms/hr/doctype/goal/goal_tree.js:238 +msgid "Update Progress" +msgstr "更新进度" + +#: hrms/templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "更新回复" + +#: hrms/payroll/doctype/salary_component/salary_component.js:120 +msgid "Update Salary Structures" +msgstr "更新薪资结构" + +#: hrms/hr/doctype/goal/goal_list.js:35 +msgid "Update Status" +msgstr "更新状态" + +#: frontend/src/components/ExpenseTaxesTable.vue:118 +msgid "Update Tax" +msgstr "更新税务" + +#: hrms/hr/doctype/attendance_request/attendance_request.py:115 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "考勤记录{3}中日期{2}的状态已从{0}更新为{1}" + +#: hrms/hr/doctype/interview/interview.py:201 +msgid "Updated the Job Applicant status to {0}" +msgstr "已将职位申请人状态更新为{0}" + +#: hrms/overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "已将关联的职位申请人{1}的录用通知{0}状态更新为{2}" + +#: hrms/overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "已更新关联职位申请人{0}的状态为{1}" + +#. Name of a DocType +#. Label of a Link in the Shift & Attendance Workspace +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Upload Attendance" +msgstr "上传考勤" + +#. Label of the upload_html (HTML) field in DocType 'Upload Attendance' +#: hrms/hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload HTML" +msgstr "上传HTML" + +#: frontend/src/components/FileUploaderView.vue:11 +msgid "Upload images or documents" +msgstr "上传图片或文档" + +#: frontend/src/components/FormView.vue:124 +#: frontend/src/components/FormView.vue:163 +msgid "Uploading..." +msgstr "上传中..." + +#. Label of the upper_range (Currency) field in DocType 'Job Applicant' +#. Label of the upper_range (Currency) field in DocType 'Job Opening' +#. Label of a field in the job-application Web Form +#: hrms/hr/doctype/job_applicant/job_applicant.json +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/web_form/job_application/job_application.json +msgid "Upper Range" +msgstr "上限范围" + +#. Label of the used_leaves (Float) field in DocType 'Salary Slip Leave' +#: hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Used Leave(s)" +msgstr "已用假期" + +#: hrms/hr/doctype/leave_application/leave_application_dashboard.html:9 +msgid "Used Leaves" +msgstr "已用假期" + +#. Label of the vacancies (Int) field in DocType 'Job Opening' +#. Label of the vacancies (Int) field in DocType 'Staffing Plan Detail' +#: hrms/hr/doctype/job_opening/job_opening.json +#: hrms/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Vacancies" +msgstr "空缺职位" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.js:81 +msgid "Vacancies cannot be lower than the current openings" +msgstr "空缺职位不可少于当前空缺数" + +#: hrms/hr/doctype/job_opening/job_opening.py:88 +msgid "Vacancies fulfilled" +msgstr "已填补空缺" + +#. Label of the validate_attendance (Check) field in DocType 'Payroll Entry' +#: hrms/payroll/doctype/payroll_entry/payroll_entry.json +msgid "Validate Attendance" +msgstr "验证考勤" + +#: hrms/payroll/doctype/payroll_entry/payroll_entry.js:404 +msgid "Validating Employee Attendance..." +msgstr "正在验证员工考勤..." + +#. Label of the value (Small Text) field in DocType 'Job Offer Term' +#: hrms/hr/doctype/job_offer_term/job_offer_term.json +msgid "Value / Description" +msgstr "数值/描述" + +#: hrms/hr/employee_property_update.js:196 +msgid "Value missing" +msgstr "缺少数值" + +#. Label of the variable (Currency) field in DocType 'Salary Structure +#. Assignment' +#: hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js:185 +#: hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Variable" +msgstr "变量" + +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Component' +#. Label of the variable_based_on_taxable_salary (Check) field in DocType +#. 'Salary Detail' +#: hrms/payroll/doctype/additional_salary/additional_salary.py:177 +#: hrms/payroll/doctype/salary_component/salary_component.json +#: hrms/payroll/doctype/salary_detail/salary_detail.json +msgid "Variable Based On Taxable Salary" +msgstr "基于应税工资的变量" + +#. Option for the 'Meal Preference' (Select) field in DocType 'Travel +#. Itinerary' +#: hrms/hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Vegetarian" +msgstr "素食" + +#. Name of a report +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_log/vehicle_log.py:51 +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Expenses" +msgstr "车辆费用" + +#. Label of the vehicle_log (Link) field in DocType 'Expense Claim' +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/expense_claim/expense_claim.json +#: hrms/hr/doctype/vehicle_log/vehicle_log.json +#: hrms/hr/report/vehicle_expenses/vehicle_expenses.py:37 +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Log" +msgstr "车辆日志" + +#. Name of a DocType +#: hrms/hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "车辆服务" + +#. Name of a DocType +#. Label of a Link in the Expenses Workspace +#: hrms/hr/doctype/vehicle_service_item/vehicle_service_item.json +#: hrms/hr/workspace/expenses/expenses.json +msgid "Vehicle Service Item" +msgstr "车辆服务项目" + +#: hrms/hr/doctype/appraisal/appraisal.js:56 +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.js:22 +msgid "View Goals" +msgstr "查看目标" + +#: frontend/src/components/LeaveBalance.vue:14 +msgid "View Leave History" +msgstr "查看请假历史" + +#: frontend/src/views/Home.vue:57 +msgid "View Salary Slips" +msgstr "查看工资单" + +#. Option for the 'Roster Color' (Select) field in DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Violet" +msgstr "紫色" + +#: hrms/patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "警告:贷款管理模块已从ERPNext中分离" + +#: hrms/hr/doctype/leave_application/leave_application.py:418 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "警告:本次分配中{0}假期类型的可用余额不足" + +#: hrms/hr/doctype/leave_application/leave_application.py:426 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "警告:{0}假期类型的可用余额不足" + +#: hrms/hr/doctype/leave_application/leave_application.py:364 +msgid "Warning: Leave application contains following block dates" +msgstr "警告:请假申请包含以下禁假日期" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:91 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "警告:{0}在部分/全部日期已有生效的班次分配{1}" + +#: hrms/setup.py:398 +msgid "Website Listing" +msgstr "官网职位列表" + +#. Label of the weekend_multiplier (Float) field in DocType 'Overtime Type' +#: hrms/hr/doctype/overtime_type/overtime_type.json +msgid "Weekend Multiplier" +msgstr "周末乘数" + +#. Label of the per_weightage (Float) field in DocType 'Appraisal Goal' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal KRA' +#. Label of the per_weightage (Percent) field in DocType 'Appraisal Template +#. Goal' +#. Label of the per_weightage (Percent) field in DocType 'Employee Feedback +#. Rating' +#: hrms/hr/doctype/appraisal_goal/appraisal_goal.json +#: hrms/hr/doctype/appraisal_kra/appraisal_kra.json +#: hrms/hr/doctype/appraisal_template_goal/appraisal_template_goal.json +#: hrms/hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Weightage (%)" +msgstr "权重(%)" + +#. Description of the 'Status' (Select) field in DocType 'Shift Assignment +#. Tool' +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.json +msgid "When set to 'Inactive', employees with conflicting active shifts will not be excluded." +msgstr "设为'停用'时,冲突班次的有效员工将不被排除" + +#: hrms/hr/doctype/leave_type/leave_type.py:36 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "调休申请提交后将自动创建或更新对应的调休分配" + +#. Label of the qualification_reason (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Why is this Candidate Qualified for this Position?" +msgstr "该候选人为何适合此职位?" + +#. Option for the 'Status' (Select) field in DocType 'Salary Slip' +#. Option for the 'Status' (Select) field in DocType 'Salary Withholding' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +#: hrms/payroll/doctype/salary_withholding/salary_withholding.json +msgid "Withheld" +msgstr "暂扣" + +#. Label of the send_work_anniversary_reminders (Check) field in DocType 'HR +#. Settings' +#: hrms/hr/doctype/hr_settings/hr_settings.json +msgid "Work Anniversaries " +msgstr "工作周年纪念日" + +#: hrms/controllers/employee_reminders.py:278 +#: hrms/controllers/employee_reminders.py:285 +msgid "Work Anniversary Reminder" +msgstr "工作周年提醒" + +#. Label of the work_end_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work End Date" +msgstr "工作结束日期" + +#. Label of the work_experience_calculation_function (Select) field in DocType +#. 'Gratuity Rule' +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Work Experience Calculation Method" +msgstr "工作经验计算方式" + +#. Label of the work_from_date (Date) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Work From Date" +msgstr "工作起始日期" + +#. Option for the 'Status' (Select) field in DocType 'Attendance' +#. Option for the 'Reason' (Select) field in DocType 'Attendance Request' +#. Option for the 'Status' (Select) field in DocType 'Employee Attendance Tool' +#: frontend/src/components/AttendanceCalendar.vue:80 +#: hrms/hr/doctype/attendance/attendance.json +#: hrms/hr/doctype/attendance_request/attendance_request.json +#: hrms/hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Work From Home" +msgstr "居家办公" + +#. Label of the work_references (Text Editor) field in DocType 'Employee +#. Referral' +#: hrms/hr/doctype/employee_referral/employee_referral.json +msgid "Work References" +msgstr "工作证明人" + +#: hrms/hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "{0}的工作总结" + +#. Label of the worked_on (Section Break) field in DocType 'Compensatory Leave +#. Request' +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Worked On Holiday" +msgstr "假日工作" + +#. Label of the working_days (Float) field in DocType 'Payroll Correction' +#. Label of the total_working_days (Float) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/payroll_correction/payroll_correction.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Working Days" +msgstr "工作日" + +#. Label of the working_days_section (Section Break) field in DocType 'Payroll +#. Settings' +#: hrms/payroll/doctype/payroll_settings/payroll_settings.json +msgid "Working Days and Hours" +msgstr "工作日与工作时长" + +#. Label of the working_hours_calculation_based_on (Select) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Calculation Based On" +msgstr "工作时长计算依据" + +#. Label of the working_hours_threshold_for_absent (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Absent" +msgstr "缺勤工时阈值" + +#. Label of the working_hours_threshold_for_half_day (Float) field in DocType +#. 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working Hours Threshold for Half Day" +msgstr "半天假工时阈值" + +#. Description of the 'Working Hours Threshold for Absent' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "低于此时长标记为缺勤(设为0则禁用)" + +#. Description of the 'Working Hours Threshold for Half Day' (Float) field in +#. DocType 'Shift Type' +#: hrms/hr/doctype/shift_type/shift_type.json +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "低于此时长标记为半天假(设为0则禁用)" + +#. Option for the 'Type' (Select) field in DocType 'Training Event' +#: hrms/hr/doctype/training_event/training_event.json +msgid "Workshop" +msgstr "研讨会" + +#. Label of the year_to_date (Currency) field in DocType 'Salary Detail' +#. Label of the year_to_date (Currency) field in DocType 'Salary Slip' +#: frontend/src/views/salary_slip/Dashboard.vue:8 +#: hrms/payroll/doctype/salary_detail/salary_detail.json +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date" +msgstr "本年累计" + +#. Label of the base_year_to_date (Currency) field in DocType 'Salary Slip' +#: hrms/payroll/doctype/salary_slip/salary_slip.json +msgid "Year To Date(Company Currency)" +msgstr "本年累计(公司币种)" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Claim' +#: hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Yearly Amount" +msgstr "年度金额" + +#. Label of the yearly_benefit (Currency) field in DocType 'Employee Benefit +#. Ledger' +#: hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json +#: hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py:40 +msgid "Yearly Benefit" +msgstr "年度福利" + +#: hrms/hr/doctype/hr_settings/hr_settings.py:86 +msgid "Yes, Proceed" +msgstr "确定继续" + +#: hrms/hr/doctype/leave_application/leave_application.py:374 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "您无权批准禁假日期内的请假" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:58 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "调休申请日期间您未全天出勤" + +#: hrms/payroll/doctype/gratuity_rule/gratuity_rule.py:24 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "存在无上下限的税率段时不可定义多个税率段" + +#: hrms/hr/doctype/shift_request/shift_request.py:82 +msgid "You can not request for your Default Shift: {0}" +msgstr "不可申请默认班次{0}" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:94 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "根据母公司{4}的编制计划{3},您最多可规划{2}的{0}个空缺职位及{1}预算" + +#: hrms/hr/doctype/leave_encashment/leave_encashment.py:43 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "仅当存在有效兑现金额时可提交假期折现申请" + +#: hrms/api/__init__.py:726 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "仅可上传JPG、PNG、PDF、TXT或Microsoft文档" + +#: hrms/payroll/doctype/payroll_correction/payroll_correction.py:48 +msgid "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." +msgstr "您不能冲销超过总LWP天数{0}。您已为该员工冲销{1}天。" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:417 +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:580 +msgid "You do not have permission to complete this action" +msgstr "您无权限执行此操作" + +#: frontend/src/components/EmployeeAdvanceBalance.vue:26 +msgid "You have no advances" +msgstr "您无预支款项记录" + +#: frontend/src/components/LeaveBalance.vue:42 +msgid "You have no leaves allocated" +msgstr "您无已分配的假期额度" + +#: frontend/src/views/Notifications.vue:91 +msgid "You have no notifications" +msgstr "您当前无待阅通知" + +#: frontend/src/components/RequestList.vue:31 +msgid "You have no requests" +msgstr "您无待处理请求" + +#: frontend/src/components/Holidays.vue:32 +msgid "You have no upcoming holidays" +msgstr "您近期无节假日安排" + +#: frontend/src/views/attendance/Dashboard.vue:29 +msgid "You have no upcoming shifts" +msgstr "您暂无即将排班" + +#: hrms/overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "您可补充其他详细信息(如有)并提交录用通知" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:128 +msgid "You must be within {0} meters of your shift location to check in." +msgstr "需在班次地点{0}米范围内方可签到" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:52 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "您仅于{}出勤半天,不可申请全天调休" + +#: hrms/hr/doctype/interview/interview.py:104 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "您的面试时段已从{0}{1}-{2}调整至{3}{4}-{5}" + +#: frontend/src/views/Login.vue:61 +msgid "Your password has expired. Please reset your password to continue" +msgstr "密码已过期,请重置密码以继续" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "生效中" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "based on" +msgstr "基于" + +#: frontend/src/components/RequestActionSheet.vue:292 +msgid "cancellation" +msgstr "取消" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "cancelled" +msgstr "已取消" + +#: hrms/public/js/utils/index.js:131 +msgid "create/submit" +msgstr "创建/提交" + +#: hrms/public/js/utils/index.js:132 +msgid "created" +msgstr "已创建" + +#: frontend/src/views/Login.vue:16 +msgid "johndoe@mail.com" +msgstr "johndoe@mail.com" + +#. Label of the modify_half_day_status (Check) field in DocType 'Attendance' +#: hrms/hr/doctype/attendance/attendance.json +msgid "modify_half_day_status" +msgstr "修改半日状态" + +#: hrms/hr/doctype/department_approver/department_approver.py:89 +msgid "or for the Employee's Department: {0}" +msgstr "或员工所属部门:{0}" + +#: hrms/public/js/utils/index.js:134 +msgid "process" +msgstr "处理" + +#: hrms/public/js/utils/index.js:135 +msgid "processed" +msgstr "已处理" + +#: hrms/www/jobs/index.html:122 +msgid "result" +msgstr "结果" + +#: hrms/www/jobs/index.html:122 +msgid "results" +msgstr "结果" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "review" +msgstr "评审" + +#: hrms/public/js/templates/feedback_summary.html:16 +msgid "reviews" +msgstr "评审" + +#: frontend/src/components/RequestActionSheet.vue:283 +msgid "submitted" +msgstr "已提交" + +#: hrms/payroll/doctype/salary_component/salary_component.py:139 +msgid "via Salary Component sync" +msgstr "通过薪资组件同步" + +#: hrms/controllers/employee_reminders.py:265 +msgid "year" +msgstr "年度" + +#: hrms/controllers/employee_reminders.py:265 +msgid "years" +msgstr "" + +#: hrms/controllers/employee_reminders.py:120 +#: hrms/controllers/employee_reminders.py:254 +#: hrms/controllers/employee_reminders.py:260 +msgid "{0} & {1}" +msgstr "{0} & {1}" + +#: frontend/src/components/ExpenseClaimItem.vue:84 +msgid "{0} & {1} more" +msgstr "{0} 及另外{1}项" + +#: hrms/hr/doctype/overtime_slip/overtime_slip.py:489 +msgid "{0} : {1}" +msgstr "{0}:{1}" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2529 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "{0}
    此错误可能由字段缺失或删除导致" + +#: hrms/hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "尚有{0}份考核未提交" + +#: hrms/public/js/utils/index.js:231 +msgid "{0} Field" +msgstr "{0} 字段" + +#: hrms/hr/doctype/department_approver/department_approver.py:92 +msgid "{0} Missing" +msgstr "缺失{0}" + +#: hrms/payroll/doctype/salary_structure/salary_structure.py:44 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "{0} 行#{1}:已设置公式但薪资组件{3}的{2}未启用" + +#: hrms/payroll/doctype/salary_structure/salary_structure.js:319 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "{0} 行#{1}:需启用{2}才能使公式生效" + +#: frontend/src/views/Notifications.vue:27 +msgid "{0} Unread" +msgstr "{0} 未读" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:203 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "员工{1}在{2}至{3}期间已分配{0}" + +#: hrms/hr/utils.py:269 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "员工{1}在期间{2}已存在{0}" + +#: hrms/hr/doctype/shift_assignment/shift_assignment.py:99 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "{0}在部分/全部日期已有生效的班次分配{1}" + +#: hrms/hr/doctype/leave_application/leave_application.py:155 +msgid "{0} applicable after {1} working days" +msgstr "{0}需在{1}个工作日之后生效" + +#: frontend/src/components/LeaveBalance.vue:37 +msgctxt "Leave Type" +msgid "{0} balance" +msgstr "{0}余额" + +#: hrms/controllers/employee_reminders.py:253 +msgid "{0} completed {1} {2}" +msgstr "" + +#: frontend/src/components/FormView.vue:528 +msgid "{0} created successfully!" +msgstr "{0}创建成功!" + +#: frontend/src/components/FormView.vue:583 +msgid "{0} deleted successfully!" +msgstr "{0}删除成功!" + +#: frontend/src/components/CheckInPanel.vue:186 +#: frontend/src/components/RequestActionSheet.vue:290 +msgid "{0} failed!" +msgstr "{0}失败!" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:175 +msgid "{0} has {1} enabled" +msgstr "{0}已启用{1}" + +#: hrms/payroll/doctype/additional_salary/additional_salary.py:187 +msgid "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" +msgstr "{0}为计提组件,这将作为支付记录在员工福利分类账中" + +#: hrms/hr/doctype/employee_checkin/employee_checkin.py:228 +msgid "{0} is an invalid Attendance Status." +msgstr "{0}为无效考勤状态。" + +#: hrms/hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "{0}非节假日" + +#: hrms/hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "{0}无权提交面试{1}的反馈" + +#: hrms/hr/doctype/leave_application/leave_application.py:618 +msgid "{0} is not in Optional Holiday List" +msgstr "{0}不在可选假期列表中" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:361 +msgid "{0} leaves allocated successfully" +msgstr "成功分配{0}天假期" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:563 +msgid "{0} leaves from allocation for {1} leave type have expired and will be processed during the next scheduled job. It is recommended to expire them now before creating new leave policy assignments." +msgstr "针对{1}假期类型分配的{0}天假期已过期,系统将在下次计划任务中自动处理。建议在新建假期政策分配前立即执行过期操作。" + +#: hrms/hr/doctype/leave_allocation/leave_allocation.py:356 +msgid "{0} leaves were manually allocated by {1} on {2}" +msgstr "{1}于{2}手动分配了{0}天假期" + +#: hrms/hr/doctype/training_feedback/training_feedback.py:14 +#: hrms/hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "必须提交{0}" + +#: hrms/hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "已完成{1}中的{0}" + +#: frontend/src/components/CheckInPanel.vue:174 +msgid "{0} successful!" +msgstr "{0}成功!" + +#: frontend/src/components/RequestActionSheet.vue:280 +msgid "{0} successfully!" +msgstr "{0}成功!" + +#: hrms/hr/doctype/shift_assignment_tool/shift_assignment_tool.js:261 +msgid "{0} to {1} employee(s)?" +msgstr "确认将{0}应用于{1}名员工?" + +#: frontend/src/components/FormView.vue:561 +msgid "{0} updated successfully!" +msgstr "{0}更新成功!" + +#: hrms/hr/doctype/staffing_plan/staffing_plan.py:128 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "子公司{3}已规划{2}的{0}个空缺职位及{1}预算。根据母公司{3}的编制计划{6},您最多可规划{4}个空缺职位及{5}预算" + +#: hrms/payroll/doctype/salary_component/salary_component.js:130 +msgid "{0} will be updated for the following Salary Structures: {1}." +msgstr "将更新以下薪资结构{1}的{0}" + +#: hrms/hr/doctype/goal/goal_list.js:70 +msgid "{0} {1} {2}?" +msgstr "{0} {1} {2}?" + +#: hrms/hr/utils.py:454 +msgid "{0}. Check error log for more details." +msgstr "" + +#: hrms/payroll/doctype/salary_slip/salary_slip.py:2190 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}:未找到员工邮箱,邮件未发送" + +#: hrms/hr/doctype/leave_application/leave_application.py:70 +msgid "{0}: From {0} of type {1}" +msgstr "{0}:类型为{1}的{0}" + +#: frontend/src/components/AttendanceRequestItem.vue:17 +#: frontend/src/components/LeaveRequestItem.vue:16 +#: frontend/src/components/ShiftAssignmentItem.vue:12 +#: frontend/src/components/ShiftRequestItem.vue:17 +msgid "{0}d" +msgstr "{0}天" + +#. Count format of shortcut in the Shift & Attendance Workspace +#: hrms/hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "{} " +msgstr "" + +#. Count format of shortcut in the Recruitment Workspace +#: hrms/hr/workspace/recruitment/recruitment.json +msgid "{} Accepted" +msgstr "{} 已接受" + +#. Count format of shortcut in the HR Workspace +#: hrms/hr/workspace/hr/hr.json +msgid "{} Active" +msgstr "{} 生效中" + +#. Count format of shortcut in the Payroll Workspace +#. Count format of shortcut in the Tax & Benefits Workspace +#: hrms/payroll/workspace/payroll/payroll.json +#: hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "{} Draft" +msgstr "{} 草稿" + +#. Count format of shortcut in the Expenses Workspace +#: hrms/hr/workspace/expenses/expenses.json +msgid "{} Unclaimed" +msgstr "{} 未认领" + +#: hrms/hr/doctype/job_requisition/job_requisition.js:22 +msgid "{} {} open for this position." +msgstr "该职位有{}个{}空缺" + diff --git a/apps/erpnext/src/hrms/hrms/locale/zh_TW.po b/apps/erpnext/src/hrms/hrms/locale/zh_TW.po new file mode 100644 index 000000000..453b05b81 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/locale/zh_TW.po @@ -0,0 +1,16958 @@ +# Translations template for Frappe HR. +# Copyright (C) 2024 Frappe Technologies Pvt. Ltd. +# This file is distributed under the same license as the Frappe HR project. +# FIRST AUTHOR , 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: Frappe HR VERSION\n" +"Report-Msgid-Bugs-To: contact@frappe.io\n" +"POT-Creation-Date: 2024-01-11 19:17+0553\n" +"PO-Revision-Date: 2024-01-11 19:17+0553\n" +"Last-Translator: contact@frappe.io\n" +"Language-Team: contact@frappe.io\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.13.1\n" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:32 +msgid "" +"\n" +"\t\t\t\t\t\tNot found any salary slip record(s) for the employee {0}.

    \n" +"\t\t\t\t\t\tPlease specify {1} and {2} (if any),\n" +"\t\t\t\t\t\tfor the correct tax calculation in future salary slips.\n" +"\t\t\t\t\t\t" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:22 +msgid "\"From Date\" can not be greater than or equal to \"To Date\"" +msgstr "" + +#: public/frontend/assets/EmployeeAdvanceItem-2a5ba80f.js:1 +msgid "$dayjs" +msgstr "" + +#: public/frontend/assets/LeaveBalance-6bf8cabc.js:1 +msgid "$employee" +msgstr "" + +#: public/frontend/assets/LeaveBalance-6bf8cabc.js:1 +msgid "$socket" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:88 +msgid "% Utilization (B + NB) / T" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:94 +msgid "% Utilization (B / T)" +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:84 +msgid "'employee_field_value' and 'timestamp' are required." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:1264 +msgid "(Half Day)" +msgstr "" + +#: hr/utils.py:234 payroll/doctype/payroll_period/payroll_period.py:53 +msgid ") for {0}" +msgstr ")為{0}" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "0.25" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "0.5" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "00:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "01:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "02:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "03:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "04:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "05:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "06:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "07:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "08:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "09:00" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "1.0" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "10:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "11:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "12:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "13:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "14:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "15:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "16:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "17:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "18:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "19:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "20:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "21:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "22:00" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "23:00" +msgstr "" + +#. Description of a Data field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:276 +#: hr/doctype/leave_allocation/leave_allocation.py:282 +msgid "Total Leaves Allocated are more than the number of days in the allocation period" +msgstr "" + +#. Description of the Onboarding Step 'Data Import' +#: hr/onboarding_step/data_import/data_import.json +msgid "" +"

    Data Import

    \n" +"\n" +"Data import is the tool to migrate your existing data like Employee, Customer, Supplier, and a lot more to our ERPNext system.\n" +"Go through the video for a detailed explanation of this tool." +msgstr "" + +#. Description of the Onboarding Step 'Create Employee' +#: hr/onboarding_step/create_employee/create_employee.json +msgid "" +"

    Employee

    \n" +"\n" +"An individual who works and is recognized for his rights and duties in your company is your Employee. You can manage the Employee master. It captures the demographic, personal and professional details, joining and leave details, etc." +msgstr "" + +#. Description of the Onboarding Step 'HR Settings' +#: hr/onboarding_step/hr_settings/hr_settings.json +msgid "" +"

    HR Settings

    \n" +"\n" +"Hr Settings consists of major settings related to Employee Lifecycle, Leave Management, etc. Click on Explore, to explore Hr Settings." +msgstr "" + +#. Content of an HTML field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "" +"

    Help

    \n" +"\n" +"

    Notes:

    \n" +"\n" +"
      \n" +"
    1. Use field base for using base salary of the Employee
    2. \n" +"
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n" +"
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n" +"
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n" +"
    9. Direct Amount can also be entered based on Condition. See example 3
    \n" +"\n" +"

    Examples

    \n" +"
      \n" +"
    1. Calculating Basic Salary based on base\n" +"
      Condition: base < 10000
      \n" +"
      Formula: base * .2
    2. \n" +"
    3. Calculating HRA based on Basic SalaryBS \n" +"
      Condition: BS > 2000
      \n" +"
      Formula: BS * .1
    4. \n" +"
    5. Calculating TDS based on Employment Typeemployment_type \n" +"
      Condition: employment_type==\"Intern\"
      \n" +"
      Amount: 1000
    6. \n" +"
    " +msgstr "" + +#. Description of the Onboarding Step 'Create Holiday List' +#: hr/onboarding_step/create_holiday_list/create_holiday_list.json +msgid "" +"

    Holiday List.

    \n" +"\n" +"Holiday List is a list which contains the dates of holidays. Most organizations have a standard Holiday List for their employees. However, some of them may have different holiday lists based on different Locations or Departments. In ERPNext, you can configure multiple Holiday Lists." +msgstr "" + +#. Description of the Onboarding Step 'Create Leave Allocation' +#: hr/onboarding_step/create_leave_allocation/create_leave_allocation.json +msgid "" +"

    Leave Allocation

    \n" +"\n" +"Leave Allocation enables you to allocate a specific number of leaves of a particular type to an Employee so that, an employee will be able to create a Leave Application only if Leaves are allocated. " +msgstr "" + +#. Description of the Onboarding Step 'Create Leave Application' +#: hr/onboarding_step/create_leave_application/create_leave_application.json +msgid "" +"

    Leave Application

    \n" +"\n" +"Leave Application is a formal document created by an Employee to apply for Leaves for a particular time period based on there leave allocation and leave type according to there need." +msgstr "" + +#. Description of the Onboarding Step 'Create Leave Type' +#: hr/onboarding_step/create_leave_type/create_leave_type.json +msgid "" +"

    Leave Type

    \n" +"\n" +"Leave type is defined based on many factors and features like encashment, earned leaves, partially paid, without pay and, a lot more. To check other options and to define your leave type click on Show Tour." +msgstr "" + +#. Content of an HTML field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "" +"

    Condition Examples

    \n" +"
      \n" +"
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \n" +"Condition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \n" +"Condition: gender==\"Male\"

    3. \n" +"
    4. Applying tax by Salary Component
      \n" +"Condition: base > 10000
    " +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.py:30 +msgid "A Job Requisition for {0} requested by {1} already exists: {2}" +msgstr "" + +#: controllers/employee_reminders.py:123 controllers/employee_reminders.py:216 +msgid "A friendly reminder of an important date for our team." +msgstr "" + +#: hr/utils.py:230 payroll/doctype/payroll_period/payroll_period.py:49 +msgid "A {0} exists between {1} and {2} (" +msgstr "{1}和{2}之間存在{0}(" + +#. Label of a Data field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Abbr" +msgstr "" + +#. Label of a Data field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Abbr" +msgstr "" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Absent" +msgstr "缺席" + +#. Option for a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Absent" +msgstr "缺席" + +#. Option for a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Absent" +msgstr "缺席" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Absent" +msgstr "缺席" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Absent Days" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:174 +msgid "Absent Records" +msgstr "" + +#. Name of a role +#: hr/doctype/interest/interest.json +msgid "Academics User" +msgstr "" + +#: overrides/employee_master.py:64 overrides/employee_master.py:80 +msgid "Accepted" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Accepted" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Accepted" +msgstr "" + +#. Option for a Select field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Accepted" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Account" +msgstr "" + +#. Label of a Link field in DocType 'Salary Component Account' +#: payroll/doctype/salary_component_account/salary_component_account.json +msgctxt "Salary Component Account" +msgid "Account" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Account" +msgstr "" + +#. Label of a Link field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Account Head" +msgstr "" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:49 +msgid "Account No" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:89 +msgid "Account type cannot be set for payroll payable account {0}, please remove and try again" +msgstr "" + +#: overrides/company.py:115 +msgid "Account {0} does not belong to company: {1}" +msgstr "" + +#: hr/doctype/expense_claim_type/expense_claim_type.py:29 +msgid "Account {0} does not match with Company {1}" +msgstr "科目{0}與公司{1}不符" + +#. Label of a Card Break in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Accounting" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Accounting" +msgstr "" + +#. Label of a Tab Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Accounting" +msgstr "" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Accounting & Payment" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Accounting Details" +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Accounting Dimension" +msgid "Accounting Dimension" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Accounting Dimensions" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Accounting Dimensions" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Accounting Dimensions" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Accounting Dimensions" +msgstr "" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Accounting Dimensions" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.js:216 +msgid "Accounting Ledger" +msgstr "" + +#. Label of a Card Break in the Expense Claims Workspace +#. Label of a Card Break in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Accounting Reports" +msgstr "" + +#. Label of a Table field in DocType 'Expense Claim Type' +#: hr/doctype/expense_claim_type/expense_claim_type.json +msgctxt "Expense Claim Type" +msgid "Accounts" +msgstr "" + +#. Label of a Section Break field in DocType 'Salary Component' +#. Label of a Table field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Accounts" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Accounts Payable" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Accounts Receivable" +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Accounts Settings" +msgid "Accounts Settings" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:565 +msgid "Accrual Journal Entry for salaries from {0} to {1}" +msgstr "從{0}到{1}的薪金的應計日記帳分錄" + +#: hr/doctype/interview/interview.js:32 +#: hr/doctype/job_requisition/job_requisition.js:36 +#: hr/doctype/job_requisition/job_requisition.js:60 +#: hr/doctype/job_requisition/job_requisition.js:62 +#: payroll/doctype/salary_structure/salary_structure.js:108 +#: payroll/doctype/salary_structure/salary_structure.js:112 +msgid "Actions" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:46 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:40 +msgid "Active" +msgstr "" + +#. Option for a Select field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Active" +msgstr "" + +#. Label of a Table field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Activities" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Onboarding Template' +#. Label of a Table field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Activities" +msgstr "" + +#. Label of a Table field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Activities" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Separation Template' +#. Label of a Table field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Activities" +msgstr "" + +#. Label of a Data field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Activity Name" +msgstr "活動名稱" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Activity Type" +msgid "Activity Type" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Proof +#. Submission Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Actual Amount" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:136 +msgid "Actual Encashable Days" +msgstr "" + +#. Label of a Float field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Actual Encashable Days" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:399 +msgid "Actual balances aren't available because the leave application spans over different leave allocations. You can still apply for leaves which would be compensated during the next allocation." +msgstr "" + +#. Label of a Button field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Add Day-wise Dates" +msgstr "" + +#: hr/employee_property_update.js:45 +msgid "Add Employee Property" +msgstr "" + +#: public/js/performance/performance_feedback.js:93 +msgid "Add Feedback" +msgstr "" + +#: hr/employee_property_update.js:88 +msgid "Add to Details" +msgstr "添加到詳細信息" + +#. Label of a Check field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Add unused leaves from previous allocations" +msgstr "從以前的分配添加未使用的休假" + +#. Label of a Check field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Add unused leaves from previous allocations" +msgstr "從以前的分配添加未使用的休假" + +#. Description of a Check field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Add unused leaves from previous leave period's allocation to this allocation" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Added On" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1255 +msgid "Added tax components from the Salary Component master as the salary structure didn't have any tax component." +msgstr "" + +#: hr/employee_property_update.js:163 +msgid "Added to details" +msgstr "添加到細節" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Additional Amount" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Additional Information " +msgstr "" + +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:34 +msgid "Additional PF" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/additional_salary/additional_salary.json +msgid "Additional Salary" +msgstr "額外的薪水" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Additional Salary" +msgid "Additional Salary" +msgstr "額外的薪水" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Additional Salary" +msgstr "額外的薪水" + +#. Label of a Link field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Additional Salary " +msgstr "" + +#: payroll/doctype/additional_salary/additional_salary.py:110 +msgid "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" +msgstr "" + +#: payroll/doctype/additional_salary/additional_salary.py:132 +msgid "Additional Salary for this salary component with {0} enabled already exists for this date" +msgstr "" + +#: payroll/doctype/additional_salary/additional_salary.py:62 +msgid "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Address of Organizer" +msgstr "主辦單位地址" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Advance" +msgstr "提前" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Advance Account" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Advance Account" +msgstr "" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:62 +msgid "Advance Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Advance Amount" +msgstr "" + +#. Label of a Data field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Advance Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Advance Paid" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Advance Payments" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Advanced Filters" +msgstr "" + +#. Label of a Card Break in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgid "Advances" +msgstr "" + +#. Label of a Table field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Advances" +msgstr "" + +#. Name of a role +#: hr/doctype/leave_application/leave_application.json +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgid "All" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:219 +msgid "All Goals" +msgstr "" + +#: hr/doctype/job_opening/job_opening.py:106 +msgid "All Jobs" +msgstr "所有職位" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:40 +msgid "All allocated assets should be returned before submission" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.py:48 +msgid "All the mandatory tasks for employee creation are not completed yet." +msgstr "" + +#. Label of a Check field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Allocate Based On Leave Policy" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.js:206 +msgid "Allocate Leave" +msgstr "" + +#. Label of a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allocate on Day" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Allocated Amount" +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:79 +msgid "Allocated Leaves" +msgstr "分配的葉子" + +#: hr/utils.py:405 +msgid "Allocated {0} leave(s) via scheduler on {1} based on the 'Allocate on Day' option set to {2}" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.js:228 +msgid "Allocating Leave" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgid "Allocation" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Allocation" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:56 +msgid "Allocation Expired!" +msgstr "" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allow Encashment" +msgstr "允許封裝" + +#: hr/doctype/shift_assignment/shift_assignment.py:60 +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Allow Multiple Shift Assignments for Same Date" +msgstr "" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allow Negative Balance" +msgstr "允許負平衡" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allow Over Allocation" +msgstr "" + +#. Label of a Check field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Allow Tax Exemption" +msgstr "" + +#. Label of a Link field in DocType 'Leave Block List Allow' +#: hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgctxt "Leave Block List Allow" +msgid "Allow User" +msgstr "允許用戶" + +#. Label of a Section Break field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Allow Users" +msgstr "允許用戶" + +#. Label of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Allow check-out after shift end time (in minutes)" +msgstr "" + +#. Description of a Section Break field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Allow the following users to approve Leave Applications for block days." +msgstr "允許以下用戶批准許可申請的區塊天。" + +#. Description of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Allows allocating more leaves than the number of days in the allocation period." +msgstr "" + +#. Option for a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Alternating entries as IN and OUT during the same shift" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Policy' +#: hr/doctype/leave_policy/leave_policy.json +msgctxt "Leave Policy" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Training Result' +#: hr/doctype/training_result/training_result.json +msgctxt "Training Result" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Amended From" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Amended From" +msgstr "" + +#: payroll/report/professional_tax_deductions/professional_tax_deductions.py:32 +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Application Detail' +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgctxt "Employee Benefit Application Detail" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Amount" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:34 +msgid "Amount Based on Formula" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Amount based on formula" +msgstr "量基於式" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Amount based on formula" +msgstr "量基於式" + +#: payroll/doctype/additional_salary/additional_salary.py:31 +msgid "Amount should not be less than zero" +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:58 +msgid "An amount of {0} already claimed for the component {1}, set the amount equal or greater than {2}" +msgstr "" + +#. Label of a Float field in DocType 'Leave Policy Detail' +#: hr/doctype/leave_policy_detail/leave_policy_detail.json +msgctxt "Leave Policy Detail" +msgid "Annual Allocation" +msgstr "年度分配" + +#: setup.py:395 +msgid "Annual Salary" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Annual Taxable Amount" +msgstr "" + +#. Label of a Small Text field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Any other details" +msgstr "任何其他細節" + +#. Description of a Text field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Any other remarks, noteworthy effort that should go in the records" +msgstr "" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Applicable After (Working Days)" +msgstr "適用於(工作日)" + +#. Label of a Table MultiSelect field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Applicable Earnings Component" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Applicable For" +msgstr "" + +#. Description of a Check field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Applicable in the case of Employee Onboarding" +msgstr "適用於員工入職的情況" + +#. Label of a Data field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Applicant Email Address" +msgstr "" + +#. Label of a Data field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Applicant Name" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Applicant Name" +msgstr "" + +#. Label of a Data field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Applicant Name" +msgstr "" + +#. Label of a Rating field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Applicant Rating" +msgstr "" + +#: hr/report/recruitment_analytics/recruitment_analytics.py:45 +msgid "Applicant name" +msgstr "" + +#. Label of a Card Break in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgid "Application" +msgstr "" + +#: hr/report/recruitment_analytics/recruitment_analytics.py:47 +msgid "Application Status" +msgstr "應用現狀" + +#: hr/doctype/leave_application/leave_application.py:207 +msgid "Application period cannot be across two allocation records" +msgstr "申請期限不能跨越兩個分配記錄" + +#: hr/doctype/leave_application/leave_application.py:204 +msgid "Application period cannot be outside leave allocation period" +msgstr "申請期間不能請假外分配週期" + +#: templates/generators/job_opening.html:152 +msgid "Applications Received" +msgstr "" + +#: www/jobs/index.html:211 +msgid "Applications received:" +msgstr "" + +#. Label of a Check field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Applies to Company" +msgstr "適用於公司" + +#: templates/generators/job_opening.html:21 +#: templates/generators/job_opening.html:25 +msgid "Apply Now" +msgstr "現在申請" + +#. Label of a Card Break in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Appointment" +msgstr "" + +#. Label of a Date field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Appointment Date" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appointment_letter/appointment_letter.json +msgid "Appointment Letter" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Appointment Letter" +msgid "Appointment Letter" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgid "Appointment Letter Template" +msgstr "" + +#. Label of a Link field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Appointment Letter Template" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Appointment Letter Template" +msgid "Appointment Letter Template" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appointment_letter_content/appointment_letter_content.json +msgid "Appointment Letter content" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Performance Workspace +#: hr/doctype/appraisal/appraisal.json +#: hr/report/appraisal_overview/appraisal_overview.py:44 +#: hr/workspace/performance/performance.json +msgid "Appraisal" +msgstr "評價" + +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Appraisal" +msgid "Appraisal" +msgstr "評價" + +#. Linked DocType in Appraisal Cycle's connections +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Appraisal" +msgstr "評價" + +#. Linked DocType in Appraisal Template's connections +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Appraisal" +msgstr "評價" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Appraisal" +msgstr "評價" + +#. Name of a DocType +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/goal/goal_tree.js:17 hr/doctype/goal/goal_tree.js:107 +#: hr/report/appraisal_overview/appraisal_overview.js:18 +#: hr/report/appraisal_overview/appraisal_overview.py:37 +msgid "Appraisal Cycle" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Appraisal Cycle" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Appraisal Cycle" +msgid "Appraisal Cycle" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Appraisal Cycle" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Appraisal Cycle" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgid "Appraisal Goal" +msgstr "考核目標" + +#. Name of a DocType +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgid "Appraisal KRA" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:98 +msgid "Appraisal Linking" +msgstr "" + +#. Label of a Section Break field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Appraisal Linking" +msgstr "" + +#. Name of a report +#. Label of a Link in the Performance Workspace +#: hr/report/appraisal_overview/appraisal_overview.json +#: hr/workspace/performance/performance.json +msgid "Appraisal Overview" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appraisal_template/appraisal_template.json +msgid "Appraisal Template" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Appraisal Template" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Appraisal Template" +msgid "Appraisal Template" +msgstr "" + +#. Label of a Link field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Appraisal Template" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgid "Appraisal Template Goal" +msgstr "考核目標模板" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:142 +msgid "Appraisal Template Missing" +msgstr "" + +#. Label of a Data field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Appraisal Template Title" +msgstr "評估模板標題" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:135 +msgid "Appraisal Template not found for some designations." +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:125 +msgid "Appraisal creation is queued. It may take a few minutes." +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:54 +msgid "Appraisal {0} already exists for Employee {1} for this Appraisal Cycle or overlapping period" +msgstr "" + +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:44 +msgid "Appraisal {0} does not belong to Employee {1}" +msgstr "" + +#. Name of a DocType +#: hr/doctype/appraisee/appraisee.json +msgid "Appraisee" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:113 +msgid "Appraisees: {0}" +msgstr "" + +#: setup.py:387 +msgid "Apprentice" +msgstr "學徒" + +#. Label of a Section Break field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Approval" +msgstr "" + +#. Label of a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Approval Status" +msgstr "審批狀態" + +#: hr/doctype/expense_claim/expense_claim.py:118 +msgid "Approval Status must be 'Approved' or 'Rejected'" +msgstr "審批狀態必須被“批准”或“拒絕”" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Approved" +msgstr "" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Approved" +msgstr "" + +#. Option for a Select field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Approved" +msgstr "" + +#. Label of a Link field in DocType 'Department Approver' +#: hr/doctype/department_approver/department_approver.json +msgctxt "Department Approver" +msgid "Approver" +msgstr "審批人" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Approver" +msgstr "審批人" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:16 +#: public/js/salary_slip_deductions_report_filters.js:22 +msgid "Apr" +msgstr "" + +#: hr/doctype/goal/goal.js:68 +msgid "Archive" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Archived" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip_list.js:11 +msgid "Are you sure you want to email the selected salary slips?" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:87 +msgid "Are you sure you want to proceed?" +msgstr "" + +#: hr/doctype/employee_referral/employee_referral.js:9 +msgid "Are you sure you want to reject the Employee Referral?" +msgstr "" + +#. Label of a Datetime field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Arrival Datetime" +msgstr "到達日期時間" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:41 +msgid "As per your assigned Salary Structure you cannot apply for benefits" +msgstr "根據您指定的薪資結構,您無法申請福利" + +#. Label of a Data field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Asset Name" +msgstr "" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Assets Allocated" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:162 +msgid "Assign" +msgstr "" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/assign_salary_structure/assign_salary_structure.json +msgid "Assign Salary Structure" +msgstr "分配薪資結構" + +#: payroll/doctype/salary_structure/salary_structure.js:103 +msgid "Assign to Employee" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:250 +msgid "Assigning Structures..." +msgstr "" + +#. Label of a Select field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Assignment based on" +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.js:38 +#: hr/doctype/job_requisition/job_requisition.js:59 +msgid "Associate Job Opening" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Associated Document" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Associated Document Type" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:107 +msgid "Atleast one interview has to be selected." +msgstr "" + +#. Label of a Attach field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Attachments" +msgstr "" + +#. Label of a Attach field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Attachments" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the HR Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#: hr/doctype/attendance/attendance.json hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +#: overrides/dashboard_overrides.py:10 templates/emails/training_event.html:9 +msgid "Attendance" +msgstr "出勤" + +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Attendance" +msgid "Attendance" +msgstr "出勤" + +#. Option for a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Attendance" +msgstr "出勤" + +#. Label of a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Attendance" +msgstr "出勤" + +#. Label of a chart in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Attendance Count" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Attendance Dashboard" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:43 +msgid "Attendance Date" +msgstr "" + +#. Label of a Date field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Attendance Date" +msgstr "" + +#. Label of a Date field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Attendance From Date" +msgstr "" + +#: hr/doctype/upload_attendance/upload_attendance.js:20 +msgid "Attendance From Date and Attendance To Date is mandatory" +msgstr "考勤起始日期和出席的日期,是強制性的" + +#: hr/report/shift_attendance/shift_attendance.py:123 +msgid "Attendance ID" +msgstr "" + +#: hr/doctype/attendance/attendance_list.js:115 +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:177 +msgid "Attendance Marked" +msgstr "" + +#. Label of a Link field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Attendance Marked" +msgstr "" + +#. Name of a DocType +#: hr/doctype/attendance_request/attendance_request.json +msgid "Attendance Request" +msgstr "出席請求" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Attendance Request" +msgstr "出席請求" + +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Attendance Request" +msgid "Attendance Request" +msgstr "出席請求" + +#. Label of a Date field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Attendance To Date" +msgstr "出席會議日期" + +#: hr/doctype/attendance_request/attendance_request.py:105 +msgid "Attendance Updated" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.js:19 +msgid "Attendance Warnings" +msgstr "" + +#: hr/doctype/attendance/attendance.py:56 +msgid "Attendance can not be marked for future dates: {0}" +msgstr "" + +#: hr/doctype/attendance/attendance.py:62 +msgid "Attendance date {0} can not be less than employee {1}'s joining date: {2}" +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:176 +msgid "Attendance for all the employees under this criteria has been marked already." +msgstr "" + +#: hr/doctype/attendance/attendance.py:113 +msgid "Attendance for employee {0} is already marked for an overlapping shift {1}: {2}" +msgstr "" + +#: hr/doctype/attendance/attendance.py:74 +msgid "Attendance for employee {0} is already marked for the date {1}: {2}" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:545 +msgid "Attendance for employee {0} is already marked for this day" +msgstr "考勤員工{0}已標記為這一天" + +#: hr/doctype/attendance/attendance_list.js:95 +msgid "Attendance from {0} to {1} has already been marked for the Employee {2}" +msgstr "" + +#: hr/doctype/shift_type/shift_type.js:29 +msgid "Attendance has been marked as per employee check-ins" +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:218 +msgid "Attendance marked successfully" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:123 +msgid "Attendance not submitted for {0} as it is a Holiday." +msgstr "由於是假期,因此未出席{0}的考勤。" + +#: hr/doctype/attendance_request/attendance_request.py:132 +msgid "Attendance not submitted for {0} as {1} is on leave." +msgstr "" + +#. Description of a Date field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Attendance will be marked automatically only after this date." +msgstr "" + +#. Label of a Section Break field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Attendees" +msgstr "與會者" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:45 +msgid "Attrition Count" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:20 +#: public/js/salary_slip_deductions_report_filters.js:26 +msgid "Aug" +msgstr "" + +#. Label of a Section Break field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Auto Attendance Settings" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Auto Leave Encashment" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Automated Based on Goal Progress" +msgstr "" + +#. Description of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Automatically fetches all assets allocated to the employee, if any" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Available Leave(s)" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Average Feedback Score" +msgstr "" + +#. Label of a Rating field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Average Rating" +msgstr "" + +#. Description of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Average of Goal Score, Feedback Score, and Self Appraisal Score (out of 5)" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:52 +msgid "Avg Feedback Score" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:223 +msgid "Avg Utilization" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:229 +msgid "Avg Utilization (Billed Only)" +msgstr "" + +#. Option for a Select field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Awaiting Response" +msgstr "正在等待回應" + +#: hr/doctype/leave_application/leave_application.py:166 +msgid "Backdated Leave Application is restricted. Please set the {} in {}" +msgstr "" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:48 +msgid "Bank" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Bank Account" +msgstr "" + +#. Label of a Data field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Bank Account No" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Bank Details" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.js:89 +msgid "Bank Entries" +msgstr "銀行條目" + +#: payroll/report/bank_remittance/bank_remittance.py:33 +msgid "Bank Name" +msgstr "" + +#. Label of a Data field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Bank Name" +msgstr "" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/bank_remittance/bank_remittance.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Bank Remittance" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:143 +msgid "Base" +msgstr "基礎" + +#. Label of a Currency field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Base" +msgstr "基礎" + +#. Label of a Section Break field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Base & Variable" +msgstr "" + +#. Label of a Int field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Begin On (Days)" +msgstr "" + +#. Label of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Begin check-in before shift start time (in minutes)" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Beginner" +msgstr "" + +#: controllers/employee_reminders.py:75 +msgid "Below is the list of upcoming holidays for you:" +msgstr "" + +#: overrides/dashboard_overrides.py:30 +msgid "Benefit" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Benefits" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Benefits" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Benefits" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:171 +msgid "Bill Amount" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:254 +msgid "Billed Hours" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:70 +msgid "Billed Hours (B)" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Bimonthly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Bimonthly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Bimonthly" +msgstr "" + +#: controllers/employee_reminders.py:134 +msgid "Birthday Reminder" +msgstr "" + +#: controllers/employee_reminders.py:141 +msgid "Birthday Reminder 🎂" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Birthdays" +msgstr "" + +#. Label of a Date field in DocType 'Leave Block List Date' +#: hr/doctype/leave_block_list_date/leave_block_list_date.json +msgctxt "Leave Block List Date" +msgid "Block Date" +msgstr "封鎖日期" + +#. Label of a Section Break field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Block Days" +msgstr "封鎖天數" + +#. Label of a Section Break field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Body" +msgstr "" + +#. Label of a Section Break field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Bonus" +msgstr "" + +#. Label of a Currency field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Bonus Amount" +msgstr "獎金金額" + +#. Label of a Date field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Bonus Payment Date" +msgstr "獎金支付日期" + +#: payroll/doctype/retention_bonus/retention_bonus.py:17 +msgid "Bonus Payment Date cannot be a past date" +msgstr "獎金支付日期不能是過去的日期" + +#: hr/report/employee_analytics/employee_analytics.py:33 +#: hr/report/employee_birthday/employee_birthday.py:24 +#: payroll/doctype/salary_structure/salary_structure.js:133 +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:29 +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:21 +#: payroll/report/salary_register/salary_register.py:135 +#: public/js/salary_slip_deductions_report_filters.js:48 +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Branch" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Branch" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Branch" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Branch" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:180 +msgid "Branch: {0}" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:99 +msgid "Bulk Assign Structure" +msgstr "" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment_list.js:3 +msgid "Bulk Leave Policy Assignment" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:130 +msgid "Bulk Salary Structure Assignment" +msgstr "" + +#: payroll/report/income_tax_computation/income_tax_computation.py:515 +msgid "CTC" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "CTC" +msgstr "" + +#. Label of a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Calculate Gratuity Amount Based On" +msgstr "" + +#. Label of a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Calculate Payroll Working Days Based On" +msgstr "" + +#. Description of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Calculated in days" +msgstr "" + +#: setup.py:323 +msgid "Calls" +msgstr "電話" + +#: setup.py:392 +msgid "Campaign" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:116 +msgid "Cancellation Queued" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Cancelled" +msgstr "" + +#. Option for a Select field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Cancelled" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:255 +msgid "Cannot create Salary Slip for Employee joining after Payroll Period" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:258 +msgid "Cannot create Salary Slip for Employee who has left before Payroll Period" +msgstr "" + +#: hr/doctype/job_applicant/job_applicant.py:49 +msgid "Cannot create a Job Applicant against a closed Job Opening" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:200 +msgid "Cannot create or change transactions against a {0} Appraisal Cycle." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:552 +msgid "Cannot find active Leave Period" +msgstr "找不到有效的休假期" + +#: hr/doctype/attendance/attendance.py:145 +msgid "Cannot mark attendance for an Inactive employee {0}" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:59 +msgid "Cannot submit. Attendance is not marked for some employees." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:138 +msgid "Cannot update allocation for {0} after submission" +msgstr "" + +#: hr/doctype/goal/goal_list.js:104 +msgid "Cannot update status of Goal groups" +msgstr "" + +#. Label of a Check field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Carry Forward" +msgstr "發揚" + +#. Label of a Section Break field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Carry Forward" +msgstr "發揚" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Carry Forwarded Leaves" +msgstr "" + +#: setup.py:338 setup.py:339 +msgid "Casual Leave" +msgstr "" + +#. Label of a Text field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Cause of Grievance" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Change" +msgstr "" + +#: hr/doctype/goal/goal.js:96 +msgid "Changing KRA in this parent goal will align all the child goals to the same KRA, if any." +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Account" +msgid "Chart of Accounts" +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Cost Center" +msgid "Chart of Cost Centers" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1355 +msgid "Check Error Log {0} for more details." +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Check Vacancies On Job Offer Creation" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:119 +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:329 +msgid "Check {0} for more details" +msgstr "" + +#. Label of a Date field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Check-in Date" +msgstr "" + +#. Label of a Date field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Check-out Date" +msgstr "離開日期" + +#: hr/doctype/goal/goal_tree.js:52 +msgid "Child nodes can only be created under 'Group' type nodes" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Claim Benefit For" +msgstr "索賠利益" + +#. Label of a Date field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Claim Date" +msgstr "索賠日期" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Claimed" +msgstr "聲稱" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:69 +msgid "Claimed Amount" +msgstr "聲明金額" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Claimed Amount" +msgstr "聲明金額" + +#. Label of a Currency field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Claimed Amount" +msgstr "聲明金額" + +#. Label of a Card Break in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: overrides/dashboard_overrides.py:81 +msgid "Claims" +msgstr "" + +#: www/jobs/index.html:20 +msgid "Clear All" +msgstr "" + +#. Label of a Date field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Clearance Date" +msgstr "" + +#. Option for a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Cleared" +msgstr "" + +#. Option for a Select field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Cleared" +msgstr "" + +#: hr/doctype/goal/goal.js:75 +msgid "Close" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Closed" +msgstr "" + +#. Option for a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Closed" +msgstr "" + +#: templates/generators/job_opening.html:170 +msgid "Closed On" +msgstr "" + +#. Label of a Date field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Closed On" +msgstr "" + +#: templates/generators/job_opening.html:170 +msgid "Closes On" +msgstr "" + +#. Label of a Date field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Closes On" +msgstr "" + +#: www/jobs/index.html:216 +msgid "Closes on:" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:78 +msgid "Closing Balance" +msgstr "" + +#. Label of a Text field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Closing Notes" +msgstr "" + +#. Label of a Text field in DocType 'Appointment Letter Template' +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgctxt "Appointment Letter Template" +msgid "Closing Notes" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:117 +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:122 +msgid "Collapse All" +msgstr "" + +#. Label of a Color field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Color" +msgstr "" + +#. Label of a Text field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Comments" +msgstr "" + +#. Label of a Small Text field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Comments" +msgstr "" + +#: setup.py:384 +msgid "Commission" +msgstr "" + +#: hr/dashboard_chart_source/employees_by_age/employees_by_age.js:8 +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js:8 +#: hr/doctype/goal/goal_tree.js:10 +#: hr/doctype/leave_control_panel/leave_control_panel.js:172 +#: hr/report/appraisal_overview/appraisal_overview.js:9 +#: hr/report/employee_advance_summary/employee_advance_summary.js:29 +#: hr/report/employee_advance_summary/employee_advance_summary.py:54 +#: hr/report/employee_analytics/employee_analytics.js:9 +#: hr/report/employee_analytics/employee_analytics.py:14 +#: hr/report/employee_analytics/employee_analytics.py:37 +#: hr/report/employee_birthday/employee_birthday.js:16 +#: hr/report/employee_birthday/employee_birthday.py:28 +#: hr/report/employee_exits/employee_exits.js:21 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:9 +#: hr/report/employee_leave_balance/employee_leave_balance.js:21 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:16 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:50 +#: hr/report/project_profitability/project_profitability.js:9 +#: hr/report/recruitment_analytics/recruitment_analytics.js:9 +#: hr/report/shift_attendance/shift_attendance.js:40 +#: hr/report/shift_attendance/shift_attendance.py:104 +#: payroll/report/bank_remittance/bank_remittance.js:9 +#: payroll/report/income_tax_computation/income_tax_computation.js:9 +#: payroll/report/salary_register/salary_register.js:39 +#: payroll/report/salary_register/salary_register.py:156 +#: public/js/salary_slip_deductions_report_filters.js:7 +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Company" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Company" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Account' +#: hr/doctype/expense_claim_account/expense_claim_account.json +msgctxt "Expense Claim Account" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Period' +#: payroll/doctype/payroll_period/payroll_period.json +msgctxt "Payroll Period" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Salary Component Account' +#: payroll/doctype/salary_component_account/salary_component_account.json +msgctxt "Salary Component Account" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Company" +msgstr "" + +#. Label of a Link field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Company" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Company Details" +msgstr "" + +#. Name of a DocType +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgid "Compensatory Leave Request" +msgstr "補償請假" + +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgctxt "Compensatory Leave Request" +msgid "Compensatory Leave Request" +msgstr "補償請假" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Compensatory Leave Request" +msgstr "補償請假" + +#: setup.py:347 setup.py:348 +msgid "Compensatory Off" +msgstr "補假" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Completed" +msgstr "" + +#. Option for a Select field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Completed" +msgstr "" + +#. Label of a Date field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Completed On" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.js:95 +msgid "Completing onboarding" +msgstr "" + +#. Label of a Data field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Component" +msgstr "零件" + +#. Label of a Link field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Component" +msgstr "零件" + +#. Label of a Section Break field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Component properties and references " +msgstr "" + +#. Label of a Code field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Condition" +msgstr "" + +#. Label of a Code field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Condition" +msgstr "" + +#. Label of a Code field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "Condition" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Condition & Formula" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:13 +msgid "Condition and Formula Help" +msgstr "條件和公式幫助" + +#. Label of a Section Break field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Condition and formula" +msgstr "" + +#. Label of a Section Break field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Conditions" +msgstr "" + +#. Label of a HTML field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Conditions and Formula variable and example" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Conference" +msgstr "會議" + +#. Label of a Tab Break field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Connections" +msgstr "" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Connections" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.js:58 +msgid "Consider Grace Period" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Consider Marked Attendance on Holidays" +msgstr "" + +#: payroll/report/income_tax_computation/income_tax_computation.js:40 +msgid "Consider Tax Exemption Declaration" +msgstr "" + +#. Label of a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Consider Unmarked Attendance As" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:55 +msgid "Consolidate Leave Types" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Contact Email" +msgstr "" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Contact No." +msgstr "" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Contact Number" +msgstr "聯繫電話" + +#. Label of a Data field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Contact Number" +msgstr "聯繫電話" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Contact Number" +msgstr "聯繫電話" + +#: setup.py:383 +msgid "Contract" +msgstr "" + +#. Label of a Attach field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Copy of Invitation/Announcement" +msgstr "邀請/公告的副本" + +#: hr/report/project_profitability/project_profitability.py:178 +msgid "Cost" +msgstr "" + +#. Label of a Link field in DocType 'Employee Cost Center' +#: payroll/doctype/employee_cost_center/employee_cost_center.json +msgctxt "Employee Cost Center" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Cost Center" +msgstr "" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Cost Center" +msgstr "" + +#. Label of a Table field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Cost Centers" +msgstr "" + +#. Label of a Table field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Costing" +msgstr "" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Costing Details" +msgstr "成本計算詳情" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1416 +msgid "Could not submit some Salary Slips: {}" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:299 +msgid "Could not update Goal" +msgstr "" + +#: hr/doctype/goal/goal_list.js:138 +msgid "Could not update goals" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Country" +msgstr "" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Course" +msgstr "課程" + +#. Label of a Data field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Course" +msgstr "課程" + +#. Label of a Text field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Cover Letter" +msgstr "求職信" + +#: hr/doctype/employee_advance/employee_advance.js:50 +#: hr/doctype/employee_advance/employee_advance.js:61 +#: hr/doctype/employee_advance/employee_advance.js:72 +#: hr/doctype/employee_advance/employee_advance.js:76 +#: hr/doctype/employee_onboarding/employee_onboarding.js:44 +#: hr/doctype/employee_onboarding/employee_onboarding.js:45 +#: hr/doctype/expense_claim/expense_claim.js:235 +#: hr/doctype/job_applicant/job_applicant.js:26 +#: hr/doctype/job_applicant/job_applicant.js:46 +#: hr/doctype/vehicle_log/vehicle_log.js:9 +#: hr/doctype/vehicle_log/vehicle_log.js:10 +#: public/js/erpnext/delivery_trip.js:12 +msgid "Create" +msgstr "" + +#: hr/doctype/employee_referral/employee_referral.js:39 +msgid "Create Additional Salary" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:35 +msgid "Create Appraisals" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_department/create_department.json +msgid "Create Department" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_designation/create_designation.json +msgid "Create Designation" +msgstr "" + +#. Title of an Onboarding Step +#: hr/doctype/job_offer/job_offer.js:40 +#: hr/onboarding_step/create_employee/create_employee.json +#: payroll/onboarding_step/create_employee/create_employee.json +msgid "Create Employee" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_holiday_list/create_holiday_list.json +msgid "Create Holiday List" +msgstr "" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_income_tax_slab/create_income_tax_slab.json +msgid "Create Income Tax Slab" +msgstr "" + +#: hr/doctype/interview_round/interview_round.js:7 +msgid "Create Interview" +msgstr "" + +#: hr/doctype/employee_referral/employee_referral.js:21 +msgid "Create Job Applicant" +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.js:31 +msgid "Create Job Opening" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.js:10 +msgid "Create Journal Entry" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_leave_allocation/create_leave_allocation.json +msgid "Create Leave Allocation" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_leave_application/create_leave_application.json +msgid "Create Leave Application" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/create_leave_type/create_leave_type.json +msgid "Create Leave Type" +msgstr "" + +#. Label of a Check field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Create New Employee Id" +msgstr "創建新的員工ID" + +#: payroll/doctype/gratuity/gratuity.js:36 +msgid "Create Payment Entry" +msgstr "" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_payroll_period/create_payroll_period.json +msgid "Create Payroll Period" +msgstr "" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_salary_component/create_salary_component.json +msgid "Create Salary Component" +msgstr "" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_salary_slip/create_salary_slip.json +#: public/js/erpnext/timesheet.js:8 +msgid "Create Salary Slip" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:72 +#: payroll/doctype/payroll_entry/payroll_entry.js:79 +#: payroll/doctype/payroll_entry/payroll_entry.js:146 +msgid "Create Salary Slips" +msgstr "創建工資單" + +#. Title of an Onboarding Step +#: payroll/onboarding_step/create_salary_structure/create_salary_structure.json +msgid "Create Salary Structure" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Create Separate Payment Entry Against Benefit Claim" +msgstr "針對福利申請創建單獨的付款條目" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:191 +msgid "Creating Appraisals" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:412 +msgid "Creating Payment Entries......" +msgstr "創建支付條目......" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1378 +msgid "Creating Salary Slips..." +msgstr "創建工資單......" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:128 +msgid "Creation Failed" +msgstr "" + +#: hr/doctype/appraisal_template/appraisal_template.py:23 +msgid "Criteria" +msgstr "" + +#. Label of a Data field in DocType 'Employee Feedback Criteria' +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgctxt "Employee Feedback Criteria" +msgid "Criteria" +msgstr "" + +#. Label of a Link field in DocType 'Employee Feedback Rating' +#: hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgctxt "Employee Feedback Rating" +msgid "Criteria" +msgstr "" + +#. Description of a Table field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Criteria based on which employee should be rated in Performance Feedback and Self Appraisal" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:206 +#: payroll/report/bank_remittance/bank_remittance.py:48 +#: payroll/report/salary_register/salary_register.js:26 +#: payroll/report/salary_register/salary_register.py:244 +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Currency" +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Currency" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grade' +#: hr/doctype/employee_grade/employee_grade.json +msgctxt "Employee Grade" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Currency" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Currency" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Currency " +msgstr "" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:99 +msgid "Currency of selected Income Tax Slab should be {0} instead of {1}" +msgstr "" + +#: hr/employee_property_update.js:85 +msgid "Current" +msgstr "" + +#. Label of a Data field in DocType 'Employee Property History' +#: hr/doctype/employee_property_history/employee_property_history.json +msgctxt "Employee Property History" +msgid "Current" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Current CTC" +msgstr "" + +#. Label of a Int field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Current Count" +msgstr "當前計數" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Current Employer " +msgstr "" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Current Job Title" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Current Month Income Tax" +msgstr "" + +#: hr/doctype/vehicle_log/vehicle_log.py:15 +msgid "Current Odometer Value should be greater than Last Odometer Value {0}" +msgstr "" + +#. Label of a Int field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Current Odometer value " +msgstr "" + +#. Label of a Int field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Current Openings" +msgstr "當前空缺" + +#. Option for a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Current Slab" +msgstr "" + +#. Label of a Int field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Current Work Experience" +msgstr "" + +#. Label of a Table field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Current Work Experience" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:98 +msgid "Currently, there is no {0} leave period for this date to create/update leave allocation." +msgstr "" + +#. Option for a Select field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Custom Range" +msgstr "" + +#: hr/report/project_profitability/project_profitability.js:31 +#: hr/report/project_profitability/project_profitability.py:135 +msgid "Customer" +msgstr "" + +#. Label of a Data field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Cycle Name" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Daily" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Daily" +msgstr "" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Daily" +msgstr "" + +#. Name of a DocType +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/doctype/daily_work_summary/daily_work_summary.json +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.js:7 +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Daily Work Summary" +msgstr "每日工作總結" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Daily Work Summary" +msgid "Daily Work Summary" +msgstr "每日工作總結" + +#. Name of a DocType +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hr/page/team_updates/team_updates.js:12 +msgid "Daily Work Summary Group" +msgstr "日常工作總結小組" + +#. Label of a Link field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Daily Work Summary Group" +msgstr "日常工作總結小組" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgctxt "Daily Work Summary Group" +msgid "Daily Work Summary Group" +msgstr "日常工作總結小組" + +#. Name of a DocType +#: hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgid "Daily Work Summary Group User" +msgstr "日常工作摘要組用戶" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Daily Work Summary Replies" +msgstr "日常工作總結回复" + +#. Label of a shortcut in the Employee Lifecycle Workspace +#. Label of a shortcut in the Expense Claims Workspace +#. Label of a shortcut in the Recruitment Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#. Label of a shortcut in the Payroll Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/expense_claims/expense_claims.json +#: hr/workspace/recruitment/recruitment.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +#: payroll/workspace/payroll/payroll.json +msgid "Dashboard" +msgstr "" + +#. Label of a Tab Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Dashboard" +msgstr "" + +#. Title of an Onboarding Step +#: hr/onboarding_step/data_import/data_import.json +msgid "Data Import" +msgstr "" + +#: hr/notification/training_scheduled/training_scheduled.html:27 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:9 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:22 +#: hr/report/vehicle_expenses/vehicle_expenses.py:42 +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Date" +msgstr "" + +#. Label of a Datetime field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Date " +msgstr "" + +#: hr/doctype/goal/goal_tree.js:38 +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.js:16 +msgid "Date Range" +msgstr "" + +#: hr/doctype/leave_block_list/leave_block_list.py:19 +msgid "Date is repeated" +msgstr "日期重複" + +#: hr/report/employee_analytics/employee_analytics.py:32 +#: hr/report/employee_birthday/employee_birthday.py:23 +msgid "Date of Birth" +msgstr "" + +#. Label of a Date field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Date of Birth" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:32 +#: payroll/report/income_tax_computation/income_tax_computation.py:507 +#: payroll/report/salary_register/salary_register.py:129 setup.py:394 +msgid "Date of Joining" +msgstr "" + +#. Label of a Date field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Date of Joining" +msgstr "" + +#. Label of a Date field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Date of Joining" +msgstr "" + +#. Label of a Date field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Date of Joining" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Date of Joining" +msgstr "" + +#. Label of a Data field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Date of Joining" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Dates & Reason" +msgstr "" + +#. Label of a Select field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Dates Based On" +msgstr "" + +#: payroll/report/bank_remittance/bank_remittance.py:19 +msgid "Debit A/C Number" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:24 +#: public/js/salary_slip_deductions_report_filters.js:30 +msgid "Dec" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:193 +msgid "Decision Pending" +msgstr "" + +#. Label of a Table field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Declarations" +msgstr "聲明" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Declaration +#. Category' +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Declared Amount" +msgstr "" + +#. Label of a Check field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Deduct Full Tax on Selected Payroll Date" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Deduct Tax For Unclaimed Employee Benefits" +msgstr "扣除未領取僱員福利的稅" + +#. Label of a Check field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Deduct Tax For Unclaimed Employee Benefits" +msgstr "扣除未領取僱員福利的稅" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "扣除未提交免稅證明的稅額" + +#. Label of a Check field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Deduct Tax For Unsubmitted Tax Exemption Proof" +msgstr "扣除未提交免稅證明的稅額" + +#: payroll/report/salary_register/salary_register.py:84 +#: payroll/report/salary_register/salary_register.py:91 +msgid "Deduction" +msgstr "" + +#. Option for a Select field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Deduction" +msgstr "" + +#. Label of a Card Break in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Deduction Reports" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.js:74 +msgid "Deduction from Salary" +msgstr "" + +#. Label of a Table field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Deductions" +msgstr "扣除" + +#. Label of a Table field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Deductions" +msgstr "扣除" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Deductions before tax calculation" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Account' +#: hr/doctype/expense_claim_account/expense_claim_account.json +msgctxt "Expense Claim Account" +msgid "Default Account" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Default Account" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Default Amount" +msgstr "預設數量" + +#. Description of a Link field in DocType 'Salary Component Account' +#: payroll/doctype/salary_component_account/salary_component_account.json +msgctxt "Salary Component Account" +msgid "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected." +msgstr "默認銀行/現金帳戶時,會選擇此模式可以自動在工資日記條目更新。" + +#. Label of a Currency field in DocType 'Employee Grade' +#: hr/doctype/employee_grade/employee_grade.json +msgctxt "Employee Grade" +msgid "Default Base Pay" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grade' +#: hr/doctype/employee_grade/employee_grade.json +msgctxt "Employee Grade" +msgid "Default Salary Structure" +msgstr "默認工資結構" + +#. Label of a Check field in DocType 'Expense Claim Type' +#: hr/doctype/expense_claim_type/expense_claim_type.json +msgctxt "Expense Claim Type" +msgid "Deferred Expense Account" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Define Opening Balance for Earning and Deductions" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Delivery Trip" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.js:177 +#: hr/report/appraisal_overview/appraisal_overview.js:29 +#: hr/report/appraisal_overview/appraisal_overview.py:61 +#: hr/report/employee_analytics/employee_analytics.py:34 +#: hr/report/employee_birthday/employee_birthday.py:25 +#: hr/report/employee_exits/employee_exits.js:27 +#: hr/report/employee_exits/employee_exits.py:65 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:37 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:62 +#: hr/report/employee_leave_balance/employee_leave_balance.js:30 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:30 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py:24 +#: hr/report/shift_attendance/shift_attendance.js:34 +#: hr/report/shift_attendance/shift_attendance.py:97 +#: payroll/doctype/salary_structure/salary_structure.js:135 +#: payroll/report/income_tax_computation/income_tax_computation.js:33 +#: payroll/report/income_tax_computation/income_tax_computation.py:494 +#: payroll/report/salary_register/salary_register.py:142 +#: public/js/salary_slip_deductions_report_filters.js:42 setup.py:400 +#: templates/generators/job_opening.html:82 +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Department" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Department" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Employee Detail' +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgctxt "Payroll Employee Detail" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Department" +msgstr "" + +#. Label of a Link field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Department" +msgstr "" + +#. Name of a DocType +#: hr/doctype/department_approver/department_approver.json +msgid "Department Approver" +msgstr "部門批准人" + +#. Label of a chart in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Department Wise Openings" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:182 +msgid "Department: {0}" +msgstr "" + +#. Label of a Datetime field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Departure Datetime" +msgstr "離開日期時間" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Depends on Payment Days" +msgstr "" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Depends on Payment Days" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:156 +msgid "Description" +msgstr "" + +#. Label of a Long Text field in DocType 'Appointment Letter content' +#: hr/doctype/appointment_letter_content/appointment_letter_content.json +msgctxt "Appointment Letter content" +msgid "Description" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Description" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Description" +msgstr "" + +#. Label of a Text Editor field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Description" +msgstr "" + +#. Label of a Text field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Expected Skill Set' +#: hr/doctype/expected_skill_set/expected_skill_set.json +msgctxt "Expected Skill Set" +msgid "Description" +msgstr "" + +#. Label of a Text Editor field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Expense Claim Type' +#: hr/doctype/expense_claim_type/expense_claim_type.json +msgctxt "Expense Claim Type" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Description" +msgstr "" + +#. Label of a Section Break field in DocType 'Goal' +#. Label of a Text Editor field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Description" +msgstr "" + +#. Label of a Text field in DocType 'Grievance Type' +#: hr/doctype/grievance_type/grievance_type.json +msgctxt "Grievance Type" +msgid "Description" +msgstr "" + +#. Label of a Data field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Description" +msgstr "" + +#. Label of a Text field in DocType 'Interview Type' +#: hr/doctype/interview_type/interview_type.json +msgctxt "Interview Type" +msgid "Description" +msgstr "" + +#. Label of a Text Editor field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'KRA' +#: hr/doctype/kra/kra.json +msgctxt "KRA" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Description" +msgstr "" + +#. Label of a Small Text field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Description" +msgstr "" + +#. Label of a Text field in DocType 'Skill' +#: hr/doctype/skill/skill.json +msgctxt "Skill" +msgid "Description" +msgstr "" + +#. Label of a Text Editor field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Description" +msgstr "" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Description" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.js:35 +#: hr/report/appraisal_overview/appraisal_overview.py:30 +#: hr/report/employee_analytics/employee_analytics.py:35 +#: hr/report/employee_birthday/employee_birthday.py:26 +#: hr/report/employee_exits/employee_exits.js:33 +#: hr/report/employee_exits/employee_exits.py:72 +#: hr/report/recruitment_analytics/recruitment_analytics.py:59 +#: payroll/doctype/salary_structure/salary_structure.js:134 +#: payroll/report/income_tax_computation/income_tax_computation.py:501 +#: payroll/report/salary_register/salary_register.py:149 +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Designation" +msgstr "" + +#. Linked DocType in Appraisal Template's connections +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Designation" +msgstr "" + +#. Label of a Data field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Designation" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Designation" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Designation" +msgstr "" + +#. Label of a Read Only field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Designation" +msgstr "" + +#. Label of a Data field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Designation" +msgstr "" + +#. Label of a Data field in DocType 'Payroll Employee Detail' +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgctxt "Payroll Employee Detail" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Designation" +msgstr "" + +#. Label of a Link field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Designation" +msgstr "" + +#. Name of a DocType +#: hr/doctype/designation_skill/designation_skill.json +msgid "Designation Skill" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:184 +msgid "Designation: {0}" +msgstr "" + +#: templates/emails/training_event.html:4 +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Details" +msgstr "" + +#. Label of a Text Editor field in DocType 'Job Applicant Source' +#: hr/doctype/job_applicant_source/job_applicant_source.json +msgctxt "Job Applicant Source" +msgid "Details" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Details" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Details of Sponsor (Name, Location)" +msgstr "贊助商詳情(名稱,地點)" + +#. Label of a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Determine Check-in and Check-out" +msgstr "" + +#. Label of a Check field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Disable" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Disable Rounded Total" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:96 +msgid "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:39 +msgid "Disable {0} or {1} to proceed." +msgstr "" + +#. Label of a Check field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Disabled" +msgstr "" + +#. Label of a Check field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Disabled" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Disabled" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Dispensed Amount (Pro-rated)" +msgstr "分配金額(按比例分配)" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Do Not Include in Total" +msgstr "" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Do not include in total" +msgstr "不包括在內" + +#: hr/doctype/goal/goal.js:98 +msgid "Do you still want to proceed?" +msgstr "" + +#: hr/doctype/interview/interview.py:70 +msgid "Do you want to update the Job Applicant {0} as {1} based on this interview result?" +msgstr "" + +#: payroll/report/salary_register/salary_register.js:48 +msgid "Document Status" +msgstr "" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Domestic" +msgstr "國內" + +#. Label of a Section Break field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Download Template" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Draft" +msgstr "" + +#. Option for a Select field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Draft" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Driver" +msgid "Driver" +msgstr "" + +#: hr/doctype/attendance/attendance.py:79 +msgid "Duplicate Attendance" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:60 +msgid "Duplicate Entry" +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.py:35 +msgid "Duplicate Job Requisition" +msgstr "" + +#: payroll/doctype/additional_salary/additional_salary.py:139 +msgid "Duplicate Overwritten Salary" +msgstr "" + +#. Label of a Int field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Duration (Days)" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.js:53 +msgid "Early Exit" +msgstr "" + +#. Label of a Check field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Early Exit" +msgstr "" + +#. Label of a Check field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Early Exit" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:91 +msgid "Early Exit By" +msgstr "" + +#. Label of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Early Exit Grace Period" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:186 +msgid "Early Exits" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Earned Leave" +msgstr "獲得休假" + +#. Label of a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Earned Leave Frequency" +msgstr "獲得休假頻率" + +#: hr/doctype/leave_allocation/leave_allocation.py:139 +msgid "Earned Leaves" +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:34 +msgid "Earned Leaves are allocated as per the configured frequency via scheduler." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:142 +msgid "Earned Leaves are auto-allocated via scheduler based on the annual allocation set in the Leave Policy: {0}" +msgstr "" + +#: hr/doctype/leave_type/leave_type.js:36 +msgid "Earned Leaves are leaves earned by an Employee after working with the company for a certain amount of time. Enabling this will allocate leaves on pro-rata basis by automatically updating Leave Allocation for leaves of this type at intervals set by 'Earned Leave Frequency." +msgstr "" + +#: payroll/report/salary_register/salary_register.py:84 +#: payroll/report/salary_register/salary_register.py:90 +msgid "Earning" +msgstr "盈利" + +#. Option for a Select field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Earning" +msgstr "盈利" + +#. Label of a Link field in DocType 'Employee Benefit Application Detail' +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgctxt "Employee Benefit Application Detail" +msgid "Earning Component" +msgstr "收入組件" + +#. Label of a Link field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Earning Component" +msgstr "收入組件" + +#: payroll/doctype/additional_salary/additional_salary.py:106 +msgid "Earning Salary Component is required for Employee Referral Bonus." +msgstr "" + +#. Label of a Table field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Earnings" +msgstr "收益" + +#. Label of a Table field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Earnings" +msgstr "收益" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Earnings & Deductions" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Earnings & Deductions" +msgstr "" + +#. Label of a Section Break field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Earnings and Taxation " +msgstr "" + +#. Label of a Date field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Effective From" +msgstr "" + +#. Label of a Date field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Effective To" +msgstr "" + +#. Label of a Date field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Effective from" +msgstr "" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Email" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Email" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Email Address" +msgstr "" + +#. Label of a Data field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Email ID" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Email Salary Slip to Employee" +msgstr "電子郵件工資單給員工" + +#: payroll/doctype/salary_slip/salary_slip_list.js:5 +msgid "Email Salary Slips" +msgstr "" + +#. Label of a Code field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Email Sent To" +msgstr "電子郵件發送給" + +#: hr/doctype/leave_application/leave_application.py:648 +msgid "Email sent to {0}" +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Emails salary slip to employee based on preferred email selected in Employee" +msgstr "電子郵件工資單員工根據員工選擇首選的電子郵件" + +#. Name of a role +#. Label of a Card Break in the HR Workspace +#: hr/doctype/appraisal/appraisal.json +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/appraisal_template/appraisal_template.json +#: hr/doctype/attendance_request/attendance_request.json +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hr/doctype/daily_work_summary/daily_work_summary.json +#: hr/doctype/employee_advance/employee_advance.json +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:139 +#: hr/doctype/employee_checkin/employee_checkin.json +#: hr/doctype/employee_grievance/employee_grievance.json +#: hr/doctype/employee_onboarding/employee_onboarding.js:26 +#: hr/doctype/employee_onboarding/employee_onboarding.js:39 +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hr/doctype/employee_promotion/employee_promotion.json +#: hr/doctype/employee_referral/employee_referral.json +#: hr/doctype/employee_separation/employee_separation.js:14 +#: hr/doctype/employee_transfer/employee_transfer.json +#: hr/doctype/expense_claim/expense_claim.json +#: hr/doctype/expense_claim_type/expense_claim_type.json +#: hr/doctype/goal/goal.json hr/doctype/goal/goal_tree.js:33 +#: hr/doctype/goal/goal_tree.js:62 +#: hr/doctype/grievance_type/grievance_type.json +#: hr/doctype/interest/interest.json +#: hr/doctype/leave_application/leave_application.json +#: hr/doctype/leave_control_panel/leave_control_panel.js:162 +#: hr/doctype/leave_encashment/leave_encashment.json +#: hr/doctype/leave_type/leave_type.json +#: hr/doctype/pwa_notification/pwa_notification.json +#: hr/doctype/shift_assignment/shift_assignment.json +#: hr/doctype/shift_request/shift_request.json +#: hr/doctype/shift_type/shift_type.json +#: hr/doctype/training_feedback/training_feedback.json +#: hr/report/appraisal_overview/appraisal_overview.js:24 +#: hr/report/appraisal_overview/appraisal_overview.py:22 +#: hr/report/employee_advance_summary/employee_advance_summary.js:9 +#: hr/report/employee_advance_summary/employee_advance_summary.py:47 +#: hr/report/employee_analytics/employee_analytics.py:30 +#: hr/report/employee_birthday/employee_birthday.py:21 +#: hr/report/employee_exits/employee_exits.js:39 +#: hr/report/employee_exits/employee_exits.py:24 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:31 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:55 +#: hr/report/employee_leave_balance/employee_leave_balance.js:36 +#: hr/report/employee_leave_balance/employee_leave_balance.py:40 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:24 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py:22 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:20 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:36 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:88 +#: hr/report/project_profitability/project_profitability.js:37 +#: hr/report/project_profitability/project_profitability.py:142 +#: hr/report/shift_attendance/shift_attendance.js:22 +#: hr/report/shift_attendance/shift_attendance.py:22 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.js:8 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:18 +#: hr/report/vehicle_expenses/vehicle_expenses.js:46 +#: hr/report/vehicle_expenses/vehicle_expenses.py:55 hr/workspace/hr/hr.json +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: payroll/doctype/employee_incentive/employee_incentive.json +#: payroll/doctype/employee_other_income/employee_other_income.json +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: payroll/doctype/retention_bonus/retention_bonus.json +#: payroll/doctype/salary_component/salary_component.json +#: payroll/doctype/salary_slip/salary_slip.json +#: payroll/doctype/salary_structure/salary_structure.js:137 +#: payroll/doctype/salary_structure/salary_structure.js:200 +#: payroll/report/income_tax_computation/income_tax_computation.js:26 +#: payroll/report/income_tax_computation/income_tax_computation.py:481 +#: payroll/report/income_tax_deductions/income_tax_deductions.py:25 +#: payroll/report/professional_tax_deductions/professional_tax_deductions.py:21 +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:20 +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:35 +#: payroll/report/salary_register/salary_register.js:32 +#: payroll/report/salary_register/salary_register.py:116 +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Employee" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Employee" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Incentive' +#. Label of a Section Break field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#. Label of a Tab Break field in DocType 'Employee Tax Exemption Proof +#. Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Employee Detail' +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgctxt "Payroll Employee Detail" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Retention Bonus' +#. Label of a Section Break field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Employee" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Employee" +msgstr "" + +#: payroll/report/bank_remittance/bank_remittance.py:35 +msgid "Employee A/C Number" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_advance/employee_advance.json +msgid "Employee Advance" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a shortcut in the Expense Claims Workspace +#. Label of a Link in the HR Workspace +#: hr/workspace/expense_claims/expense_claims.json hr/workspace/hr/hr.json +msgctxt "Employee Advance" +msgid "Employee Advance" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Employee Advance" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_advance_summary/employee_advance_summary.json +#: hr/workspace/expense_claims/expense_claims.json hr/workspace/hr/hr.json +msgid "Employee Advance Summary" +msgstr "員工提前總結" + +#: overrides/company.py:104 +msgid "Employee Advances" +msgstr "" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_analytics/employee_analytics.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Employee Analytics" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgid "Employee Attendance Tool" +msgstr "員工考勤工具" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Employee Attendance Tool" +msgid "Employee Attendance Tool" +msgstr "員工考勤工具" + +#. Name of a DocType +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgid "Employee Benefit Application" +msgstr "員工福利申請" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Benefit Application" +msgid "Employee Benefit Application" +msgstr "員工福利申請" + +#. Name of a DocType +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgid "Employee Benefit Application Detail" +msgstr "員工福利申請明細" + +#. Name of a DocType +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgid "Employee Benefit Claim" +msgstr "員工福利索賠" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Benefit Claim" +msgid "Employee Benefit Claim" +msgstr "員工福利索賠" + +#: setup.py:397 +msgid "Employee Benefits" +msgstr "員工福利" + +#. Label of a Table field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Employee Benefits" +msgstr "員工福利" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_birthday/employee_birthday.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Employee Birthday" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgid "Employee Boarding Activity" +msgstr "員工寄宿活動" + +#. Name of a DocType +#: hr/doctype/employee_checkin/employee_checkin.json +msgid "Employee Checkin" +msgstr "" + +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Employee Checkin" +msgid "Employee Checkin" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/employee_cost_center/employee_cost_center.json +msgid "Employee Cost Center" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee Details" +msgstr "員工詳細信息" + +#. Label of a Section Break field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Employee Details" +msgstr "員工詳細信息" + +#. Label of a Tab Break field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Employee Details" +msgstr "員工詳細信息" + +#. Label of a Section Break field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Employee Details" +msgstr "員工詳細信息" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Employee Details" +msgstr "員工詳細信息" + +#. Label of a Section Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Employee Details" +msgstr "員工詳細信息" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Employee Details" +msgstr "員工詳細信息" + +#. Label of a Small Text field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Employee Emails" +msgstr "員工電子郵件" + +#. Label of a Small Text field in DocType 'Training Result' +#: hr/doctype/training_result/training_result.json +msgctxt "Training Result" +msgid "Employee Emails" +msgstr "員工電子郵件" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee Exit Settings" +msgstr "" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_exits/employee_exits.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Employee Exits" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +msgid "Employee Feedback Criteria" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Employee Feedback Criteria" +msgid "Employee Feedback Criteria" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgid "Employee Feedback Rating" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:132 +msgid "Employee Filters" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_grade/employee_grade.json +#: payroll/doctype/salary_structure/salary_structure.js:136 +msgid "Employee Grade" +msgstr "員工等級" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Employee Grade" +msgid "Employee Grade" +msgstr "員工等級" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee Grade" +msgstr "員工等級" + +#. Label of a Link field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Employee Grade" +msgstr "員工等級" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Employee Grade" +msgstr "員工等級" + +#. Label of a Link field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Employee Grade" +msgstr "員工等級" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Employee Grade" +msgstr "員工等級" + +#. Name of a DocType +#: hr/doctype/employee_grievance/employee_grievance.json +msgid "Employee Grievance" +msgstr "" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a shortcut in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Grievance" +msgid "Employee Grievance" +msgstr "" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "Employee Group" +msgid "Employee Group" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_health_insurance/employee_health_insurance.json +msgid "Employee Health Insurance" +msgstr "員工健康保險" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employee Hours Utilization Based On Timesheet" +msgstr "" + +#. Label of a Attach Image field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Employee Image" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/employee_incentive/employee_incentive.json +msgid "Employee Incentive" +msgstr "員工激勵" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Employee Incentive" +msgid "Employee Incentive" +msgstr "員工激勵" + +#. Label of a Section Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Employee Info" +msgstr "" + +#. Name of a report +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the HR Workspace +#: hr/report/employee_information/employee_information.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/hr/hr.json +msgid "Employee Information" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hr/report/employee_leave_balance/employee_leave_balance.json +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Leaves Workspace +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.json +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgid "Employee Leave Balance Summary" +msgstr "" + +#. Name of a Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Employee Lifecycle" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Employee Lifecycle Dashboard" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:26 +#: hr/report/employee_exits/employee_exits.py:30 +#: hr/report/employee_leave_balance/employee_leave_balance.py:47 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py:23 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:94 +#: hr/report/project_profitability/project_profitability.py:147 +#: hr/report/shift_attendance/shift_attendance.py:31 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:19 +#: payroll/report/bank_remittance/bank_remittance.py:27 +#: payroll/report/income_tax_computation/income_tax_computation.py:488 +#: payroll/report/income_tax_deductions/income_tax_deductions.py:32 +#: payroll/report/professional_tax_deductions/professional_tax_deductions.py:28 +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:27 +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:28 +#: payroll/report/salary_register/salary_register.py:123 +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Appraisee' +#: hr/doctype/appraisee/appraisee.json +msgctxt "Appraisee" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Payroll Employee Detail' +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgctxt "Payroll Employee Detail" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Employee Name" +msgstr "" + +#. Label of a Read Only field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Employee Name" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Employee Name" +msgstr "" + +#. Label of a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee Naming By" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee Number" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgid "Employee Onboarding" +msgstr "員工入職" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a shortcut in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Onboarding" +msgid "Employee Onboarding" +msgstr "員工入職" + +#. Name of a DocType +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgid "Employee Onboarding Template" +msgstr "員工入職模板" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Employee Onboarding Template" +msgstr "員工入職模板" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Onboarding Template" +msgid "Employee Onboarding Template" +msgstr "員工入職模板" + +#: hr/doctype/employee_onboarding/employee_onboarding.py:32 +msgid "Employee Onboarding: {0} already exists for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/employee_other_income/employee_other_income.json +msgid "Employee Other Income" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgid "Employee Performance Feedback" +msgstr "" + +#. Linked DocType in Appraisal Cycle's connections +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Employee Performance Feedback" +msgstr "" + +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Employee Performance Feedback" +msgid "Employee Performance Feedback" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_promotion/employee_promotion.json +msgid "Employee Promotion" +msgstr "員工晉升" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a Link in the Performance Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/performance/performance.json +msgctxt "Employee Promotion" +msgid "Employee Promotion" +msgstr "員工晉升" + +#. Label of a Section Break field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Employee Promotion Details" +msgstr "員工促銷詳情" + +#: hr/doctype/employee_promotion/employee_promotion.py:20 +msgid "Employee Promotion cannot be submitted before Promotion Date" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_property_history/employee_property_history.json +msgid "Employee Property History" +msgstr "員工財產歷史" + +#. Name of a DocType +#: hr/doctype/employee_referral/employee_referral.json setup.py:391 +msgid "Employee Referral" +msgstr "員工推薦" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Employee Referral" +msgid "Employee Referral" +msgstr "員工推薦" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Employee Referral" +msgstr "員工推薦" + +#: payroll/doctype/additional_salary/additional_salary.py:102 +msgid "Employee Referral {0} is not applicable for referral bonus." +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Employee Responsible " +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Employee Retained" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_separation/employee_separation.json +msgid "Employee Separation" +msgstr "員工分離" + +#. Label of a Link in the Employee Lifecycle Workspace +#. Label of a shortcut in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Separation" +msgid "Employee Separation" +msgstr "員工分離" + +#. Name of a DocType +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgid "Employee Separation Template" +msgstr "員工分離模板" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Employee Separation Template" +msgstr "員工分離模板" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Separation Template" +msgid "Employee Separation Template" +msgstr "員工分離模板" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee Settings" +msgstr "員工設置" + +#. Name of a DocType +#: hr/doctype/employee_skill/employee_skill.json +msgid "Employee Skill" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgid "Employee Skill Map" +msgstr "" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Skill Map" +msgid "Employee Skill Map" +msgstr "" + +#. Label of a Table field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Employee Skills" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:194 +#: hr/report/employee_leave_balance/employee_leave_balance.js:42 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:36 +msgid "Employee Status" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +msgid "Employee Tax Exemption Category" +msgstr "員工免稅類別" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgid "Employee Tax Exemption Declaration" +msgstr "僱員免稅聲明" + +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Employee Tax Exemption Declaration" +msgstr "僱員免稅聲明" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgid "Employee Tax Exemption Declaration Category" +msgstr "員工免稅申報類別" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Employee Tax Exemption Declaration Category" +msgstr "員工免稅申報類別" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgid "Employee Tax Exemption Proof Submission" +msgstr "員工免稅證明提交" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Employee Tax Exemption Proof Submission" +msgstr "員工免稅證明提交" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgid "Employee Tax Exemption Proof Submission Detail" +msgstr "員工免稅證明提交細節" + +#. Name of a DocType +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgid "Employee Tax Exemption Sub Category" +msgstr "員工免稅子類別" + +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Employee Tax Exemption Sub Category" +msgid "Employee Tax Exemption Sub Category" +msgstr "員工免稅子類別" + +#. Name of a DocType +#: hr/doctype/employee_training/employee_training.json +msgid "Employee Training" +msgstr "" + +#. Name of a DocType +#: hr/doctype/employee_transfer/employee_transfer.json +msgid "Employee Transfer" +msgstr "員工轉移" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Employee Transfer" +msgid "Employee Transfer" +msgstr "員工轉移" + +#. Label of a Table field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Employee Transfer Detail" +msgstr "員工轉移詳情" + +#. Label of a Section Break field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Employee Transfer Details" +msgstr "員工轉移詳情" + +#: hr/doctype/employee_transfer/employee_transfer.py:17 +msgid "Employee Transfer cannot be submitted before Transfer Date" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.js:27 +msgid "Employee can be named by Employee ID if you assign one, or via Naming Series. Select your preference here." +msgstr "" + +#. Label of a Data field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Employee name" +msgstr "" + +#. Description of a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Employee records are created using the selected option" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:548 +msgid "Employee relieved on {0} must be set as 'Left'" +msgstr "員工解除對{0}必須設定為“左”" + +#: hr/doctype/shift_type/shift_type.py:168 +msgid "Employee was marked Absent due to missing Employee Checkins." +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:161 +msgid "Employee was marked Absent for not meeting the working hours threshold." +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:52 +msgid "Employee {0} already has an Attendance Request {1} that overlaps with this period" +msgstr "" + +#: hr/doctype/shift_assignment/shift_assignment.py:116 +msgid "Employee {0} already has an active Shift {1}: {2} that overlaps within this period." +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:151 +msgid "Employee {0} already submited an apllication {1} for the payroll period {2}" +msgstr "員工{0}已經在工資期間{2}提交了申請{1}" + +#: hr/doctype/shift_request/shift_request.py:128 +msgid "Employee {0} has already applied for Shift {1}: {2} that overlaps within this period" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:455 +msgid "Employee {0} has already applied for {1} between {2} and {3} : {4}" +msgstr "" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:25 +msgid "Employee {0} has no maximum benefit amount" +msgstr "員工{0}沒有最大福利金額" + +#: hr/doctype/attendance/attendance.py:198 +msgid "Employee {0} is not active or does not exist" +msgstr "員工{0}不活躍或不存在" + +#: hr/doctype/attendance/attendance.py:178 +msgid "Employee {0} is on Leave on {1}" +msgstr "員工{0}暫停{1}" + +#: hr/doctype/training_feedback/training_feedback.py:25 +msgid "Employee {0} not found in Training Event Participants." +msgstr "" + +#: hr/doctype/attendance/attendance.py:173 +msgid "Employee {0} on Half day on {1}" +msgstr "員工{0}上半天{1}" + +#. Subtitle of the Module Onboarding 'Human Resource' +#: hr/module_onboarding/human_resource/human_resource.json +msgid "Employee, Leaves, and more." +msgstr "" + +#: payroll/doctype/gratuity/gratuity.py:195 +msgid "Employee: {0} have to complete minimum {1} years for gratuity" +msgstr "" + +#: hr/dashboard_chart_source/employees_by_age/employees_by_age.py:42 +msgid "Employees" +msgstr "僱員" + +#. Label of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Employees" +msgstr "僱員" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Employees" +msgstr "僱員" + +#. Label of a Table field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Employees" +msgstr "僱員" + +#. Label of a Table field in DocType 'Training Result' +#: hr/doctype/training_result/training_result.json +msgctxt "Training Result" +msgid "Employees" +msgstr "僱員" + +#. Label of a HTML field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Employees HTML" +msgstr "員工HTML" + +#. Label of a HTML field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Employees HTML" +msgstr "員工HTML" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Employees Working on a Holiday" +msgstr "" + +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:31 +msgid "Employees cannot give feedback to themselves. Use {0} instead: {1}" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.py:79 +msgid "Employees will miss holiday reminders from {} until {}.
    Do you want to proceed with this change?" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:115 +msgid "Employees without Feedback: {0}" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:116 +msgid "Employees without Goals: {0}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Leaves Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.json +#: hr/workspace/leaves/leaves.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Employees working on a holiday" +msgstr "員工在假期工作" + +#. Name of a DocType +#: hr/doctype/employment_type/employment_type.json +#: templates/generators/job_opening.html:134 +msgid "Employment Type" +msgstr "" + +#. Label of a Data field in DocType 'Employment Type' +#: hr/doctype/employment_type/employment_type.json +msgctxt "Employment Type" +msgid "Employment Type" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Employment Type" +msgstr "" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Employment Type" +msgstr "" + +#. Label of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Enable Auto Attendance" +msgstr "" + +#. Label of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Enable Early Exit Marking" +msgstr "" + +#. Label of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Enable Late Entry Marking" +msgstr "" + +#. Label of a Check field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Enabled" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Encashment" +msgstr "兌現" + +#. Label of a Currency field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Encashment Amount" +msgstr "填充量" + +#. Label of a Date field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Encashment Date" +msgstr "" + +#. Label of a Float field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Encashment Days" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:135 +msgid "Encashment Days cannot exceed {0} {1} as per Leave Type settings" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:125 +msgid "Encashment Limit Applied" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Encrypt Salary Slips in Emails" +msgstr "" + +#: hr/doctype/attendance/attendance_list.js:58 +msgid "End" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:93 +#: hr/report/project_profitability/project_profitability.js:24 +#: hr/report/project_profitability/project_profitability.py:204 +#: payroll/report/salary_register/salary_register.py:169 +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Period' +#: payroll/doctype/payroll_period/payroll_period.json +msgctxt "Payroll Period" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Period Date' +#: payroll/doctype/payroll_period_date/payroll_period_date.json +msgctxt "Payroll Period Date" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "End Date" +msgstr "" + +#. Label of a Date field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "End Date" +msgstr "" + +#: hr/notification/training_scheduled/training_scheduled.html:34 +#: templates/emails/training_event.html:8 +msgid "End Time" +msgstr "" + +#. Label of a Time field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "End Time" +msgstr "" + +#. Label of a Datetime field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "End Time" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:188 +msgid "End date: {0}" +msgstr "" + +#: hr/doctype/training_event/training_event.py:26 +msgid "End time cannot be before start time" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Energy Point Log" +msgid "Energy Point Log" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Energy Point Rule" +msgid "Energy Point Rule" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "Energy Point Settings" +msgid "Energy Point Settings" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hr/workspace/performance/performance.json +msgid "Energy Points" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.js:32 +msgid "Enter the Standard Working Hours for a normal work day. These hours will be used in calculations of reports such as Employee Hours Utilization and Project Profitability analysis." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:136 +msgid "Enter the number of leaves you want to allocate for the period." +msgstr "" + +#: hr/doctype/goal/goal_list.js:103 hr/doctype/goal/goal_list.js:113 +#: payroll/doctype/additional_salary/additional_salary.py:234 +msgid "Error" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:121 +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:331 +msgid "Error Log" +msgstr "" + +#. Label of a Small Text field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Error Message" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1177 +msgid "Error in formula or condition" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2117 +msgid "Error in formula or condition: {0} in Income Tax Slab" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2196 +msgid "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" +msgstr "" + +#. Label of a Currency field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Estimated Cost Per Position" +msgstr "估計的每位成本" + +#: overrides/dashboard_overrides.py:47 +msgid "Evaluation" +msgstr "評估" + +#. Label of a Date field in DocType 'Employee Skill' +#: hr/doctype/employee_skill/employee_skill.json +msgctxt "Employee Skill" +msgid "Evaluation Date" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:25 +msgid "Evaluation Method cannot be changed as there are existing appraisals created for this cycle" +msgstr "" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Event Details" +msgstr "活動詳情" + +#: hr/notification/training_scheduled/training_scheduled.html:37 +msgid "Event Link" +msgstr "" + +#: hr/notification/training_scheduled/training_scheduled.html:23 +#: templates/emails/training_event.html:6 +msgid "Event Location" +msgstr "活動地點" + +#: templates/emails/training_event.html:5 +msgid "Event Name" +msgstr "事件名稱" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Event Name" +msgstr "事件名稱" + +#. Label of a Data field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Event Name" +msgstr "事件名稱" + +#. Label of a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Event Status" +msgstr "事件狀態" + +#. Option for a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Every Valid Check-in and Check-out" +msgstr "" + +#: controllers/employee_reminders.py:218 +msgid "Everyone, let’s congratulate them on their work anniversary!" +msgstr "" + +#: controllers/employee_reminders.py:125 +msgid "Everyone, let’s congratulate {0} on their birthday." +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Exam" +msgstr "考試" + +#. Label of a Float field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Exchange Rate" +msgstr "" + +#. Label of a Float field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Exchange Rate" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Exchange Rate" +msgstr "" + +#: hr/doctype/attendance/attendance_list.js:78 +msgid "Exclude Holidays" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:111 +msgid "Excluded {0} Non-Encashable Leaves for {1}" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Exempted from Income Tax" +msgstr "" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Exemption" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration +#. Category' +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Exemption Category" +msgstr "豁免類別" + +#. Label of a Read Only field in DocType 'Employee Tax Exemption Proof +#. Submission Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Exemption Category" +msgstr "豁免類別" + +#. Label of a Tab Break field in DocType 'Employee Tax Exemption Proof +#. Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Exemption Proofs" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration +#. Category' +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Exemption Sub Category" +msgstr "豁免子類別" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission +#. Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Exemption Sub Category" +msgstr "豁免子類別" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: overrides/dashboard_overrides.py:25 +msgid "Exit" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:193 +msgid "Exit Confirmed" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Exit Confirmed" +msgstr "" + +#. Name of a DocType +#: hr/doctype/exit_interview/exit_interview.json +#: hr/report/employee_exits/employee_exits.py:39 +msgid "Exit Interview" +msgstr "" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Exit Interview" +msgid "Exit Interview" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:63 +msgid "Exit Interview Pending" +msgstr "" + +#. Label of a Text Editor field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Exit Interview Summary" +msgstr "退出面試摘要" + +#: hr/doctype/exit_interview/exit_interview.py:33 +msgid "Exit Interview {0} already exists for Employee: {1}" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:145 +msgid "Exit Questionnaire" +msgstr "" + +#. Label of a Section Break field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Exit Questionnaire" +msgstr "" + +#: hr/doctype/exit_interview/test_exit_interview.py:108 +#: hr/doctype/exit_interview/test_exit_interview.py:118 +#: hr/doctype/exit_interview/test_exit_interview.py:120 setup.py:472 +#: setup.py:474 setup.py:495 +msgid "Exit Questionnaire Notification" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Exit Questionnaire Notification Template" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:68 +msgid "Exit Questionnaire Pending" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Exit Questionnaire Web Form" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:112 +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:116 +msgid "Expand All" +msgstr "" + +#. Label of a Rating field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Expected Average Rating" +msgstr "" + +#. Label of a Rating field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Expected Average Rating" +msgstr "" + +#. Label of a Date field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Expected By" +msgstr "" + +#. Label of a Currency field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Expected Compensation" +msgstr "" + +#. Name of a DocType +#: hr/doctype/expected_skill_set/expected_skill_set.json +msgid "Expected Skill Set" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Expected Skillset" +msgstr "" + +#: overrides/dashboard_overrides.py:29 +msgid "Expense" +msgstr "" + +#. Label of a Currency field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Expense" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Expense Account" +msgstr "" + +#. Name of a role +#: hr/doctype/employee_advance/employee_advance.json +#: hr/doctype/expense_claim/expense_claim.json +msgid "Expense Approver" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Expense Approver" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Expense Approver Mandatory In Expense Claim" +msgstr "費用審批人必須在費用索賠中" + +#. Name of a DocType +#. Label of a Card Break in the HR Workspace +#: hr/doctype/employee_advance/employee_advance.js:57 +#: hr/doctype/expense_claim/expense_claim.json +#: hr/doctype/vehicle_log/vehicle_log.js:7 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:20 +#: hr/workspace/hr/hr.json public/js/erpnext/delivery_trip.js:7 +msgid "Expense Claim" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a shortcut in the Expense Claims Workspace +#. Label of a Link in the HR Workspace +#: hr/workspace/expense_claims/expense_claims.json hr/workspace/hr/hr.json +msgctxt "Expense Claim" +msgid "Expense Claim" +msgstr "" + +#. Name of a DocType +#: hr/doctype/expense_claim_account/expense_claim_account.json +msgid "Expense Claim Account" +msgstr "報銷科目" + +#. Name of a DocType +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgid "Expense Claim Advance" +msgstr "費用索賠預付款" + +#. Name of a DocType +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgid "Expense Claim Detail" +msgstr "報銷詳情" + +#. Name of a DocType +#: hr/doctype/expense_claim_type/expense_claim_type.json +msgid "Expense Claim Type" +msgstr "費用報銷型" + +#. Label of a Link field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Expense Claim Type" +msgstr "費用報銷型" + +#. Label of a Data field in DocType 'Expense Claim Type' +#. Label of a Link in the Expense Claims Workspace +#: hr/doctype/expense_claim_type/expense_claim_type.json +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Expense Claim Type" +msgid "Expense Claim Type" +msgstr "費用報銷型" + +#: hr/doctype/vehicle_log/vehicle_log.py:48 +msgid "Expense Claim for Vehicle Log {0}" +msgstr "報銷車輛登錄{0}" + +#: hr/doctype/vehicle_log/vehicle_log.py:36 +msgid "Expense Claim {0} already exists for the Vehicle Log" +msgstr "報銷{0}已經存在車輛日誌" + +#. Name of a Workspace +#. Label of a chart in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgid "Expense Claims" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Expense Claims Dashboard" +msgstr "" + +#. Label of a Date field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Expense Date" +msgstr "犧牲日期" + +#. Label of a Section Break field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Expense Proof" +msgstr "費用證明" + +#. Name of a DocType +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of a Table field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Expense Taxes and Charges" +msgstr "" + +#. Label of a Link field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Expense Type" +msgstr "費用類型" + +#. Label of a Table field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Expenses" +msgstr "" + +#. Label of a Tab Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Expenses & Advances" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:32 +msgid "Expire Allocation" +msgstr "" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Expire Carry Forwarded Leaves (Days)" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation_list.js:8 +msgid "Expired" +msgstr "" + +#. Label of a Check field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Expired" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Expired Leave(s)" +msgstr "" + +#. Label of a Small Text field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Explanation" +msgstr "說明" + +#. Label of an action in the Onboarding Step 'HR Settings' +#: hr/onboarding_step/hr_settings/hr_settings.json +msgid "Explore" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:108 +msgid "Export" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:129 +msgid "Exporting..." +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Failed" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:116 +msgid "Failed to create/submit {0} for employees:" +msgstr "" + +#: overrides/company.py:37 +msgid "Failed to delete defaults for country {0}. Please contact support." +msgstr "" + +#: api/__init__.py:589 +msgid "Failed to download Salary Slip PDF" +msgstr "" + +#: hr/doctype/interview/interview.py:119 +msgid "Failed to send the Interview Reschedule notification. Please configure your email account." +msgstr "" + +#: overrides/company.py:52 +msgid "Failed to setup defaults for country {0}. Please contact support." +msgstr "" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:326 +msgid "Failed to submit some leave policy assignments:" +msgstr "" + +#: hr/doctype/interview/interview.py:212 +msgid "Failed to update the Job Applicant status" +msgstr "" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Failure Details" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:14 +#: public/js/salary_slip_deductions_report_filters.js:20 +msgid "Feb" +msgstr "" + +#: hr/doctype/interview/interview.js:151 +msgid "Feedback" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Feedback" +msgstr "" + +#. Label of a Tab Break field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Feedback" +msgstr "" + +#. Label of a Tab Break field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Feedback" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Feedback" +msgstr "" + +#. Label of a Text field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Feedback" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:48 +msgid "Feedback Count" +msgstr "" + +#. Label of a HTML field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Feedback HTML" +msgstr "" + +#. Label of a HTML field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Feedback HTML" +msgstr "" + +#. Label of a Table field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Feedback Ratings" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Feedback Reminder Notification Template" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:124 +msgid "Feedback Score" +msgstr "" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Feedback Submitted" +msgstr "" + +#: hr/doctype/interview_feedback/interview_feedback.py:52 +msgid "Feedback already submitted for the Interview {0}. Please cancel the previous Interview Feedback {1} to continue." +msgstr "" + +#: hr/doctype/training_feedback/training_feedback.py:31 +msgid "Feedback cannot be recorded for an absent Employee." +msgstr "" + +#: public/js/performance/performance_feedback.js:117 +msgid "Feedback {0} added successfully" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:64 +#: payroll/doctype/payroll_entry/payroll_entry.js:110 +msgid "Fetching Employees" +msgstr "" + +#. Label of a Data field in DocType 'Employee Property History' +#: hr/doctype/employee_property_history/employee_property_history.json +msgctxt "Employee Property History" +msgid "Field Name" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.js:106 +#: hr/doctype/leave_application/leave_application.js:104 +#: hr/doctype/leave_encashment/leave_encashment.js:28 +msgid "Fill the form and save it" +msgstr "填寫表格,並將其保存" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Filled" +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.js:7 +msgid "Filter Based On" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Filter Employees" +msgstr "" + +#. Label of a HTML field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Filter List" +msgstr "" + +#: www/jobs/index.html:19 +msgid "Filters" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Filters" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Filters" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:57 +#: hr/report/employee_exits/employee_exits.py:52 +msgid "Final Decision" +msgstr "" + +#. Label of a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Final Decision" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:57 +#: hr/report/appraisal_overview/appraisal_overview.py:125 +msgid "Final Score" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Final Score" +msgstr "" + +#. Option for a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "First Check-in and Last Check-out" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "First Day" +msgstr "" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "First Name " +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.js:15 +msgid "Fiscal Year" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1310 +msgid "Fiscal Year {0} not found" +msgstr "會計年度{0}未找到" + +#. Label of a Card Break in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgid "Fleet Management" +msgstr "" + +#. Name of a role +#: hr/doctype/vehicle_log/vehicle_log.json +msgid "Fleet Manager" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Flexible Benefits" +msgstr "靈活的好處" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Flight" +msgstr "飛行" + +#: hr/report/employee_exits/employee_exits.js:73 +msgid "FnF Pending" +msgstr "" + +#. Label of a Check field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Follow via Email" +msgstr "透過電子郵件追蹤" + +#: setup.py:324 +msgid "Food" +msgstr "食物" + +#. Label of a Link field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "For Designation " +msgstr "" + +#: hr/doctype/attendance/attendance_list.js:29 +msgid "For Employee" +msgstr "對於員工" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "For Employee" +msgstr "對於員工" + +#. Description of a Float field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +#, python-format +msgctxt "Leave Type" +msgid "For a day of leave taken, if you still pay (say) 50% of the daily salary, then enter 0.50 in this field." +msgstr "" + +#. Label of a Code field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Formula" +msgstr "式" + +#. Label of a Code field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Formula" +msgstr "式" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Fortnightly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Fortnightly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Fortnightly" +msgstr "" + +#. Label of a Float field in DocType 'Gratuity Rule Slab' +#: payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgctxt "Gratuity Rule Slab" +msgid "Fraction of Applicable Earnings " +msgstr "" + +#. Label of a Float field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Fraction of Daily Salary for Half Day" +msgstr "" + +#. Label of a Float field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Fraction of Daily Salary per Leave" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:193 +msgid "Fractional Cost" +msgstr "" + +#. Label of a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Frequency" +msgstr "" + +#: hr/doctype/leave_block_list/leave_block_list.js:57 +msgid "Friday" +msgstr "" + +#: payroll/report/salary_register/salary_register.js:8 +msgid "From" +msgstr "" + +#. Label of a Currency field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "From Amount" +msgstr "從金額" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js:15 +#: hr/report/employee_advance_summary/employee_advance_summary.js:16 +#: hr/report/employee_exits/employee_exits.js:9 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:17 +#: hr/report/employee_leave_balance/employee_leave_balance.js:8 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.js:8 +#: hr/report/shift_attendance/shift_attendance.js:8 +#: hr/report/vehicle_expenses/vehicle_expenses.js:24 +#: payroll/doctype/salary_structure/salary_structure.js:140 +#: payroll/report/bank_remittance/bank_remittance.js:17 +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "From Date" +msgstr "" + +#. Label of a Date field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "From Date" +msgstr "" + +#: hr/doctype/staffing_plan/staffing_plan.py:29 +#: payroll/doctype/salary_structure/salary_structure.js:257 +msgid "From Date cannot be greater than To Date" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:30 +msgid "From Date must come before To Date" +msgstr "" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:74 +msgid "From Date {0} cannot be after employee's relieving Date {1}" +msgstr "起始日期{0}不能在員工解除日期之後{1}" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:66 +msgid "From Date {0} cannot be before employee's joining Date {1}" +msgstr "起始日期{0}不能在員工加入日期之前{1}" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "From Employee" +msgstr "" + +#. Label of a Time field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "From Time" +msgstr "" + +#. Label of a Link field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "From User" +msgstr "" + +#: hr/utils.py:179 +msgid "From date can not be less than employee's joining date" +msgstr "起始日期不得少於員工的加入日期" + +#: payroll/doctype/additional_salary/additional_salary.py:83 +msgid "From date can not be less than employee's joining date." +msgstr "" + +#: hr/doctype/leave_type/leave_type.js:31 +msgid "From here, you can enable encashment for the balance leaves." +msgstr "" + +#. Label of a Int field in DocType 'Gratuity Rule Slab' +#: payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgctxt "Gratuity Rule Slab" +msgid "From(Year)" +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:45 +msgid "Fuel Expense" +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:166 +msgid "Fuel Expenses" +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:44 +msgid "Fuel Price" +msgstr "燃油價格" + +#. Label of a Currency field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Fuel Price" +msgstr "燃油價格" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:43 +msgid "Fuel Qty" +msgstr "燃油數量" + +#. Label of a Float field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Fuel Qty" +msgstr "燃油數量" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Full Name" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Full Name" +msgstr "" + +#. Name of a DocType +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgid "Full and Final Asset" +msgstr "" + +#. Name of a DocType +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgid "Full and Final Outstanding Statement" +msgstr "" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Full and Final Statement" +msgid "Full and Final Settlement" +msgstr "" + +#. Name of a DocType +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hr/report/employee_exits/employee_exits.py:58 +msgid "Full and Final Statement" +msgstr "" + +#: setup.py:380 +msgid "Full-time" +msgstr "全日制" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Fully Sponsored" +msgstr "完全贊助" + +#. Label of a Currency field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Funded Amount" +msgstr "資助金額" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Future Income Tax" +msgstr "" + +#: hr/utils.py:177 +msgid "Future dates not allowed" +msgstr "未來的日期不允許" + +#: hr/report/employee_analytics/employee_analytics.py:36 +#: hr/report/employee_birthday/employee_birthday.py:27 +msgid "Gender" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "General Ledger" +msgstr "" + +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:44 +msgid "Get Details From Declaration" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:57 +msgid "Get Employees" +msgstr "獲得員工" + +#. Label of a Button field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Get Employees" +msgstr "獲得員工" + +#. Label of a Button field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Get Job Requisitions" +msgstr "" + +#. Label of a Button field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Get Template" +msgstr "獲取模板" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Gluten Free" +msgstr "不含麩質" + +#. Name of a DocType +#: hr/doctype/goal/goal.json hr/doctype/goal/goal_tree.js:45 +msgid "Goal" +msgstr "" + +#. Linked DocType in Appraisal Cycle's connections +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Goal" +msgstr "" + +#. Label of a Small Text field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Goal" +msgstr "" + +#. Label of a Data field in DocType 'Goal' +#. Label of a Link in the Performance Workspace +#. Label of a shortcut in the Performance Workspace +#: hr/doctype/goal/goal.json hr/workspace/performance/performance.json +msgctxt "Goal" +msgid "Goal" +msgstr "" + +#. Label of a Percent field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "Goal Completion (%)" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:55 +#: hr/report/appraisal_overview/appraisal_overview.py:122 +msgid "Goal Score" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Goal Score (%)" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "Goal Score (weighted)" +msgstr "" + +#: hr/doctype/goal/goal.py:81 +msgid "Goal progress percentage cannot be more than 100." +msgstr "" + +#: hr/doctype/goal/goal.py:71 +msgid "Goal should be aligned with the same KRA as its parent goal." +msgstr "" + +#: hr/doctype/goal/goal.py:67 +msgid "Goal should be owned by the same employee as its parent goal." +msgstr "" + +#: hr/doctype/goal/goal.py:75 +msgid "Goal should belong to the same Appraisal Cycle as its parent goal." +msgstr "" + +#: hr/doctype/goal/goal_tree.js:295 +msgid "Goal updated successfully" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:130 +msgid "Goals" +msgstr "目標" + +#. Label of a Table field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Goals" +msgstr "目標" + +#: hr/doctype/goal/goal_list.js:134 +msgid "Goals updated successfully" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Grade" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Grade" +msgstr "" + +#. Label of a Data field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Grade" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Grand Total" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/gratuity/gratuity.json +#: payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py:7 +msgid "Gratuity" +msgstr "" + +#. Label of a Tab Break field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Gratuity" +msgstr "" + +#. Label of a Section Break field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Gratuity" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgid "Gratuity Applicable Component" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgid "Gratuity Rule" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Gratuity Rule" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgid "Gratuity Rule Slab" +msgstr "" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Grievance" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Grievance Against" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Grievance Against Party" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Grievance Details" +msgstr "" + +#. Name of a DocType +#: hr/doctype/grievance_type/grievance_type.json +msgid "Grievance Type" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Grievance Type" +msgstr "" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Grievance Type" +msgid "Grievance Type" +msgstr "" + +#: payroll/report/income_tax_deductions/income_tax_deductions.py:54 +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:42 +#: payroll/report/salary_register/salary_register.py:201 +msgid "Gross Pay" +msgstr "工資總額" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Gross Pay" +msgstr "工資總額" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Gross Pay (Company Currency)" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Gross Year To Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Gross Year To Date(Company Currency)" +msgstr "" + +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.js:9 +msgid "Group" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:58 +msgid "Group By" +msgstr "" + +#: hr/doctype/goal/goal.js:13 +msgid "Group goal's progress is auto-calculated based on the child goals." +msgstr "" + +#. Name of a role +#: hr/doctype/job_opening/job_opening.json +msgid "Guest" +msgstr "" + +#. Name of a Workspace +#: hr/workspace/hr/hr.json +msgid "HR" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "HR Dashboard" +msgstr "" + +#. Name of a role +#: hr/doctype/appointment_letter/appointment_letter.json +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hr/doctype/appraisal/appraisal.json +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/appraisal_template/appraisal_template.json +#: hr/doctype/attendance/attendance.json +#: hr/doctype/attendance_request/attendance_request.json +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +#: hr/doctype/employee_checkin/employee_checkin.json +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +#: hr/doctype/employee_grade/employee_grade.json +#: hr/doctype/employee_grievance/employee_grievance.json +#: hr/doctype/employee_health_insurance/employee_health_insurance.json +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hr/doctype/employee_promotion/employee_promotion.json +#: hr/doctype/employee_referral/employee_referral.json +#: hr/doctype/employee_transfer/employee_transfer.json +#: hr/doctype/employment_type/employment_type.json +#: hr/doctype/expense_claim/expense_claim.json +#: hr/doctype/expense_claim_type/expense_claim_type.json +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hr/doctype/goal/goal.json hr/doctype/grievance_type/grievance_type.json +#: hr/doctype/interest/interest.json hr/doctype/interview/interview.json +#: hr/doctype/interview_feedback/interview_feedback.json +#: hr/doctype/interview_round/interview_round.json +#: hr/doctype/interview_type/interview_type.json +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +#: hr/doctype/leave_allocation/leave_allocation.json +#: hr/doctype/leave_application/leave_application.json +#: hr/doctype/leave_encashment/leave_encashment.json +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hr/doctype/leave_period/leave_period.json +#: hr/doctype/leave_policy/leave_policy.json +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hr/doctype/leave_type/leave_type.json +#: hr/doctype/shift_assignment/shift_assignment.json +#: hr/doctype/shift_request/shift_request.json +#: hr/doctype/shift_type/shift_type.json hr/doctype/skill/skill.json +#: hr/doctype/staffing_plan/staffing_plan.json +#: hr/doctype/training_event/training_event.json +#: hr/doctype/training_feedback/training_feedback.json +#: hr/doctype/training_program/training_program.json +#: hr/doctype/training_result/training_result.json +#: hr/doctype/upload_attendance/upload_attendance.json +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: payroll/doctype/employee_incentive/employee_incentive.json +#: payroll/doctype/employee_other_income/employee_other_income.json +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: payroll/doctype/gratuity/gratuity.json +#: payroll/doctype/gratuity_rule/gratuity_rule.json +#: payroll/doctype/income_tax_slab/income_tax_slab.json +#: payroll/doctype/payroll_entry/payroll_entry.json +#: payroll/doctype/payroll_period/payroll_period.json +#: payroll/doctype/retention_bonus/retention_bonus.json +#: payroll/doctype/salary_slip/salary_slip.json +#: payroll/doctype/salary_structure/salary_structure.json +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "HR Manager" +msgstr "" + +#. Name of a DocType +#. Title of an Onboarding Step +#: hr/doctype/hr_settings/hr_settings.json +#: hr/onboarding_step/hr_settings/hr_settings.json +msgid "HR Settings" +msgstr "人力資源設置" + +#. Label of a Link in the HR Workspace +#: hr/workspace/hr/hr.json +msgctxt "HR Settings" +msgid "HR Settings" +msgstr "人力資源設置" + +#. Name of a role +#: hr/doctype/appraisal/appraisal.json +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/appraisal_template/appraisal_template.json +#: hr/doctype/attendance/attendance.json +#: hr/doctype/attendance_request/attendance_request.json +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hr/doctype/daily_work_summary/daily_work_summary.json +#: hr/doctype/employee_checkin/employee_checkin.json +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +#: hr/doctype/employee_grade/employee_grade.json +#: hr/doctype/employee_grievance/employee_grievance.json +#: hr/doctype/employee_health_insurance/employee_health_insurance.json +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hr/doctype/employee_promotion/employee_promotion.json +#: hr/doctype/employee_referral/employee_referral.json +#: hr/doctype/employee_transfer/employee_transfer.json +#: hr/doctype/employment_type/employment_type.json +#: hr/doctype/expense_claim/expense_claim.json +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hr/doctype/goal/goal.json hr/doctype/grievance_type/grievance_type.json +#: hr/doctype/interest/interest.json hr/doctype/interview/interview.json +#: hr/doctype/interview_feedback/interview_feedback.json +#: hr/doctype/interview_round/interview_round.json +#: hr/doctype/interview_type/interview_type.json +#: hr/doctype/job_applicant/job_applicant.json +#: hr/doctype/job_applicant_source/job_applicant_source.json +#: hr/doctype/job_offer/job_offer.json hr/doctype/job_opening/job_opening.json +#: hr/doctype/leave_allocation/leave_allocation.json +#: hr/doctype/leave_application/leave_application.json +#: hr/doctype/leave_block_list/leave_block_list.json +#: hr/doctype/leave_control_panel/leave_control_panel.json +#: hr/doctype/leave_encashment/leave_encashment.json +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hr/doctype/leave_period/leave_period.json +#: hr/doctype/leave_policy/leave_policy.json +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hr/doctype/leave_type/leave_type.json hr/doctype/offer_term/offer_term.json +#: hr/doctype/shift_assignment/shift_assignment.json +#: hr/doctype/shift_request/shift_request.json +#: hr/doctype/shift_type/shift_type.json +#: hr/doctype/staffing_plan/staffing_plan.json +#: hr/doctype/upload_attendance/upload_attendance.json +#: payroll/doctype/additional_salary/additional_salary.json +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: payroll/doctype/employee_incentive/employee_incentive.json +#: payroll/doctype/employee_other_income/employee_other_income.json +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: payroll/doctype/gratuity/gratuity.json +#: payroll/doctype/gratuity_rule/gratuity_rule.json +#: payroll/doctype/income_tax_slab/income_tax_slab.json +#: payroll/doctype/payroll_period/payroll_period.json +#: payroll/doctype/retention_bonus/retention_bonus.json +#: payroll/doctype/salary_component/salary_component.json +#: payroll/doctype/salary_slip/salary_slip.json +#: payroll/doctype/salary_structure/salary_structure.json +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "HR User" +msgstr "" + +#. Option for a Select field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "HR-ADS-.YY.-.MM.-" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "HR-APR-.YYYY.-" +msgstr "" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "HR-ATT-.YYYY.-" +msgstr "" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "HR-EAD-.YYYY.-" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "HR-EXIT-INT-" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "HR-EXP-.YYYY.-" +msgstr "" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "HR-HIREQ-" +msgstr "" + +#. Option for a Select field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "HR-LAL-.YYYY.-" +msgstr "" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "HR-LAP-.YYYY.-" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "HR-VLOG-.YYYY.-" +msgstr "" + +#: config/desktop.py:5 +msgid "HRMS" +msgstr "" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Half Day" +msgstr "" + +#. Label of a Check field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Half Day" +msgstr "" + +#. Label of a Check field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Half Day" +msgstr "" + +#. Option for a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Half Day" +msgstr "" + +#. Label of a Check field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Half Day" +msgstr "" + +#. Label of a Date field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Half Day Date" +msgstr "" + +#. Label of a Date field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Half Day Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Half Day Date" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:26 +msgid "Half Day Date is mandatory" +msgstr "半天日期是強制性的" + +#: hr/doctype/leave_application/leave_application.py:191 +msgid "Half Day Date should be between From Date and To Date" +msgstr "半天時間應該是從之間的日期和終止日期" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:30 +msgid "Half Day Date should be in between Work From Date and Work End Date" +msgstr "半天日期應在工作日期和工作結束日期之間" + +#: hr/report/shift_attendance/shift_attendance.py:168 +msgid "Half Day Records" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Half Yearly" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:29 +msgid "Half day date should be in between from date and to date" +msgstr "半天的日期應該在從日期到日期之間" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Half-Yearly" +msgstr "" + +#. Label of a Check field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Has Certificate" +msgstr "有證書" + +#. Label of a Data field in DocType 'Employee Health Insurance' +#: hr/doctype/employee_health_insurance/employee_health_insurance.json +msgctxt "Employee Health Insurance" +msgid "Health Insurance Name" +msgstr "健康保險名稱" + +#: hr/notification/training_feedback/training_feedback.html:1 +msgid "Hello" +msgstr "" + +#. Label of a HTML field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Help" +msgstr "" + +#: controllers/employee_reminders.py:72 +msgid "Hey {}! This email is to remind you about the upcoming holidays." +msgstr "" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.py:44 +msgid "Hiring Count" +msgstr "" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Hiring Settings" +msgstr "" + +#. Label of a chart in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Hiring vs Attrition Count" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Hold" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:1304 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:24 +msgid "Holiday" +msgstr "" + +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.js:22 +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Holiday List" +msgstr "" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Holiday List" +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Holiday List" +msgstr "" + +#. Label of a Link field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "Holiday List for Optional Leave" +msgstr "可選假期的假期列表" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Holidays" +msgstr "" + +#: controllers/employee_reminders.py:65 +msgid "Holidays this Month." +msgstr "" + +#: controllers/employee_reminders.py:65 +msgid "Holidays this Week." +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Hour Rate" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Hour Rate" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Hour Rate (Company Currency)" +msgstr "" + +#. Label of a Float field in DocType 'Training Result Employee' +#: hr/doctype/training_result_employee/training_result_employee.json +msgctxt "Training Result Employee" +msgid "Hours" +msgstr "" + +#: regional/india/utils.py:182 +msgid "House rent paid days overlapping with {0}" +msgstr "" + +#: regional/india/utils.py:160 +msgid "House rented dates required for exemption calculation" +msgstr "房子租用日期計算免責" + +#: regional/india/utils.py:163 +msgid "House rented dates should be atleast 15 days apart" +msgstr "出租房屋的日期應至少相隔15天" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:53 +msgid "IFSC" +msgstr "" + +#: payroll/report/bank_remittance/bank_remittance.py:44 +msgid "IFSC Code" +msgstr "IFSC代碼" + +#. Option for a Select field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "IN" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Identification Document Number" +msgstr "身份證明文件號碼" + +#. Name of a DocType +#: hr/doctype/identification_document_type/identification_document_type.json +msgid "Identification Document Type" +msgstr "識別文件類型" + +#. Label of a Data field in DocType 'Identification Document Type' +#: hr/doctype/identification_document_type/identification_document_type.json +msgctxt "Identification Document Type" +msgid "Identification Document Type" +msgstr "識別文件類型" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Identification Document Type" +msgstr "識別文件類型" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If checked, Payroll Payable will be booked against each employee" +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If checked, hides and disables Rounded Total field in Salary Slips" +msgstr "" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission." +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If checked, then the system will enable the provision to set the opening balance for earnings and deductions till date while creating a Salary Structure Assignment (if any)" +msgstr "" + +#. Description of a Check field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "If enabled, Tax Exemption Declaration will be considered for income tax calculation." +msgstr "" + +#. Description of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "If enabled, auto attendance will be marked on holidays if Employee Checkins exist" +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid" +msgstr "" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs" +msgstr "" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If enabled, the component will be considered in the Income Tax Deductions report" +msgstr "" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If enabled, the component will not be displayed in the salary slip if the amount is zero" +msgstr "" + +#. Description of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day" +msgstr "" + +#. Description of a Check field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "If not checked, the list will have to be added to each Department where it has to be applied." +msgstr "如果未選取,則該列表將被加到每個應被應用到的部門。" + +#. Description of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. " +msgstr "如果選擇此項,則在此組件中指定或計算的值不會對收入或扣除貢獻。但是,它的值可以被添加或扣除的其他組件引用。" + +#. Description of a Date field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "If set, the job opening will be closed automatically after this date" +msgstr "" + +#: patches/v15_0/notify_about_loan_app_separation.py:17 +msgid "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." +msgstr "" + +#. Label of a Section Break field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Import Attendance" +msgstr "進口出席" + +#. Label of a HTML field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Import Log" +msgstr "" + +#: hr/doctype/upload_attendance/upload_attendance.js:46 +msgid "Importing {0} of {1}" +msgstr "" + +#. Option for a Select field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "In Process" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "In Process" +msgstr "" + +#. Option for a Select field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "In Process" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "In Progress" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "In Progress" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:67 +msgid "In Time" +msgstr "" + +#. Label of a Datetime field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "In Time" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:110 +msgid "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:47 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:41 +msgid "Inactive" +msgstr "" + +#. Option for a Select field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Inactive" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Incentive" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Incentive Amount" +msgstr "激勵金額" + +#. Label of a Card Break in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json setup.py:405 +msgid "Incentives" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Include holidays in Total no. of Working Days" +msgstr "包括節假日的總數。工作日" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Include holidays within leaves as leaves" +msgstr "休假中包含節日做休假" + +#. Label of a Section Break field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Income Source" +msgstr "" + +#: payroll/report/income_tax_deductions/income_tax_deductions.py:47 +msgid "Income Tax Amount" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Income Tax Breakup" +msgstr "" + +#: payroll/report/income_tax_deductions/income_tax_deductions.py:45 +msgid "Income Tax Component" +msgstr "" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#. Label of a Link in the Tax & Benefits Workspace +#. Label of a shortcut in the Tax & Benefits Workspace +#: payroll/report/income_tax_computation/income_tax_computation.json +#: payroll/workspace/salary_payout/salary_payout.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Computation" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Income Tax Deducted Till Date" +msgstr "" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/report/income_tax_deductions/income_tax_deductions.json +#: payroll/workspace/salary_payout/salary_payout.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Income Tax Deductions" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/income_tax_slab/income_tax_slab.json +#: payroll/doctype/salary_structure/salary_structure.js:141 +#: payroll/report/income_tax_computation/income_tax_computation.py:509 +msgid "Income Tax Slab" +msgstr "" + +#. Label of a Link in the Salary Payout Workspace +#. Label of a Link in the Tax & Benefits Workspace +#: payroll/workspace/salary_payout/salary_payout.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgctxt "Income Tax Slab" +msgid "Income Tax Slab" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Income Tax Slab" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgid "Income Tax Slab Other Charges" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1482 +msgid "Income Tax Slab must be effective on or before Payroll Period Start Date: {0}" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1471 +msgid "Income Tax Slab not set in Salary Structure Assignment: {0}" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1478 +msgid "Income Tax Slab: {0} is disabled" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Income from Other Sources" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:154 +#: hr/doctype/appraisal_template/appraisal_template.py:28 +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:55 +msgid "Incorrect Weightage Allocation" +msgstr "" + +#. Description of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Indicates the number of leaves that cannot be encashed from the leave balance. E.g. with a leave balance of 10 and 4 Non-Encashable Leaves, you can encash 6, while the remaining 4 can be carried forward or expired" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Inspection" +msgstr "檢查" + +#: hr/doctype/leave_application/leave_application.py:412 +msgid "Insufficient Balance" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:410 +msgid "Insufficient leave balance for Leave Type {0}" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interest/interest.json +msgid "Interest" +msgstr "" + +#. Label of a Data field in DocType 'Interest' +#: hr/doctype/interest/interest.json +msgctxt "Interest" +msgid "Interest" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Interest Amount" +msgstr "利息金額" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Interest Income Account" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Intermediate" +msgstr "" + +#: setup.py:386 +msgid "Intern" +msgstr "實習生" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "International" +msgstr "國際" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Internet" +msgstr "互聯網" + +#. Name of a DocType +#: hr/doctype/interview/interview.json +#: hr/doctype/job_applicant/job_applicant.js:24 +msgid "Interview" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Interview" +msgid "Interview" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Interview" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interview_detail/interview_detail.json +msgid "Interview Detail" +msgstr "" + +#. Label of a Section Break field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Interview Details" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interview_feedback/interview_feedback.json +msgid "Interview Feedback" +msgstr "" + +#. Linked DocType in Interview's connections +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Interview Feedback" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Interview Feedback" +msgid "Interview Feedback" +msgstr "" + +#: hr/doctype/interview/test_interview.py:300 +#: hr/doctype/interview/test_interview.py:309 +#: hr/doctype/interview/test_interview.py:311 +#: hr/doctype/interview/test_interview.py:318 setup.py:458 setup.py:460 +#: setup.py:493 +msgid "Interview Feedback Reminder" +msgstr "" + +#: hr/doctype/interview/interview.py:349 +msgid "Interview Feedback {0} submitted successfully" +msgstr "" + +#: hr/doctype/interview/interview.py:89 +msgid "Interview Not Rescheduled" +msgstr "" + +#: hr/doctype/interview/test_interview.py:284 +#: hr/doctype/interview/test_interview.py:293 +#: hr/doctype/interview/test_interview.py:295 +#: hr/doctype/interview/test_interview.py:317 setup.py:446 setup.py:448 +#: setup.py:489 +msgid "Interview Reminder" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Interview Reminder Notification Template" +msgstr "" + +#: hr/doctype/interview/interview.py:122 +msgid "Interview Rescheduled successfully" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interview_round/interview_round.json +msgid "Interview Round" +msgstr "" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Interview Round" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Interview Round" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Interview Round" +msgid "Interview Round" +msgstr "" + +#. Linked DocType in Interview Type's connections +#: hr/doctype/interview_type/interview_type.json +msgctxt "Interview Type" +msgid "Interview Round" +msgstr "" + +#: hr/doctype/job_applicant/job_applicant.py:72 +msgid "Interview Round {0} is only applicable for the Designation {1}" +msgstr "" + +#: hr/doctype/interview/interview.py:52 +msgid "Interview Round {0} is only for Designation {1}. Job Applicant has applied for the role {2}" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:51 +#: hr/report/employee_exits/employee_exits.py:46 +msgid "Interview Status" +msgstr "" + +#: hr/doctype/job_applicant/job_applicant.js:65 +msgid "Interview Summary" +msgstr "" + +#. Label of a Text Editor field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Interview Summary" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Interview Summary" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interview_type/interview_type.json +msgid "Interview Type" +msgstr "" + +#. Label of a Link field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Interview Type" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Interview Type" +msgid "Interview Type" +msgstr "" + +#: hr/doctype/interview/interview.py:105 +msgid "Interview: {0} Rescheduled" +msgstr "" + +#. Name of a role +#. Name of a DocType +#: hr/doctype/interview/interview.json +#: hr/doctype/interview_feedback/interview_feedback.json +#: hr/doctype/interview_round/interview_round.json +#: hr/doctype/interviewer/interviewer.json +msgid "Interviewer" +msgstr "" + +#. Label of a Link field in DocType 'Interview Detail' +#: hr/doctype/interview_detail/interview_detail.json +msgctxt "Interview Detail" +msgid "Interviewer" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Interviewer" +msgstr "" + +#. Label of a Table MultiSelect field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Interviewers" +msgstr "" + +#. Label of a Table field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Interviewers" +msgstr "" + +#. Label of a Table MultiSelect field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Interviewers" +msgstr "" + +#. Label of a Card Break in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Interviews" +msgstr "" + +#. Label of a Long Text field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Introduction" +msgstr "" + +#. Label of a Long Text field in DocType 'Appointment Letter Template' +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgctxt "Appointment Letter Template" +msgid "Introduction" +msgstr "" + +#. Label of a Text Editor field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Introduction" +msgstr "" + +#. Option for a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Invalid" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:281 +msgid "Invalid Payroll Payable Account. The account currency must be {0} or {1}" +msgstr "" + +#. Option for a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Investigated" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Investigation Details" +msgstr "" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Invited" +msgstr "邀請" + +#. Label of a Data field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Invoice Ref" +msgstr "發票編號" + +#. Label of a Check field in DocType 'Employee Tax Exemption Category' +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +msgctxt "Employee Tax Exemption Category" +msgid "Is Active" +msgstr "" + +#. Label of a Check field in DocType 'Employee Tax Exemption Sub Category' +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgctxt "Employee Tax Exemption Sub Category" +msgid "Is Active" +msgstr "" + +#. Label of a Check field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "Is Active" +msgstr "" + +#. Label of a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Is Active" +msgstr "" + +#. Label of a Check field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Is Applicable for Referral Bonus" +msgstr "" + +#. Label of a Check field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Is Carry Forward" +msgstr "是弘揚" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Carry Forward" +msgstr "是弘揚" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Compensatory" +msgstr "是有補償的" + +#: hr/doctype/leave_type/leave_type.py:40 +msgid "Is Compensatory Leave" +msgstr "" + +#. Label of a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Is Default" +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:40 +msgid "Is Earned Leave" +msgstr "獲得休假" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Earned Leave" +msgstr "獲得休假" + +#. Label of a Check field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Is Expired" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Is Flexible Benefit" +msgstr "是靈活的好處" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Is Flexible Benefit" +msgstr "是靈活的好處" + +#: hr/doctype/goal/goal_tree.js:51 +msgid "Is Group" +msgstr "" + +#. Label of a Check field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Is Group" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Is Income Tax Component" +msgstr "" + +#. Label of a Check field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Is Leave Without Pay" +msgstr "是無薪休假" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Leave Without Pay" +msgstr "是無薪休假" + +#. Label of a Check field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Is Mandatory" +msgstr "" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Optional Leave" +msgstr "是可選的休假" + +#. Label of a Check field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Is Paid" +msgstr "" + +#. Label of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Is Partially Paid Leave" +msgstr "" + +#. Label of a Check field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Is Recurring" +msgstr "" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Is Recurring Additional Salary" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Is Tax Applicable" +msgstr "是否適用稅務?" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Is Tax Applicable" +msgstr "是否適用稅務?" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:13 +#: public/js/salary_slip_deductions_report_filters.js:19 +msgid "Jan" +msgstr "" + +#. Name of a DocType +#: hr/doctype/job_applicant/job_applicant.json +#: hr/report/recruitment_analytics/recruitment_analytics.py:39 +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Job Applicant" +msgid "Job Applicant" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Job Applicant" +msgstr "" + +#. Name of a DocType +#: hr/doctype/job_applicant_source/job_applicant_source.json +msgid "Job Applicant Source" +msgstr "求職者來源" + +#: hr/doctype/employee_referral/employee_referral.py:51 +msgid "Job Applicant {0} created successfully." +msgstr "" + +#: hr/doctype/interview/interview.py:39 +msgid "Job Applicants are not allowed to appear twice for the same Interview round. Interview {0} already scheduled for Job Applicant {1}" +msgstr "" + +#. Label of a Data field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Job Application Route" +msgstr "" + +#: setup.py:401 +msgid "Job Description" +msgstr "職位描述" + +#. Label of a Tab Break field in DocType 'Job Requisition' +#. Label of a Text Editor field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Job Description" +msgstr "職位描述" + +#. Name of a DocType +#: hr/doctype/job_applicant/job_applicant.js:33 +#: hr/doctype/job_applicant/job_applicant.js:39 +#: hr/doctype/job_offer/job_offer.json +#: hr/report/recruitment_analytics/recruitment_analytics.py:53 +msgid "Job Offer" +msgstr "工作機會" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Job Offer" +msgstr "工作機會" + +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Job Offer" +msgid "Job Offer" +msgstr "工作機會" + +#. Name of a DocType +#: hr/doctype/job_offer_term/job_offer_term.json +msgid "Job Offer Term" +msgstr "招聘條件" + +#. Name of a DocType +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +msgid "Job Offer Term Template" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Job Offer Term Template" +msgstr "" + +#. Label of a Table field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Job Offer Terms" +msgstr "招聘條款" + +#: hr/report/recruitment_analytics/recruitment_analytics.py:62 +msgid "Job Offer status" +msgstr "" + +#: hr/doctype/job_offer/job_offer.py:24 +msgid "Job Offer: {0} is already for Job Applicant: {1}" +msgstr "" + +#. Name of a DocType +#: hr/doctype/job_opening/job_opening.json +#: hr/doctype/job_requisition/job_requisition.js:40 +#: hr/report/recruitment_analytics/recruitment_analytics.py:32 +msgid "Job Opening" +msgstr "開放職位" + +#. Label of a Link field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Job Opening" +msgstr "開放職位" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Job Opening" +msgstr "開放職位" + +#. Label of a Link in the Recruitment Workspace +#. Label of a shortcut in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Job Opening" +msgid "Job Opening" +msgstr "開放職位" + +#. Linked DocType in Job Requisition's connections +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Job Opening" +msgstr "開放職位" + +#: hr/doctype/job_requisition/job_requisition.py:51 +msgid "Job Opening Associated" +msgstr "" + +#: www/jobs/index.html:2 www/jobs/index.html:5 +msgid "Job Openings" +msgstr "" + +#: hr/doctype/job_opening/job_opening.py:87 +msgid "Job Openings for the designation {0} are already open or the hiring is complete as per the Staffing Plan {1}" +msgstr "" + +#. Name of a DocType +#: hr/doctype/job_requisition/job_requisition.json +msgid "Job Requisition" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Job Requisition" +msgstr "" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Job Requisition" +msgid "Job Requisition" +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.py:48 +msgid "Job Requisition {0} has been associated with Job Opening {1}" +msgstr "" + +#. Label of a Data field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Job Title" +msgstr "" + +#. Description of a Text Editor field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Job profile, qualifications required etc." +msgstr "所需的工作概況,學歷等。" + +#. Label of a Card Break in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Jobs" +msgstr "" + +#. Option for a Select field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Joining Date" +msgstr "入職日期" + +#. Option for a Select field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Joining Date" +msgstr "入職日期" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Journal Entry" +msgid "Journal Entry" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Journal Entry" +msgstr "" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Journey" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:19 +#: public/js/salary_slip_deductions_report_filters.js:25 +msgid "July" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:18 +#: public/js/salary_slip_deductions_report_filters.js:24 +msgid "June" +msgstr "" + +#. Name of a DocType +#: hr/doctype/goal/goal_tree.js:136 hr/doctype/kra/kra.json +msgid "KRA" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "KRA" +msgstr "" + +#. Label of a Link field in DocType 'Appraisal Template Goal' +#: hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgctxt "Appraisal Template Goal" +msgid "KRA" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "KRA" +msgstr "" + +#. Label of a Link in the Performance Workspace +#: hr/workspace/performance/performance.json +msgctxt "KRA" +msgid "KRA" +msgstr "" + +#. Label of a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "KRA Evaluation Method" +msgstr "" + +#: hr/doctype/goal/goal.py:99 +msgid "KRA updated for all child goals." +msgstr "" + +#. Label of a Table field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "KRA vs Goals" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:140 +#: hr/doctype/appraisal_template/appraisal_template.py:23 +msgid "KRAs" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "KRAs" +msgstr "" + +#. Label of a Table field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "KRAs" +msgstr "" + +#. Description of a Link field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "Key Performance Area" +msgstr "關鍵績效區" + +#. Label of a Card Break in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Key Reports" +msgstr "" + +#. Description of a Small Text field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Key Responsibility Area" +msgstr "關鍵責任區" + +#. Description of a Link field in DocType 'Appraisal Template Goal' +#: hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgctxt "Appraisal Template Goal" +msgid "Key Result Area" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Last Day" +msgstr "" + +#. Description of a Datetime field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure." +msgstr "" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Last Name" +msgstr "" + +#. Label of a Int field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Last Odometer Value " +msgstr "" + +#. Label of a Datetime field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Last Sync of Checkin" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:180 +msgid "Late Entries" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.js:48 +msgid "Late Entry" +msgstr "" + +#. Label of a Check field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Late Entry" +msgstr "" + +#. Label of a Check field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Late Entry" +msgstr "" + +#. Label of a Section Break field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Late Entry & Early Exit Settings for Auto Attendance" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:85 +msgid "Late Entry By" +msgstr "" + +#. Label of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Late Entry Grace Period" +msgstr "" + +#: overrides/dashboard_overrides.py:12 +msgid "Leave" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Leave" +msgstr "" + +#. Name of a DocType +#: hr/doctype/leave_allocation/leave_allocation.json +msgid "Leave Allocation" +msgstr "排假" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Leave Allocation" +msgstr "排假" + +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Allocation" +msgid "Leave Allocation" +msgstr "排假" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Leave Allocation" +msgstr "排假" + +#. Label of a Section Break field in DocType 'Leave Policy' +#: hr/doctype/leave_policy/leave_policy.json +msgctxt "Leave Policy" +msgid "Leave Allocations" +msgstr "離開分配" + +#. Name of a DocType +#: hr/doctype/leave_application/leave_application.json +msgid "Leave Application" +msgstr "休假申請" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Leave Application" +msgstr "休假申請" + +#. Label of a Link in the HR Workspace +#. Label of a shortcut in the HR Workspace +#. Label of a Link in the Leaves Workspace +#. Label of a shortcut in the Leaves Workspace +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgctxt "Leave Application" +msgid "Leave Application" +msgstr "休假申請" + +#: hr/doctype/leave_application/leave_application.py:705 +msgid "Leave Application period cannot be across two non-consecutive leave allocations {0} and {1}." +msgstr "" + +#: setup.py:423 setup.py:425 setup.py:485 +msgid "Leave Approval Notification" +msgstr "留下批准通知" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Leave Approval Notification Template" +msgstr "留下批准通知模板" + +#. Name of a role +#: hr/doctype/leave_application/leave_application.json +msgid "Leave Approver" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Leave Approver" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Leave Approver Mandatory In Leave Application" +msgstr "在離職申請中允許Approver為強制性" + +#. Label of a Data field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Leave Approver Name" +msgstr "離開批准人姓名" + +#. Label of a Float field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Leave Balance" +msgstr "保持平衡" + +#. Label of a Float field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Leave Balance Before Application" +msgstr "離開平衡應用前" + +#. Name of a DocType +#: hr/doctype/leave_block_list/leave_block_list.json +msgid "Leave Block List" +msgstr "" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Block List" +msgid "Leave Block List" +msgstr "" + +#. Name of a DocType +#: hr/doctype/leave_block_list_allow/leave_block_list_allow.json +msgid "Leave Block List Allow" +msgstr "休假區塊清單准許" + +#. Label of a Table field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Leave Block List Allowed" +msgstr "准許的休假區塊清單" + +#. Name of a DocType +#: hr/doctype/leave_block_list_date/leave_block_list_date.json +msgid "Leave Block List Date" +msgstr "休假區塊清單日期表" + +#. Label of a Table field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Leave Block List Dates" +msgstr "休假區塊清單日期表" + +#. Label of a Data field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Leave Block List Name" +msgstr "休假區塊清單名稱" + +#: hr/doctype/leave_application/leave_application.py:1281 +msgid "Leave Blocked" +msgstr "禁假的" + +#. Name of a DocType +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgid "Leave Control Panel" +msgstr "" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Control Panel" +msgid "Leave Control Panel" +msgstr "" + +#. Label of a Table field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Leave Details" +msgstr "留下細節" + +#. Name of a DocType +#: hr/doctype/leave_encashment/leave_encashment.json +msgid "Leave Encashment" +msgstr "離開兌現" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Encashment" +msgid "Leave Encashment" +msgstr "離開兌現" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Leave Encashment Amount Per Day" +msgstr "每天離開沖泡量" + +#. Name of a DocType +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgid "Leave Ledger Entry" +msgstr "" + +#. Name of a DocType +#: hr/doctype/leave_period/leave_period.json +msgid "Leave Period" +msgstr "休假期間" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Leave Period" +msgstr "休假期間" + +#. Option for a Select field in DocType 'Leave Control Panel' +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Leave Period" +msgstr "休假期間" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Leave Period" +msgstr "休假期間" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Period" +msgid "Leave Period" +msgstr "休假期間" + +#. Option for a Select field in DocType 'Leave Policy Assignment' +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Leave Period" +msgstr "休假期間" + +#. Name of a DocType +#: hr/doctype/leave_policy/leave_policy.json +msgid "Leave Policy" +msgstr "離開政策" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Leave Policy" +msgstr "離開政策" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Leave Policy" +msgstr "離開政策" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Policy" +msgid "Leave Policy" +msgstr "離開政策" + +#. Label of a Link field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Leave Policy" +msgstr "離開政策" + +#. Name of a DocType +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgid "Leave Policy Assignment" +msgstr "" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Leave Policy Assignment" +msgstr "" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Policy Assignment" +msgid "Leave Policy Assignment" +msgstr "" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:63 +msgid "Leave Policy Assignment Overlap" +msgstr "" + +#. Name of a DocType +#: hr/doctype/leave_policy_detail/leave_policy_detail.json +msgid "Leave Policy Detail" +msgstr "退出政策細節" + +#. Label of a Table field in DocType 'Leave Policy' +#: hr/doctype/leave_policy/leave_policy.json +msgctxt "Leave Policy" +msgid "Leave Policy Details" +msgstr "退出政策詳情" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:57 +msgid "Leave Policy: {0} already assigned for Employee {1} for period {2} to {3}" +msgstr "" + +#: setup.py:432 setup.py:434 setup.py:486 +msgid "Leave Status Notification" +msgstr "離開狀態通知" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Leave Status Notification Template" +msgstr "離開狀態通知模板" + +#. Name of a DocType +#: hr/doctype/leave_type/leave_type.json +#: hr/report/employee_leave_balance/employee_leave_balance.py:33 +msgid "Leave Type" +msgstr "休假類型" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Leave Type" +msgstr "休假類型" + +#. Label of a Link field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Leave Type" +msgstr "休假類型" + +#. Label of a Link field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Leave Type" +msgstr "休假類型" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Leave Type" +msgstr "休假類型" + +#. Label of a Link field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Leave Type" +msgstr "休假類型" + +#. Label of a Link field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Leave Type" +msgstr "休假類型" + +#. Label of a Link field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Leave Type" +msgstr "休假類型" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Leave Type" +msgstr "休假類型" + +#. Label of a Link field in DocType 'Leave Policy Detail' +#: hr/doctype/leave_policy_detail/leave_policy_detail.json +msgctxt "Leave Policy Detail" +msgid "Leave Type" +msgstr "休假類型" + +#. Label of a Link in the Leaves Workspace +#: hr/workspace/leaves/leaves.json +msgctxt "Leave Type" +msgid "Leave Type" +msgstr "休假類型" + +#. Label of a Link field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Leave Type" +msgstr "休假類型" + +#. Label of a Data field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Leave Type Name" +msgstr "休假類型名稱" + +#: hr/doctype/leave_type/leave_type.py:33 +msgid "Leave Type can either be compensatory or earned leave." +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:45 +msgid "Leave Type can either be without pay or partial pay" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:35 +msgid "Leave Type is madatory" +msgstr "離開類型是瘋狂的" + +#: hr/doctype/leave_allocation/leave_allocation.py:183 +msgid "Leave Type {0} cannot be allocated since it is leave without pay" +msgstr "休假類型{0},因為它是停薪留職無法分配" + +#: hr/doctype/leave_allocation/leave_allocation.py:395 +msgid "Leave Type {0} cannot be carry-forwarded" +msgstr "休假類型{0}不能隨身轉發" + +#: hr/doctype/leave_encashment/leave_encashment.py:101 +msgid "Leave Type {0} is not encashable" +msgstr "離開類型{0}不可放置" + +#: payroll/report/salary_register/salary_register.py:175 setup.py:372 +#: setup.py:373 +msgid "Leave Without Pay" +msgstr "無薪假" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Leave Without Pay" +msgstr "無薪假" + +#: payroll/doctype/salary_slip/salary_slip.py:460 +msgid "Leave Without Pay does not match with approved {} records" +msgstr "" + +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.py:42 +msgid "Leave allocation {0} is linked with the Leave Application {1}" +msgstr "" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:83 +msgid "Leave already have been assigned for this Leave Policy Assignment" +msgstr "" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Leave and Expense Claim Settings" +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:26 +msgid "Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:223 +msgid "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "假,不是之前分配{0},因為休假餘額已經結轉轉發在未來的假期分配記錄{1}" + +#: hr/doctype/leave_application/leave_application.py:245 +msgid "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}" +msgstr "離開不能應用/前{0}取消,因為假平衡已經被搬入轉發在未來休假分配記錄{1}" + +#: hr/doctype/leave_application/leave_application.py:482 +msgid "Leave of type {0} cannot be longer than {1}." +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:72 +msgid "Leave(s) Expired" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Leave(s) Pending Approval" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:66 +msgid "Leave(s) Taken" +msgstr "" + +#. Label of a Card Break in the HR Workspace +#. Name of a Workspace +#: hr/doctype/leave_policy/leave_policy_dashboard.py:8 +#: hr/doctype/leave_policy_assignment/leave_policy_assignment_dashboard.py:8 +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgid "Leaves" +msgstr "" + +#. Label of a Float field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Leaves" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Leaves" +msgstr "" + +#. Label of a Check field in DocType 'Leave Policy Assignment' +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +msgctxt "Leave Policy Assignment" +msgid "Leaves Allocated" +msgstr "" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:76 +msgid "Leaves for the Leave Type {0} won't be carry-forwarded since carry-forwarding is disabled." +msgstr "" + +#: setup.py:403 +msgid "Leaves per Year" +msgstr "每年葉" + +#: hr/doctype/leave_type/leave_type.js:26 +msgid "Leaves you can avail against a holiday you worked on. You can claim Compensatory Off Leave using Compensatory Leave request. Click" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:49 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:43 +msgid "Left" +msgstr "" + +#. Label of a Int field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Left" +msgstr "" + +#. Title of the Module Onboarding 'Human Resource' +#: hr/module_onboarding/human_resource/human_resource.json +msgid "Let's Set Up the Human Resource Module. " +msgstr "" + +#. Title of the Module Onboarding 'Payroll' +#: payroll/module_onboarding/payroll/payroll.json +msgid "Let's Set Up the Payroll Module. " +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Letter Head" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Letter Head" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Letter Head" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Letter Head" +msgstr "" + +#. Label of a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Level" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "License Plate" +msgstr "" + +#: overrides/dashboard_overrides.py:16 +msgid "Lifecycle" +msgstr "生命週期" + +#: hr/doctype/goal/goal_tree.js:99 +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#. Description of a Section Break field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Link the cycle and tag KRA to your goal to update the appraisal's goal score based on the goal progress" +msgstr "" + +#: controllers/employee_boarding_controller.py:154 +msgid "Linked Project {} and Tasks deleted." +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Loan" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Loan Account" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Loan Product" +msgstr "" + +#: payroll/report/salary_register/salary_register.py:223 +msgid "Loan Repayment" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Loan Repayment Entry" +msgstr "" + +#: hr/utils.py:702 +msgid "Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}" +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:33 +#: templates/generators/job_opening.html:61 +msgid "Location" +msgstr "" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Location" +msgstr "" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Location" +msgstr "" + +#. Label of a Data field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Location / Device ID" +msgstr "" + +#. Label of a Check field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Lodging Required" +msgstr "" + +#. Label of a Select field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Log Type" +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:50 +msgid "Log Type is required for check-ins falling in the shift: {0}." +msgstr "" + +#. Label of a Currency field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Lower Range" +msgstr "" + +#. Label of a Currency field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Lower Range" +msgstr "" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py:54 +msgid "MICR" +msgstr "" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:31 +msgid "Make" +msgstr "" + +#. Label of a Read Only field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Make" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:161 +msgid "Make Bank Entry" +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:186 +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:193 +#: hr/doctype/goal/goal.js:88 +msgid "Mandatory" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:187 +msgid "Mandatory fields required in {0}" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Manual Rating" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:15 +#: public/js/salary_slip_deductions_report_filters.js:21 +msgid "Mar" +msgstr "" + +#: hr/doctype/attendance/attendance_list.js:17 +#: hr/doctype/attendance/attendance_list.js:25 +#: hr/doctype/attendance/attendance_list.js:128 +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:173 +#: hr/doctype/shift_type/shift_type.js:7 +msgid "Mark Attendance" +msgstr "出席人數" + +#. Label of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Mark Auto Attendance on Holidays" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:48 +#: hr/doctype/employee_onboarding/employee_onboarding.js:48 +#: hr/doctype/goal/goal_tree.js:262 +msgid "Mark as Completed" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:52 +msgid "Mark as In Progress" +msgstr "" + +#: hr/doctype/interview/interview.py:75 +msgid "Mark as {0}" +msgstr "" + +#: hr/doctype/attendance/attendance_list.js:102 +msgid "Mark attendance as {0} for {1} on selected dates?" +msgstr "" + +#. Description of a Check field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Mark attendance based on 'Employee Checkin' for Employees assigned to this shift." +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:204 +msgid "Mark the cycle as {0} if required." +msgstr "" + +#: hr/doctype/goal/goal_tree.js:269 +msgid "Mark {0} as Completed?" +msgstr "" + +#: hr/doctype/goal/goal_list.js:84 +msgid "Mark {0} {1} as {2}?" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Marked Attendance" +msgstr "明顯考勤" + +#. Label of a HTML field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Marked Attendance HTML" +msgstr "顯著的考勤HTML" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:215 +msgid "Marking Attendance" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#. Label of a Card Break in the Salary Payout Workspace +#: hr/workspace/performance/performance.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Masters" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Max Amount Eligible" +msgstr "最高金額合格" + +#. Label of a Currency field in DocType 'Employee Benefit Application Detail' +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgctxt "Employee Benefit Application Detail" +msgid "Max Benefit Amount" +msgstr "最大福利金額" + +#. Label of a Currency field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Max Benefit Amount (Yearly)" +msgstr "最大福利金額(每年)" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Max Benefits (Amount)" +msgstr "最大收益(金額)" + +#. Label of a Currency field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Max Benefits (Yearly)" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Category' +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +msgctxt "Employee Tax Exemption Category" +msgid "Max Exemption Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Sub Category' +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgctxt "Employee Tax Exemption Sub Category" +msgid "Max Exemption Amount" +msgstr "" + +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py:18 +msgid "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" +msgstr "" + +#. Label of a Currency field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Max Taxable Income" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:147 +msgid "Max benefits should be greater than zero to dispense benefits" +msgstr "最大的好處應該大於零來分配好處" + +#. Label of a Float field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Max working hours against Timesheet" +msgstr "最大工作時間針對時間表" + +#. Label of a Float field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Maximum Carry Forwarded Leaves" +msgstr "" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Maximum Consecutive Leaves Allowed" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:490 +msgid "Maximum Consecutive Leaves Exceeded" +msgstr "" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Maximum Encashable Leaves" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Declaration +#. Category' +#: payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json +msgctxt "Employee Tax Exemption Declaration Category" +msgid "Maximum Exempted Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Proof +#. Submission Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Maximum Exemption Amount" +msgstr "" + +#. Label of a Float field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Maximum Leave Allocation Allowed" +msgstr "" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:65 +msgid "Maximum amount eligible for the component {0} exceeds {1}" +msgstr "符合組件{0}的最高金額超過{1}" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:139 +msgid "Maximum benefit amount of component {0} exceeds {1}" +msgstr "組件{0}的最大受益金額超過{1}" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:119 +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:54 +msgid "Maximum benefit amount of employee {0} exceeds {1}" +msgstr "員工{0}的最高福利金額超過{1}" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:85 +msgid "Maximum benefit of employee {0} exceeds {1} by the sum {2} of benefit application pro-rata component amount and previous claimed amount" +msgstr "" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:46 +msgid "Maximum benefit of employee {0} exceeds {1} by the sum {2} of previous claimed amount" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:122 +msgid "Maximum encashable leaves for {0} are {1}" +msgstr "" + +#: hr/doctype/leave_policy/leave_policy.py:19 +msgid "Maximum leave allowed in the leave type {0} is {1}" +msgstr "假期類型{0}允許的最大休假是{1}" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:17 +#: public/js/salary_slip_deductions_report_filters.js:23 +msgid "May" +msgstr "" + +#. Label of a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Meal Preference" +msgstr "" + +#: setup.py:325 +msgid "Medical" +msgstr "醫療" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1388 +msgid "Message" +msgstr "" + +#. Label of a Text Editor field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Message" +msgstr "" + +#. Label of a Text Editor field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "Message" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Mileage" +msgstr "" + +#. Label of a Currency field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Min Taxable Income" +msgstr "" + +#. Label of a Int field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Minimum Year for Gratuity" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:200 +msgid "Missing Fields" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:29 +msgid "Missing Relieving Date" +msgstr "" + +#. Label of a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Mode Of Payment" +msgstr "" + +#. Label of a Link field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Mode of Payment" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Mode of Payment" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Mode of Payment" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Mode of Payment" +msgstr "" + +#. Label of a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Mode of Travel" +msgstr "旅行模式" + +#: hr/doctype/expense_claim/expense_claim.py:287 +msgid "Mode of payment is required to make a payment" +msgstr "付款方式需要進行付款" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:32 +msgid "Model" +msgstr "" + +#. Label of a Read Only field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Model" +msgstr "" + +#: hr/doctype/leave_block_list/leave_block_list.js:37 +msgid "Monday" +msgstr "" + +#: hr/report/employee_birthday/employee_birthday.js:8 +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:9 +#: public/js/salary_slip_deductions_report_filters.js:15 +msgid "Month" +msgstr "" + +#. Option for a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Month" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Month To Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Month To Date(Company Currency)" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Monthly" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Monthly" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.json +#: hr/workspace/hr/hr.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Monthly Attendance Sheet" +msgstr "" + +#: hr/page/team_updates/team_updates.js:25 +msgid "More" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "More Info" +msgstr "" + +#. Label of a Tab Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "More Info" +msgstr "" + +#: hr/utils.py:262 +msgid "More than one selection for {0} not allowed" +msgstr "" + +#: payroll/doctype/additional_salary/additional_salary.py:231 +msgid "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." +msgstr "" + +#: hr/doctype/shift_assignment/shift_assignment.py:65 +msgid "Multiple Shift Assignments" +msgstr "" + +#: www/jobs/index.py:11 +msgid "My Account" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.js:167 +#: hr/report/employee_analytics/employee_analytics.py:31 +#: hr/report/employee_birthday/employee_birthday.py:22 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:21 +msgid "Name" +msgstr "" + +#. Label of a Data field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Name" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1163 +#: payroll/doctype/salary_slip/salary_slip.py:2112 +msgid "Name error" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Name of Organizer" +msgstr "主辦單位名稱" + +#. Label of a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Naming Series" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Naming Series" +msgstr "" + +#. Label of a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Naming Series" +msgstr "" + +#: payroll/report/salary_register/salary_register.py:237 +msgid "Net Pay" +msgstr "淨收費" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Net Pay" +msgstr "淨收費" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Net Pay" +msgstr "淨收費" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Net Pay (Company Currency)" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Net Pay Info" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:181 +msgid "Net Pay cannot be less than 0" +msgstr "淨工資不能低於0" + +#: payroll/report/bank_remittance/bank_remittance.py:50 +msgid "Net Salary Amount" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:78 +msgid "Net pay cannot be negative" +msgstr "淨工資不能為負" + +#: hr/employee_property_update.js:86 hr/employee_property_update.js:129 +msgid "New" +msgstr "" + +#. Label of a Data field in DocType 'Employee Property History' +#: hr/doctype/employee_property_history/employee_property_history.json +msgctxt "Employee Property History" +msgid "New" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "New Company" +msgstr "" + +#. Label of a Link field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "New Employee ID" +msgstr "新員工ID" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:60 +msgid "New Leave(s) Allocated" +msgstr "" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "New Leaves Allocated" +msgstr "新的排假" + +#. Label of a Float field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "New Leaves Allocated (In Days)" +msgstr "新的排假(天)" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "No" +msgstr "" + +#: payroll/doctype/gratuity/gratuity.py:310 +msgid "No Applicable Component is present in last month salary slip" +msgstr "" + +#: payroll/doctype/gratuity/gratuity.py:283 +msgid "No Applicable Earnings Component found for Gratuity Rule: {0}" +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:122 +#: hr/doctype/leave_control_panel/leave_control_panel.js:144 +msgid "No Data" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:224 +msgid "No Employee Found" +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:96 +msgid "No Employee found for the given employee field value. '{}': {}" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "No Employees Selected" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:105 +msgid "No Leave Period Found" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:145 +msgid "No Leaves Allocated to Employee: {0} for Leave Type: {1}" +msgstr "" + +#: payroll/doctype/gratuity/gratuity.py:297 +msgid "No Salary Slip is found for Employee: {0}" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:30 +msgid "No Salary Structure assigned to Employee {0} on the given date {1}" +msgstr "" + +#: hr/doctype/job_opening/job_opening.js:32 +msgid "No Staffing Plans found for this Designation" +msgstr "本指定沒有發現人員配備計劃" + +#: payroll/doctype/gratuity/gratuity.py:270 +msgid "No Suitable Slab found for Calculation of gratuity amount in Gratuity Rule: {0}" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:380 +msgid "No active or default Salary Structure found for employee {0} for the given dates" +msgstr "發現員工{0}對於給定的日期沒有活動或默認的薪酬結構" + +#: hr/doctype/vehicle_log/vehicle_log.py:43 +msgid "No additional expenses has been added" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:45 +msgid "No attendance records found for this criteria." +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:37 +msgid "No attendance records found." +msgstr "" + +#: hr/doctype/interview/interview.py:89 +msgid "No changes found in timings." +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:33 +msgid "No employee(s) selected" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:189 +msgid "No employees found" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:172 +msgid "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:67 +msgid "No employees found for the selected criteria" +msgstr "" + +#: payroll/report/income_tax_computation/income_tax_computation.py:70 +msgid "No employees found with selected filters and active salary structure" +msgstr "" + +#: hr/doctype/goal/goal_list.js:97 +msgid "No items selected" +msgstr "" + +#: hr/doctype/attendance/attendance.py:184 +msgid "No leave record found for employee {0} on {1}" +msgstr "" + +#: hr/page/team_updates/team_updates.js:44 +msgid "No more updates" +msgstr "沒有更多的更新" + +#. Label of a Int field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "No of. Positions" +msgstr "" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:17 +msgid "No record found" +msgstr "" + +#: hr/doctype/daily_work_summary/daily_work_summary.py:102 +msgid "No replies from" +msgstr "從沒有回复" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1404 +msgid "No salary slip found to submit for the above selected criteria OR salary slip already submitted" +msgstr "沒有發現提交上述選定標准或已提交工資單的工資單" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Non Diary" +msgstr "非日記" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Non Taxable Earnings" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:255 +msgid "Non-Billed Hours" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:76 +msgid "Non-Billed Hours (NB)" +msgstr "" + +#. Label of a Int field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Non-Encashable Leaves" +msgstr "" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Non-Vegetarian" +msgstr "非素食主義者" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:28 +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:206 hr/doctype/goal/goal.py:67 +#: hr/doctype/goal/goal.py:71 hr/doctype/goal/goal.py:76 +#: hr/doctype/interview/interview.py:27 +#: hr/doctype/job_applicant/job_applicant.py:49 +#: hr/doctype/leave_allocation/leave_allocation.py:145 +#: hr/doctype/leave_type/leave_type.py:42 +#: hr/doctype/leave_type/leave_type.py:45 +msgid "Not Allowed" +msgstr "" + +#: utils/hierarchy_chart.py:15 +msgid "Not Permitted" +msgstr "" + +#. Option for a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Not Started" +msgstr "" + +#. Description of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Note: Shift will not be overwritten in existing attendance records" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:154 +msgid "Note: Total allocated leaves {0} shouldn't be less than already approved leaves {1} for the period" +msgstr "注:總分配葉{0}應不低於已核定葉{1}期間" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Notes" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Notes" +msgstr "" + +#: hr/employee_property_update.js:146 +msgid "Nothing to change" +msgstr "沒什麼可改變的" + +#: setup.py:404 +msgid "Notice Period" +msgstr "" + +#. Label of a Check field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Notify users by email" +msgstr "" + +#. Label of a Check field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Notify users by email" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:23 +#: public/js/salary_slip_deductions_report_filters.js:29 +msgid "Nov" +msgstr "" + +#. Label of a Int field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Number Of Employees" +msgstr "在職員工人數" + +#. Label of a Int field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Number Of Positions" +msgstr "職位數" + +#. Description of a Float field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Number of leaves eligible for encashment based on leave type settings" +msgstr "" + +#. Option for a Select field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "OUT" +msgstr "" + +#. Label of a Rating field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Obtained Average Rating" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:22 +#: public/js/salary_slip_deductions_report_filters.js:28 +msgid "Oct" +msgstr "" + +#. Label of a Section Break field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Odometer Reading" +msgstr "里程表讀數" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:41 +msgid "Odometer Value" +msgstr "" + +#: hr/report/recruitment_analytics/recruitment_analytics.py:60 +msgid "Offer Date" +msgstr "" + +#. Label of a Date field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Offer Date" +msgstr "" + +#. Name of a DocType +#: hr/doctype/offer_term/offer_term.json +msgid "Offer Term" +msgstr "要約期限" + +#. Label of a Link field in DocType 'Job Offer Term' +#: hr/doctype/job_offer_term/job_offer_term.json +msgctxt "Job Offer Term" +msgid "Offer Term" +msgstr "要約期限" + +#. Label of a Data field in DocType 'Offer Term' +#: hr/doctype/offer_term/offer_term.json +msgctxt "Offer Term" +msgid "Offer Term" +msgstr "要約期限" + +#. Label of a Table field in DocType 'Job Offer Term Template' +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +msgctxt "Job Offer Term Template" +msgid "Offer Terms" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Old Parent" +msgstr "" + +#: hr/report/recruitment_analytics/recruitment_analytics.js:17 +msgid "On Date" +msgstr "" + +#. Option for a Select field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "On Duty" +msgstr "" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "On Hold" +msgstr "" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "On Leave" +msgstr "" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgid "Onboarding" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Onboarding Activities" +msgstr "" + +#. Label of a Date field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Onboarding Begins On" +msgstr "" + +#: hr/doctype/shift_request/shift_request.py:78 +msgid "Only Approvers can Approve this Request." +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:45 +msgid "Only Completed documents can be submitted" +msgstr "" + +#: hr/doctype/employee_grievance/employee_grievance.py:13 +msgid "Only Employee Grievance with status {0} or {1} can be submitted" +msgstr "" + +#: hr/doctype/interview/interview.py:331 +msgid "Only Interviewer Are allowed to submit Interview Feedback" +msgstr "" + +#: hr/doctype/interview/interview.py:26 +msgid "Only Interviews with Cleared or Rejected status can be submitted." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:103 +msgid "Only Leave Applications with status 'Approved' and 'Rejected' can be submitted" +msgstr "只留下地位的申請“已批准”和“拒絕”,就可以提交" + +#: hr/doctype/shift_request/shift_request.py:32 +msgid "Only Shift Request with status 'Approved' and 'Rejected' can be submitted" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Only Tax Impact (Cannot Claim But Part of Taxable Income)" +msgstr "只有稅收影響(不能索取但應稅收入的一部分)" + +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.py:21 +msgid "Only expired allocation can be cancelled" +msgstr "" + +#: hr/doctype/interview/interview.js:69 +msgid "Only interviewers can submit feedback" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:174 +msgid "Only users with the {0} role can create backdated leave applications" +msgstr "" + +#: hr/doctype/goal/goal_list.js:115 +msgid "Only {0} Goals can be {1}" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Open" +msgstr "" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Open & Approved" +msgstr "" + +#: hr/doctype/leave_application/leave_application_email_template.html:30 +msgid "Open Now" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.py:54 +msgid "Opening Balance" +msgstr "" + +#: templates/generators/job_opening.html:34 +msgid "Opening closed." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:558 +msgid "Optional Holiday List not set for leave period {0}" +msgstr "可選假期列表未設置為假期{0}" + +#: hr/doctype/leave_type/leave_type.js:21 +msgid "Optional Leaves are holidays that Employees can choose to avail from a list of holidays published by the company." +msgstr "" + +#: hr/page/organizational_chart/organizational_chart.js:4 +msgid "Organizational Chart" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Other Details" +msgstr "" + +#. Label of a Small Text field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Other Details" +msgstr "" + +#. Label of a Text field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Other Details" +msgstr "" + +#. Label of a Card Break in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Other Reports" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Other Settings" +msgstr "" + +#. Label of a Table field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Other Taxes and Charges" +msgstr "" + +#: setup.py:326 +msgid "Others" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:73 +msgid "Out Time" +msgstr "" + +#. Label of a Datetime field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Out Time" +msgstr "" + +#. Description of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Out of 5" +msgstr "" + +#. Label of a chart in the Payroll Workspace +#: payroll/workspace/payroll/payroll.json +msgid "Outgoing Salary" +msgstr "" + +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:23 +msgid "Outstanding Amount" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:284 +msgid "Over Allocation" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:60 +msgid "Overlapping Attendance Request" +msgstr "" + +#: hr/doctype/attendance/attendance.py:118 +msgid "Overlapping Shift Attendance" +msgstr "" + +#: hr/doctype/shift_request/shift_request.py:136 +msgid "Overlapping Shift Requests" +msgstr "" + +#: hr/doctype/shift_assignment/shift_assignment.py:123 +msgid "Overlapping Shifts" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Overview" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Overview" +msgstr "" + +#. Label of a Tab Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Overview" +msgstr "" + +#. Label of a Tab Break field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Overview" +msgstr "" + +#. Label of a Check field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Overwrite Salary Structure Amount" +msgstr "覆蓋薪資結構金額" + +#. Option for a Select field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Owned" +msgstr "" + +#: payroll/report/income_tax_deductions/income_tax_deductions.py:41 +msgid "PAN Number" +msgstr "" + +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:31 +msgid "PF Account" +msgstr "" + +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:32 +msgid "PF Amount" +msgstr "" + +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:39 +msgid "PF Loan" +msgstr "" + +#. Name of a DocType +#: hr/doctype/pwa_notification/pwa_notification.json +msgid "PWA Notification" +msgstr "" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Paid" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Paid" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Paid" +msgstr "" + +#. Option for a Select field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Paid" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Paid" +msgstr "" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:67 +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:22 +msgid "Paid Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Paid Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Paid Amount" +msgstr "" + +#. Label of a Check field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Paid via Salary Slip" +msgstr "" + +#: hr/report/employee_analytics/employee_analytics.js:17 +msgid "Parameter" +msgstr "" + +#. Label of a Link field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Parent Goal" +msgstr "" + +#: setup.py:381 +msgid "Part-time" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:125 +msgid "Partial Success" +msgstr "" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Partially Sponsored, Require Partial Funding" +msgstr "部分贊助,需要部分資金" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Partly Claimed and Returned" +msgstr "" + +#. Label of a Data field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Passport Number" +msgstr "" + +#. Label of a Data field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Password Policy" +msgstr "" + +#: payroll/doctype/payroll_settings/payroll_settings.js:24 +msgid "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically" +msgstr "" + +#: payroll/doctype/payroll_settings/payroll_settings.py:22 +msgid "Password policy for Salary Slips is not set" +msgstr "" + +#. Label of a Check field in DocType 'Employee Benefit Application Detail' +#: payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json +msgctxt "Employee Benefit Application Detail" +msgid "Pay Against Benefit Claim" +msgstr "支付利益索賠" + +#. Label of a Check field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Pay Against Benefit Claim" +msgstr "支付利益索賠" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Pay Against Benefit Claim" +msgstr "支付利益索賠" + +#. Label of a Check field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Pay via Salary Slip" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Payable Account" +msgstr "" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Payable Account" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:100 +msgid "Payable Account is mandatory to submit an Expense Claim" +msgstr "" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Payables" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.js:47 +#: hr/doctype/expense_claim/expense_claim.js:234 +#: hr/doctype/expense_claim/expense_claim_dashboard.py:9 +#: payroll/doctype/gratuity/gratuity_dashboard.py:10 +msgid "Payment" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Payment Account" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Payment Account" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:415 +msgid "Payment Account is mandatory" +msgstr "" + +#: payroll/report/bank_remittance/bank_remittance.py:25 +msgid "Payment Date" +msgstr "" + +#: payroll/report/salary_register/salary_register.py:181 +msgid "Payment Days" +msgstr "付款日" + +#. Label of a Float field in DocType 'Salary Slip' +#. Label of a Tab Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payment Days" +msgstr "付款日" + +#. Label of a HTML field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payment Days Calculation Help" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:101 +msgid "Payment Days Dependency" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the Salary Payout Workspace +#: hr/workspace/expense_claims/expense_claims.json +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Payment Entry" +msgid "Payment Entry" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Payment Entry" +msgstr "" + +#. Label of a Tab Break field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Payment and Accounting" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:979 +msgid "Payment of {0} from {1} to {2}" +msgstr "從{1}到{2}的{0}付款" + +#. Name of a Workspace +#. Label of a Card Break in the Salary Payout Workspace +#: overrides/dashboard_overrides.py:32 overrides/dashboard_overrides.py:74 +#: payroll/workspace/payroll/payroll.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Payroll" +msgstr "工資表" + +#. Label of a Section Break field in DocType 'Leave Encashment' +#: hr/doctype/leave_encashment/leave_encashment.json +msgctxt "Leave Encashment" +msgid "Payroll" +msgstr "工資表" + +#. Label of a Section Break field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Payroll Cost Centers" +msgstr "" + +#. Label of a Date field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Payroll Date" +msgstr "工資日期" + +#. Label of a Date field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Payroll Date" +msgstr "工資日期" + +#. Label of a Date field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Payroll Date" +msgstr "工資日期" + +#. Name of a DocType +#: payroll/doctype/payroll_employee_detail/payroll_employee_detail.json +msgid "Payroll Employee Detail" +msgstr "薪資員工詳細信息" + +#. Name of a DocType +#: payroll/doctype/payroll_entry/payroll_entry.json +msgid "Payroll Entry" +msgstr "" + +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Salary Payout Workspace +#. Label of a shortcut in the Salary Payout Workspace +#: payroll/workspace/payroll/payroll.json +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Payroll Entry" +msgid "Payroll Entry" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payroll Entry" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:108 +msgid "Payroll Entry cancellation is queued. It may take a few minutes" +msgstr "" + +#. Label of a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Payroll Frequency" +msgstr "工資頻率" + +#. Label of a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payroll Frequency" +msgstr "工資頻率" + +#. Label of a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Payroll Frequency" +msgstr "工資頻率" + +#. Label of a Section Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Payroll Info" +msgstr "" + +#: payroll/report/bank_remittance/bank_remittance.py:12 +msgid "Payroll Number" +msgstr "" + +#: overrides/company.py:97 +#: patches/post_install/updates_for_multi_currency_payroll.py:68 +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:113 +msgid "Payroll Payable" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:138 +msgid "Payroll Payable Account" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Payroll Payable Account" +msgstr "" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Payroll Payable Account" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/payroll_period/payroll_period.json +#: payroll/report/income_tax_computation/income_tax_computation.js:18 +msgid "Payroll Period" +msgstr "工資期" + +#. Label of a Link field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Payroll Period" +msgstr "工資期" + +#. Label of a Link field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Payroll Period" +msgstr "工資期" + +#. Label of a Link field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Payroll Period" +msgstr "工資期" + +#. Label of a Link field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Payroll Period" +msgstr "工資期" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Payroll Period" +msgid "Payroll Period" +msgstr "工資期" + +#. Name of a DocType +#: payroll/doctype/payroll_period_date/payroll_period_date.json +msgid "Payroll Period Date" +msgstr "工資期間日期" + +#. Label of a Section Break field in DocType 'Payroll Period' +#. Label of a Table field in DocType 'Payroll Period' +#: payroll/doctype/payroll_period/payroll_period.json +msgctxt "Payroll Period" +msgid "Payroll Periods" +msgstr "工資期間" + +#. Label of a Card Break in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Payroll Reports" +msgstr "" + +#. Name of a DocType +#. Title of an Onboarding Step +#: payroll/doctype/payroll_settings/payroll_settings.json +#: payroll/onboarding_step/payroll_settings/payroll_settings.json +msgid "Payroll Settings" +msgstr "薪資設置" + +#. Label of a Link in the Payroll Workspace +#: payroll/workspace/payroll/payroll.json +msgctxt "Payroll Settings" +msgid "Payroll Settings" +msgstr "薪資設置" + +#: payroll/doctype/additional_salary/additional_salary.py:89 +msgid "Payroll date can not be greater than employee's relieving date." +msgstr "" + +#: payroll/doctype/additional_salary/additional_salary.py:81 +msgid "Payroll date can not be less than employee's joining date." +msgstr "" + +#. Option for a Select field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Pending" +msgstr "" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Pending" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Pending Amount" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:227 +msgid "Pending FnF" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:221 +msgid "Pending Interviews" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:233 +msgid "Pending Questionnaires" +msgstr "" + +#. Label of a Percent field in DocType 'Income Tax Slab Other Charges' +#: payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json +msgctxt "Income Tax Slab Other Charges" +msgid "Percent" +msgstr "" + +#. Label of a Percent field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "Percent Deduction" +msgstr "扣除百分比" + +#. Label of a Int field in DocType 'Employee Cost Center' +#: payroll/doctype/employee_cost_center/employee_cost_center.json +msgctxt "Employee Cost Center" +msgid "Percentage (%)" +msgstr "" + +#. Name of a Workspace +#: hr/workspace/performance/performance.json +msgid "Performance" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Phone Number" +msgstr "" + +#: setup.py:385 +msgid "Piecework" +msgstr "計件工作" + +#. Label of a Int field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Planned number of Positions" +msgstr "計劃的職位數量" + +#: hr/doctype/shift_type/shift_type.js:11 +msgid "Please Enable Auto Attendance and complete the setup first." +msgstr "" + +#: payroll/doctype/retention_bonus/retention_bonus.js:8 +msgid "Please Select Company First" +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:94 +msgid "Please add the remaining benefits {0} to any of the existing component" +msgstr "請將其餘好處{0}添加到任何現有組件" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:106 +msgid "Please add the remaining benefits {0} to the application as pro-rata component" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:729 +msgid "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" +msgstr "" + +#: templates/emails/training_event.html:17 +msgid "Please confirm once you have completed your training" +msgstr "完成培訓後請確認" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:101 +msgid "Please create a new {0} for the date {1} first." +msgstr "" + +#: hr/doctype/employee_transfer/employee_transfer.py:57 +msgid "Please delete the Employee {0} to cancel this document" +msgstr "" + +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.py:20 +msgid "Please enable default incoming account before creating Daily Work Summary Group" +msgstr "請在創建日常工作摘要組之前啟用默認傳入科目" + +#: hr/doctype/staffing_plan/staffing_plan.js:98 +msgid "Please enter the designation" +msgstr "" + +#: hr/doctype/staffing_plan/staffing_plan.py:224 +msgid "Please select Company and Designation" +msgstr "請選擇公司和指定" + +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js:22 +msgid "Please select Employee" +msgstr "請選擇員工" + +#: hr/doctype/department_approver/department_approver.py:19 +#: hr/employee_property_update.js:47 +msgid "Please select Employee first." +msgstr "" + +#: hr/utils.py:696 +msgid "Please select a Company" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_mobile.js:229 +msgid "Please select a company first" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:95 +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:290 +msgid "Please select a company first." +msgstr "" + +#: hr/doctype/upload_attendance/upload_attendance.py:174 +msgid "Please select a csv file" +msgstr "請選擇一個csv文件" + +#: hr/doctype/attendance/attendance.py:308 +msgid "Please select a date." +msgstr "" + +#: hr/utils.py:693 +msgid "Please select an Applicant" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.js:16 +msgid "Please select employee first" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:111 +msgid "Please select employees to create appraisals for" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:33 +msgid "Please select month and year." +msgstr "" + +#: hr/doctype/goal/goal.js:87 +msgid "Please select the Appraisal Cycle first." +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:192 +msgid "Please select the attendance status." +msgstr "" + +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:185 +msgid "Please select the employees you want to mark attendance for." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip_list.js:7 +msgid "Please select the salary slips to email" +msgstr "" + +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:19 +msgid "Please select {0}" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:271 +msgid "Please set \"Default Payroll Payable Account\" in Company Defaults" +msgstr "" + +#: regional/india/utils.py:18 +msgid "Please set Basic and HRA component in Company {0}" +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:49 +msgid "Please set Earning Component for Leave type: {0}." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:444 +msgid "Please set Payroll based on in Payroll settings" +msgstr "" + +#: payroll/doctype/gratuity/gratuity.py:152 +msgid "Please set Relieving Date for employee: {0}" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.py:172 +#: hr/doctype/employee_advance/employee_advance.py:276 +msgid "Please set a Default Cash Account in Company defaults" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:297 +msgid "Please set account in Salary Component {0}" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:612 +msgid "Please set default template for Leave Approval Notification in HR Settings." +msgstr "請在人力資源設置中為離職審批通知設置默認模板。" + +#: hr/doctype/leave_application/leave_application.py:588 +msgid "Please set default template for Leave Status Notification in HR Settings." +msgstr "請在人力資源設置中設置離職狀態通知的默認模板。" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:137 +msgid "Please set the Appraisal Template for all the {0} or select the template in the Employees table below." +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.js:41 +msgid "Please set the Company" +msgstr "請設定公司" + +#: payroll/doctype/salary_slip/salary_slip.py:251 +msgid "Please set the Date Of Joining for employee {0}" +msgstr "請為員工{0}設置加入日期" + +#: controllers/employee_boarding_controller.py:110 +msgid "Please set the Holiday List." +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.js:17 +#: hr/doctype/exit_interview/exit_interview.py:21 +msgid "Please set the relieving date for employee {0}" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:124 +msgid "Please set {0} and {1} in {2}." +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:25 +msgid "Please set {0} for Employee {1}" +msgstr "" + +#: hr/doctype/department_approver/department_approver.py:86 +msgid "Please set {0} for the Employee: {1}" +msgstr "" + +#: hr/doctype/shift_type/shift_type.js:16 +#: hr/doctype/shift_type/shift_type.js:21 +msgid "Please set {0}." +msgstr "" + +#: overrides/employee_master.py:16 +msgid "Please setup Employee Naming System in Human Resource > HR Settings" +msgstr "" + +#: hr/doctype/upload_attendance/upload_attendance.py:161 +msgid "Please setup numbering series for Attendance via Setup > Numbering Series" +msgstr "" + +#: hr/notification/training_feedback/training_feedback.html:6 +msgid "Please share your feedback to the training by clicking on 'Training Feedback' and then 'New'" +msgstr "請通過點擊“培訓反饋”,然後點擊“新建”" + +#: hr/doctype/interview/interview.py:198 +msgid "Please specify the job applicant to be updated." +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:157 +msgid "Please submit the {0} before marking the cycle as Completed" +msgstr "" + +#: templates/emails/training_event.html:13 +msgid "Please update your status for this training event" +msgstr "請更新此培訓活動的狀態" + +#. Label of a Datetime field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Posted On" +msgstr "" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:60 +#: payroll/report/income_tax_deductions/income_tax_deductions.py:60 +#: www/jobs/index.html:93 +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Posting Date" +msgstr "" + +#. Label of a Date field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Posting date" +msgstr "" + +#. Label of a Data field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Preferred Area for Lodging" +msgstr "住宿的首選地區" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Present" +msgstr "現在" + +#. Option for a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Present" +msgstr "現在" + +#. Option for a Select field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Present" +msgstr "現在" + +#. Option for a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Present" +msgstr "現在" + +#: hr/report/shift_attendance/shift_attendance.py:162 +msgid "Present Records" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:110 +#: payroll/doctype/salary_structure/salary_structure.js:197 +msgid "Preview Salary Slip" +msgstr "預覽工資單" + +#. Label of a Currency field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Principal Amount" +msgstr "" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Print Heading" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Printing Details" +msgstr "" + +#: setup.py:364 setup.py:365 +msgid "Privilege Leave" +msgstr "特權休假" + +#: setup.py:382 +msgid "Probation" +msgstr "緩刑" + +#: setup.py:396 +msgid "Probationary Period" +msgstr "試用期" + +#. Label of a Date field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Process Attendance After" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Process Payroll Accounting Entry based on Employee" +msgstr "" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/professional_tax_deductions/professional_tax_deductions.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Professional Tax Deductions" +msgstr "" + +#. Label of a Rating field in DocType 'Employee Skill' +#: hr/doctype/employee_skill/employee_skill.json +msgctxt "Employee Skill" +msgid "Proficiency" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:185 +msgid "Profit" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:78 +msgid "Progress" +msgstr "" + +#. Label of a Percent field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Progress" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.js:31 +#: hr/doctype/employee_separation/employee_separation.js:19 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:43 +#: hr/report/project_profitability/project_profitability.js:43 +#: hr/report/project_profitability/project_profitability.py:164 +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Project" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Project" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/project_profitability/project_profitability.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Project Profitability" +msgstr "" + +#. Label of a Card Break in the Performance Workspace +#: hr/workspace/performance/performance.json +msgid "Promotion" +msgstr "" + +#. Label of a Date field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Promotion Date" +msgstr "促銷日期" + +#. Label of a Data field in DocType 'Employee Property History' +#: hr/doctype/employee_property_history/employee_property_history.json +msgctxt "Employee Property History" +msgid "Property" +msgstr "" + +#: hr/employee_property_update.js:142 +msgid "Property already added" +msgstr "已添加屬性" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/provident_fund_deductions/provident_fund_deductions.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Provident Fund Deductions" +msgstr "" + +#. Label of a Check field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Publish Salary Range" +msgstr "" + +#. Label of a Check field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Publish on website" +msgstr "發布在網站上" + +#. Label of a Small Text field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Purpose" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Purpose & Amount" +msgstr "" + +#. Name of a DocType +#: hr/doctype/purpose_of_travel/purpose_of_travel.json +msgid "Purpose of Travel" +msgstr "旅行目的" + +#. Label of a Data field in DocType 'Purpose of Travel' +#. Label of a Link in the Expense Claims Workspace +#: hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Purpose of Travel" +msgid "Purpose of Travel" +msgstr "旅行目的" + +#. Label of a Link field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Purpose of Travel" +msgstr "旅行目的" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Quarterly" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Quarterly" +msgstr "" + +#. Label of a Check field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Questionnaire Email Sent" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Queued" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Quick Filters" +msgstr "" + +#. Label of a Card Break in the Payroll Workspace +#: payroll/workspace/payroll/payroll.json +msgid "Quick Links" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Raised By" +msgstr "" + +#. Label of a Float field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Rate" +msgstr "" + +#. Label of a Check field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Rate Goals Manually" +msgstr "" + +#: hr/doctype/interview/interview.js:191 +msgid "Rating" +msgstr "" + +#. Label of a Rating field in DocType 'Employee Feedback Rating' +#: hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgctxt "Employee Feedback Rating" +msgid "Rating" +msgstr "" + +#. Label of a Rating field in DocType 'Skill Assessment' +#: hr/doctype/skill_assessment/skill_assessment.json +msgctxt "Skill Assessment" +msgid "Rating" +msgstr "" + +#. Label of a Table field in DocType 'Appraisal Template' +#: hr/doctype/appraisal_template/appraisal_template.json +msgctxt "Appraisal Template" +msgid "Rating Criteria" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Ratings" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Ratings" +msgstr "" + +#. Label of a Check field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Re-allocate Leaves" +msgstr "重新分配葉子" + +#. Label of a Check field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "Read" +msgstr "" + +#. Label of a Section Break field in DocType 'Attendance Request' +#. Label of a Select field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Reason" +msgstr "" + +#. Label of a Small Text field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Reason" +msgstr "" + +#. Label of a Small Text field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Reason" +msgstr "" + +#. Label of a Text field in DocType 'Leave Block List Date' +#: hr/doctype/leave_block_list_date/leave_block_list_date.json +msgctxt "Leave Block List Date" +msgid "Reason" +msgstr "" + +#. Label of a Text field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Reason for Requesting" +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:251 +msgid "Reason for skipping auto attendance:" +msgstr "" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Receivables" +msgstr "" + +#. Name of a Workspace +#: hr/workspace/recruitment/recruitment.json +msgid "Recruitment" +msgstr "" + +#. Name of a report +#. Label of a Link in the HR Workspace +#. Label of a Link in the Recruitment Workspace +#: hr/report/recruitment_analytics/recruitment_analytics.json +#: hr/workspace/hr/hr.json hr/workspace/recruitment/recruitment.json +msgid "Recruitment Analytics" +msgstr "" + +#. Label of a shortcut in the HR Workspace +#: hr/workspace/hr/hr.json +msgid "Recruitment Dashboard" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim_dashboard.py:10 +#: hr/doctype/leave_allocation/leave_allocation.py:207 +msgid "Reference" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Reference" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Reference Document" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Full and Final Outstanding +#. Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Reference Document" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Reference Document Name" +msgstr "" + +#. Label of a Data field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "Reference Document Name" +msgstr "" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Reference Document Type" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Reference Document Type" +msgstr "" + +#. Label of a Link field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Reference Document Type" +msgstr "" + +#. Label of a Link field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "Reference Document Type" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:486 +#: payroll/doctype/additional_salary/additional_salary.py:136 +msgid "Reference: {0}" +msgstr "" + +#. Label of a Section Break field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "References" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "References" +msgstr "" + +#. Label of a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referral Bonus Payment Status" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referral Details" +msgstr "" + +#. Label of a Link field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referrer" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referrer Details" +msgstr "" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Referrer Name" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Reflections" +msgstr "" + +#. Label of a Section Break field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Refuelling Details" +msgstr "加油詳情" + +#: hr/doctype/employee_referral/employee_referral.js:7 +msgid "Reject Employee Referral" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Rejected" +msgstr "" + +#. Option for a Select field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Rejected" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:26 +#: hr/report/employee_exits/employee_exits.py:37 +msgid "Relieving Date" +msgstr "" + +#. Label of a Date field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Relieving Date" +msgstr "" + +#. Label of a Date field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Relieving Date " +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.js:19 +#: hr/doctype/exit_interview/exit_interview.py:24 +msgid "Relieving Date Missing" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Remaining Benefits (Yearly)" +msgstr "剩餘福利(每年)" + +#. Label of a Small Text field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Remark" +msgstr "" + +#. Label of a Small Text field in DocType 'Full and Final Outstanding +#. Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Remark" +msgstr "" + +#. Label of a Text field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Remarks" +msgstr "" + +#. Label of a Time field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Remind Before" +msgstr "提醒之前" + +#. Label of a Check field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Reminded" +msgstr "提醒" + +#. Label of a Section Break field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Reminder" +msgstr "提醒" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Reminders" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Remove if Zero Valued" +msgstr "" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Rented Car" +msgstr "租車" + +#: hr/doctype/goal/goal.js:61 +msgid "Reopen" +msgstr "" + +#: hr/utils.py:708 +msgid "Repay From Salary can be selected only for term loans" +msgstr "" + +#. Label of a Check field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Repay Unclaimed Amount from Salary" +msgstr "" + +#. Option for a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Replied" +msgstr "" + +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.py:22 +msgid "Replies" +msgstr "" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#. Label of a Card Break in the Expense Claims Workspace +#. Label of a Card Break in the Leaves Workspace +#. Label of a Card Break in the Performance Workspace +#. Label of a Card Break in the Recruitment Workspace +#. Label of a Card Break in the Shift & Attendance Workspace +#. Label of a Card Break in the Tax & Benefits Workspace +#: hr/doctype/leave_application/leave_application_dashboard.py:8 +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: hr/workspace/expense_claims/expense_claims.json +#: hr/workspace/leaves/leaves.json hr/workspace/performance/performance.json +#: hr/workspace/recruitment/recruitment.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Reports" +msgstr "" + +#: hr/report/employee_exits/employee_exits.js:45 +#: hr/report/employee_exits/employee_exits.py:79 +msgid "Reports To" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Reports To" +msgstr "" + +#. Label of a Link field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Reports To" +msgstr "" + +#. Label of a Link field in DocType 'Job Requisition' +#. Label of a Section Break field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Requested By" +msgstr "" + +#. Label of a Data field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Requested By (Name)" +msgstr "" + +#. Option for a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Require Full Funding" +msgstr "需要全額資助" + +#. Label of a Check field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Required for Employee Creation" +msgstr "員工創建需要" + +#: hr/doctype/interview/interview.js:29 +msgid "Reschedule Interview" +msgstr "" + +#. Label of a Date field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Resignation Letter Date" +msgstr "" + +#. Label of a Date field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Resolution Date" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Grievance' +#. Label of a Small Text field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Resolution Details" +msgstr "" + +#. Option for a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Resolved" +msgstr "" + +#. Label of a Link field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Resolved By" +msgstr "" + +#: setup.py:402 +msgid "Responsibilities" +msgstr "職責" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Restrict Backdated Leave Application" +msgstr "" + +#: hr/doctype/interview/interview.js:145 +msgid "Result" +msgstr "" + +#. Label of a Select field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Result" +msgstr "" + +#. Label of a Attach field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Resume" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Resume" +msgstr "" + +#. Label of a Attach field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Resume Attachment" +msgstr "簡歷附" + +#. Label of a Data field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Resume Link" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Resume Link" +msgstr "" + +#. Label of a Data field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Resume link" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:193 +msgid "Retained" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/retention_bonus/retention_bonus.json +msgid "Retention Bonus" +msgstr "保留獎金" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Retention Bonus" +msgid "Retention Bonus" +msgstr "保留獎金" + +#. Label of a Data field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Retirement Age (In Years)" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.js:70 +msgid "Return" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.py:126 +msgid "Return amount cannot be greater than unclaimed amount" +msgstr "" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Returned" +msgstr "" + +#. Option for a Select field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Returned" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Returned Amount" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.js:37 +msgid "Review various other settings related to Employee Leaves and Expense Claim" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Reviewer" +msgstr "" + +#. Label of a Data field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Reviewer Name" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Revised CTC" +msgstr "" + +#. Label of a Int field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Right" +msgstr "" + +#. Label of a Link field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Role" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Role Allowed to Create Backdated Leave Application" +msgstr "" + +#. Label of a Data field in DocType 'Interview Round' +#: hr/doctype/interview_round/interview_round.json +msgctxt "Interview Round" +msgid "Round Name" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Round off Work Experience" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Round to the Nearest Integer" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Rounded Total" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Rounded Total (Company Currency)" +msgstr "" + +#. Label of a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Rounding" +msgstr "四捨五入" + +#. Label of a Data field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Route" +msgstr "" + +#. Description of a Data field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Route to the custom Job Application Webform" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:71 +msgid "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:90 +msgid "Row #{0}: The {1} Component has the options {2} and {3} enabled." +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:116 +msgid "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:580 +msgid "Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2}" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:347 +msgid "Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2}" +msgstr "行{0}#分配的金額{1}不能大於無人認領的金額{2}" + +#: payroll/doctype/gratuity/gratuity.py:127 +msgid "Row {0}# Paid Amount cannot be greater than Total amount" +msgstr "" + +#: hr/doctype/employee_advance/employee_advance.py:121 +msgid "Row {0}# Paid Amount cannot be greater than requested advance amount" +msgstr "行{0}#付費金額不能大於請求的提前金額" + +#: payroll/doctype/gratuity_rule/gratuity_rule.py:15 +msgid "Row {0}: From (Year) can not be greater than To (Year)" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:133 +msgid "Row {0}: Goal Score cannot be greater than 5" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip_loan_utils.py:54 +msgid "Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:280 +msgid "Row {0}: {1} is required in the expenses table to book an expense claim." +msgstr "" + +#. Label of a Section Break field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Rules" +msgstr "" + +#. Label of a Section Break field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Salary" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_component/salary_component.json +msgid "Salary Component" +msgstr "薪金部分" + +#. Label of a Link field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Salary Component" +msgstr "薪金部分" + +#. Label of a Link field in DocType 'Employee Incentive' +#: payroll/doctype/employee_incentive/employee_incentive.json +msgctxt "Employee Incentive" +msgid "Salary Component" +msgstr "薪金部分" + +#. Label of a Link field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Salary Component" +msgstr "薪金部分" + +#. Label of a Link field in DocType 'Retention Bonus' +#: payroll/doctype/retention_bonus/retention_bonus.json +msgctxt "Retention Bonus" +msgid "Salary Component" +msgstr "薪金部分" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Salary Component" +msgid "Salary Component" +msgstr "薪金部分" + +#. Label of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Salary Component" +msgstr "薪金部分" + +#. Label of a Link field in DocType 'Gratuity Applicable Component' +#: payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json +msgctxt "Gratuity Applicable Component" +msgid "Salary Component " +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_component_account/salary_component_account.json +msgid "Salary Component Account" +msgstr "薪金部分科目" + +#. Label of a Data field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Salary Component Type" +msgstr "薪資組件類型" + +#. Description of a Link field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Salary Component for timesheet based payroll." +msgstr "薪酬部分基於時間表工資。" + +#. Label of a Link field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Salary Currency" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_detail/salary_detail.json +msgid "Salary Detail" +msgstr "薪酬詳細" + +#. Label of a Section Break field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Salary Details" +msgstr "薪資明細" + +#. Label of a Section Break field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Salary Expectation" +msgstr "" + +#. Label of a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Salary Paid Per" +msgstr "" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Salary Payments Based On Payment Mode" +msgstr "" + +#. Name of a report +#. Label of a Link in the Salary Payout Workspace +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Salary Payments via ECS" +msgstr "" + +#. Name of a Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Salary Payout" +msgstr "" + +#: templates/generators/job_opening.html:103 +msgid "Salary Range" +msgstr "" + +#. Name of a report +#. Label of a shortcut in the Payroll Workspace +#. Label of a Link in the Salary Payout Workspace +#. Label of a shortcut in the Salary Payout Workspace +#: payroll/report/salary_register/salary_register.json +#: payroll/workspace/payroll/payroll.json +#: payroll/workspace/salary_payout/salary_payout.json +msgid "Salary Register" +msgstr "薪酬註冊" + +#. Name of a DocType +#: payroll/doctype/salary_slip/salary_slip.json +msgid "Salary Slip" +msgstr "" + +#. Label of a Link field in DocType 'Employee Benefit Claim' +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +msgctxt "Employee Benefit Claim" +msgid "Salary Slip" +msgstr "" + +#. Label of a Link field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Salary Slip" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Salary Slip" +msgstr "" + +#. Label of a Link in the Payroll Workspace +#. Label of a Link in the Salary Payout Workspace +#. Label of a shortcut in the Salary Payout Workspace +#: payroll/workspace/payroll/payroll.json +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Salary Slip" +msgid "Salary Slip" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Salary Slip Based on Timesheet" +msgstr "基於時間表工資單" + +#. Label of a Check field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Salary Slip Based on Timesheet" +msgstr "基於時間表工資單" + +#. Label of a Check field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Salary Slip Based on Timesheet" +msgstr "基於時間表工資單" + +#: payroll/report/salary_register/salary_register.py:109 +msgid "Salary Slip ID" +msgstr "工資單編號" + +#. Name of a DocType +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgid "Salary Slip Leave" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgid "Salary Slip Loan" +msgstr "工資單貸款" + +#. Name of a DocType +#: payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgid "Salary Slip Timesheet" +msgstr "工資單時間表" + +#. Label of a Table field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Salary Slip Timesheet" +msgstr "工資單時間表" + +#: payroll/doctype/payroll_entry/payroll_entry.py:84 +msgid "Salary Slip already exists for {0}" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:230 +msgid "Salary Slip creation is queued. It may take a few minutes" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:285 +msgid "Salary Slip of employee {0} already created for this period" +msgstr "員工的工資單{0}已為這一時期創建" + +#: payroll/doctype/salary_slip/salary_slip.py:291 +msgid "Salary Slip of employee {0} already created for time sheet {1}" +msgstr "員工的工資單{0}已為時間表創建{1}" + +#: payroll/doctype/payroll_entry/payroll_entry.py:275 +msgid "Salary Slip submission is queued. It may take a few minutes" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1343 +msgid "Salary Slip {0} failed for Payroll Entry {1}" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:95 +msgid "Salary Slip {0} failed. You can resolve the {1} and retry {0}." +msgstr "" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Salary Slips Created" +msgstr "工資單創建" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Salary Slips Submitted" +msgstr "提交工資單" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1385 +msgid "Salary Slips already exist for employees {}, and will not be processed by this payroll." +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1410 +msgid "Salary Slips submitted for period from {0} to {1}" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/salary_structure/salary_structure.json +msgid "Salary Structure" +msgstr "薪酬結構" + +#. Label of a Link field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Salary Structure" +msgstr "薪酬結構" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Salary Structure" +msgid "Salary Structure" +msgstr "薪酬結構" + +#. Label of a Link field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Salary Structure" +msgstr "薪酬結構" + +#. Name of a DocType +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "Salary Structure Assignment" +msgstr "薪酬結構分配" + +#. Label of a Link in the Salary Payout Workspace +#: payroll/workspace/salary_payout/salary_payout.json +msgctxt "Salary Structure Assignment" +msgid "Salary Structure Assignment" +msgstr "薪酬結構分配" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:62 +msgid "Salary Structure Assignment for Employee already exists" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:383 +msgid "Salary Structure Missing" +msgstr "薪酬結構缺失" + +#: regional/india/utils.py:30 +msgid "Salary Structure must be submitted before submission of {0}" +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:349 +msgid "Salary Structure not found for employee {0} and date {1}" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:156 +msgid "Salary Structure should have flexible benefit component(s) to dispense benefit amount" +msgstr "薪酬結構應該有靈活的福利組成來分配福利金額" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:85 +msgid "Salary Structure {0} does not belong to company {1}" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:330 +msgid "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range." +msgstr "工資已經處理了與{0}和{1},留下申請期之間不能在此日期範圍內的時期。" + +#. Description of a Tab Break field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Salary breakup based on Earning and Deduction." +msgstr "工資分手基於盈利和演繹。" + +#. Description of a Table MultiSelect field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Salary components should be part of the Salary Structure." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2265 +msgid "Salary slip emails have been enqueued for sending. Check {0} for status." +msgstr "" + +#. Subtitle of the Module Onboarding 'Payroll' +#: payroll/module_onboarding/payroll/payroll.json +msgid "Salary, Compensation, and more." +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:150 +msgid "Sales Invoice" +msgstr "" + +#: hr/doctype/expense_claim_type/expense_claim_type.py:22 +msgid "Same Company is entered more than once" +msgstr "" + +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.py:21 +msgid "Sanctioned Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Detail' +#: hr/doctype/expense_claim_detail/expense_claim_detail.json +msgctxt "Expense Claim Detail" +msgid "Sanctioned Amount" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:369 +msgid "Sanctioned Amount cannot be greater than Claim Amount in Row {0}." +msgstr "制裁金額不能大於索賠額行{0}。" + +#: hr/doctype/leave_block_list/leave_block_list.js:62 +msgid "Saturday" +msgstr "" + +#. Option for a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Scheduled" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Scheduled" +msgstr "" + +#. Option for a Select field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Scheduled" +msgstr "" + +#. Label of a Date field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Scheduled On" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Score (0-5)" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Score Earned" +msgstr "得分" + +#: hr/doctype/appraisal/appraisal.js:124 +msgid "Score must be less than or equal to 5" +msgstr "得分必須小於或等於5" + +#: hr/doctype/appraisal/appraisal.js:96 +msgid "Scores" +msgstr "" + +#: www/jobs/index.html:64 +msgid "Search for Jobs" +msgstr "" + +#: public/js/hierarchy_chart/hierarchy_chart_desktop.js:78 +#: public/js/hierarchy_chart/hierarchy_chart_mobile.js:69 +msgid "Select Company" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Select Employees" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Select Employees" +msgstr "" + +#: hr/doctype/interview/interview.js:206 +msgid "Select Interview Round First" +msgstr "" + +#: hr/doctype/interview_feedback/interview_feedback.js:50 +msgid "Select Interview first" +msgstr "" + +#. Description of a Link field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Select Payment Account to make Bank Entry" +msgstr "選擇付款科目,使銀行進入" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1544 +msgid "Select Payroll Frequency." +msgstr "" + +#: hr/employee_property_update.js:84 +msgid "Select Property" +msgstr "選擇屬性" + +#. Label of a Link field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Select Terms and Conditions" +msgstr "選擇條款和條件" + +#. Label of a Section Break field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Select Users" +msgstr "選擇用戶" + +#: hr/doctype/expense_claim/expense_claim.js:370 +msgid "Select an employee to get the employee advance." +msgstr "選擇一名員工以推進員工。" + +#: hr/doctype/leave_allocation/leave_allocation.js:116 +msgid "Select the Employee for which you want to allocate leaves." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:247 +msgid "Select the Employee." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:121 +msgid "Select the Leave Type like Sick leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:131 +msgid "Select the date after which this Leave Allocation will expire." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.js:126 +msgid "Select the date from which this Leave Allocation will be valid." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:262 +msgid "Select the end date for your Leave Application." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:257 +msgid "Select the start date for your Leave Application." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:252 +msgid "Select type of leave the employee wants to apply for, like Sick Leave, Privilege Leave, Casual Leave, etc." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:272 +msgid "Select your Leave Approver i.e. the person who approves or rejects your leaves." +msgstr "" + +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:32 +msgid "Self Appraisal" +msgstr "" + +#. Label of a Tab Break field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Self Appraisal" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:114 +msgid "Self Appraisal Pending: {0}" +msgstr "" + +#: hr/report/appraisal_overview/appraisal_overview.py:56 +#: hr/report/appraisal_overview/appraisal_overview.py:123 +msgid "Self Score" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Self-Study" +msgstr "自習" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Seminar" +msgstr "研討會" + +#. Label of a Select field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Send Emails At" +msgstr "發送電子郵件在" + +#: hr/doctype/exit_interview/exit_interview.js:7 +msgid "Send Exit Questionnaire" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview_list.js:15 +msgid "Send Exit Questionnaires" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Send Interview Feedback Reminder" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Send Interview Reminder" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Send Leave Notification" +msgstr "" + +#. Label of a Link field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Sender" +msgstr "" + +#. Label of a Link field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Sender" +msgstr "" + +#. Label of a Data field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Sender Email" +msgstr "" + +#. Label of a Data field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Sender Email" +msgstr "" + +#. Option for a Select field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Sent" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:21 +#: public/js/salary_slip_deductions_report_filters.js:27 +msgid "Sep" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Separation Activities" +msgstr "" + +#. Label of a Date field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Separation Begins On" +msgstr "" + +#. Label of a Select field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Series" +msgstr "" + +#. Label of a Select field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Series" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Service" +msgstr "" + +#. Label of a Section Break field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Service Details" +msgstr "服務細節" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:49 +msgid "Service Expense" +msgstr "服務費用" + +#: hr/report/vehicle_expenses/vehicle_expenses.py:169 +msgid "Service Expenses" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Service Item" +msgstr "服務項目" + +#. Label of a Data field in DocType 'Vehicle Service Item' +#: hr/doctype/vehicle_service_item/vehicle_service_item.json +msgctxt "Vehicle Service Item" +msgid "Service Item" +msgstr "服務項目" + +#. Description of a Table field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit." +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Set Attendance Details" +msgstr "" + +#. Label of a Section Break field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "Set Leave Details" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:54 +msgid "Set Relieving Date for Employee: {0}" +msgstr "" + +#. Description of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Set attendance details for the employees select above" +msgstr "" + +#. Description of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Set filters to fetch employees" +msgstr "" + +#. Description of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Set optional filters to fetch employees in the appraisee list" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:490 +msgid "Set the default account for the {0} {1}" +msgstr "" + +#. Label of a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Set the frequency for holiday reminders" +msgstr "" + +#. Description of a Section Break field in DocType 'Employee Promotion' +#: hr/doctype/employee_promotion/employee_promotion.json +msgctxt "Employee Promotion" +msgid "Set the properties that should be updated in the Employee master on promotion submission" +msgstr "" + +#. Label of a Card Break in the HR Workspace +#. Label of a Card Break in the Payroll Workspace +#: hr/workspace/hr/hr.json payroll/workspace/payroll/payroll.json +msgid "Settings" +msgstr "" + +#. Label of a Section Break field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Settings" +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:129 +msgid "Settings Missing" +msgstr "" + +#: hr/doctype/full_and_final_statement/full_and_final_statement.py:35 +msgid "Settle all Payables and Receivables before submission" +msgstr "" + +#. Option for a Select field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Settled" +msgstr "" + +#. Label of a Card Break in the HR Workspace +#. Label of a Card Break in the Leaves Workspace +#: hr/workspace/hr/hr.json hr/workspace/leaves/leaves.json +msgid "Setup" +msgstr "" + +#: hr/utils.py:656 +msgid "Shared with the user {0} with {1} access" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:141 +#: hr/report/shift_attendance/shift_attendance.py:36 +#: hr/report/shift_attendance/shift_attendance.py:205 +#: overrides/dashboard_overrides.py:28 +msgid "Shift" +msgstr "" + +#. Label of a Link field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Shift" +msgstr "" + +#. Label of a Link field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Shift" +msgstr "" + +#. Label of a Link field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Shift" +msgstr "" + +#. Label of a Link field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift" +msgstr "" + +#. Name of a Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift & Attendance" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift Actual End" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:117 +msgid "Shift Actual End Time" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift Actual Start" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:111 +msgid "Shift Actual Start Time" +msgstr "" + +#. Name of a DocType +#: hr/doctype/shift_assignment/shift_assignment.json +msgid "Shift Assignment" +msgstr "班次分配" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Shift Assignment" +msgid "Shift Assignment" +msgstr "班次分配" + +#: hr/doctype/shift_request/shift_request.py:47 +msgid "Shift Assignment: {0} created for Employee: {1}" +msgstr "" + +#. Name of a report +#. Label of a Link in the Shift & Attendance Workspace +#: hr/report/shift_attendance/shift_attendance.json +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shift Attendance" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift End" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:61 +msgid "Shift End Time" +msgstr "" + +#. Name of a DocType +#: hr/doctype/shift_request/shift_request.json +msgid "Shift Request" +msgstr "移位請求" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Shift Request" +msgstr "移位請求" + +#. Label of a Link in the Shift & Attendance Workspace +#. Label of a shortcut in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Shift Request" +msgid "Shift Request" +msgstr "移位請求" + +#. Label of a Section Break field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Shift Settings" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Shift Start" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:55 +msgid "Shift Start Time" +msgstr "" + +#. Name of a DocType +#: hr/doctype/shift_type/shift_type.json +#: hr/report/shift_attendance/shift_attendance.js:28 +msgid "Shift Type" +msgstr "班次類型" + +#. Label of a Link field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Shift Type" +msgstr "班次類型" + +#. Label of a Link field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Shift Type" +msgstr "班次類型" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Shift Type" +msgid "Shift Type" +msgstr "班次類型" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Shifts" +msgstr "" + +#: hr/doctype/job_offer/job_offer.js:48 +msgid "Show Employee" +msgstr "顯示員工" + +#. Label of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Show Leave Balances in Salary Slip" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Show Leaves Of All Department Members In Calendar" +msgstr "在日曆中顯示所有部門成員的葉子" + +#: payroll/doctype/salary_structure/salary_structure.js:207 +msgid "Show Salary Slip" +msgstr "顯示工資單" + +#. Label of an action in the Onboarding Step 'Create Employee' +#. Label of an action in the Onboarding Step 'Create Holiday List' +#. Label of an action in the Onboarding Step 'Create Leave Allocation' +#. Label of an action in the Onboarding Step 'Create Leave Application' +#. Label of an action in the Onboarding Step 'Create Leave Type' +#: hr/onboarding_step/create_employee/create_employee.json +#: hr/onboarding_step/create_holiday_list/create_holiday_list.json +#: hr/onboarding_step/create_leave_allocation/create_leave_allocation.json +#: hr/onboarding_step/create_leave_application/create_leave_application.json +#: hr/onboarding_step/create_leave_type/create_leave_type.json +msgid "Show Tour" +msgstr "" + +#: www/jobs/index.html:103 +msgid "Showing" +msgstr "" + +#: setup.py:356 setup.py:357 +msgid "Sick Leave" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interview/interview.js:186 hr/doctype/skill/skill.json +msgid "Skill" +msgstr "" + +#. Label of a Link field in DocType 'Designation Skill' +#: hr/doctype/designation_skill/designation_skill.json +msgctxt "Designation Skill" +msgid "Skill" +msgstr "" + +#. Label of a Link field in DocType 'Employee Skill' +#: hr/doctype/employee_skill/employee_skill.json +msgctxt "Employee Skill" +msgid "Skill" +msgstr "" + +#. Label of a Link field in DocType 'Expected Skill Set' +#: hr/doctype/expected_skill_set/expected_skill_set.json +msgctxt "Expected Skill Set" +msgid "Skill" +msgstr "" + +#. Label of a Link field in DocType 'Skill Assessment' +#: hr/doctype/skill_assessment/skill_assessment.json +msgctxt "Skill Assessment" +msgid "Skill" +msgstr "" + +#. Name of a DocType +#: hr/doctype/interview/interview.js:134 +#: hr/doctype/skill_assessment/skill_assessment.json +msgid "Skill Assessment" +msgstr "" + +#. Label of a Section Break field in DocType 'Interview Feedback' +#: hr/doctype/interview_feedback/interview_feedback.json +msgctxt "Interview Feedback" +msgid "Skill Assessment" +msgstr "" + +#. Label of a Data field in DocType 'Skill' +#: hr/doctype/skill/skill.json +msgctxt "Skill" +msgid "Skill Name" +msgstr "" + +#. Label of a Section Break field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Skills" +msgstr "" + +#. Label of a Check field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Skip Auto Attendance" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:313 +msgid "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" +msgstr "" + +#. Label of a Data field in DocType 'Employee Other Income' +#: payroll/doctype/employee_other_income/employee_other_income.json +msgctxt "Employee Other Income" +msgid "Source" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Source" +msgstr "" + +#. Label of a Link field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Source Name" +msgstr "" + +#. Label of a Data field in DocType 'Job Applicant Source' +#: hr/doctype/job_applicant_source/job_applicant_source.json +msgctxt "Job Applicant Source" +msgid "Source Name" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Source and Rating" +msgstr "" + +#. Label of a Currency field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Sponsored Amount" +msgstr "贊助金額" + +#. Label of a Table field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Staffing Details" +msgstr "" + +#. Name of a DocType +#: hr/doctype/staffing_plan/staffing_plan.json +#: hr/report/recruitment_analytics/recruitment_analytics.py:25 +msgid "Staffing Plan" +msgstr "人員配備計劃" + +#. Label of a Link field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Staffing Plan" +msgstr "人員配備計劃" + +#. Label of a Link in the Recruitment Workspace +#: hr/workspace/recruitment/recruitment.json +msgctxt "Staffing Plan" +msgid "Staffing Plan" +msgstr "人員配備計劃" + +#. Name of a DocType +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgid "Staffing Plan Detail" +msgstr "人員配置計劃詳情" + +#: hr/doctype/staffing_plan/staffing_plan.py:70 +msgid "Staffing Plan {0} already exist for designation {1}" +msgstr "已存在人員配置計劃{0}以用於指定{1}" + +#. Label of a Currency field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Standard Tax Exemption Amount" +msgstr "" + +#. Label of a Float field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Standard Working Hours" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:43 +#: hr/doctype/attendance/attendance_list.js:46 +msgid "Start" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:86 +#: hr/report/project_profitability/project_profitability.js:17 +#: hr/report/project_profitability/project_profitability.py:203 +#: payroll/report/salary_register/salary_register.py:163 +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Period' +#: payroll/doctype/payroll_period/payroll_period.json +msgctxt "Payroll Period" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Payroll Period Date' +#: payroll/doctype/payroll_period_date/payroll_period_date.json +msgctxt "Payroll Period Date" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Start Date" +msgstr "" + +#. Label of a Date field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Start Date" +msgstr "" + +#: hr/notification/training_scheduled/training_scheduled.html:32 +#: templates/emails/training_event.html:7 +msgid "Start Time" +msgstr "" + +#. Label of a Time field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Start Time" +msgstr "" + +#. Label of a Datetime field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Start Time" +msgstr "" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:263 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1416 +msgid "Start and end dates not in a valid Payroll Period, cannot calculate {0}." +msgstr "開始日期和結束日期不在有效的工資核算期間內,無法計算{0}。" + +#: payroll/doctype/payroll_entry/payroll_entry.py:186 +msgid "Start date: {0}" +msgstr "" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Statistical Component" +msgstr "統計組成部分" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Statistical Component" +msgstr "統計組成部分" + +#: hr/doctype/attendance/attendance_list.js:71 +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.js:150 +#: hr/doctype/goal/goal.js:57 hr/doctype/goal/goal.js:64 +#: hr/doctype/goal/goal.js:71 hr/doctype/goal/goal.js:78 +#: hr/report/employee_advance_summary/employee_advance_summary.js:35 +#: hr/report/employee_advance_summary/employee_advance_summary.py:74 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py:23 +#: hr/report/shift_attendance/shift_attendance.py:49 +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Appraisal Cycle' +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +msgctxt "Appraisal Cycle" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Daily Work Summary' +#: hr/doctype/daily_work_summary/daily_work_summary.json +msgctxt "Daily Work Summary" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Onboarding' +#: hr/doctype/employee_onboarding/employee_onboarding.json +msgctxt "Employee Onboarding" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Employee Separation' +#: hr/doctype/employee_separation/employee_separation.json +msgctxt "Employee Separation" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Exit Interview' +#: hr/doctype/exit_interview/exit_interview.json +msgctxt "Exit Interview" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Full and Final Asset' +#: hr/doctype/full_and_final_asset/full_and_final_asset.json +msgctxt "Full and Final Asset" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Shift Assignment' +#: hr/doctype/shift_assignment/shift_assignment.json +msgctxt "Shift Assignment" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Training Event Employee' +#: hr/doctype/training_event_employee/training_event_employee.json +msgctxt "Training Event Employee" +msgid "Status" +msgstr "" + +#. Label of a Select field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Status" +msgstr "" + +#: setup.py:399 +msgid "Stock Options" +msgstr "庫存期權" + +#. Description of a Section Break field in DocType 'Leave Block List' +#: hr/doctype/leave_block_list/leave_block_list.json +msgctxt "Leave Block List" +msgid "Stop users from making Leave Applications on following days." +msgstr "停止用戶在下面日期提出休假申請。" + +#. Option for a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Strictly based on Log Type in Employee Checkin" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:254 +msgid "Structures have been assigned successfully" +msgstr "" + +#. Label of a Data field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Subject" +msgstr "" + +#. Label of a Data field in DocType 'Employee Grievance' +#: hr/doctype/employee_grievance/employee_grievance.json +msgctxt "Employee Grievance" +msgid "Subject" +msgstr "" + +#. Label of a Date field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Submission Date" +msgstr "" + +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.py:337 +msgid "Submission Failed" +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.js:59 +#: public/js/performance/performance_feedback.js:97 +msgid "Submit" +msgstr "" + +#: hr/doctype/interview/interview.js:50 hr/doctype/interview/interview.js:129 +msgid "Submit Feedback" +msgstr "" + +#: hr/doctype/exit_interview/exit_questionnaire_notification_template.html:15 +msgid "Submit Now" +msgstr "" + +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js:43 +msgid "Submit Proof" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:142 +msgid "Submit Salary Slip" +msgstr "提交工資單" + +#: hr/doctype/employee_onboarding/employee_onboarding.py:39 +msgid "Submit this to create the Employee record" +msgstr "提交這個來創建員工記錄" + +#. Option for a Select field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Submitted" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Submitted" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Submitted" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Submitted" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Submitted" +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.js:383 +msgid "Submitting Salary Slips and creating Journal Entry..." +msgstr "" + +#: payroll/doctype/payroll_entry/payroll_entry.py:1460 +msgid "Submitting Salary Slips..." +msgstr "提交工資單......" + +#: hr/doctype/staffing_plan/staffing_plan.py:162 +msgid "Subsidiary companies have already planned for {1} vacancies at a budget of {2}. Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" +msgstr "" + +#: hr/doctype/employee_referral/employee_referral.py:54 +#: hr/doctype/leave_control_panel/leave_control_panel.py:130 +msgid "Success" +msgstr "" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:133 +msgid "Successfully created {0} records for:" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Sum of all previous slabs" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:64 +msgid "Summarized View" +msgstr "" + +#: hr/doctype/leave_block_list/leave_block_list.js:67 +msgid "Sunday" +msgstr "" + +#. Label of a Link field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Supplier" +msgstr "" + +#. Label of a Link field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Supplier" +msgstr "" + +#. Label of a Link field in DocType 'Vehicle Log' +#: hr/doctype/vehicle_log/vehicle_log.json +msgctxt "Vehicle Log" +msgid "Supplier" +msgstr "" + +#: hr/report/employee_leave_balance/employee_leave_balance.js:48 +#: hr/report/employee_leave_balance_summary/employee_leave_balance_summary.js:42 +msgid "Suspended" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1170 +msgid "Syntax error" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2115 +msgid "Syntax error in condition: {0} in Income Tax Slab" +msgstr "" + +#. Name of a role +#: hr/doctype/appointment_letter/appointment_letter.json +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +#: hr/doctype/appraisal/appraisal.json +#: hr/doctype/appraisal_cycle/appraisal_cycle.json +#: hr/doctype/attendance/attendance.json +#: hr/doctype/attendance_request/attendance_request.json +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +#: hr/doctype/employee_checkin/employee_checkin.json +#: hr/doctype/employee_feedback_criteria/employee_feedback_criteria.json +#: hr/doctype/employee_grade/employee_grade.json +#: hr/doctype/employee_grievance/employee_grievance.json +#: hr/doctype/employee_onboarding/employee_onboarding.json +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +#: hr/doctype/employee_referral/employee_referral.json +#: hr/doctype/employee_separation/employee_separation.json +#: hr/doctype/employee_separation_template/employee_separation_template.json +#: hr/doctype/employee_skill_map/employee_skill_map.json +#: hr/doctype/exit_interview/exit_interview.json +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +#: hr/doctype/goal/goal.json hr/doctype/grievance_type/grievance_type.json +#: hr/doctype/hr_settings/hr_settings.json +#: hr/doctype/identification_document_type/identification_document_type.json +#: hr/doctype/interview/interview.json +#: hr/doctype/interview_type/interview_type.json +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +#: hr/doctype/job_requisition/job_requisition.json hr/doctype/kra/kra.json +#: hr/doctype/leave_encashment/leave_encashment.json +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +#: hr/doctype/leave_period/leave_period.json +#: hr/doctype/leave_policy/leave_policy.json +#: hr/doctype/leave_policy_assignment/leave_policy_assignment.json +#: hr/doctype/purpose_of_travel/purpose_of_travel.json +#: hr/doctype/pwa_notification/pwa_notification.json +#: hr/doctype/skill/skill.json hr/doctype/travel_request/travel_request.json +#: hr/doctype/vehicle_service_item/vehicle_service_item.json +#: payroll/doctype/additional_salary/additional_salary.json +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.json +#: payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +#: payroll/doctype/income_tax_slab/income_tax_slab.json +#: payroll/doctype/payroll_period/payroll_period.json +#: payroll/doctype/payroll_settings/payroll_settings.json +#: payroll/doctype/retention_bonus/retention_bonus.json +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgid "System Manager" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Take Exact Completed Years" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.js:34 +#: hr/doctype/employee_separation/employee_separation.js:22 +msgid "Task" +msgstr "" + +#. Label of a Link field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Task" +msgstr "" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Task" +msgstr "" + +#. Label of a Float field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "Task Weight" +msgstr "" + +#. Name of a Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax & Benefits" +msgstr "" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:41 +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Tax Deducted Till Date" +msgstr "" + +#. Label of a Link field in DocType 'Employee Tax Exemption Sub Category' +#: payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json +msgctxt "Employee Tax Exemption Sub Category" +msgid "Tax Exemption Category" +msgstr "免稅類別" + +#. Label of a Tab Break field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Tax Exemption Declaration" +msgstr "" + +#. Label of a Table field in DocType 'Employee Tax Exemption Proof Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Tax Exemption Proofs" +msgstr "免稅證明" + +#. Label of a Card Break in the Tax & Benefits Workspace +#: payroll/workspace/tax_&_benefits/tax_&_benefits.json +msgid "Tax Setup" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Tax on additional salary" +msgstr "額外工資稅" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Tax on flexible benefit" +msgstr "對靈活福利徵稅" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:40 +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Taxable Earnings Till Date" +msgstr "" + +#. Name of a DocType +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgid "Taxable Salary Slab" +msgstr "應納稅薪金平台" + +#. Label of a Section Break field in DocType 'Income Tax Slab' +#. Label of a Table field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Taxable Salary Slabs" +msgstr "應稅薪金板塊" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Taxes & Charges" +msgstr "" + +#. Label of a Section Break field in DocType 'Income Tax Slab' +#: payroll/doctype/income_tax_slab/income_tax_slab.json +msgctxt "Income Tax Slab" +msgid "Taxes and Charges on Income Tax" +msgstr "" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Taxi" +msgstr "出租車" + +#. Label of a Link in the HR Workspace +#: hr/page/team_updates/team_updates.js:4 hr/workspace/hr/hr.json +msgid "Team Updates" +msgstr "團隊更新" + +#. Label of a Data field in DocType 'Appointment Letter Template' +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgctxt "Appointment Letter Template" +msgid "Template Name" +msgstr "" + +#. Label of a Table field in DocType 'Appointment Letter' +#: hr/doctype/appointment_letter/appointment_letter.json +msgctxt "Appointment Letter" +msgid "Terms" +msgstr "" + +#. Label of a Table field in DocType 'Appointment Letter Template' +#: hr/doctype/appointment_letter_template/appointment_letter_template.json +msgctxt "Appointment Letter Template" +msgid "Terms" +msgstr "" + +#. Label of a Text Editor field in DocType 'Job Offer' +#: hr/doctype/job_offer/job_offer.json +msgctxt "Job Offer" +msgid "Terms and Conditions" +msgstr "" + +#: templates/emails/training_event.html:20 +msgid "Thank you" +msgstr "" + +#. Success message of the Module Onboarding 'Human Resource' +#: hr/module_onboarding/human_resource/human_resource.json +msgid "The Human Resource Module is all set up!" +msgstr "" + +#. Success message of the Module Onboarding 'Payroll' +#: payroll/module_onboarding/payroll/payroll.json +msgid "The Payroll Module is all set up!" +msgstr "" + +#. Description of a Date field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. " +msgstr "" + +#. Description of a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "The day of the month when leaves should be allocated" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:368 +msgid "The day(s) on which you are applying for leave are holidays. You need not apply for leave." +msgstr "這一天(S)對你所申請休假的假期。你不需要申請許可。" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:65 +msgid "The days between {0} to {1} are not valid holidays." +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:50 +msgid "The fraction of Daily Salary per Leave should be between 0 and 1" +msgstr "" + +#. Description of a Float field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "The fraction of daily wages to be paid for half-day attendance" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:35 +#: hr/report/project_profitability/project_profitability.py:101 +msgid "The metrics for this report are calculated based on the Standard Working Hours. Please set {0} in {1}." +msgstr "" + +#. Description of a Check field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy." +msgstr "" + +#. Description of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "The time after the shift start time when check-in is considered as late (in minutes)." +msgstr "" + +#. Description of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "The time before the shift end time when check-out is considered as early (in minutes)." +msgstr "" + +#. Description of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "The time before the shift start time during which Employee Check-in is considered for attendance." +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Theory" +msgstr "理論" + +#: payroll/doctype/salary_slip/salary_slip.py:441 +msgid "There are more holidays than working days this month." +msgstr "還有比這個月工作日更多的假期。" + +#: hr/doctype/job_offer/job_offer.py:39 +msgid "There are no vacancies under staffing plan {0}" +msgstr "" + +#: payroll/doctype/additional_salary/additional_salary.py:36 +#: payroll/doctype/employee_incentive/employee_incentive.py:20 +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:218 +msgid "There is no Salary Structure assigned to {0}. First assign a Salary Stucture." +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:376 +msgid "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" +msgstr "" + +#. Description of a Check field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "These leaves are holidays permitted by the company however, availing it is optional for an Employee." +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:85 +msgid "This action will prevent making changes to the linked appraisal feedback/goals." +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:97 +msgid "This compensatory leave will be applicable from {0}." +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:35 +msgid "This employee already has a log with the same timestamp.{0}" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1178 +msgid "This error can be due to invalid formula or condition." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1171 +msgid "This error can be due to invalid syntax." +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1164 +msgid "This error can be due to missing or deleted field." +msgstr "" + +#: hr/doctype/leave_type/leave_type.js:16 +msgid "This field allows you to set the maximum number of consecutive leaves an Employee can apply for." +msgstr "" + +#: hr/doctype/leave_type/leave_type.js:11 +msgid "This field allows you to set the maximum number of leaves that can be allocated annually for this Leave Type while creating the Leave Policy" +msgstr "" + +#: overrides/dashboard_overrides.py:57 +msgid "This is based on the attendance of this Employee" +msgstr "這是基於該員工的考勤" + +#: payroll/doctype/payroll_entry/payroll_entry.js:376 +msgid "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?" +msgstr "這將提交工資單,並創建權責發生製日記賬分錄。你想繼續嗎?" + +#: hr/doctype/leave_block_list/leave_block_list.js:52 +msgid "Thursday" +msgstr "" + +#. Label of a Card Break in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgid "Time" +msgstr "" + +#. Label of a Datetime field in DocType 'Employee Checkin' +#: hr/doctype/employee_checkin/employee_checkin.json +msgctxt "Employee Checkin" +msgid "Time" +msgstr "" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js:28 +msgid "Time Interval" +msgstr "" + +#. Label of a Link field in DocType 'Salary Slip Timesheet' +#: payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgctxt "Salary Slip Timesheet" +msgid "Time Sheet" +msgstr "" + +#. Description of a Int field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Time after the end of shift during which check-out is considered for attendance." +msgstr "" + +#. Description of a Duration field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Time taken to fill the open positions" +msgstr "" + +#. Label of a Duration field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Time to Fill" +msgstr "" + +#. Label of a Section Break field in DocType 'Job Requisition' +#: hr/doctype/job_requisition/job_requisition.json +msgctxt "Job Requisition" +msgid "Timelines" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:157 +msgid "Timesheet" +msgstr "" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Timesheet" +msgid "Timesheet" +msgstr "" + +#. Label of a Section Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Timesheet Details" +msgstr "" + +#: hr/notification/training_scheduled/training_scheduled.html:29 +msgid "Timing" +msgstr "" + +#: hr/report/employee_advance_summary/employee_advance_summary.py:40 +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Appointment Letter content' +#: hr/doctype/appointment_letter_content/appointment_letter_content.json +msgctxt "Appointment Letter content" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Employee Onboarding Template' +#: hr/doctype/employee_onboarding_template/employee_onboarding_template.json +msgctxt "Employee Onboarding Template" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Employee Separation Template' +#: hr/doctype/employee_separation_template/employee_separation_template.json +msgctxt "Employee Separation Template" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Job Offer Term Template' +#: hr/doctype/job_offer_term_template/job_offer_term_template.json +msgctxt "Job Offer Term Template" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'KRA' +#: hr/doctype/kra/kra.json +msgctxt "KRA" +msgid "Title" +msgstr "" + +#. Label of a Data field in DocType 'Leave Policy' +#: hr/doctype/leave_policy/leave_policy.json +msgctxt "Leave Policy" +msgid "Title" +msgstr "" + +#: payroll/report/salary_register/salary_register.js:16 +msgid "To" +msgstr "" + +#. Label of a Currency field in DocType 'Taxable Salary Slab' +#: payroll/doctype/taxable_salary_slab/taxable_salary_slab.json +msgctxt "Taxable Salary Slab" +msgid "To Amount" +msgstr "金額" + +#: hr/dashboard_chart_source/hiring_vs_attrition_count/hiring_vs_attrition_count.js:22 +#: hr/report/employee_advance_summary/employee_advance_summary.js:23 +#: hr/report/employee_exits/employee_exits.js:15 +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.js:24 +#: hr/report/employee_leave_balance/employee_leave_balance.js:15 +#: hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.js:15 +#: hr/report/shift_attendance/shift_attendance.js:15 +#: hr/report/vehicle_expenses/vehicle_expenses.js:32 +#: payroll/report/bank_remittance/bank_remittance.js:22 +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Additional Salary' +#: payroll/doctype/additional_salary/additional_salary.json +msgctxt "Additional Salary" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Control Panel' +#: hr/doctype/leave_control_panel/leave_control_panel.json +msgctxt "Leave Control Panel" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Leave Period' +#: hr/doctype/leave_period/leave_period.json +msgctxt "Leave Period" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Shift Request' +#: hr/doctype/shift_request/shift_request.json +msgctxt "Shift Request" +msgid "To Date" +msgstr "" + +#. Label of a Date field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "To Date" +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:201 +msgid "To Date cannot be less than From Date" +msgstr "" + +#: hr/doctype/upload_attendance/upload_attendance.py:30 +msgid "To Date should be greater than From Date" +msgstr "" + +#. Label of a Time field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "To Time" +msgstr "" + +#. Label of a Link field in DocType 'PWA Notification' +#: hr/doctype/pwa_notification/pwa_notification.json +msgctxt "PWA Notification" +msgid "To User" +msgstr "" + +#: hr/doctype/shift_assignment/shift_assignment.py:59 +msgid "To allow this, enable {0} under {1}." +msgstr "" + +#: hr/doctype/leave_application/leave_application.js:267 +msgid "To apply for a Half Day check 'Half Day' and select the Half Day Date" +msgstr "" + +#: hr/doctype/leave_period/leave_period.py:20 +msgid "To date can not be equal or less than from date" +msgstr "迄今為止不能等於或少於日期" + +#: payroll/doctype/additional_salary/additional_salary.py:87 +msgid "To date can not be greater than employee's relieving date." +msgstr "" + +#: hr/utils.py:175 +msgid "To date can not be less than from date" +msgstr "迄今為止不能少於起始日期" + +#: hr/utils.py:181 +msgid "To date can not greater than employee's relieving date" +msgstr "迄今為止不能超過員工的免除日期" + +#: hr/doctype/leave_allocation/leave_allocation.py:178 +#: hr/doctype/leave_application/leave_application.py:180 +msgid "To date cannot be before from date" +msgstr "" + +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.py:14 +msgid "To date needs to be before from date" +msgstr "" + +#. Label of a Int field in DocType 'Gratuity Rule Slab' +#: payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json +msgctxt "Gratuity Rule Slab" +msgid "To(Year)" +msgstr "" + +#: payroll/doctype/gratuity_rule/gratuity_rule.js:37 +msgid "To(Year) year can not be less than From(year)" +msgstr "" + +#: controllers/employee_reminders.py:122 +msgid "Today is {0}'s birthday 🎉" +msgstr "" + +#: controllers/employee_reminders.py:258 +msgid "Today {0} at our Company! 🎉" +msgstr "" + +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.py:29 +#: payroll/report/provident_fund_deductions/provident_fund_deductions.py:40 +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:40 +msgid "Total" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Taxes and Charges' +#: hr/doctype/expense_taxes_and_charges/expense_taxes_and_charges.json +msgctxt "Expense Taxes and Charges" +msgid "Total" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:108 +msgid "Total Absent" +msgstr "共缺席" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Proof +#. Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Total Actual Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Advance Amount" +msgstr "總預付金額" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Total Allocated Leave(s)" +msgstr "" + +#. Label of a Currency field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Total Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Total Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Travel Request Costing' +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgctxt "Travel Request Costing" +msgid "Total Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Amount Reimbursed" +msgstr "報銷金額合計" + +#: payroll/doctype/gratuity/gratuity.py:94 +msgid "Total Amount can not be zero" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:232 +#: hr/report/project_profitability/project_profitability.py:199 +msgid "Total Billed Hours" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Claimed Amount" +msgstr "總索賠額" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Total Declared Amount" +msgstr "" + +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:151 +#: payroll/report/salary_register/salary_register.py:230 +msgid "Total Deduction" +msgstr "扣除總額" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Deduction" +msgstr "扣除總額" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Total Deduction" +msgstr "扣除總額" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Deduction (Company Currency)" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:133 +msgid "Total Early Exits" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Total Earning" +msgstr "總盈利" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Earnings" +msgstr "" + +#. Label of a Currency field in DocType 'Staffing Plan' +#: hr/doctype/staffing_plan/staffing_plan.json +msgctxt "Staffing Plan" +msgid "Total Estimated Budget" +msgstr "預計總預算" + +#. Label of a Currency field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Total Estimated Cost" +msgstr "預計總成本" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Declaration' +#: payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json +msgctxt "Employee Tax Exemption Declaration" +msgid "Total Exemption Amount" +msgstr "免稅總額" + +#. Label of a Currency field in DocType 'Employee Tax Exemption Proof +#. Submission' +#: payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json +msgctxt "Employee Tax Exemption Proof Submission" +msgid "Total Exemption Amount" +msgstr "免稅總額" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Total Goal Score" +msgstr "" + +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:144 +msgid "Total Gross Pay" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:110 +msgid "Total Holidays" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:68 +msgid "Total Hours (T)" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Income Tax" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:127 +msgid "Total Late Entries" +msgstr "" + +#. Label of a Float field in DocType 'Leave Application' +#: hr/doctype/leave_application/leave_application.json +msgctxt "Leave Application" +msgid "Total Leave Days" +msgstr "總休假天數" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:107 +msgid "Total Leaves" +msgstr "葉總" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Total Leaves Allocated" +msgstr "已安排的休假總計" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Total Leaves Encashed" +msgstr "總葉子被掩飾" + +#: payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py:158 +msgid "Total Net Pay" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:233 +msgid "Total Non-Billed Hours" +msgstr "" + +#. Label of a Currency field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Total Payable Amount" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip Loan' +#: payroll/doctype/salary_slip_loan/salary_slip_loan.json +msgctxt "Salary Slip Loan" +msgid "Total Payment" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:102 +msgid "Total Present" +msgstr "總現" + +#. Label of a Currency field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Total Receivable Amount" +msgstr "" + +#: hr/report/employee_exits/employee_exits.py:215 +msgid "Total Resignations" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Sanctioned Amount" +msgstr "總被制裁金額" + +#. Label of a Float field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "Total Score" +msgstr "總得分" + +#. Label of a Float field in DocType 'Appraisal' +#: hr/doctype/appraisal/appraisal.json +msgctxt "Appraisal" +msgid "Total Self Score" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Total Taxes and Charges" +msgstr "" + +#: hr/report/shift_attendance/shift_attendance.py:79 +msgid "Total Working Hours" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total Working Hours" +msgstr "" + +#: hr/doctype/expense_claim/expense_claim.py:363 +msgid "Total advance amount cannot be greater than total sanctioned amount" +msgstr "總預付金額不得超過全部認可金額" + +#: hr/doctype/leave_allocation/leave_allocation.py:71 +msgid "Total allocated leaves are more than maximum allocation allowed for {0} leave type for employee {1} in the period" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:160 +msgid "Total allocated leaves {0} cannot be less than already approved leaves {1} for the period" +msgstr "共分配葉{0}不能小於已經批准葉{1}期間" + +#: payroll/doctype/salary_structure/salary_structure.py:150 +msgid "Total flexible benefit component amount {0} should not be less than max benefits {1}" +msgstr "" + +#. Label of a Data field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total in words" +msgstr "總計大寫" + +#. Label of a Data field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total in words (Company Currency)" +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:248 +msgid "Total leaves allocated is mandatory for Leave Type {0}" +msgstr "為假期類型{0}分配的總分配數是強制性的" + +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:141 +msgid "Total percentage against cost centers should be 100" +msgstr "" + +#. Description of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#. Description of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date." +msgstr "" + +#. Description of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date." +msgstr "" + +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.py:52 +msgid "Total weightage for all criteria must add up to 100. Currently, it is {0}%" +msgstr "" + +#: hr/doctype/appraisal/appraisal.py:151 +#: hr/doctype/appraisal_template/appraisal_template.py:25 +msgid "Total weightage for all {0} must add up to 100. Currently, it is {1}%" +msgstr "" + +#. Label of a Int field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Total working Days Per Year" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:162 +msgid "Total working hours should not be greater than max working hours {0}" +msgstr "總的工作時間不應超過最高工時更大{0}" + +#. Label of a Section Break field in DocType 'Employee Benefit Application' +#: payroll/doctype/employee_benefit_application/employee_benefit_application.json +msgctxt "Employee Benefit Application" +msgid "Totals" +msgstr "" + +#. Label of a Section Break field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Totals" +msgstr "" + +#. Label of a Section Break field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Totals" +msgstr "" + +#. Label of a Section Break field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Totals" +msgstr "" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Train" +msgstr "培養" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Trainer Email" +msgstr "教練電子郵件" + +#. Label of a Data field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Trainer Email" +msgstr "教練電子郵件" + +#. Label of a Data field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Trainer Name" +msgstr "培訓師姓名" + +#. Label of a Data field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Trainer Name" +msgstr "培訓師姓名" + +#. Label of a Data field in DocType 'Training Program' +#: hr/doctype/training_program/training_program.json +msgctxt "Training Program" +msgid "Trainer Name" +msgstr "培訓師姓名" + +#. Label of a Card Break in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +#: overrides/dashboard_overrides.py:44 +msgid "Training" +msgstr "訓練" + +#. Label of a Link field in DocType 'Employee Training' +#: hr/doctype/employee_training/employee_training.json +msgctxt "Employee Training" +msgid "Training" +msgstr "訓練" + +#. Label of a Date field in DocType 'Employee Training' +#: hr/doctype/employee_training/employee_training.json +msgctxt "Employee Training" +msgid "Training Date" +msgstr "" + +#. Name of a DocType +#: hr/doctype/training_event/training_event.json +#: hr/doctype/training_feedback/training_feedback.py:14 +#: hr/doctype/training_result/training_result.py:16 +#: templates/emails/training_event.html:1 +msgid "Training Event" +msgstr "培訓活動" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Training Event" +msgid "Training Event" +msgstr "培訓活動" + +#. Label of a Link field in DocType 'Training Feedback' +#: hr/doctype/training_feedback/training_feedback.json +msgctxt "Training Feedback" +msgid "Training Event" +msgstr "培訓活動" + +#. Label of a Link field in DocType 'Training Result' +#: hr/doctype/training_result/training_result.json +msgctxt "Training Result" +msgid "Training Event" +msgstr "培訓活動" + +#. Name of a DocType +#: hr/doctype/training_event_employee/training_event_employee.json +msgid "Training Event Employee" +msgstr "培訓活動的員工" + +#: hr/notification/training_scheduled/training_scheduled.html:7 +msgid "Training Event:" +msgstr "" + +#: hr/doctype/training_program/training_program_dashboard.py:8 +msgid "Training Events" +msgstr "培訓活動" + +#. Name of a DocType +#: hr/doctype/training_event/training_event.js:16 +#: hr/doctype/training_feedback/training_feedback.json +msgid "Training Feedback" +msgstr "培訓反饋" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Training Feedback" +msgid "Training Feedback" +msgstr "培訓反饋" + +#. Name of a DocType +#: hr/doctype/training_program/training_program.json +msgid "Training Program" +msgstr "培訓計劃" + +#. Label of a Link field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Training Program" +msgstr "培訓計劃" + +#. Label of a Data field in DocType 'Training Program' +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/doctype/training_program/training_program.json +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Training Program" +msgid "Training Program" +msgstr "培訓計劃" + +#. Name of a DocType +#: hr/doctype/training_event/training_event.js:10 +#: hr/doctype/training_result/training_result.json +msgid "Training Result" +msgstr "訓練結果" + +#. Label of a Link in the Employee Lifecycle Workspace +#: hr/workspace/employee_lifecycle/employee_lifecycle.json +msgctxt "Training Result" +msgid "Training Result" +msgstr "訓練結果" + +#. Name of a DocType +#: hr/doctype/training_result_employee/training_result_employee.json +msgid "Training Result Employee" +msgstr "訓練結果員工" + +#. Label of a Section Break field in DocType 'Employee Skill Map' +#. Label of a Table field in DocType 'Employee Skill Map' +#: hr/doctype/employee_skill_map/employee_skill_map.json +msgctxt "Employee Skill Map" +msgid "Trainings" +msgstr "" + +#. Label of a Date field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Transaction Date" +msgstr "" + +#. Label of a Dynamic Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Transaction Name" +msgstr "" + +#. Label of a Link field in DocType 'Leave Ledger Entry' +#: hr/doctype/leave_ledger_entry/leave_ledger_entry.json +msgctxt "Leave Ledger Entry" +msgid "Transaction Type" +msgstr "" + +#: hr/doctype/leave_period/leave_period_dashboard.py:7 +msgid "Transactions" +msgstr "" + +#: hr/utils.py:679 +msgid "Transactions cannot be created for an Inactive Employee {0}." +msgstr "" + +#. Label of a Date field in DocType 'Employee Transfer' +#: hr/doctype/employee_transfer/employee_transfer.json +msgctxt "Employee Transfer" +msgid "Transfer Date" +msgstr "轉移日期" + +#. Label of a Card Break in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json setup.py:327 +msgid "Travel" +msgstr "旅遊" + +#. Label of a Check field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Travel Advance Required" +msgstr "需要旅行預付款" + +#. Label of a Data field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Travel From" +msgstr "旅行從" + +#. Label of a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Travel Funding" +msgstr "旅行資助" + +#. Name of a DocType +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgid "Travel Itinerary" +msgstr "旅遊行程" + +#. Label of a Section Break field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Travel Itinerary" +msgstr "旅遊行程" + +#. Name of a DocType +#: hr/doctype/travel_request/travel_request.json +msgid "Travel Request" +msgstr "旅行要求" + +#. Label of a Link in the Expense Claims Workspace +#. Label of a Link in the HR Workspace +#: hr/workspace/expense_claims/expense_claims.json hr/workspace/hr/hr.json +msgctxt "Travel Request" +msgid "Travel Request" +msgstr "旅行要求" + +#. Name of a DocType +#: hr/doctype/travel_request_costing/travel_request_costing.json +msgid "Travel Request Costing" +msgstr "旅行請求成本計算" + +#. Label of a Data field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Travel To" +msgstr "前往" + +#. Label of a Select field in DocType 'Travel Request' +#: hr/doctype/travel_request/travel_request.json +msgctxt "Travel Request" +msgid "Travel Type" +msgstr "旅行類型" + +#: hr/doctype/leave_block_list/leave_block_list.js:42 +msgid "Tuesday" +msgstr "" + +#: payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.js:10 +msgid "Type" +msgstr "" + +#. Label of a Select field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Type" +msgstr "" + +#. Label of a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Type" +msgstr "" + +#. Label of a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Type" +msgstr "" + +#. Label of a Data field in DocType 'Employee Tax Exemption Proof Submission +#. Detail' +#: payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json +msgctxt "Employee Tax Exemption Proof Submission Detail" +msgid "Type of Proof" +msgstr "證明類型" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:116 +msgid "Unable to find Salary Component {0}" +msgstr "" + +#: hr/doctype/goal/goal.js:54 +msgid "Unarchive" +msgstr "" + +#. Label of a Currency field in DocType 'Expense Claim Advance' +#: hr/doctype/expense_claim_advance/expense_claim_advance.json +msgctxt "Expense Claim Advance" +msgid "Unclaimed Amount" +msgstr "" + +#. Option for a Select field in DocType 'Interview' +#: hr/doctype/interview/interview.json +msgctxt "Interview" +msgid "Under Review" +msgstr "" + +#: hr/doctype/attendance/attendance.py:218 +msgid "Unlinked Attendance record from Employee Checkins: {}" +msgstr "" + +#: hr/doctype/attendance/attendance.py:221 +msgid "Unlinked logs" +msgstr "" + +#. Description of a Section Break field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Unmarked Attendance" +msgstr "無標記考勤" + +#: hr/doctype/attendance/attendance_list.js:84 +msgid "Unmarked Attendance for days" +msgstr "" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py:116 +msgid "Unmarked Days" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Unmarked days" +msgstr "" + +#. Option for a Select field in DocType 'Employee Advance' +#: hr/doctype/employee_advance/employee_advance.json +msgctxt "Employee Advance" +msgid "Unpaid" +msgstr "" + +#. Option for a Select field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Unpaid" +msgstr "" + +#. Option for a Select field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Unpaid" +msgstr "" + +#. Option for a Select field in DocType 'Full and Final Statement' +#: hr/doctype/full_and_final_statement/full_and_final_statement.json +msgctxt "Full and Final Statement" +msgid "Unpaid" +msgstr "" + +#. Option for a Select field in DocType 'Gratuity' +#: payroll/doctype/gratuity/gratuity.json +msgctxt "Gratuity" +msgid "Unpaid" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expense Claims Workspace +#: hr/report/unpaid_expense_claim/unpaid_expense_claim.json +#: hr/workspace/expense_claims/expense_claims.json +msgid "Unpaid Expense Claim" +msgstr "未付費用報銷" + +#. Option for a Select field in DocType 'Full and Final Outstanding Statement' +#: hr/doctype/full_and_final_outstanding_statement/full_and_final_outstanding_statement.json +msgctxt "Full and Final Outstanding Statement" +msgid "Unsettled" +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:158 +msgid "Unsubmitted Appraisals" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:256 +msgid "Untracked Hours" +msgstr "" + +#: hr/report/employee_hours_utilization_based_on_timesheet/employee_hours_utilization_based_on_timesheet.py:82 +msgid "Untracked Hours (U)" +msgstr "" + +#. Label of a Float field in DocType 'Leave Allocation' +#: hr/doctype/leave_allocation/leave_allocation.json +msgctxt "Leave Allocation" +msgid "Unused leaves" +msgstr "" + +#: controllers/employee_reminders.py:69 +msgid "Upcoming Holidays Reminder" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:256 +msgid "Update" +msgstr "" + +#: hr/doctype/interview/interview.py:73 +msgid "Update Job Applicant" +msgstr "" + +#: hr/doctype/goal/goal_tree.js:237 hr/doctype/goal/goal_tree.js:243 +msgid "Update Progress" +msgstr "" + +#: templates/emails/training_event.html:11 +msgid "Update Response" +msgstr "更新響應" + +#: hr/doctype/goal/goal_list.js:36 +msgid "Update Status" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:99 +msgid "Updated status from {0} to {1} for date {2} in the attendance record {3}" +msgstr "" + +#: hr/doctype/interview/interview.py:205 +msgid "Updated the Job Applicant status to {0}" +msgstr "" + +#: overrides/employee_master.py:77 +msgid "Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}" +msgstr "" + +#: overrides/employee_master.py:63 +msgid "Updated the status of linked Job Applicant {0} to {1}" +msgstr "" + +#. Name of a DocType +#: hr/doctype/upload_attendance/upload_attendance.json +msgid "Upload Attendance" +msgstr "上傳考勤" + +#. Label of a Link in the Shift & Attendance Workspace +#: hr/workspace/shift_&_attendance/shift_&_attendance.json +msgctxt "Upload Attendance" +msgid "Upload Attendance" +msgstr "上傳考勤" + +#. Label of a HTML field in DocType 'Upload Attendance' +#: hr/doctype/upload_attendance/upload_attendance.json +msgctxt "Upload Attendance" +msgid "Upload HTML" +msgstr "上傳HTML" + +#: public/frontend/assets/InsertVideo-2810c859.js:2 +msgid "Uploading ${h}%" +msgstr "" + +#. Label of a Currency field in DocType 'Job Applicant' +#: hr/doctype/job_applicant/job_applicant.json +msgctxt "Job Applicant" +msgid "Upper Range" +msgstr "" + +#. Label of a Currency field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Upper Range" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Leave' +#: payroll/doctype/salary_slip_leave/salary_slip_leave.json +msgctxt "Salary Slip Leave" +msgid "Used Leave(s)" +msgstr "" + +#: hr/report/daily_work_summary_replies/daily_work_summary_replies.py:20 +msgid "User" +msgstr "" + +#. Label of a Link field in DocType 'Daily Work Summary Group User' +#: hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgctxt "Daily Work Summary Group User" +msgid "User" +msgstr "" + +#. Label of a Link field in DocType 'Employee Boarding Activity' +#: hr/doctype/employee_boarding_activity/employee_boarding_activity.json +msgctxt "Employee Boarding Activity" +msgid "User" +msgstr "" + +#. Label of a Link field in DocType 'Employee Performance Feedback' +#: hr/doctype/employee_performance_feedback/employee_performance_feedback.json +msgctxt "Employee Performance Feedback" +msgid "User" +msgstr "" + +#. Label of a Data field in DocType 'Goal' +#: hr/doctype/goal/goal.json +msgctxt "Goal" +msgid "User" +msgstr "" + +#. Label of a Link field in DocType 'Interviewer' +#: hr/doctype/interviewer/interviewer.json +msgctxt "Interviewer" +msgid "User" +msgstr "" + +#. Label of a Table field in DocType 'Daily Work Summary Group' +#: hr/doctype/daily_work_summary_group/daily_work_summary_group.json +msgctxt "Daily Work Summary Group" +msgid "Users" +msgstr "" + +#: hr/report/project_profitability/project_profitability.py:190 +msgid "Utilization" +msgstr "" + +#. Label of a Int field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Vacancies" +msgstr "職位空缺" + +#. Label of a Int field in DocType 'Staffing Plan Detail' +#: hr/doctype/staffing_plan_detail/staffing_plan_detail.json +msgctxt "Staffing Plan Detail" +msgid "Vacancies" +msgstr "職位空缺" + +#: hr/doctype/staffing_plan/staffing_plan.js:82 +msgid "Vacancies cannot be lower than the current openings" +msgstr "" + +#: hr/doctype/job_opening/job_opening.py:92 +msgid "Vacancies fulfilled" +msgstr "" + +#. Label of a Check field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Validate Attendance" +msgstr "驗證出席" + +#: payroll/doctype/payroll_entry/payroll_entry.js:360 +msgid "Validating Employee Attendance..." +msgstr "" + +#. Label of a Small Text field in DocType 'Job Offer Term' +#: hr/doctype/job_offer_term/job_offer_term.json +msgctxt "Job Offer Term" +msgid "Value / Description" +msgstr "值/說明" + +#: hr/employee_property_update.js:166 +msgid "Value missing" +msgstr "價值缺失" + +#: payroll/doctype/salary_structure/salary_structure.js:144 +msgid "Variable" +msgstr "變量" + +#. Label of a Currency field in DocType 'Salary Structure Assignment' +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.json +msgctxt "Salary Structure Assignment" +msgid "Variable" +msgstr "變量" + +#. Label of a Check field in DocType 'Salary Component' +#: payroll/doctype/salary_component/salary_component.json +msgctxt "Salary Component" +msgid "Variable Based On Taxable Salary" +msgstr "基於應納稅工資的變量" + +#. Label of a Check field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Variable Based On Taxable Salary" +msgstr "基於應納稅工資的變量" + +#. Option for a Select field in DocType 'Travel Itinerary' +#: hr/doctype/travel_itinerary/travel_itinerary.json +msgctxt "Travel Itinerary" +msgid "Vegetarian" +msgstr "素" + +#: hr/report/vehicle_expenses/vehicle_expenses.js:40 +#: hr/report/vehicle_expenses/vehicle_expenses.py:27 +msgid "Vehicle" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Vehicle" +msgid "Vehicle" +msgstr "" + +#. Name of a report +#. Label of a Link in the Expense Claims Workspace +#: hr/doctype/vehicle_log/vehicle_log.py:51 +#: hr/report/vehicle_expenses/vehicle_expenses.json +#: hr/workspace/expense_claims/expense_claims.json +msgid "Vehicle Expenses" +msgstr "" + +#. Name of a DocType +#: hr/doctype/vehicle_log/vehicle_log.json +#: hr/report/vehicle_expenses/vehicle_expenses.py:37 +msgid "Vehicle Log" +msgstr "車輛登錄" + +#. Label of a Link field in DocType 'Expense Claim' +#: hr/doctype/expense_claim/expense_claim.json +msgctxt "Expense Claim" +msgid "Vehicle Log" +msgstr "車輛登錄" + +#. Label of a Link in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Vehicle Log" +msgid "Vehicle Log" +msgstr "車輛登錄" + +#. Name of a DocType +#: hr/doctype/vehicle_service/vehicle_service.json +msgid "Vehicle Service" +msgstr "汽車服務" + +#. Name of a DocType +#: hr/doctype/vehicle_service_item/vehicle_service_item.json +msgid "Vehicle Service Item" +msgstr "" + +#. Label of a Link in the Expense Claims Workspace +#: hr/workspace/expense_claims/expense_claims.json +msgctxt "Vehicle Service Item" +msgid "Vehicle Service Item" +msgstr "" + +#: hr/doctype/employee_onboarding/employee_onboarding.js:28 +#: hr/doctype/employee_onboarding/employee_onboarding.js:33 +#: hr/doctype/employee_onboarding/employee_onboarding.js:36 +#: hr/doctype/employee_separation/employee_separation.js:16 +#: hr/doctype/employee_separation/employee_separation.js:21 +#: hr/doctype/employee_separation/employee_separation.js:24 +#: hr/doctype/expense_claim/expense_claim.js:96 +#: hr/doctype/expense_claim/expense_claim.js:226 +#: hr/doctype/job_applicant/job_applicant.js:35 +msgid "View" +msgstr "" + +#: hr/doctype/appraisal/appraisal.js:48 +#: hr/doctype/appraisal_cycle/appraisal_cycle.js:21 +msgid "View Goals" +msgstr "" + +#: patches/v15_0/notify_about_loan_app_separation.py:16 +msgid "WARNING: Loan Management module has been separated from ERPNext." +msgstr "" + +#: setup.py:390 +msgid "Walk In" +msgstr "走在" + +#: hr/doctype/leave_application/leave_application.py:407 +#: payroll/doctype/salary_structure/salary_structure.js:312 +#: payroll/doctype/salary_structure/salary_structure.py:37 +#: payroll/doctype/salary_structure/salary_structure.py:119 +#: payroll/doctype/salary_structure_assignment/salary_structure_assignment.py:44 +msgid "Warning" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:395 +msgid "Warning: Insufficient leave balance for Leave Type {0} in this allocation." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:403 +msgid "Warning: Insufficient leave balance for Leave Type {0}." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:348 +msgid "Warning: Leave application contains following block dates" +msgstr "警告:離開包含以下日期區塊的應用程式" + +#: hr/doctype/shift_assignment/shift_assignment.py:47 +msgid "Warning: {0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: setup.py:389 +msgid "Website Listing" +msgstr "網站列表" + +#: hr/doctype/leave_block_list/leave_block_list.js:47 +msgid "Wednesday" +msgstr "" + +#. Option for a Select field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Weekly" +msgstr "" + +#. Option for a Select field in DocType 'Payroll Entry' +#: payroll/doctype/payroll_entry/payroll_entry.json +msgctxt "Payroll Entry" +msgid "Weekly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Weekly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Weekly" +msgstr "" + +#. Label of a Float field in DocType 'Appraisal Goal' +#: hr/doctype/appraisal_goal/appraisal_goal.json +msgctxt "Appraisal Goal" +msgid "Weightage (%)" +msgstr "" + +#. Label of a Percent field in DocType 'Appraisal KRA' +#: hr/doctype/appraisal_kra/appraisal_kra.json +msgctxt "Appraisal KRA" +msgid "Weightage (%)" +msgstr "" + +#. Label of a Percent field in DocType 'Appraisal Template Goal' +#: hr/doctype/appraisal_template_goal/appraisal_template_goal.json +msgctxt "Appraisal Template Goal" +msgid "Weightage (%)" +msgstr "" + +#. Label of a Percent field in DocType 'Employee Feedback Rating' +#: hr/doctype/employee_feedback_rating/employee_feedback_rating.json +msgctxt "Employee Feedback Rating" +msgid "Weightage (%)" +msgstr "" + +#: hr/doctype/leave_type/leave_type.py:35 +msgid "Whereas allocation for Compensatory Leaves is automatically created or updated on submission of Compensatory Leave Request." +msgstr "" + +#. Label of a Text Editor field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Why is this Candidate Qualified for this Position?" +msgstr "" + +#. Label of a Check field in DocType 'HR Settings' +#: hr/doctype/hr_settings/hr_settings.json +msgctxt "HR Settings" +msgid "Work Anniversaries " +msgstr "" + +#: controllers/employee_reminders.py:279 controllers/employee_reminders.py:286 +msgid "Work Anniversary Reminder" +msgstr "" + +#. Label of a Date field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Work End Date" +msgstr "工作結束日期" + +#. Label of a Select field in DocType 'Gratuity Rule' +#: payroll/doctype/gratuity_rule/gratuity_rule.json +msgctxt "Gratuity Rule" +msgid "Work Experience Calculation method" +msgstr "" + +#. Label of a Date field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Work From Date" +msgstr "從日期開始工作" + +#. Option for a Select field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Work From Home" +msgstr "" + +#. Option for a Select field in DocType 'Attendance Request' +#: hr/doctype/attendance_request/attendance_request.json +msgctxt "Attendance Request" +msgid "Work From Home" +msgstr "" + +#. Option for a Select field in DocType 'Employee Attendance Tool' +#: hr/doctype/employee_attendance_tool/employee_attendance_tool.json +msgctxt "Employee Attendance Tool" +msgid "Work From Home" +msgstr "" + +#. Label of a Text Editor field in DocType 'Employee Referral' +#: hr/doctype/employee_referral/employee_referral.json +msgctxt "Employee Referral" +msgid "Work References" +msgstr "" + +#: hr/doctype/daily_work_summary/daily_work_summary.py:100 +msgid "Work Summary for {0}" +msgstr "" + +#. Label of a Section Break field in DocType 'Compensatory Leave Request' +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.json +msgctxt "Compensatory Leave Request" +msgid "Worked On Holiday" +msgstr "在度假工作" + +#. Label of a Float field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Working Days" +msgstr "" + +#. Label of a Section Break field in DocType 'Payroll Settings' +#: payroll/doctype/payroll_settings/payroll_settings.json +msgctxt "Payroll Settings" +msgid "Working Days and Hours" +msgstr "" + +#: setup.py:398 +msgid "Working Hours" +msgstr "" + +#. Label of a Float field in DocType 'Attendance' +#: hr/doctype/attendance/attendance.json +msgctxt "Attendance" +msgid "Working Hours" +msgstr "" + +#. Label of a Float field in DocType 'Salary Slip Timesheet' +#: payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json +msgctxt "Salary Slip Timesheet" +msgid "Working Hours" +msgstr "" + +#. Label of a Select field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working Hours Calculation Based On" +msgstr "" + +#. Label of a Float field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working Hours Threshold for Absent" +msgstr "" + +#. Label of a Float field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working Hours Threshold for Half Day" +msgstr "" + +#. Description of a Float field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working hours below which Absent is marked. (Zero to disable)" +msgstr "" + +#. Description of a Float field in DocType 'Shift Type' +#: hr/doctype/shift_type/shift_type.json +msgctxt "Shift Type" +msgid "Working hours below which Half Day is marked. (Zero to disable)" +msgstr "" + +#. Option for a Select field in DocType 'Training Event' +#: hr/doctype/training_event/training_event.json +msgctxt "Training Event" +msgid "Workshop" +msgstr "作坊" + +#: hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js:30 +#: public/js/salary_slip_deductions_report_filters.js:36 +msgid "Year" +msgstr "" + +#. Option for a Select field in DocType 'Job Opening' +#: hr/doctype/job_opening/job_opening.json +msgctxt "Job Opening" +msgid "Year" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Detail' +#: payroll/doctype/salary_detail/salary_detail.json +msgctxt "Salary Detail" +msgid "Year To Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Year To Date" +msgstr "" + +#. Label of a Currency field in DocType 'Salary Slip' +#: payroll/doctype/salary_slip/salary_slip.json +msgctxt "Salary Slip" +msgid "Year To Date(Company Currency)" +msgstr "" + +#. Option for a Select field in DocType 'Leave Type' +#: hr/doctype/leave_type/leave_type.json +msgctxt "Leave Type" +msgid "Yearly" +msgstr "" + +#. Option for a Select field in DocType 'Vehicle Service' +#: hr/doctype/vehicle_service/vehicle_service.json +msgctxt "Vehicle Service" +msgid "Yearly" +msgstr "" + +#. Option for a Select field in DocType 'Salary Structure' +#: payroll/doctype/salary_structure/salary_structure.json +msgctxt "Salary Structure" +msgid "Yes" +msgstr "" + +#: hr/doctype/hr_settings/hr_settings.py:84 +msgid "Yes, Proceed" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:358 +msgid "You are not authorized to approve leaves on Block Dates" +msgstr "在限制的日期,您無權批准休假" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:59 +msgid "You are not present all day(s) between compensatory leave request days" +msgstr "您在補休請求日之間不是全天" + +#: payroll/doctype/employee_benefit_application/employee_benefit_application.py:100 +msgid "You can claim only an amount of {0}, the rest amount {1} should be in the application as pro-rata component" +msgstr "" + +#: payroll/doctype/gratuity_rule/gratuity_rule.py:22 +msgid "You can not define multiple slabs if you have a slab with no lower and upper limits." +msgstr "" + +#: hr/doctype/shift_request/shift_request.py:65 +msgid "You can not request for your Default Shift: {0}" +msgstr "" + +#: hr/doctype/staffing_plan/staffing_plan.py:93 +msgid "You can only plan for upto {0} vacancies and budget {1} for {2} as per staffing plan {3} for parent company {4}." +msgstr "" + +#: hr/doctype/leave_encashment/leave_encashment.py:37 +msgid "You can only submit Leave Encashment for a valid encashment amount" +msgstr "您只能提交離開封存以獲得有效的兌換金額" + +#: api/__init__.py:546 +msgid "You can only upload JPG, PNG, PDF, TXT or Microsoft documents." +msgstr "" + +#: overrides/employee_master.py:83 +msgid "You may add additional details, if any, and submit the offer." +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:53 +msgid "You were only present for Half Day on {}. Cannot apply for a full day compensatory leave" +msgstr "" + +#: hr/doctype/interview/interview.py:106 +msgid "Your Interview session is rescheduled from {0} {1} - {2} to {3} {4} - {5}" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:100 +msgid "active" +msgstr "" + +#: hr/doctype/attendance_request/attendance_request.py:93 +msgid "changed the status from {0} to {1} via Attendance Request" +msgstr "" + +#: public/frontend/assets/InsertVideo-2810c859.js:2 +#: public/frontend/assets/SalarySlipItem-22792733.js:1 +msgid "div" +msgstr "" + +#. Label of a Read Only field in DocType 'Daily Work Summary Group User' +#: hr/doctype/daily_work_summary_group_user/daily_work_summary_group_user.json +msgctxt "Daily Work Summary Group User" +msgid "email" +msgstr "" + +#: hr/doctype/department_approver/department_approver.py:90 +msgid "or for Department: {0}" +msgstr "" + +#: www/jobs/index.html:104 +msgid "result" +msgstr "" + +#: www/jobs/index.html:104 +msgid "results" +msgstr "" + +#: hr/doctype/leave_type/leave_type.js:26 +msgid "to know more" +msgstr "" + +#: public/frontend/assets/InsertVideo-2810c859.js:2 +msgid "video" +msgstr "" + +#: controllers/employee_reminders.py:120 controllers/employee_reminders.py:253 +#: controllers/employee_reminders.py:257 +msgid "{0} & {1}" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:2111 +msgid "{0}
    This error can be due to missing or deleted field." +msgstr "" + +#: hr/doctype/appraisal_cycle/appraisal_cycle.py:155 +msgid "{0} Appraisal(s) are not submitted yet" +msgstr "" + +#: hr/doctype/department_approver/department_approver.py:91 +msgid "{0} Missing" +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.py:31 +msgid "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." +msgstr "" + +#: payroll/doctype/salary_structure/salary_structure.js:311 +msgid "{0} Row #{1}: {2} needs to be enabled for the formula to be considered." +msgstr "" + +#: hr/doctype/leave_allocation/leave_allocation.py:201 +msgid "{0} already allocated for Employee {1} for period {2} to {3}" +msgstr "{0}已分配給員工{1}週期為{2}到{3}" + +#: hr/utils.py:251 +msgid "{0} already exists for employee {1} and period {2}" +msgstr "" + +#: hr/doctype/shift_assignment/shift_assignment.py:54 +msgid "{0} already has an active Shift Assignment {1} for some/all of these dates." +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:151 +msgid "{0} applicable after {1} working days" +msgstr "在{1}個工作日後適用{0}" + +#: overrides/company.py:122 +msgid "{0} currency must be same as company's default currency. Please select another account." +msgstr "" + +#: hr/doctype/exit_interview/exit_interview.py:140 +msgid "{0} due to missing email information for employee(s): {1}" +msgstr "" + +#: hr/report/employee_analytics/employee_analytics.py:14 +msgid "{0} is mandatory" +msgstr "" + +#: hr/doctype/compensatory_leave_request/compensatory_leave_request.py:69 +msgid "{0} is not a holiday." +msgstr "" + +#: hr/doctype/interview_feedback/interview_feedback.py:29 +msgid "{0} is not allowed to submit Interview Feedback for the Interview: {1}" +msgstr "" + +#: hr/doctype/leave_application/leave_application.py:566 +msgid "{0} is not in Optional Holiday List" +msgstr "{0}不在可選節日列表中" + +#: payroll/doctype/employee_benefit_claim/employee_benefit_claim.py:31 +msgid "{0} is not in a valid Payroll Period" +msgstr "{0}不在有效的工資核算期間" + +#: hr/doctype/leave_control_panel/leave_control_panel.py:31 +msgid "{0} is required" +msgstr "" + +#: hr/doctype/training_feedback/training_feedback.py:14 +#: hr/doctype/training_result/training_result.py:16 +msgid "{0} must be submitted" +msgstr "必須提交{0}" + +#: hr/doctype/goal/goal.py:194 +msgid "{0} of {1} Completed" +msgstr "" + +#: hr/doctype/interview_feedback/interview_feedback.py:39 +msgid "{0} submission before {1} is not allowed" +msgstr "" + +#: hr/doctype/staffing_plan/staffing_plan.py:129 +msgid "{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}." +msgstr "" + +#: hr/doctype/goal/goal_list.js:73 +msgid "{0} {1} {2}?" +msgstr "" + +#: payroll/doctype/salary_slip/salary_slip.py:1823 +msgid "{0}: Employee email not found, hence email not sent" +msgstr "{0}:未發現員工的電子郵件,因此,電子郵件未發" + +#: hr/doctype/leave_application/leave_application.py:69 +msgid "{0}: From {0} of type {1}" +msgstr "{0}:從{0}類型{1}" + +#: hr/doctype/exit_interview/exit_interview.py:136 +msgid "{0}: {1}" +msgstr "" + +#: public/frontend/assets/index-43eeacf0.js:123 +msgid "{|}~.]+@[-a-z0-9]+(.[-a-z0-9]+)*.[a-z]+)(?=$|s)/gmi,w=/<()(?:mailto:)?([-.w]+@[-a-z0-9]+(.[-a-z0-9]+)*.[a-z]+)>/gi,k=function(f){return function(g,m,y,x,_,S,E){y=y.replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback);var P=y,$=\"\",L=\"\",I=m||\"\",A=E||\"\";return/^www./i.test(y)&&(y=y.replace(/^www./i,\"http://www.\")),f.excludeTrailingPunctuationFromURLs&&S&&($=S),f.openLinksInNewWindow&&(L=' rel=\"noopener noreferrer\" target=\"¨E95Eblank\"'),I+'\"+P+\"\"+$+A}},C=function(f,g){return function(m,y,x){var _=\"mailto:\";return y=y||\"\",x=r.subParser(\"unescapeSpecialChars\")(x,f,g),f.encodeEmails?(_=r.helper.encodeEmailAddress(_+x),x=r.helper.encodeEmailAddress(x)):_=_+x,y+''+x+\"\"}};r.subParser(\"autoLinks\",function(f,g,m){return f=m.converter._dispatch(\"autoLinks.before\",f,g,m),f=f.replace(v,k(g)),f=f.replace(w,C(g,m)),f=m.converter._dispatch(\"autoLinks.after\",f,g,m),f}),r.subParser(\"simplifiedAutoLinks\",function(f,g,m){return g.simplifiedAutoLink&&(f=m.converter._dispatch(\"simplifiedAutoLinks.before\",f,g,m),g.excludeTrailingPunctuationFromURLs?f=f.replace(h,k(g)):f=f.replace(p,k(g)),f=f.replace(b,C(g,m)),f=m.converter._dispatch(\"simplifiedAutoLinks.after\",f,g,m)),f}),r.subParser(\"blockGamut\",function(f,g,m){return f=m.converter._dispatch(\"blockGamut.before\",f,g,m),f=r.subParser(\"blockQuotes\")(f,g,m),f=r.subParser(\"headers\")(f,g,m),f=r.subParser(\"horizontalRule\")(f,g,m),f=r.subParser(\"lists\")(f,g,m),f=r.subParser(\"codeBlocks\")(f,g,m),f=r.subParser(\"tables\")(f,g,m),f=r.subParser(\"hashHTMLBlocks\")(f,g,m),f=r.subParser(\"paragraphs\")(f,g,m),f=m.converter._dispatch(\"blockGamut.after\",f,g,m),f}),r.subParser(\"blockQuotes\",function(f,g,m){f=m.converter._dispatch(\"blockQuotes.before\",f,g,m),f=f+" +msgstr "" + +#: hr/doctype/employee_checkin/employee_checkin.py:171 +msgid "{} is an invalid Attendance Status." +msgstr "" + +#: hr/doctype/job_requisition/job_requisition.js:15 +msgid "{} {} open for this position." +msgstr "" + diff --git a/apps/erpnext/src/hrms/hrms/mixins/appraisal.py b/apps/erpnext/src/hrms/hrms/mixins/appraisal.py new file mode 100644 index 000000000..5219b29a4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/mixins/appraisal.py @@ -0,0 +1,21 @@ +import frappe +from frappe import _ +from frappe.utils import flt + + +class AppraisalMixin: + """Mixin class for common validations in Appraisal doctypes""" + + def validate_total_weightage(self, table_name: str, table_label: str) -> None: + if not self.get(table_name): + return + + total_weightage = sum(flt(d.per_weightage) for d in self.get(table_name)) + + if flt(total_weightage, 2) != 100.0: + frappe.throw( + _("Total weightage for all {0} must add up to 100. Currently, it is {1}%").format( + frappe.bold(_(table_label)), total_weightage + ), + title=_("Incorrect Weightage Allocation"), + ) diff --git a/apps/erpnext/src/hrms/hrms/mixins/pwa_notifications.py b/apps/erpnext/src/hrms/hrms/mixins/pwa_notifications.py new file mode 100644 index 000000000..f6e5dceed --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/mixins/pwa_notifications.py @@ -0,0 +1,73 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt +import frappe +from frappe import bold + + +class PWANotificationsMixin: + """Mixin class for managing PWA updates""" + + def notify_approval_status(self): + """Send Leave Application, Expense Claim & Shift Request Approval status notification - to employees""" + status_field = self._get_doc_status_field() + status = self.get(status_field) + + if self.has_value_changed(status_field) and status in ["Approved", "Rejected"]: + from_user = frappe.session.user + from_user_name = self._get_user_name(from_user) + to_user = self._get_employee_user() + + if from_user == to_user: + return + + notification = frappe.new_doc("PWA Notification") + notification.from_user = from_user + notification.to_user = to_user + + notification.message = f"{bold('Your')} {bold(self.doctype)} {self.name} has been {bold(status)} by {bold(from_user_name)}" + + notification.reference_document_type = self.doctype + notification.reference_document_name = self.name + notification.insert(ignore_permissions=True) + + def notify_approver(self): + """Send new Leave Application, Expense Claim & Shift Request request notification - to approvers""" + from_user = self._get_employee_user() + to_user = self._get_doc_approver() + + if not to_user or from_user == to_user: + return + + notification = frappe.new_doc("PWA Notification") + notification.message = ( + f"{bold(self.employee_name)} raised a new {bold(self.doctype)} for approval: {self.name}" + ) + notification.from_user = from_user + notification.to_user = to_user + + notification.reference_document_type = self.doctype + notification.reference_document_name = self.name + notification.insert(ignore_permissions=True) + + def _get_doc_status_field(self) -> str: + APPROVAL_STATUS_FIELD = { + "Leave Application": "status", + "Expense Claim": "approval_status", + "Shift Request": "status", + } + return APPROVAL_STATUS_FIELD[self.doctype] + + def _get_doc_approver(self) -> str: + APPROVER_FIELD = { + "Leave Application": "leave_approver", + "Expense Claim": "expense_approver", + "Shift Request": "approver", + } + approver_field = APPROVER_FIELD[self.doctype] + return self.get(approver_field) + + def _get_employee_user(self) -> str: + return frappe.db.get_value("Employee", self.employee, "user_id", cache=True) + + def _get_user_name(self, user) -> str: + return frappe.db.get_value("User", user, "full_name", cache=True) diff --git a/apps/erpnext/src/hrms/hrms/modules.txt b/apps/erpnext/src/hrms/hrms/modules.txt new file mode 100644 index 000000000..dd0bf645b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/modules.txt @@ -0,0 +1,2 @@ +HR +Payroll \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/overrides/company.py b/apps/erpnext/src/hrms/hrms/overrides/company.py new file mode 100644 index 000000000..2636d51f7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/overrides/company.py @@ -0,0 +1,186 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import json + +import frappe +from frappe import _ + +from erpnext.accounts.doctype.account.account import get_account_currency + + +def make_company_fixtures(doc, method=None): + if not frappe.flags.country_change: + return + + run_regional_setup(doc.country) + make_salary_components(doc.country) + + +def delete_company_fixtures(): + countries = frappe.get_all( + "Company", + distinct="True", + pluck="country", + ) + + for country in countries: + try: + module_name = f"hrms.regional.{frappe.scrub(country)}.setup.uninstall" + frappe.get_attr(module_name)() + except (ImportError, AttributeError): + # regional file or method does not exist + pass + except Exception as e: + frappe.log_error("Unable to delete country fixtures for Frappe HR") + msg = _("Failed to delete defaults for country {0}.").format(frappe.bold(country)) + msg += "

    " + _("{0}: {1}").format(frappe.bold(_("Error")), get_error_message(e)) + frappe.throw(msg, title=_("Country Fixture Deletion Failed")) + + +def run_regional_setup(country): + try: + module_name = f"hrms.regional.{frappe.scrub(country)}.setup.setup" + frappe.get_attr(module_name)() + except ImportError: + pass + except Exception as e: + frappe.log_error("Unable to setup country fixtures for Frappe HR") + msg = _("Failed to setup defaults for country {0}.").format(frappe.bold(country)) + msg += "

    " + _("{0}: {1}").format(frappe.bold(_("Error")), get_error_message(e)) + frappe.throw(msg, title=_("Country Setup failed")) + + +def get_error_message(error) -> str: + try: + message_log = frappe.message_log.pop() if frappe.message_log else str(error) + if isinstance(message_log, str): + error_message = json.loads(message_log).get("message") + else: + error_message = message_log.get("message") + except Exception: + error_message = message_log + + return error_message + + +def make_salary_components(country): + docs = [] + + file_name = "salary_components.json" + + # default components already added + if not frappe.db.exists("Salary Component", "Basic"): + file_path = frappe.get_app_path("hrms", "payroll", "data", file_name) + docs.extend(json.loads(read_data_file(file_path))) + + file_path = frappe.get_app_path("hrms", "regional", frappe.scrub(country), "data", file_name) + docs.extend(json.loads(read_data_file(file_path))) + + for d in docs: + try: + doc = frappe.get_doc(d) + doc.flags.ignore_permissions = True + doc.flags.ignore_mandatory = True + doc.insert(ignore_if_duplicate=True) + except frappe.NameError: + frappe.clear_messages() + except frappe.DuplicateEntryError: + frappe.clear_messages() + + +def read_data_file(file_path): + try: + with open(file_path) as f: + return f.read() + except OSError: + return "{}" + + +def set_default_hr_accounts(doc, method=None): + if frappe.local.flags.ignore_chart_of_accounts: + return + + if not doc.default_payroll_payable_account: + payroll_payable_account = frappe.db.get_value( + "Account", {"account_name": _("Payroll Payable"), "company": doc.name, "is_group": 0} + ) + + doc.db_set("default_payroll_payable_account", payroll_payable_account) + + if not doc.default_employee_advance_account: + employe_advance_account = frappe.db.get_value( + "Account", {"account_name": _("Employee Advances"), "company": doc.name, "is_group": 0} + ) + + doc.db_set("default_employee_advance_account", employe_advance_account) + + +def validate_default_accounts(doc, method=None): + if doc.default_payroll_payable_account: + for_company = frappe.db.get_value("Account", doc.default_payroll_payable_account, "company") + if for_company != doc.name: + frappe.throw( + _("Account {0} does not belong to company: {1}").format( + doc.default_payroll_payable_account, doc.name + ) + ) + + if get_account_currency(doc.default_payroll_payable_account) != doc.default_currency: + frappe.throw( + _( + "The currency of {0} should be same as the company's default currency. Please select another account." + ).format(frappe.bold(_("Default Payroll Payable Account"))) + ) + + +def handle_linked_docs(doc, method=None): + delete_docs_with_company_field(doc) + clear_company_field_for_single_doctypes(doc) + + +def delete_docs_with_company_field(doc, method=None): + """ + Deletes records from linked doctypes where the 'company' field matches the company's name + """ + company_data_to_be_ignored = frappe.get_hooks("company_data_to_be_ignored") or [] + for doctype in company_data_to_be_ignored: + records_to_delete = frappe.get_all(doctype, filters={"company": doc.name}, pluck="name") + if records_to_delete: + frappe.db.delete(doctype, {"name": ["in", records_to_delete]}) + + +def clear_company_field_for_single_doctypes(doc): + """ + Clears the 'company' value in Single doctypes where applicable + """ + single_docs = get_single_doctypes_with_company_field() + singles = frappe.qb.DocType("Singles") + ( + frappe.qb.update(singles) + .set(singles.value, "") + .where(singles.doctype.isin(single_docs)) + .where(singles.field == "company") + .where(singles.value == doc.name) + ).run() + + +def get_single_doctypes_with_company_field(): + DocType = frappe.qb.DocType("DocType") + DocField = frappe.qb.DocType("DocField") + + return ( + frappe.qb.from_(DocField) + .select(DocField.parent) + .where( + (DocField.fieldtype == "Link") + & (DocField.options == "Company") + & ( + DocField.parent.isin( + frappe.qb.from_(DocType) + .select(DocType.name) + .where((DocType.issingle == 1) & (DocType.module.isin(["HR", "Payroll"]))) + ) + ) + ) + ).run(pluck=True) diff --git a/apps/erpnext/src/hrms/hrms/overrides/dashboard_overrides.py b/apps/erpnext/src/hrms/hrms/overrides/dashboard_overrides.py new file mode 100644 index 000000000..c1449f944 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/overrides/dashboard_overrides.py @@ -0,0 +1,96 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +from frappe import _ + + +def get_dashboard_for_employee(data): + data["transactions"].extend( + [ + {"label": _("Attendance"), "items": ["Attendance", "Attendance Request", "Employee Checkin"]}, + { + "label": _("Leave"), + "items": ["Leave Application", "Leave Allocation", "Leave Policy Assignment"], + }, + { + "label": _("Lifecycle"), + "items": [ + "Employee Onboarding", + "Employee Transfer", + "Employee Promotion", + "Employee Grievance", + ], + }, + { + "label": _("Employee Exit"), + "items": [ + "Employee Separation", + "Exit Interview", + "Full and Final Statement", + "Salary Withholding", + ], + }, + {"label": _("Shift"), "items": ["Shift Request", "Shift Assignment"]}, + {"label": _("Expense"), "items": ["Expense Claim", "Travel Request", "Employee Advance"]}, + {"label": _("Benefit"), "items": ["Employee Benefit Application", "Employee Benefit Claim"]}, + { + "label": _("Payroll"), + "items": [ + "Salary Structure Assignment", + "Salary Slip", + "Additional Salary", + "Timesheet", + "Employee Incentive", + "Retention Bonus", + "Bank Account", + ], + }, + { + "label": _("Training"), + "items": ["Training Event", "Training Result", "Training Feedback", "Employee Skill Map"], + }, + {"label": _("Evaluation"), "items": ["Appraisal"]}, + ] + ) + + data["non_standard_fieldnames"].update({"Bank Account": "party", "Employee Grievance": "raised_by"}) + data.update( + { + "heatmap": True, + "heatmap_message": _("This is based on the attendance of this Employee"), + "fieldname": "employee", + "method": "hrms.overrides.employee_master.get_timeline_data", + } + ) + return data + + +def get_dashboard_for_holiday_list(data): + data["non_standard_fieldnames"].update({"Leave Period": "optional_holiday_list"}) + + data["transactions"].append({"items": ["Leave Period", "Shift Type"]}) + + return data + + +def get_dashboard_for_timesheet(data): + data["transactions"].append({"label": _("Payroll"), "items": ["Salary Slip"]}) + + return data + + +def get_dashboard_for_project(data): + data["transactions"].append( + {"label": _("Claims"), "items": ["Expense Claim"]}, + ) + + return data + + +def get_dashboard_for_bank_account(data): + for section in data["transactions"]: + if section.get("label") == "Transactions": + section["items"].append("Payroll Entry") + break + + return data diff --git a/apps/erpnext/src/hrms/hrms/overrides/employee_master.py b/apps/erpnext/src/hrms/hrms/overrides/employee_master.py new file mode 100644 index 000000000..5438e793f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/overrides/employee_master.py @@ -0,0 +1,155 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe +from frappe import _ +from frappe.model.naming import set_name_by_naming_series +from frappe.utils import add_years, cint, get_link_to_form, getdate + +from erpnext.setup.doctype.employee.employee import Employee + + +class EmployeeMaster(Employee): + def autoname(self): + naming_method = frappe.db.get_single_value("HR Settings", "emp_created_by") + if not naming_method: + frappe.throw(_("Please setup Employee Naming System in Human Resource > HR Settings")) + else: + if naming_method == "Naming Series": + set_name_by_naming_series(self) + elif naming_method == "Employee Number": + self.name = self.employee_number + elif naming_method == "Full Name": + self.set_employee_name() + self.name = self.employee_name + + self.employee = self.name + + +def validate_onboarding_process(doc, method=None): + """Validates Employee Creation for linked Employee Onboarding""" + if not doc.job_applicant: + return + + employee_onboarding = frappe.get_all( + "Employee Onboarding", + filters={ + "job_applicant": doc.job_applicant, + "docstatus": 1, + "boarding_status": ("!=", "Completed"), + }, + ) + if employee_onboarding: + onboarding = frappe.get_doc("Employee Onboarding", employee_onboarding[0].name) + onboarding.validate_employee_creation() + onboarding.db_set("employee", doc.name) + + +def publish_update(doc, method=None): + import hrms + + hrms.refetch_resource("hrms:employee", doc.user_id) + + +def update_job_applicant_and_offer(doc, method=None): + """Updates Job Applicant and Job Offer status as 'Accepted' and submits them""" + if not doc.job_applicant: + return + + applicant_status_before_change = frappe.db.get_value("Job Applicant", doc.job_applicant, "status") + if applicant_status_before_change != "Accepted": + frappe.db.set_value("Job Applicant", doc.job_applicant, "status", "Accepted") + frappe.msgprint( + _("Updated the status of linked Job Applicant {0} to {1}").format( + get_link_to_form("Job Applicant", doc.job_applicant), frappe.bold(_("Accepted")) + ) + ) + offer_status_before_change = frappe.db.get_value( + "Job Offer", {"job_applicant": doc.job_applicant, "docstatus": ["!=", 2]}, "status" + ) + if offer_status_before_change and offer_status_before_change != "Accepted": + job_offer = frappe.get_last_doc("Job Offer", filters={"job_applicant": doc.job_applicant}) + job_offer.status = "Accepted" + job_offer.flags.ignore_mandatory = True + job_offer.flags.ignore_permissions = True + job_offer.save() + + msg = _("Updated the status of Job Offer {0} for the linked Job Applicant {1} to {2}").format( + get_link_to_form("Job Offer", job_offer.name), + frappe.bold(doc.job_applicant), + frappe.bold(_("Accepted")), + ) + if job_offer.docstatus == 0: + msg += "
    " + _("You may add additional details, if any, and submit the offer.") + + frappe.msgprint(msg) + + +def update_approver_role(doc, method=None): + """Adds relevant approver role for the user linked to Employee""" + if doc.leave_approver: + user = frappe.get_doc("User", doc.leave_approver) + user.flags.ignore_permissions = True + user.add_roles("Leave Approver") + + if doc.expense_approver: + user = frappe.get_doc("User", doc.expense_approver) + user.flags.ignore_permissions = True + user.add_roles("Expense Approver") + + +def update_approver_user_roles(doc, method=None): + approver_roles = set() + if frappe.db.exists("Employee", {"leave_approver": doc.name}): + approver_roles.add("Leave Approver") + + if frappe.db.exists("Employee", {"expense_approver": doc.name}): + approver_roles.add("Expense Approver") + + if approver_roles: + doc.append_roles(*approver_roles) + + +def update_employee_transfer(doc, method=None): + """Unsets Employee ID in Employee Transfer if doc is deleted""" + if frappe.db.exists("Employee Transfer", {"new_employee_id": doc.name, "docstatus": 1}): + emp_transfer = frappe.get_doc("Employee Transfer", {"new_employee_id": doc.name, "docstatus": 1}) + emp_transfer.db_set("new_employee_id", "") + + +@frappe.whitelist() +def get_timeline_data(doctype, name): + """Return timeline for attendance""" + from frappe.desk.notifications import get_open_count + + out = {} + + open_count = get_open_count(doctype, name) + out["count"] = open_count["count"] + + timeline_data = dict( + frappe.db.sql( + """ + select unix_timestamp(attendance_date), count(*) + from `tabAttendance` where employee=%s + and attendance_date > date_sub(curdate(), interval 1 year) + and status in ('Present', 'Half Day') + group by attendance_date""", + name, + ) + ) + + out["timeline_data"] = timeline_data + return out + + +@frappe.whitelist() +def get_retirement_date(date_of_birth=None): + if date_of_birth: + try: + retirement_age = cint(frappe.db.get_single_value("HR Settings", "retirement_age") or 60) + dt = add_years(getdate(date_of_birth), retirement_age) + return dt.strftime("%Y-%m-%d") + except ValueError: + # invalid date + return diff --git a/apps/erpnext/src/hrms/hrms/overrides/employee_payment_entry.py b/apps/erpnext/src/hrms/hrms/overrides/employee_payment_entry.py new file mode 100644 index 000000000..12b383353 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/overrides/employee_payment_entry.py @@ -0,0 +1,320 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe +from frappe.utils import flt, nowdate + +import erpnext +from erpnext.accounts.doctype.payment_entry.payment_entry import ( + PaymentEntry, + get_bank_cash_account, + get_reference_details, +) +from erpnext.accounts.utils import get_account_currency +from erpnext.setup.utils import get_exchange_rate + +from hrms.hr.doctype.expense_claim.expense_claim import get_outstanding_amount_for_claim + + +class EmployeePaymentEntry(PaymentEntry): + def get_valid_reference_doctypes(self): + if self.party_type == "Customer": + return ("Sales Order", "Sales Invoice", "Journal Entry", "Dunning", "Payment Entry") + elif self.party_type == "Supplier": + return ("Purchase Order", "Purchase Invoice", "Journal Entry", "Payment Entry") + elif self.party_type == "Shareholder": + return ("Journal Entry",) + elif self.party_type == "Employee": + return ("Expense Claim", "Journal Entry", "Employee Advance", "Leave Encashment", "Gratuity") + + def set_missing_ref_details( + self, + force: bool = False, + update_ref_details_only_for: list | None = None, + reference_exchange_details: dict | None = None, + ) -> None: + for d in self.get("references"): + if d.allocated_amount: + if update_ref_details_only_for and ( + (d.reference_doctype, d.reference_name) not in update_ref_details_only_for + ): + continue + + ref_details = get_payment_reference_details( + d.reference_doctype, + d.reference_name, + self.party_account_currency, + self.party_type, + self.party, + ) + + # Only update exchange rate when the reference is Journal Entry + if ( + reference_exchange_details + and d.reference_doctype == reference_exchange_details.reference_doctype + and d.reference_name == reference_exchange_details.reference_name + ): + ref_details.update({"exchange_rate": reference_exchange_details.exchange_rate}) + + for field, value in ref_details.items(): + if d.exchange_gain_loss: + # for cases where gain/loss is booked into invoice + # exchange_gain_loss is calculated from invoice & populated + # and row.exchange_rate is already set to payment entry's exchange rate + # refer -> `update_reference_in_payment_entry()` in utils.py + continue + + if field == "exchange_rate" or not d.get(field) or force: + if self.get("_action") in ("submit", "cancel"): + d.db_set(field, value) + else: + d.set(field, value) + + +@frappe.whitelist() +def get_payment_entry_for_employee(dt, dn, party_amount=None, bank_account=None, bank_amount=None): + """Function to make Payment Entry for Employee Advance, Gratuity, Expense Claim, Leave Encashment""" + doc = frappe.get_doc(dt, dn) + + party_account = get_party_account(doc) + party_account_currency = get_account_currency(party_account) + payment_type = "Pay" + grand_total, outstanding_amount = get_grand_total_and_outstanding_amount( + doc, party_amount, party_account_currency + ) + + # bank or cash + bank = get_bank_cash_account(doc, bank_account) + + pe = frappe.new_doc("Payment Entry") + pe.payment_type = payment_type + pe.company = doc.company + pe.cost_center = doc.get("cost_center") + pe.posting_date = nowdate() + pe.mode_of_payment = doc.get("mode_of_payment") + pe.party_type = "Employee" + pe.party = doc.get("employee") + pe.contact_person = doc.get("contact_person") + pe.contact_email = doc.get("contact_email") + pe.letter_head = doc.get("letter_head") + pe.paid_from = bank.account + pe.paid_to = party_account + pe.paid_from_account_currency = bank.account_currency + pe.paid_to_account_currency = party_account_currency + + pe.append( + "references", + { + "reference_doctype": dt, + "reference_name": dn, + "bill_no": doc.get("bill_no"), + "due_date": doc.get("due_date"), + "total_amount": grand_total, + "outstanding_amount": outstanding_amount, + "allocated_amount": outstanding_amount, + }, + ) + + pe.setup_party_account_field() + pe.set_missing_values() + pe.set_missing_ref_details() + + # fetching current exchange rate for advance payment entry + current_exchange_rate = get_exchange_rate( + pe.paid_to_account_currency, pe.paid_from_account_currency, pe.posting_date + ) + paid_amount, received_amount = get_paid_amount_and_received_amount( + doc, + party_account_currency, + bank, + outstanding_amount, + payment_type, + bank_amount, + current_exchange_rate, + ) + pe.paid_amount = paid_amount + pe.received_amount = received_amount + + if party_account and bank: + if dt == "Employee Advance": + pe.target_exchange_rate = current_exchange_rate + else: + pe.set_exchange_rate() + pe.set_amounts() + + return pe + + +def get_party_account(doc): + party_account = None + + if doc.doctype == "Employee Advance": + party_account = doc.advance_account + elif doc.doctype in ("Expense Claim", "Gratuity", "Leave Encashment"): + party_account = doc.payable_account + + return party_account + + +def get_grand_total_and_outstanding_amount(doc, party_amount, party_account_currency): + grand_total = outstanding_amount = 0 + + if party_amount: + grand_total = outstanding_amount = party_amount + + elif doc.doctype == "Expense Claim": + grand_total = flt(doc.total_sanctioned_amount) + flt(doc.total_taxes_and_charges) + outstanding_amount = get_outstanding_amount_for_claim(doc.name) + + elif doc.doctype == "Employee Advance": + grand_total = flt(doc.advance_amount) + outstanding_amount = flt(doc.advance_amount) - flt(doc.paid_amount) + if party_account_currency != doc.currency: + grand_total = flt(doc.advance_amount) * flt(doc.exchange_rate) + outstanding_amount = (flt(doc.advance_amount) - flt(doc.paid_amount)) * flt(doc.exchange_rate) + + elif doc.doctype == "Gratuity": + grand_total = doc.amount + outstanding_amount = flt(doc.amount) - flt(doc.paid_amount) + + elif doc.doctype == "Leave Encashment": + grand_total = doc.encashment_amount + outstanding_amount = flt(doc.encashment_amount) - flt(doc.paid_amount) + + else: + if party_account_currency == doc.company_currency: + grand_total = flt(doc.get("base_rounded_total") or doc.base_grand_total) + else: + grand_total = flt(doc.get("rounded_total") or doc.grand_total) + outstanding_amount = grand_total - flt(doc.advance_paid) + + return grand_total, outstanding_amount + + +def get_paid_amount_and_received_amount( + doc, party_account_currency, bank, outstanding_amount, payment_type, bank_amount, exchange_rate +): + paid_amount = received_amount = 0 + + if party_account_currency == bank.account_currency: + paid_amount = received_amount = abs(outstanding_amount) + + elif payment_type == "Receive": + paid_amount = abs(outstanding_amount) + if bank_amount: + received_amount = bank_amount + else: + received_amount = paid_amount * doc.get("conversion_rate", 1) + if doc.doctype == "Employee Advance": + received_amount = paid_amount * doc.get("exchange_rate", 1) + + else: + received_amount = abs(outstanding_amount) + if bank_amount: + paid_amount = bank_amount + else: + # if party account currency and bank currency is different then populate paid amount as well + paid_amount = received_amount * doc.get("conversion_rate", 1) + if doc.doctype == "Employee Advance": + paid_amount = received_amount * exchange_rate + + return paid_amount, received_amount + + +@frappe.whitelist() +def get_payment_reference_details( + reference_doctype, reference_name, party_account_currency, party_type=None, party=None +): + if reference_doctype in ("Expense Claim", "Employee Advance", "Gratuity", "Leave Encashment"): + return get_reference_details_for_employee(reference_doctype, reference_name, party_account_currency) + else: + return get_reference_details( + reference_doctype, reference_name, party_account_currency, party_type, party + ) + + +@frappe.whitelist() +def get_reference_details_for_employee(reference_doctype, reference_name, party_account_currency): + """ + Returns payment reference details for employee related doctypes: + Employee Advance, Expense Claim, Gratuity, Leave Encashment + """ + total_amount = outstanding_amount = exchange_rate = None + + ref_doc = frappe.get_doc(reference_doctype, reference_name) + company_currency = ref_doc.get("company_currency") or erpnext.get_company_currency(ref_doc.company) + + total_amount, exchange_rate = get_total_amount_and_exchange_rate( + ref_doc, party_account_currency, company_currency + ) + + if reference_doctype == "Expense Claim": + outstanding_amount = get_outstanding_amount_for_claim(ref_doc) + elif reference_doctype == "Employee Advance": + outstanding_amount = flt(ref_doc.advance_amount) - flt(ref_doc.paid_amount) + if party_account_currency != ref_doc.currency: + outstanding_amount = flt(outstanding_amount) * flt(exchange_rate) + elif reference_doctype == "Gratuity": + outstanding_amount = ref_doc.amount - flt(ref_doc.paid_amount) + elif reference_doctype == "Leave Encashment": + outstanding_amount = ref_doc.encashment_amount - flt(ref_doc.paid_amount) + else: + outstanding_amount = flt(total_amount) - flt(ref_doc.advance_paid) + + return frappe._dict( + { + "due_date": ref_doc.get("due_date"), + "total_amount": flt(total_amount), + "outstanding_amount": flt(outstanding_amount), + "exchange_rate": flt(exchange_rate), + } + ) + + +def get_total_amount_and_exchange_rate(ref_doc, party_account_currency, company_currency): + total_amount = exchange_rate = None + + if ref_doc.doctype == "Expense Claim": + total_amount = flt(ref_doc.total_sanctioned_amount) + flt(ref_doc.total_taxes_and_charges) + elif ref_doc.doctype == "Employee Advance": + total_amount = ref_doc.advance_amount + exchange_rate = ref_doc.get("exchange_rate") + if party_account_currency != ref_doc.currency: + total_amount = flt(total_amount) * flt(exchange_rate) + if party_account_currency == company_currency and party_account_currency == ref_doc.currency: + exchange_rate = 1 + elif ref_doc.doctype == "Leave Encashment": + total_amount = ref_doc.encashment_amount + elif ref_doc.doctype == "Gratuity": + total_amount = ref_doc.amount + + if not total_amount: + if party_account_currency == company_currency: + total_amount = ref_doc.base_grand_total + exchange_rate = 1 + else: + total_amount = ref_doc.grand_total + + if not exchange_rate: + # Get the exchange rate from the original ref doc + # or get it based on the posting date of the ref doc. + exchange_rate = ref_doc.get("conversion_rate") or get_exchange_rate( + party_account_currency, company_currency, ref_doc.posting_date + ) + + return total_amount, exchange_rate + + +# update exchange rate in linked advance +@frappe.whitelist() +def set_exchange_rate_in_advance(doc, method=None): + if doc.references: + for reference_doc in doc.references: + if reference_doc.reference_doctype == "Employee Advance" and doc.target_exchange_rate: + frappe.db.set_value( + "Employee Advance", + reference_doc.reference_name, + "exchange_rate", + doc.target_exchange_rate, + update_modified=False, + ) diff --git a/apps/erpnext/src/hrms/hrms/overrides/employee_project.py b/apps/erpnext/src/hrms/hrms/overrides/employee_project.py new file mode 100644 index 000000000..f3934942f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/overrides/employee_project.py @@ -0,0 +1,56 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe +from frappe.query_builder.functions import Max, Min, Sum +from frappe.utils import flt + +from erpnext.projects.doctype.project.project import Project + + +class EmployeeProject(Project): + def calculate_gross_margin(self): + expense_amount = ( + flt(self.total_costing_amount) + # add expense claim amount + + flt(self.total_expense_claim) + + flt(self.total_purchase_cost) + + flt(self.get("total_consumed_material_cost", 0)) + ) + + self.gross_margin = flt(self.total_billed_amount) - expense_amount + if self.total_billed_amount: + self.per_gross_margin = (self.gross_margin / flt(self.total_billed_amount)) * 100 + + def update_costing(self): + ExpenseClaim = frappe.qb.DocType("Expense Claim") + self.total_expense_claim = ( + frappe.qb.from_(ExpenseClaim) + .select(Sum(ExpenseClaim.total_sanctioned_amount)) + .where((ExpenseClaim.docstatus == 1) & (ExpenseClaim.project == self.name)) + ).run()[0][0] + + TimesheetDetail = frappe.qb.DocType("Timesheet Detail") + from_time_sheet = ( + frappe.qb.from_(TimesheetDetail) + .select( + Sum(TimesheetDetail.costing_amount).as_("costing_amount"), + Sum(TimesheetDetail.billing_amount).as_("billing_amount"), + Min(TimesheetDetail.from_time).as_("start_date"), + Max(TimesheetDetail.to_time).as_("end_date"), + Sum(TimesheetDetail.hours).as_("time"), + ) + .where((TimesheetDetail.project == self.name) & (TimesheetDetail.docstatus == 1)) + ).run(as_dict=True)[0] + + self.actual_start_date = from_time_sheet.start_date + self.actual_end_date = from_time_sheet.end_date + + self.total_costing_amount = from_time_sheet.costing_amount + self.total_billable_amount = from_time_sheet.billing_amount + self.actual_time = from_time_sheet.time + + self.update_purchase_costing() + self.update_sales_amount() + self.update_billed_amount() + self.calculate_gross_margin() diff --git a/apps/erpnext/src/hrms/hrms/overrides/employee_timesheet.py b/apps/erpnext/src/hrms/hrms/overrides/employee_timesheet.py new file mode 100644 index 000000000..8941357fb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/overrides/employee_timesheet.py @@ -0,0 +1,23 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +from frappe.utils.data import flt + +from erpnext.projects.doctype.timesheet.timesheet import Timesheet + + +class EmployeeTimesheet(Timesheet): + def set_status(self): + self.status = {"0": "Draft", "1": "Submitted", "2": "Cancelled"}[str(self.docstatus or 0)] + + if flt(self.per_billed, self.precision("per_billed")) >= 100.0: + self.status = "Billed" + + if 0.0 < flt(self.per_billed, self.precision("per_billed")) < 100.0: + self.status = "Partially Billed" + + if self.salary_slip: + self.status = "Payslip" + + if self.sales_invoice and self.salary_slip: + self.status = "Completed" diff --git a/apps/erpnext/src/hrms/hrms/patches.txt b/apps/erpnext/src/hrms/hrms/patches.txt new file mode 100644 index 000000000..e211d818f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches.txt @@ -0,0 +1,40 @@ +[pre_model_sync] +hrms.patches.v15_0.check_version_compatibility_with_frappe #2023-06-27 + +[post_model_sync] +hrms.patches.post_install.set_payroll_entry_status +hrms.patches.v1_0.rearrange_employee_fields +hrms.patches.post_install.update_allocate_on_in_leave_type +hrms.patches.v14_0.create_custom_field_for_appraisal_template +hrms.patches.post_install.update_performance_module_changes #2023-04-17 +hrms.patches.v14_0.update_payroll_frequency_to_none_if_salary_slip_is_based_on_timesheet +hrms.patches.v14_0.update_ess_user_access #2023-08-14 +execute:frappe.db.set_default("date_format", frappe.db.get_single_value("System Settings", "date_format")) +hrms.patches.v14_0.create_vehicle_service_item +hrms.patches.v14_0.add_expense_claim_to_repost_settings +hrms.patches.v15_0.notify_about_loan_app_separation +hrms.patches.v15_0.rename_enable_late_entry_early_exit_grace_period +hrms.patches.v14_0.update_repay_from_salary_and_payroll_payable_account_fields +hrms.patches.v14_0.create_custom_field_in_loan +hrms.patches.v14_0.update_loan_repayment_repay_from_salary +hrms.patches.v15_0.migrate_loan_type_to_loan_product +hrms.patches.v15_0.rename_and_update_leave_encashment_fields +hrms.patches.v14_0.update_title_in_employee_onboarding_and_separation_templates +hrms.patches.v15_0.make_hr_settings_tab_in_company_master +hrms.patches.v15_0.enable_allow_checkin_setting +hrms.patches.v15_0.set_default_asset_action_in_fnf +hrms.patches.v15_0.add_loan_docperms_to_ess #2024-05-14 +hrms.patches.v15_0.migrate_shift_assignment_schedule_to_shift_schedule +hrms.patches.v15_0.update_payment_status_for_leave_encashment +hrms.patches.v15_0.create_accounting_dimensions_in_leave_encashment +hrms.patches.v15_0.set_half_day_status_to_present_in_exisiting_half_day_attendance +hrms.patches.v14_0.create_marginal_relief_field_for_india_localisation +hrms.patches.v15_0.create_marginal_relief_field_for_india_localisation +hrms.patches.v15_0.fix_timesheet_status +hrms.patches.v15_0.update_advance_payment_ledger_amount #2025-09-23 +hrms.patches.v15_0.call_set_total_advance_paid_on_advance_documents #2025-09-23 +hrms.patches.v15_0.rename_claim_date_to_payroll_date_in_employee_benefit_claim +hrms.patches.v15_0.add_leave_type_permission_for_ess +hrms.patches.v16_0.create_custom_field_for_employee_advance_in_employee_master +hrms.patches.v16_0.delete_old_workspaces #2026-01-09 +hrms.patches.v16_0.create_holiday_list_assignments diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/create_country_fixtures.py b/apps/erpnext/src/hrms/hrms/patches/post_install/create_country_fixtures.py new file mode 100644 index 000000000..9048d66f6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/create_country_fixtures.py @@ -0,0 +1,9 @@ +import frappe + +from hrms.overrides.company import make_salary_components, run_regional_setup + + +def execute(): + for country in frappe.get_all("Company", pluck="country", distinct=True): + run_regional_setup(country) + make_salary_components(country) diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/delete_employee_transfer_property_doctype.py b/apps/erpnext/src/hrms/hrms/patches/post_install/delete_employee_transfer_property_doctype.py new file mode 100644 index 000000000..b50e010f9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/delete_employee_transfer_property_doctype.py @@ -0,0 +1,5 @@ +import frappe + + +def execute(): + frappe.delete_doc("DocType", "Employee Transfer Property", ignore_missing=True) diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/move_doctype_reports_and_notification_from_hr_to_payroll.py b/apps/erpnext/src/hrms/hrms/patches/post_install/move_doctype_reports_and_notification_from_hr_to_payroll.py new file mode 100644 index 000000000..b3ab857c8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/move_doctype_reports_and_notification_from_hr_to_payroll.py @@ -0,0 +1,45 @@ +# Copyright (c) 2019, Frappe and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe + + +def execute(): + frappe.db.sql( + """UPDATE `tabPrint Format` + SET module = 'Payroll' + WHERE name IN ('Salary Slip Based On Timesheet', 'Salary Slip Standard')""" + ) + + doctypes_moved = [ + "Employee Benefit Application Detail", + "Employee Tax Exemption Declaration Category", + "Salary Component", + "Employee Tax Exemption Proof Submission Detail", + "Income Tax Slab Other Charges", + "Taxable Salary Slab", + "Payroll Period Date", + "Salary Slip Timesheet", + "Payroll Employee Detail", + "Salary Detail", + "Employee Tax Exemption Sub Category", + "Employee Tax Exemption Category", + "Employee Benefit Claim", + "Employee Benefit Application", + "Employee Other Income", + "Employee Tax Exemption Proof Submission", + "Employee Tax Exemption Declaration", + "Employee Incentive", + "Retention Bonus", + "Additional Salary", + "Income Tax Slab", + "Payroll Period", + "Salary Slip", + "Payroll Entry", + "Salary Structure Assignment", + "Salary Structure", + ] + + for doctype in doctypes_moved: + frappe.delete_doc_if_exists("DocType", {"name": doctype, "module": "HR"}) diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/move_payroll_setting_separately_from_hr_settings.py b/apps/erpnext/src/hrms/hrms/patches/post_install/move_payroll_setting_separately_from_hr_settings.py new file mode 100644 index 000000000..37a3c357b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/move_payroll_setting_separately_from_hr_settings.py @@ -0,0 +1,30 @@ +# Copyright (c) 2019, Frappe and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe + + +def execute(): + data = frappe.db.sql( + """SELECT * + FROM `tabSingles` + WHERE + doctype = "HR Settings" + AND + field in ( + "encrypt_salary_slips_in_emails", + "email_salary_slip_to_employee", + "daily_wages_fraction_for_half_day", + "disable_rounded_total", + "include_holidays_in_total_working_days", + "max_working_hours_against_timesheet", + "payroll_based_on", + "password_policy" + ) + """, + as_dict=1, + ) + + for d in data: + frappe.db.set_value("Payroll Settings", None, d.field, d.value) diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/move_tax_slabs_from_payroll_period_to_income_tax_slab.py b/apps/erpnext/src/hrms/hrms/patches/post_install/move_tax_slabs_from_payroll_period_to_income_tax_slab.py new file mode 100644 index 000000000..f662b5acc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/move_tax_slabs_from_payroll_period_to_income_tax_slab.py @@ -0,0 +1,140 @@ +# Copyright (c) 2019, Frappe and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe + + +def execute(): + if not (frappe.db.table_exists("Payroll Period") and frappe.db.table_exists("Taxable Salary Slab")): + return + + if frappe.db.a_row_exists("Income Tax Slab"): + return + + for doctype in ( + "income_tax_slab", + "salary_structure_assignment", + "employee_other_income", + "income_tax_slab_other_charges", + ): + frappe.reload_doc("Payroll", "doctype", doctype) + + standard_tax_exemption_amount_exists = frappe.db.has_column( + "Payroll Period", "standard_tax_exemption_amount" + ) + + select_fields = "name, start_date, end_date" + if standard_tax_exemption_amount_exists: + select_fields = "name, start_date, end_date, standard_tax_exemption_amount" + + for company in frappe.get_all("Company"): + payroll_periods = frappe.db.sql( + f""" + SELECT + {select_fields} + FROM + `tabPayroll Period` + WHERE company=%s + ORDER BY start_date DESC + """, + company.name, + as_dict=1, + ) + + for i, period in enumerate(payroll_periods): + income_tax_slab = frappe.new_doc("Income Tax Slab") + income_tax_slab.name = "Tax Slab:" + period.name + + if i == 0: + income_tax_slab.disabled = 0 + else: + income_tax_slab.disabled = 1 + + income_tax_slab.effective_from = period.start_date + income_tax_slab.company = company.name + income_tax_slab.allow_tax_exemption = 1 + if standard_tax_exemption_amount_exists: + income_tax_slab.standard_tax_exemption_amount = period.standard_tax_exemption_amount + + income_tax_slab.flags.ignore_mandatory = True + income_tax_slab.submit() + + frappe.db.sql( + """ UPDATE `tabTaxable Salary Slab` + SET parent = %s , parentfield = 'slabs' , parenttype = "Income Tax Slab" + WHERE parent = %s + """, + (income_tax_slab.name, period.name), + as_dict=1, + ) + + if i == 0: + frappe.db.sql( + """ + UPDATE + `tabSalary Structure Assignment` + set + income_tax_slab = %s + where + company = %s + and from_date >= %s + and docstatus < 2 + """, + (income_tax_slab.name, company.name, period.start_date), + ) + + # move other incomes to separate document + if not frappe.db.table_exists("Employee Tax Exemption Proof Submission"): + return + + if not frappe.db.has_column("Employee Tax Exemption Proof Submission", "income_from_other_sources"): + return + + migrated = [] + proofs = frappe.get_all( + "Employee Tax Exemption Proof Submission", + filters={"docstatus": 1}, + fields=["payroll_period", "employee", "company", "income_from_other_sources"], + ) + for proof in proofs: + if proof.income_from_other_sources: + employee_other_income = frappe.new_doc("Employee Other Income") + employee_other_income.employee = proof.employee + employee_other_income.payroll_period = proof.payroll_period + employee_other_income.company = proof.company + employee_other_income.amount = proof.income_from_other_sources + + try: + employee_other_income.submit() + migrated.append([proof.employee, proof.payroll_period]) + except Exception: + pass + + if not frappe.db.table_exists("Employee Tax Exemption Declaration"): + return + + if not frappe.db.has_column("Employee Tax Exemption Declaration", "income_from_other_sources"): + return + + declerations = frappe.get_all( + "Employee Tax Exemption Declaration", + filters={"docstatus": 1}, + fields=["payroll_period", "employee", "company", "income_from_other_sources"], + ) + + for declaration in declerations: + if ( + declaration.income_from_other_sources + and [declaration.employee, declaration.payroll_period] not in migrated + ): + employee_other_income = frappe.new_doc("Employee Other Income") + employee_other_income.employee = declaration.employee + employee_other_income.payroll_period = declaration.payroll_period + employee_other_income.company = declaration.company + employee_other_income.amount = declaration.income_from_other_sources + + try: + employee_other_income.submit() + except Exception: + pass diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/rename_stop_to_send_birthday_reminders.py b/apps/erpnext/src/hrms/hrms/patches/post_install/rename_stop_to_send_birthday_reminders.py new file mode 100644 index 000000000..678c3d806 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/rename_stop_to_send_birthday_reminders.py @@ -0,0 +1,19 @@ +import frappe +from frappe.model.utils.rename_field import rename_field + + +def execute(): + frappe.reload_doc("hr", "doctype", "hr_settings") + + try: + # Rename the field + rename_field("HR Settings", "stop_birthday_reminders", "send_birthday_reminders") + + # Reverse the value + old_value = frappe.db.get_single_value("HR Settings", "send_birthday_reminders") + + frappe.db.set_single_value("HR Settings", "send_birthday_reminders", 1 if old_value == 0 else 0) + + except Exception as e: + if e.args[0] != 1054: + raise diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/set_company_in_leave_ledger_entry.py b/apps/erpnext/src/hrms/hrms/patches/post_install/set_company_in_leave_ledger_entry.py new file mode 100644 index 000000000..22519946b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/set_company_in_leave_ledger_entry.py @@ -0,0 +1,20 @@ +import frappe + + +def execute(): + frappe.reload_doc("HR", "doctype", "Leave Allocation") + frappe.reload_doc("HR", "doctype", "Leave Ledger Entry") + frappe.db.sql( + """ + UPDATE `tabLeave Ledger Entry` as lle + SET company = (select company from `tabEmployee` where employee = lle.employee) + WHERE company IS NULL + """ + ) + frappe.db.sql( + """ + UPDATE `tabLeave Allocation` as la + SET company = (select company from `tabEmployee` where employee = la.employee) + WHERE company IS NULL + """ + ) diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/set_department_for_doctypes.py b/apps/erpnext/src/hrms/hrms/patches/post_install/set_department_for_doctypes.py new file mode 100644 index 000000000..2fad76550 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/set_department_for_doctypes.py @@ -0,0 +1,36 @@ +import frappe + +# Set department value based on employee value + + +def execute(): + doctypes_to_update = { + "hr": [ + "Appraisal", + "Leave Allocation", + "Expense Claim", + "Salary Slip", + "Attendance", + "Training Feedback", + "Training Result Employee", + "Leave Application", + "Employee Advance", + "Training Event Employee", + "Payroll Employee Detail", + ], + "education": ["Instructor"], + "projects": ["Activity Cost", "Timesheet"], + "setup": ["Sales Person"], + } + + for module, doctypes in doctypes_to_update.items(): + for doctype in doctypes: + if frappe.db.table_exists(doctype): + frappe.reload_doc(module, "doctype", frappe.scrub(doctype)) + frappe.db.sql( + f""" + update `tab{doctype}` dt + set department=(select department from `tabEmployee` where name=dt.employee) + where coalesce(`tab{doctype}`.`department`, '') = '' + """ + ) diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/set_payroll_cost_centers.py b/apps/erpnext/src/hrms/hrms/patches/post_install/set_payroll_cost_centers.py new file mode 100644 index 000000000..0951e39bc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/set_payroll_cost_centers.py @@ -0,0 +1,29 @@ +import frappe + + +def execute(): + frappe.reload_doc("payroll", "doctype", "employee_cost_center") + frappe.reload_doc("payroll", "doctype", "salary_structure_assignment") + + employees = frappe.get_all("Employee", fields=["department", "payroll_cost_center", "name"]) + + employee_cost_center = {} + for d in employees: + cost_center = d.payroll_cost_center + if not cost_center and d.department: + cost_center = frappe.get_cached_value("Department", d.department, "payroll_cost_center") + + if cost_center: + employee_cost_center.setdefault(d.name, cost_center) + + salary_structure_assignments = frappe.get_all( + "Salary Structure Assignment", filters={"docstatus": ["!=", 2]}, fields=["name", "employee"] + ) + + for d in salary_structure_assignments: + cost_center = employee_cost_center.get(d.employee) + if cost_center: + assignment = frappe.get_doc("Salary Structure Assignment", d.name) + if not assignment.get("payroll_cost_centers"): + assignment.append("payroll_cost_centers", {"cost_center": cost_center, "percentage": 100}) + assignment.save() diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/set_payroll_entry_status.py b/apps/erpnext/src/hrms/hrms/patches/post_install/set_payroll_entry_status.py new file mode 100644 index 000000000..6ed1e6906 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/set_payroll_entry_status.py @@ -0,0 +1,14 @@ +import frappe + + +def execute(): + PayrollEntry = frappe.qb.DocType("Payroll Entry") + + status = ( + frappe.qb.terms.Case() + .when(PayrollEntry.docstatus == 0, "Draft") + .when(PayrollEntry.docstatus == 1, "Submitted") + .else_("Cancelled") + ) + + (frappe.qb.update(PayrollEntry).set("status", status).where(PayrollEntry.status.isnull())).run() diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/set_training_event_attendance.py b/apps/erpnext/src/hrms/hrms/patches/post_install/set_training_event_attendance.py new file mode 100644 index 000000000..72827a72d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/set_training_event_attendance.py @@ -0,0 +1,25 @@ +import frappe + + +def execute(): + frappe.reload_doc("hr", "doctype", "training_event") + frappe.reload_doc("hr", "doctype", "training_event_employee") + + # no need to run the update query as there is no old data + if not frappe.db.exists("Training Event Employee", {"attendance": ("in", ("Mandatory", "Optional"))}): + return + + frappe.db.sql( + """ + UPDATE `tabTraining Event Employee` + SET is_mandatory = 1 + WHERE attendance = 'Mandatory' + """ + ) + frappe.db.sql( + """ + UPDATE `tabTraining Event Employee` + SET attendance = 'Present' + WHERE attendance in ('Mandatory', 'Optional') + """ + ) diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/update_allocate_on_in_leave_type.py b/apps/erpnext/src/hrms/hrms/patches/post_install/update_allocate_on_in_leave_type.py new file mode 100644 index 000000000..e11d517c4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/update_allocate_on_in_leave_type.py @@ -0,0 +1,19 @@ +import frappe + + +def execute(): + frappe.clear_cache(doctype="Leave Type") + + if frappe.db.has_column("Leave Type", "based_on_date_of_joining"): + LeaveType = frappe.qb.DocType("Leave Type") + frappe.qb.update(LeaveType).set(LeaveType.allocate_on_day, "Last Day").where( + (LeaveType.based_on_date_of_joining == 0) & (LeaveType.is_earned_leave == 1) + ).run() + + frappe.qb.update(LeaveType).set(LeaveType.allocate_on_day, "Date of Joining").where( + LeaveType.based_on_date_of_joining == 1 + ).run() + + frappe.db.sql_ddl("alter table `tabLeave Type` drop column `based_on_date_of_joining`") + # clear cache for doctype as it stores table columns in cache + frappe.clear_cache(doctype="Leave Type") diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/update_employee_advance_status.py b/apps/erpnext/src/hrms/hrms/patches/post_install/update_employee_advance_status.py new file mode 100644 index 000000000..fc9e05e83 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/update_employee_advance_status.py @@ -0,0 +1,29 @@ +import frappe + + +def execute(): + frappe.reload_doc("hr", "doctype", "employee_advance") + + advance = frappe.qb.DocType("Employee Advance") + ( + frappe.qb.update(advance) + .set(advance.status, "Returned") + .where( + (advance.docstatus == 1) + & ((advance.return_amount) & (advance.paid_amount == advance.return_amount)) + & (advance.status == "Paid") + ) + ).run() + + ( + frappe.qb.update(advance) + .set(advance.status, "Partly Claimed and Returned") + .where( + (advance.docstatus == 1) + & ( + (advance.claimed_amount & advance.return_amount) + & (advance.paid_amount == (advance.return_amount + advance.claimed_amount)) + ) + & (advance.status == "Paid") + ) + ).run() diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/update_expense_claim_status_for_paid_advances.py b/apps/erpnext/src/hrms/hrms/patches/post_install/update_expense_claim_status_for_paid_advances.py new file mode 100644 index 000000000..2bc17ae86 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/update_expense_claim_status_for_paid_advances.py @@ -0,0 +1,25 @@ +import frappe + + +def execute(): + """ + Update Expense Claim status to Paid if: + - the entire required amount is already covered via linked advances + - the claim is partially paid via advances and the rest is reimbursed + """ + + ExpenseClaim = frappe.qb.DocType("Expense Claim") + + ( + frappe.qb.update(ExpenseClaim) + .set(ExpenseClaim.status, "Paid") + .where( + ( + (ExpenseClaim.grand_total == 0) + | (ExpenseClaim.grand_total == ExpenseClaim.total_amount_reimbursed) + ) + & (ExpenseClaim.approval_status == "Approved") + & (ExpenseClaim.docstatus == 1) + & (ExpenseClaim.total_sanctioned_amount > 0) + ) + ).run() diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/update_performance_module_changes.py b/apps/erpnext/src/hrms/hrms/patches/post_install/update_performance_module_changes.py new file mode 100644 index 000000000..9b64d9823 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/update_performance_module_changes.py @@ -0,0 +1,80 @@ +import frappe +from frappe.model.utils.rename_field import rename_field +from frappe.utils import cstr + + +def execute(): + create_kras() + rename_fields() + update_kra_evaluation_method() + + +def create_kras(): + # A new Link field `key_result_area` was added in the Appraisal Template Goal table + # Old field's (`kra` (Small Text)) data now needs to be copied to the new field + # This patch will create KRA's for all existing Appraisal Template Goal entries + # keeping 140 characters as the KRA title and the whole KRA as the description + # and then set the new title (140 characters) in the `key_result_area` field + if not frappe.db.has_column("Appraisal Template Goal", "kra"): + return + + template_goals = frappe.get_all( + "Appraisal Template Goal", + filters={"parenttype": "Appraisal Template", "key_result_area": ("is", "not set")}, + fields=["name", "kra"], + as_list=True, + ) + + if len(template_goals) > 10000: + frappe.db.auto_commit_on_many_writes = 1 + + for name, kra in template_goals: + if not kra: + kra = "Key Result Area" + + kra_title = cstr(kra).replace("\n", " ").strip()[:140] + + if not frappe.db.exists("KRA", kra_title): + frappe.get_doc( + { + "doctype": "KRA", + "title": kra_title, + "description": kra, + "name": kra_title, + "owner": "Administrator", + "modified_by": "Administrator", + } + ).db_insert() + + # set 140 char kra in the `key_result_area` field + frappe.db.set_value( + "Appraisal Template Goal", name, "key_result_area", kra_title, update_modified=False + ) + + if frappe.db.auto_commit_on_many_writes: + frappe.db.auto_commit_on_many_writes = 0 + + +def rename_fields(): + try: + rename_field("Appraisal Template", "kra_title", "template_title") + rename_field("Appraisal", "kra_template", "appraisal_template") + + except Exception as e: + if e.args[0] != 1054: + raise + + +def update_kra_evaluation_method(): + """ + Update existing appraisals for backward compatibility + - Set rate_goals_manually = True in existing Appraisals + - Only new appraisals created after this patch can use the new method. + """ + + Appraisal = frappe.qb.DocType("Appraisal") + ( + frappe.qb.update(Appraisal) + .set(Appraisal.rate_goals_manually, 1) + .where(Appraisal.appraisal_cycle.isnull()) + ).run() diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/update_reason_for_resignation_in_employee.py b/apps/erpnext/src/hrms/hrms/patches/post_install/update_reason_for_resignation_in_employee.py new file mode 100644 index 000000000..6ee7090f1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/update_reason_for_resignation_in_employee.py @@ -0,0 +1,17 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors +# MIT License. See license.txt + + +import frappe + + +def execute(): + frappe.reload_doc("setup", "doctype", "employee") + + if frappe.db.has_column("Employee", "reason_for_resignation"): + frappe.db.sql( + """ UPDATE `tabEmployee` + SET reason_for_leaving = reason_for_resignation + WHERE status = 'Left' and reason_for_leaving is null and reason_for_resignation is not null + """ + ) diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/update_start_end_date_for_old_shift_assignment.py b/apps/erpnext/src/hrms/hrms/patches/post_install/update_start_end_date_for_old_shift_assignment.py new file mode 100644 index 000000000..6d26ac543 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/update_start_end_date_for_old_shift_assignment.py @@ -0,0 +1,15 @@ +# Copyright (c) 2019, Frappe and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe + + +def execute(): + frappe.reload_doc("hr", "doctype", "shift_assignment") + if frappe.db.has_column("Shift Assignment", "date"): + frappe.db.sql( + """update `tabShift Assignment` + set end_date=date, start_date=date + where date IS NOT NULL and start_date IS NULL and end_date IS NULL;""" + ) diff --git a/apps/erpnext/src/hrms/hrms/patches/post_install/updates_for_multi_currency_payroll.py b/apps/erpnext/src/hrms/hrms/patches/post_install/updates_for_multi_currency_payroll.py new file mode 100644 index 000000000..af802b653 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/post_install/updates_for_multi_currency_payroll.py @@ -0,0 +1,131 @@ +# Copyright (c) 2019, Frappe and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe +from frappe import _ +from frappe.model.utils.rename_field import rename_field + + +def execute(): + frappe.reload_doc("payroll", "doctype", "Salary Component Account") + if frappe.db.has_column("Salary Component Account", "default_account"): + rename_field("Salary Component Account", "default_account", "account") + + doctype_list = [ + {"module": "HR", "doctype": "Employee Advance"}, + {"module": "HR", "doctype": "Leave Encashment"}, + {"module": "Payroll", "doctype": "Additional Salary"}, + {"module": "Payroll", "doctype": "Employee Benefit Application"}, + {"module": "Payroll", "doctype": "Employee Benefit Claim"}, + {"module": "Payroll", "doctype": "Employee Incentive"}, + {"module": "Payroll", "doctype": "Employee Tax Exemption Declaration"}, + {"module": "Payroll", "doctype": "Employee Tax Exemption Proof Submission"}, + {"module": "Payroll", "doctype": "Income Tax Slab"}, + {"module": "Payroll", "doctype": "Payroll Entry"}, + {"module": "Payroll", "doctype": "Retention Bonus"}, + {"module": "Payroll", "doctype": "Salary Structure"}, + {"module": "Payroll", "doctype": "Salary Structure Assignment"}, + {"module": "Payroll", "doctype": "Salary Slip"}, + ] + + for item in doctype_list: + frappe.reload_doc(item["module"], "doctype", item["doctype"]) + + # update company in employee advance based on employee company + for dt in [ + "Employee Incentive", + "Leave Encashment", + "Employee Benefit Application", + "Employee Benefit Claim", + ]: + frappe.db.sql( + f""" + update `tab{dt}` + set company = (select company from tabEmployee where name=`tab{dt}`.employee) + where company IS NULL + """ + ) + + # get all companies and it's currency + all_companies = frappe.db.get_all( + "Company", fields=["name", "default_currency", "default_payroll_payable_account"] + ) + for d in all_companies: + company = d.name + company_currency = d.default_currency + default_payroll_payable_account = d.default_payroll_payable_account + + if not default_payroll_payable_account: + default_payroll_payable_account = frappe.db.get_value( + "Account", + { + "account_name": _("Payroll Payable"), + "company": company, + "account_currency": company_currency, + "is_group": 0, + }, + ) + + # update currency in following doctypes based on company currency + doctypes_for_currency = [ + "Employee Advance", + "Leave Encashment", + "Employee Benefit Application", + "Employee Benefit Claim", + "Employee Incentive", + "Additional Salary", + "Employee Tax Exemption Declaration", + "Employee Tax Exemption Proof Submission", + "Income Tax Slab", + "Retention Bonus", + "Salary Structure", + ] + + for dt in doctypes_for_currency: + frappe.db.sql( + f"""update `tab{dt}` set currency = %s where company=%s and currency IS NULL""", + (company_currency, company), + ) + + # update fields in payroll entry + frappe.db.sql( + """ + update `tabPayroll Entry` + set currency = %s, + exchange_rate = 1, + payroll_payable_account=%s + where company=%s + and currency IS NULL + """, + (company_currency, default_payroll_payable_account, company), + ) + + # update fields in Salary Structure Assignment + frappe.db.sql( + """ + update `tabSalary Structure Assignment` + set currency = %s, + payroll_payable_account=%s + where company=%s + and currency IS NULL + """, + (company_currency, default_payroll_payable_account, company), + ) + + # update fields in Salary Slip + frappe.db.sql( + """ + update `tabSalary Slip` + set currency = %s, + exchange_rate = 1, + base_hour_rate = hour_rate, + base_gross_pay = gross_pay, + base_total_deduction = total_deduction, + base_net_pay = net_pay, + base_rounded_total = rounded_total, + base_total_in_words = total_in_words + where company=%s + and currency IS NULL + """, + (company_currency, company), + ) diff --git a/apps/erpnext/src/hrms/hrms/patches/v14_0/add_expense_claim_to_repost_settings.py b/apps/erpnext/src/hrms/hrms/patches/v14_0/add_expense_claim_to_repost_settings.py new file mode 100644 index 000000000..827ddb75b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v14_0/add_expense_claim_to_repost_settings.py @@ -0,0 +1,12 @@ +import frappe + + +def execute(): + """ + Add `Expense Claim` to Repost settings + """ + allowed_types = ["Expense Claim"] + repost_settings = frappe.get_doc("Repost Accounting Ledger Settings") + for x in allowed_types: + repost_settings.append("allowed_types", {"document_type": x, "allowed": True}) + repost_settings.save() diff --git a/apps/erpnext/src/hrms/hrms/patches/v14_0/create_custom_field_for_appraisal_template.py b/apps/erpnext/src/hrms/hrms/patches/v14_0/create_custom_field_for_appraisal_template.py new file mode 100644 index 000000000..c5b7a0f11 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v14_0/create_custom_field_for_appraisal_template.py @@ -0,0 +1,15 @@ +from frappe.custom.doctype.custom_field.custom_field import create_custom_field + + +def execute(): + create_custom_field( + "Designation", + { + "fieldname": "appraisal_template", + "fieldtype": "Link", + "label": "Appraisal Template", + "options": "Appraisal Template", + "insert_after": "description", + "allow_in_quick_entry": 1, + }, + ) diff --git a/apps/erpnext/src/hrms/hrms/patches/v14_0/create_custom_field_in_loan.py b/apps/erpnext/src/hrms/hrms/patches/v14_0/create_custom_field_in_loan.py new file mode 100644 index 000000000..4769672ff --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v14_0/create_custom_field_in_loan.py @@ -0,0 +1,19 @@ +from frappe.custom.doctype.custom_field.custom_field import create_custom_field + +from hrms.payroll.doctype.salary_slip.salary_slip_loan_utils import if_lending_app_installed + + +@if_lending_app_installed +def execute(): + create_custom_field( + "Loan Repayment", + { + "default": "0", + "depends_on": 'eval:doc.applicant_type=="Employee"', + "fieldname": "process_payroll_accounting_entry_based_on_employee", + "hidden": 1, + "fieldtype": "Check", + "label": "Process Payroll Accounting Entry based on Employee", + "insert_after": "repay_from_salary", + }, + ) diff --git a/apps/erpnext/src/hrms/hrms/patches/v14_0/create_marginal_relief_field_for_india_localisation.py b/apps/erpnext/src/hrms/hrms/patches/v14_0/create_marginal_relief_field_for_india_localisation.py new file mode 100644 index 000000000..d2acedf13 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v14_0/create_marginal_relief_field_for_india_localisation.py @@ -0,0 +1,16 @@ +# Copyright (c) 2019, Frappe and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe + +from hrms.regional.india.setup import make_custom_fields + + +def execute(): + company = frappe.get_all("Company", filters={"country": "India"}) + if not company: + return + + make_custom_fields() + + frappe.reload_doc("payroll", "doctype", "income_tax_slab") diff --git a/apps/erpnext/src/hrms/hrms/patches/v14_0/create_vehicle_service_item.py b/apps/erpnext/src/hrms/hrms/patches/v14_0/create_vehicle_service_item.py new file mode 100644 index 000000000..fbf5eeccd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v14_0/create_vehicle_service_item.py @@ -0,0 +1,16 @@ +import frappe + + +def execute(): + service_items = [ + "Brake Oil", + "Brake Pad", + "Clutch Plate", + "Engine Oil", + "Oil Change", + "Wheels", + ] + for item in service_items: + doc = frappe.new_doc("Vehicle Service Item") + doc.service_item = item + doc.insert(ignore_permissions=True, ignore_if_duplicate=True) diff --git a/apps/erpnext/src/hrms/hrms/patches/v14_0/update_ess_user_access.py b/apps/erpnext/src/hrms/hrms/patches/v14_0/update_ess_user_access.py new file mode 100644 index 000000000..012337e27 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v14_0/update_ess_user_access.py @@ -0,0 +1,5 @@ +from hrms.setup import add_non_standard_user_types + + +def execute(): + add_non_standard_user_types() diff --git a/apps/erpnext/src/hrms/hrms/patches/v14_0/update_loan_repayment_repay_from_salary.py b/apps/erpnext/src/hrms/hrms/patches/v14_0/update_loan_repayment_repay_from_salary.py new file mode 100644 index 000000000..c7abe79a9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v14_0/update_loan_repayment_repay_from_salary.py @@ -0,0 +1,10 @@ +import frappe + + +def execute(): + if frappe.db.exists("Custom Field", "Loan Repayment-repay_from_salary"): + frappe.db.set_value( + "Custom Field", + "Loan Repayment-repay_from_salary", + {"fetch_from": None, "fetch_if_empty": 0}, + ) diff --git a/apps/erpnext/src/hrms/hrms/patches/v14_0/update_payroll_frequency_to_none_if_salary_slip_is_based_on_timesheet.py b/apps/erpnext/src/hrms/hrms/patches/v14_0/update_payroll_frequency_to_none_if_salary_slip_is_based_on_timesheet.py new file mode 100644 index 000000000..a17c98e6c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v14_0/update_payroll_frequency_to_none_if_salary_slip_is_based_on_timesheet.py @@ -0,0 +1,8 @@ +import frappe + + +def execute(): + salary_structure = frappe.qb.DocType("Salary Structure") + frappe.qb.update(salary_structure).set(salary_structure.payroll_frequency, "").where( + salary_structure.salary_slip_based_on_timesheet == 1 + ).run() diff --git a/apps/erpnext/src/hrms/hrms/patches/v14_0/update_repay_from_salary_and_payroll_payable_account_fields.py b/apps/erpnext/src/hrms/hrms/patches/v14_0/update_repay_from_salary_and_payroll_payable_account_fields.py new file mode 100644 index 000000000..38ff74cb7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v14_0/update_repay_from_salary_and_payroll_payable_account_fields.py @@ -0,0 +1,14 @@ +import frappe + + +def execute(): + if frappe.db.exists("Custom Field", {"name": "Loan Repayment-repay_from_salary"}): + frappe.db.set_value("Custom Field", {"name": "Loan Repayment-repay_from_salary"}, "fetch_if_empty", 1) + + if frappe.db.exists("Custom Field", {"name": "Loan Repayment-payroll_payable_account"}): + frappe.db.set_value( + "Custom Field", + {"name": "Loan Repayment-payroll_payable_account"}, + "insert_after", + "payment_account", + ) diff --git a/apps/erpnext/src/hrms/hrms/patches/v14_0/update_title_in_employee_onboarding_and_separation_templates.py b/apps/erpnext/src/hrms/hrms/patches/v14_0/update_title_in_employee_onboarding_and_separation_templates.py new file mode 100644 index 000000000..86237e3d7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v14_0/update_title_in_employee_onboarding_and_separation_templates.py @@ -0,0 +1,17 @@ +import frappe + + +def execute(): + onboarding_template = frappe.qb.DocType("Employee Onboarding Template") + ( + frappe.qb.update(onboarding_template) + .set(onboarding_template.title, onboarding_template.designation) + .where(onboarding_template.title.isnull()) + ).run() + + separation_template = frappe.qb.DocType("Employee Separation Template") + ( + frappe.qb.update(separation_template) + .set(separation_template.title, separation_template.designation) + .where(separation_template.title.isnull()) + ).run() diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/add_leave_type_permission_for_ess.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/add_leave_type_permission_for_ess.py new file mode 100644 index 000000000..2237cebdc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/add_leave_type_permission_for_ess.py @@ -0,0 +1,22 @@ +import frappe + + +def execute(): + usertype = frappe.get_all("User Type", filters={"name": "Employee Self Service"}) + if not usertype: + return + + doc = frappe.get_doc("User Type", "Employee Self Service") + + existing = {d.document_type for d in doc.user_doctypes} + + if "Leave Type" not in existing: + doc.append( + "user_doctypes", + { + "document_type": "Leave Type", + "read": 1, + }, + ) + doc.flags.ignore_links = True + doc.save() diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/add_loan_docperms_to_ess.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/add_loan_docperms_to_ess.py new file mode 100644 index 000000000..a03761229 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/add_loan_docperms_to_ess.py @@ -0,0 +1,9 @@ +import frappe + +from hrms.setup import add_lending_docperms_to_ess, update_user_type_doctype_limit + + +def execute(): + if "lending" in frappe.get_installed_apps(): + update_user_type_doctype_limit() + add_lending_docperms_to_ess() diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/call_set_total_advance_paid_on_advance_documents.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/call_set_total_advance_paid_on_advance_documents.py new file mode 100644 index 000000000..97f40114d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/call_set_total_advance_paid_on_advance_documents.py @@ -0,0 +1,37 @@ +import frappe +from frappe.query_builder import DocType + + +def execute(): + """ + Description: + Call set_total_advance_paid for advance ledger entries + """ + advance_doctpyes = ["Employee Advance", "Leave Encashment", "Gratuity"] + + for doctype in advance_doctpyes: + if frappe.db.has_table(doctype): + call_set_total_advance_paid(doctype) + + +def call_set_total_advance_paid(doctype) -> list: + aple = DocType("Advance Payment Ledger Entry") + advance_doctype = DocType(doctype) + + date = frappe.utils.getdate("31-07-2025") + + entries = ( + frappe.qb.from_(aple) + .left_join(advance_doctype) + .on(aple.against_voucher_no == advance_doctype.name) + .select(aple.against_voucher_no, aple.against_voucher_type) + .where((aple.delinked == 0) & (advance_doctype.creation >= date)) + ).run(as_dict=True) + + for entry in entries: + try: + advance_payment_ledger = frappe.get_doc(entry.against_voucher_type, entry.against_voucher_no) + advance_payment_ledger.set_total_advance_paid() + except Exception as e: + frappe.log_error(e) + continue diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/check_version_compatibility_with_frappe.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/check_version_compatibility_with_frappe.py new file mode 100644 index 000000000..1787ddc79 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/check_version_compatibility_with_frappe.py @@ -0,0 +1,20 @@ +import click + +import frappe + + +def execute(): + frappe_v = frappe.get_attr("frappe" + ".__version__") + hrms_v = frappe.get_attr("hrms" + ".__version__") + + WIKI_URL = "https://github.com/frappe/hrms/wiki/Changes-to-branching-and-versioning" + + if frappe_v.startswith("14") and hrms_v.startswith("15"): + message = f""" + The `develop` branch of Frappe HR is no longer compatible with Frappe & ERPNext's `version-14`. + Since you are using ERPNext/Frappe `version-14` please switch Frappe HR's branch to `version-14` and then proceed with the update.\n\t + You can switch the branch by following the steps mentioned here: {WIKI_URL} + """ + click.secho(message, fg="red") + + frappe.throw(message) # nosemgrep diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/create_accounting_dimensions_in_leave_encashment.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/create_accounting_dimensions_in_leave_encashment.py new file mode 100644 index 000000000..c08ff60e9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/create_accounting_dimensions_in_leave_encashment.py @@ -0,0 +1,7 @@ +from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import ( + create_accounting_dimensions_for_doctype, +) + + +def execute(): + create_accounting_dimensions_for_doctype(doctype="Leave Encashment") diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/create_marginal_relief_field_for_india_localisation.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/create_marginal_relief_field_for_india_localisation.py new file mode 100644 index 000000000..d2acedf13 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/create_marginal_relief_field_for_india_localisation.py @@ -0,0 +1,16 @@ +# Copyright (c) 2019, Frappe and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe + +from hrms.regional.india.setup import make_custom_fields + + +def execute(): + company = frappe.get_all("Company", filters={"country": "India"}) + if not company: + return + + make_custom_fields() + + frappe.reload_doc("payroll", "doctype", "income_tax_slab") diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/enable_allow_checkin_setting.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/enable_allow_checkin_setting.py new file mode 100644 index 000000000..c648e24b8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/enable_allow_checkin_setting.py @@ -0,0 +1,9 @@ +import frappe + + +def execute(): + settings = frappe.get_single("HR Settings") + settings.allow_employee_checkin_from_mobile_app = 1 + settings.flags.ignore_mandatory = True + settings.flags.ignore_permissions = True + settings.save() diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/fix_timesheet_status.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/fix_timesheet_status.py new file mode 100644 index 000000000..498ab5814 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/fix_timesheet_status.py @@ -0,0 +1,19 @@ +import frappe + + +def execute(): + """There was a bug where per_billed was not exactly 100, but slightly more + or less. This caused the status to not be correctly updated to "Billed". + + This patch re-runs the fixed `set_status()` on all Timesheets that are + fully billed but still have the status "Submitted". If the status changed + (likely to "Billed"), it silently updates the value in the database. + """ + for ts_name in frappe.get_all( + "Timesheet", filters={"per_billed": 100, "status": "Submitted"}, pluck="name" + ): + ts = frappe.get_doc("Timesheet", ts_name) + old_status = ts.status + ts.set_status() + if ts.status != old_status: + ts.db_set("status", ts.status, update_modified=False) diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/make_hr_settings_tab_in_company_master.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/make_hr_settings_tab_in_company_master.py new file mode 100644 index 000000000..b1ca91a74 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/make_hr_settings_tab_in_company_master.py @@ -0,0 +1,22 @@ +from frappe.custom.doctype.custom_field.custom_field import create_custom_fields + + +def execute(): + custom_fields = { + "Company": [ + { + "fieldname": "hr_and_payroll_tab", + "fieldtype": "Tab Break", + "label": "HR & Payroll", + "insert_after": "credit_limit", + }, + { + "fieldname": "hr_settings_section", + "fieldtype": "Section Break", + "label": "HR & Payroll Settings", + "insert_after": "hr_and_payroll_tab", + }, + ], + } + + create_custom_fields(custom_fields) diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/migrate_loan_type_to_loan_product.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/migrate_loan_type_to_loan_product.py new file mode 100644 index 000000000..4ad2a89ee --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/migrate_loan_type_to_loan_product.py @@ -0,0 +1,10 @@ +from frappe.model.utils.rename_field import rename_field + + +def execute(): + try: + rename_field("Salary Slip Loan", "loan_type", "loan_product") + + except Exception as e: + if e.args[0] != 1054: + raise diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/migrate_shift_assignment_schedule_to_shift_schedule.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/migrate_shift_assignment_schedule_to_shift_schedule.py new file mode 100644 index 000000000..94b09c899 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/migrate_shift_assignment_schedule_to_shift_schedule.py @@ -0,0 +1,29 @@ +import frappe + +from hrms.hr.doctype.shift_schedule.shift_schedule import get_or_insert_shift_schedule + + +def execute(): + if not frappe.db.has_table("Shift Assignment Schedule"): + return + + fields = ["name", "shift_type", "frequency", "employee", "shift_status", "enabled", "create_shifts_after"] + for doc in frappe.get_all("Shift Assignment Schedule", fields=fields): + repeat_on_days = frappe.get_all( + "Assignment Rule Day", {"parent": doc.name}, pluck="day", distinct=True + ) + shift_schedule_name = get_or_insert_shift_schedule(doc.shift_type, doc.frequency, repeat_on_days) + + schedule_assignment = frappe.get_doc( + { + "doctype": "Shift Schedule Assignment", + "shift_schedule": shift_schedule_name, + "employee": doc.employee, + "shift_status": doc.shift_status, + "enabled": doc.enabled, + "create_shifts_after": doc.create_shifts_after, + } + ).insert() + + for d in frappe.get_all("Shift Assignment", filters={"schedule": doc.name}, pluck="name"): + frappe.db.set_value("Shift Assignment", d, "shift_schedule_assignment", schedule_assignment.name) diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/notify_about_loan_app_separation.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/notify_about_loan_app_separation.py new file mode 100644 index 000000000..f6e1ae4c8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/notify_about_loan_app_separation.py @@ -0,0 +1,25 @@ +import frappe +from frappe import _ +from frappe.desk.doctype.notification_log.notification_log import make_notification_logs +from frappe.utils.user import get_system_managers + + +def execute(): + if "lending" in frappe.get_installed_apps(): + return + + if frappe.db.a_row_exists("Salary Slip Loan"): + notify_existing_users() + + +def notify_existing_users(): + subject = _("WARNING: Loan Management module has been separated from ERPNext.") + "
    " + subject += _( + "If you are using loans in salary slips, please install the {0} app from Frappe Cloud Marketplace or GitHub to continue using loan integration with payroll." + ).format(frappe.bold("Lending")) + + notification = { + "subject": subject, + "type": "Alert", + } + make_notification_logs(notification, get_system_managers(only_name=True)) diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/rename_and_update_leave_encashment_fields.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/rename_and_update_leave_encashment_fields.py new file mode 100644 index 000000000..d2f4a077f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/rename_and_update_leave_encashment_fields.py @@ -0,0 +1,28 @@ +import frappe +from frappe.model.utils.rename_field import rename_field + + +def execute(): + try: + rename_field("Leave Type", "encashment_threshold_days", "non_encashable_leaves") + + except Exception as e: + if e.args[0] != 1054: + raise + + if not frappe.db.has_column("Leave Encashment", "encashable_days"): + return + + # set new field values + LeaveEncashment = frappe.qb.DocType("Leave Encashment") + ( + frappe.qb.update(LeaveEncashment) + .set(LeaveEncashment.encashment_days, LeaveEncashment.encashable_days) + .where(LeaveEncashment.encashment_days.isnull()) + ).run() + + ( + frappe.qb.update(LeaveEncashment) + .set(LeaveEncashment.actual_encashable_days, LeaveEncashment.encashable_days) + .where(LeaveEncashment.actual_encashable_days.isnull()) + ).run() diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/rename_claim_date_to_payroll_date_in_employee_benefit_claim.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/rename_claim_date_to_payroll_date_in_employee_benefit_claim.py new file mode 100644 index 000000000..1c33a96c7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/rename_claim_date_to_payroll_date_in_employee_benefit_claim.py @@ -0,0 +1,12 @@ +import frappe +from frappe.model.utils.rename_field import rename_field + + +def execute(): + try: + if frappe.db.has_column("Employee Benefit Claim", "claim_date"): + rename_field("Employee Benefit Claim", "claim_date", "payroll_date") + + except Exception as e: + if e.args[0] != 1054: + raise diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/rename_enable_late_entry_early_exit_grace_period.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/rename_enable_late_entry_early_exit_grace_period.py new file mode 100644 index 000000000..91e61bb3a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/rename_enable_late_entry_early_exit_grace_period.py @@ -0,0 +1,11 @@ +from frappe.model.utils.rename_field import rename_field + + +def execute(): + try: + rename_field("Shift Type", "enable_entry_grace_period", "enable_late_entry_marking") + rename_field("Shift Type", "enable_exit_grace_period", "enable_early_exit_marking") + + except Exception as e: + if e.args[0] != 1054: + raise diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/set_default_asset_action_in_fnf.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/set_default_asset_action_in_fnf.py new file mode 100644 index 000000000..acad57067 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/set_default_asset_action_in_fnf.py @@ -0,0 +1,6 @@ +import frappe + + +def execute(): + FnF = frappe.qb.DocType("Full and Final Asset") + frappe.qb.update(FnF).set(FnF.action, "Return").where((FnF.action.isnull()) | (FnF.action == "")).run() diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/set_half_day_status_to_present_in_exisiting_half_day_attendance.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/set_half_day_status_to_present_in_exisiting_half_day_attendance.py new file mode 100644 index 000000000..3af7f3a15 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/set_half_day_status_to_present_in_exisiting_half_day_attendance.py @@ -0,0 +1,15 @@ +import frappe + + +def execute(): + """Set half day attendance status to present for existing half day attendance records.""" + if not frappe.db.has_column("Attendance", "half_day_status"): + return + + # Update existing half day attendance records + Attendance = frappe.qb.DocType("Attendance") + ( + frappe.qb.update(Attendance) + .set(Attendance.half_day_status, "Present") + .where((Attendance.status == "Half Day") & (Attendance.leave_application.isnotnull())) + ).run() diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/update_advance_payment_ledger_amount.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/update_advance_payment_ledger_amount.py new file mode 100644 index 000000000..0b275f9f0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/update_advance_payment_ledger_amount.py @@ -0,0 +1,75 @@ +import frappe +from frappe.query_builder import Case + + +def execute(): + advance_doctypes = ["Employee Advance", "Leave Encashment", "Gratuity"] + + update_payment_entry(advance_doctypes) + update_journal_entry(advance_doctypes) + + +def update_payment_entry(advance_doctypes): + pe = frappe.qb.DocType("Payment Entry") + per = frappe.qb.DocType("Payment Entry Reference") + advance_ledger = frappe.qb.DocType("Advance Payment Ledger Entry") + + ( + frappe.qb.update(pe) + .inner_join(per) + .on(per.parent.eq(pe.name)) + .inner_join(advance_ledger) + .on( + advance_ledger.voucher_no.eq(pe.name) + & advance_ledger.voucher_type.eq("Payment Entry") + & advance_ledger.against_voucher_type.eq(per.reference_doctype) + & advance_ledger.against_voucher_no.eq(per.reference_name) + ) + .set(advance_ledger.amount, per.allocated_amount) + .where( + per.reference_doctype.isin(advance_doctypes) + & pe.docstatus.eq(1) + & pe.payment_type.eq("Pay") + & (advance_ledger.amount < 0) + ) + ).run() + + +def update_journal_entry(advance_doctypes): + je = frappe.qb.DocType("Journal Entry") + jea = frappe.qb.DocType("Journal Entry Account") + advance_ledger = frappe.qb.DocType("Advance Payment Ledger Entry") + + ( + frappe.qb.update(jea) + .inner_join(je) + .on(je.name == jea.parent) + .inner_join(advance_ledger) + .on( + advance_ledger.voucher_type.eq("Journal Entry") + & advance_ledger.voucher_no.eq(je.name) + & advance_ledger.against_voucher_type.eq(jea.reference_type) + & advance_ledger.against_voucher_no.eq(jea.reference_name) + ) + .set( + advance_ledger.amount, + Case() + .when( + (jea.debit_in_account_currency > 0) & (advance_ledger.amount <= 0), + jea.debit_in_account_currency, + ) + .when( + (jea.credit_in_account_currency > 0) & (advance_ledger.amount >= 0), + jea.credit_in_account_currency * -1, + ) + .else_(advance_ledger.amount), + ) + .where( + jea.reference_type.isin(advance_doctypes) + & jea.docstatus.eq(1) + & ( + ((jea.debit_in_account_currency > 0) & (advance_ledger.amount <= 0)) + | ((jea.credit_in_account_currency > 0) & (advance_ledger.amount >= 0)) + ) + ) + ).run() diff --git a/apps/erpnext/src/hrms/hrms/patches/v15_0/update_payment_status_for_leave_encashment.py b/apps/erpnext/src/hrms/hrms/patches/v15_0/update_payment_status_for_leave_encashment.py new file mode 100644 index 000000000..d6e9c4527 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v15_0/update_payment_status_for_leave_encashment.py @@ -0,0 +1,54 @@ +import frappe +from frappe.query_builder import DocType + + +def execute(): + """ + Updates submitted Leave Encashment's status based on whether it was paid via a Salary Slip. + """ + + AdditionalSalary = DocType("Additional Salary") + SalarySlip = DocType("Salary Slip") + SalaryDetail = DocType("Salary Detail") + LeaveEncashment = DocType("Leave Encashment") + + # Fetch Leave Encashments that were paid via Salary Slips + paid_encashments = ( + frappe.qb.from_(AdditionalSalary) + .select(AdditionalSalary.ref_docname) + .where( + (AdditionalSalary.ref_doctype == "Leave Encashment") + & (AdditionalSalary.docstatus == 1) + & ( + AdditionalSalary.name.isin( + frappe.qb.from_(SalaryDetail) + .select(SalaryDetail.additional_salary) + .where( + ( + SalaryDetail.parent.isin( + frappe.qb.from_(SalarySlip) + .select(SalarySlip.name) + .where(SalarySlip.docstatus == 1) + ) + ) + & (SalaryDetail.additional_salary == AdditionalSalary.name) + ) + ) + ) + ) + ).run(pluck=True) + + if not paid_encashments: + # If no encashments were marked as "Paid", set all submitted to "Unpaid" + frappe.qb.update(LeaveEncashment).set(LeaveEncashment.status, "Unpaid").where( + LeaveEncashment.docstatus == 1 + ).run() + return + + frappe.qb.update(LeaveEncashment).set(LeaveEncashment.status, "Paid").where( + LeaveEncashment.name.isin(paid_encashments) + ).run() + + frappe.qb.update(LeaveEncashment).set(LeaveEncashment.status, "Unpaid").where( + (LeaveEncashment.docstatus == 1) & (LeaveEncashment.name.notin(paid_encashments)) + ).run() diff --git a/apps/erpnext/src/hrms/hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py b/apps/erpnext/src/hrms/hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py new file mode 100644 index 000000000..f4b39ab7f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v16_0/create_custom_field_for_employee_advance_in_employee_master.py @@ -0,0 +1,15 @@ +from frappe import _ +from frappe.custom.doctype.custom_field.custom_field import create_custom_field + + +def execute(): + create_custom_field( + "Employee", + { + "fieldname": "employee_advance_account", + "fieldtype": "Link", + "label": _("Employee Advance Account"), + "options": "Account", + "insert_after": "salary_mode", + }, + ) diff --git a/apps/erpnext/src/hrms/hrms/patches/v16_0/create_holiday_list_assignments.py b/apps/erpnext/src/hrms/hrms/patches/v16_0/create_holiday_list_assignments.py new file mode 100644 index 000000000..ca647e1de --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v16_0/create_holiday_list_assignments.py @@ -0,0 +1,66 @@ +from pypika.terms import ValueWrapper + +import frappe + + +def execute(): + employee_holiday_details = get_employee_holiday_details() + company_holiday_details = get_company_holiday_details() + if not (employee_holiday_details or company_holiday_details): + return + + for entity in employee_holiday_details + company_holiday_details: + try: + create_holiday_list_assignment(entity) + except Exception as e: + frappe.log_error(e) + + +def create_holiday_list_assignment(entity_details): + if not frappe.db.exists("Holiday List Assignment", entity_details): + hla = frappe.new_doc("Holiday List Assignment") + hla.update(entity_details) + hla.save() + hla.submit() + + +def get_employee_holiday_details(): + employee = frappe.qb.DocType("Employee") + holiday_list = frappe.qb.DocType("Holiday List") + applicable_for = ValueWrapper("Employee", "applicable_for") + employee_holiday_details = ( + frappe.qb.from_(employee) + .inner_join(holiday_list) + .on(employee.holiday_list == holiday_list.name) + .select( + (employee.name).as_("assigned_to"), + employee.holiday_list, + holiday_list.from_date, + holiday_list.to_date, + employee.company, + applicable_for, + ) + .where(employee.status == "Active") + ).run(as_dict=True) + + return employee_holiday_details + + +def get_company_holiday_details(): + company = frappe.qb.DocType("Company") + holiday_list = frappe.qb.DocType("Holiday List") + applicable_for = ValueWrapper("Company", "applicable_for") + company_holiday_details = ( + frappe.qb.from_(company) + .inner_join(holiday_list) + .on(company.default_holiday_list == holiday_list.name) + .select( + (company.name).as_("assigned_to"), + (company.default_holiday_list).as_("holiday_list"), + holiday_list.from_date, + holiday_list.to_date, + applicable_for, + ) + ).run(as_dict=True) + + return company_holiday_details diff --git a/apps/erpnext/src/hrms/hrms/patches/v16_0/delete_old_workspaces.py b/apps/erpnext/src/hrms/hrms/patches/v16_0/delete_old_workspaces.py new file mode 100644 index 000000000..8ca2dcf0a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v16_0/delete_old_workspaces.py @@ -0,0 +1,15 @@ +import frappe + + +def execute(): + old_workspaces = ["Expense Claims", "Salary Payout", "Employee Lifecycle", "Overview", "Attendance", "HR"] + + for workspace in old_workspaces: + if frappe.db.exists("Workspace", {"name": workspace, "public": 1, "for_user": ("is", "Not Set")}): + frappe.delete_doc("Workspace", workspace, force=True) + if sidebar := frappe.db.exists( + "Workspace Sidebar", {"name": workspace, "for_user": ("is", "Not Set")} + ): + frappe.delete_doc("Workspace Sidebar", sidebar) + if icon := frappe.db.exists("Desktop Icon", {"link_type": "Workspace", "link_to": workspace}): + frappe.delete_doc("Desktop Icon", icon) diff --git a/apps/erpnext/src/hrms/hrms/patches/v1_0/rearrange_employee_fields.py b/apps/erpnext/src/hrms/hrms/patches/v1_0/rearrange_employee_fields.py new file mode 100644 index 000000000..881446341 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/patches/v1_0/rearrange_employee_fields.py @@ -0,0 +1,153 @@ +import frappe +from frappe.custom.doctype.custom_field.custom_field import create_custom_fields + + +def execute(): + custom_fields = { + "Employee": [ + { + "fieldname": "employment_type", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "label": "Employment Type", + "oldfieldname": "employment_type", + "oldfieldtype": "Link", + "options": "Employment Type", + "insert_after": "department", + }, + { + "fieldname": "job_applicant", + "fieldtype": "Link", + "label": "Job Applicant", + "options": "Job Applicant", + "insert_after": "employment_details", + }, + { + "fieldname": "grade", + "fieldtype": "Link", + "label": "Grade", + "options": "Employee Grade", + "insert_after": "branch", + }, + { + "fieldname": "default_shift", + "fieldtype": "Link", + "label": "Default Shift", + "options": "Shift Type", + "insert_after": "holiday_list", + }, + { + "collapsible": 1, + "fieldname": "health_insurance_section", + "fieldtype": "Section Break", + "label": "Health Insurance", + "insert_after": "health_details", + }, + { + "fieldname": "health_insurance_provider", + "fieldtype": "Link", + "label": "Health Insurance Provider", + "options": "Employee Health Insurance", + "insert_after": "health_insurance_section", + }, + { + "depends_on": "eval:doc.health_insurance_provider", + "fieldname": "health_insurance_no", + "fieldtype": "Data", + "label": "Health Insurance No", + "insert_after": "health_insurance_provider", + }, + { + "fieldname": "approvers_section", + "fieldtype": "Section Break", + "label": "Approvers", + "insert_after": "default_shift", + }, + { + "fieldname": "expense_approver", + "fieldtype": "Link", + "label": "Expense Approver", + "options": "User", + "insert_after": "approvers_section", + }, + { + "fieldname": "leave_approver", + "fieldtype": "Link", + "label": "Leave Approver", + "options": "User", + "insert_after": "expense_approver", + }, + { + "fieldname": "column_break_45", + "fieldtype": "Column Break", + "insert_after": "leave_approver", + }, + { + "fieldname": "shift_request_approver", + "fieldtype": "Link", + "label": "Shift Request Approver", + "options": "User", + "insert_after": "column_break_45", + }, + { + "fieldname": "salary_cb", + "fieldtype": "Column Break", + "insert_after": "salary_mode", + }, + { + "fetch_from": "department.payroll_cost_center", + "fetch_if_empty": 1, + "fieldname": "payroll_cost_center", + "fieldtype": "Link", + "label": "Payroll Cost Center", + "options": "Cost Center", + "insert_after": "salary_cb", + }, + ], + } + + if frappe.db.exists("Company", {"country": "India"}): + custom_fields["Employee"].extend( + [ + { + "fieldname": "bank_cb", + "fieldtype": "Column Break", + "insert_after": "bank_ac_no", + }, + { + "fieldname": "ifsc_code", + "label": "IFSC Code", + "fieldtype": "Data", + "insert_after": "bank_cb", + "print_hide": 1, + "depends_on": 'eval:doc.salary_mode == "Bank"', + "translatable": 0, + }, + { + "fieldname": "pan_number", + "label": "PAN Number", + "fieldtype": "Data", + "insert_after": "payroll_cost_center", + "print_hide": 1, + "translatable": 0, + }, + { + "fieldname": "micr_code", + "label": "MICR Code", + "fieldtype": "Data", + "insert_after": "ifsc_code", + "print_hide": 1, + "depends_on": 'eval:doc.salary_mode == "Bank"', + "translatable": 0, + }, + { + "fieldname": "provident_fund_account", + "label": "Provident Fund Account", + "fieldtype": "Data", + "insert_after": "pan_number", + "translatable": 0, + }, + ] + ) + + create_custom_fields(custom_fields) diff --git a/apps/erpnext/src/hrms/hrms/payroll/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/dashboard_chart/department_wise_salary(last_month)/department_wise_salary(last_month).json b/apps/erpnext/src/hrms/hrms/payroll/dashboard_chart/department_wise_salary(last_month)/department_wise_salary(last_month).json new file mode 100644 index 000000000..65ed00c88 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/dashboard_chart/department_wise_salary(last_month)/department_wise_salary(last_month).json @@ -0,0 +1,30 @@ +{ + "aggregate_function_based_on": "rounded_total", + "chart_name": "Department Wise Salary(Last Month)", + "chart_type": "Group By", + "creation": "2020-07-22 11:56:34.511940", + "custom_options": "", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Salary Slip", + "dynamic_filters_json": "[[\"Salary Slip\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Salary Slip\",\"docstatus\",\"=\",\"1\"],[\"Salary Slip\",\"start_date\",\"Timespan\",\"last month\"]]", + "group_by_based_on": "department", + "group_by_type": "Sum", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2020-07-22 12:46:05.272076", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Department Wise Salary(Last Month)", + "number_of_groups": 0, + "owner": "Administrator", + "time_interval": "Monthly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Bar", + "use_report_chart": 0, + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/dashboard_chart/designation_wise_salary(last_month)/designation_wise_salary(last_month).json b/apps/erpnext/src/hrms/hrms/payroll/dashboard_chart/designation_wise_salary(last_month)/designation_wise_salary(last_month).json new file mode 100644 index 000000000..08f4b136f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/dashboard_chart/designation_wise_salary(last_month)/designation_wise_salary(last_month).json @@ -0,0 +1,30 @@ +{ + "aggregate_function_based_on": "rounded_total", + "chart_name": "Designation Wise Salary(Last Month)", + "chart_type": "Group By", + "creation": "2020-07-22 11:56:34.550339", + "custom_options": "", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Salary Slip", + "dynamic_filters_json": "[[\"Salary Slip\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Salary Slip\",\"docstatus\",\"=\",\"1\"],[\"Salary Slip\",\"start_date\",\"Timespan\",\"last month\"]]", + "group_by_based_on": "designation", + "group_by_type": "Sum", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2020-07-22 12:22:18.412822", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Designation Wise Salary(Last Month)", + "number_of_groups": 0, + "owner": "Administrator", + "time_interval": "Monthly", + "timeseries": 0, + "timespan": "Last Year", + "type": "Bar", + "use_report_chart": 0, + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/dashboard_chart/outgoing_salary/outgoing_salary.json b/apps/erpnext/src/hrms/hrms/payroll/dashboard_chart/outgoing_salary/outgoing_salary.json new file mode 100644 index 000000000..527cdfd60 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/dashboard_chart/outgoing_salary/outgoing_salary.json @@ -0,0 +1,29 @@ +{ + "based_on": "end_date", + "chart_name": "Outgoing Salary", + "chart_type": "Sum", + "creation": "2020-07-22 11:56:34.478848", + "custom_options": "", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Salary Slip", + "dynamic_filters_json": "[[\"Salary Slip\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Salary Slip\",\"docstatus\",\"=\",\"1\"]]", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "last_synced_on": "2020-07-22 12:11:27.481231", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Outgoing Salary", + "number_of_groups": 0, + "owner": "Administrator", + "time_interval": "Monthly", + "timeseries": 1, + "timespan": "Last Year", + "type": "Line", + "use_report_chart": 0, + "value_based_on": "rounded_total", + "y_axis": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/data/salary_components.json b/apps/erpnext/src/hrms/hrms/payroll/data/salary_components.json new file mode 100644 index 000000000..f0686a020 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/data/salary_components.json @@ -0,0 +1,27 @@ +[ + { + "doctype": "Salary Component", + "salary_component": "Income Tax", + "description": "Income Tax", + "type": "Deduction", + "is_income_tax_component": 1 + }, + { + "doctype": "Salary Component", + "salary_component": "Basic", + "description": "Basic", + "type": "Earning" + }, + { + "doctype": "Salary Component", + "salary_component": "Arrear", + "description": "Arrear", + "type": "Earning" + }, + { + "doctype": "Salary Component", + "salary_component": "Leave Encashment", + "description": "Leave Encashment", + "type": "Earning" + } +] \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/additional_salary.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/additional_salary.js new file mode 100644 index 000000000..274f40bfc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/additional_salary.js @@ -0,0 +1,109 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Additional Salary", { + setup: function (frm) { + frm.add_fetch( + "salary_component", + "deduct_full_tax_on_selected_payroll_date", + "deduct_full_tax_on_selected_payroll_date", + ); + + frm.set_query("employee", function () { + return { + filters: { + company: frm.doc.company, + status: ["!=", "Inactive"], + }, + }; + }); + }, + + onload: function (frm) { + frm.trigger("set_component_query"); + }, + + employee: function (frm) { + if (frm.doc.employee) { + frappe.run_serially([ + () => frm.trigger("get_employee_currency"), + () => frm.trigger("set_company"), + ]); + } else { + frm.set_value("company", null); + } + }, + + set_company: function (frm) { + frappe.call({ + method: "frappe.client.get_value", + args: { + doctype: "Employee", + fieldname: "company", + filters: { + name: frm.doc.employee, + }, + }, + callback: function (data) { + if (data.message) { + frm.set_value("company", data.message.company); + } + }, + }); + }, + + company: function (frm) { + frm.trigger("set_component_query"); + }, + + set_component_query: function (frm) { + if (!frm.doc.company) return; + + frm.set_query("salary_component", function () { + return { + filters: { + disabled: 0, + }, + }; + }); + }, + + get_employee_currency: function (frm) { + frappe.call({ + method: "hrms.payroll.doctype.salary_structure_assignment.salary_structure_assignment.get_employee_currency", + args: { + employee: frm.doc.employee, + }, + callback: function (r) { + if (r.message) { + frm.set_value("currency", r.message); + frm.refresh_fields(); + } + }, + }); + }, + + salary_component: function (frm) { + if (!frm.doc.ref_doctype) { + frm.trigger("get_salary_component_amount"); + } + }, + + get_salary_component_amount: function (frm) { + frappe.call({ + method: "frappe.client.get_value", + args: { + doctype: "Salary Component", + fieldname: "amount", + filters: { + name: frm.doc.salary_component, + }, + }, + callback: function (data) { + if (data.message) { + frm.set_value("amount", data.message.amount); + } + }, + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/additional_salary.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/additional_salary.json new file mode 100644 index 000000000..3f4375f46 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/additional_salary.json @@ -0,0 +1,248 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "naming_series:", + "creation": "2018-05-10 12:04:08.396461", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "naming_series", + "employee", + "employee_name", + "department", + "column_break_5", + "company", + "is_recurring", + "disabled", + "from_date", + "to_date", + "payroll_date", + "amended_from", + "salary_details_section", + "salary_component", + "type", + "currency", + "amount", + "column_break_8", + "deduct_full_tax_on_selected_payroll_date", + "overwrite_salary_structure_amount", + "properties_and_references_section", + "ref_doctype", + "ref_docname" + ], + "fields": [ + { + "fieldname": "naming_series", + "fieldtype": "Select", + "label": "Series", + "options": "HR-ADS-.YY.-.MM.-", + "reqd": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1, + "search_index": 1 + }, + { + "fieldname": "salary_component", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Salary Component", + "options": "Salary Component", + "reqd": 1, + "search_index": 1 + }, + { + "fieldname": "amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Amount", + "options": "currency", + "reqd": 1 + }, + { + "default": "1", + "fieldname": "overwrite_salary_structure_amount", + "fieldtype": "Check", + "label": "Overwrite Salary Structure Amount" + }, + { + "default": "0", + "fieldname": "deduct_full_tax_on_selected_payroll_date", + "fieldtype": "Check", + "label": "Deduct Full Tax on Selected Payroll Date" + }, + { + "fieldname": "column_break_5", + "fieldtype": "Column Break" + }, + { + "depends_on": "eval:(doc.is_recurring==0)", + "description": "The date on which Salary Component with Amount will contribute for Earnings/Deduction in Salary Slip. ", + "fieldname": "payroll_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Payroll Date", + "mandatory_depends_on": "eval:(doc.is_recurring==0)", + "search_index": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fetch_from": "salary_component.type", + "fieldname": "type", + "fieldtype": "Data", + "label": "Salary Component Type", + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Additional Salary", + "print_hide": 1, + "read_only": 1 + }, + { + "default": "0", + "fieldname": "is_recurring", + "fieldtype": "Check", + "label": "Is Recurring" + }, + { + "depends_on": "eval:(doc.is_recurring==1)", + "fieldname": "from_date", + "fieldtype": "Date", + "label": "From Date", + "mandatory_depends_on": "eval:(doc.is_recurring==1)" + }, + { + "depends_on": "eval:(doc.is_recurring==1)", + "fieldname": "to_date", + "fieldtype": "Date", + "label": "To Date", + "mandatory_depends_on": "eval:(doc.is_recurring==1)" + }, + { + "fieldname": "ref_doctype", + "fieldtype": "Link", + "label": "Reference Document Type", + "options": "DocType", + "read_only": 1 + }, + { + "fieldname": "ref_docname", + "fieldtype": "Dynamic Link", + "label": "Reference Document", + "no_copy": 1, + "options": "ref_doctype", + "read_only": 1 + }, + { + "depends_on": "eval:(doc.docstatus==1 || doc.employee)", + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "print_hide": 1, + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "salary_details_section", + "fieldtype": "Section Break", + "label": "Salary" + }, + { + "fieldname": "properties_and_references_section", + "fieldtype": "Section Break", + "label": "References" + }, + { + "fieldname": "column_break_8", + "fieldtype": "Column Break" + }, + { + "allow_on_submit": 1, + "default": "0", + "depends_on": "eval:doc.is_recurring", + "fieldname": "disabled", + "fieldtype": "Check", + "label": "Disabled", + "no_copy": 1 + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-11-14 16:51:17.594568", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Additional Salary", + "naming_rule": "By \"Naming Series\" field", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "search_fields": "employee_name", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/additional_salary.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/additional_salary.py new file mode 100644 index 000000000..7bb7ca988 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/additional_salary.py @@ -0,0 +1,329 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _, bold +from frappe.model.document import Document +from frappe.utils import comma_and, date_diff, formatdate, get_link_to_form, getdate + +from hrms.hr.utils import validate_active_employee + + +class AdditionalSalary(Document): + def before_validate(self): + if self.payroll_date and self.is_recurring: + self.payroll_date = None + + def on_submit(self): + self.update_return_amount_in_employee_advance() + self.update_employee_referral() + + def on_cancel(self): + self.update_return_amount_in_employee_advance() + self.update_employee_referral(cancel=True) + + def validate(self): + validate_active_employee(self.employee) + self.validate_dates() + self.validate_salary_structure() + self.validate_recurring_additional_salary_overlap() + self.validate_employee_referral() + self.validate_duplicate_additional_salary() + self.validate_tax_component_overwrite() + self.validate_accrual_component() + + if self.amount < 0: + frappe.throw(_("Amount should not be less than zero")) + + def validate_salary_structure(self): + salary_structure = frappe.db.get_value( + "Salary Structure Assignment", + { + "employee": self.employee, + "docstatus": 1, + "from_date": ["<=", self.payroll_date or self.from_date], + }, + "salary_structure", + order_by="from_date desc", + ) + + if not salary_structure: + frappe.throw( + _("There is no Salary Structure assigned to {0}. First assign a Salary Structure.").format( + self.employee + ) + ) + + if self.overwrite_salary_structure_amount: + is_structure_component = frappe.db.get_value( + "Salary Detail", + { + "parenttype": "Salary Structure", + "parent": salary_structure, + "salary_component": self.salary_component, + }, + ) + + if not is_structure_component: + self.overwrite_salary_structure_amount = 0 + frappe.msgprint( + _( + "Overwrite Salary Structure Amount is disabled as the Salary Component: {0} not part of the Salary Structure: {1}" + ).format(self.salary_component, salary_structure) + ) + + def validate_recurring_additional_salary_overlap(self): + if self.is_recurring: + AdditionalSalary = frappe.qb.DocType("Additional Salary") + + additional_salaries = ( + frappe.qb.from_(AdditionalSalary) + .select(AdditionalSalary.name) + .where( + (AdditionalSalary.employee == self.employee) + & (AdditionalSalary.name != self.name) + & (AdditionalSalary.docstatus == 1) + & (AdditionalSalary.is_recurring == 1) + & (AdditionalSalary.salary_component == self.salary_component) + & (AdditionalSalary.to_date >= self.from_date) + & (AdditionalSalary.from_date <= self.to_date) + & (AdditionalSalary.disabled == 0) + ) + ).run(pluck=True) + + if additional_salaries and len(additional_salaries): + frappe.throw( + _( + "Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3}" + ).format( + bold(comma_and(additional_salaries)), + bold(self.salary_component), + bold(formatdate(self.from_date)), + bold(formatdate(self.to_date)), + ) + ) + + def validate_dates(self): + date_of_joining, relieving_date = frappe.db.get_value( + "Employee", self.employee, ["date_of_joining", "relieving_date"] + ) + + self.validate_from_to_dates("from_date", "to_date") + + if self.is_recurring and not (self.from_date and self.to_date): + frappe.throw(_("From and to dates are mandatory for recurring type additional salaries.")) + elif (not self.is_recurring) and (not self.payroll_date): + frappe.throw(_("Payroll date is mandatory for non-recurring type additional salaries.")) + + if date_of_joining: + if self.payroll_date and getdate(self.payroll_date) < getdate(date_of_joining): + frappe.throw(_("Payroll date can not be less than employee's joining date.")) + elif self.from_date and getdate(self.from_date) < getdate(date_of_joining): + frappe.throw(_("From date can not be less than employee's joining date.")) + + if relieving_date: + if self.to_date and getdate(self.to_date) > getdate(relieving_date): + frappe.throw(_("To date can not be greater than employee's relieving date.")) + if self.payroll_date and getdate(self.payroll_date) > getdate(relieving_date): + frappe.throw(_("Payroll date can not be greater than employee's relieving date.")) + + def validate_employee_referral(self): + if self.ref_doctype == "Employee Referral": + referral_details = frappe.db.get_value( + "Employee Referral", + self.ref_docname, + ["is_applicable_for_referral_bonus", "status"], + as_dict=1, + ) + + if not referral_details.is_applicable_for_referral_bonus: + frappe.throw( + _("Employee Referral {0} is not applicable for referral bonus.").format(self.ref_docname) + ) + + if self.type == "Deduction": + frappe.throw(_("Earning Salary Component is required for Employee Referral Bonus.")) + + if referral_details.status != "Accepted": + frappe.throw( + _( + "Additional Salary for referral bonus can only be created against Employee Referral with status {0}" + ).format(frappe.bold(_("Accepted"))) + ) + + def validate_duplicate_additional_salary(self): + if not self.overwrite_salary_structure_amount: + return + + AdditionalSalary = frappe.qb.DocType("Additional Salary") + existing_additional_salary = ( + ( + frappe.qb.from_(AdditionalSalary) + .select(AdditionalSalary.name) + .where( + (AdditionalSalary.name != self.name) + & (AdditionalSalary.salary_component == self.salary_component) + & (AdditionalSalary.employee == self.employee) + & (AdditionalSalary.overwrite_salary_structure_amount == 1) + & (AdditionalSalary.docstatus == 1) + & (AdditionalSalary.disabled == 0) + & ( + (AdditionalSalary.payroll_date == self.payroll_date) + | ( + (AdditionalSalary.from_date <= self.payroll_date) + & (AdditionalSalary.to_date >= self.payroll_date) + ) + ) + ) + ) + .limit(1) + .run(pluck=True) + ) + + if existing_additional_salary: + msg = _( + "Additional Salary for this salary component with {0} enabled already exists for this date" + ).format(frappe.bold(_("Overwrite Salary Structure Amount"))) + msg += "

    " + msg += _("Reference: {0}").format( + get_link_to_form("Additional Salary", existing_additional_salary) + ) + frappe.throw(msg, title=_("Duplicate Overwritten Salary")) + + def validate_tax_component_overwrite(self): + if not frappe.db.get_value( + "Salary Component", self.salary_component, "variable_based_on_taxable_salary" + ): + return + + if self.overwrite_salary_structure_amount: + frappe.msgprint( + _( + "This will overwrite the tax component {0} in the salary slip and tax won't be calculated based on the Income Tax Slabs" + ).format(frappe.bold(self.salary_component)), + title=_("Warning"), + indicator="orange", + ) + else: + msg = _("{0} has {1} enabled").format( + get_link_to_form("Salary Component", self.salary_component), + frappe.bold(_("Variable Based On Taxable Salary")), + ) + msg += "

    " + _( + "To overwrite the salary component amount for a tax component, please enable {0}" + ).format(frappe.bold(_("Overwrite Salary Structure Amount"))) + frappe.throw(msg, title=_("Invalid Additional Salary")) + + def validate_accrual_component(self): + if frappe.db.get_value("Salary Component", self.salary_component, "accrual_component"): + frappe.msgprint( + _( + "{0} is an Accrual Component and this will be recorded as a payout in Employee Benefits Ledger" + ).format(frappe.bold(self.salary_component)), + title=_("Warning"), + indicator="orange", + ) + + def update_return_amount_in_employee_advance(self): + if self.ref_doctype == "Employee Advance" and self.ref_docname: + return_amount = frappe.db.get_value("Employee Advance", self.ref_docname, "return_amount") + + if self.docstatus == 2: + return_amount -= self.amount + else: + return_amount += self.amount + + frappe.db.set_value("Employee Advance", self.ref_docname, "return_amount", return_amount) + advance = frappe.get_doc("Employee Advance", self.ref_docname) + advance.set_status(update=True) + + def update_employee_referral(self, cancel=False): + if self.ref_doctype == "Employee Referral": + status = "Unpaid" if cancel else "Paid" + frappe.db.set_value("Employee Referral", self.ref_docname, "referral_payment_status", status) + + def get_amount(self, sal_start_date, sal_end_date): + start_date = getdate(sal_start_date) + end_date = getdate(sal_end_date) + total_days = date_diff(getdate(self.to_date), getdate(self.from_date)) + 1 + amount_per_day = self.amount / total_days + if getdate(sal_start_date) <= getdate(self.from_date): + start_date = getdate(self.from_date) + if getdate(sal_end_date) > getdate(self.to_date): + end_date = getdate(self.to_date) + no_of_days = date_diff(getdate(end_date), getdate(start_date)) + 1 + return amount_per_day * no_of_days + + def before_update_after_submit(self): + if not self.disabled: + self.validate_recurring_additional_salary_overlap() + + +def get_additional_salaries(employee, start_date, end_date, component_type): + from frappe.query_builder import Criterion + + comp_type = "Earning" if component_type == "earnings" else "Deduction" + + additional_sal = frappe.qb.DocType("Additional Salary") + component_field = additional_sal.salary_component.as_("component") + overwrite_field = additional_sal.overwrite_salary_structure_amount.as_("overwrite") + + additional_salary_list = ( + frappe.qb.from_(additional_sal) + .select( + additional_sal.name, + component_field, + additional_sal.type, + additional_sal.amount, + additional_sal.is_recurring, + overwrite_field, + additional_sal.deduct_full_tax_on_selected_payroll_date, + additional_sal.ref_doctype, + ) + .where( + (additional_sal.employee == employee) + & (additional_sal.docstatus == 1) + & (additional_sal.type == comp_type) + & (additional_sal.disabled == 0) + ) + .where( + Criterion.any( + [ + Criterion.all( + [ # is recurring and additional salary dates fall within the payroll period + additional_sal.is_recurring == 1, + additional_sal.from_date <= end_date, + additional_sal.to_date >= end_date, + ] + ), + Criterion.all( + [ # is not recurring and additional salary's payroll date falls within the payroll period + additional_sal.is_recurring == 0, + additional_sal.payroll_date[start_date:end_date], + ] + ), + ] + ) + ) + .run(as_dict=True) + ) + + additional_salaries = [] + components_to_overwrite = [] + + for d in additional_salary_list: + if d.overwrite: + if d.component in components_to_overwrite: + frappe.throw( + _( + "Multiple Additional Salaries with overwrite property exist for Salary Component {0} between {1} and {2}." + ).format(frappe.bold(d.component), start_date, end_date), + title=_("Error"), + ) + + components_to_overwrite.append(d.component) + + additional_salaries.append(d) + + return additional_salaries diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/test_additional_salary.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/test_additional_salary.py new file mode 100644 index 000000000..e442a8589 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/additional_salary/test_additional_salary.py @@ -0,0 +1,199 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, add_months, nowdate + +import erpnext +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.payroll.doctype.salary_component.test_salary_component import create_salary_component +from hrms.payroll.doctype.salary_slip.test_salary_slip import make_employee_salary_slip, setup_test +from hrms.payroll.doctype.salary_structure.test_salary_structure import ( + make_salary_slip, + make_salary_structure, +) + + +class TestAdditionalSalary(IntegrationTestCase): + def setUp(self): + setup_test() + + def test_recurring_additional_salary(self): + amount = 0 + salary_component = None + emp_id = make_employee("test_additional@salary.com") + frappe.db.set_value("Employee", emp_id, "relieving_date", add_days(nowdate(), 1800)) + salary_structure = make_salary_structure( + "Test Salary Structure Additional Salary", + "Monthly", + employee=emp_id, + from_date=add_days(nowdate(), -50), + ) + add_sal = get_additional_salary(emp_id) + + ss = make_employee_salary_slip(emp_id, "Monthly", salary_structure=salary_structure.name) + for earning in ss.earnings: + if earning.salary_component == "Recurring Salary Component": + amount = earning.amount + salary_component = earning.salary_component + break + + self.assertEqual(amount, add_sal.amount) + self.assertEqual(salary_component, add_sal.salary_component) + + def test_disabled_recurring_additional_salary(self): + emp_id = make_employee("test_additional@salary.com") + + salary_structure = make_salary_structure( + "Test Salary Structure Additional Salary", + "Monthly", + employee=emp_id, + from_date=add_days(nowdate(), -50), + ) + add_sal = get_additional_salary(emp_id) + ss = make_employee_salary_slip(emp_id, "Monthly", salary_structure=salary_structure.name) + salary_componets = [earning.salary_component for earning in ss.earnings] + self.assertIn("Recurring Salary Component", salary_componets) + + # Test disabling recurring additional salary + posting_date = add_months(ss.posting_date, 1) + frappe.db.set_value("Additional Salary", add_sal.name, "disabled", 1) + + ss = make_salary_slip(salary_structure.name, employee=emp_id, posting_date=posting_date) + + salary_components = [earning.salary_component for earning in ss.earnings] + self.assertNotIn("Recurring Salary Component", salary_components) + + def test_non_recurring_additional_salary(self): + amount = 0 + salary_component = None + date = nowdate() + + emp_id = make_employee("test_additional@salary.com") + frappe.db.set_value("Employee", emp_id, "relieving_date", add_days(date, 1800)) + salary_structure = make_salary_structure( + "Test Salary Structure Additional Salary", "Monthly", employee=emp_id + ) + add_sal = get_additional_salary(emp_id, recurring=False, payroll_date=date) + + ss = make_employee_salary_slip(emp_id, "Monthly", salary_structure=salary_structure.name) + + amount, salary_component = None, None + for earning in ss.earnings: + if earning.salary_component == "Recurring Salary Component": + amount = earning.amount + salary_component = earning.salary_component + break + + self.assertEqual(amount, add_sal.amount) + self.assertEqual(salary_component, add_sal.salary_component) + + # should not show up in next months + ss.posting_date = add_months(date, 1) + ss.start_date = ss.end_date = None + ss.earnings = [] + ss.deductions = [] + ss.save() + + amount, salary_component = None, None + for earning in ss.earnings: + if earning.salary_component == "Recurring Salary Component": + amount = earning.amount + salary_component = earning.salary_component + break + + self.assertIsNone(amount) + self.assertIsNone(salary_component) + + def test_overwrite_salary_structure_amount(self): + emp_id = make_employee("test_additional@salary.com") + + # Salary Structure created with HRA Salary Component amount as 3000 + salary_structure = make_salary_structure( + "Test Salary Structure Additional Salary", "Monthly", employee=emp_id + ) + self.assertEqual(salary_structure.earnings[1].amount, 3000) + + date = nowdate() + + # this will overwrite HRA Salary Component amount as 5000 + get_additional_salary( + emp_id, recurring=False, payroll_date=date, salary_component="HRA", overwrite_salary_structure=1 + ) + salary_slip = make_salary_slip(salary_structure.name, employee=emp_id, posting_date=date) + self.assertEqual(salary_slip.earnings[1].amount, 5000) + + def test_overwrite_tax_component(self): + def _get_tds_component(doc) -> dict: + return next( + (d for d in salary_slip.get("deductions") if d.salary_component == "TDS"), frappe._dict() + ) + + emp_id = make_employee("test_additional@salary.com") + salary_structure = make_salary_structure( + "Test Salary Structure Additional Salary", "Monthly", employee=emp_id, test_tax=True + ) + date = nowdate() + + # Overwrites TDS Salary Component amount as 5000 + additional_salary = get_additional_salary( + emp_id, recurring=False, payroll_date=date, salary_component="TDS", overwrite_salary_structure=1 + ) + salary_slip = make_salary_slip(salary_structure.name, employee=emp_id, posting_date=date) + tds_component = _get_tds_component(salary_slip) + self.assertEqual(tds_component.additional_salary, additional_salary.name) + self.assertEqual(tds_component.amount, 5000) + + # Calculates TDS as per tax slabs + additional_salary.cancel() + salary_slip = make_salary_slip(salary_structure.name, employee=emp_id, posting_date=date) + tds_component = _get_tds_component(salary_slip) + self.assertIsNone(tds_component.additional_salary) + self.assertNotEqual(tds_component.amount, 5000) + + def test_validate_duplicate_or_overlapping_additional_salary(self): + emp_id = make_employee("test_additional@salary.com") + date = nowdate() + make_salary_structure( + "Test Salary Structure Additional Salary", + "Monthly", + employee=emp_id, + from_date=add_days(date, -50), + ) + get_additional_salary(emp_id, overwrite_salary_structure=1) + additional_salary_doc = frappe.get_doc( + { + "doctype": "Additional Salary", + "employee": emp_id, + "salary_component": "Recurring Salary Component", + "payroll_date": date, + "amount": 5000, + "overwrite_salary_structure_amount": 1, + } + ) + with self.assertRaises(frappe.ValidationError): + additional_salary_doc.save() + + +def get_additional_salary( + emp_id, recurring=True, payroll_date=None, salary_component=None, overwrite_salary_structure=0 +): + create_salary_component("Recurring Salary Component") + add_sal = frappe.new_doc("Additional Salary") + add_sal.employee = emp_id + add_sal.salary_component = salary_component or "Recurring Salary Component" + + add_sal.is_recurring = 1 if recurring else 0 + add_sal.from_date = add_days(nowdate(), -50) + add_sal.to_date = add_days(nowdate(), 180) + add_sal.payroll_date = payroll_date + add_sal.overwrite_salary_structure_amount = overwrite_salary_structure + + add_sal.amount = 5000 + add_sal.currency = erpnext.get_default_currency() + add_sal.save() + add_sal.submit() + + return add_sal diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/arrear.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/arrear.js new file mode 100644 index 000000000..6450167a1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/arrear.js @@ -0,0 +1,47 @@ +// Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Arrear", { + setup(frm) { + const companyFilter = () => + frm.doc.company ? { filters: { company: frm.doc.company } } : {}; + frm.set_query("employee", () => companyFilter()); + frm.set_query("payroll_period", () => companyFilter()); + frm.set_query("salary_structure", () => companyFilter()); + }, + + employee: (frm) => { + if (frm.doc.employee) { + frm.trigger("get_employee_currency"); + frm.trigger("set_company"); + } else { + frm.set_value("company", null); + } + }, + + get_employee_currency: (frm) => { + frappe.call({ + method: "hrms.payroll.doctype.salary_structure_assignment.salary_structure_assignment.get_employee_currency", + args: { + employee: frm.doc.employee, + }, + callback: (r) => { + if (r.message) { + frm.set_value("currency", r.message); + } + }, + }); + }, + + set_company: (frm) => { + if (frm.doc.employee) { + return frappe.db + .get_value("Employee", frm.doc.employee, "company") + .then(({ message }) => { + if (message?.company) { + frm.set_value("company", message.company); + } + }); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/arrear.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/arrear.json new file mode 100644 index 000000000..a2e44a72d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/arrear.json @@ -0,0 +1,191 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "format:{Arrear}/{employee}/{#####}", + "creation": "2025-09-15 16:08:13.216474", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "salary_structure", + "arrear_start_date", + "column_break_itzd", + "company", + "currency", + "payroll_period", + "payroll_date", + "arrears_tab", + "section_break_zegb", + "earning_arrears", + "deduction_arrears", + "accrual_arrears", + "section_break_ubws", + "amended_from" + ], + "fields": [ + { + "fieldname": "section_break_ubws", + "fieldtype": "Section Break" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Arrear", + "print_hide": 1, + "read_only": 1, + "search_index": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fieldname": "column_break_itzd", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "depends_on": "eval:doc.employee;", + "fieldname": "payroll_period", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Payroll Period", + "options": "Payroll Period", + "reqd": 1 + }, + { + "depends_on": "eval:doc.salary_structure", + "fieldname": "payroll_date", + "fieldtype": "Date", + "label": "Payroll Date", + "reqd": 1 + }, + { + "depends_on": "eval:doc.salary_structure;", + "description": " Salary slips starting on or after this date will be considered for arrear calculations", + "fieldname": "arrear_start_date", + "fieldtype": "Date", + "label": "Arrear Start Date", + "reqd": 1 + }, + { + "depends_on": "eval:doc.payroll_period;", + "fieldname": "salary_structure", + "fieldtype": "Link", + "label": "Salary Structure", + "options": "Salary Structure", + "reqd": 1 + }, + { + "depends_on": "eval:doc.employee;", + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "section_break_zegb", + "fieldtype": "Section Break" + }, + { + "depends_on": "earning_arrears", + "fieldname": "earning_arrears", + "fieldtype": "Table", + "label": "Earning Arrears", + "options": "Payroll Correction Child" + }, + { + "depends_on": "deduction_arrears", + "fieldname": "deduction_arrears", + "fieldtype": "Table", + "label": "Deduction Arrears", + "options": "Payroll Correction Child" + }, + { + "depends_on": "accrual_arrears", + "fieldname": "accrual_arrears", + "fieldtype": "Table", + "label": "Accrual Arrears", + "options": "Payroll Correction Child" + }, + { + "fieldname": "arrears_tab", + "fieldtype": "Tab Break", + "label": "Arrears" + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [ + { + "link_doctype": "Additional Salary", + "link_fieldname": "ref_docname" + } + ], + "modified": "2025-09-23 12:19:23.661340", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Arrear", + "naming_rule": "Expression", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name" +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/arrear.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/arrear.py new file mode 100644 index 000000000..75fc005ee --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/arrear.py @@ -0,0 +1,455 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.query_builder.functions import Sum +from frappe.utils import getdate + +from hrms.payroll.doctype.employee_benefit_ledger.employee_benefit_ledger import ( + delete_employee_benefit_ledger_entry, +) +from hrms.payroll.doctype.salary_structure.salary_structure import make_salary_slip + + +class Arrear(Document): + @property + def payroll_period_details(self): + if not hasattr(self, "__payroll_period_details"): + self.__payroll_period_details = frappe.get_doc("Payroll Period", self.payroll_period) + return self.__payroll_period_details + + def validate(self): + self.validate_dates() + self.validate_salary_structure_assignment() + self.validate_duplicate_doc() + self.calculate_salary_structure_arrears() + + def on_submit(self): + self.validate_arrear_details() + self.create_additional_salary() + self.create_benefit_ledger_entry() + + def on_cancel(self): + delete_employee_benefit_ledger_entry("reference_document", self.name) + + def validate_dates(self): + if self.arrear_start_date and self.payroll_period: + if getdate(self.arrear_start_date) < self.payroll_period_details.start_date: + frappe.throw( + _("From Date {0} cannot be before Payroll Period start date {1}").format( + self.arrear_start_date, self.payroll_period_details.start_date + ) + ) + elif getdate(self.arrear_start_date) > (self.payroll_period_details.end_date): + frappe.throw( + _("From Date {0} cannot be after Payroll Period end date {1}").format( + self.arrear_start_date, self.payroll_period_details.end_date + ) + ) + + def validate_salary_structure_assignment(self): + # Validate salary structure assignment exists for the employee and salary structure + if not (self.employee and self.salary_structure and self.payroll_period): + return + + assignment = frappe.db.get_value( + "Salary Structure Assignment", + { + "employee": self.employee, + "salary_structure": self.salary_structure, + "docstatus": 1, + "from_date": (">=", self.arrear_start_date), + }, + ["name", "from_date"], + as_dict=True, + ) + + if not assignment: + frappe.throw( + _( + "No active Salary Structure Assignment found for employee {0} with salary structure {1} on or after arrear start date {2}" # TODO: make error message better + ).format( + frappe.bold(self.employee), + frappe.bold(self.salary_structure), + frappe.bold(self.arrear_start_date) or "", + ) + ) + + def validate_duplicate_doc(self): + if frappe.db.exists( + "Arrear", + { + "employee": self.employee, + "salary_structure": self.salary_structure, + "payroll_period": self.payroll_period, + "docstatus": 1, + "name": ["!=", self.name], + }, + ): + frappe.throw( + _( + "An Arrear document already exists for employee {0} with salary structure {1} in payroll period {2}" + ).format( + frappe.bold(self.employee), + frappe.bold(self.salary_structure), + frappe.bold(self.payroll_period), + ) + ) + + def calculate_salary_structure_arrears(self): + # calculate arrear amounts for each component across processed salary slips and populate child tables + existing_salary_slips = self.get_existing_salary_slips() + salary_slip_names = [slip.get("name") for slip in existing_salary_slips] + + # Existing components from processed slips + existing_components = self.fetch_existing_salary_components(salary_slip_names) + # Preview components using the new salary structure + new_structure_components = self.generate_preview_components(existing_salary_slips) + + component_differences = self.compute_component_differences( + existing_components, new_structure_components + ) + + if component_differences: + self.populate_arrear_tables(component_differences) + + def get_existing_salary_slips(self): + salary_slips = [] + + if self.employee and self.arrear_start_date: + filters = { + "employee": self.employee, + "docstatus": 1, + "start_date": (">=", self.arrear_start_date), + } + + salary_slips = frappe.get_all( + "Salary Slip", + filters=filters, + fields=["name", "posting_date", "start_date", "end_date"], + order_by="start_date", + ) + if not salary_slips: + frappe.throw( + _("No salary slips found for the selected employee from {0}").format(self.arrear_start_date) + ) + + return salary_slips + + def fetch_existing_salary_components(self, salary_slips: list): + """Fetch salary components and amounts from existing salary slips with arrear_component enabled. + Returns a dict: {"earnings": {component: total}, "deductions": {component: total}, "accruals": {component: total}} + """ + SalarySlipDetail = frappe.qb.DocType("Salary Detail") + SalaryComponent = frappe.qb.DocType("Salary Component") + + slip_details = ( + frappe.qb.from_(SalarySlipDetail) + .join(SalaryComponent) + .on(SalarySlipDetail.salary_component == SalaryComponent.name) + .select( + SalarySlipDetail.parentfield, + SalarySlipDetail.salary_component, + SalarySlipDetail.amount, + ) + .where( + (SalarySlipDetail.parent.isin(salary_slips)) + & (SalarySlipDetail.additional_salary.isnull()) + & (SalarySlipDetail.variable_based_on_taxable_salary == 0) + & (SalaryComponent.arrear_component == 1) + ) + ).run(as_dict=True) + + earnings_totals = {} + deductions_totals = {} + + # Sum amounts per component grouped by parentfield + for detail in slip_details: + comp = detail.salary_component + amt = detail.amount + parentfield = detail.parentfield + if parentfield == "earnings": + earnings_totals[comp] = earnings_totals.get(comp, 0.0) + amt + elif parentfield == "deductions": + deductions_totals[comp] = deductions_totals.get(comp, 0.0) + amt + + accrual_totals = self.fetch_existing_accrual_components(salary_slips) + + # Fetch and include existing Payroll Correction amounts for these salary slips + payroll_correction_totals = self.fetch_existing_payroll_corrections(salary_slips) + + # Add payroll correction amounts to existing component totals + for component, amount in payroll_correction_totals.get("earnings", {}).items(): + earnings_totals[component] = earnings_totals.get(component, 0.0) + amount + + for component, amount in payroll_correction_totals.get("deductions", {}).items(): + deductions_totals[component] = deductions_totals.get(component, 0.0) + amount + + for component, amount in payroll_correction_totals.get("accruals", {}).items(): + accrual_totals[component] = accrual_totals.get(component, 0.0) + amount + + if not (earnings_totals or deductions_totals or accrual_totals): + frappe.throw(_("No arrear components found in the existing salary slips.")) + + return {"earnings": earnings_totals, "deductions": deductions_totals, "accruals": accrual_totals} + + def fetch_existing_accrual_components(self, salary_slips: list): + """Fetch accrual components from existing salary slips with arrear_component enabled.""" + if not salary_slips: + return {} + + AccruedBenefit = frappe.qb.DocType("Employee Benefit Detail") + SalaryComponent = frappe.qb.DocType("Salary Component") + + accrual_details = ( + frappe.qb.from_(AccruedBenefit) + .inner_join(SalaryComponent) + .on(AccruedBenefit.salary_component == SalaryComponent.name) + .select( + AccruedBenefit.salary_component, + AccruedBenefit.amount, + ) + .where((AccruedBenefit.parent.isin(salary_slips)) & (SalaryComponent.arrear_component == 1)) + ).run(as_dict=True) + + accrual_totals = {} + for detail in accrual_details: + comp = detail.get("salary_component") + amt = detail.get("amount", 0.0) + accrual_totals[comp] = accrual_totals.get(comp, 0.0) + amt + + return accrual_totals + + def fetch_existing_payroll_corrections(self, salary_slips: list): + # fetch payroll correction amounts for existing salary slips with arrear_component enabled. + if not salary_slips: + return {"earnings": {}, "deductions": {}, "accruals": {}} + + PayrollCorrection = frappe.qb.DocType("Payroll Correction") + PCChild = frappe.qb.DocType("Payroll Correction Child") + SalaryComponent = frappe.qb.DocType("Salary Component") + + corrections = ( + frappe.qb.from_(PayrollCorrection) + .join(PCChild) + .on(PayrollCorrection.name == PCChild.parent) + .join(SalaryComponent) + .on(PCChild.salary_component == SalaryComponent.name) + .select( + PCChild.parentfield, + PCChild.salary_component, + PCChild.amount, + ) + .where( + (PayrollCorrection.salary_slip_reference.isin(salary_slips)) + & (PayrollCorrection.docstatus == 1) + & (SalaryComponent.arrear_component == 1) + ) + ).run(as_dict=True) + + earnings_totals = {} + deductions_totals = {} + accrual_totals = {} + + # Sum corrections per component grouped by parentfield + for detail in corrections: + comp = detail.salary_component + amt = detail.amount or 0.0 + parentfield = detail.parentfield + + if parentfield == "earning_arrears": + earnings_totals[comp] = earnings_totals.get(comp, 0.0) + amt + elif parentfield == "deduction_arrears": + deductions_totals[comp] = deductions_totals.get(comp, 0.0) + amt + elif parentfield == "accrual_arrears": + accrual_totals[comp] = accrual_totals.get(comp, 0.0) + amt + + return {"earnings": earnings_totals, "deductions": deductions_totals, "accruals": accrual_totals} + + def generate_preview_components(self, salary_slips: list): + # Generate preview salary slip with new salary structure and return component and amounts. + if not salary_slips: + return {} + + preview_earnings = {} + preview_deductions = {} + preview_accruals = {} + + def is_arrear_component(component): + return frappe.get_cached_value("Salary Component", component, "arrear_component") + + for slip in salary_slips: + # Build a preview salary slip doc + salary_slip_doc = frappe.get_doc( + { + "doctype": "Salary Slip", + "employee": self.employee, + "salary_structure": self.salary_structure, + "posting_date": slip.get("posting_date"), + "start_date": slip.get("start_date"), + "end_date": slip.get("end_date"), + } + ) + + # check if any Payroll Corrections exist for this slip and sum days_to_reverse to get actual payment days for when previewing salary slip for new structure + PayrollCorrection = frappe.qb.DocType("Payroll Correction") + total_days_to_reverse = ( + frappe.qb.from_(PayrollCorrection) + .select(Sum(PayrollCorrection.days_to_reverse).as_("total_days")) + .where( + (PayrollCorrection.salary_slip_reference == slip.name) + & (PayrollCorrection.docstatus == 1) + ) + ).run(pluck=True) + total_days_to_reverse = total_days_to_reverse[0] or 0.0 + + preview_slip = make_salary_slip( + self.salary_structure, + salary_slip_doc, + self.employee, + lwp_days_corrected=total_days_to_reverse, + ) + + # earnings + for row in preview_slip.get("earnings", []) or []: + if (not getattr(row, "additional_salary", None)) and is_arrear_component( + row.salary_component + ): + preview_earnings[row.salary_component] = preview_earnings.get( + row.salary_component, 0.0 + ) + getattr(row, "amount", 0.0) + + # deductions + for row in preview_slip.get("deductions", []) or []: + if ( + not getattr(row, "additional_salary", None) + and not getattr(row, "variable_based_on_taxable_salary", False) + and is_arrear_component(row.salary_component) + ): + preview_deductions[row.salary_component] = preview_deductions.get( + row.salary_component, 0.0 + ) + getattr(row, "amount", 0.0) + + # accruals + for row in getattr(preview_slip, "accrued_benefits", []) or []: + if is_arrear_component(row.salary_component): + preview_accruals[row.salary_component] = preview_accruals.get( + row.salary_component, 0.0 + ) + getattr(row, "amount", 0.0) + + return {"earnings": preview_earnings, "deductions": preview_deductions, "accruals": preview_accruals} + + def compute_component_differences(self, existing_components: dict, new_components: dict): + """Calculate component differences between existing and preview salary slips. + existing_components and new_components params are dicts with keys 'earnings','deductions','accruals' + """ + if not existing_components: + existing_components = {"earnings": {}, "deductions": {}, "accruals": {}} + if not new_components: + new_components = {"earnings": {}, "deductions": {}, "accruals": {}} + + earnings_diff = {} + deductions_diff = {} + accruals_diff = {} + + # earnings + for comp, amount in new_components.get("earnings", {}).items(): + existing_amount = existing_components.get("earnings", {}).get(comp, 0.0) + diff = amount - existing_amount + if diff > 0: + earnings_diff[comp] = diff + + # deductions + for comp, amount in new_components.get("deductions", {}).items(): + existing_amount = existing_components.get("deductions", {}).get(comp, 0.0) + diff = amount - existing_amount + if diff > 0: + deductions_diff[comp] = diff + + # accruals + for comp, amount in new_components.get("accruals", {}).items(): + existing_amount = existing_components.get("accruals", {}).get(comp, 0.0) + diff = amount - existing_amount + if diff > 0: + accruals_diff[comp] = diff + + result = {} + if earnings_diff or deductions_diff or accruals_diff: + result = {"earnings": earnings_diff, "deductions": deductions_diff, "accruals": accruals_diff} + + if not result: + frappe.throw( + _("There are no arrear differences between existing and new salary structure components.") + ) + + return result + + def populate_arrear_tables(self, component_differences: dict): + # populate arrear amounts into child tables on this doc + self.set("earning_arrears", []) + self.set("deduction_arrears", []) + self.set("accrual_arrears", []) + + for comp, total_amount in component_differences.get("earnings", {}).items(): + self.append("earning_arrears", {"salary_component": comp, "amount": total_amount}) + + for comp, total_amount in component_differences.get("deductions", {}).items(): + self.append("deduction_arrears", {"salary_component": comp, "amount": total_amount}) + + for comp, total_amount in component_differences.get("accruals", {}).items(): + self.append("accrual_arrears", {"salary_component": comp, "amount": total_amount}) + + def validate_arrear_details(self): + # Ensure that there are arrear details to process + if not (self.earning_arrears or self.deduction_arrears or self.accrual_arrears): + frappe.throw(_("No arrear details found")) + + def create_additional_salary(self): + for component in (self.earning_arrears or []) + (self.deduction_arrears or []): + if not component.salary_component or not component.amount: + continue + + additional_salary = frappe.get_doc( + { + "doctype": "Additional Salary", + "employee": self.employee, + "company": self.company, + "payroll_date": self.payroll_date, + "salary_component": component.salary_component, + "currency": self.currency, + "amount": component.amount, + "ref_doctype": "Arrear", + "ref_docname": self.name, + "overwrite_salary_structure_amount": 0, + } + ) + additional_salary.insert() + additional_salary.submit() + + def create_benefit_ledger_entry(self): + for component in self.accrual_arrears or []: + if not component.salary_component or not component.amount: + continue + + is_flexible_benefit = frappe.db.get_value( + "Salary Component", component.salary_component, "is_flexible_benefit" + ) + + frappe.get_doc( + { + "doctype": "Employee Benefit Ledger", + "employee": self.employee, + "employee_name": self.employee_name, + "company": self.company, + "payroll_period": self.payroll_period, + "salary_component": component.salary_component, + "transaction_type": "Accrual", + "amount": component.amount, + "reference_doctype": "Arrear", + "reference_document": self.name, + "remarks": "Accrual via Arrears", + "flexible_benefit": is_flexible_benefit, + } + ).insert() diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/test_arrear.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/test_arrear.py new file mode 100644 index 000000000..866cc35f4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/arrear/test_arrear.py @@ -0,0 +1,195 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt +import calendar + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, add_months, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.payroll.doctype.salary_slip.test_salary_slip import ( + make_payroll_period, +) +from hrms.payroll.doctype.salary_structure.salary_structure import ( + make_salary_slip, +) +from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + +class TestArrear(IntegrationTestCase): + def test_arrear_calculation(self): + # Test arrear calculation when new salary structure is applied retroactively later in the payroll period after salary slip creation + # Include the case where payroll correction exists for LWP reversal for already processed salary slip + + emp = make_employee( + "test_salary_structure_arrear@salary.com", + company="_Test Company", + date_of_joining="2021-01-01", + ) + make_payroll_period() + current_payroll_period = frappe.get_last_doc("Payroll Period", filters={"company": "_Test Company"}) + + # Create initial salary structure with lower salary + old_salary_structure = make_salary_structure( + "Test Old Salary Structure", + "Monthly", + company="_Test Company", + employee=emp, + payroll_period=current_payroll_period, + test_arrear=True, + base=50000, # Lower base salary + ) + + # Create new payroll period for next year + next_year_start = add_days(current_payroll_period.end_date, 1) + next_year_end = add_months(current_payroll_period.end_date, 1) + + new_payroll_period = frappe.get_doc( + { + "doctype": "Payroll Period", + "name": f"Test Payroll Period {getdate(next_year_start).year}", + "company": "_Test Company", + "start_date": next_year_start, + "end_date": next_year_end, + } + ) + new_payroll_period.insert() + + frappe.db.set_single_value("Payroll Settings", "payroll_based_on", "Leave") + leave_application = frappe.get_doc( + { + "doctype": "Leave Application", + "employee": emp, + "leave_type": "Leave Without Pay", + "from_date": new_payroll_period.start_date, + "to_date": new_payroll_period.start_date, + "company": "_Test Company", + "status": "Approved", + "leave_approver": "test@example.com", + } + ).insert() + leave_application.submit() + + # Create and submit salary slip for first month of new payroll period with old structure + first_month_slip = make_salary_slip( + old_salary_structure.name, employee=emp, posting_date=next_year_start + ) + first_month_slip.save() + first_month_slip.submit() + + # payroll correction to reverse LWP for the month + payroll_correction_doc = frappe.get_doc( + { + "doctype": "Payroll Correction", + "employee": emp, + "payroll_period": new_payroll_period.name, + "payroll_date": add_days(new_payroll_period.start_date, 32), # next month + "company": "_Test Company", + "days_to_reverse": 1, + "month_for_lwp_reversal": calendar.month_name[new_payroll_period.start_date.month], + "salary_slip_reference": first_month_slip.name, + "working_days": first_month_slip.total_working_days, + "payment_days": first_month_slip.payment_days, + "lwp_days": first_month_slip.total_working_days - first_month_slip.payment_days, + } + ).save() + payroll_correction_doc.submit() + + # Create new salary structure with higher salary for same employee + new_salary_structure = make_salary_structure( + "Test New Arrear Salary Structure", + "Monthly", + employee=emp, + from_date=next_year_start, + company="_Test Company", + payroll_period=new_payroll_period, + base=75000, # Higher base salary + test_arrear=True, + test_accrual_component=True, + test_salary_structure_arrear=True, + ) + + previous_structure_arrear_components = { + "earnings": {"Basic Salary": 50000, "Special Allowance": 25000}, + "deductions": {"Professional Tax": 200}, + } + + current_structure_arrear_components = { + "earnings": {"Basic Salary": 75000, "Special Allowance": 37500}, + "deductions": {"Professional Tax": 300}, + "accruals": {"Accrued Earnings": 1000}, + } + + arrear_doc = frappe.get_doc( + { + "doctype": "Arrear", + "employee": emp, + "payroll_period": new_payroll_period.name, + "salary_structure": new_salary_structure.name, + "arrear_start_date": next_year_start, + "payroll_date": add_months(next_year_start, 2), # next month + "company": "_Test Company", + } + ) + arrear_doc.save() + + earning_arrears = {row.salary_component: row.amount for row in arrear_doc.earning_arrears} + deduction_arrears = {row.salary_component: row.amount for row in arrear_doc.deduction_arrears} + accrual_arrears = {row.salary_component: row.amount for row in arrear_doc.accrual_arrears} + + # Earnings differences + for comp, new_amt in current_structure_arrear_components["earnings"].items(): + old_amt = previous_structure_arrear_components["earnings"].get(comp, 0) + diff = new_amt - old_amt + self.assertIn(comp, earning_arrears) + self.assertEqual( + earning_arrears[comp], + diff, + ) + + # Deductions differences + for comp, new_amt in current_structure_arrear_components["deductions"].items(): + old_amt = previous_structure_arrear_components["deductions"].get(comp, 0) + diff = new_amt - old_amt + self.assertIn(comp, deduction_arrears) + self.assertEqual( + deduction_arrears[comp], + diff, + ) + # Accrual differences (new only, no previous) + for comp, new_amt in current_structure_arrear_components["accruals"].items(): + old_amt = previous_structure_arrear_components["earnings"].get(comp, 0) + diff = new_amt - old_amt + self.assertIn(comp, accrual_arrears) + self.assertEqual( + accrual_arrears[comp], + diff, + ) + + arrear_doc.submit() + + # Validate additional salary creation + additional_salary_entries = frappe.get_all( + "Additional Salary", + filters={"ref_docname": arrear_doc.name, "employee": emp}, + fields=["salary_component", "type"], + ) + self.assertTrue(additional_salary_entries, "Additional salary entries should be created") + earning_components = [ + e["salary_component"] for e in additional_salary_entries if e["type"] == "Earning" + ] + self.assertIn("Basic Salary", earning_components) + self.assertIn("Special Allowance", earning_components) + + # Validate benefit ledger creation + benefit_entries = frappe.get_all( + "Employee Benefit Ledger", + filters={"reference_document": arrear_doc.name, "employee": emp}, + fields=["salary_component"], + ) + if benefit_entries: + accrual_components = [e["salary_component"] for e in benefit_entries] + self.assertIn("Accrued Earnings", accrual_components) + + frappe.db.rollback() diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js new file mode 100644 index 000000000..ea55b8d1a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.js @@ -0,0 +1,301 @@ +// Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Bulk Salary Structure Assignment", { + setup(frm) { + frm.trigger("set_queries"); + hrms.setup_employee_filter_group(frm); + }, + + async refresh(frm) { + frm.page.clear_indicator(); + frm.disable_save(); + frm.trigger("set_primary_action"); + await frm.trigger("set_payroll_payable_account"); + frm.trigger("get_employees"); + hrms.handle_realtime_bulk_action_notification( + frm, + "completed_bulk_salary_structure_assignment", + "Salary Structure Assignment", + ); + }, + + from_date(frm) { + frm.trigger("get_employees"); + }, + + async company(frm) { + await frm.trigger("set_payroll_payable_account"); + frm.trigger("get_employees"); + }, + + branch(frm) { + frm.trigger("get_employees"); + }, + + department(frm) { + frm.trigger("get_employees"); + }, + + employment_type(frm) { + frm.trigger("get_employees"); + }, + + designation(frm) { + frm.trigger("get_employees"); + }, + + grade(frm) { + frm.trigger("get_employees"); + }, + + set_primary_action(frm) { + frm.page.set_primary_action(__("Assign Structure"), () => { + frm.trigger("assign_structure"); + }); + }, + + set_queries(frm) { + frm.set_query("salary_structure", function () { + return { + filters: { + company: frm.doc.company, + is_active: "Yes", + docstatus: 1, + }, + }; + }); + frm.set_query("income_tax_slab", function () { + return { + filters: { + company: frm.doc.company, + disabled: 0, + docstatus: 1, + currency: frm.doc.currency, + }, + }; + }); + frm.set_query("payroll_payable_account", function () { + const company_currency = erpnext.get_currency(frm.doc.company); + return { + filters: { + company: frm.doc.company, + root_type: "Liability", + is_group: 0, + account_currency: ["in", [frm.doc.currency, company_currency]], + }, + }; + }); + }, + + set_payroll_payable_account(frm) { + frappe.db.get_value("Company", frm.doc.company, "default_payroll_payable_account", (r) => { + frm.set_value("payroll_payable_account", r.default_payroll_payable_account); + }); + }, + + get_employees(frm) { + if (!frm.doc.from_date) return frm.events.render_employees_datatable(frm, []); + + frm.call({ + method: "get_employees", + args: { + advanced_filters: frm.advanced_filters || [], + }, + doc: frm.doc, + }).then((r) => frm.events.render_employees_datatable(frm, r.message)); + }, + + render_employees_datatable(frm, employees) { + frm.checked_rows_indexes = []; + + const columns = frm.events.get_employees_datatable_columns(); + const no_data_message = __( + frm.doc.from_date + ? "There are no employees without a Salary Structure Assignment on this date based on the given filters." + : "Please select From Date.", + ); + const get_editor = (colIndex, rowIndex, value, parent, column) => { + if (!["base", "variable"].includes(column.name)) return; + const $input = document.createElement("input"); + $input.className = "dt-input h-100"; + $input.type = "number"; + $input.min = 0; + parent.appendChild($input); + return { + initValue(value) { + $input.focus(); + $input.value = value; + }, + setValue(value) { + $input.value = value; + }, + getValue() { + return Number($input.value); + }, + }; + }; + const events = { + onCheckRow() { + frm.trigger("handle_row_check"); + }, + }; + + hrms.render_employees_datatable( + frm, + columns, + employees, + no_data_message, + get_editor, + events, + ); + }, + + get_employees_datatable_columns() { + return [ + { + name: "employee", + id: "employee", + content: __("Employee"), + editable: false, + focusable: false, + }, + { + name: "employee_name", + id: "employee_name", + content: __("Name"), + editable: false, + focusable: false, + }, + { + name: "grade", + id: "grade", + content: __("Grade"), + editable: false, + focusable: false, + }, + { + name: "base", + id: "base", + content: __("Base"), + }, + { + name: "variable", + id: "variable", + content: __("Variable"), + }, + ].map((x) => ({ + ...x, + dropdown: false, + align: "left", + })); + }, + + render_update_button(frm) { + ["Base", "Variable"].forEach((d) => + frm.add_custom_button( + __(d), + function () { + const dialog = new frappe.ui.Dialog({ + title: __("Set {0} for selected employees", [__(d)]), + fields: [ + { + label: __(d), + fieldname: d, + fieldtype: "Currency", + }, + ], + primary_action_label: __("Update"), + primary_action(values) { + const col_idx = frm.employees_datatable.datamanager.columns.find( + (col) => col.id === d.toLowerCase(), + ).colIndex; + frm.checked_rows_indexes.forEach((row_idx) => { + frm.employees_datatable.cellmanager.updateCell( + col_idx, + row_idx, + values[d], + true, + ); + }); + dialog.hide(); + }, + }); + dialog.show(); + }, + __("Update"), + ), + ); + frm.update_button_rendered = true; + }, + + handle_row_check(frm) { + frm.checked_rows_indexes = frm.employees_datatable.rowmanager.getCheckedRows(); + if (!frm.checked_rows_indexes.length && frm.update_button_rendered) { + ["Base", "Variable"].forEach((d) => frm.remove_custom_button(__(d), __("Update"))); + frm.update_button_rendered = false; + } else if (frm.checked_rows_indexes.length && !frm.update_button_rendered) + frm.trigger("render_update_button"); + }, + + assign_structure(frm) { + const rows = frm.employees_datatable.getRows(); + const checked_rows_content = []; + const employees_with_base_zero = []; + + frm.checked_rows_indexes.forEach((idx) => { + const row_content = {}; + rows[idx].forEach((cell) => { + if (["employee", "base", "variable"].includes(cell.column.name)) + row_content[cell.column.name] = cell.content; + }); + checked_rows_content.push(row_content); + if (!row_content["base"]) + employees_with_base_zero.push(`${row_content["employee"]}`); + }); + + hrms.validate_mandatory_fields(frm, checked_rows_content); + if (employees_with_base_zero.length) + return frm.events.validate_base_zero( + frm, + employees_with_base_zero, + checked_rows_content, + ); + + return frm.events.show_confirm_dialog(frm, checked_rows_content); + }, + + validate_base_zero(frm, employees_with_base_zero, checked_rows_content) { + frappe.warn( + __("Are you sure you want to proceed?"), + __("Base amount has not been set for the following employee(s): {0}", [ + employees_with_base_zero.join(", "), + ]), + () => { + frm.events.show_confirm_dialog(frm, checked_rows_content); + }, + __("Continue"), + ); + }, + + show_confirm_dialog(frm, checked_rows_content) { + frappe.confirm( + __("Assign Salary Structure to {0} employee(s)?", [checked_rows_content.length]), + () => { + frm.events.bulk_assign_structure(frm, checked_rows_content); + }, + ); + }, + + bulk_assign_structure(frm, employees) { + frm.call({ + method: "bulk_assign_structure", + doc: frm.doc, + args: { + employees: employees, + }, + freeze: true, + freeze_message: __("Assigning Salary Structure"), + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json new file mode 100644 index 000000000..a0abf3760 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.json @@ -0,0 +1,169 @@ +{ + "actions": [], + "allow_copy": 1, + "creation": "2024-01-25 12:52:26.250137", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "set_assignment_details_section", + "salary_structure", + "from_date", + "income_tax_slab", + "column_break_rsep", + "company", + "payroll_payable_account", + "currency", + "quick_filters_section", + "branch", + "department", + "designation", + "column_break_jcpq", + "grade", + "employment_type", + "advanced_filters_section", + "filter_list", + "select_employees_section", + "employees_html" + ], + "fields": [ + { + "fieldname": "set_assignment_details_section", + "fieldtype": "Section Break", + "label": "Set Assignment Details" + }, + { + "fieldname": "salary_structure", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Salary Structure", + "options": "Salary Structure", + "reqd": 1 + }, + { + "fieldname": "from_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "From Date", + "reqd": 1 + }, + { + "depends_on": "salary_structure", + "fieldname": "income_tax_slab", + "fieldtype": "Link", + "label": "Income Tax Slab", + "options": "Income Tax Slab" + }, + { + "fieldname": "column_break_rsep", + "fieldtype": "Column Break" + }, + { + "fetch_from": ".default_payroll_payable_account", + "fieldname": "payroll_payable_account", + "fieldtype": "Link", + "label": "Payroll Payable Account", + "options": "Account" + }, + { + "fieldname": "branch", + "fieldtype": "Link", + "label": "Branch", + "options": "Branch" + }, + { + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department" + }, + { + "fieldname": "column_break_jcpq", + "fieldtype": "Column Break" + }, + { + "fieldname": "designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation" + }, + { + "collapsible": 1, + "fieldname": "advanced_filters_section", + "fieldtype": "Section Break", + "label": "Advanced Filters" + }, + { + "fieldname": "filter_list", + "fieldtype": "HTML", + "label": "Filter List" + }, + { + "fieldname": "select_employees_section", + "fieldtype": "Section Break", + "label": "Select Employees" + }, + { + "fieldname": "employees_html", + "fieldtype": "HTML", + "label": "Employees HTML" + }, + { + "fetch_from": "salary_structure.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "employment_type", + "fieldtype": "Link", + "label": "Employment Type", + "options": "Employment Type" + }, + { + "fieldname": "grade", + "fieldtype": "Link", + "label": "Employee Grade", + "options": "Employee Grade" + }, + { + "collapsible": 1, + "fieldname": "quick_filters_section", + "fieldtype": "Section Break", + "label": "Quick Filters" + }, + { + "depends_on": "salary_structure", + "fetch_from": "salary_structure.currency", + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "read_only": 1 + } + ], + "hide_toolbar": 1, + "issingle": 1, + "links": [], + "modified": "2025-01-13 13:48:46.095481", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Bulk Salary Structure Assignment", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "email": 1, + "print": 1, + "read": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py new file mode 100644 index 000000000..67d34027a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/bulk_salary_structure_assignment.py @@ -0,0 +1,120 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.query_builder.custom import ConstantColumn +from frappe.query_builder.functions import Coalesce +from frappe.query_builder.terms import SubQuery +from frappe.utils import get_link_to_form + +from hrms.hr.utils import validate_bulk_tool_fields +from hrms.payroll.doctype.salary_structure.salary_structure import ( + create_salary_structure_assignment, +) + + +class BulkSalaryStructureAssignment(Document): + @frappe.whitelist() + def get_employees(self, advanced_filters: list) -> list: + quick_filter_fields = [ + "company", + "employment_type", + "branch", + "department", + "designation", + "grade", + ] + filters = [[d, "=", self.get(d)] for d in quick_filter_fields if self.get(d)] + filters += advanced_filters + + Assignment = frappe.qb.DocType("Salary Structure Assignment") + employees_with_assignments = SubQuery( + frappe.qb.from_(Assignment) + .select(Assignment.employee) + .distinct() + .where((Assignment.from_date == self.from_date) & (Assignment.docstatus == 1)) + ) + + Employee = frappe.qb.DocType("Employee") + Grade = frappe.qb.DocType("Employee Grade") + query = ( + frappe.qb.get_query( + Employee, + fields=[Employee.employee, Employee.employee_name, Employee.grade], + filters=filters, + ) + .where( + (Employee.status == "Active") + & (Employee.date_of_joining <= self.from_date) + & ((Employee.relieving_date > self.from_date) | (Employee.relieving_date.isnull())) + & (Employee.employee.notin(employees_with_assignments)) + ) + .left_join(Grade) + .on(Employee.grade == Grade.name) + .select( + Coalesce(Grade.default_base_pay, 0).as_("base"), + ConstantColumn(0).as_("variable"), + ) + ) + return query.run(as_dict=True) + + @frappe.whitelist() + def bulk_assign_structure(self, employees: list) -> None: + mandatory_fields = ["salary_structure", "from_date", "company"] + validate_bulk_tool_fields(self, mandatory_fields, employees) + + if len(employees) <= 30: + return self._bulk_assign_structure(employees) + + frappe.enqueue(self._bulk_assign_structure, timeout=3000, employees=employees) + frappe.msgprint( + _("Creation of Salary Structure Assignments has been queued. It may take a few minutes."), + alert=True, + indicator="blue", + ) + + def _bulk_assign_structure(self, employees: list) -> None: + success, failure = [], [] + count = 0 + savepoint = "before_salary_assignment" + + for d in employees: + try: + frappe.db.savepoint(savepoint) + assignment = create_salary_structure_assignment( + employee=d["employee"], + salary_structure=self.salary_structure, + company=self.company, + currency=self.currency, + payroll_payable_account=self.payroll_payable_account, + from_date=self.from_date, + base=d["base"], + variable=d["variable"], + income_tax_slab=self.income_tax_slab, + ) + except Exception: + frappe.db.rollback(save_point=savepoint) + frappe.log_error( + f"Bulk Assignment - Salary Structure Assignment failed for employee {d['employee']}.", + reference_doctype="Salary Structure Assignment", + ) + failure.append(d["employee"]) + else: + success.append( + { + "doc": get_link_to_form("Salary Structure Assignment", assignment), + "employee": d["employee"], + } + ) + + count += 1 + frappe.publish_progress(count * 100 / len(employees), title=_("Assigning Structure...")) + + frappe.publish_realtime( + "completed_bulk_salary_structure_assignment", + message={"success": success, "failure": failure}, + doctype="Bulk Salary Structure Assignment", + after_commit=True, + ) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/test_bulk_salary_structure_assignment.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/test_bulk_salary_structure_assignment.py new file mode 100644 index 000000000..94e930723 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/bulk_salary_structure_assignment/test_bulk_salary_structure_assignment.py @@ -0,0 +1,103 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.payroll.doctype.bulk_salary_structure_assignment.bulk_salary_structure_assignment import ( + BulkSalaryStructureAssignment, +) +from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure +from hrms.tests.test_utils import create_company, create_department, create_employee_grade + + +class TestBulkSalaryStructureAssignment(IntegrationTestCase): + def setUp(self): + create_company() + self.department = create_department("Accounts") + self.grade = create_employee_grade("Test Grade") + + # employee grade with default base pay 50000 + self.emp1 = make_employee( + "employee1@bssa.com", company="_Test Company", department=self.department, grade=self.grade.name + ) + self.emp2 = make_employee("employee2@bssa.com", company="_Test Company", department=self.department) + self.emp3 = make_employee("employee3@bssa.com", company="_Test Company", department=self.department) + # no department + self.emp4 = make_employee("employee4@bssa.com", company="_Test Company") + # different domain in employee_name + self.emp5 = make_employee("employee5@test.com", company="_Test Company", department=self.department) + + def tearDown(self): + frappe.db.rollback() + + def test_get_employees(self): + today = getdate() + + # create structure and assign to emp2 + make_salary_structure("Salary Structure 1", "Monthly", self.emp2, today, company="_Test Company") + + args = { + "doctype": "Bulk Salary Structure Assignment", + "from_date": today, + "department": self.department, + } + bulk_assignment = BulkSalaryStructureAssignment(args) + + advanced_filters = [["Employee", "employee_name", "like", "%bssa%"]] + employees = bulk_assignment.get_employees(advanced_filters) + employee_names = [d.name for d in employees] + + # employee already having an assignment + self.assertNotIn(self.emp2, employee_names) + # department quick filter applied + self.assertNotIn(self.emp4, employee_names) + # employee_name advanced filter applied + self.assertNotIn(self.emp5, employee_names) + # employee grade default base pay fetched + self.assertEqual(employees[0].base, self.grade.default_base_pay) + # no employee grade + self.assertEqual(employees[1].base, 0) + self.assertEqual(len(employees), 2) + + def test_bulk_assign_structure(self): + today = getdate() + salary_structure = make_salary_structure("Salary Structure 1", "Monthly", company="_Test Company") + + args = { + "doctype": "Bulk Salary Structure Assignment", + "salary_structure": salary_structure.name, + "from_date": today, + "company": "_Test Company", + } + bulk_assignment = BulkSalaryStructureAssignment(args) + + employees = [ + {"employee": self.emp1, "base": 50000, "variable": 2000}, + {"employee": self.emp2, "base": 40000, "variable": 0}, + ] + bulk_assignment.bulk_assign_structure(employees) + + ssa1 = frappe.get_value( + "Salary Structure Assignment", + {"employee": self.emp1}, + ["salary_structure", "from_date", "company", "base", "variable"], + as_dict=1, + ) + self.assertEqual(ssa1.salary_structure, salary_structure.name) + self.assertEqual(ssa1.from_date, today) + self.assertEqual(ssa1.company, "_Test Company") + self.assertEqual(ssa1.base, 50000) + self.assertEqual(ssa1.variable, 2000) + + ssa2 = frappe.get_value( + "Salary Structure Assignment", + {"employee": self.emp2}, + ["base", "variable"], + as_dict=1, + ) + self.assertEqual(ssa2.base, 40000) + self.assertEqual(ssa2.variable, 0) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.js new file mode 100644 index 000000000..3a2e8cb2d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.js @@ -0,0 +1,50 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Benefit Application", { + employee: function (frm) { + if (frm.doc.employee) { + frappe.run_serially([() => frm.trigger("set_earning_component")]); + } + }, + + date: function (frm) { + frm.trigger("set_earning_component"); + }, + + set_earning_component: function (frm) { + if (!frm.doc.date || !frm.doc.employee) { + frm.doc.employee_benefits = []; + } else { + frm.call("set_benefit_components_and_currency"); + } + frm.refresh_fields(); + }, +}); + +frappe.ui.form.on("Employee Benefit Application Detail", { + amount: function (frm) { + calculate_all(frm.doc); + }, + employee_benefits_remove: function (frm) { + calculate_all(frm.doc); + }, +}); + +var calculate_all = function (doc) { + var tbl = doc.employee_benefits || []; + var total_amount = 0; + if (doc.max_benefits === 0) { + doc.employee_benefits = []; + } else { + for (var i = 0; i < tbl.length; i++) { + if (cint(tbl[i].amount) > 0) { + total_amount += flt(tbl[i].amount); + } + } + } + + doc.total_amount = total_amount; + doc.remaining_benefit = doc.max_benefits - total_amount; + refresh_many(["total_amount", "remaining_benefit"]); +}; diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json new file mode 100644 index 000000000..e287df412 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.json @@ -0,0 +1,230 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "HR-BEN-APP-.YY.-.MM.-.#####", + "creation": "2018-04-13 16:31:39.190787", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "department", + "column_break_2", + "date", + "payroll_period", + "company", + "amended_from", + "section_break_4", + "currency", + "column_break_11", + "max_benefits", + "column_break_13", + "remaining_benefit", + "section_break_15", + "employee_benefits", + "totals", + "total_amount", + "column_break" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fieldname": "max_benefits", + "fieldtype": "Currency", + "label": "Max Benefits (Yearly)", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "remaining_benefit", + "fieldtype": "Currency", + "label": "Remaining Benefits (Yearly)", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "default": "Today", + "fieldname": "date", + "fieldtype": "Date", + "label": "Date", + "reqd": 1 + }, + { + "fieldname": "payroll_period", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Payroll Period", + "options": "Payroll Period", + "reqd": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Employee Benefit Application", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "section_break_4", + "fieldtype": "Section Break", + "label": "Benefits" + }, + { + "fieldname": "employee_benefits", + "fieldtype": "Table", + "label": "Flexible Benefits", + "options": "Employee Benefit Application Detail", + "reqd": 1 + }, + { + "fieldname": "totals", + "fieldtype": "Section Break", + "label": "Totals" + }, + { + "fieldname": "total_amount", + "fieldtype": "Currency", + "label": "Total Amount", + "options": "currency", + "read_only": 1 + }, + { + "depends_on": "eval:(doc.docstatus==1 || doc.employee)", + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "read_only": 1, + "reqd": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "column_break", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_13", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_15", + "fieldtype": "Section Break" + }, + { + "fieldname": "column_break_11", + "fieldtype": "Column Break" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2025-09-17 20:01:52.362546", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Employee Benefit Application", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "row_format": "Dynamic", + "search_fields": "employee_name", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py new file mode 100644 index 000000000..0d55f45bb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/employee_benefit_application.py @@ -0,0 +1,93 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import cstr, flt, rounded + +from hrms.hr.utils import ( + validate_active_employee, +) +from hrms.payroll.doctype.employee_benefit_claim.employee_benefit_claim import get_salary_structure_assignment + + +class EmployeeBenefitApplication(Document): + def validate(self): + validate_active_employee(self.employee) + self.validate_duplicate_on_payroll_period() + if self.employee_benefits: + self.validate_max_benefit() + else: + frappe.throw(_("As per your assigned Salary Structure you cannot apply for benefits")) + + def validate_max_benefit(self): + total_benefit_amount = 0 + for benefit in self.employee_benefits: + if not benefit.amount or benefit.amount <= 0: + frappe.throw( + _("Benefit amount of component {0} should be greater than 0").format( + benefit.salary_component + ) + ) + elif benefit.amount > benefit.max_benefit_amount: + frappe.throw( + _("Benefit amount of component {0} exceeds {1}").format( + benefit.salary_component, benefit.max_benefit_amount + ) + ) + total_benefit_amount += flt(benefit.amount) + + if rounded(total_benefit_amount, 2) > self.max_benefits: + frappe.throw( + _("Sum of benefit amounts {0} exceeds maximum limit of {1}").format( + total_benefit_amount, self.max_benefits + ) + ) + + def validate_duplicate_on_payroll_period(self): + application = frappe.db.exists( + "Employee Benefit Application", + {"employee": self.employee, "payroll_period": self.payroll_period, "docstatus": 1}, + ) + if application: + frappe.throw( + _("Employee {0} already submitted an application {1} for the payroll period {2}").format( + self.employee, application, self.payroll_period + ) + ) + + @frappe.whitelist() + def set_benefit_components_and_currency(self): + # get employee benefits from salary structure assignment and populate the employee benefits table + self.employee_benefits = [] + salary_structure_assignment = get_salary_structure_assignment(self.employee, self.date) + + if not salary_structure_assignment: + frappe.throw( + _("No Salary Structure Assignment found for employee {0} on date {1}").format( + self.employee, cstr(self.date) + ) + ) + + EmployeeBenefitDetail = frappe.qb.DocType("Employee Benefit Detail") + employee_benefits = ( + frappe.qb.from_(EmployeeBenefitDetail) + .select(EmployeeBenefitDetail.salary_component, EmployeeBenefitDetail.amount) + .where(EmployeeBenefitDetail.parent == salary_structure_assignment) + .run(as_dict=True) + ) + + if employee_benefits: + max_benefits, currency = frappe.db.get_value( + "Salary Structure Assignment", salary_structure_assignment, ["max_benefits", "currency"] + ) + self.max_benefits = max_benefits + self.currency = currency + + for benefit in employee_benefits: + self.append( + "employee_benefits", + {"salary_component": benefit.salary_component, "max_benefit_amount": benefit.amount}, + ) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/test_employee_benefit_application.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/test_employee_benefit_application.py new file mode 100644 index 000000000..a6194a40d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application/test_employee_benefit_application.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestEmployeeBenefitApplication(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application_detail/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application_detail/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json new file mode 100644 index 000000000..e403071e9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.json @@ -0,0 +1,54 @@ +{ + "actions": [], + "creation": "2018-04-13 16:36:18.389786", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "salary_component", + "max_benefit_amount", + "amount" + ], + "fields": [ + { + "fieldname": "max_benefit_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Max Benefit Amount", + "options": "currency", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Amount", + "options": "currency", + "reqd": 1 + }, + { + "fieldname": "salary_component", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Earning Component", + "options": "Salary Component", + "read_only": 1, + "reqd": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2025-09-17 20:09:21.375586", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Employee Benefit Application Detail", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.py new file mode 100644 index 000000000..51aa2c9dc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_application_detail/employee_benefit_application_detail.py @@ -0,0 +1,10 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class EmployeeBenefitApplicationDetail(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.js new file mode 100644 index 000000000..56709f21f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.js @@ -0,0 +1,48 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +frappe.ui.form.on("Employee Benefit Claim", { + setup: (frm) => { + frm.set_query("earning_component", () => { + return { + query: "hrms.payroll.doctype.employee_benefit_claim.employee_benefit_claim.get_benefit_components", + filters: { + employee: frm.doc.employee, + date: frm.doc.payroll_date, + company: frm.doc.company, + }, + }; + }); + }, + employee: (frm) => { + frm.set_value("earning_component", null); + if (frm.doc.employee) { + frappe.call({ + method: "hrms.payroll.doctype.salary_structure_assignment.salary_structure_assignment.get_employee_currency", + args: { + employee: frm.doc.employee, + }, + callback: function (r) { + if (r.message) { + frm.set_value("currency", r.message); + } + }, + }); + } + if (!frm.doc.earning_component) { + frm.doc.max_amount_eligible = null; + frm.doc.claimed_amount = null; + } + frm.refresh_fields(); + }, + earning_component: (frm) => { + if (frm.doc.earning_component) { + frm.call("get_benefit_details").then(() => { + frm.refresh_fields(); + }); + } else { + frm.doc.max_amount_eligible = null; + frm.doc.yearly_benefit = null; + frm.refresh_fields(); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json new file mode 100644 index 000000000..d52b70790 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.json @@ -0,0 +1,217 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "HR-BEN-CLM-.YY.-.MM.-.#####", + "creation": "2018-04-13 16:43:10.386409", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "department", + "column_break_3", + "payroll_date", + "currency", + "company", + "amended_from", + "benefit_type_and_amount", + "earning_component", + "yearly_benefit", + "column_break_12", + "claimed_amount", + "max_amount_eligible", + "section_break_9", + "attachments" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "link_filters": "[[\"Employee\",\"status\",\"=\",\"Active\"]]", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "benefit_type_and_amount", + "fieldtype": "Section Break", + "label": "Benefits" + }, + { + "fieldname": "earning_component", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Claim Benefit For", + "options": "Salary Component", + "reqd": 1 + }, + { + "fieldname": "max_amount_eligible", + "fieldtype": "Currency", + "label": "Max Amount Eligible For Claim", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "claimed_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Claimed Amount", + "options": "currency", + "reqd": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Employee Benefit Claim", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "section_break_9", + "fieldtype": "Section Break", + "label": "Expense Proof" + }, + { + "fieldname": "attachments", + "fieldtype": "Attach", + "label": "Attachments" + }, + { + "depends_on": "eval: doc.employee", + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "read_only": 1, + "reqd": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "column_break_12", + "fieldtype": "Column Break" + }, + { + "default": "Today", + "fieldname": "payroll_date", + "fieldtype": "Date", + "label": "Payroll Date", + "reqd": 1 + }, + { + "fieldname": "yearly_benefit", + "fieldtype": "Currency", + "label": "Yearly Amount", + "read_only": 1 + } + ], + "is_submittable": 1, + "links": [ + { + "link_doctype": "Additional Salary", + "link_fieldname": "ref_docname" + } + ], + "modified": "2025-08-07 15:23:41.784378", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Employee Benefit Claim", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "search_fields": "employee_name", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py new file mode 100644 index 000000000..638179718 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/employee_benefit_claim.py @@ -0,0 +1,226 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import get_link_to_form, getdate + +from hrms.payroll.doctype.payroll_period.payroll_period import get_payroll_period +from hrms.payroll.doctype.salary_slip.salary_slip import get_benefits_details_parent +from hrms.payroll.doctype.salary_structure_assignment.salary_structure_assignment import ( + get_assigned_salary_structure, +) + + +class EmployeeBenefitClaim(Document): + def validate(self): + self.validate_date_and_benefit_claim_amount() + self.validate_duplicate_claim() + + def validate_date_and_benefit_claim_amount(self): + if getdate(self.payroll_date) < getdate(): + frappe.throw( + _( + "Payroll date cannot be in the past. This is to ensure that claims are made for the current or future payroll cycles." + ) + ) + + if self.claimed_amount <= 0: + frappe.throw(_("Claimed amount of employee {0} should be greater than 0").format(self.employee)) + + if self.claimed_amount > self.max_amount_eligible: + frappe.throw( + _("Claimed amount of employee {0} exceeds maximum amount eligible for claim {1}").format( + self.employee, self.max_amount_eligible + ) + ) + + def validate_duplicate_claim(self): + """ + Since Employee Benefit Ledger entries are only created upon Salary Slip submission, + there is a risk of multiple claims being created for the same benefit component within + one payroll cycle, and combined claim amount exceeding the maximum eligible amount. + So limit the claim to one per month. + """ + existing_claim = self.get_existing_claim_for_month() + if existing_claim: + msg = _( + "Employee {0} has already claimed the benefit '{1}' for {2} ({3}).
    " + "To prevent overpayments, only one claim per benefit type is allowed in each payroll cycle." + ).format( + frappe.bold(self.employee), + frappe.bold(self.earning_component), + frappe.bold(frappe.utils.formatdate(self.payroll_date, "MMMM yyyy")), + frappe.bold(get_link_to_form("Employee Benefit Claim", existing_claim)), + ) + frappe.throw(msg, title=_("Duplicate Claim Detected")) + + def on_submit(self): + self.create_additional_salary() + + def get_existing_claim_for_month(self): + month_start_date = frappe.utils.get_first_day(self.payroll_date) + month_end_date = frappe.utils.get_last_day(self.payroll_date) + + return frappe.db.get_value( + "Employee Benefit Claim", + { + "employee": self.employee, + "earning_component": self.earning_component, + "payroll_date": ["between", [month_start_date, month_end_date]], + "docstatus": 1, + "name": ["!=", self.name], + }, + "name", + ) + + def create_additional_salary(self): + frappe.get_doc( + { + "doctype": "Additional Salary", + "company": self.company, + "employee": self.employee, + "currency": self.currency, + "salary_component": self.earning_component, + "payroll_date": self.payroll_date, + "amount": self.claimed_amount, + "overwrite_salary_structure_amount": 0, + "ref_doctype": self.doctype, + "ref_docname": self.name, + } + ).submit() + + @frappe.whitelist() + def get_benefit_details(self): + # Fetch max benefit amount and claimable amount for the employee based on the earning component chosen + from hrms.payroll.doctype.employee_benefit_ledger.employee_benefit_ledger import ( + get_max_claim_eligible, + ) + + payroll_period = get_payroll_period(self.payroll_date, self.payroll_date, self.company).get("name") + salary_structure_assignment = get_salary_structure_assignment(self.employee, self.payroll_date) + component_details = self.get_component_details(payroll_period, salary_structure_assignment) + + yearly_benefit = 0 + claimable_benefit = 0 + + if component_details: + current_month_amount = self._get_current_month_benefit_amount(component_details) + yearly_benefit = component_details.get("amount", 0) + claimable_benefit = get_max_claim_eligible( + self.employee, payroll_period, component_details, current_month_amount + ) + + self.yearly_benefit = yearly_benefit + self.max_amount_eligible = claimable_benefit + + def get_component_details(self, payroll_period, salary_structure_assignment): + # Get component details from benefit parent document + benefit_details_parent, benefit_details_doctype = get_benefits_details_parent( + self.employee, payroll_period, salary_structure_assignment + ) + + if not benefit_details_parent: + return None + + EmployeeBenefitDetail = frappe.qb.DocType(benefit_details_doctype) + SalaryComponent = frappe.qb.DocType("Salary Component") + + component_details = ( + frappe.qb.from_(EmployeeBenefitDetail) + .join(SalaryComponent) + .on(SalaryComponent.name == EmployeeBenefitDetail.salary_component) + .select( + SalaryComponent.name, + SalaryComponent.payout_method, + SalaryComponent.depends_on_payment_days, + EmployeeBenefitDetail.amount, + ) + .where(SalaryComponent.name == self.earning_component) + .where(EmployeeBenefitDetail.parent == benefit_details_parent) + ).run(as_dict=True) + + return component_details[0] if component_details else None + + def _get_current_month_benefit_amount(self, component_details: dict) -> float: + # Get current month benefit amount if payout method requires it + payout_method = component_details.get("payout_method") + if payout_method == "Accrue per cycle, pay only on claim": + return self.preview_salary_slip_and_fetch_current_month_benefit_amount() + return 0.0 + + def preview_salary_slip_and_fetch_current_month_benefit_amount(self): + """Preview salary slip and fetch current month benefit amount for accrual components.""" + from hrms.payroll.doctype.salary_structure.salary_structure import make_salary_slip + + salary_structure = get_assigned_salary_structure(self.employee, self.payroll_date) + salary_slip = make_salary_slip( + salary_structure, employee=self.employee, posting_date=self.payroll_date, for_preview=1 + ) + accrued_benefits = salary_slip.get("accrued_benefits", []) + for benefit in accrued_benefits: + if benefit.get("salary_component") == self.earning_component: + return benefit.get("amount", 0) + return 0 + + +@frappe.whitelist() +def get_benefit_components(doctype, txt, searchfield, start, page_len, filters): + """Fetch benefit components to choose from based on employee and date filters.""" + employee = filters.get("employee") + date = filters.get("date") + company = filters.get("company") + + if not employee or not date: + return [] + + try: + salary_structure_assignment = get_salary_structure_assignment(employee, date) + payroll_period = get_payroll_period(date, date, company).get("name") + + benefit_details_parent, benefit_details_doctype = get_benefits_details_parent( + employee, payroll_period, salary_structure_assignment + ) + + if not benefit_details_parent: + return [] + + SalaryComponent = frappe.qb.DocType("Salary Component") + EmployeeBenefitDetail = frappe.qb.DocType(benefit_details_doctype) + return ( + frappe.qb.from_(EmployeeBenefitDetail) + .join(SalaryComponent) + .on(SalaryComponent.name == EmployeeBenefitDetail.salary_component) + .select(EmployeeBenefitDetail.salary_component) + .where(EmployeeBenefitDetail.parent == benefit_details_parent) + .where( + SalaryComponent.payout_method.isin( + ["Accrue per cycle, pay only on claim", "Allow claim for full benefit amount"] + ) + ) + ).run() + + except Exception as e: + frappe.log_error("Error fetching benefit components", e) + return [] + + +def get_salary_structure_assignment(employee, date): + SalaryStructureAssignment = frappe.qb.DocType("Salary Structure Assignment") + result = ( + frappe.qb.from_(SalaryStructureAssignment) + .select(SalaryStructureAssignment.name) + .where(SalaryStructureAssignment.employee == employee) + .where(SalaryStructureAssignment.docstatus == 1) + .where(SalaryStructureAssignment.from_date <= date) + .orderby(SalaryStructureAssignment.from_date, order=frappe.qb.desc) + .limit(1) + ).run(pluck="name") + + if not result: + frappe.throw( + _("Salary Structure Assignment not found for employee {0} on date {1}").format(employee, date) + ) + + return result[0] diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/test_employee_benefit_claim.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/test_employee_benefit_claim.py new file mode 100644 index 000000000..3ac1029f7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_claim/test_employee_benefit_claim.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestEmployeeBenefitClaim(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_detail/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_detail/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json new file mode 100644 index 000000000..643d966f9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.json @@ -0,0 +1,49 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2025-04-26 16:54:45.762918", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "salary_component", + "column_break_wdrt", + "amount" + ], + "fields": [ + { + "fieldname": "salary_component", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Earning Component", + "link_filters": "[[\"Salary Component\",\"type\",\"=\",\"Earning\"],[\"Salary Component\",\"is_flexible_benefit\",\"=\",1]]", + "options": "Salary Component", + "reqd": 1 + }, + { + "fieldname": "column_break_wdrt", + "fieldtype": "Column Break" + }, + { + "fieldname": "amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Benefit Amount", + "reqd": 1 + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2025-06-03 03:02:43.381840", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Employee Benefit Detail", + "owner": "Administrator", + "permissions": [], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.py new file mode 100644 index 000000000..0dca7cf22 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_detail/employee_benefit_detail.py @@ -0,0 +1,9 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class EmployeeBenefitDetail(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.js new file mode 100644 index 000000000..a81ea97d9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.js @@ -0,0 +1,9 @@ +// Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Benefit Ledger", { + refresh: (frm) => { + frm.set_read_only(); + frm.page.btn_primary.hide(); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json new file mode 100644 index 000000000..fd91e2b7e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.json @@ -0,0 +1,188 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2025-04-28 01:15:19.179381", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "posting_date", + "employee", + "employee_name", + "salary_component", + "column_break_llqa", + "company", + "payroll_period", + "reference_doctype", + "reference_document", + "salary_slip", + "employee_benefit_details_section", + "transaction_type", + "amount", + "flexible_benefit", + "column_break_erll", + "yearly_benefit", + "remarks" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "search_index": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name" + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Data", + "label": "Company" + }, + { + "fieldname": "transaction_type", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Transaction Type", + "options": "Accrual\nPayout" + }, + { + "default": "Today", + "fieldname": "posting_date", + "fieldtype": "Date", + "label": "Posting Date" + }, + { + "fieldname": "column_break_llqa", + "fieldtype": "Column Break" + }, + { + "fieldname": "employee_benefit_details_section", + "fieldtype": "Section Break", + "label": "Benefit Details" + }, + { + "fieldname": "yearly_benefit", + "fieldtype": "Currency", + "label": "Yearly Benefit" + }, + { + "fieldname": "payroll_period", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Payroll Period", + "options": "Payroll Period", + "search_index": 1 + }, + { + "fieldname": "remarks", + "fieldtype": "Data", + "label": "Remarks" + }, + { + "fieldname": "column_break_erll", + "fieldtype": "Column Break" + }, + { + "fieldname": "amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Amount" + }, + { + "fieldname": "salary_component", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Salary Component", + "link_filters": "[[\"Salary Component\",\"accrual_component\",\"=\",1]]", + "options": "Salary Component", + "search_index": 1 + }, + { + "fieldname": "salary_slip", + "fieldtype": "Link", + "label": "Salary Slip", + "options": "Salary Slip" + }, + { + "default": "0", + "description": "Enabled only for Employee Benefit components from Salary Structure Assignment", + "fieldname": "flexible_benefit", + "fieldtype": "Check", + "label": "Flexible Benefit" + }, + { + "depends_on": "eval:doc.flexible_benefit", + "fieldname": "reference_doctype", + "fieldtype": "Link", + "label": "Reference Doctype", + "options": "DocType" + }, + { + "depends_on": "eval:doc.flexible_benefit", + "fieldname": "reference_document", + "fieldtype": "Dynamic Link", + "label": "Reference Document", + "options": "reference_doctype" + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "links": [], + "modified": "2025-09-18 20:31:17.942493", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Employee Benefit Ledger", + "owner": "Administrator", + "permissions": [ + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Administrator", + "share": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name" +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py new file mode 100644 index 000000000..575602e4b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger.py @@ -0,0 +1,128 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import flt + + +class EmployeeBenefitLedger(Document): + def validate(self): + type = frappe.get_cached_value("Salary Component", self.salary_component, "type") + if type != "Earning": + frappe.throw( + _( + "Salary Component {0} must be of type 'Earning' to be used in Employee Benefit Ledger" + ).format(self.salary_component) + ) + + +def create_employee_benefit_ledger_entry(ref_doc, args=None, delete=False): + components = (args or {}).get("benefit_ledger_components") or [] + if not components: + return + + base_entry = { + "doctype": "Employee Benefit Ledger", + "employee": ref_doc.employee, + "employee_name": ref_doc.employee_name, + "company": ref_doc.company, + "posting_date": ref_doc.posting_date, + "salary_slip": ref_doc.name, + "payroll_period": args.get("payroll_period"), + } + + reference_doctype = ( + "Salary Structure Assignment" + if args.get("benefit_details_doctype") == "Employee Benefit Detail" + else "Employee Benefit Application" + ) + reference_document = args.get("benefit_details_parent") + + for component in components: + entry = base_entry.copy() + entry.update( + { + "salary_component": component.get("salary_component"), + "amount": component.get("amount"), + "transaction_type": component.get("transaction_type"), + "yearly_benefit": component.get("yearly_benefit", 0), + "flexible_benefit": component.get("flexible_benefit", 0), + "remarks": component.get("remarks"), + } + ) + + if entry["flexible_benefit"] == 1: + entry["reference_doctype"] = reference_doctype + entry["reference_document"] = reference_document + + if not entry["yearly_benefit"]: + entry["yearly_benefit"] = ( + frappe.db.get_value( + args.get("benefit_details_doctype"), + { + "parent": args.get("benefit_details_parent"), + "salary_component": entry["salary_component"], + }, + "amount", + ) + or 0 + ) + + frappe.get_doc(entry).insert() + + +def delete_employee_benefit_ledger_entry(ref_field, ref_value): + EmployeeBenefitLedger = frappe.qb.DocType("Employee Benefit Ledger") + ( + frappe.qb.from_(EmployeeBenefitLedger).delete().where(EmployeeBenefitLedger[ref_field] == ref_value) + ).run() + return + + +def get_max_claim_eligible(employee, payroll_period, benefit_component, current_month_benefit_amount=0): + payout_method = benefit_component.payout_method + precision = frappe.get_precision("Employee Benefit Detail", "amount") + claim_eligible = 0 + + amounts = get_benefit_amount(employee, payroll_period, benefit_component.name) + accrued = flt(amounts.get("Accrual", 0), precision) + paid = flt(amounts.get("Payout", 0), precision) + + if payout_method == "Accrue per cycle, pay only on claim": + accrued += current_month_benefit_amount + if accrued >= paid: + claim_eligible = flt((accrued - paid), precision) + else: + frappe.throw( + _( + "Accrued amount {0} is less than paid amount {1} for Benefit {2} in payroll period {3}" + ).format(accrued, paid, benefit_component.name, payroll_period) + ) + elif payout_method == "Allow claim for full benefit amount": + claim_eligible = benefit_component.amount - paid + + return claim_eligible + + +def get_benefit_amount(employee, payroll_period, salary_component): + from collections import defaultdict + + EmployeeBenefitLedger = frappe.qb.DocType("Employee Benefit Ledger") + query = ( + frappe.qb.from_(EmployeeBenefitLedger) + .select(EmployeeBenefitLedger.transaction_type, EmployeeBenefitLedger.amount) + .where( + (EmployeeBenefitLedger.employee == employee) + & (EmployeeBenefitLedger.salary_component == salary_component) + & (EmployeeBenefitLedger.payroll_period == payroll_period) + ) + ) + result = query.run(as_dict=True) + + amounts = defaultdict(float) + for row in result: + amounts[row["transaction_type"]] += row["amount"] + + return amounts diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger_list.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger_list.js new file mode 100644 index 000000000..be4fd2303 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/employee_benefit_ledger_list.js @@ -0,0 +1,12 @@ +frappe.listview_settings["Employee Benefit Ledger"] = { + formatters: { + transaction_type: function (value) { + if (value === "Accrual") { + return '' + __(value) + ""; + } else if (value === "Payout") { + return '' + __(value) + ""; + } + return value; + }, + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/test_employee_benefit_ledger.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/test_employee_benefit_ledger.py new file mode 100644 index 000000000..f86a776ef --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_benefit_ledger/test_employee_benefit_ledger.py @@ -0,0 +1,29 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase, UnitTestCase + +# On IntegrationTestCase, the doctype test records and all +# link-field test record dependencies are recursively loaded +# Use these module variables to add/remove to/from that list +EXTRA_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] +IGNORE_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] + + +class UnitTestEmployeeBenefitLedger(UnitTestCase): + """ + Unit tests for EmployeeBenefitLedger. + Use this class for testing individual functions and methods. + """ + + pass + + +class IntegrationTestEmployeeBenefitLedger(IntegrationTestCase): + """ + Integration tests for EmployeeBenefitLedger. + Use this class for testing interactions between multiple components. + """ + + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_cost_center/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_cost_center/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_cost_center/employee_cost_center.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_cost_center/employee_cost_center.json new file mode 100644 index 000000000..5da79e91a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_cost_center/employee_cost_center.json @@ -0,0 +1,43 @@ +{ + "actions": [], + "creation": "2021-12-23 12:44:38.389283", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "cost_center", + "percentage" + ], + "fields": [ + { + "allow_on_submit": 1, + "fieldname": "cost_center", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Cost Center", + "options": "Cost Center", + "reqd": 1 + }, + { + "allow_on_submit": 1, + "fieldname": "percentage", + "fieldtype": "Int", + "in_list_view": 1, + "label": "Percentage (%)", + "non_negative": 1, + "reqd": 1 + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:38.398526", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Employee Cost Center", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_cost_center/employee_cost_center.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_cost_center/employee_cost_center.py new file mode 100644 index 000000000..6c5be9744 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_cost_center/employee_cost_center.py @@ -0,0 +1,9 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class EmployeeCostCenter(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/employee_incentive.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/employee_incentive.js new file mode 100644 index 000000000..0f73d99b5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/employee_incentive.js @@ -0,0 +1,69 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Incentive", { + setup: function (frm) { + frm.set_query("employee", function () { + return { + filters: { + status: "Active", + }, + }; + }); + frm.trigger("set_earning_component"); + }, + + employee: function (frm) { + if (frm.doc.employee) { + frappe.run_serially([ + () => frm.trigger("get_employee_currency"), + () => frm.trigger("set_company"), + ]); + } else { + frm.set_value("company", null); + } + }, + + set_company: function (frm) { + frappe.call({ + method: "frappe.client.get_value", + args: { + doctype: "Employee", + fieldname: "company", + filters: { + name: frm.doc.employee, + }, + }, + callback: function (data) { + if (data.message) { + frm.set_value("company", data.message.company); + frm.trigger("set_earning_component"); + } + }, + }); + }, + + set_earning_component: function (frm) { + if (!frm.doc.company) return; + frm.set_query("salary_component", function () { + return { + filters: { type: "earning", company: frm.doc.company }, + }; + }); + }, + + get_employee_currency: function (frm) { + frappe.call({ + method: "hrms.payroll.doctype.salary_structure_assignment.salary_structure_assignment.get_employee_currency", + args: { + employee: frm.doc.employee, + }, + callback: function (r) { + if (r.message) { + frm.set_value("currency", r.message); + frm.refresh_fields(); + } + }, + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/employee_incentive.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/employee_incentive.json new file mode 100644 index 000000000..ff3c8238d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/employee_incentive.json @@ -0,0 +1,163 @@ +{ + "actions": [], + "autoname": "HR-EINV-.YY.-.MM.-.#####", + "creation": "2018-04-13 16:13:43.404546", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee_section", + "employee", + "employee_name", + "amended_from", + "column_break_5", + "company", + "department", + "incentive_section", + "salary_component", + "currency", + "column_break_11", + "payroll_date", + "incentive_amount" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fieldname": "incentive_amount", + "fieldtype": "Currency", + "label": "Incentive Amount", + "options": "currency", + "reqd": 1 + }, + { + "fieldname": "payroll_date", + "fieldtype": "Date", + "label": "Payroll Date", + "reqd": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Employee Incentive", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "column_break_5", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "salary_component", + "fieldtype": "Link", + "label": "Salary Component", + "options": "Salary Component", + "reqd": 1 + }, + { + "depends_on": "eval:(doc.docstatus==1 || doc.employee)", + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "print_hide": 1, + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "employee_section", + "fieldtype": "Section Break", + "label": "Employee" + }, + { + "fieldname": "incentive_section", + "fieldtype": "Section Break", + "label": "Incentive" + }, + { + "fieldname": "column_break_11", + "fieldtype": "Column Break" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:09:39.664211", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Employee Incentive", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "search_fields": "employee_name", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/employee_incentive.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/employee_incentive.py new file mode 100644 index 000000000..d33b81c3a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/employee_incentive.py @@ -0,0 +1,38 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document + +from hrms.hr.utils import validate_active_employee + + +class EmployeeIncentive(Document): + def validate(self): + validate_active_employee(self.employee) + self.validate_salary_structure() + + def validate_salary_structure(self): + if not frappe.db.exists("Salary Structure Assignment", {"employee": self.employee}): + frappe.throw( + _("There is no Salary Structure assigned to {0}. First assign a Salary Structure.").format( + self.employee + ) + ) + + def on_submit(self): + company = frappe.db.get_value("Employee", self.employee, "company") + + additional_salary = frappe.new_doc("Additional Salary") + additional_salary.employee = self.employee + additional_salary.currency = self.currency + additional_salary.salary_component = self.salary_component + additional_salary.overwrite_salary_structure_amount = 0 + additional_salary.amount = self.incentive_amount + additional_salary.payroll_date = self.payroll_date + additional_salary.company = company + additional_salary.ref_doctype = self.doctype + additional_salary.ref_docname = self.name + additional_salary.submit() diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/test_employee_incentive.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/test_employee_incentive.py new file mode 100644 index 000000000..2b6bed805 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_incentive/test_employee_incentive.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestEmployeeIncentive(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/employee_other_income.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/employee_other_income.js new file mode 100644 index 000000000..d53415edb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/employee_other_income.js @@ -0,0 +1,7 @@ +// Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Other Income", { + // refresh: function(frm) { + // } +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/employee_other_income.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/employee_other_income.json new file mode 100644 index 000000000..63a22350d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/employee_other_income.json @@ -0,0 +1,159 @@ +{ + "actions": [], + "autoname": "HR-INCOME-.######", + "creation": "2020-03-18 15:04:40.767434", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee_section", + "employee", + "employee_name", + "amended_from", + "column_break_3", + "company", + "payroll_period", + "income_source_details_section", + "source", + "column_break_10", + "amount" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1, + "search_index": 1 + }, + { + "fieldname": "payroll_period", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Payroll Period", + "options": "Payroll Period", + "reqd": 1, + "search_index": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company", + "reqd": 1, + "search_index": 1 + }, + { + "fieldname": "source", + "fieldtype": "Data", + "label": "Source" + }, + { + "fieldname": "amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Amount", + "options": "Company:company:default_currency", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Employee Other Income", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "employee_section", + "fieldtype": "Section Break", + "label": "Employee Details" + }, + { + "fieldname": "income_source_details_section", + "fieldtype": "Section Break", + "label": "Income Source" + }, + { + "fieldname": "column_break_10", + "fieldtype": "Column Break" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:09:40.255656", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Employee Other Income", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "quick_entry": 1, + "search_fields": "employee_name", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/employee_other_income.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/employee_other_income.py new file mode 100644 index 000000000..51059a136 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/employee_other_income.py @@ -0,0 +1,10 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class EmployeeOtherIncome(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/test_employee_other_income.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/test_employee_other_income.py new file mode 100644 index 000000000..0598d9087 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_other_income/test_employee_other_income.py @@ -0,0 +1,9 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestEmployeeOtherIncome(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.js new file mode 100644 index 000000000..446f7506a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.js @@ -0,0 +1,6 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Tax Exemption Category", { + refresh: function (frm) {}, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json new file mode 100644 index 000000000..3f4a18138 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.json @@ -0,0 +1,75 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "Prompt", + "creation": "2018-04-13 16:51:36.971140", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "max_amount", + "is_active" + ], + "fields": [ + { + "fieldname": "max_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Max Exemption Amount" + }, + { + "default": "1", + "fieldname": "is_active", + "fieldtype": "Check", + "label": "Is Active" + } + ], + "links": [], + "modified": "2024-03-27 13:09:41.659098", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Employee Tax Exemption Category", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.py new file mode 100644 index 000000000..5c109dec9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/employee_tax_exemption_category.py @@ -0,0 +1,9 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class EmployeeTaxExemptionCategory(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/test_employee_tax_exemption_category.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/test_employee_tax_exemption_category.py new file mode 100644 index 000000000..5c47b0786 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_category/test_employee_tax_exemption_category.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestEmployeeTaxExemptionCategory(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js new file mode 100644 index 000000000..315da0cb4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.js @@ -0,0 +1,72 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Tax Exemption Declaration", { + setup: function (frm) { + frm.set_query("employee", function () { + return { + filters: { + status: "Active", + }, + }; + }); + + frm.set_query("payroll_period", function () { + const fields = { employee: "Employee", company: "Company" }; + + for (let [field, label] of Object.entries(fields)) { + if (!frm.doc[field]) { + frappe.msgprint(__("Please select {0}", [label])); + } + } + + if (frm.doc.employee && frm.doc.company) { + return { + filters: { + company: frm.doc.company, + }, + }; + } + }); + + frm.set_query("exemption_sub_category", "declarations", function () { + return { + filters: { + is_active: 1, + }, + }; + }); + }, + + refresh: function (frm) { + if (frm.doc.docstatus == 1) { + frm.add_custom_button(__("Submit Proof"), function () { + frappe.model.open_mapped_doc({ + method: "hrms.payroll.doctype.employee_tax_exemption_declaration.employee_tax_exemption_declaration.make_proof_submission", + frm: frm, + }); + }).addClass("btn-primary"); + } + }, + + employee: function (frm) { + if (frm.doc.employee) { + frm.trigger("get_employee_currency"); + } + }, + + get_employee_currency: function (frm) { + frappe.call({ + method: "hrms.payroll.doctype.salary_structure_assignment.salary_structure_assignment.get_employee_currency", + args: { + employee: frm.doc.employee, + }, + callback: function (r) { + if (r.message) { + frm.set_value("currency", r.message); + frm.refresh_fields(); + } + }, + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json new file mode 100644 index 000000000..b48ab7f4a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.json @@ -0,0 +1,197 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "HR-TAX-DEC-.YYYY.-.#####", + "creation": "2018-04-13 16:53:36.175504", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "department", + "column_break_2", + "company", + "payroll_period", + "currency", + "amended_from", + "section_break_8", + "declarations", + "section_break_10", + "total_declared_amount", + "column_break_12", + "total_exemption_amount" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "fieldname": "payroll_period", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Payroll Period", + "options": "Payroll Period", + "reqd": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Employee Tax Exemption Declaration", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "section_break_8", + "fieldtype": "Tab Break", + "label": "Tax Exemption Declaration" + }, + { + "fieldname": "declarations", + "fieldtype": "Table", + "label": "Declarations", + "options": "Employee Tax Exemption Declaration Category" + }, + { + "fieldname": "section_break_10", + "fieldtype": "Section Break" + }, + { + "fieldname": "total_declared_amount", + "fieldtype": "Currency", + "label": "Total Declared Amount", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "column_break_12", + "fieldtype": "Column Break" + }, + { + "fieldname": "total_exemption_amount", + "fieldtype": "Currency", + "label": "Total Exemption Amount", + "options": "currency", + "read_only": 1 + }, + { + "depends_on": "eval: doc.employee", + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "print_hide": 1, + "reqd": 1 + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:09:41.797682", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Employee Tax Exemption Declaration", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "search_fields": "employee_name", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.py new file mode 100644 index 000000000..303bc3cbc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/employee_tax_exemption_declaration.py @@ -0,0 +1,78 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe.model.document import Document +from frappe.model.mapper import get_mapped_doc +from frappe.utils import flt + +from hrms.hr.utils import ( + calculate_annual_eligible_hra_exemption, + get_total_exemption_amount, + validate_active_employee, + validate_duplicate_exemption_for_payroll_period, + validate_tax_declaration, +) + + +class EmployeeTaxExemptionDeclaration(Document): + def validate(self): + validate_active_employee(self.employee) + validate_tax_declaration(self.declarations) + validate_duplicate_exemption_for_payroll_period( + self.doctype, self.name, self.payroll_period, self.employee + ) + self.set_total_declared_amount() + self.set_total_exemption_amount() + self.calculate_hra_exemption() + + def set_total_declared_amount(self): + self.total_declared_amount = 0.0 + for d in self.declarations: + self.total_declared_amount += flt(d.amount) + + def set_total_exemption_amount(self): + self.total_exemption_amount = flt( + get_total_exemption_amount(self.declarations), self.precision("total_exemption_amount") + ) + + def calculate_hra_exemption(self): + self.salary_structure_hra, self.annual_hra_exemption, self.monthly_hra_exemption = 0, 0, 0 + if self.get("monthly_house_rent"): + hra_exemption = calculate_annual_eligible_hra_exemption(self) + if hra_exemption: + self.total_exemption_amount += hra_exemption["annual_exemption"] + self.total_exemption_amount = flt( + self.total_exemption_amount, self.precision("total_exemption_amount") + ) + self.salary_structure_hra = flt( + hra_exemption["hra_amount"], self.precision("salary_structure_hra") + ) + self.annual_hra_exemption = flt( + hra_exemption["annual_exemption"], self.precision("annual_hra_exemption") + ) + self.monthly_hra_exemption = flt( + hra_exemption["monthly_exemption"], self.precision("monthly_hra_exemption") + ) + + +@frappe.whitelist() +def make_proof_submission(source_name, target_doc=None): + doclist = get_mapped_doc( + "Employee Tax Exemption Declaration", + source_name, + { + "Employee Tax Exemption Declaration": { + "doctype": "Employee Tax Exemption Proof Submission", + "field_no_map": ["monthly_house_rent", "monthly_hra_exemption"], + }, + "Employee Tax Exemption Declaration Category": { + "doctype": "Employee Tax Exemption Proof Submission Detail", + "add_if_empty": True, + }, + }, + target_doc, + ) + + return doclist diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/test_employee_tax_exemption_declaration.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/test_employee_tax_exemption_declaration.py new file mode 100644 index 000000000..f2eb1246c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration/test_employee_tax_exemption_declaration.py @@ -0,0 +1,510 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_months, getdate + +import erpnext +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.utils import DuplicateDeclarationError + +PAYROLL_PERIOD_NAME = "_Test Exemption Period" +PAYROLL_PERIOD_START = "2022-01-01" +PAYROLL_PERIOD_END = "2022-12-31" + + +class TestEmployeeTaxExemptionDeclaration(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Employee Tax Exemption Declaration") + frappe.db.delete("Salary Structure Assignment") + frappe.db.delete("Salary Slip") + + make_employee("employee@taxexemption.com", company="_Test Company") + make_employee("employee1@taxexemption.com", company="_Test Company") + + create_payroll_period( + company="_Test Company", + name=PAYROLL_PERIOD_NAME, + start_date=PAYROLL_PERIOD_START, + end_date=PAYROLL_PERIOD_END, + ) + create_exemption_category() + + def test_duplicate_category_in_declaration(self): + declaration = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Declaration", + "employee": frappe.get_value("Employee", {"user_id": "employee@taxexemption.com"}, "name"), + "company": erpnext.get_default_company(), + "payroll_period": PAYROLL_PERIOD_NAME, + "currency": erpnext.get_default_currency(), + "declarations": [ + dict( + exemption_sub_category="_Test Sub Category", + exemption_category="_Test Category", + amount=100000, + ), + dict( + exemption_sub_category="_Test Sub Category", + exemption_category="_Test Category", + amount=50000, + ), + ], + } + ) + self.assertRaises(frappe.ValidationError, declaration.save) + + def test_duplicate_entry_for_payroll_period(self): + frappe.get_doc( + { + "doctype": "Employee Tax Exemption Declaration", + "employee": frappe.get_value("Employee", {"user_id": "employee@taxexemption.com"}, "name"), + "company": erpnext.get_default_company(), + "payroll_period": PAYROLL_PERIOD_NAME, + "currency": erpnext.get_default_currency(), + "declarations": [ + dict( + exemption_sub_category="_Test Sub Category", + exemption_category="_Test Category", + amount=100000, + ), + dict( + exemption_sub_category="_Test1 Sub Category", + exemption_category="_Test Category", + amount=50000, + ), + ], + } + ).insert() + + duplicate_declaration = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Declaration", + "employee": frappe.get_value("Employee", {"user_id": "employee@taxexemption.com"}, "name"), + "company": erpnext.get_default_company(), + "payroll_period": PAYROLL_PERIOD_NAME, + "currency": erpnext.get_default_currency(), + "declarations": [ + dict( + exemption_sub_category="_Test Sub Category", + exemption_category="_Test Category", + amount=100000, + ) + ], + } + ) + self.assertRaises(DuplicateDeclarationError, duplicate_declaration.insert) + duplicate_declaration.employee = frappe.get_value( + "Employee", {"user_id": "employee1@taxexemption.com"}, "name" + ) + self.assertTrue(duplicate_declaration.insert) + + def test_exemption_amount(self): + declaration = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Declaration", + "employee": frappe.get_value("Employee", {"user_id": "employee@taxexemption.com"}, "name"), + "company": erpnext.get_default_company(), + "payroll_period": PAYROLL_PERIOD_NAME, + "currency": erpnext.get_default_currency(), + "declarations": [ + dict( + exemption_sub_category="_Test Sub Category", + exemption_category="_Test Category", + amount=80000, + ), + dict( + exemption_sub_category="_Test1 Sub Category", + exemption_category="_Test Category", + amount=60000, + ), + ], + } + ).insert() + + self.assertEqual(declaration.total_exemption_amount, 100000) + + def test_india_hra_exemption(self): + # set country + current_country = frappe.flags.country + frappe.flags.country = "India" + + employee = frappe.get_value("Employee", {"user_id": "employee@taxexemption.com"}, "name") + # structure assigned before payroll period should still be considered as active + setup_hra_exemption_prerequisites("Monthly", employee, from_date=add_months(PAYROLL_PERIOD_START, -1)) + + declaration = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Declaration", + "employee": employee, + "company": "_Test Company", + "payroll_period": PAYROLL_PERIOD_NAME, + "currency": "INR", + "monthly_house_rent": 50000, + "rented_in_metro_city": 1, + "declarations": [ + dict( + exemption_sub_category="_Test Sub Category", + exemption_category="_Test Category", + amount=80000, + ), + dict( + exemption_sub_category="_Test1 Sub Category", + exemption_category="_Test Category", + amount=60000, + ), + ], + } + ).insert() + + # Monthly HRA received = 3000 + # should set HRA exemption as per actual annual HRA because that's the minimum + self.assertEqual(declaration.monthly_hra_exemption, 3000) + self.assertEqual(declaration.annual_hra_exemption, 36000) + # 100000 Standard Exemption + 36000 HRA exemption + self.assertEqual(declaration.total_exemption_amount, 136000) + + # reset + frappe.flags.country = current_country + + def test_india_hra_exemption_with_daily_payroll_frequency(self): + # set country + current_country = frappe.flags.country + frappe.flags.country = "India" + + employee = frappe.get_value("Employee", {"user_id": "employee@taxexemption.com"}, "name") + setup_hra_exemption_prerequisites("Daily", employee) + + declaration = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Declaration", + "employee": employee, + "company": "_Test Company", + "payroll_period": PAYROLL_PERIOD_NAME, + "currency": "INR", + "monthly_house_rent": 170000, + "rented_in_metro_city": 1, + "declarations": [ + dict( + exemption_sub_category="_Test1 Sub Category", + exemption_category="_Test Category", + amount=60000, + ), + ], + } + ).insert() + + # Daily HRA received = 3000 + # should set HRA exemption as per (rent - 10% of Basic Salary), that's the minimum + self.assertEqual(declaration.monthly_hra_exemption, 17916.67) + self.assertEqual(declaration.annual_hra_exemption, 215000) + # 50000 Standard Exemption + 215000 HRA exemption + self.assertEqual(declaration.total_exemption_amount, 265000) + + # reset + frappe.flags.country = current_country + + def test_india_hra_exemption_with_weekly_payroll_frequency(self): + # set country + current_country = frappe.flags.country + frappe.flags.country = "India" + + employee = frappe.get_value("Employee", {"user_id": "employee@taxexemption.com"}, "name") + setup_hra_exemption_prerequisites("Weekly", employee) + + declaration = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Declaration", + "employee": employee, + "company": "_Test Company", + "payroll_period": PAYROLL_PERIOD_NAME, + "currency": "INR", + "monthly_house_rent": 170000, + "rented_in_metro_city": 1, + "declarations": [ + dict( + exemption_sub_category="_Test1 Sub Category", + exemption_category="_Test Category", + amount=60000, + ), + ], + } + ).insert() + + # Weekly HRA received = 3000 + # should set HRA exemption as per actual annual HRA because that's the minimum + self.assertEqual(declaration.monthly_hra_exemption, 13000) + self.assertEqual(declaration.annual_hra_exemption, 156000) + # 50000 Standard Exemption + 156000 HRA exemption + self.assertEqual(declaration.total_exemption_amount, 206000) + + # reset + frappe.flags.country = current_country + + def test_india_hra_exemption_with_fortnightly_payroll_frequency(self): + # set country + current_country = frappe.flags.country + frappe.flags.country = "India" + + employee = frappe.get_value("Employee", {"user_id": "employee@taxexemption.com"}, "name") + setup_hra_exemption_prerequisites("Fortnightly", employee) + + declaration = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Declaration", + "employee": employee, + "company": "_Test Company", + "payroll_period": PAYROLL_PERIOD_NAME, + "currency": "INR", + "monthly_house_rent": 170000, + "rented_in_metro_city": 1, + "declarations": [ + dict( + exemption_sub_category="_Test1 Sub Category", + exemption_category="_Test Category", + amount=60000, + ), + ], + } + ).insert() + + # Fortnightly HRA received = 3000 + # should set HRA exemption as per actual annual HRA because that's the minimum + self.assertEqual(declaration.monthly_hra_exemption, 6500) + self.assertEqual(declaration.annual_hra_exemption, 78000) + # 50000 Standard Exemption + 78000 HRA exemption + self.assertEqual(declaration.total_exemption_amount, 128000) + + # reset + frappe.flags.country = current_country + + def test_india_hra_exemption_with_bimonthly_payroll_frequency(self): + # set country + current_country = frappe.flags.country + frappe.flags.country = "India" + + employee = frappe.get_value("Employee", {"user_id": "employee@taxexemption.com"}, "name") + setup_hra_exemption_prerequisites("Bimonthly", employee) + + declaration = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Declaration", + "employee": employee, + "company": "_Test Company", + "payroll_period": PAYROLL_PERIOD_NAME, + "currency": "INR", + "monthly_house_rent": 50000, + "rented_in_metro_city": 1, + "declarations": [ + dict( + exemption_sub_category="_Test Sub Category", + exemption_category="_Test Category", + amount=80000, + ), + dict( + exemption_sub_category="_Test1 Sub Category", + exemption_category="_Test Category", + amount=60000, + ), + ], + } + ).insert() + + # Bimonthly HRA received = 3000 + # should set HRA exemption as per actual annual HRA because that's the minimum + self.assertEqual(declaration.monthly_hra_exemption, 1500) + self.assertEqual(declaration.annual_hra_exemption, 18000) + # 100000 Standard Exemption + 18000 HRA exemption + self.assertEqual(declaration.total_exemption_amount, 118000) + + # reset + frappe.flags.country = current_country + + def test_india_hra_exemption_with_multiple_assignments(self): + from hrms.payroll.doctype.salary_slip.test_salary_slip import create_tax_slab + from hrms.payroll.doctype.salary_structure.test_salary_structure import ( + create_salary_structure_assignment, + make_salary_structure, + ) + + # set country + current_country = frappe.flags.country + frappe.flags.country = "India" + + employee = make_employee("employee@taxexemption2.com", company="_Test Company") + + payroll_period = frappe.get_doc("Payroll Period", PAYROLL_PERIOD_NAME) + create_tax_slab( + payroll_period, + allow_tax_exemption=True, + currency="INR", + effective_date=getdate("2019-04-01"), + company="_Test Company", + ) + + frappe.db.set_value( + "Company", "_Test Company", {"basic_component": "Basic Salary", "hra_component": "HRA"} + ) + + # salary structure with base 50000, HRA 3000 + # effective from 3 months before payroll period + make_salary_structure( + "Monthly Structure for HRA Exemption 1", + "Monthly", + employee=employee, + company="_Test Company", + currency="INR", + payroll_period=payroll_period.name, + from_date=add_months(payroll_period.start_date, -3), + ) + + # salary structure with base 70000, HRA = base * 0.2 = 14000 + salary_structure = make_salary_structure( + "Monthly Structure for HRA Exemption 2", + "Monthly", + employee=employee, + company="_Test Company", + currency="INR", + payroll_period=payroll_period.name, + from_date=payroll_period.start_date, + dont_submit=True, + ) + for component_row in salary_structure.earnings: + if component_row.salary_component == "HRA": + component_row.amount = 0 + component_row.amount_based_on_formula = 1 + component_row.formula = "base * 0.2" + break + + salary_structure.submit() + + # effective from 6 months after payroll period + create_salary_structure_assignment( + employee, + salary_structure.name, + from_date=add_months(payroll_period.start_date, 6), + company="_Test Company", + currency="INR", + payroll_period=payroll_period.name, + base=70000, + allow_duplicate=True, + ) + + declaration = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Declaration", + "employee": employee, + "company": "_Test Company", + "payroll_period": payroll_period.name, + "currency": "INR", + "monthly_house_rent": 50000, + "rented_in_metro_city": 1, + "declarations": [ + dict( + exemption_sub_category="_Test1 Sub Category", + exemption_category="_Test Category", + amount=60000, + ), + ], + } + ).insert() + + # Monthly HRA received = 50000 * 6 months + 70000 * 6 months + # should set HRA exemption as per actual annual HRA because that's the minimum + self.assertEqual(declaration.monthly_hra_exemption, 8500) + self.assertEqual(declaration.annual_hra_exemption, 102000) + # 50000 Standard Exemption + 102000 HRA exemption + self.assertEqual(declaration.total_exemption_amount, 152000) + + # reset + frappe.flags.country = current_country + + +def create_payroll_period(**args): + args = frappe._dict(args) + name = args.name or "_Test Payroll Period" + if not frappe.db.exists("Payroll Period", name): + from datetime import date + + payroll_period = frappe.get_doc( + dict( + doctype="Payroll Period", + name=name, + company=args.company or erpnext.get_default_company(), + start_date=args.start_date or date(date.today().year, 1, 1), + end_date=args.end_date or date(date.today().year, 12, 31), + ) + ).insert() + return payroll_period + else: + return frappe.get_doc("Payroll Period", name) + + +def create_exemption_category(): + if not frappe.db.exists("Employee Tax Exemption Category", "_Test Category"): + frappe.get_doc( + { + "doctype": "Employee Tax Exemption Category", + "name": "_Test Category", + "deduction_component": "Income Tax", + "max_amount": 100000, + } + ).insert() + if not frappe.db.exists("Employee Tax Exemption Sub Category", "_Test Sub Category"): + frappe.get_doc( + { + "doctype": "Employee Tax Exemption Sub Category", + "name": "_Test Sub Category", + "exemption_category": "_Test Category", + "max_amount": 100000, + "is_active": 1, + } + ).insert() + if not frappe.db.exists("Employee Tax Exemption Sub Category", "_Test1 Sub Category"): + frappe.get_doc( + { + "doctype": "Employee Tax Exemption Sub Category", + "name": "_Test1 Sub Category", + "exemption_category": "_Test Category", + "max_amount": 50000, + "is_active": 1, + } + ).insert() + + +def setup_hra_exemption_prerequisites(frequency, employee=None, from_date=None): + from hrms.payroll.doctype.salary_slip.test_salary_slip import create_tax_slab + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + payroll_period = create_payroll_period( + name=PAYROLL_PERIOD_NAME, + company="_Test Company", + start_date=PAYROLL_PERIOD_START, + end_date=PAYROLL_PERIOD_END, + ) + if not employee: + employee = frappe.get_value("Employee", {"user_id": "employee@taxexemption.com"}, "name") + + create_tax_slab( + payroll_period, + allow_tax_exemption=True, + currency="INR", + effective_date=getdate("2019-04-01"), + company="_Test Company", + ) + + make_salary_structure( + f"{frequency} Structure for HRA Exemption", + frequency, + employee=employee, + company="_Test Company", + currency="INR", + payroll_period=payroll_period, + from_date=from_date, + ) + + frappe.db.set_value( + "Company", "_Test Company", {"basic_component": "Basic Salary", "hra_component": "HRA"} + ) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration_category/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration_category/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json new file mode 100644 index 000000000..cb194bed7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.json @@ -0,0 +1,64 @@ +{ + "actions": [], + "creation": "2018-04-13 16:56:23.333041", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "exemption_sub_category", + "exemption_category", + "max_amount", + "amount" + ], + "fields": [ + { + "fieldname": "exemption_sub_category", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Exemption Sub Category", + "options": "Employee Tax Exemption Sub Category", + "reqd": 1 + }, + { + "fetch_from": "exemption_sub_category.exemption_category", + "fieldname": "exemption_category", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Exemption Category", + "options": "Employee Tax Exemption Category", + "read_only": 1, + "reqd": 1 + }, + { + "fetch_from": "exemption_sub_category.max_amount", + "fieldname": "max_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Maximum Exempted Amount", + "options": "currency", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Declared Amount", + "options": "currency", + "reqd": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:41.993560", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Employee Tax Exemption Declaration Category", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.py new file mode 100644 index 000000000..4322f31c0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_declaration_category/employee_tax_exemption_declaration_category.py @@ -0,0 +1,10 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class EmployeeTaxExemptionDeclarationCategory(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js new file mode 100644 index 000000000..a89f7e5b7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.js @@ -0,0 +1,86 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Tax Exemption Proof Submission", { + setup: function (frm) { + frm.set_query("employee", function () { + return { + filters: { + status: "Active", + }, + }; + }); + + frm.set_query("payroll_period", function () { + if (frm.doc.employee && frm.doc.company) { + return { + filters: { + company: frm.doc.company, + }, + }; + } else { + frappe.msgprint(__("Please select Employee")); + } + }); + + frm.set_query("exemption_sub_category", "tax_exemption_proofs", function () { + return { + filters: { + is_active: 1, + }, + }; + }); + }, + + refresh: function (frm) { + // hide attachments section in new forms in favor of the Attach Proof button against each proof + frm.toggle_display("attachments", frm.doc.attachments ? 1 : 0); + + if (frm.doc.docstatus === 0) { + let filters = { + docstatus: 1, + company: frm.doc.company, + }; + if (frm.doc.employee) filters["employee"] = frm.doc.employee; + if (frm.doc.payroll_period) filters["payroll_period"] = frm.doc.payroll_period; + + frm.add_custom_button(__("Get Details From Declaration"), function () { + erpnext.utils.map_current_doc({ + method: "hrms.payroll.doctype.employee_tax_exemption_declaration.employee_tax_exemption_declaration.make_proof_submission", + source_doctype: "Employee Tax Exemption Declaration", + target: frm, + date_field: "creation", + setters: { + employee: frm.doc.employee || undefined, + }, + get_query_filters: filters, + }); + }); + } + }, + + currency: function (frm) { + frm.refresh_fields(); + }, + + employee: function (frm) { + if (frm.doc.employee) { + frm.trigger("get_employee_currency"); + } + }, + + get_employee_currency: function (frm) { + frappe.call({ + method: "hrms.payroll.doctype.salary_structure_assignment.salary_structure_assignment.get_employee_currency", + args: { + employee: frm.doc.employee, + }, + callback: function (r) { + if (r.message) { + frm.set_value("currency", r.message); + frm.refresh_fields(); + } + }, + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json new file mode 100644 index 000000000..0e7e64c8d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.json @@ -0,0 +1,226 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "HR-TAX-PRF-.YYYY.-.#####", + "creation": "2018-04-13 17:24:11.456132", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee_details_tab", + "employee", + "employee_name", + "department", + "currency", + "amended_from", + "column_break_2", + "submission_date", + "payroll_period", + "company", + "exemption_proofs_details_tab", + "tax_exemption_proofs", + "section_break_10", + "total_actual_amount", + "column_break_12", + "exemption_amount", + "attachment_section", + "attachments" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "default": "Today", + "fieldname": "submission_date", + "fieldtype": "Date", + "label": "Submission Date", + "reqd": 1 + }, + { + "fieldname": "payroll_period", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Payroll Period", + "options": "Payroll Period", + "reqd": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "tax_exemption_proofs", + "fieldtype": "Table", + "label": "Tax Exemption Proofs", + "options": "Employee Tax Exemption Proof Submission Detail" + }, + { + "fieldname": "section_break_10", + "fieldtype": "Section Break" + }, + { + "fieldname": "total_actual_amount", + "fieldtype": "Currency", + "label": "Total Actual Amount", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "column_break_12", + "fieldtype": "Column Break" + }, + { + "fieldname": "exemption_amount", + "fieldtype": "Currency", + "label": "Total Exemption Amount", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "attachment_section", + "fieldtype": "Section Break" + }, + { + "fieldname": "attachments", + "fieldtype": "Attach", + "label": "Attachments" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Employee Tax Exemption Proof Submission", + "print_hide": 1, + "read_only": 1 + }, + { + "depends_on": "eval: doc.employee", + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "print_hide": 1, + "reqd": 1 + }, + { + "fieldname": "employee_details_tab", + "fieldtype": "Tab Break", + "label": "Employee" + }, + { + "fieldname": "exemption_proofs_details_tab", + "fieldtype": "Tab Break", + "label": "Exemption Proofs" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:09:42.112733", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Employee Tax Exemption Proof Submission", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "search_fields": "employee_name", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.py new file mode 100644 index 000000000..b75427a4e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/employee_tax_exemption_proof_submission.py @@ -0,0 +1,54 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document +from frappe.utils import flt + +from hrms.hr.utils import ( + calculate_hra_exemption_for_period, + get_total_exemption_amount, + validate_active_employee, + validate_duplicate_exemption_for_payroll_period, + validate_tax_declaration, +) + + +class EmployeeTaxExemptionProofSubmission(Document): + def validate(self): + validate_active_employee(self.employee) + validate_tax_declaration(self.tax_exemption_proofs) + self.set_total_actual_amount() + self.set_total_exemption_amount() + self.calculate_hra_exemption() + validate_duplicate_exemption_for_payroll_period( + self.doctype, self.name, self.payroll_period, self.employee + ) + + def set_total_actual_amount(self): + self.total_actual_amount = flt(self.get("house_rent_payment_amount")) + for d in self.tax_exemption_proofs: + self.total_actual_amount += flt(d.amount) + + def set_total_exemption_amount(self): + self.exemption_amount = flt( + get_total_exemption_amount(self.tax_exemption_proofs), self.precision("exemption_amount") + ) + + def calculate_hra_exemption(self): + self.monthly_hra_exemption, self.monthly_house_rent, self.total_eligible_hra_exemption = 0, 0, 0 + if self.get("house_rent_payment_amount"): + hra_exemption = calculate_hra_exemption_for_period(self) + if hra_exemption: + self.exemption_amount += hra_exemption["total_eligible_hra_exemption"] + self.exemption_amount = flt(self.exemption_amount, self.precision("exemption_amount")) + self.monthly_hra_exemption = flt( + hra_exemption["monthly_exemption"], self.precision("monthly_hra_exemption") + ) + self.monthly_house_rent = flt( + hra_exemption["monthly_house_rent"], self.precision("monthly_house_rent") + ) + self.total_eligible_hra_exemption = flt( + hra_exemption["total_eligible_hra_exemption"], + self.precision("total_eligible_hra_exemption"), + ) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/test_employee_tax_exemption_proof_submission.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/test_employee_tax_exemption_proof_submission.py new file mode 100644 index 000000000..6a8a57591 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission/test_employee_tax_exemption_proof_submission.py @@ -0,0 +1,142 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.payroll.doctype.employee_tax_exemption_declaration.test_employee_tax_exemption_declaration import ( + PAYROLL_PERIOD_END, + PAYROLL_PERIOD_NAME, + PAYROLL_PERIOD_START, + create_exemption_category, + create_payroll_period, + setup_hra_exemption_prerequisites, +) + + +class TestEmployeeTaxExemptionProofSubmission(IntegrationTestCase): + def setUp(self): + frappe.db.delete("Employee Tax Exemption Proof Submission") + frappe.db.delete("Salary Structure Assignment") + + make_employee("employee@proofsubmission.com", company="_Test Company") + create_payroll_period( + company="_Test Company", + name=PAYROLL_PERIOD_NAME, + start_date=PAYROLL_PERIOD_START, + end_date=PAYROLL_PERIOD_END, + ) + + create_exemption_category() + + def test_exemption_amount_lesser_than_category_max(self): + proof = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Proof Submission", + "employee": frappe.get_value("Employee", {"user_id": "employee@proofsubmission.com"}, "name"), + "payroll_period": "Test Payroll Period", + "tax_exemption_proofs": [ + dict( + exemption_sub_category="_Test Sub Category", + type_of_proof="Test Proof", + exemption_category="_Test Category", + amount=150000, + ) + ], + } + ) + self.assertRaises(frappe.ValidationError, proof.save) + proof = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Proof Submission", + "payroll_period": "Test Payroll Period", + "employee": frappe.get_value("Employee", {"user_id": "employee@proofsubmission.com"}, "name"), + "tax_exemption_proofs": [ + dict( + exemption_sub_category="_Test Sub Category", + type_of_proof="Test Proof", + exemption_category="_Test Category", + amount=100000, + ) + ], + } + ) + self.assertTrue(proof.save) + self.assertTrue(proof.submit) + + def test_duplicate_category_in_proof_submission(self): + proof = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Proof Submission", + "employee": frappe.get_value("Employee", {"user_id": "employee@proofsubmission.com"}, "name"), + "payroll_period": "Test Payroll Period", + "tax_exemption_proofs": [ + dict( + exemption_sub_category="_Test Sub Category", + exemption_category="_Test Category", + type_of_proof="Test Proof", + amount=100000, + ), + dict( + exemption_sub_category="_Test Sub Category", + exemption_category="_Test Category", + amount=50000, + ), + ], + } + ) + self.assertRaises(frappe.ValidationError, proof.save) + + def test_india_hra_exemption(self): + # set country + current_country = frappe.flags.country + frappe.flags.country = "India" + + employee = frappe.get_value("Employee", {"user_id": "employee@proofsubmission.com"}, "name") + setup_hra_exemption_prerequisites("Monthly", employee) + + proof = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Proof Submission", + "employee": employee, + "company": "_Test Company", + "payroll_period": PAYROLL_PERIOD_NAME, + "currency": "INR", + "house_rent_payment_amount": 600000, + "rented_in_metro_city": 1, + "rented_from_date": PAYROLL_PERIOD_START, + "rented_to_date": PAYROLL_PERIOD_END, + "tax_exemption_proofs": [ + dict( + exemption_sub_category="_Test Sub Category", + exemption_category="_Test Category", + type_of_proof="Test Proof", + amount=100000, + ), + dict( + exemption_sub_category="_Test1 Sub Category", + exemption_category="_Test Category", + type_of_proof="Test Proof", + amount=50000, + ), + ], + } + ).insert() + + self.assertEqual(proof.monthly_house_rent, 50000) + + # Monthly HRA received = 3000 + # should set HRA exemption as per actual annual HRA because that's the minimum + self.assertEqual(proof.monthly_hra_exemption, 3000) + self.assertEqual(proof.total_eligible_hra_exemption, 36000) + + # total exemptions + house rent payment amount + self.assertEqual(proof.total_actual_amount, 750000) + + # 100000 Standard Exemption + 36000 HRA exemption + self.assertEqual(proof.exemption_amount, 136000) + + # reset + frappe.flags.country = current_country diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json new file mode 100644 index 000000000..125c9ee64 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.json @@ -0,0 +1,82 @@ +{ + "actions": [], + "creation": "2018-04-13 17:19:03.006149", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "exemption_sub_category", + "exemption_category", + "max_amount", + "amount", + "type_of_proof", + "attach_proof" + ], + "fields": [ + { + "columns": 2, + "fieldname": "exemption_sub_category", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Exemption Sub Category", + "options": "Employee Tax Exemption Sub Category", + "reqd": 1 + }, + { + "columns": 2, + "fetch_from": "exemption_sub_category.exemption_category", + "fieldname": "exemption_category", + "fieldtype": "Read Only", + "in_list_view": 1, + "label": "Exemption Category", + "reqd": 1 + }, + { + "columns": 2, + "fetch_from": "exemption_sub_category.max_amount", + "fieldname": "max_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Maximum Exemption Amount", + "options": "currency", + "read_only": 1, + "reqd": 1 + }, + { + "columns": 1, + "fieldname": "type_of_proof", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Type of Proof", + "reqd": 1 + }, + { + "columns": 2, + "fieldname": "amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Actual Amount", + "options": "currency" + }, + { + "columns": 1, + "fieldname": "attach_proof", + "fieldtype": "Attach", + "in_list_view": 1, + "label": "Attach Proof" + } + ], + "istable": 1, + "links": [], + "modified": "2024-06-25 19:57:18.490746", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Employee Tax Exemption Proof Submission Detail", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.py new file mode 100644 index 000000000..37209e584 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_proof_submission_detail/employee_tax_exemption_proof_submission_detail.py @@ -0,0 +1,10 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class EmployeeTaxExemptionProofSubmissionDetail(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.js new file mode 100644 index 000000000..8b62d0900 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.js @@ -0,0 +1,6 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee Tax Exemption Sub Category", { + refresh: function (frm) {}, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json new file mode 100644 index 000000000..22218b563 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.json @@ -0,0 +1,87 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "Prompt", + "creation": "2018-05-09 12:47:26.983095", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "exemption_category", + "max_amount", + "is_active" + ], + "fields": [ + { + "fieldname": "exemption_category", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Tax Exemption Category", + "options": "Employee Tax Exemption Category", + "reqd": 1 + }, + { + "fetch_from": "exemption_category.max_amount", + "fetch_if_empty": 1, + "fieldname": "max_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Max Exemption Amount" + }, + { + "default": "1", + "fieldname": "is_active", + "fieldtype": "Check", + "label": "Is Active" + } + ], + "links": [], + "modified": "2024-03-27 13:09:42.420982", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Employee Tax Exemption Sub Category", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py new file mode 100644 index 000000000..fb75d6706 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/employee_tax_exemption_sub_category.py @@ -0,0 +1,21 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import flt + + +class EmployeeTaxExemptionSubCategory(Document): + def validate(self): + category_max_amount = frappe.db.get_value( + "Employee Tax Exemption Category", self.exemption_category, "max_amount" + ) + if flt(self.max_amount) > flt(category_max_amount): + frappe.throw( + _( + "Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1}" + ).format(category_max_amount, self.exemption_category) + ) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/test_employee_tax_exemption_sub_category.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/test_employee_tax_exemption_sub_category.py new file mode 100644 index 000000000..3500164ed --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/employee_tax_exemption_sub_category/test_employee_tax_exemption_sub_category.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestEmployeeTaxExemptionSubCategory(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity.js new file mode 100644 index 000000000..4d93430e0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity.js @@ -0,0 +1,68 @@ +// Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Gratuity", { + setup: function (frm) { + frm.set_query("salary_component", function () { + return { + filters: { + type: "Earning", + }, + }; + }); + + frm.set_query("expense_account", function () { + return { + filters: { + root_type: "Expense", + is_group: 0, + company: frm.doc.company, + }, + }; + }); + + frm.set_query("payable_account", function () { + return { + filters: { + root_type: "Liability", + is_group: 0, + company: frm.doc.company, + }, + }; + }); + }, + refresh: function (frm) { + if (frm.doc.docstatus == 1 && !frm.doc.pay_via_salary_slip && frm.doc.status == "Unpaid") { + frm.add_custom_button(__("Create Payment Entry"), function () { + return frappe.call({ + method: "hrms.overrides.employee_payment_entry.get_payment_entry_for_employee", + args: { + dt: frm.doc.doctype, + dn: frm.doc.name, + }, + callback: function (r) { + var doclist = frappe.model.sync(r.message); + frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + }, + }); + }); + } + }, + + employee: function (frm) { + frm.events.calculate_work_experience_and_amount(frm); + }, + + gratuity_rule: function (frm) { + frm.events.calculate_work_experience_and_amount(frm); + }, + + calculate_work_experience_and_amount: function (frm) { + if (frm.doc.employee && frm.doc.gratuity_rule) { + frm.call("calculate_work_experience_and_amount").then((r) => { + frm.set_value("current_work_experience", r.message["current_work_experience"]); + frm.set_value("amount", r.message["amount"]); + }); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity.json new file mode 100644 index 000000000..0a4d4e901 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity.json @@ -0,0 +1,240 @@ +{ + "actions": [], + "autoname": "HR-GRA-PAY-.#####", + "creation": "2022-01-27 16:24:28.200061", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "details_tab", + "employee", + "employee_name", + "department", + "designation", + "current_work_experience", + "column_break_3", + "posting_date", + "gratuity_rule", + "status", + "company", + "amended_from", + "section_break_5", + "pay_via_salary_slip", + "amount", + "paid_amount", + "column_break_13", + "payroll_date", + "salary_component", + "cost_center", + "mode_of_payment", + "expense_account", + "payable_account" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_global_search": 1, + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "posting_date", + "fieldtype": "Date", + "label": "Posting date", + "reqd": 1 + }, + { + "default": "0", + "fieldname": "current_work_experience", + "fieldtype": "Float", + "label": "Current Work Experience" + }, + { + "default": "0", + "fieldname": "amount", + "fieldtype": "Currency", + "label": "Total Amount", + "read_only": 1, + "reqd": 1 + }, + { + "default": "Draft", + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Status", + "options": "Draft\nUnpaid\nPaid\nSubmitted\nCancelled", + "read_only": 1 + }, + { + "depends_on": "eval: !doc.pay_via_salary_slip", + "fieldname": "expense_account", + "fieldtype": "Link", + "label": "Expense Account", + "mandatory_depends_on": "eval: !doc.pay_via_salary_slip", + "options": "Account" + }, + { + "depends_on": "eval: !doc.pay_via_salary_slip", + "fieldname": "mode_of_payment", + "fieldtype": "Link", + "label": "Mode of Payment", + "mandatory_depends_on": "eval: !doc.pay_via_salary_slip", + "options": "Mode of Payment" + }, + { + "fieldname": "gratuity_rule", + "fieldtype": "Link", + "label": "Gratuity Rule", + "options": "Gratuity Rule", + "reqd": 1 + }, + { + "fieldname": "section_break_5", + "fieldtype": "Tab Break", + "label": "Payment and Accounting" + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fetch_from": "employee.designation", + "fieldname": "designation", + "fieldtype": "Data", + "label": "Designation", + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Gratuity", + "print_hide": 1, + "read_only": 1 + }, + { + "default": "0", + "depends_on": "eval:doc.pay_via_salary_slip == 0", + "fieldname": "paid_amount", + "fieldtype": "Currency", + "label": "Paid Amount", + "no_copy": 1, + "read_only": 1 + }, + { + "depends_on": "eval: !doc.pay_via_salary_slip", + "fieldname": "payable_account", + "fieldtype": "Link", + "label": "Payable Account", + "mandatory_depends_on": "eval: !doc.pay_via_salary_slip", + "options": "Account" + }, + { + "fieldname": "cost_center", + "fieldtype": "Link", + "label": "Cost Center", + "options": "Cost Center" + }, + { + "default": "1", + "fieldname": "pay_via_salary_slip", + "fieldtype": "Check", + "label": "Pay via Salary Slip" + }, + { + "depends_on": "pay_via_salary_slip", + "fieldname": "payroll_date", + "fieldtype": "Date", + "label": "Payroll Date", + "mandatory_depends_on": "pay_via_salary_slip" + }, + { + "depends_on": "pay_via_salary_slip", + "fieldname": "salary_component", + "fieldtype": "Link", + "label": "Salary Component", + "mandatory_depends_on": "pay_via_salary_slip", + "options": "Salary Component" + }, + { + "fieldname": "column_break_13", + "fieldtype": "Column Break" + }, + { + "fieldname": "details_tab", + "fieldtype": "Tab Break", + "label": "Gratuity" + } + ], + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [], + "modified": "2025-07-18 12:41:32.537878", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Gratuity", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "search_fields": "employee_name", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name" +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity.py new file mode 100644 index 000000000..1ac9d4498 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity.py @@ -0,0 +1,319 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _, bold +from frappe.query_builder.functions import Abs, Sum +from frappe.utils import cstr, flt, get_datetime, get_link_to_form + +from erpnext.accounts.general_ledger import make_gl_entries +from erpnext.controllers.accounts_controller import AccountsController + + +class Gratuity(AccountsController): + def validate(self): + data = self.calculate_work_experience_and_amount() + self.current_work_experience = data["current_work_experience"] + self.amount = data["amount"] + self.set_status() + + @property + def gratuity_settings(self): + if not hasattr(self, "_gratuity_settings"): + self._gratuity_settings = frappe.db.get_value( + "Gratuity Rule", + self.gratuity_rule, + [ + "work_experience_calculation_function as method", + "total_working_days_per_year", + "minimum_year_for_gratuity", + "calculate_gratuity_amount_based_on", + ], + as_dict=True, + ) + + return self._gratuity_settings + + def set_status(self, update=False): + status = {"0": "Draft", "1": "Submitted", "2": "Cancelled"}[cstr(self.docstatus or 0)] + + if self.docstatus == 1: + precision = self.precision("paid_amount") + if flt(self.paid_amount) > 0 and flt(self.amount, precision) == flt(self.paid_amount, precision): + status = "Paid" + else: + status = "Unpaid" + + if update and self.status != status: + self.db_set("status", status) + else: + self.status = status + + def on_submit(self): + if self.pay_via_salary_slip: + self.create_additional_salary() + else: + self.create_gl_entries() + + def on_cancel(self): + self.ignore_linked_doctypes = ["GL Entry", "Payment Ledger Entry", "Advance Payment Ledger Entry"] + self.create_gl_entries(cancel=True) + self.set_status(update=True) + + def create_gl_entries(self, cancel=False): + gl_entries = self.get_gl_entries() + make_gl_entries(gl_entries, cancel) + + def get_gl_entries(self): + gl_entry = [] + # payable entry + if self.amount: + gl_entry.append( + self.get_gl_dict( + { + "account": self.payable_account, + "credit": self.amount, + "credit_in_account_currency": self.amount, + "against": self.expense_account, + "party_type": "Employee", + "party": self.employee, + "against_voucher_type": self.doctype, + "against_voucher": self.name, + "cost_center": self.cost_center, + }, + item=self, + ) + ) + + # expense entries + gl_entry.append( + self.get_gl_dict( + { + "account": self.expense_account, + "debit": self.amount, + "debit_in_account_currency": self.amount, + "against": self.payable_account, + "cost_center": self.cost_center, + }, + item=self, + ) + ) + else: + frappe.throw(_("Total Amount cannot be zero")) + + return gl_entry + + def create_additional_salary(self): + if self.pay_via_salary_slip: + additional_salary = frappe.new_doc("Additional Salary") + additional_salary.employee = self.employee + additional_salary.salary_component = self.salary_component + additional_salary.overwrite_salary_structure_amount = 0 + additional_salary.amount = self.amount + additional_salary.payroll_date = self.payroll_date + additional_salary.company = self.company + additional_salary.ref_doctype = self.doctype + additional_salary.ref_docname = self.name + additional_salary.submit() + + def set_total_advance_paid(self): + aple = frappe.qb.DocType("Advance Payment Ledger Entry") + paid_amount = ( + frappe.qb.from_(aple) + .select(Abs(Sum(aple.amount)).as_("paid_amount")) + .where( + (aple.company == self.company) + & (aple.against_voucher_type == self.doctype) + & (aple.against_voucher_no == self.name) + & (aple.delinked == 0) + ) + ).run(as_dict=True)[0].paid_amount or 0 + + if flt(paid_amount) > self.amount: + frappe.throw(_("Row {0}# Paid Amount cannot be greater than Total amount")) + + self.db_set("paid_amount", paid_amount) + self.set_status(update=True) + + @frappe.whitelist() + def calculate_work_experience_and_amount(self) -> dict: + if self.gratuity_settings.method == "Manual": + current_work_experience = flt(self.current_work_experience) + else: + current_work_experience = self.get_work_experience() + + gratuity_amount = self.get_gratuity_amount(current_work_experience) + + return {"current_work_experience": current_work_experience, "amount": gratuity_amount} + + def get_work_experience(self) -> float: + total_working_days = self.get_total_working_days() + rule = self.gratuity_settings + work_experience = total_working_days / (rule.total_working_days_per_year or 1) + + if rule.method == "Round off Work Experience": + work_experience = round(work_experience) + else: + work_experience = flt(work_experience, self.precision("current_work_experience")) + + if work_experience < rule.minimum_year_for_gratuity: + frappe.throw( + _("Employee: {0} have to complete minimum {1} years for gratuity").format( + bold(self.employee), rule.minimum_year_for_gratuity + ) + ) + return work_experience or 0 + + def get_total_working_days(self) -> float: + date_of_joining, relieving_date = frappe.db.get_value( + "Employee", self.employee, ["date_of_joining", "relieving_date"] + ) + if not relieving_date: + frappe.throw( + _("Please set Relieving Date for employee: {0}").format( + bold(get_link_to_form("Employee", self.employee)) + ) + ) + + total_working_days = (get_datetime(relieving_date) - get_datetime(date_of_joining)).days + + payroll_based_on = frappe.db.get_single_value("Payroll Settings", "payroll_based_on") or "Leave" + if payroll_based_on == "Leave": + total_lwp = self.get_non_working_days(relieving_date, "On Leave") + total_working_days -= total_lwp + elif payroll_based_on == "Attendance": + total_absent = self.get_non_working_days(relieving_date, "Absent") + total_working_days -= total_absent + + return total_working_days + + def get_non_working_days(self, relieving_date: str, status: str) -> float: + filters = { + "docstatus": 1, + "status": status, + "employee": self.employee, + "attendance_date": ("<=", get_datetime(relieving_date)), + } + + if status == "On Leave": + lwp_leave_types = frappe.get_all("Leave Type", filters={"is_lwp": 1}, pluck="name") + filters["leave_type"] = ("IN", lwp_leave_types) + + record = frappe.get_all("Attendance", filters=filters, fields=[{"COUNT": "*", "as": "total_lwp"}]) + return record[0].total_lwp if len(record) else 0 + + def get_gratuity_amount(self, experience: float) -> float: + total_component_amount = self.get_total_component_amount() + calculate_amount_based_on = self.gratuity_settings.calculate_gratuity_amount_based_on + + gratuity_amount = 0 + slabs = self.get_gratuity_rule_slabs() + slab_found = False + years_left = experience + + for slab in slabs: + if calculate_amount_based_on == "Current Slab": + if self._is_experience_within_slab(slab, experience): + gratuity_amount = ( + total_component_amount * experience * slab.fraction_of_applicable_earnings + ) + if slab.fraction_of_applicable_earnings: + slab_found = True + + if slab_found: + break + + elif calculate_amount_based_on == "Sum of all previous slabs": + # no slabs, fraction applicable for all years + if slab.to_year == 0 and slab.from_year == 0: + gratuity_amount += ( + years_left * total_component_amount * slab.fraction_of_applicable_earnings + ) + slab_found = True + break + + # completed more years than the current slab, so consider fraction for current slab too + if self._is_experience_beyond_slab(slab, experience): + gratuity_amount += ( + (slab.to_year - slab.from_year) + * total_component_amount + * slab.fraction_of_applicable_earnings + ) + years_left -= slab.to_year - slab.from_year + slab_found = True + + elif self._is_experience_within_slab(slab, experience): + gratuity_amount += ( + years_left * total_component_amount * slab.fraction_of_applicable_earnings + ) + slab_found = True + break + + if not slab_found: + frappe.throw( + _( + "No applicable slab found for the calculation of gratuity amount as per the Gratuity Rule: {0}" + ).format(bold(self.gratuity_rule)) + ) + + return flt(gratuity_amount, self.precision("amount")) + + def get_total_component_amount(self) -> float: + applicable_earning_components = self.get_applicable_components() + salary_slip = get_last_salary_slip(self.employee) + if not salary_slip: + frappe.throw(_("No Salary Slip found for Employee: {0}").format(bold(self.employee))) + + total_amount = 0 + component_found = False + for row in salary_slip.earnings: + if row.salary_component in applicable_earning_components: + total_amount += flt(row.default_amount) + component_found = True + + if not component_found: + frappe.throw( + _("No applicable Earning component found in last salary slip for Gratuity Rule: {0}").format( + bold(get_link_to_form("Gratuity Rule", self.gratuity_rule)) + ) + ) + + return total_amount + + def get_applicable_components(self) -> list[str]: + applicable_earning_components = frappe.get_all( + "Gratuity Applicable Component", filters={"parent": self.gratuity_rule}, pluck="salary_component" + ) + if not applicable_earning_components: + frappe.throw( + _("No applicable Earning components found for Gratuity Rule: {0}").format( + bold(get_link_to_form("Gratuity Rule", self.gratuity_rule)) + ) + ) + + return applicable_earning_components + + def get_gratuity_rule_slabs(self) -> list[dict]: + return frappe.get_all( + "Gratuity Rule Slab", + filters={"parent": self.gratuity_rule}, + fields=["from_year", "to_year", "fraction_of_applicable_earnings"], + order_by="idx", + ) + + def _is_experience_within_slab(self, slab: dict, experience: float) -> bool: + return bool(slab.from_year <= experience and (experience <= slab.to_year or slab.to_year == 0)) + + def _is_experience_beyond_slab(self, slab: dict, experience: float) -> bool: + return bool(slab.from_year < experience and (slab.to_year < experience and slab.to_year != 0)) + + def on_discard(self): + self.db_set("status", "Cancelled") + + +def get_last_salary_slip(employee: str) -> dict | None: + salary_slip = frappe.db.get_value( + "Salary Slip", {"employee": employee, "docstatus": 1}, order_by="start_date desc" + ) + if salary_slip: + return frappe.get_doc("Salary Slip", salary_slip) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity_dashboard.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity_dashboard.py new file mode 100644 index 000000000..9396461f1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity_dashboard.py @@ -0,0 +1,11 @@ +from frappe import _ + + +def get_data(): + return { + "fieldname": "reference_name", + "non_standard_fieldnames": { + "Additional Salary": "ref_docname", + }, + "transactions": [{"label": _("Payment"), "items": ["Payment Entry", "Additional Salary"]}], + } diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity_list.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity_list.js new file mode 100644 index 000000000..a81d4db21 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/gratuity_list.js @@ -0,0 +1,12 @@ +frappe.listview_settings["Gratuity"] = { + get_indicator: function (doc) { + let status_color = { + Draft: "red", + Submitted: "blue", + Cancelled: "red", + Paid: "green", + Unpaid: "orange", + }; + return [__(doc.status), status_color[doc.status], "status,=," + doc.status]; + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/test_gratuity.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/test_gratuity.py new file mode 100644 index 000000000..14305e0d0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity/test_gratuity.py @@ -0,0 +1,333 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase, change_settings +from frappe.utils import add_days, add_months, floor, flt, get_datetime, get_first_day, getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.attendance.attendance import mark_attendance +from hrms.hr.doctype.expense_claim.test_expense_claim import get_payable_account +from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import assign_holiday_list +from hrms.payroll.doctype.salary_slip.test_salary_slip import ( + make_deduction_salary_component, + make_earning_salary_component, + make_employee_salary_slip, + make_holiday_list, +) +from hrms.payroll.doctype.salary_structure.salary_structure import make_salary_slip + +test_dependencies = ["Salary Component", "Salary Slip", "Account"] + + +class TestGratuity(IntegrationTestCase): + def setUp(self): + for dt in ["Gratuity", "Salary Slip", "Additional Salary"]: + frappe.db.delete(dt) + + self.date_of_joining = add_days(getdate(), -(6 * 365)) + self.relieving_date = getdate() + self.employee = make_employee( + "test_employee_gratuity@salary.com", + company="_Test Company", + date_of_joining=self.date_of_joining, + relieving_date=self.relieving_date, + ) + + make_earning_salary_component(setup=True, test_tax=True, company_list=["_Test Company"]) + make_deduction_salary_component(setup=True, test_tax=True, company_list=["_Test Company"]) + make_holiday_list() + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_gratuity_based_on_current_slab_via_additional_salary(self): + """ + Range | Fraction + 5-0 | 1 + """ + sal_slip = create_salary_slip(self.employee) + + rule = setup_gratuity_rule("Rule Under Unlimited Contract on termination (UAE)") + gratuity = create_gratuity(pay_via_salary_slip=1, employee=self.employee, rule=rule.name) + + # work experience calculation + employee_total_workings_days = ( + get_datetime(self.relieving_date) - get_datetime(self.date_of_joining) + ).days + experience = floor(employee_total_workings_days / rule.total_working_days_per_year) + self.assertEqual(gratuity.current_work_experience, experience) + + # amount calculation + component_amount = frappe.get_all( + "Salary Detail", + filters={ + "docstatus": 1, + "parent": sal_slip.name, + "parentfield": "earnings", + "salary_component": "Basic Salary", + }, + fields=["amount"], + limit=1, + ) + gratuity_amount = component_amount[0].amount * experience + self.assertEqual(flt(gratuity_amount, 2), flt(gratuity.amount, 2)) + + # additional salary creation (Pay via salary slip) + self.assertTrue(frappe.db.exists("Additional Salary", {"ref_docname": gratuity.name})) + + # gratuity should be marked "Paid" on the next salary slip submission + salary_slip = make_salary_slip("Test Gratuity", employee=self.employee) + salary_slip.posting_date = getdate() + salary_slip.insert() + salary_slip.submit() + + gratuity.reload() + self.assertEqual(gratuity.status, "Paid") + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_gratuity_based_on_all_previous_slabs_via_payment_entry(self): + """ + Range | Fraction + 0-3 | 0.5 + 3-6 | 1.0 + 6-9 | 1.5 + """ + from hrms.overrides.employee_payment_entry import get_payment_entry_for_employee + + sal_slip = create_salary_slip(self.employee) + + rule = setup_gratuity_rule("Rule Under Limited Contract (UAE)") + rule.gratuity_rule_slabs = [] + for slab in [ + {"from_year": 0, "to_year": 3, "fraction_of_applicable_earnings": 0.5}, + {"from_year": 3, "to_year": 6, "fraction_of_applicable_earnings": 1.0}, + {"from_year": 6, "to_year": 9, "fraction_of_applicable_earnings": 1.5}, + ]: + new_slab = frappe.get_doc( + { + "doctype": "Gratuity Rule Slab", + "from_year": slab["from_year"], + "to_year": slab["to_year"], + "fraction_of_applicable_earnings": slab["fraction_of_applicable_earnings"], + "parent": rule.name, + "parentfield": "gratuity_rule_slabs", + "parenttype": "Gratuity Rule", + } + ) + rule.append("gratuity_rule_slabs", new_slab) + rule.save() + rule.reload() + + set_mode_of_payment_account() + + gratuity = create_gratuity( + expense_account="Payment Account - _TC", + mode_of_payment="Cash", + employee=self.employee, + rule=rule.name, + ) + + # work experience calculation + employee_total_workings_days = ( + get_datetime(self.relieving_date) - get_datetime(self.date_of_joining) + ).days + experience = floor(employee_total_workings_days / rule.total_working_days_per_year) + self.assertEqual(gratuity.current_work_experience, experience) + + # amount calculation + component_amount = frappe.get_all( + "Salary Detail", + filters={ + "docstatus": 1, + "parent": sal_slip.name, + "parentfield": "earnings", + "salary_component": "Basic Salary", + }, + fields=["amount"], + limit=1, + ) + + gratuity_amount = ((3 * 0.5) + (3 * 1.0)) * component_amount[0].amount + self.assertEqual(flt(gratuity_amount, 2), flt(gratuity.amount, 2)) + self.assertEqual(gratuity.status, "Unpaid") + + pe = get_payment_entry_for_employee("Gratuity", gratuity.name) + pe.reference_no = "123467" + pe.reference_date = getdate() + pe.submit() + + gratuity.reload() + self.assertEqual(gratuity.status, "Paid") + self.assertEqual(flt(gratuity.paid_amount, 2), flt(gratuity.amount, 2)) + + pe.cancel() + gratuity.reload() + self.assertEqual(gratuity.status, "Unpaid") + self.assertEqual(gratuity.paid_amount, 0) + + @change_settings( + "Payroll Settings", + { + "payroll_based_on": "Attendance", + "consider_unmarked_attendance_as": "Present", + "include_holidays_in_total_working_days": True, + }, + ) + def test_gratuity_amount_consistent_irrespective_of_payment_days(self): + date = getdate("2024-01-01") + create_salary_slip(self.employee, date) + + setup_gratuity_rule("Rule Under Limited Contract (UAE)") + set_mode_of_payment_account() + + gratuity = create_gratuity( + expense_account="Payment Account - _TC", mode_of_payment="Cash", employee=self.employee + ) + self.assertEqual(gratuity.amount, 190000.0) + + # gratuity amount should be unaffected inspite of marking the employee absent for a day + frappe.db.delete("Gratuity", gratuity.name) + mark_attendance(self.employee, date, "Absent") + gratuity = create_gratuity( + expense_account="Payment Account - _TC", mode_of_payment="Cash", employee=self.employee + ) + self.assertEqual(gratuity.amount, 190000.0) + + @assign_holiday_list("Salary Slip Test Holiday List", "_Test Company") + def test_settle_gratuity_via_fnf_statement(self): + from hrms.hr.doctype.full_and_final_statement.test_full_and_final_statement import ( + create_full_and_final_statement, + ) + + create_salary_slip(self.employee) + setup_gratuity_rule("Rule Under Limited Contract (UAE)") + set_mode_of_payment_account() + + # create gratuity + gratuity = create_gratuity( + expense_account="Payment Account - _TC", mode_of_payment="Cash", employee=self.employee + ) + gratuity.reload() + + # create Full and Final Statement and add gratuity as Payables + fnf = create_full_and_final_statement(self.employee) + fnf.payables = [] + fnf.receivables = [] + fnf.append( + "payables", + { + "component": "Gratuity", + "reference_document_type": "Gratuity", + "reference_document": gratuity.name, + "amount": gratuity.amount, + "account": gratuity.payable_account, + "status": "Settled", + }, + ) + fnf.submit() + + jv = fnf.create_journal_entry() + jv.accounts[1].account = ( + frappe.get_cached_value("Company", "_Test Company", "default_bank_account") or "_Test Bank - _TC" + ) + jv.cheque_no = "123456" + jv.cheque_date = getdate() + jv.save() + jv.submit() + + gratuity.reload() + self.assertEqual(gratuity.status, "Paid") + + jv.cancel() + gratuity.reload() + self.assertEqual(gratuity.status, "Unpaid") + + def test_status_on_discard(self): + create_salary_slip(self.employee) + setup_gratuity_rule("Rule Under Limited Contract (UAE)") + set_mode_of_payment_account() + # create gratuity + gratuity = create_gratuity( + do_not_submit=True, + expense_account="Payment Account - _TC", + mode_of_payment="Cash", + employee=self.employee, + ) + gratuity.discard() + gratuity.reload() + self.assertEqual(gratuity.status, "Cancelled") + + +def setup_gratuity_rule(name: str) -> dict: + from hrms.regional.united_arab_emirates.setup import setup + + if not frappe.db.exists("Gratuity Rule", name): + setup() + + rule = frappe.get_doc("Gratuity Rule", name) + rule.applicable_earnings_component = [] + rule.append("applicable_earnings_component", {"salary_component": "Basic Salary"}) + rule.save() + + return rule + + +def create_gratuity(do_not_submit=False, **args): + if args: + args = frappe._dict(args) + gratuity = frappe.new_doc("Gratuity") + gratuity.employee = args.employee + gratuity.posting_date = getdate() + gratuity.gratuity_rule = args.rule or "Rule Under Limited Contract (UAE)" + gratuity.pay_via_salary_slip = args.pay_via_salary_slip or 0 + if gratuity.pay_via_salary_slip: + gratuity.payroll_date = getdate() + gratuity.salary_component = "Performance Bonus" + else: + gratuity.expense_account = args.expense_account or "Payment Account - _TC" + gratuity.payable_account = args.payable_account or get_payable_account("_Test Company") + gratuity.mode_of_payment = args.mode_of_payment or "Cash" + gratuity.cost_center = args.cost_center or "Main - _TC" + + gratuity.save() + if do_not_submit: + return gratuity + gratuity.submit() + + return gratuity + + +def set_mode_of_payment_account(): + if not frappe.db.exists("Account", "Payment Account - _TC"): + mode_of_payment = create_account() + + mode_of_payment = frappe.get_doc("Mode of Payment", "Cash") + + mode_of_payment.accounts = [] + mode_of_payment.append("accounts", {"company": "_Test Company", "default_account": "_Test Bank - _TC"}) + mode_of_payment.save() + + +def create_account(): + return frappe.get_doc( + { + "doctype": "Account", + "company": "_Test Company", + "account_name": "Payment Account", + "root_type": "Asset", + "report_type": "Balance Sheet", + "currency": "INR", + "parent_account": "Bank Accounts - _TC", + "account_type": "Bank", + } + ).insert() + + +def create_salary_slip(employee, posting_date=None): + posting_date = posting_date or get_first_day(add_months(getdate(), -1)) + salary_slip = make_employee_salary_slip(employee, "Monthly", "Test Gratuity", posting_date=posting_date) + salary_slip.start_date = posting_date + salary_slip.end_date = None + salary_slip.submit() + + return salary_slip diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_applicable_component/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_applicable_component/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json new file mode 100644 index 000000000..300e56a1b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.json @@ -0,0 +1,33 @@ +{ + "actions": [], + "creation": "2020-08-05 19:00:28.097265", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "salary_component" + ], + "fields": [ + { + "fieldname": "salary_component", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Salary Component ", + "options": "Salary Component", + "reqd": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:46.121068", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Gratuity Applicable Component", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.py new file mode 100644 index 000000000..9c1657d21 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_applicable_component/gratuity_applicable_component.py @@ -0,0 +1,10 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class GratuityApplicableComponent(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule.js new file mode 100644 index 000000000..66fa62fcf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule.js @@ -0,0 +1,38 @@ +// Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Gratuity Rule", { + // refresh: function(frm) { + // } +}); + +frappe.ui.form.on("Gratuity Rule Slab", { + /* + Slabs should be in order like + + from | to | fraction + 0 | 4 | 0.5 + 4 | 6 | 0.7 + + So, on row addition setting current_row.from = previous row.to. + On to_year insert we have to check that it is not less than from_year + + Wrong order may lead to Wrong Calculation + */ + + gratuity_rule_slabs_add(frm, cdt, cdn) { + let row = locals[cdt][cdn]; + let array_idx = row.idx - 1; + if (array_idx > 0) { + row.from_year = cur_frm.doc.gratuity_rule_slabs[array_idx - 1].to_year; + frm.refresh(); + } + }, + + to_year(frm, cdt, cdn) { + let row = locals[cdt][cdn]; + if (row.to_year <= row.from_year && row.to_year === 0) { + frappe.throw(__("To(Year) year can not be less than From(year)")); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule.json new file mode 100644 index 000000000..bcaaac372 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule.json @@ -0,0 +1,133 @@ +{ + "actions": [], + "autoname": "Prompt", + "creation": "2020-08-05 19:00:36.103500", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "gratuity_details_tab", + "disable", + "section_break_2", + "calculate_gratuity_amount_based_on", + "total_working_days_per_year", + "column_break_3", + "work_experience_calculation_function", + "minimum_year_for_gratuity", + "column_break_8", + "applicable_earnings_component", + "gratuity_rules_section", + "gratuity_rule_slabs" + ], + "fields": [ + { + "default": "0", + "fieldname": "disable", + "fieldtype": "Check", + "label": "Disable" + }, + { + "fieldname": "calculate_gratuity_amount_based_on", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Calculate Gratuity Amount Based On", + "options": "Current Slab\nSum of all previous slabs", + "reqd": 1 + }, + { + "description": "Salary components should be part of the Salary Structure.", + "fieldname": "applicable_earnings_component", + "fieldtype": "Table MultiSelect", + "label": "Applicable Earnings Component", + "options": "Gratuity Applicable Component", + "reqd": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "gratuity_rules_section", + "fieldtype": "Section Break", + "label": "Rules" + }, + { + "description": "Set \"From(Year)\" and \"To(Year)\" to 0 for no upper and lower limit.", + "fieldname": "gratuity_rule_slabs", + "fieldtype": "Table", + "label": "Current Work Experience", + "options": "Gratuity Rule Slab", + "reqd": 1 + }, + { + "default": "Round off Work Experience", + "fieldname": "work_experience_calculation_function", + "fieldtype": "Select", + "label": "Work Experience Calculation Method", + "options": "Round off Work Experience\nTake Exact Completed Years\nManual" + }, + { + "default": "365", + "fieldname": "total_working_days_per_year", + "fieldtype": "Float", + "label": "Total working Days Per Year" + }, + { + "fieldname": "minimum_year_for_gratuity", + "fieldtype": "Int", + "label": "Minimum Year for Gratuity" + }, + { + "fieldname": "section_break_2", + "fieldtype": "Section Break" + }, + { + "fieldname": "column_break_8", + "fieldtype": "Column Break" + }, + { + "fieldname": "gratuity_details_tab", + "fieldtype": "Section Break", + "label": "Gratuity" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2025-07-21 13:59:20.212312", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Gratuity Rule", + "naming_rule": "Set by user", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule.py new file mode 100644 index 000000000..b3cb7e73b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule.py @@ -0,0 +1,42 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document + + +class GratuityRule(Document): + def validate(self): + for current_slab in self.gratuity_rule_slabs: + if (current_slab.from_year > current_slab.to_year) and current_slab.to_year != 0: + frappe.throw( + _("Row {0}: From (Year) can not be greater than To (Year)").format(current_slab.idx) + ) + + if ( + current_slab.to_year == 0 + and current_slab.from_year == 0 + and len(self.gratuity_rule_slabs) > 1 + ): + frappe.throw( + _("You can not define multiple slabs if you have a slab with no lower and upper limits.") + ) + + +def get_gratuity_rule(name, slabs, **args): + args = frappe._dict(args) + + rule = frappe.new_doc("Gratuity Rule") + rule.name = name + rule.calculate_gratuity_amount_based_on = args.calculate_gratuity_amount_based_on or "Current Slab" + rule.work_experience_calculation_method = ( + args.work_experience_calculation_method or "Take Exact Completed Years" + ) + rule.minimum_year_for_gratuity = 1 + + for slab in slabs: + slab = frappe._dict(slab) + rule.append("gratuity_rule_slabs", slab) + return rule diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py new file mode 100644 index 000000000..fa5a9dedd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/gratuity_rule_dashboard.py @@ -0,0 +1,8 @@ +from frappe import _ + + +def get_data(): + return { + "fieldname": "gratuity_rule", + "transactions": [{"label": _("Gratuity"), "items": ["Gratuity"]}], + } diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/test_gratuity_rule.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/test_gratuity_rule.py new file mode 100644 index 000000000..a8f02fac3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule/test_gratuity_rule.py @@ -0,0 +1,9 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestGratuityRule(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule_slab/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule_slab/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json new file mode 100644 index 000000000..bd5cd719a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.json @@ -0,0 +1,51 @@ +{ + "actions": [], + "creation": "2020-08-05 19:12:49.423500", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "from_year", + "to_year", + "fraction_of_applicable_earnings" + ], + "fields": [ + { + "fieldname": "fraction_of_applicable_earnings", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Fraction of Applicable Earnings ", + "reqd": 1 + }, + { + "default": "0", + "fieldname": "from_year", + "fieldtype": "Int", + "in_list_view": 1, + "label": "From(Year)", + "read_only": 1, + "reqd": 1 + }, + { + "default": "0", + "fieldname": "to_year", + "fieldtype": "Int", + "in_list_view": 1, + "label": "To(Year)", + "reqd": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:46.394148", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Gratuity Rule Slab", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.py new file mode 100644 index 000000000..2ae6b5479 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/gratuity_rule_slab/gratuity_rule_slab.py @@ -0,0 +1,10 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class GratuityRuleSlab(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/income_tax_slab.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/income_tax_slab.js new file mode 100644 index 000000000..78afef996 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/income_tax_slab.js @@ -0,0 +1,24 @@ +// Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Income Tax Slab", { + refresh: function (frm) { + if (frm.doc.docstatus != 1) return; + frm.add_custom_button( + __("Salary Structure Assignment"), + () => { + frappe.model.with_doctype("Salary Structure Assignment", () => { + const doc = frappe.model.get_new_doc("Salary Structure Assignment"); + doc.income_tax_slab = frm.doc.name; + frappe.set_route("Form", "Salary Structure Assignment", doc.name); + }); + }, + __("Create"), + ); + frm.page.set_inner_btn_group_as_primary(__("Create")); + }, + + currency: function (frm) { + frm.refresh_fields(); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/income_tax_slab.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/income_tax_slab.json new file mode 100644 index 000000000..7208f2ddb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/income_tax_slab.json @@ -0,0 +1,187 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "Prompt", + "creation": "2020-03-17 16:50:35.564915", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "disabled", + "section_break_2", + "effective_from", + "company", + "column_break_3", + "currency", + "standard_tax_exemption_amount", + "allow_tax_exemption", + "amended_from", + "taxable_salary_slabs_section", + "slabs", + "section_break_cajo", + "tax_relief_limit", + "column_break_pdmy", + "taxes_and_charges_on_income_tax_section", + "other_taxes_and_charges" + ], + "fields": [ + { + "fieldname": "effective_from", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Effective from", + "reqd": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "default": "0", + "description": "If enabled, Tax Exemption Declaration will be considered for income tax calculation.", + "fieldname": "allow_tax_exemption", + "fieldtype": "Check", + "label": "Allow Tax Exemption" + }, + { + "fieldname": "taxable_salary_slabs_section", + "fieldtype": "Section Break", + "label": "Taxable Salary Slabs" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Income Tax Slab", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "slabs", + "fieldtype": "Table", + "label": "Taxable Salary Slabs", + "options": "Taxable Salary Slab", + "reqd": 1 + }, + { + "allow_on_submit": 1, + "default": "0", + "fieldname": "disabled", + "fieldtype": "Check", + "label": "Disabled" + }, + { + "fieldname": "standard_tax_exemption_amount", + "fieldtype": "Currency", + "label": "Standard Tax Exemption Amount", + "options": "currency" + }, + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company" + }, + { + "collapsible": 1, + "collapsible_depends_on": "other_taxes_and_charges", + "fieldname": "taxes_and_charges_on_income_tax_section", + "fieldtype": "Section Break", + "label": "Taxes and Charges on Income Tax" + }, + { + "fieldname": "other_taxes_and_charges", + "fieldtype": "Table", + "label": "Other Taxes and Charges", + "options": "Income Tax Slab Other Charges" + }, + { + "fetch_from": "company.default_currency", + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "print_hide": 1, + "reqd": 1 + }, + { + "fieldname": "section_break_2", + "fieldtype": "Section Break" + }, + { + "description": "Maximum annual taxable income eligible for full tax relief. No tax is applied if income does not exceed this limit", + "fieldname": "tax_relief_limit", + "fieldtype": "Currency", + "label": "Taxable Income Relief Threshold Limit" + }, + { + "fieldname": "section_break_cajo", + "fieldtype": "Section Break" + }, + { + "fieldname": "column_break_pdmy", + "fieldtype": "Column Break" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2025-05-05 22:16:48.257971", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Income Tax Slab", + "naming_rule": "Set by user", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/income_tax_slab.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/income_tax_slab.py new file mode 100644 index 000000000..e62d61f4c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/income_tax_slab.py @@ -0,0 +1,14 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + +# import frappe +import erpnext + + +class IncomeTaxSlab(Document): + def validate(self): + if self.company: + self.currency = erpnext.get_company_currency(self.company) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/test_income_tax_slab.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/test_income_tax_slab.py new file mode 100644 index 000000000..f7c1b35d7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab/test_income_tax_slab.py @@ -0,0 +1,9 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestIncomeTaxSlab(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab_other_charges/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab_other_charges/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json new file mode 100644 index 000000000..4ae3ff115 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.json @@ -0,0 +1,76 @@ +{ + "actions": [], + "creation": "2020-04-24 11:46:59.041180", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "description", + "column_break_2", + "percent", + "conditions_section", + "min_taxable_income", + "column_break_7", + "max_taxable_income" + ], + "fields": [ + { + "columns": 4, + "fieldname": "description", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Description", + "reqd": 1 + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "columns": 2, + "fieldname": "percent", + "fieldtype": "Percent", + "in_list_view": 1, + "label": "Percent", + "reqd": 1 + }, + { + "fieldname": "conditions_section", + "fieldtype": "Section Break", + "label": "Conditions" + }, + { + "columns": 2, + "fieldname": "min_taxable_income", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Min Taxable Income", + "options": "currency" + }, + { + "fieldname": "column_break_7", + "fieldtype": "Column Break" + }, + { + "columns": 2, + "fieldname": "max_taxable_income", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Max Taxable Income", + "options": "currency" + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:09:50.699638", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Income Tax Slab Other Charges", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.py new file mode 100644 index 000000000..53911a945 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/income_tax_slab_other_charges/income_tax_slab_other_charges.py @@ -0,0 +1,10 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class IncomeTaxSlabOtherCharges(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/payroll_correction.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/payroll_correction.js new file mode 100644 index 000000000..cf422bdf1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/payroll_correction.js @@ -0,0 +1,66 @@ +// Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Payroll Correction", { + lwp_array: [], + refresh(frm) { + frm.trigger("load_lwp_months"); + }, + employee(frm) { + frm.trigger("load_lwp_months"); + }, + payroll_period(frm) { + frm.trigger("load_lwp_months"); + }, + + load_lwp_months(frm) { + if (!(frm.doc.employee && frm.doc.payroll_period && frm.doc.company)) { + frm.set_value("month_for_lwp_reversal", undefined); + ["salary_slip_reference", "payment_days", "working_days", "lwp_days"].forEach((f) => + frm.set_value(f, undefined), + ); + return; + } + + frm.call({ + method: "fetch_salary_slip_details", + doc: frm.doc, + callback(res) { + if (res.message) { + const { months, slip_details } = res.message; + frm.lwp_array = slip_details; + frm.set_df_property( + "month_for_lwp_reversal", + "options", + [""].concat(months).join("\n"), + ); + frm.refresh_field("month_for_lwp_reversal"); + } else { + frm.lwp_array = []; + frm.set_df_property("month_for_lwp_reversal", "options", ""); + frm.refresh_field("month_for_lwp_reversal"); + } + }, + }); + }, + + month_for_lwp_reversal(frm) { + let selected_entry = frm.lwp_array.find( + (e) => e.month_name === frm.doc.month_for_lwp_reversal, + ); + + if (selected_entry) { + frm.set_value("salary_slip_reference", selected_entry.salary_slip_reference); + frm.set_value("payment_days", selected_entry.payment_days); + frm.set_value("working_days", selected_entry.working_days); + frm.set_value( + "lwp_days", + Math.max(0, selected_entry.working_days - selected_entry.payment_days), + ); + } + + if (frm.doc.days_to_reverse && frm.doc.docstatus === 0) { + frm.set_value("days_to_reverse", 0); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/payroll_correction.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/payroll_correction.json new file mode 100644 index 000000000..056ac463f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/payroll_correction.json @@ -0,0 +1,258 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "format:PAYCORR-{payroll_period}-{#####}", + "creation": "2025-03-31 15:33:41.882106", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "section_break_vvay", + "amended_from", + "employee", + "employee_name", + "payroll_date", + "column_break_uuzk", + "company", + "payroll_period", + "currency", + "section_break_xdag", + "month_for_lwp_reversal", + "working_days", + "payment_days", + "lwp_days", + "column_break_uyjn", + "salary_slip_reference", + "days_to_reverse", + "section_break_giud", + "earning_arrears", + "deduction_arrears", + "accrual_arrears" + ], + "fields": [ + { + "fieldname": "section_break_vvay", + "fieldtype": "Section Break" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Payroll Correction", + "print_hide": 1, + "read_only": 1, + "search_index": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Employee Name", + "read_only": 1 + }, + { + "fieldname": "column_break_uuzk", + "fieldtype": "Column Break" + }, + { + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "depends_on": "eval: doc.company && doc.employee", + "fetch_from": "company.default_currency", + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency" + }, + { + "fieldname": "payroll_period", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Payroll Period", + "options": "Payroll Period", + "reqd": 1 + }, + { + "fieldname": "section_break_xdag", + "fieldtype": "Section Break" + }, + { + "depends_on": "payroll_period", + "fieldname": "month_for_lwp_reversal", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Select Month for LWP Reversal", + "reqd": 1 + }, + { + "depends_on": "month_for_lwp_reversal", + "fieldname": "salary_slip_reference", + "fieldtype": "Link", + "label": "Salary Slip Reference", + "options": "Salary Slip", + "read_only": 1, + "reqd": 1 + }, + { + "depends_on": "salary_slip_reference", + "fieldname": "working_days", + "fieldtype": "Float", + "label": "Working Days", + "read_only": 1 + }, + { + "depends_on": "salary_slip_reference", + "fieldname": "lwp_days", + "fieldtype": "Float", + "label": "Total Days Without Pay", + "read_only": 1 + }, + { + "fieldname": "column_break_uyjn", + "fieldtype": "Column Break" + }, + { + "depends_on": "salary_slip_reference", + "description": "Enter the number of Leave Without Pay (LWP) days you want to reverse. This value cannot exceed the total LWP days recorded for the selected month", + "fieldname": "days_to_reverse", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Days to Reverse", + "reqd": 1 + }, + { + "fieldname": "section_break_giud", + "fieldtype": "Section Break" + }, + { + "depends_on": "earning_arrears", + "fieldname": "earning_arrears", + "fieldtype": "Table", + "label": "Earning Arrears", + "options": "Payroll Correction Child", + "read_only": 1 + }, + { + "depends_on": "deduction_arrears", + "fieldname": "deduction_arrears", + "fieldtype": "Table", + "label": "Deduction Arrears", + "options": "Payroll Correction Child", + "read_only": 1 + }, + { + "description": "Choose the date on which you want to create these components as arrears.", + "fieldname": "payroll_date", + "fieldtype": "Date", + "label": "Payroll Date", + "reqd": 1 + }, + { + "depends_on": "accrual_arrears", + "fieldname": "accrual_arrears", + "fieldtype": "Table", + "label": "Accrual Arrears", + "options": "Payroll Correction Child", + "read_only": 1 + }, + { + "depends_on": "salary_slip_reference", + "fieldname": "payment_days", + "fieldtype": "Float", + "label": "Payment Days", + "read_only": 1 + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [ + { + "link_doctype": "Additional Salary", + "link_fieldname": "ref_docname" + } + ], + "modified": "2025-09-20 17:12:38.862476", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Payroll Correction", + "naming_rule": "Expression", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "modified", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name" +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/payroll_correction.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/payroll_correction.py new file mode 100644 index 000000000..d5e05796d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/payroll_correction.py @@ -0,0 +1,233 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import calendar + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import flt + +from hrms.payroll.doctype.employee_benefit_ledger.employee_benefit_ledger import ( + delete_employee_benefit_ledger_entry, +) + + +class PayrollCorrection(Document): + def validate(self): + if self.days_to_reverse <= 0: + frappe.throw(_("Days to Reverse must be greater than zero.")) + self.validate_days() + self.populate_breakup_table() + + def on_submit(self): + self.validate_arrear_details() + self.create_additional_salary() + self.create_benefit_ledger_entry() + + def validate_days(self): + if self.days_to_reverse and self.salary_slip_reference: + salary_slip = frappe.get_doc("Salary Slip", self.salary_slip_reference) + self.working_days = salary_slip.total_working_days + self.payment_days = salary_slip.payment_days + self.lwp_days = max((salary_slip.total_working_days - salary_slip.payment_days), 0) + payroll_corrections = frappe.get_all( + "Payroll Correction", + filters={ + "docstatus": 1, + "payroll_period": self.payroll_period, + "salary_slip_reference": self.salary_slip_reference, + "employee": self.employee, + "name": ["!=", self.name], + }, + fields=["days_to_reverse"], + ) + total_days_reversed = sum(entry["days_to_reverse"] for entry in payroll_corrections) or 0 + if total_days_reversed + self.days_to_reverse > self.lwp_days: + frappe.throw( + _( + "You cannot reverse more than the total LWP days {0}. You have already reversed {1} days for this employee." + ).format(self.lwp_days, total_days_reversed) + ) + + def on_cancel(self): + delete_employee_benefit_ledger_entry("reference_document", self.name) + + @frappe.whitelist() + def fetch_salary_slip_details(self): + # Fetch salary slip details with LWP for the employee in the payroll period + if not (self.employee and self.payroll_period and self.company): + return {"months": [], "slip_details": []} + + slips = frappe.get_all( + "Salary Slip", + filters={ + "employee": self.employee, + "docstatus": 1, + "current_payroll_period": self.payroll_period, + "company": self.company, + "leave_without_pay": [">", 0], + }, + fields=[ + "name", + "payment_days", + "start_date", + "total_working_days", + ], + ) + + if not slips: + frappe.msgprint( + _("No Salary Slips with {0} found for employee {1} for payroll period {2}.").format( + frappe.bold("Leave Without Pay"), self.employee, self.payroll_period + ) + ) + return + + slip_details = [] + month_set = set() + + for slip in slips: + start_date = slip.get("start_date") + month_name = calendar.month_name[start_date.month] + month_set.add(month_name) + + slip_details.append( + { + "salary_slip_reference": slip.get("name"), + "absent_days": slip.get("absent_days"), + "leave_without_pay": slip.get("leave_without_pay"), + "month_name": month_name, + "working_days": slip.get("total_working_days"), + "payment_days": slip.get("payment_days"), + "start_date": slip.get("start_date"), + } + ) + + sorted_months = sorted(list(month_set)) + + return {"months": sorted_months, "slip_details": slip_details} + + def populate_breakup_table(self): + # Get arrear salary components from salary slip that are not additional salary and add amounts to the breakup table + salary_slip = frappe.get_doc("Salary Slip", self.salary_slip_reference) + + precision = ( + salary_slip.precision("gross_pay") + or frappe.db.get_single_value("System Settings", "currency_precision") + or 2 + ) + if not salary_slip: + frappe.throw(_("Salary Slip not found.")) + + self.set("earning_arrears", []) + self.set("deduction_arrears", []) + self.set("accrual_arrears", []) + + salary_slip_components = {} + arrear_components = [] + for section in ["earnings", "deductions"]: + for item in getattr(salary_slip, section, []): + if not item.additional_salary: + salary_slip_components[item.salary_component] = { + "default_amount": item.default_amount or 0, + "section": "earning_arrears" if section == "earnings" else "deduction_arrears", + } + + for item in getattr(salary_slip, "accrued_benefits", []): + salary_slip_components[item.salary_component] = { + "default_amount": item.amount or 0, + "section": "accrual_arrears", + "accrual_component": True, + } + + # Fetch arrear components that exist in the salary slip + if salary_slip_components: + arrear_components = frappe.db.get_list( + "Salary Component", + filters={ + "arrear_component": 1, + "name": ["in", salary_slip_components.keys()], + "variable_based_on_taxable_salary": 0, + "disabled": 0, + }, + fields=["name"], + pluck="name", + ) + + if not arrear_components: + frappe.msgprint( + _( + "No arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master." + ) + ) + return + + for component in arrear_components: + component_data = salary_slip_components[component] + + if component_data.get("accrual_component"): + total_working_days = salary_slip.get( + "payment_days", 1 + ) # since accruals do not have default_amount field + else: + total_working_days = salary_slip.get("total_working_days", 1) + + per_day_amount = flt(component_data["default_amount"] / total_working_days) + arrear_amount = flt(per_day_amount * self.days_to_reverse) + + self.append( + component_data["section"], + {"salary_component": component, "amount": flt(arrear_amount, precision)}, + ) + + def validate_arrear_details(self): + # Ensure that there are arrear details to process + if not (self.earning_arrears or self.deduction_arrears or self.accrual_arrears): + frappe.throw(_("No arrear details found")) + + def create_additional_salary(self): + for component in (self.earning_arrears or []) + (self.deduction_arrears or []): + additional_salary = frappe.get_doc( + { + "doctype": "Additional Salary", + "employee": self.employee, + "company": self.company, + "payroll_date": self.payroll_date, + "salary_component": component.salary_component, + "currency": self.currency, + "amount": component.amount, + "ref_doctype": "Payroll Correction", + "ref_docname": self.name, + "overwrite_salary_structure_amount": 0, + } + ) + additional_salary.insert() + additional_salary.submit() + + def create_benefit_ledger_entry(self): + for component in self.accrual_arrears or []: + if not component.salary_component or not component.amount: + continue + + is_flexible_benefit = frappe.db.get_value( + "Salary Component", component.salary_component, "is_flexible_benefit" + ) + + frappe.get_doc( + { + "doctype": "Employee Benefit Ledger", + "employee": self.employee, + "employee_name": self.employee_name, + "company": self.company, + "payroll_period": self.payroll_period, + "salary_component": component.salary_component, + "transaction_type": "Accrual", + "amount": component.amount, + "reference_doctype": "Payroll Correction", + "reference_document": self.name, + "remarks": "Accrual via Payroll Correction", + "salary_slip": self.salary_slip_reference, + "flexible_benefit": is_flexible_benefit, + } + ).insert() diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/test_payroll_correction.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/test_payroll_correction.py new file mode 100644 index 000000000..dc983f343 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction/test_payroll_correction.py @@ -0,0 +1,101 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt +import calendar + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_days, flt + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.payroll.doctype.salary_structure.salary_structure import make_salary_slip + + +class TestPayrollCorrection(IntegrationTestCase): + def test_payroll_correction(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + # test payroll correction, ensure additional salary and employee benefit ledger entries are created\ + + frappe.db.set_single_value("Payroll Settings", "payroll_based_on", "Leave") + + emp = make_employee( + "test_payroll_correction@salary.com", + company="_Test Company", + date_of_joining="2021-01-01", + ) + payroll_period = frappe.get_last_doc("Payroll Period", filters={"company": "_Test Company"}) + salary_structure_doc = make_salary_structure( + "Test Payroll Correction", + "Monthly", + company="_Test Company", + employee=emp, + payroll_period=payroll_period, + test_arrear=True, + include_flexi_benefits=True, + base=65000, + ) + + leave_application = frappe.get_doc( + { + "doctype": "Leave Application", + "employee": emp, + "leave_type": "Leave Without Pay", + "from_date": payroll_period.start_date, + "to_date": payroll_period.start_date, + "company": "_Test Company", + "status": "Approved", + "leave_approver": "test@example.com", + } + ).insert() + leave_application.submit() + + salary_slip = make_salary_slip( + salary_structure_doc.name, employee=emp, posting_date=payroll_period.start_date + ) + salary_slip.save() + salary_slip.submit() + + payroll_correction_doc = frappe.get_doc( + { + "doctype": "Payroll Correction", + "employee": emp, + "payroll_period": payroll_period.name, + "payroll_date": add_days(payroll_period.start_date, 32), # next month + "company": "_Test Company", + "days_to_reverse": 1, + "month_for_lwp_reversal": calendar.month_name[payroll_period.start_date.month], + "salary_slip_reference": salary_slip.name, + "working_days": salary_slip.total_working_days, + "payment_days": salary_slip.payment_days, + "lwp_days": salary_slip.leave_without_pay, + } + ).save() + payroll_correction_doc.submit() + + earning_arrears = {row.salary_component: row.amount for row in payroll_correction_doc.earning_arrears} + accrual_arrears = {row.salary_component: row.amount for row in payroll_correction_doc.accrual_arrears} + + basic_salary_arrear = flt((65000 / 27) * 1, 2) + self.assertIn("Basic Salary", earning_arrears) + self.assertEqual(earning_arrears["Basic Salary"], basic_salary_arrear) + + mediclaim_allowance_arrear = flt((24000 / 12 / 27) * 1, 2) + self.assertIn("Mediclaim Allowance", accrual_arrears) + self.assertEqual(accrual_arrears["Mediclaim Allowance"], mediclaim_allowance_arrear) + + self.assertTrue( + frappe.db.exists( + "Additional Salary", + { + "ref_docname": payroll_correction_doc.name, + }, + ) + ) + self.assertTrue( + frappe.db.exists( + "Employee Benefit Ledger", + { + "reference_document": payroll_correction_doc.name, + }, + ) + ) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction_child/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction_child/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json new file mode 100644 index 000000000..cec7d3a9f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.json @@ -0,0 +1,43 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2025-03-31 16:14:31.682535", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "salary_component", + "amount" + ], + "fields": [ + { + "fieldname": "salary_component", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Salary Component", + "options": "Salary Component", + "reqd": 1 + }, + { + "fieldname": "amount", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Amount", + "reqd": 1 + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2025-09-22 14:55:21.744355", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Payroll Correction Child", + "owner": "Administrator", + "permissions": [], + "row_format": "Dynamic", + "sort_field": "modified", + "sort_order": "DESC", + "states": [] +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.py new file mode 100644 index 000000000..439a0782d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_correction_child/payroll_correction_child.py @@ -0,0 +1,9 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class PayrollCorrectionChild(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_employee_detail/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_employee_detail/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json new file mode 100644 index 000000000..d90048d90 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.json @@ -0,0 +1,76 @@ +{ + "actions": [], + "creation": "2017-11-30 06:07:33.477781", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "column_break_3", + "department", + "designation", + "is_salary_withheld" + ], + "fields": [ + { + "columns": 2, + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee" + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Employee Name", + "read_only": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fetch_from": "employee.designation", + "fieldname": "designation", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Designation", + "read_only": 1 + }, + { + "columns": 2, + "default": "0", + "fieldname": "is_salary_withheld", + "fieldtype": "Check", + "in_list_view": 1, + "label": "Is Salary Withheld" + } + ], + "istable": 1, + "links": [], + "modified": "2024-07-22 13:28:40.573807", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Payroll Employee Detail", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "read_only": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.py new file mode 100644 index 000000000..8cc426b9d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_employee_detail/payroll_employee_detail.py @@ -0,0 +1,9 @@ +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class PayrollEmployeeDetail(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.js new file mode 100644 index 000000000..838c91a6e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.js @@ -0,0 +1,472 @@ +// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +var in_progress = false; + +frappe.provide("erpnext.accounts.dimensions"); + +frappe.ui.form.on("Payroll Entry", { + onload: function (frm) { + frm.ignore_doctypes_on_cancel_all = ["Salary Slip", "Journal Entry"]; + + if (!frm.doc.posting_date) { + frm.doc.posting_date = frappe.datetime.nowdate(); + } + frm.toggle_reqd(["payroll_frequency"], !frm.doc.salary_slip_based_on_timesheet); + + erpnext.accounts.dimensions.setup_dimension_filters(frm, frm.doctype); + frm.events.department_filters(frm); + frm.events.payroll_payable_account_filters(frm); + + frappe.realtime.off("completed_overtime_slip_creation"); + frappe.realtime.on("completed_overtime_slip_creation", function () { + frm.reload_doc(); + }); + + frappe.realtime.off("completed_overtime_slip_submission"); + frappe.realtime.on("completed_overtime_slip_submission", function () { + frm.reload_doc(); + }); + + frappe.realtime.off("completed_salary_slip_creation"); + frappe.realtime.on("completed_salary_slip_creation", function () { + frm.reload_doc(); + }); + + frappe.realtime.off("completed_salary_slip_submission"); + frappe.realtime.on("completed_salary_slip_submission", function () { + frm.reload_doc(); + }); + }, + + department_filters: function (frm) { + frm.set_query("department", function () { + return { + filters: { + company: frm.doc.company, + }, + }; + }); + }, + + payroll_payable_account_filters: function (frm) { + frm.set_query("payroll_payable_account", function () { + return { + filters: { + company: frm.doc.company, + root_type: "Liability", + is_group: 0, + }, + }; + }); + }, + + refresh: (frm) => { + if (frm.doc.status === "Queued") frm.page.btn_secondary.hide(); + + if (frm.doc.docstatus === 0 && !frm.is_new()) { + frm.page.clear_primary_action(); + frm.add_custom_button(__("Get Employees"), function () { + frm.events.get_employee_details(frm); + }).toggleClass("btn-primary", !(frm.doc.employees || []).length); + } + + if ( + (frm.doc.employees || []).length && + !frappe.model.has_workflow(frm.doctype) && + !cint(frm.doc.salary_slips_created) && + frm.doc.docstatus != 2 + ) { + if (frm.doc.docstatus == 0 && !frm.is_new()) { + frm.page.clear_primary_action(); + if (frm.doc.overtime_step === "Create") { + frm.add_custom_button(__("Create Overtime Slips"), () => { + frm.call({ + doc: frm.doc, + method: "create_overtime_slips", + }); + }); + } else if (frm.doc.overtime_step === "Submit") { + frm.add_custom_button(__("Submit Overtime Slips"), () => { + frm.call({ + doc: frm.doc, + method: "submit_overtime_slips", + }); + }); + } else { + frm.page.set_primary_action(__("Create Salary Slips"), () => { + frm.save("Submit").then(() => { + frm.page.clear_primary_action(); + frm.refresh(); + }); + }); + } + } + } + + if (frm.doc.docstatus == 1) { + if (frm.custom_buttons) frm.clear_custom_buttons(); + frm.events.add_context_buttons(frm); + } + + if (frm.doc.status == "Failed" && frm.doc.error_message) { + const issue = `issue`; + let process = cint(frm.doc.salary_slips_created) ? "submission" : "creation"; + + frm.dashboard.set_headline( + __("Salary Slip {0} failed. You can resolve the {1} and retry {0}.", [ + process, + issue, + ]), + ); + + $("#jump_to_error").on("click", (e) => { + e.preventDefault(); + frm.scroll_to_field("error_message"); + }); + } + }, + + get_employee_details: function (frm) { + return frappe + .call({ + doc: frm.doc, + method: "fill_employee_details", + freeze: true, + freeze_message: __("Fetching Employees"), + }) + .then((r) => { + if (r.docs?.[0]?.employees) { + frm.dirty(); + frm.save(); + } + + frm.refresh(); + + if (r.docs?.[0]?.validate_attendance) { + render_employee_attendance(frm, r.message); + } + frm.scroll_to_field("employees"); + }); + }, + + create_salary_slip: function (frm) { + frappe.call({ + method: "run_doc_method", + args: { + method: "create_salary_slips", + dt: "Payroll Entry", + dn: frm.doc.name, + }, + }); + }, + + add_context_buttons: function (frm) { + if ( + frm.doc.salary_slips_submitted || + (frm.doc.__onload && frm.doc.__onload.submitted_ss) + ) { + frm.events.add_bank_entry_button(frm); + } else if (frm.doc.salary_slips_created && frm.doc.status !== "Queued") { + frm.add_custom_button(__("Submit Salary Slip"), function () { + submit_salary_slip(frm); + }).addClass("btn-primary"); + } else if (!frm.doc.salary_slips_created && frm.doc.status === "Failed") { + frm.add_custom_button(__("Create Salary Slips"), function () { + frm.trigger("create_salary_slip"); + }).addClass("btn-primary"); + } + }, + + add_bank_entry_button: function (frm) { + frm.call("has_bank_entries").then((r) => { + if (!r.message.has_bank_entries) { + frm.add_custom_button(__("Make Bank Entry"), function () { + make_bank_entry(frm); + }).addClass("btn-primary"); + } else if (!r.message.has_bank_entries_for_withheld_salaries) { + frm.add_custom_button(__("Release Withheld Salaries"), function () { + make_bank_entry(frm, (for_withheld_salaries = 1)); + }).addClass("btn-primary"); + } + }); + }, + + setup: function (frm) { + frm.add_fetch("company", "cost_center", "cost_center"); + + frm.set_query("payment_account", function () { + var account_types = ["Bank", "Cash"]; + return { + filters: { + account_type: ["in", account_types], + is_group: 0, + company: frm.doc.company, + }, + }; + }); + + frm.set_query("employee", "employees", () => { + let error_fields = []; + let mandatory_fields = ["company", "payroll_frequency", "start_date", "end_date"]; + + let message = __("Mandatory fields required in {0}", [__(frm.doc.doctype)]); + + mandatory_fields.forEach((field) => { + if (!frm.doc[field]) { + error_fields.push(frappe.unscrub(field)); + } + }); + + if (error_fields && error_fields.length) { + message = message + "

    • " + error_fields.join("
    • ") + "
    "; + frappe.throw({ + message: message, + indicator: "red", + title: __("Missing Fields"), + }); + } + + return { + query: "hrms.payroll.doctype.payroll_entry.payroll_entry.employee_query", + filters: frm.events.get_employee_filters(frm), + }; + }); + }, + + get_employee_filters: function (frm) { + let filters = {}; + + let fields = [ + "company", + "start_date", + "end_date", + "payroll_frequency", + "payroll_payable_account", + "currency", + "department", + "branch", + "designation", + "salary_slip_based_on_timesheet", + "grade", + ]; + + fields.forEach((field) => { + if (frm.doc[field] || frm.doc[field] === 0) { + filters[field] = frm.doc[field]; + } + }); + + if (frm.doc.employees) { + let employees = frm.doc.employees.filter((d) => d.employee).map((d) => d.employee); + if (employees && employees.length) { + filters["employees"] = employees; + } + } + return filters; + }, + + payroll_frequency: function (frm) { + frm.trigger("set_start_end_dates").then(() => { + frm.events.clear_employee_table(frm); + }); + }, + + company: function (frm) { + frm.events.clear_employee_table(frm); + erpnext.accounts.dimensions.update_dimension(frm, frm.doctype); + frm.trigger("set_payable_account_and_currency"); + }, + + set_payable_account_and_currency: function (frm) { + frappe.db.get_value("Company", { name: frm.doc.company }, "default_currency", (r) => { + frm.set_value("currency", r.default_currency); + }); + frappe.db.get_value( + "Company", + { name: frm.doc.company }, + "default_payroll_payable_account", + (r) => { + frm.set_value("payroll_payable_account", r.default_payroll_payable_account); + }, + ); + }, + + currency: function (frm) { + var company_currency; + if (!frm.doc.company) { + company_currency = erpnext.get_currency(frappe.defaults.get_default("Company")); + } else { + company_currency = erpnext.get_currency(frm.doc.company); + } + if (frm.doc.currency) { + if (company_currency != frm.doc.currency) { + frappe.call({ + method: "erpnext.setup.utils.get_exchange_rate", + args: { + from_currency: frm.doc.currency, + to_currency: company_currency, + }, + callback: function (r) { + frm.set_value("exchange_rate", flt(r.message)); + frm.set_df_property("exchange_rate", "hidden", 0); + frm.set_df_property( + "exchange_rate", + "description", + "1 " + frm.doc.currency + " = [?] " + company_currency, + ); + }, + }); + } else { + frm.set_value("exchange_rate", 1.0); + frm.set_df_property("exchange_rate", "hidden", 1); + frm.set_df_property("exchange_rate", "description", ""); + } + } + }, + + department: function (frm) { + frm.events.clear_employee_table(frm); + }, + grade: function (frm) { + frm.events.clear_employee_table(frm); + }, + designation: function (frm) { + frm.events.clear_employee_table(frm); + }, + + branch: function (frm) { + frm.events.clear_employee_table(frm); + }, + + start_date: function (frm) { + if (!in_progress && frm.doc.start_date) { + frm.trigger("set_end_date"); + } else { + // reset flag + in_progress = false; + } + frm.events.clear_employee_table(frm); + }, + + project: function (frm) { + frm.events.clear_employee_table(frm); + }, + + salary_slip_based_on_timesheet: function (frm) { + frm.toggle_reqd(["payroll_frequency"], !frm.doc.salary_slip_based_on_timesheet); + }, + + set_start_end_dates: function (frm) { + if (frm.doc.payroll_frequency) { + frappe.call({ + method: "hrms.payroll.doctype.payroll_entry.payroll_entry.get_start_end_dates", + args: { + payroll_frequency: frm.doc.payroll_frequency, + start_date: frm.doc.posting_date, + }, + callback: function (r) { + if (r.message) { + in_progress = true; + frm.set_value("start_date", r.message.start_date); + frm.set_value("end_date", r.message.end_date); + } + }, + }); + } + }, + + set_end_date: function (frm) { + frappe.call({ + method: "hrms.payroll.doctype.payroll_entry.payroll_entry.get_end_date", + args: { + frequency: frm.doc.payroll_frequency, + start_date: frm.doc.start_date, + }, + callback: function (r) { + if (r.message) { + frm.set_value("end_date", r.message.end_date); + } + }, + }); + }, + + validate_attendance: function (frm) { + if (frm.doc.validate_attendance && frm.doc.employees?.length > 0) { + frappe.call({ + method: "get_employees_with_unmarked_attendance", + args: {}, + callback: function (r) { + render_employee_attendance(frm, r.message); + }, + doc: frm.doc, + freeze: true, + freeze_message: __("Validating Employee Attendance..."), + }); + } else { + frm.fields_dict.attendance_detail_html.html(""); + } + }, + + clear_employee_table: function (frm) { + frm.clear_table("employees"); + frm.refresh(); + }, +}); + +// Submit salary slips + +const submit_salary_slip = function (frm) { + frappe.confirm( + __( + "This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?", + ), + function () { + frappe.call({ + method: "submit_salary_slips", + args: {}, + doc: frm.doc, + freeze: true, + freeze_message: __("Submitting Salary Slips and creating Journal Entry..."), + }); + }, + function () { + if (frappe.dom.freeze_count) { + frappe.dom.unfreeze(); + } + }, + ); +}; + +let make_bank_entry = function (frm, for_withheld_salaries = 0) { + const doc = frm.doc; + if (doc.payment_account) { + return frappe.call({ + method: "run_doc_method", + args: { + method: "make_bank_entry", + dt: "Payroll Entry", + dn: frm.doc.name, + args: { for_withheld_salaries: for_withheld_salaries }, + }, + callback: function () { + frappe.set_route("List", "Journal Entry", { + "Journal Entry Account.reference_name": frm.doc.name, + }); + }, + freeze: true, + freeze_message: __("Creating Payment Entries......"), + }); + } else { + frappe.msgprint(__("Payment Account is mandatory")); + frm.scroll_to_field("payment_account"); + } +}; + +let render_employee_attendance = function (frm, data) { + frm.fields_dict.attendance_detail_html.html( + frappe.render_template("employees_with_unmarked_attendance", { + data: data, + }), + ); +}; diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.json new file mode 100644 index 000000000..fb9bc205c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.json @@ -0,0 +1,366 @@ +{ + "actions": [], + "allow_copy": 1, + "autoname": "HR-PRUN-.YYYY.-.#####", + "creation": "2017-10-23 15:22:29.291323", + "doctype": "DocType", + "document_type": "Other", + "engine": "InnoDB", + "field_order": [ + "select_payroll_period", + "posting_date", + "company", + "column_break_5", + "currency", + "exchange_rate", + "payroll_payable_account", + "status", + "section_break_cypo", + "salary_slip_based_on_timesheet", + "payroll_frequency", + "start_date", + "end_date", + "column_break_13", + "deduct_tax_for_unsubmitted_tax_exemption_proof", + "employees_tab", + "section_break_17", + "branch", + "department", + "column_break_21", + "designation", + "grade", + "number_of_employees", + "section_break_24", + "employees", + "section_break_26", + "validate_attendance", + "attendance_detail_html", + "accounting_dimensions_tab", + "accounting_dimensions_section", + "cost_center", + "dimension_col_break", + "project", + "account", + "payment_account", + "column_break_35", + "bank_account", + "salary_slips_created", + "salary_slips_submitted", + "overtime_step", + "failure_details_section", + "error_message", + "section_break_41", + "amended_from", + "connections_tab" + ], + "fields": [ + { + "default": "Today", + "fieldname": "posting_date", + "fieldtype": "Date", + "label": "Posting Date", + "reqd": 1 + }, + { + "fieldname": "payroll_frequency", + "fieldtype": "Select", + "label": "Payroll Frequency", + "mandatory_depends_on": "eval:doc.salary_slip_based_on_timesheet == 0", + "options": "\nMonthly\nFortnightly\nBimonthly\nWeekly\nDaily" + }, + { + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company", + "remember_last_selected_value": 1, + "reqd": 1 + }, + { + "fieldname": "branch", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Branch", + "options": "Branch" + }, + { + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department" + }, + { + "fieldname": "designation", + "fieldtype": "Link", + "label": "Designation", + "options": "Designation" + }, + { + "fieldname": "number_of_employees", + "fieldtype": "Int", + "label": "Number Of Employees", + "read_only": 1 + }, + { + "fieldname": "employees", + "fieldtype": "Table", + "options": "Payroll Employee Detail" + }, + { + "default": "0", + "fieldname": "validate_attendance", + "fieldtype": "Check", + "label": "Validate Attendance" + }, + { + "fieldname": "attendance_detail_html", + "fieldtype": "HTML" + }, + { + "default": "0", + "fieldname": "salary_slip_based_on_timesheet", + "fieldtype": "Check", + "label": "Salary Slip Based on Timesheet" + }, + { + "fieldname": "select_payroll_period", + "fieldtype": "Tab Break", + "label": "Overview" + }, + { + "fieldname": "start_date", + "fieldtype": "Date", + "label": "Start Date", + "reqd": 1 + }, + { + "fieldname": "end_date", + "fieldtype": "Date", + "label": "End Date", + "reqd": 1 + }, + { + "default": "0", + "fieldname": "deduct_tax_for_unsubmitted_tax_exemption_proof", + "fieldtype": "Check", + "label": "Deduct Tax For Unsubmitted Tax Exemption Proof" + }, + { + "default": ":Company", + "fieldname": "cost_center", + "fieldtype": "Link", + "label": "Cost Center", + "options": "Cost Center", + "reqd": 1 + }, + { + "fieldname": "project", + "fieldtype": "Link", + "label": "Project", + "options": "Project" + }, + { + "fieldname": "account", + "fieldtype": "Section Break", + "label": "Payment Entry" + }, + { + "allow_on_submit": 1, + "description": "Select Payment Account to make Bank Entry", + "fetch_from": "bank_account.account", + "fieldname": "payment_account", + "fieldtype": "Link", + "label": "Payment Account", + "options": "Account" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Payroll Entry", + "print_hide": 1, + "read_only": 1 + }, + { + "default": "0", + "fieldname": "salary_slips_created", + "fieldtype": "Check", + "hidden": 1, + "label": "Salary Slips Created", + "no_copy": 1, + "read_only": 1 + }, + { + "default": "0", + "fieldname": "salary_slips_submitted", + "fieldtype": "Check", + "hidden": 1, + "label": "Salary Slips Submitted", + "no_copy": 1, + "read_only": 1 + }, + { + "fieldname": "accounting_dimensions_section", + "fieldtype": "Section Break", + "label": "Accounting Dimensions" + }, + { + "fieldname": "dimension_col_break", + "fieldtype": "Column Break" + }, + { + "fieldname": "bank_account", + "fieldtype": "Link", + "label": "Bank Account", + "options": "Bank Account" + }, + { + "depends_on": "company", + "fieldname": "currency", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Currency", + "options": "Currency", + "reqd": 1 + }, + { + "depends_on": "company", + "fieldname": "exchange_rate", + "fieldtype": "Float", + "label": "Exchange Rate", + "precision": "9", + "reqd": 1 + }, + { + "depends_on": "company", + "fieldname": "payroll_payable_account", + "fieldtype": "Link", + "label": "Payroll Payable Account", + "options": "Account", + "reqd": 1 + }, + { + "collapsible": 1, + "collapsible_depends_on": "error_message", + "depends_on": "eval:doc.status=='Failed';", + "fieldname": "failure_details_section", + "fieldtype": "Tab Break", + "label": "Failure Details" + }, + { + "depends_on": "eval:doc.status=='Failed';", + "fieldname": "error_message", + "fieldtype": "Small Text", + "label": "Error Message", + "no_copy": 1, + "read_only": 1 + }, + { + "fieldname": "section_break_41", + "fieldtype": "Section Break" + }, + { + "fieldname": "status", + "fieldtype": "Select", + "label": "Status", + "options": "Draft\nSubmitted\nCancelled\nQueued\nFailed", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "column_break_5", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_21", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_24", + "fieldtype": "Section Break", + "label": "Employee Details" + }, + { + "fieldname": "section_break_26", + "fieldtype": "Section Break" + }, + { + "fieldname": "column_break_35", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_13", + "fieldtype": "Column Break" + }, + { + "fieldname": "accounting_dimensions_tab", + "fieldtype": "Tab Break", + "label": "Accounting & Payment" + }, + { + "fieldname": "section_break_17", + "fieldtype": "Section Break", + "label": "Filter Employees" + }, + { + "fieldname": "employees_tab", + "fieldtype": "Tab Break", + "label": "Employees" + }, + { + "fieldname": "section_break_cypo", + "fieldtype": "Section Break" + }, + { + "fieldname": "connections_tab", + "fieldtype": "Tab Break", + "label": "Connections", + "show_dashboard": 1 + }, + { + "fieldname": "grade", + "fieldtype": "Link", + "label": "Grade", + "options": "Employee Grade" + }, + { + "fieldname": "overtime_step", + "fieldtype": "Select", + "label": "Overtime Slip Step", + "options": "\nCreate\nSubmit" + } + ], + "icon": "fa fa-cog", + "is_submittable": 1, + "links": [ + { + "link_doctype": "Overtime Slip", + "link_fieldname": "payroll_entry" + } + ], + "modified": "2025-08-25 20:05:37.733324", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Payroll Entry", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "cancel": 1, + "create": 1, + "delete": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.py new file mode 100644 index 000000000..43a9ced3a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.py @@ -0,0 +1,1775 @@ +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import json + +from dateutil.relativedelta import relativedelta + +import frappe +from frappe import _ +from frappe.desk.reportview import get_match_cond +from frappe.model.document import Document +from frappe.query_builder.functions import Coalesce, Count +from frappe.utils import ( + DATE_FORMAT, + add_days, + add_to_date, + cint, + comma_and, + date_diff, + flt, + get_link_to_form, + getdate, +) + +import erpnext +from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import ( + get_accounting_dimensions, +) +from erpnext.accounts.utils import get_fiscal_year + +from hrms.payroll.doctype.salary_slip.salary_slip_loan_utils import if_lending_app_installed +from hrms.payroll.doctype.salary_withholding.salary_withholding import link_bank_entry_in_salary_withholdings + + +class PayrollEntry(Document): + def onload(self): + if self.docstatus == 0 and not self.salary_slips_created and self.employees: + [employees_eligible_for_overtime, unsubmitted_overtime_slips] = self.get_overtime_slip_details() + overtime_step = None + if unsubmitted_overtime_slips: + overtime_step = "Submit" + elif employees_eligible_for_overtime: + overtime_step = "Create" + + self.overtime_step = overtime_step + + if not self.docstatus == 1 or self.salary_slips_submitted: + return + + # check if salary slips were manually submitted + entries = frappe.db.count("Salary Slip", {"payroll_entry": self.name, "docstatus": 1}, ["name"]) + if cint(entries) == len(self.employees): + self.set_onload("submitted_ss", True) + + def validate(self): + self.number_of_employees = len(self.employees) + self.set_status() + + def set_status(self, status=None, update=False): + if not status: + status = {0: "Draft", 1: "Submitted", 2: "Cancelled"}[self.docstatus or 0] + + if update: + self.db_set("status", status) + else: + self.status = status + + def before_submit(self): + self.validate_existing_salary_slips() + self.validate_payroll_payable_account() + if self.get_employees_with_unmarked_attendance(): + frappe.throw(_("Cannot submit. Attendance is not marked for some employees.")) + + def on_submit(self): + self.set_status(update=True, status="Submitted") + self.create_salary_slips() + + def validate_existing_salary_slips(self): + if not self.employees: + return + + existing_salary_slips = [] + SalarySlip = frappe.qb.DocType("Salary Slip") + + existing_salary_slips = ( + frappe.qb.from_(SalarySlip) + .select(SalarySlip.employee, SalarySlip.name) + .where( + (SalarySlip.employee.isin([emp.employee for emp in self.employees])) + & (SalarySlip.start_date == self.start_date) + & (SalarySlip.end_date == self.end_date) + & (SalarySlip.docstatus != 2) + ) + ).run(as_dict=True) + + if len(existing_salary_slips): + msg = _("Salary Slip already exists for {0} for the given dates").format( + comma_and([frappe.bold(d.employee) for d in existing_salary_slips]) + ) + msg += "

    " + msg += _("Reference: {0}").format( + comma_and([get_link_to_form("Salary Slip", d.name) for d in existing_salary_slips]) + ) + frappe.throw( + msg, + title=_("Duplicate Entry"), + ) + + def validate_payroll_payable_account(self): + payroll_payable_account_type = frappe.db.get_value( + "Account", self.payroll_payable_account, "account_type" + ) + if payroll_payable_account_type != "Payable": + frappe.throw( + _( + "Account type should be set {0} for payroll payable account {1}, please set and try again" + ).format( + frappe.bold("Payable"), + frappe.bold(get_link_to_form("Account", self.payroll_payable_account)), + ) + ) + + def on_cancel(self): + self.ignore_linked_doctypes = ("GL Entry", "Salary Slip", "Journal Entry") + + self.delete_linked_salary_slips() + self.cancel_linked_journal_entries() + self.cancel_linked_payment_ledger_entries() + + # reset flags & update status + self.db_set("salary_slips_created", 0) + self.db_set("salary_slips_submitted", 0) + self.set_status(update=True, status="Cancelled") + self.db_set("error_message", "") + + def on_discard(self): + self.db_set("status", "Cancelled") + + def cancel(self): + if len(self.get_linked_salary_slips()) > 50: + msg = _("Payroll Entry cancellation is queued. It may take a few minutes") + msg += "
    " + msg += _( + "In case of any error during this background process, the system will add a comment about the error on this Payroll Entry and revert to the Submitted status" + ) + frappe.msgprint( + msg, + indicator="blue", + title=_("Cancellation Queued"), + ) + self.queue_action("cancel", timeout=3000) + else: + self._cancel() + + def delete_linked_salary_slips(self): + salary_slips = self.get_linked_salary_slips() + + # cancel & delete salary slips + for salary_slip in salary_slips: + if salary_slip.docstatus == 1: + frappe.get_doc("Salary Slip", salary_slip.name).cancel() + frappe.delete_doc("Salary Slip", salary_slip.name) + + def cancel_linked_journal_entries(self): + journal_entries = frappe.get_all( + "Journal Entry Account", + {"reference_type": self.doctype, "reference_name": self.name, "docstatus": 1}, + pluck="parent", + distinct=True, + ) + + # cancel Journal Entries + for je in journal_entries: + journal_entry_payment_ledgers = frappe.get_all( + "Payment Ledger Entry", + {"voucher_type": "Journal Entry", "voucher_no": je, "docstatus": 1}, + distinct=True, + ) + # cancel linked payment ledger entry + for pl in journal_entry_payment_ledgers: + frappe.get_doc("Payment Ledger Entry", pl).cancel() + + frappe.get_doc("Journal Entry", je).cancel() + + def cancel_linked_payment_ledger_entries(self): + payment_ledgers = frappe.get_all( + "Payment Ledger Entry", + {"against_voucher_type": self.doctype, "against_voucher_no": self.name, "docstatus": 1}, + distinct=True, + ) + + # cancel payment ledger entry + for pl in payment_ledgers: + frappe.get_doc("Payment Ledger Entry", pl).cancel() + + def get_linked_salary_slips(self): + return frappe.get_all("Salary Slip", {"payroll_entry": self.name}, ["name", "docstatus"]) + + def make_filters(self): + filters = frappe._dict( + company=self.company, + branch=self.branch, + department=self.department, + designation=self.designation, + grade=self.grade, + currency=self.currency, + start_date=self.start_date, + end_date=self.end_date, + payroll_payable_account=self.payroll_payable_account, + salary_slip_based_on_timesheet=self.salary_slip_based_on_timesheet, + ) + + if not self.salary_slip_based_on_timesheet: + filters.update(dict(payroll_frequency=self.payroll_frequency)) + + return filters + + @frappe.whitelist() + def fill_employee_details(self): + filters = self.make_filters() + employees = get_employee_list(filters=filters, as_dict=True, ignore_match_conditions=True) + self.set("employees", []) + + if not employees: + error_msg = _( + "No employees found for the mentioned criteria:
    Company: {0}
    Currency: {1}
    Payroll Payable Account: {2}" + ).format( + frappe.bold(self.company), + frappe.bold(self.currency), + frappe.bold(self.payroll_payable_account), + ) + if self.branch: + error_msg += "
    " + _("Branch: {0}").format(frappe.bold(self.branch)) + if self.department: + error_msg += "
    " + _("Department: {0}").format(frappe.bold(self.department)) + if self.designation: + error_msg += "
    " + _("Designation: {0}").format(frappe.bold(self.designation)) + if self.start_date: + error_msg += "
    " + _("Start date: {0}").format(frappe.bold(self.start_date)) + if self.end_date: + error_msg += "
    " + _("End date: {0}").format(frappe.bold(self.end_date)) + frappe.throw(error_msg, title=_("No employees found")) + + self.set("employees", employees) + self.number_of_employees = len(self.employees) + self.update_employees_with_withheld_salaries() + + return self.get_employees_with_unmarked_attendance() + + def update_employees_with_withheld_salaries(self): + withheld_salaries = get_salary_withholdings(self.start_date, self.end_date, pluck="employee") + + for employee in self.employees: + if employee.employee in withheld_salaries: + employee.is_salary_withheld = 1 + + @frappe.whitelist() + def create_salary_slips(self): + """ + Creates salary slip for selected employees if already not created + """ + self.check_permission("write") + employees = [emp.employee for emp in self.employees] + + if employees: + args = frappe._dict( + { + "salary_slip_based_on_timesheet": self.salary_slip_based_on_timesheet, + "payroll_frequency": self.payroll_frequency, + "start_date": self.start_date, + "end_date": self.end_date, + "company": self.company, + "posting_date": self.posting_date, + "deduct_tax_for_unsubmitted_tax_exemption_proof": self.deduct_tax_for_unsubmitted_tax_exemption_proof, + "payroll_entry": self.name, + "exchange_rate": self.exchange_rate, + "currency": self.currency, + } + ) + if len(employees) > 30 or frappe.flags.enqueue_payroll_entry: + self.db_set("status", "Queued") + frappe.enqueue( + create_salary_slips_for_employees, + timeout=3000, + employees=employees, + args=args, + publish_progress=False, + ) + frappe.msgprint( + _("Salary Slip creation is queued. It may take a few minutes"), + alert=True, + indicator="blue", + ) + else: + create_salary_slips_for_employees(employees, args, publish_progress=False) + # since this method is called via frm.call this doc needs to be updated manually + self.reload() + + def get_sal_slip_list(self, ss_status, as_dict=False): + """ + Returns list of salary slips based on selected criteria + """ + + ss = frappe.qb.DocType("Salary Slip") + ss_list = ( + frappe.qb.from_(ss) + .select(ss.name, ss.salary_structure) + .where( + (ss.docstatus == ss_status) + & (ss.start_date >= self.start_date) + & (ss.end_date <= self.end_date) + & (ss.payroll_entry == self.name) + & ((ss.journal_entry.isnull()) | (ss.journal_entry == "")) + & (Coalesce(ss.salary_slip_based_on_timesheet, 0) == self.salary_slip_based_on_timesheet) + ) + ).run(as_dict=as_dict) + + return ss_list + + @frappe.whitelist() + def submit_salary_slips(self): + self.check_permission("write") + salary_slips = self.get_sal_slip_list(ss_status=0) + + if len(salary_slips) > 30 or frappe.flags.enqueue_payroll_entry: + self.db_set("status", "Queued") + frappe.enqueue( + submit_salary_slips_for_employees, + timeout=3000, + payroll_entry=self, + salary_slips=salary_slips, + publish_progress=False, + ) + frappe.msgprint( + _("Salary Slip submission is queued. It may take a few minutes"), + alert=True, + indicator="blue", + ) + else: + submit_salary_slips_for_employees(self, salary_slips, publish_progress=False) + + def email_salary_slip(self, submitted_ss): + if frappe.db.get_single_value("Payroll Settings", "email_salary_slip_to_employee"): + for ss in submitted_ss: + ss.email_salary_slip() + + def get_salary_component_account(self, salary_component): + account = frappe.db.get_value( + "Salary Component Account", + {"parent": salary_component, "company": self.company}, + "account", + cache=True, + ) + + if not account: + frappe.throw( + _("Please set account in Salary Component {0}").format( + get_link_to_form("Salary Component", salary_component) + ) + ) + + return account + + def get_salary_components(self, component_type): + salary_slips = self.get_sal_slip_list(ss_status=1, as_dict=True) + + if salary_slips: + ss = frappe.qb.DocType("Salary Slip") + ssd = frappe.qb.DocType("Salary Detail") + salary_components = ( + frappe.qb.from_(ss) + .join(ssd) + .on(ss.name == ssd.parent) + .select( + ssd.salary_component, + ssd.amount, + ssd.parentfield, + ssd.additional_salary, + ss.salary_structure, + ss.employee, + ) + .where( + (ssd.parentfield == component_type) + & (ss.name.isin([d.name for d in salary_slips])) + & ( + (ssd.do_not_include_in_total == 0) + | ((ssd.do_not_include_in_total == 1) & (ssd.do_not_include_in_accounts == 0)) + ) + ) + ).run(as_dict=True) + + return salary_components + + def get_salary_component_total( + self, + component_type=None, + employee_wise_accounting_enabled=False, + ): + salary_components = self.get_salary_components(component_type) + if salary_components: + component_dict = {} + + for item in salary_components: + employee_cost_centers = self.get_payroll_cost_centers_for_employee( + item.employee, item.salary_structure + ) + employee_advance = self.get_advance_deduction(component_type, item) + + for cost_center, percentage in employee_cost_centers.items(): + amount_against_cost_center = flt(item.amount) * percentage / 100 + + if employee_advance: + self.add_advance_deduction_entry( + item, amount_against_cost_center, cost_center, employee_advance + ) + else: + key = (item.salary_component, cost_center) + component_dict[key] = component_dict.get(key, 0) + amount_against_cost_center + + if employee_wise_accounting_enabled: + self.set_employee_based_payroll_payable_entries( + component_type, item.employee, amount_against_cost_center + ) + + account_details = self.get_account(component_dict=component_dict) + + return account_details + + def get_advance_deduction(self, component_type: str, item: dict) -> str | None: + if component_type == "deductions" and item.additional_salary: + ref_doctype, ref_docname = frappe.db.get_value( + "Additional Salary", + item.additional_salary, + ["ref_doctype", "ref_docname"], + ) + + if ref_doctype == "Employee Advance": + return ref_docname + return + + def add_advance_deduction_entry( + self, + item: dict, + amount: float, + cost_center: str, + employee_advance: str, + ) -> None: + self._advance_deduction_entries.append( + { + "employee": item.employee, + "account": self.get_salary_component_account(item.salary_component), + "amount": amount, + "cost_center": cost_center, + "reference_type": "Employee Advance", + "reference_name": employee_advance, + } + ) + + def set_accounting_entries_for_advance_deductions( + self, + accounts: list, + currencies: list, + company_currency: str, + accounting_dimensions: list, + precision: int, + payable_amount: float, + ): + for entry in self._advance_deduction_entries: + payable_amount = self.get_accounting_entries_and_payable_amount( + entry.get("account"), + entry.get("cost_center"), + entry.get("amount"), + currencies, + company_currency, + payable_amount, + accounting_dimensions, + precision, + entry_type="credit", + accounts=accounts, + party=entry.get("employee"), + reference_type="Employee Advance", + reference_name=entry.get("reference_name"), + is_advance="Yes", + ) + + return payable_amount + + def set_employee_based_payroll_payable_entries( + self, component_type, employee, amount, salary_structure=None + ): + employee_details = self.employee_based_payroll_payable_entries.setdefault(employee, {}) + + employee_details.setdefault(component_type, 0) + employee_details[component_type] += amount + + if salary_structure and "salary_structure" not in employee_details: + employee_details["salary_structure"] = salary_structure + + def get_payroll_cost_centers_for_employee(self, employee, salary_structure): + if not hasattr(self, "employee_cost_centers"): + self.employee_cost_centers = {} + + if not self.employee_cost_centers.get(employee): + SalaryStructureAssignment = frappe.qb.DocType("Salary Structure Assignment") + EmployeeCostCenter = frappe.qb.DocType("Employee Cost Center") + assignment_subquery = ( + frappe.qb.from_(SalaryStructureAssignment) + .select(SalaryStructureAssignment.name) + .where( + (SalaryStructureAssignment.employee == employee) + & (SalaryStructureAssignment.salary_structure == salary_structure) + & (SalaryStructureAssignment.docstatus == 1) + & (SalaryStructureAssignment.from_date <= self.end_date) + ) + .orderby(SalaryStructureAssignment.from_date, order=frappe.qb.desc) + .limit(1) + ) + cost_centers = dict( + ( + frappe.qb.from_(EmployeeCostCenter) + .select(EmployeeCostCenter.cost_center, EmployeeCostCenter.percentage) + .where(EmployeeCostCenter.parent == assignment_subquery) + ).run(as_list=True) + ) + + if not cost_centers: + default_cost_center, department = frappe.get_cached_value( + "Employee", employee, ["payroll_cost_center", "department"] + ) + + if not default_cost_center and department: + default_cost_center = frappe.get_cached_value( + "Department", department, "payroll_cost_center" + ) + + if not default_cost_center: + default_cost_center = self.cost_center + + cost_centers = {default_cost_center: 100} + + self.employee_cost_centers.setdefault(employee, cost_centers) + + return self.employee_cost_centers.get(employee, {}) + + def get_account(self, component_dict=None): + account_dict = {} + for key, amount in component_dict.items(): + component, cost_center = key + account = self.get_salary_component_account(component) + accounting_key = (account, cost_center) + + account_dict[accounting_key] = account_dict.get(accounting_key, 0) + amount + + return account_dict + + def make_accrual_jv_entry(self, submitted_salary_slips): + self.check_permission("write") + employee_wise_accounting_enabled = frappe.db.get_single_value( + "Payroll Settings", "process_payroll_accounting_entry_based_on_employee" + ) + self.employee_based_payroll_payable_entries = {} + self._advance_deduction_entries = [] + + earnings = ( + self.get_salary_component_total( + component_type="earnings", + employee_wise_accounting_enabled=employee_wise_accounting_enabled, + ) + or {} + ) + + deductions = ( + self.get_salary_component_total( + component_type="deductions", + employee_wise_accounting_enabled=employee_wise_accounting_enabled, + ) + or {} + ) + + precision = frappe.get_precision("Journal Entry Account", "debit_in_account_currency") + + if earnings or deductions: + accounts = [] + currencies = [] + payable_amount = 0 + accounting_dimensions = get_accounting_dimensions() or [] + company_currency = erpnext.get_company_currency(self.company) + + payable_amount = self.get_payable_amount_for_earnings_and_deductions( + accounts, + earnings, + deductions, + currencies, + company_currency, + accounting_dimensions, + precision, + payable_amount, + employee_wise_accounting_enabled, + ) + + payable_amount = self.set_accounting_entries_for_advance_deductions( + accounts, + currencies, + company_currency, + accounting_dimensions, + precision, + payable_amount, + ) + + self.set_payable_amount_against_payroll_payable_account( + accounts, + currencies, + company_currency, + accounting_dimensions, + precision, + payable_amount, + self.payroll_payable_account, + employee_wise_accounting_enabled, + ) + + # when party is not required, skip the validation in journal & gl entry + self.make_journal_entry( + accounts, + currencies, + self.payroll_payable_account, + voucher_type="Journal Entry", + user_remark=_("Accrual Journal Entry for salaries from {0} to {1}").format( + self.start_date, self.end_date + ), + submit_journal_entry=True, + submitted_salary_slips=submitted_salary_slips, + employee_wise_accounting_enabled=employee_wise_accounting_enabled, + ) + + def make_journal_entry( + self, + accounts, + currencies, + payroll_payable_account=None, + voucher_type="Journal Entry", + user_remark="", + submitted_salary_slips: list | None = None, + submit_journal_entry=False, + employee_wise_accounting_enabled=False, + ) -> str: + multi_currency = 0 + if len(currencies) > 1: + multi_currency = 1 + + journal_entry = frappe.new_doc("Journal Entry") + journal_entry.voucher_type = voucher_type + journal_entry.user_remark = user_remark + journal_entry.company = self.company + journal_entry.posting_date = self.posting_date + journal_entry.party_not_required = True if not employee_wise_accounting_enabled else False + + journal_entry.set("accounts", accounts) + journal_entry.multi_currency = multi_currency + + if voucher_type == "Journal Entry": + journal_entry.title = payroll_payable_account + + journal_entry.save(ignore_permissions=True) + + try: + if submit_journal_entry: + journal_entry.submit() + + if submitted_salary_slips: + self.set_journal_entry_in_salary_slips(submitted_salary_slips, jv_name=journal_entry.name) + + except Exception as e: + if type(e) in (str, list, tuple): + frappe.msgprint(e) + + self.log_error("Journal Entry creation against Salary Slip failed") + raise + + return journal_entry + + def get_payable_amount_for_earnings_and_deductions( + self, + accounts, + earnings, + deductions, + currencies, + company_currency, + accounting_dimensions, + precision, + payable_amount, + employee_wise_accounting_enabled, + ): + # Earnings + for acc_cc, amount in earnings.items(): + payable_amount = self.get_accounting_entries_and_payable_amount( + acc_cc[0], + acc_cc[1] or self.cost_center, + amount, + currencies, + company_currency, + payable_amount, + accounting_dimensions, + precision, + entry_type="debit", + accounts=accounts, + ) + + # Deductions + for acc_cc, amount in deductions.items(): + payable_amount = self.get_accounting_entries_and_payable_amount( + acc_cc[0], + acc_cc[1] or self.cost_center, + amount, + currencies, + company_currency, + payable_amount, + accounting_dimensions, + precision, + entry_type="credit", + accounts=accounts, + ) + + return payable_amount + + def set_payable_amount_against_payroll_payable_account( + self, + accounts, + currencies, + company_currency, + accounting_dimensions, + precision, + payable_amount, + payroll_payable_account, + employee_wise_accounting_enabled, + ): + # Payable amount + if employee_wise_accounting_enabled: + """ + employee_based_payroll_payable_entries = { + 'HREMP00004': { + 'earnings': 83332.0, + 'deductions': 2000.0 + }, + 'HREMP00005': { + 'earnings': 50000.0, + 'deductions': 2000.0 + } + } + """ + for employee, employee_details in self.employee_based_payroll_payable_entries.items(): + payable_amount = (employee_details.get("earnings", 0) or 0) - ( + employee_details.get("deductions", 0) or 0 + ) + + payable_amount = self.get_accounting_entries_and_payable_amount( + payroll_payable_account, + self.cost_center, + payable_amount, + currencies, + company_currency, + 0, + accounting_dimensions, + precision, + entry_type="payable", + party=employee, + accounts=accounts, + ) + else: + payable_amount = self.get_accounting_entries_and_payable_amount( + payroll_payable_account, + self.cost_center, + payable_amount, + currencies, + company_currency, + 0, + accounting_dimensions, + precision, + entry_type="payable", + accounts=accounts, + ) + + def get_accounting_entries_and_payable_amount( + self, + account, + cost_center, + amount, + currencies, + company_currency, + payable_amount, + accounting_dimensions, + precision, + entry_type="credit", + party=None, + accounts=None, + reference_type=None, + reference_name=None, + is_advance=None, + ): + exchange_rate, amt = self.get_amount_and_exchange_rate_for_journal_entry( + account, amount, company_currency, currencies + ) + + row = { + "account": account, + "exchange_rate": flt(exchange_rate), + "cost_center": cost_center, + "project": self.project, + } + + if entry_type == "debit": + payable_amount += flt(amount, precision) + row.update( + { + "debit_in_account_currency": flt(amt, precision), + } + ) + elif entry_type == "credit": + payable_amount -= flt(amount, precision) + row.update( + { + "credit_in_account_currency": flt(amt, precision), + } + ) + else: + row.update( + { + "credit_in_account_currency": flt(amt, precision), + "reference_type": self.doctype, + "reference_name": self.name, + } + ) + + if party: + row.update( + { + "party_type": "Employee", + "party": party, + } + ) + + if reference_type: + row.update( + { + "reference_type": reference_type, + "reference_name": reference_name, + "is_advance": is_advance, + } + ) + + self.update_accounting_dimensions( + row, + accounting_dimensions, + ) + + if amt: + accounts.append(row) + + return payable_amount + + def update_accounting_dimensions(self, row, accounting_dimensions): + for dimension in accounting_dimensions: + row.update({dimension: self.get(dimension)}) + + return row + + def get_amount_and_exchange_rate_for_journal_entry(self, account, amount, company_currency, currencies): + conversion_rate = 1 + exchange_rate = self.exchange_rate + account_currency = frappe.db.get_value("Account", account, "account_currency") + + if account_currency not in currencies: + currencies.append(account_currency) + + if company_currency not in currencies: + currencies.append(company_currency) + + if account_currency == company_currency: + conversion_rate = self.exchange_rate + exchange_rate = 1 + + amount = flt(amount) * flt(conversion_rate) + + return exchange_rate, amount + + @frappe.whitelist() + def has_bank_entries(self) -> dict[str, bool]: + je = frappe.qb.DocType("Journal Entry") + jea = frappe.qb.DocType("Journal Entry Account") + + bank_entries = ( + frappe.qb.from_(je) + .inner_join(jea) + .on(je.name == jea.parent) + .select(je.name) + .where( + (je.voucher_type == "Bank Entry") + & (jea.reference_name == self.name) + & (jea.reference_type == "Payroll Entry") + ) + ).run(as_dict=True) + + return { + "has_bank_entries": bool(bank_entries), + "has_bank_entries_for_withheld_salaries": not any( + employee.is_salary_withheld for employee in self.employees + ), + } + + @frappe.whitelist() + def make_bank_entry(self, for_withheld_salaries=False): + self.check_permission("write") + self.employee_based_payroll_payable_entries = {} + employee_wise_accounting_enabled = frappe.db.get_single_value( + "Payroll Settings", "process_payroll_accounting_entry_based_on_employee" + ) + + salary_slip_total = 0 + salary_details = self.get_salary_slip_details(for_withheld_salaries) + + for salary_detail in salary_details: + statistical_component = frappe.db.get_value( + "Salary Component", salary_detail.salary_component, "statistical_component", cache=True + ) + if not statistical_component: + parent_field = salary_detail.parentfield + if parent_field in ("earnings", "deductions"): + if employee_wise_accounting_enabled: + self.set_employee_based_payroll_payable_entries( + salary_detail.parentfield, + salary_detail.employee, + salary_detail.amount, + salary_detail.salary_structure, + ) + if parent_field == "earnings": + salary_slip_total += salary_detail.amount + elif parent_field == "deductions": + salary_slip_total -= salary_detail.amount + + total_loan_repayment = self.process_loan_repayments_for_bank_entry(salary_details) or 0 + salary_slip_total -= total_loan_repayment + + bank_entry = None + if salary_slip_total > 0: + remark = "withheld salaries" if for_withheld_salaries else "salaries" + bank_entry = self.set_accounting_entries_for_bank_entry( + salary_slip_total, remark, employee_wise_accounting_enabled + ) + + if for_withheld_salaries: + link_bank_entry_in_salary_withholdings(salary_details, bank_entry.name) + + return bank_entry + + def get_salary_slip_details(self, for_withheld_salaries=False): + SalarySlip = frappe.qb.DocType("Salary Slip") + SalaryDetail = frappe.qb.DocType("Salary Detail") + + query = ( + frappe.qb.from_(SalarySlip) + .join(SalaryDetail) + .on(SalarySlip.name == SalaryDetail.parent) + .select( + SalarySlip.name, + SalarySlip.employee, + SalarySlip.salary_structure, + SalarySlip.salary_withholding_cycle, + SalaryDetail.salary_component, + SalaryDetail.amount, + SalaryDetail.parentfield, + ) + .where( + (SalarySlip.docstatus == 1) + & (SalarySlip.start_date >= self.start_date) + & (SalarySlip.end_date <= self.end_date) + & (SalarySlip.payroll_entry == self.name) + & ( + (SalaryDetail.do_not_include_in_total == 0) + | ( + (SalaryDetail.do_not_include_in_total == 1) + & (SalaryDetail.do_not_include_in_accounts == 0) + ) + ) + ) + ) + + if "lending" in frappe.get_installed_apps(): + query = query.select(SalarySlip.total_loan_repayment) + + if for_withheld_salaries: + query = query.where(SalarySlip.status == "Withheld") + else: + query = query.where(SalarySlip.status != "Withheld") + return query.run(as_dict=True) + + @if_lending_app_installed + def process_loan_repayments_for_bank_entry(self, salary_details: list[dict]) -> float: + unique_salary_slips = {row["employee"]: row for row in salary_details}.values() + total_loan_repayment = sum(flt(slip.get("total_loan_repayment", 0)) for slip in unique_salary_slips) + + if self.employee_based_payroll_payable_entries: + for salary_slip in unique_salary_slips: + if salary_slip.get("total_loan_repayment"): + self.set_employee_based_payroll_payable_entries( + "total_loan_repayment", + salary_slip.employee, + salary_slip.total_loan_repayment, + salary_slip.salary_structure, + ) + + return total_loan_repayment + + def set_accounting_entries_for_bank_entry( + self, je_payment_amount, user_remark, employee_wise_accounting_enabled + ): + payroll_payable_account = self.payroll_payable_account + precision = frappe.get_precision("Journal Entry Account", "debit_in_account_currency") + + accounts = [] + currencies = [] + company_currency = erpnext.get_company_currency(self.company) + accounting_dimensions = get_accounting_dimensions() or [] + + exchange_rate, amount = self.get_amount_and_exchange_rate_for_journal_entry( + self.payment_account, je_payment_amount, company_currency, currencies + ) + accounts.append( + self.update_accounting_dimensions( + { + "account": self.payment_account, + "bank_account": self.bank_account, + "credit_in_account_currency": flt(amount, precision), + "exchange_rate": flt(exchange_rate), + "cost_center": self.cost_center, + }, + accounting_dimensions, + ) + ) + + if self.employee_based_payroll_payable_entries: + for employee, employee_details in self.employee_based_payroll_payable_entries.items(): + je_payment_amount = ( + (employee_details.get("earnings", 0) or 0) + - (employee_details.get("deductions", 0) or 0) + - (employee_details.get("total_loan_repayment", 0) or 0) + ) + + if not je_payment_amount: + continue + + exchange_rate, amount = self.get_amount_and_exchange_rate_for_journal_entry( + self.payment_account, je_payment_amount, company_currency, currencies + ) + + cost_centers = self.get_payroll_cost_centers_for_employee( + employee, employee_details.get("salary_structure") + ) + + for cost_center, percentage in cost_centers.items(): + amount_against_cost_center = flt(amount) * percentage / 100 + accounts.append( + self.update_accounting_dimensions( + { + "account": payroll_payable_account, + "debit_in_account_currency": flt(amount_against_cost_center, precision), + "exchange_rate": flt(exchange_rate), + "reference_type": self.doctype, + "reference_name": self.name, + "party_type": "Employee", + "party": employee, + "cost_center": cost_center, + }, + accounting_dimensions, + ) + ) + else: + exchange_rate, amount = self.get_amount_and_exchange_rate_for_journal_entry( + payroll_payable_account, je_payment_amount, company_currency, currencies + ) + accounts.append( + self.update_accounting_dimensions( + { + "account": payroll_payable_account, + "debit_in_account_currency": flt(amount, precision), + "exchange_rate": flt(exchange_rate), + "reference_type": self.doctype, + "reference_name": self.name, + "cost_center": self.cost_center, + }, + accounting_dimensions, + ) + ) + + return self.make_journal_entry( + accounts, + currencies, + voucher_type="Bank Entry", + user_remark=_("Payment of {0} from {1} to {2}").format( + _(user_remark), self.start_date, self.end_date + ), + employee_wise_accounting_enabled=employee_wise_accounting_enabled, + ) + + def set_journal_entry_in_salary_slips(self, submitted_salary_slips, jv_name=None): + SalarySlip = frappe.qb.DocType("Salary Slip") + ( + frappe.qb.update(SalarySlip) + .set(SalarySlip.journal_entry, jv_name) + .where(SalarySlip.name.isin([salary_slip.name for salary_slip in submitted_salary_slips])) + ).run() + + def set_start_end_dates(self): + self.update( + get_start_end_dates(self.payroll_frequency, self.start_date or self.posting_date, self.company) + ) + + @frappe.whitelist() + def get_employees_with_unmarked_attendance(self) -> list[dict] | None: + if not self.validate_attendance: + return + + unmarked_attendance = [] + employee_details = self.get_employee_and_attendance_details() + default_holiday_list = frappe.db.get_value( + "Company", self.company, "default_holiday_list", cache=True + ) + + for emp in self.employees: + details = next((record for record in employee_details if record.name == emp.employee), None) + if not details: + continue + + start_date, end_date = self.get_payroll_dates_for_employee(details) + holidays = self.get_holidays_count( + details.holiday_list or default_holiday_list, start_date, end_date + ) + payroll_days = date_diff(end_date, start_date) + 1 + unmarked_days = payroll_days - (holidays + details.attendance_count) + + if unmarked_days > 0: + unmarked_attendance.append( + { + "employee": emp.employee, + "employee_name": emp.employee_name, + "unmarked_days": unmarked_days, + } + ) + + return unmarked_attendance + + def get_employee_and_attendance_details(self) -> list[dict]: + """Returns a list of employee and attendance details like + [ + { + "name": "HREMP00001", + "date_of_joining": "2019-01-01", + "relieving_date": "2022-01-01", + "holiday_list": "Holiday List Company", + "attendance_count": 22 + } + ] + """ + employees = [emp.employee for emp in self.employees] + + Employee = frappe.qb.DocType("Employee") + Attendance = frappe.qb.DocType("Attendance") + + return ( + frappe.qb.from_(Employee) + .left_join(Attendance) + .on( + (Employee.name == Attendance.employee) + & (Attendance.attendance_date.between(self.start_date, self.end_date)) + & (Attendance.docstatus == 1) + ) + .select( + Employee.name, + Employee.date_of_joining, + Employee.relieving_date, + Employee.holiday_list, + Count(Attendance.name).as_("attendance_count"), + ) + .where(Employee.name.isin(employees)) + .groupby(Employee.name) + ).run(as_dict=True) + + def get_payroll_dates_for_employee(self, employee_details: dict) -> tuple[str, str]: + start_date = self.start_date + if employee_details.date_of_joining > getdate(self.start_date): + start_date = employee_details.date_of_joining + + end_date = self.end_date + if employee_details.relieving_date and employee_details.relieving_date < getdate(self.end_date): + end_date = employee_details.relieving_date + + return start_date, end_date + + def get_holidays_count(self, holiday_list: str, start_date: str, end_date: str) -> float: + """Returns number of holidays between start and end dates in the holiday list""" + if not hasattr(self, "_holidays_between_dates"): + self._holidays_between_dates = {} + + key = f"{start_date}-{end_date}-{holiday_list}" + if key in self._holidays_between_dates: + return self._holidays_between_dates[key] + + holidays = frappe.db.get_all( + "Holiday", + filters={"parent": holiday_list, "holiday_date": ("between", [start_date, end_date])}, + fields=[{"COUNT": "*", "as": "holidays_count"}], + )[0] + + if holidays: + self._holidays_between_dates[key] = holidays.holidays_count + + return self._holidays_between_dates.get(key) or 0 + + @frappe.whitelist() + def create_overtime_slips(self): + from hrms.hr.doctype.overtime_slip.overtime_slip import ( + create_overtime_slips_for_employees, + filter_employees_for_overtime_slip_creation, + ) + + employee_list = [emp.employee for emp in self.employees] + employees = filter_employees_for_overtime_slip_creation(self.start_date, self.end_date, employee_list) + + if employees: + args = frappe._dict( + { + "posting_date": self.posting_date, + "start_date": self.start_date, + "end_date": self.end_date, + "company": self.company, + "currency": self.currency, + "payroll_entry": self.name, + } + ) + if len(employees) > 30 or frappe.flags.enqueue_payroll_entry: + self.db_set("status", "Queued") + frappe.enqueue( + create_overtime_slips_for_employees, + timeout=3000, + employees=employees, + args=args, + ) + frappe.msgprint( + _("Overtime Slip creation is queued. It may take a few minutes"), + alert=True, + indicator="blue", + ) + else: + create_overtime_slips_for_employees(employees, args) + + @frappe.whitelist() + def submit_overtime_slips(self): + from hrms.hr.doctype.overtime_slip.overtime_slip import ( + submit_overtime_slips_for_employees, + ) + + overtime_slips = self.get_unsubmitted_overtime_slips() + if overtime_slips: + if len(overtime_slips) > 30 or frappe.flags.enqueue_payroll_entry: + self.db_set("status", "Queued") + frappe.enqueue( + submit_overtime_slips_for_employees, + timeout=3000, + overtime_slips=overtime_slips, + payroll_entry=self.name, + ) + frappe.msgprint( + _("Overtime Slip submission is queued. It may take a few minutes"), + alert=True, + indicator="blue", + ) + else: + submit_overtime_slips_for_employees(overtime_slips, self.name) + + @frappe.whitelist() + def get_unsubmitted_overtime_slips(self, limit=None): + OvertimeSlip = frappe.qb.DocType("Overtime Slip") + query = ( + frappe.qb.from_(OvertimeSlip) + .select(OvertimeSlip.name) + .where((OvertimeSlip.docstatus == 0) & (OvertimeSlip.payroll_entry == self.name)) + ) + if limit: + query = query.limit(limit) + + return query.run(pluck="name") + + @frappe.whitelist() + def get_overtime_slip_details(self): + from hrms.hr.doctype.overtime_slip.overtime_slip import filter_employees_for_overtime_slip_creation + + employee_eligible_for_overtime = unsubmitted_overtime_slips = [] + + if frappe.db.get_single_value("Payroll Settings", "create_overtime_slip"): + employees = [emp.employee for emp in self.employees] + employee_eligible_for_overtime = filter_employees_for_overtime_slip_creation( + self.start_date, self.end_date, employees + ) + unsubmitted_overtime_slips = self.get_unsubmitted_overtime_slips(limit=1) + + return [len(employee_eligible_for_overtime) > 0, len(unsubmitted_overtime_slips) > 0] + + +def get_salary_structure( + company: str, currency: str, salary_slip_based_on_timesheet: int, payroll_frequency: str +) -> list[str]: + SalaryStructure = frappe.qb.DocType("Salary Structure") + + query = ( + frappe.qb.from_(SalaryStructure) + .select(SalaryStructure.name) + .where( + (SalaryStructure.docstatus == 1) + & (SalaryStructure.is_active == "Yes") + & (SalaryStructure.company == company) + & (SalaryStructure.currency == currency) + & (SalaryStructure.salary_slip_based_on_timesheet == salary_slip_based_on_timesheet) + ) + ) + + if not salary_slip_based_on_timesheet: + query = query.where(SalaryStructure.payroll_frequency == payroll_frequency) + + return query.run(pluck=True) + + +def get_filtered_employees( + sal_struct, + filters, + searchfield=None, + search_string=None, + fields=None, + as_dict=False, + limit=None, + offset=None, + ignore_match_conditions=False, +) -> list: + SalaryStructureAssignment = frappe.qb.DocType("Salary Structure Assignment") + Employee = frappe.qb.DocType("Employee") + + query = ( + frappe.qb.from_(Employee) + .join(SalaryStructureAssignment) + .on(Employee.name == SalaryStructureAssignment.employee) + .where( + (SalaryStructureAssignment.docstatus == 1) + & (Employee.status != "Inactive") + & (Employee.company == filters.company) + & ((Employee.date_of_joining <= filters.end_date) | (Employee.date_of_joining.isnull())) + & ((Employee.relieving_date >= filters.start_date) | (Employee.relieving_date.isnull())) + & (SalaryStructureAssignment.salary_structure.isin(sal_struct)) + & (SalaryStructureAssignment.payroll_payable_account == filters.payroll_payable_account) + & (filters.end_date >= SalaryStructureAssignment.from_date) + ) + ) + + query = set_fields_to_select(query, fields) + query = set_searchfield(query, searchfield, search_string, qb_object=Employee) + query = set_filter_conditions(query, filters, qb_object=Employee) + + if not ignore_match_conditions: + query = set_match_conditions(query=query, qb_object=Employee) + + if limit: + query = query.limit(limit) + + if offset: + query = query.offset(offset) + + return query.run(as_dict=as_dict) + + +def set_fields_to_select(query, fields: list[str] | None = None): + default_fields = ["employee", "employee_name", "department", "designation"] + + if fields: + query = query.select(*fields).distinct() + else: + query = query.select(*default_fields).distinct() + + return query + + +def set_searchfield(query, searchfield, search_string, qb_object): + if searchfield: + query = query.where( + (qb_object[searchfield].like("%" + search_string + "%")) + | (qb_object.employee_name.like("%" + search_string + "%")) + ) + + return query + + +def set_filter_conditions(query, filters, qb_object): + """Append optional filters to employee query""" + if filters.get("employees"): + query = query.where(qb_object.name.notin(filters.get("employees"))) + + for fltr_key in ["branch", "department", "designation", "grade"]: + if filters.get(fltr_key): + query = query.where(qb_object[fltr_key] == filters[fltr_key]) + + return query + + +def set_match_conditions(query, qb_object): + match_conditions = get_match_cond("Employee", as_condition=False) + + for cond in match_conditions: + if isinstance(cond, dict): + for key, value in cond.items(): + if isinstance(value, list): + query = query.where(qb_object[key].isin(value)) + else: + query = query.where(qb_object[key] == value) + + return query + + +def remove_payrolled_employees(emp_list, start_date, end_date): + SalarySlip = frappe.qb.DocType("Salary Slip") + + employees_with_payroll = ( + frappe.qb.from_(SalarySlip) + .select(SalarySlip.employee) + .where( + (SalarySlip.docstatus == 1) + & (SalarySlip.start_date == start_date) + & (SalarySlip.end_date == end_date) + ) + ).run(pluck=True) + + return [emp_list[emp] for emp in emp_list if emp not in employees_with_payroll] + + +@frappe.whitelist() +def get_start_end_dates(payroll_frequency, start_date=None, company=None): + """Returns dict of start and end dates for given payroll frequency based on start_date""" + + if payroll_frequency == "Monthly" or payroll_frequency == "Bimonthly" or payroll_frequency == "": + fiscal_year = get_fiscal_year(start_date, company=company)[0] + month = "%02d" % getdate(start_date).month + m = get_month_details(fiscal_year, month) + if payroll_frequency == "Bimonthly": + if getdate(start_date).day <= 15: + start_date = m["month_start_date"] + end_date = m["month_mid_end_date"] + else: + start_date = m["month_mid_start_date"] + end_date = m["month_end_date"] + else: + start_date = m["month_start_date"] + end_date = m["month_end_date"] + + if payroll_frequency == "Weekly": + end_date = add_days(start_date, 6) + + if payroll_frequency == "Fortnightly": + end_date = add_days(start_date, 13) + + if payroll_frequency == "Daily": + end_date = start_date + + return frappe._dict({"start_date": start_date, "end_date": end_date}) + + +def get_frequency_kwargs(frequency_name): + frequency_dict = { + "monthly": {"months": 1}, + "fortnightly": {"days": 14}, + "weekly": {"days": 7}, + "daily": {"days": 1}, + } + return frequency_dict.get(frequency_name) + + +@frappe.whitelist() +def get_end_date(start_date, frequency): + start_date = getdate(start_date) + frequency = frequency.lower() if frequency else "monthly" + kwargs = get_frequency_kwargs(frequency) if frequency != "bimonthly" else get_frequency_kwargs("monthly") + + # weekly, fortnightly and daily intervals have fixed days so no problems + end_date = add_to_date(start_date, **kwargs) - relativedelta(days=1) + if frequency != "bimonthly": + return dict(end_date=end_date.strftime(DATE_FORMAT)) + + else: + return dict(end_date="") + + +def get_month_details(year, month): + ysd = frappe.db.get_value("Fiscal Year", year, "year_start_date") + if ysd: + import calendar + import datetime + + diff_mnt = cint(month) - cint(ysd.month) + if diff_mnt < 0: + diff_mnt = 12 - int(ysd.month) + cint(month) + msd = ysd + relativedelta(months=diff_mnt) # month start date + month_days = cint(calendar.monthrange(cint(msd.year), cint(month))[1]) # days in month + mid_start = datetime.date(msd.year, cint(month), 16) # month mid start date + mid_end = datetime.date(msd.year, cint(month), 15) # month mid end date + med = datetime.date(msd.year, cint(month), month_days) # month end date + return frappe._dict( + { + "year": msd.year, + "month_start_date": msd, + "month_end_date": med, + "month_mid_start_date": mid_start, + "month_mid_end_date": mid_end, + "month_days": month_days, + } + ) + else: + frappe.throw(_("Fiscal Year {0} not found").format(year)) + + +def log_payroll_failure(process, payroll_entry, error): + error_log = frappe.log_error( + title=_("Salary Slip {0} failed for Payroll Entry {1}").format(process, payroll_entry.name) + ) + message_log = frappe.message_log.pop() if frappe.message_log else str(error) + + try: + if isinstance(message_log, str): + error_message = json.loads(message_log).get("message") + else: + error_message = message_log.get("message") + except Exception: + error_message = message_log + + error_message += "\n" + _("Check Error Log {0} for more details.").format( + get_link_to_form("Error Log", error_log.name) + ) + + payroll_entry.db_set({"error_message": error_message, "status": "Failed"}) + + +def create_salary_slips_for_employees(employees, args, publish_progress=True): + payroll_entry = frappe.get_cached_doc("Payroll Entry", args.payroll_entry) + + try: + salary_slips_exist_for = get_existing_salary_slips(employees, args) + count = 0 + + employees = list(set(employees) - set(salary_slips_exist_for)) + for emp in employees: + args.update({"doctype": "Salary Slip", "employee": emp}) + frappe.get_doc(args).insert() + + count += 1 + if publish_progress: + frappe.publish_progress( + count * 100 / len(employees), + title=_("Creating Salary Slips..."), + ) + + payroll_entry.db_set({"status": "Submitted", "salary_slips_created": 1, "error_message": ""}) + + if salary_slips_exist_for: + frappe.msgprint( + _( + "Salary Slips already exist for employees {}, and will not be processed by this payroll." + ).format(frappe.bold(", ".join(emp for emp in salary_slips_exist_for))), + title=_("Message"), + indicator="orange", + ) + + except Exception as e: + frappe.db.rollback() + log_payroll_failure("creation", payroll_entry, e) + + finally: + frappe.db.commit() # nosemgrep + frappe.publish_realtime("completed_salary_slip_creation", user=frappe.session.user) + + +def show_payroll_submission_status(submitted, unsubmitted, payroll_entry): + if not submitted and not unsubmitted: + frappe.msgprint( + _( + "No salary slip found to submit for the above selected criteria OR salary slip already submitted" + ) + ) + elif submitted and not unsubmitted: + frappe.msgprint( + _("Salary Slips submitted for period from {0} to {1}").format( + payroll_entry.start_date, payroll_entry.end_date + ), + title=_("Success"), + indicator="green", + ) + elif unsubmitted: + frappe.msgprint( + _("Could not submit some Salary Slips: {}").format( + ", ".join(get_link_to_form("Salary Slip", entry) for entry in unsubmitted) + ), + title=_("Failure"), + indicator="red", + ) + + +def get_existing_salary_slips(employees, args): + SalarySlip = frappe.qb.DocType("Salary Slip") + + return ( + frappe.qb.from_(SalarySlip) + .select(SalarySlip.employee) + .distinct() + .where( + (SalarySlip.docstatus != 2) + & (SalarySlip.company == args.company) + & (SalarySlip.payroll_entry == args.payroll_entry) + & (SalarySlip.start_date >= args.start_date) + & (SalarySlip.end_date <= args.end_date) + & (SalarySlip.employee.isin(employees)) + ) + ).run(pluck=True) + + +def submit_salary_slips_for_employees(payroll_entry, salary_slips, publish_progress=True): + try: + submitted = [] + unsubmitted = [] + frappe.flags.via_payroll_entry = True + count = 0 + + for entry in salary_slips: + salary_slip = frappe.get_doc("Salary Slip", entry[0]) + if salary_slip.net_pay < 0: + unsubmitted.append(entry[0]) + else: + try: + salary_slip.submit() + submitted.append(salary_slip) + except frappe.ValidationError: + unsubmitted.append(entry[0]) + + count += 1 + if publish_progress: + frappe.publish_progress( + count * 100 / len(salary_slips), title=_("Submitting Salary Slips...") + ) + + if submitted: + payroll_entry.make_accrual_jv_entry(submitted) + payroll_entry.email_salary_slip(submitted) + payroll_entry.db_set({"salary_slips_submitted": 1, "status": "Submitted", "error_message": ""}) + + show_payroll_submission_status(submitted, unsubmitted, payroll_entry) + + except Exception as e: + frappe.db.rollback() + log_payroll_failure("submission", payroll_entry, e) + + finally: + frappe.db.commit() # nosemgrep + frappe.publish_realtime("completed_salary_slip_submission", user=frappe.session.user) + + frappe.flags.via_payroll_entry = False + + +@frappe.whitelist() +@frappe.validate_and_sanitize_search_inputs +def get_payroll_entries_for_jv(doctype, txt, searchfield, start, page_len, filters): + # nosemgrep: frappe-semgrep-rules.rules.frappe-using-db-sql + return frappe.db.sql( + f""" + select name from `tabPayroll Entry` + where `{searchfield}` LIKE %(txt)s + and name not in + (select reference_name from `tabJournal Entry Account` + where reference_type="Payroll Entry") + order by name limit %(start)s, %(page_len)s""", + {"txt": "%%%s%%" % txt, "start": start, "page_len": page_len}, + ) + + +def get_employee_list( + filters: frappe._dict, + searchfield=None, + search_string=None, + fields: list[str] | None = None, + as_dict=True, + limit=None, + offset=None, + ignore_match_conditions=False, +) -> list: + sal_struct = get_salary_structure( + filters.company, + filters.currency, + filters.salary_slip_based_on_timesheet, + filters.payroll_frequency, + ) + + if not sal_struct: + return [] + + emp_list = get_filtered_employees( + sal_struct, + filters, + searchfield, + search_string, + fields, + as_dict=as_dict, + limit=limit, + offset=offset, + ignore_match_conditions=ignore_match_conditions, + ) + + if as_dict: + employees_to_check = {emp.employee: emp for emp in emp_list} + else: + employees_to_check = {emp[0]: emp for emp in emp_list} + + return remove_payrolled_employees(employees_to_check, filters.start_date, filters.end_date) + + +@frappe.whitelist() +@frappe.validate_and_sanitize_search_inputs +def employee_query(doctype, txt, searchfield, start, page_len, filters): + filters = frappe._dict(filters) + + if not filters.payroll_frequency: + frappe.throw(_("Select Payroll Frequency.")) + + employee_list = get_employee_list( + filters, + searchfield=searchfield, + search_string=txt, + fields=["name", "employee_name"], + as_dict=False, + limit=page_len, + offset=start, + ) + + return employee_list + + +def get_salary_withholdings( + start_date: str, + end_date: str, + employee: str | None = None, + pluck: str | None = None, +) -> list[str] | list[dict]: + Withholding = frappe.qb.DocType("Salary Withholding") + WithholdingCycle = frappe.qb.DocType("Salary Withholding Cycle") + withheld_salaries = ( + frappe.qb.from_(Withholding) + .join(WithholdingCycle) + .on(WithholdingCycle.parent == Withholding.name) + .select( + Withholding.employee, + Withholding.name.as_("salary_withholding"), + WithholdingCycle.name.as_("salary_withholding_cycle"), + ) + .where( + (WithholdingCycle.from_date == start_date) + & (WithholdingCycle.to_date == end_date) + & (WithholdingCycle.docstatus == 1) + & (WithholdingCycle.is_salary_released != 1) + ) + ) + + if employee: + withheld_salaries = withheld_salaries.where(Withholding.employee == employee) + + if pluck: + return withheld_salaries.run(pluck=pluck) + return withheld_salaries.run(as_dict=True) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry_dashboard.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry_dashboard.py new file mode 100644 index 000000000..eb93d688f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry_dashboard.py @@ -0,0 +1,9 @@ +def get_data(): + return { + "fieldname": "payroll_entry", + "non_standard_fieldnames": { + "Journal Entry": "reference_name", + "Payment Entry": "reference_name", + }, + "transactions": [{"items": ["Salary Slip", "Journal Entry"]}], + } diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry_list.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry_list.js new file mode 100644 index 000000000..9c6c78e25 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry_list.js @@ -0,0 +1,17 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +// render +frappe.listview_settings["Payroll Entry"] = { + has_indicator_for_draft: 1, + get_indicator: function (doc) { + var status_color = { + Draft: "red", + Submitted: "blue", + Queued: "orange", + Failed: "red", + Cancelled: "red", + }; + return [__(doc.status), status_color[doc.status], "status,=," + doc.status]; + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/test_payroll_entry.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/test_payroll_entry.py new file mode 100644 index 000000000..8b77eac69 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_entry/test_payroll_entry.py @@ -0,0 +1,1264 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +from dateutil.relativedelta import relativedelta + +import frappe +from frappe.tests.utils import FrappeTestCase, change_settings +from frappe.utils import add_days, add_months, cstr, date_diff, flt + +import erpnext +from erpnext.accounts.utils import get_fiscal_year, getdate, nowdate +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.employee_advance.employee_advance import ( + create_return_through_additional_salary, +) +from hrms.hr.doctype.employee_advance.test_employee_advance import ( + make_employee_advance, + make_journal_entry_for_advance, +) +from hrms.payroll.doctype.payroll_entry.payroll_entry import ( + PayrollEntry, + get_end_date, + get_start_end_dates, +) +from hrms.payroll.doctype.salary_component.test_salary_component import create_salary_component +from hrms.payroll.doctype.salary_slip.salary_slip_loan_utils import if_lending_app_installed +from hrms.payroll.doctype.salary_slip.test_salary_slip import ( + create_account, + make_deduction_salary_component, + make_earning_salary_component, + mark_attendance, + set_salary_component_account, +) +from hrms.payroll.doctype.salary_structure.test_salary_structure import ( + create_salary_structure_assignment, + make_salary_structure, +) +from hrms.tests.test_utils import create_department +from hrms.utils import get_date_range + +test_dependencies = ["Holiday List"] + + +class TestPayrollEntry(FrappeTestCase): + def setUp(self): + for dt in [ + "Salary Slip", + "Salary Detail", + "Salary Component", + "Salary Component Account", + "Payroll Entry", + "Salary Structure", + "Salary Structure Assignment", + "Employee Cost Center", + "Payroll Employee Detail", + "Additional Salary", + "Employee Benefit Ledger", + ]: + frappe.db.delete(dt) + + make_earning_salary_component(setup=True, company_list=["_Test Company"]) + make_deduction_salary_component(setup=True, test_tax=False, company_list=["_Test Company"]) + + frappe.db.set_value("Company", "_Test Company", "default_holiday_list", "_Test Holiday List") + frappe.db.set_single_value("Payroll Settings", "email_salary_slip_to_employee", 0) + frappe.db.set_value("Account", "Employee Advances - _TC", "account_type", "Receivable") + # set default payable account + default_account = frappe.db.get_value("Company", "_Test Company", "default_payroll_payable_account") + if not default_account or default_account != "_Test Payroll Payable - _TC": + create_account( + account_name="_Test Payroll Payable", + company="_Test Company", + parent_account="Current Liabilities - _TC", + account_type="Payable", + ) + frappe.db.set_value( + "Company", "_Test Company", "default_payroll_payable_account", "_Test Payroll Payable - _TC" + ) + + payroll_account = frappe.get_doc("Account", "_Test Payroll Payable - _TC") + if payroll_account and payroll_account.account_type != "Payable": + frappe.db.set_value("Account", "_Test Payroll Payable - _TC", "account_type", "Payable") + + if "lending" in frappe.get_installed_apps(): + frappe.db.set_value("Company", "_Test Company", "loan_accrual_frequency", "Monthly") + + def test_payroll_entry(self): + company = frappe.get_doc("Company", "_Test Company") + employee = frappe.db.get_value("Employee", {"company": "_Test Company"}) + setup_salary_structure(employee, company) + + dates = get_start_end_dates("Monthly", nowdate()) + make_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company.default_payroll_payable_account, + currency=company.default_currency, + company=company.name, + ) + + def test_multi_currency_payroll_entry(self): + company = frappe.get_doc("Company", "_Test Company") + create_department("Accounts") + employee = make_employee( + "test_muti_currency_employee@payroll.com", company=company.name, department="Accounts - _TC" + ) + salary_structure = "_Test Multi Currency Salary Structure" + setup_salary_structure(employee, company, "USD", salary_structure) + + dates = get_start_end_dates("Monthly", nowdate()) + payroll_entry = make_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company.default_payroll_payable_account, + currency="USD", + exchange_rate=70, + company=company.name, + cost_center="Main - _TC", + ) + payroll_entry.make_bank_entry() + + salary_slip = frappe.db.get_value("Salary Slip", {"payroll_entry": payroll_entry.name}, "name") + salary_slip = frappe.get_doc("Salary Slip", salary_slip) + + payroll_entry.reload() + payroll_je = salary_slip.journal_entry + if payroll_je: + payroll_je_doc = frappe.get_doc("Journal Entry", payroll_je) + self.assertEqual(salary_slip.base_gross_pay, payroll_je_doc.total_debit) + self.assertEqual(salary_slip.base_gross_pay, payroll_je_doc.total_credit) + + payment_entry = frappe.db.sql( + """ + select + ifnull(sum(je.total_debit),0) as total_debit, + ifnull(sum(je.total_credit),0) as total_credit + from `tabJournal Entry` je, `tabJournal Entry Account` jea + where je.name = jea.parent + and je.voucher_type = 'Bank Entry' + and jea.reference_name = %s + """, + payroll_entry.name, + as_dict=1, + ) + self.assertEqual(salary_slip.base_net_pay, payment_entry[0].total_debit) + self.assertEqual(salary_slip.base_net_pay, payment_entry[0].total_credit) + + @change_settings("Payroll Settings", {"process_payroll_accounting_entry_based_on_employee": 0}) + def test_payroll_entry_with_employee_cost_center(self): + department = create_department("Cost Center Test") + + employee1 = make_employee( + "test_emp1@example.com", + payroll_cost_center="_Test Cost Center - _TC", + department=department, + company="_Test Company", + ) + employee2 = make_employee("test_emp2@example.com", department=department, company="_Test Company") + + create_assignments_with_cost_centers(employee1, employee2) + + dates = get_start_end_dates("Monthly", nowdate()) + pe = make_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account="_Test Payroll Payable - _TC", + currency="INR", + department=department, + company="_Test Company", + payment_account="Cash - _TC", + cost_center="Main - _TC", + ) + je = frappe.db.get_value("Salary Slip", {"payroll_entry": pe.name}, "journal_entry") + je_entries = frappe.db.sql( + """ + select account, cost_center, debit, credit + from `tabJournal Entry Account` + where parent=%s + order by account, cost_center + """, + je, + ) + expected_je = ( + ("_Test Payroll Payable - _TC", "Main - _TC", 0.0, 155600.0), + ("Salary - _TC", "_Test Cost Center - _TC", 124800.0, 0.0), + ("Salary - _TC", "_Test Cost Center 2 - _TC", 31200.0, 0.0), + ("Salary Deductions - _TC", "_Test Cost Center - _TC", 0.0, 320.0), + ("Salary Deductions - _TC", "_Test Cost Center 2 - _TC", 0.0, 80.0), + ) + + self.assertEqual(je_entries, expected_je) + + @change_settings("Payroll Settings", {"process_payroll_accounting_entry_based_on_employee": 0}) + def test_employee_cost_center_breakup(self): + """Test only the latest salary structure assignment is considered for cost center breakup""" + COMPANY = "_Test Company" + COST_CENTERS = {"_Test Cost Center - _TC": 60, "_Test Cost Center 2 - _TC": 40} + department = create_department("Cost Center Test") + employee = make_employee("test_emp1@example.com", department=department, company=COMPANY) + salary_structure = make_salary_structure( + "_Test Salary Structure 2", + "Monthly", + employee, + company=COMPANY, + ) + + # update cost centers in salary structure assignment for employee + new_assignment = frappe.db.get_value( + "Salary Structure Assignment", + {"employee": employee, "salary_structure": salary_structure.name, "docstatus": 1}, + "name", + ) + new_assignment = frappe.get_doc("Salary Structure Assignment", new_assignment) + new_assignment.payroll_cost_centers = [] + for cost_center, percentage in COST_CENTERS.items(): + new_assignment.append( + "payroll_cost_centers", {"cost_center": cost_center, "percentage": percentage} + ) + new_assignment.save() + + # make an old salary structure assignment to test and ensure old cost center mapping is excluded + old_assignment = frappe.copy_doc(new_assignment) + old_assignment.from_date = add_months(new_assignment.from_date, -1) + old_assignment.payroll_cost_centers = [] + old_assignment.append("payroll_cost_centers", {"cost_center": "Main - _TC", "percentage": 100}) + old_assignment.submit() + + dates = get_start_end_dates("Monthly", nowdate()) + pe = make_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account="_Test Payroll Payable - _TC", + currency="INR", + department=department, + company="_Test Company", + payment_account="Cash - _TC", + cost_center="Main - _TC", + ) + + # only new cost center breakup is considered + cost_centers = pe.get_payroll_cost_centers_for_employee(employee, "_Test Salary Structure 2") + self.assertEqual(cost_centers, COST_CENTERS) + + def test_get_end_date(self): + self.assertEqual(get_end_date("2017-01-01", "monthly"), {"end_date": "2017-01-31"}) + self.assertEqual(get_end_date("2017-02-01", "monthly"), {"end_date": "2017-02-28"}) + self.assertEqual(get_end_date("2017-02-01", "fortnightly"), {"end_date": "2017-02-14"}) + self.assertEqual(get_end_date("2017-02-01", "bimonthly"), {"end_date": ""}) + self.assertEqual(get_end_date("2017-01-01", "bimonthly"), {"end_date": ""}) + self.assertEqual(get_end_date("2020-02-15", "bimonthly"), {"end_date": ""}) + self.assertEqual(get_end_date("2017-02-15", "monthly"), {"end_date": "2017-03-14"}) + self.assertEqual(get_end_date("2017-02-15", "daily"), {"end_date": "2017-02-15"}) + + @if_lending_app_installed + @change_settings("Payroll Settings", {"process_payroll_accounting_entry_based_on_employee": 1}) + def test_loan_with_settings_enabled(self): + from lending.loan_management.doctype.loan.test_loan import make_loan_disbursement_entry + + frappe.db.delete("Loan") + + [applicant, branch, currency, payroll_payable_account] = setup_lending() + loan = create_loan_for_employee(applicant) + dates = frappe._dict({"start_date": add_months(getdate(), -1), "end_date": getdate()}) + + make_loan_disbursement_entry( + loan.name, + loan.loan_amount, + disbursement_date=dates.start_date, + repayment_start_date=dates.end_date, + ) + make_payroll_entry( + company="_Test Company", + start_date=dates.start_date, + payable_account=payroll_payable_account, + currency=currency, + end_date=dates.end_date, + branch=branch, + cost_center="Main - _TC", + payment_account="Cash - _TC", + ) + + name = frappe.db.get_value( + "Salary Slip", {"posting_date": dates.end_date, "employee": applicant}, "name" + ) + + salary_slip = frappe.get_doc("Salary Slip", name) + for row in salary_slip.loans: + if row.loan == loan.name: + interest_amount = flt( + (280000) * 8.4 / 100 * (date_diff(dates.end_date, dates.start_date)) / 365, 2 + ) + self.assertEqual(row.interest_amount, interest_amount) + self.assertEqual(row.total_payment, interest_amount + row.principal_amount) + + [party_type, party] = get_repayment_party_type(loan.name) + + self.assertEqual(party_type, "Employee") + self.assertEqual(party, applicant) + + @if_lending_app_installed + @change_settings("Payroll Settings", {"process_payroll_accounting_entry_based_on_employee": 0}) + def test_loan_with_settings_disabled(self): + from lending.loan_management.doctype.loan.test_loan import make_loan_disbursement_entry + + frappe.db.delete("Loan") + + [applicant, branch, currency, payroll_payable_account] = setup_lending() + loan = create_loan_for_employee(applicant) + dates = frappe._dict({"start_date": add_months(getdate(), -1), "end_date": getdate()}) + + make_loan_disbursement_entry( + loan.name, + loan.loan_amount, + disbursement_date=dates.start_date, + repayment_start_date=dates.end_date, + ) + make_payroll_entry( + company="_Test Company", + start_date=dates.start_date, + payable_account=payroll_payable_account, + currency=currency, + end_date=dates.end_date, + branch=branch, + cost_center="Main - _TC", + payment_account="Cash - _TC", + ) + + [party_type, party] = get_repayment_party_type(loan.name) + + self.assertEqual(cstr(party_type), "") + self.assertEqual(cstr(party), "") + + def test_salary_slip_operation_queueing(self): + company = "_Test Company" + company_doc = frappe.get_doc("Company", company) + employee = make_employee("test_employee@payroll.com", company=company) + setup_salary_structure(employee, company_doc) + + # enqueue salary slip creation via payroll entry + # Payroll Entry status should change to Queued + dates = get_start_end_dates("Monthly", nowdate()) + payroll_entry = get_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company_doc.default_payroll_payable_account, + currency=company_doc.default_currency, + company=company_doc.name, + cost_center="Main - _TC", + ) + frappe.flags.enqueue_payroll_entry = True + payroll_entry.submit() + payroll_entry.reload() + + self.assertEqual(payroll_entry.status, "Queued") + frappe.flags.enqueue_payroll_entry = False + + def test_salary_slip_operation_failure(self): + company = "_Test Company" + company_doc = frappe.get_doc("Company", company) + employee = make_employee("test_employee@payroll.com", company=company) + + salary_structure = make_salary_structure( + "_Test Salary Structure", + "Monthly", + employee, + company=company, + currency=company_doc.default_currency, + ) + + # reset account in component to test submission failure + component = frappe.get_doc("Salary Component", salary_structure.earnings[0].salary_component) + component.accounts = [] + component.save() + + # salary slip submission via payroll entry + # Payroll Entry status should change to Failed because of the missing account setup + dates = get_start_end_dates("Monthly", nowdate()) + payroll_entry = get_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company_doc.default_payroll_payable_account, + currency=company_doc.default_currency, + company=company_doc.name, + cost_center="Main - _TC", + ) + + # set employee as Inactive to check creation failure + frappe.db.set_value("Employee", employee, "status", "Inactive") + payroll_entry.submit() + payroll_entry.reload() + self.assertEqual(payroll_entry.status, "Failed") + self.assertIsNotNone(payroll_entry.error_message) + + frappe.db.set_value("Employee", employee, "status", "Active") + payroll_entry.submit() + payroll_entry.submit_salary_slips() + + payroll_entry.reload() + self.assertEqual(payroll_entry.status, "Failed") + self.assertIsNotNone(payroll_entry.error_message) + + # set accounts + for data in frappe.get_all("Salary Component", pluck="name"): + set_salary_component_account(data, company_list=[company]) + + # Payroll Entry successful, status should change to Submitted + payroll_entry.submit_salary_slips() + payroll_entry.reload() + + self.assertEqual(payroll_entry.status, "Submitted") + self.assertEqual(payroll_entry.error_message, "") + + def test_payroll_entry_cancellation(self): + company_doc = frappe.get_doc("Company", "_Test Company") + employee = make_employee("test_employee@payroll.com", company=company_doc.name) + + setup_salary_structure(employee, company_doc) + dates = get_start_end_dates("Monthly", nowdate()) + payroll_entry = make_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company_doc.default_payroll_payable_account, + currency=company_doc.default_currency, + company=company_doc.name, + cost_center="Main - _TC", + payment_account="Cash - _TC", + ) + payroll_entry.make_bank_entry() + submit_bank_entry(payroll_entry.name) + + salary_slip = frappe.db.get_value("Salary Slip", {"payroll_entry": payroll_entry.name}, "name") + self.assertIsNotNone(salary_slip) + + # 2 submitted JVs + journal_entries = get_linked_journal_entries(payroll_entry.name, docstatus=1) + self.assertEqual(len(journal_entries), 2) + + frappe.flags.enqueue_payroll_entry = True + payroll_entry.cancel() + frappe.flags.enqueue_payroll_entry = False + self.assertEqual(payroll_entry.status, "Cancelled") + + salary_slip = frappe.db.get_value("Salary Slip", {"payroll_entry": payroll_entry.name}, "name") + self.assertIsNone(salary_slip) + + # 2 cancelled JVs + journal_entries = get_linked_journal_entries(payroll_entry.name, docstatus=2) + self.assertEqual(len(journal_entries), 2) + + def test_payroll_entry_status(self): + company_doc = frappe.get_doc("Company", "_Test Company") + employee = make_employee("test_employee@payroll.com", company=company_doc.name) + + setup_salary_structure(employee, company_doc) + dates = get_start_end_dates("Monthly", nowdate()) + payroll_entry = get_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company_doc.default_payroll_payable_account, + currency=company_doc.default_currency, + company=company_doc.name, + cost_center="Main - _TC", + ) + payroll_entry.submit() + self.assertEqual(payroll_entry.status, "Submitted") + + payroll_entry.cancel() + self.assertEqual(payroll_entry.status, "Cancelled") + + def test_payroll_entry_cancellation_against_cancelled_journal_entry(self): + company_doc = frappe.get_doc("Company", "_Test Company") + employee = make_employee("test_pe_cancellation@payroll.com", company=company_doc.name) + + setup_salary_structure(employee, company_doc) + dates = get_start_end_dates("Monthly", nowdate()) + payroll_entry = make_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company_doc.default_payroll_payable_account, + currency=company_doc.default_currency, + company=company_doc.name, + cost_center="Main - _TC", + payment_account="Cash - _TC", + ) + + payroll_entry.make_bank_entry() + submit_bank_entry(payroll_entry.name) + + # cancel the salary slip + salary_slip = frappe.db.get_value("Salary Slip", {"payroll_entry": payroll_entry.name}, "name") + salary_slip = frappe.get_doc("Salary Slip", salary_slip) + salary_slip.cancel() + + # cancel the journal entries + jvs = get_linked_journal_entries(payroll_entry.name) + + for jv in jvs: + jv_doc = frappe.get_doc("Journal Entry", jv.parent) + self.assertEqual(jv_doc.accounts[0].cost_center, payroll_entry.cost_center) + jv_doc.cancel() + + payroll_entry.cancel() + self.assertEqual(payroll_entry.status, "Cancelled") + + @change_settings("Payroll Settings", {"process_payroll_accounting_entry_based_on_employee": 1}) + def test_payroll_accrual_journal_entry_with_employee_tagging(self): + company_doc = frappe.get_doc("Company", "_Test Company") + employee = make_employee( + "test_payroll_accrual_journal_entry_with_employee_tagging@payroll.com", company=company_doc.name + ) + + setup_salary_structure(employee, company_doc) + + dates = get_start_end_dates("Monthly", nowdate()) + payroll_entry = make_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company_doc.default_payroll_payable_account, + currency=company_doc.default_currency, + company=company_doc.name, + cost_center="Main - _TC", + ) + + salary_slip = frappe.db.get_value("Salary Slip", {"payroll_entry": payroll_entry.name}, "name") + salary_slip = frappe.get_doc("Salary Slip", salary_slip) + payroll_entry.reload() + payroll_je = salary_slip.journal_entry + + if payroll_je: + payroll_je_doc = frappe.get_doc("Journal Entry", payroll_je) + for account in payroll_je_doc.accounts: + if account.account == company_doc.default_payroll_payable_account: + self.assertEqual(account.party_type, "Employee") + self.assertEqual(account.party, employee) + + @change_settings("Payroll Settings", {"process_payroll_accounting_entry_based_on_employee": 0}) + def test_payroll_accrual_journal_entry_without_employee_tagging(self): + company_doc = frappe.get_doc("Company", "_Test Company") + employee = make_employee( + "test_payroll_accrual_journal_entry_without_employee_tagging@payroll.com", + company=company_doc.name, + ) + + setup_salary_structure(employee, company_doc) + + dates = get_start_end_dates("Monthly", nowdate()) + payroll_entry = make_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company_doc.default_payroll_payable_account, + currency=company_doc.default_currency, + company=company_doc.name, + cost_center="Main - _TC", + ) + + salary_slip = frappe.db.get_value("Salary Slip", {"payroll_entry": payroll_entry.name}, "name") + salary_slip = frappe.get_doc("Salary Slip", salary_slip) + payroll_entry.reload() + payroll_je = salary_slip.journal_entry + + if payroll_je: + payroll_je_doc = frappe.get_doc("Journal Entry", payroll_je) + for account in payroll_je_doc.accounts: + if account.account == company_doc.default_payroll_payable_account: + self.assertEqual(account.party_type, None) + self.assertEqual(account.party, None) + + def test_advance_deduction_in_accrual_journal_entry(self): + company_doc = frappe.get_doc("Company", "_Test Company") + employee = make_employee("test_employee@payroll.com", company=company_doc.name) + + setup_salary_structure(employee, company_doc) + + # create employee advance + advance = make_employee_advance(employee, {"repay_unclaimed_amount_from_salary": 1}) + journal_entry = make_journal_entry_for_advance(advance) + journal_entry.submit() + advance.reload() + + # return advance through additional salary (deduction) + component = create_salary_component("Advance Salary - Deduction", **{"type": "Deduction"}) + component.append( + "accounts", + {"company": company_doc.name, "account": "Employee Advances - _TC"}, + ) + component.save() + + additional_salary = create_return_through_additional_salary(advance) + additional_salary.salary_component = component.name + additional_salary.payroll_date = nowdate() + additional_salary.amount = advance.paid_amount + additional_salary.submit() + + # payroll entry + dates = get_start_end_dates("Monthly", nowdate()) + make_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company_doc.default_payroll_payable_account, + currency=company_doc.default_currency, + company=company_doc.name, + cost_center="Main - _TC", + ) + + # check advance deduction entry correctly mapped in accrual entry + deduction_entry = frappe.get_all( + "Journal Entry Account", + fields=["account", "party", "debit", "credit"], + filters={ + "reference_type": "Employee Advance", + "reference_name": advance.name, + "is_advance": "Yes", + }, + )[0] + + expected_entry = { + "account": "Employee Advances - _TC", + "party": employee, + "debit": 0.0, + "credit": advance.paid_amount, + } + + self.assertEqual(deduction_entry, expected_entry) + + @change_settings("Payroll Settings", {"process_payroll_accounting_entry_based_on_employee": 1}) + def test_employee_wise_bank_entry_with_cost_centers(self): + department = create_department("Cost Center Test") + employee1 = make_employee( + "test_emp1@example.com", + payroll_cost_center="_Test Cost Center - _TC", + department=department, + company="_Test Company", + ) + employee2 = make_employee("test_emp2@example.com", department=department, company="_Test Company") + + create_assignments_with_cost_centers(employee1, employee2) + + dates = get_start_end_dates("Monthly", nowdate()) + payroll_entry = make_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account="_Test Payroll Payable - _TC", + currency="INR", + department=department, + company="_Test Company", + payment_account="Cash - _TC", + cost_center="Main - _TC", + ) + payroll_entry.reload() + payroll_entry.make_bank_entry() + + debit_entries = frappe.db.get_all( + "Journal Entry Account", + fields=["party", "account", "cost_center", "debit", "credit"], + filters={ + "reference_type": "Payroll Entry", + "reference_name": payroll_entry.name, + "docstatus": 0, + }, + order_by="party, cost_center", + ) + + expected_entries = [ + # 100% in a single cost center + { + "party": employee1, + "account": "_Test Payroll Payable - _TC", + "cost_center": "_Test Cost Center - _TC", + "debit": 77800.0, + "credit": 0.0, + }, + # 60% of 77800.0 + { + "party": employee2, + "account": "_Test Payroll Payable - _TC", + "cost_center": "_Test Cost Center - _TC", + "debit": 46680.0, + "credit": 0.0, + }, + # 40% of 77800.0 + { + "party": employee2, + "account": "_Test Payroll Payable - _TC", + "cost_center": "_Test Cost Center 2 - _TC", + "debit": 31120.0, + "credit": 0.0, + }, + ] + + self.assertEqual(debit_entries, expected_entries) + + def test_validate_attendance(self): + company = frappe.get_doc("Company", "_Test Company") + employee = frappe.db.get_value("Employee", {"company": "_Test Company"}) + setup_salary_structure(employee, company) + + dates = get_start_end_dates("Monthly", nowdate()) + payroll_entry = get_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company.default_payroll_payable_account, + currency=company.default_currency, + company=company.name, + ) + + # case 1: validate unmarked attendance + payroll_entry.validate_attendance = True + employees = payroll_entry.get_employees_with_unmarked_attendance() + self.assertEqual(employees[0]["employee"], employee) + + # case 2: employee should not be flagged for remaining payroll days for a mid-month relieving date + relieving_date = add_days(payroll_entry.start_date, 15) + frappe.db.set_value("Employee", employee, "relieving_date", relieving_date) + + for date in get_date_range(payroll_entry.start_date, relieving_date): + mark_attendance(employee, date, "Present", ignore_validate=True) + + employees = payroll_entry.get_employees_with_unmarked_attendance() + self.assertFalse(employees) + + # case 3: employee should not flagged for remaining payroll days + frappe.db.set_value("Employee", employee, "relieving_date", None) + + for date in get_date_range(add_days(relieving_date, 1), payroll_entry.end_date): + mark_attendance(employee, date, "Present", ignore_validate=True) + + employees = payroll_entry.get_employees_with_unmarked_attendance() + self.assertFalse(employees) + + @change_settings( + "Payroll Settings", + { + "payroll_based_on": "Attendance", + "consider_unmarked_attendance_as": "Absent", + "include_holidays_in_total_working_days": 1, + "consider_marked_attendance_on_holidays": 1, + "process_payroll_accounting_entry_based_on_employee": 1, + }, + ) + def test_skip_bank_entry_for_employees_with_zero_amount(self): + company_doc = frappe.get_doc("Company", "_Test Company") + employee1 = make_employee("test_employee11@payroll.com", company=company_doc.name) + employee2 = make_employee("test_employee12@payroll.com", company=company_doc.name) + + setup_salary_structure(employee1, company_doc) + setup_salary_structure(employee2, company_doc) + + dates = get_start_end_dates("Monthly", nowdate()) + for date in get_date_range(dates.start_date, dates.end_date): + mark_attendance(employee1, date, "Present", ignore_validate=True) + + payroll_entry = get_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company_doc.default_payroll_payable_account, + currency=company_doc.default_currency, + company=company_doc.name, + cost_center="Main - _TC", + ) + payroll_entry.submit() + payroll_entry.submit_salary_slips() + journal_entry = get_linked_journal_entries(payroll_entry.name, docstatus=1) + + self.assertTrue(journal_entry) + + @if_lending_app_installed + @change_settings("Payroll Settings", {"process_payroll_accounting_entry_based_on_employee": 0}) + def test_loan_repayment_from_salary(self): + self.run_test_for_loan_repayment_from_salary() + + @if_lending_app_installed + @change_settings("Payroll Settings", {"process_payroll_accounting_entry_based_on_employee": 1}) + def test_loan_repayment_from_salary_with_employee_tagging(self): + self.run_test_for_loan_repayment_from_salary() + + def run_test_for_loan_repayment_from_salary(self): + from lending.loan_management.doctype.loan.test_loan import make_loan_disbursement_entry + + frappe.db.delete("Loan") + applicant, branch, currency, payroll_payable_account = setup_lending() + + loan = create_loan_for_employee(applicant) + loan_doc = frappe.get_doc("Loan", loan.name) + loan_doc.repay_from_salary = 1 + loan_doc.save() + + dates = frappe._dict({"start_date": add_months(getdate(), -1), "end_date": getdate()}) + make_loan_disbursement_entry( + loan.name, + loan.loan_amount, + disbursement_date=dates.start_date, + repayment_start_date=dates.end_date, + ) + + payroll_entry = make_payroll_entry( + company="_Test Company", + start_date=dates.start_date, + payable_account=payroll_payable_account, + currency=currency, + end_date=dates.end_date, + branch=branch, + cost_center="Main - _TC", + payment_account="Cash - _TC", + ) + + salary_slip_name = frappe.db.get_value("Salary Slip", {"payroll_entry": payroll_entry.name}, "name") + salary_slip = frappe.get_doc("Salary Slip", salary_slip_name) + payroll_entry.reload() + + initial_gross_pay = flt(salary_slip.gross_pay) - flt(salary_slip.total_deduction) + loan_repayment_amount = flt(salary_slip.total_loan_repayment) + expected_bank_entry_amount = initial_gross_pay - loan_repayment_amount + + payroll_entry.make_bank_entry() + submit_bank_entry(payroll_entry.name) + + bank_entry = frappe.db.sql( + """ + SELECT je.total_debit, je.total_credit + FROM `tabJournal Entry` je + INNER JOIN `tabJournal Entry Account` jea ON je.name = jea.parent + WHERE je.voucher_type = 'Bank Entry' AND jea.reference_type = 'Payroll Entry' AND jea.reference_name = %s + LIMIT 1 + """, + payroll_entry.name, + as_dict=True, + ) + + total_debit = bank_entry[0].get("total_debit", 0) + total_credit = bank_entry[0].get("total_credit", 0) + self.assertEqual(total_debit, expected_bank_entry_amount) + self.assertEqual(total_credit, expected_bank_entry_amount) + + @change_settings("Payroll Settings", {"process_payroll_accounting_entry_based_on_employee": 0}) + def test_component_exclusion_from_accounting_entries(self): + company = frappe.get_doc("Company", "_Test Company") + employee = make_employee("exclude_component_test@payroll.com", company=company.name) + + # Create Salary Components + basic = create_salary_component("Basic", **{"type": "Earning"}) + basic.append("accounts", {"company": company.name, "account": "Salary - _TC"}) + basic.save() + + esi = create_salary_component( + "ESI", **{"type": "Deduction", "do_not_include_in_total": 1, "do_not_include_in_accounts": 1} + ) + esi.append("accounts", {"company": company.name, "account": "Salary - _TC"}) + esi.save() + + # Create Salary structure with both components + make_salary_structure( + "Test Salary Structure", + "Monthly", + employee, + company=company.name, + other_details={ + "earnings": [{"salary_component": basic.name, "amount": 20000}], + "deductions": [ + { + "salary_component": esi.name, + "amount": 200, + "do_not_include_in_total": 1, + "do_not_include_in_accounts": 1, + } + ], + }, + ) + + # Create Payroll entry + dates = get_start_end_dates("Monthly", nowdate()) + payroll_entry = make_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company.default_payroll_payable_account, + currency=company.default_currency, + company=company.name, + cost_center="Main - _TC", + ) + + # Get and verify salary slip & jv + salary_slip = frappe.get_doc("Salary Slip", {"payroll_entry": payroll_entry.name}) + + self.assertAlmostEqual(salary_slip.gross_pay, 20000.0, places=2) + + # Deductions table should include ESI + self.assertTrue(any(row.salary_component == esi.name for row in salary_slip.deductions)) + + # verify jv & accounts + journal_entry = frappe.get_doc("Journal Entry", salary_slip.journal_entry) + self.assertTrue(journal_entry, "Journal Entry not created") + self.assertEqual(salary_slip.gross_pay, journal_entry.total_debit) + + accounts = [d.account for d in journal_entry.accounts] + self.assertIn("Salary - _TC", accounts) + self.assertIn(company.default_payroll_payable_account, accounts) + self.assertNotIn("ESIC Payable - _TC", accounts, "ESIC component wrongly included in JE") + + def test_employee_benefits_accruals_in_salary_slip(self): + """Test to verify + - employee flexible benefits of accrual payout methods are fetched into salary slip + - employee benefit ledger entries are created for each component + - accrual earning components are excluded from earnings and added to accrued_benefts instead + - additional salary for accrual component is included in totals and benefit ledger entries are created + - unclaimed benefits and benefit type of "Accrue and Payout at end of Payroll Perod" are paid out in final month of payroll period + """ + from hrms.payroll.doctype.salary_slip.test_salary_slip import ( + create_salary_slips_for_payroll_period, + make_payroll_period, + ) + + frappe.db.set_value("Company", "_Test Company", "default_holiday_list", "_Test Holiday List") + + make_payroll_period() + emp = make_employee( + "test_employee_benefits@salary.com", + company="_Test Company", + date_of_joining="2021-01-01", + ) + payroll_period = frappe.get_last_doc("Payroll Period", filters={"company": "_Test Company"}) + + make_salary_structure( + "Test Benefit Accrual", + "Monthly", + company="_Test Company", + employee=emp, + payroll_period=payroll_period, + base=65000, + include_flexi_benefits=True, + test_accrual_component=True, + test_tax=True, + ) + + # Create and submit payroll entry for first month of payroll period + first_month_start = payroll_period.start_date + first_month_end = add_months(first_month_start, 1) + company_doc = frappe.get_doc("Company", "_Test Company") + + payroll_entry = make_payroll_entry( + start_date=first_month_start, + end_date=first_month_end, + payable_account=company_doc.default_payroll_payable_account, + currency=company_doc.default_currency, + company="_Test Company", + cost_center="Main - _TC", + ) + salary_slip = frappe.get_doc("Salary Slip", {"payroll_entry": payroll_entry.name}) + + # Check if employee benefits have been fetched to accrued benefits table + self.assertTrue(salary_slip.accrued_benefits) + accrual_payout_methods = [ + "Accrue and payout at end of payroll period", + "Accrue per cycle, pay only on claim", + ] + for benefit in salary_slip.accrued_benefits: + if benefit.salary_component != "Accrued Earnings": + payout_method = frappe.db.get_value( + "Salary Component", benefit.salary_component, "payout_method" + ) + self.assertIn(payout_method, accrual_payout_methods) + else: + self.assertEqual(benefit.amount, 1000) + + # Check if employee benefit ledger entries have been created for each component + for benefit_row in salary_slip.accrued_benefits: + self.assertTrue( + frappe.db.exists( + "Employee Benefit Ledger", + {"salary_slip": salary_slip.name, "salary_component": benefit_row.salary_component}, + ) + ) + + earnings_list = [earning.salary_component for earning in salary_slip.earnings] + self.assertNotIn( + "Accrued Earnings", earnings_list + ) # "Accrued Earnings component should not be in earnings table but in accrued benefits") + + # Check if Employee Benefit Ledger exists for Accrued Earnings Component + self.assertTrue( + frappe.db.exists( + "Employee Benefit Ledger", + {"salary_slip": salary_slip.name, "salary_component": "Accrued Earnings"}, + ) + ) + + # Create additional salary for accrual component for second month of payroll period + second_month_start = add_months(first_month_start, 1) + second_month_end = add_months(first_month_start, 2) + + additional_salary = frappe.get_doc( + { + "doctype": "Additional Salary", + "employee": emp, + "salary_component": "Accrued Earnings", + "amount": 1000, + "payroll_date": second_month_end, + "company": "_Test Company", + "overwrite_salary_structure_amount": 0, + } + ) + additional_salary.insert() + additional_salary.submit() + + next_month_payroll_entry = make_payroll_entry( + start_date=second_month_start, + end_date=second_month_end, + payable_account=company_doc.default_payroll_payable_account, + currency=company_doc.default_currency, + company="_Test Company", + ) + next_salary_slip = frappe.get_doc("Salary Slip", {"payroll_entry": next_month_payroll_entry.name}) + + # Payout against accrual component as additional salary is recorded in Employee Benefit Ledger + self.assertTrue( + frappe.db.exists( + "Employee Benefit Ledger", + { + "salary_slip": next_salary_slip.name, + "salary_component": "Accrued Earnings", + "transaction_type": "Payout", + }, + ) + ) + + frappe.db.delete("Salary Slip", {"employee": emp}) + frappe.db.delete("Employee Benefit Ledger") + + # check if unclaimed benefits and benefit type of "Accrue and Payout at end of Payroll Perod" are paid out in final month of payroll period + create_salary_slips_for_payroll_period(emp, "Test Benefit Accrual", payroll_period) + + salary_slip = frappe.get_all( + "Salary Slip", filters={"employee": emp}, order_by="posting_date desc", limit=1, pluck="name" + ) + salary_slip = frappe.get_doc("Salary Slip", salary_slip[0]) + earnings_components = {earning.salary_component: earning.amount for earning in salary_slip.earnings} + + self.assertEqual( + earnings_components.get("Internet Reimbursement"), + 12000, + ) + self.assertEqual( + earnings_components.get("Mediclaim Allowance"), + 24000, + ) + + def test_status_on_discard(self): + company = frappe.get_doc("Company", "_Test Company") + employee = frappe.db.get_value("Employee", {"company": "_Test Company"}) + setup_salary_structure(employee, company) + + dates = get_start_end_dates("Monthly", nowdate()) + payroll_entry = get_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=company.default_payroll_payable_account, + currency=company.default_currency, + company=company.name, + ) + payroll_entry.discard() + payroll_entry.reload() + self.assertEqual(payroll_entry.status, "Cancelled") + + +def get_payroll_entry(**args): + args = frappe._dict(args) + + payroll_entry: PayrollEntry = frappe.new_doc("Payroll Entry") + payroll_entry.company = args.company or erpnext.get_default_company() + payroll_entry.start_date = args.start_date or "2016-11-01" + payroll_entry.end_date = args.end_date or "2016-11-30" + payroll_entry.payment_account = get_payment_account() + payroll_entry.posting_date = nowdate() + payroll_entry.payroll_frequency = "Monthly" + payroll_entry.branch = args.branch or None + payroll_entry.department = args.department or None + payroll_entry.payroll_payable_account = args.payable_account + payroll_entry.currency = args.currency + payroll_entry.exchange_rate = args.exchange_rate or 1 + + if args.cost_center: + payroll_entry.cost_center = args.cost_center + + if args.payment_account: + payroll_entry.payment_account = args.payment_account + + payroll_entry.fill_employee_details() + payroll_entry.insert() + + # Commit so that the first salary slip creation failure does not rollback the Payroll Entry insert. + frappe.db.commit() # nosemgrep + + return payroll_entry + + +def make_payroll_entry(**args): + payroll_entry = get_payroll_entry(**args) + payroll_entry.submit() + payroll_entry.submit_salary_slips() + if payroll_entry.get_sal_slip_list(ss_status=1): + payroll_entry.make_bank_entry() + + return payroll_entry + + +def get_payment_account(): + return frappe.get_value( + "Account", + {"account_type": "Cash", "company": erpnext.get_default_company(), "is_group": 0}, + "name", + ) + + +def setup_salary_structure(employee, company_doc, currency=None, salary_structure=None): + for data in frappe.get_all("Salary Component", pluck="name"): + if not frappe.db.get_value( + "Salary Component Account", {"parent": data, "company": company_doc.name}, "name" + ): + set_salary_component_account(data) + + return make_salary_structure( + salary_structure or "_Test Salary Structure", + "Monthly", + employee, + company=company_doc.name, + currency=(currency or company_doc.default_currency), + ) + + +def create_assignments_with_cost_centers(employee1, employee2): + company = frappe.get_doc("Company", "_Test Company") + setup_salary_structure(employee1, company) + ss = setup_salary_structure(employee2, company, salary_structure="_Test Salary Structure 2") + + # update cost centers in salary structure assignment for employee2 + ssa = frappe.db.get_value( + "Salary Structure Assignment", + {"employee": employee2, "salary_structure": ss.name, "docstatus": 1}, + "name", + ) + + ssa_doc = frappe.get_doc("Salary Structure Assignment", ssa) + ssa_doc.payroll_cost_centers = [] + ssa_doc.append("payroll_cost_centers", {"cost_center": "_Test Cost Center - _TC", "percentage": 60}) + ssa_doc.append("payroll_cost_centers", {"cost_center": "_Test Cost Center 2 - _TC", "percentage": 40}) + ssa_doc.save() + + +def setup_lending(): + from lending.loan_management.doctype.loan.test_loan import ( + create_loan_accounts, + create_loan_product, + set_loan_settings_in_company, + ) + from lending.tests.test_utils import create_demand_offset_order + + create_demand_offset_order( + "Test EMI Based Standard Loan Demand Offset Order", + ["EMI (Principal + Interest)", "Penalty", "Charges"], + ) + + company = "_Test Company" + branch = "Test Employee Branch" + + if not frappe.db.exists("Branch", branch): + frappe.get_doc({"doctype": "Branch", "branch": branch}).insert() + + set_loan_settings_in_company(company) + applicant = make_employee("test_employee@loan.com", company="_Test Company", branch=branch) + company_doc = frappe.get_doc("Company", company) + + make_salary_structure( + "Test Salary Structure for Loan", + "Monthly", + employee=applicant, + from_date=add_months(getdate(), -1), + company="_Test Company", + currency=company_doc.default_currency, + ) + + if not frappe.db.exists("Loan Product", "Car Loan"): + create_loan_accounts() + create_loan_product( + "Car Loan", + "Car Loan", + 500000, + 8.4, + is_term_loan=1, + disbursement_account="Disbursement Account - _TC", + payment_account="Payment Account - _TC", + loan_account="Loan Account - _TC", + interest_income_account="Interest Income Account - _TC", + penalty_income_account="Penalty Income Account - _TC", + repayment_schedule_type="Monthly as per repayment start date", + collection_offset_sequence_for_standard_asset="Test EMI Based Standard Loan Demand Offset Order", + ) + + return ( + applicant, + branch, + company_doc.default_currency, + company_doc.default_payroll_payable_account, + ) + + +def create_loan_for_employee(applicant): + from lending.tests.test_utils import create_loan + + dates = frappe._dict({"start_date": add_months(getdate(), -1), "end_date": getdate()}) + + loan = create_loan( + applicant, + "Car Loan", + 280000, + "Repay Over Number of Periods", + 20, + applicant_type="Employee", + posting_date=dates.start_date, + repayment_start_date=dates.end_date, + ) + loan.repay_from_salary = 1 + loan.submit() + + return loan + + +def get_repayment_party_type(loan): + loan_repayment = frappe.db.get_value( + "Loan Repayment", {"against_loan": loan}, ["name", "payroll_payable_account"], as_dict=True + ) + if not loan_repayment: + return "", "" + + return frappe.db.get_value( + "GL Entry", + { + "voucher_no": loan_repayment.name, + "account": loan_repayment.payroll_payable_account, + "is_cancelled": 0, + }, + ["party_type", "party"], + ) or ("", "") + + +def submit_bank_entry(payroll_entry_id): + # submit the bank entry journal voucher + jv = get_linked_journal_entries(payroll_entry_id, docstatus=0)[0].parent + + jv_doc = frappe.get_doc("Journal Entry", jv) + jv_doc.cheque_no = "123456" + jv_doc.cheque_date = nowdate() + jv_doc.submit() + + +def get_linked_journal_entries(payroll_entry_id, docstatus=None): + filters = {"reference_type": "Payroll Entry", "reference_name": payroll_entry_id} + if docstatus is not None: + filters["docstatus"] = docstatus + + return frappe.get_all( + "Journal Entry Account", + filters, + "parent", + distinct=True, + ) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period.js new file mode 100644 index 000000000..5dafc19ed --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period.js @@ -0,0 +1,36 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Payroll Period", { + onload: function (frm) { + frm.trigger("set_start_date"); + }, + + set_start_date: function (frm) { + if (!frm.doc.__islocal) return; + + frappe.db + .get_list("Payroll Period", { + fields: ["end_date"], + order_by: "end_date desc", + limit: 1, + }) + .then((result) => { + // set start date based on end date of the last payroll period if found + // else set it based on the current fiscal year's start date + if (result.length) { + const last_end_date = result[0].end_date; + frm.set_value("start_date", frappe.datetime.add_days(last_end_date, 1)); + } else { + frm.set_value("start_date", frappe.defaults.get_default("year_start_date")); + } + }); + }, + + start_date: function (frm) { + frm.set_value( + "end_date", + frappe.datetime.add_days(frappe.datetime.add_months(frm.doc.start_date, 12), -1), + ); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period.json new file mode 100644 index 000000000..4a035d3cb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period.json @@ -0,0 +1,112 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "Prompt", + "creation": "2018-04-13 15:18:53.698553", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "company", + "column_break_2", + "start_date", + "end_date", + "section_break_5", + "periods" + ], + "fields": [ + { + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "fieldname": "start_date", + "fieldtype": "Date", + "label": "Start Date", + "reqd": 1 + }, + { + "fieldname": "end_date", + "fieldtype": "Date", + "label": "End Date", + "reqd": 1 + }, + { + "fieldname": "section_break_5", + "fieldtype": "Section Break", + "hidden": 1, + "label": "Payroll Periods" + }, + { + "fieldname": "periods", + "fieldtype": "Table", + "label": "Payroll Periods", + "options": "Payroll Period Date" + } + ], + "links": [], + "modified": "2024-05-07 17:27:51.903593", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Payroll Period", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period.py new file mode 100644 index 000000000..44380453c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period.py @@ -0,0 +1,140 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import add_months, cint, date_diff, flt, formatdate, getdate +from frappe.utils.caching import redis_cache + +from hrms.hr.utils import get_exact_month_diff, get_holiday_dates_for_employee + + +class PayrollPeriod(Document): + def validate(self): + self.validate_from_to_dates("start_date", "end_date") + self.validate_overlap() + + def clear_cache(self): + get_payroll_period.clear_cache() + return super().clear_cache() + + def validate_overlap(self): + query = """ + select name + from `tab{0}` + where name != %(name)s + and company = %(company)s and (start_date between %(start_date)s and %(end_date)s \ + or end_date between %(start_date)s and %(end_date)s \ + or (start_date < %(start_date)s and end_date > %(end_date)s)) + """ + if not self.name: + # hack! if name is null, it could cause problems with != + self.name = "New " + self.doctype + + overlap_doc = frappe.db.sql( + query.format(self.doctype), + { + "start_date": self.start_date, + "end_date": self.end_date, + "name": self.name, + "company": self.company, + }, + as_dict=1, + ) + + if overlap_doc: + msg = ( + _("A {0} exists between {1} and {2} (").format( + self.doctype, formatdate(self.start_date), formatdate(self.end_date) + ) + + f""" {overlap_doc[0].name}""" + + _(") for {0}").format(self.company) + ) + frappe.throw(msg) + + +def get_payroll_period_days(start_date, end_date, employee, company=None): + if not company: + company = frappe.db.get_value("Employee", employee, "company") + payroll_period = frappe.db.sql( + """ + select name, start_date, end_date + from `tabPayroll Period` + where + company=%(company)s + and %(start_date)s between start_date and end_date + and %(end_date)s between start_date and end_date + """, + {"company": company, "start_date": start_date, "end_date": end_date}, + ) + + if len(payroll_period) > 0: + actual_no_of_days = date_diff(getdate(payroll_period[0][2]), getdate(payroll_period[0][1])) + 1 + working_days = actual_no_of_days + if not cint(frappe.db.get_single_value("Payroll Settings", "include_holidays_in_total_working_days")): + holidays = get_holiday_dates_for_employee( + employee, getdate(payroll_period[0][1]), getdate(payroll_period[0][2]) + ) + working_days -= len(holidays) + return payroll_period[0][0], working_days, actual_no_of_days + return False, False, False + + +@redis_cache() +def get_payroll_period(from_date, to_date, company): + PayrollPeriod = frappe.qb.DocType("Payroll Period") + + payroll_period = ( + frappe.qb.from_(PayrollPeriod) + .select(PayrollPeriod.name, PayrollPeriod.start_date, PayrollPeriod.end_date) + .where( + (PayrollPeriod.start_date <= from_date) + & (PayrollPeriod.end_date >= to_date) + & (PayrollPeriod.company == company) + ) + ).run(as_dict=1) + + return payroll_period[0] if payroll_period else None + + +def get_period_factor( + employee, + start_date, + end_date, + payroll_frequency, + payroll_period, + depends_on_payment_days=0, + joining_date=None, + relieving_date=None, +): + # TODO if both deduct checked update the factor to make tax consistent + period_start, period_end = payroll_period.start_date, payroll_period.end_date + + if not joining_date and not relieving_date: + joining_date, relieving_date = frappe.get_cached_value( + "Employee", employee, ["date_of_joining", "relieving_date"] + ) + + if getdate(joining_date) > getdate(period_start): + period_start = joining_date + + if relieving_date and getdate(relieving_date) < getdate(period_end): + period_end = relieving_date + + total_sub_periods, remaining_sub_periods = 0.0, 0.0 + + if payroll_frequency == "Monthly" and not depends_on_payment_days: + total_sub_periods = get_exact_month_diff(payroll_period.end_date, payroll_period.start_date) + remaining_sub_periods = get_exact_month_diff(period_end, start_date) + else: + salary_days = date_diff(end_date, start_date) + 1 + + days_in_payroll_period = date_diff(payroll_period.end_date, payroll_period.start_date) + 1 + total_sub_periods = flt(days_in_payroll_period) / flt(salary_days) + + remaining_days_in_payroll_period = date_diff(period_end, start_date) + 1 + remaining_sub_periods = flt(remaining_days_in_payroll_period) / flt(salary_days) + + return total_sub_periods, remaining_sub_periods diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period_dashboard.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period_dashboard.py new file mode 100644 index 000000000..96632c500 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/payroll_period_dashboard.py @@ -0,0 +1,7 @@ +def get_data(): + return { + "fieldname": "payroll_period", + "transactions": [ + {"items": ["Employee Tax Exemption Proof Submission", "Employee Tax Exemption Declaration"]}, + ], + } diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/test_payroll_period.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/test_payroll_period.py new file mode 100644 index 000000000..73717b0d0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period/test_payroll_period.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestPayrollPeriod(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period_date/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period_date/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period_date/payroll_period_date.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period_date/payroll_period_date.json new file mode 100644 index 000000000..012df4269 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period_date/payroll_period_date.json @@ -0,0 +1,40 @@ +{ + "actions": [], + "creation": "2018-04-13 15:17:30.513630", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "start_date", + "end_date" + ], + "fields": [ + { + "fieldname": "start_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Start Date", + "reqd": 1 + }, + { + "fieldname": "end_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "End Date", + "reqd": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:10:12.576711", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Payroll Period Date", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period_date/payroll_period_date.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period_date/payroll_period_date.py new file mode 100644 index 000000000..c90a76a82 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_period_date/payroll_period_date.py @@ -0,0 +1,10 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class PayrollPeriodDate(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/payroll_settings.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/payroll_settings.js new file mode 100644 index 000000000..fccb2a516 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/payroll_settings.js @@ -0,0 +1,39 @@ +// Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Payroll Settings", { + refresh: function (frm) { + frm.set_query("sender", () => { + return { + filters: { + enable_outgoing: 1, + }, + }; + }); + }, + + encrypt_salary_slips_in_emails: function (frm) { + let encrypt_state = frm.doc.encrypt_salary_slips_in_emails; + frm.set_df_property("password_policy", "reqd", encrypt_state); + }, + + validate: function (frm) { + let policy = frm.doc.password_policy; + if (policy) { + if (policy.includes(" ") || policy.includes("--")) { + frappe.msgprint( + __( + "Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically", + ), + ); + } + frm.set_value( + "password_policy", + policy + .split(new RegExp(" |-", "g")) + .filter((token) => token) + .join("-"), + ); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/payroll_settings.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/payroll_settings.json new file mode 100644 index 000000000..a8cd62fbf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/payroll_settings.json @@ -0,0 +1,226 @@ +{ + "actions": [], + "creation": "2020-06-04 15:13:33.589685", + "doctype": "DocType", + "document_type": "Other", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "working_days_section", + "payroll_based_on", + "consider_unmarked_attendance_as", + "include_holidays_in_total_working_days", + "consider_marked_attendance_on_holidays", + "column_break_6", + "max_working_hours_against_timesheet", + "daily_wages_fraction_for_half_day", + "column_break_rnoq", + "disable_rounded_total", + "column_break_gzpl", + "show_leave_balances_in_salary_slip", + "email_section", + "email_salary_slip_to_employee", + "sender", + "sender_copy", + "sender_email", + "email_template", + "column_break_iewr", + "encrypt_salary_slips_in_emails", + "password_policy", + "other_settings_section", + "process_payroll_accounting_entry_based_on_employee", + "mandatory_benefit_application", + "column_break_zi9y", + "create_overtime_slip" + ], + "fields": [ + { + "default": "Leave", + "fieldname": "payroll_based_on", + "fieldtype": "Select", + "label": "Calculate Payroll Working Days Based On", + "options": "Leave\nAttendance" + }, + { + "fieldname": "max_working_hours_against_timesheet", + "fieldtype": "Float", + "label": "Max working hours against Timesheet" + }, + { + "default": "0", + "description": "If enabled, total no. of working days will include holidays, and this will reduce the value of Salary Per Day", + "fieldname": "include_holidays_in_total_working_days", + "fieldtype": "Check", + "label": "Include holidays in Total no. of Working Days" + }, + { + "default": "0", + "description": "If checked, hides and disables Rounded Total field in Salary Slips", + "fieldname": "disable_rounded_total", + "fieldtype": "Check", + "label": "Disable Rounded Total" + }, + { + "default": "0.5", + "description": "The fraction of daily wages to be paid for half-day attendance", + "fieldname": "daily_wages_fraction_for_half_day", + "fieldtype": "Float", + "label": "Fraction of Daily Salary for Half Day" + }, + { + "default": "1", + "description": "Emails salary slip to employee based on preferred email selected in Employee", + "fieldname": "email_salary_slip_to_employee", + "fieldtype": "Check", + "label": "Email Salary Slip to Employee" + }, + { + "default": "0", + "depends_on": "eval: doc.email_salary_slip_to_employee == 1;", + "description": "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy.", + "fieldname": "encrypt_salary_slips_in_emails", + "fieldtype": "Check", + "label": "Encrypt Salary Slips in Emails" + }, + { + "depends_on": "eval: doc.encrypt_salary_slips_in_emails == 1", + "description": "Example: SAL-{first_name}-{date_of_birth.year}
    This will generate a password like SAL-Jane-1972", + "fieldname": "password_policy", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Password Policy" + }, + { + "depends_on": "eval:doc.payroll_based_on == 'Attendance'", + "fieldname": "consider_unmarked_attendance_as", + "fieldtype": "Select", + "label": "Consider Unmarked Attendance As", + "options": "Present\nAbsent" + }, + { + "default": "0", + "fieldname": "show_leave_balances_in_salary_slip", + "fieldtype": "Check", + "label": "Show Leave Balances in Salary Slip" + }, + { + "default": "0", + "description": "If checked, Payroll Payable will be booked against each employee", + "fieldname": "process_payroll_accounting_entry_based_on_employee", + "fieldtype": "Check", + "label": "Process Payroll Accounting Entry based on Employee" + }, + { + "fieldname": "column_break_6", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_rnoq", + "fieldtype": "Section Break", + "label": "Salary Slip" + }, + { + "fieldname": "email_section", + "fieldtype": "Section Break", + "label": "Email" + }, + { + "fieldname": "working_days_section", + "fieldtype": "Section Break", + "label": "Working Days and Hours" + }, + { + "fieldname": "column_break_gzpl", + "fieldtype": "Column Break" + }, + { + "fieldname": "other_settings_section", + "fieldtype": "Section Break", + "label": "Other Settings" + }, + { + "fieldname": "column_break_zi9y", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_iewr", + "fieldtype": "Column Break" + }, + { + "default": "0", + "depends_on": "include_holidays_in_total_working_days", + "description": "If enabled, deducts payment days for absent attendance on holidays. By default, holidays are considered as paid", + "fieldname": "consider_marked_attendance_on_holidays", + "fieldtype": "Check", + "label": "Consider Marked Attendance on Holidays" + }, + { + "depends_on": "eval:doc.email_salary_slip_to_employee", + "fieldname": "sender", + "fieldtype": "Link", + "label": "Sender", + "options": "Email Account" + }, + { + "depends_on": "eval:doc.sender", + "fetch_from": "sender.email_id", + "fieldname": "sender_email", + "fieldtype": "Data", + "label": "Sender Email", + "read_only": 1 + }, + { + "depends_on": "eval:doc.email_salary_slip_to_employee", + "fieldname": "email_template", + "fieldtype": "Link", + "label": "Email Template", + "options": "Email Template" + }, + { + "default": "0", + "description": "If checked, overtime slip creation can be handled as part of payroll processing", + "fieldname": "create_overtime_slip", + "fieldtype": "Check", + "label": "Create Overtime Slip For Eligible Employee(s)" + }, + { + "depends_on": "eval:doc.email_salary_slip_to_employee", + "fieldname": "sender_copy", + "fieldtype": "Link", + "label": "Sender Copy", + "options": "Email Account" + }, + { + "default": "0", + "description": "If checked, flexible benefits are considered only if benefit application exists", + "fieldname": "mandatory_benefit_application", + "fieldtype": "Check", + "label": "Mandatory Benefit Application" + } + ], + "icon": "fa fa-cog", + "index_web_pages_for_search": 1, + "issingle": 1, + "links": [], + "modified": "2025-09-02 13:28:45.007397", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Payroll Settings", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "email": 1, + "print": 1, + "read": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "ASC", + "states": [], + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/payroll_settings.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/payroll_settings.py new file mode 100644 index 000000000..33614e9d3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/payroll_settings.py @@ -0,0 +1,45 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.custom.doctype.property_setter.property_setter import make_property_setter +from frappe.model.document import Document +from frappe.utils import cint + + +class PayrollSettings(Document): + def validate(self): + self.validate_password_policy() + + if not self.daily_wages_fraction_for_half_day: + self.daily_wages_fraction_for_half_day = 0.5 + + def validate_password_policy(self): + if self.email_salary_slip_to_employee and self.encrypt_salary_slips_in_emails: + if not self.password_policy: + frappe.throw(_("Password policy for Salary Slips is not set")) + + def on_update(self): + self.toggle_rounded_total() + frappe.clear_cache() + + def toggle_rounded_total(self): + self.disable_rounded_total = cint(self.disable_rounded_total) + make_property_setter( + "Salary Slip", + "rounded_total", + "hidden", + self.disable_rounded_total, + "Check", + validate_fields_for_doctype=False, + ) + make_property_setter( + "Salary Slip", + "rounded_total", + "print_hide", + self.disable_rounded_total, + "Check", + validate_fields_for_doctype=False, + ) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/test_payroll_settings.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/test_payroll_settings.py new file mode 100644 index 000000000..ef88b991e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/payroll_settings/test_payroll_settings.py @@ -0,0 +1,9 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + + +class TestPayrollSettings(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/retention_bonus.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/retention_bonus.js new file mode 100644 index 000000000..77af1052c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/retention_bonus.js @@ -0,0 +1,43 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Retention Bonus", { + setup: function (frm) { + frm.set_query("employee", function () { + if (!frm.doc.company) { + frappe.msgprint(__("Please Select Company First")); + } + return { + filters: { + status: "Active", + company: frm.doc.company, + }, + }; + }); + + frm.set_query("salary_component", function () { + return { + filters: { + type: "Earning", + }, + }; + }); + }, + + employee: function (frm) { + if (frm.doc.employee) { + frappe.call({ + method: "hrms.payroll.doctype.salary_structure_assignment.salary_structure_assignment.get_employee_currency", + args: { + employee: frm.doc.employee, + }, + callback: function (r) { + if (r.message) { + frm.set_value("currency", r.message); + frm.refresh_fields(); + } + }, + }); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/retention_bonus.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/retention_bonus.json new file mode 100644 index 000000000..2e6fc4e14 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/retention_bonus.json @@ -0,0 +1,190 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "HR-RTB-.YYYY.-.#####", + "creation": "2018-05-13 14:59:42.038964", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee_section", + "employee", + "employee_name", + "department", + "column_break_6", + "company", + "date_of_joining", + "bonus_section", + "salary_component", + "bonus_amount", + "column_break_12", + "bonus_payment_date", + "currency", + "amended_from" + ], + "fields": [ + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1 + }, + { + "fieldname": "bonus_payment_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Bonus Payment Date", + "reqd": 1 + }, + { + "fieldname": "bonus_amount", + "fieldtype": "Currency", + "label": "Bonus Amount", + "options": "currency", + "reqd": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Retention Bonus", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "column_break_6", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fetch_from": "employee.date_of_joining", + "fieldname": "date_of_joining", + "fieldtype": "Data", + "label": "Date of Joining", + "read_only": 1 + }, + { + "fieldname": "salary_component", + "fieldtype": "Link", + "label": "Salary Component", + "options": "Salary Component", + "reqd": 1 + }, + { + "depends_on": "eval:(doc.docstatus==1 || doc.employee)", + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "print_hide": 1, + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "column_break_12", + "fieldtype": "Column Break" + }, + { + "fieldname": "employee_section", + "fieldtype": "Section Break", + "label": "Employee" + }, + { + "fieldname": "bonus_section", + "fieldtype": "Section Break", + "label": "Bonus" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2024-03-27 13:10:33.560494", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Retention Bonus", + "naming_rule": "Expression (old style)", + "owner": "Administrator", + "permissions": [ + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + } + ], + "search_fields": "employee_name", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/retention_bonus.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/retention_bonus.py new file mode 100644 index 000000000..d67016032 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/retention_bonus.py @@ -0,0 +1,69 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import getdate + +from hrms.hr.utils import validate_active_employee + + +class RetentionBonus(Document): + def validate(self): + validate_active_employee(self.employee) + if getdate(self.bonus_payment_date) < getdate(): + frappe.throw(_("Bonus Payment Date cannot be a past date")) + + def on_submit(self): + company = frappe.db.get_value("Employee", self.employee, "company") + additional_salary = self.get_additional_salary() + + if not additional_salary: + additional_salary = frappe.new_doc("Additional Salary") + additional_salary.employee = self.employee + additional_salary.salary_component = self.salary_component + additional_salary.amount = self.bonus_amount + additional_salary.payroll_date = self.bonus_payment_date + additional_salary.company = company + additional_salary.overwrite_salary_structure_amount = 0 + additional_salary.ref_doctype = self.doctype + additional_salary.ref_docname = self.name + additional_salary.submit() + # self.db_set('additional_salary', additional_salary.name) + + else: + bonus_added = ( + frappe.db.get_value("Additional Salary", additional_salary, "amount") + self.bonus_amount + ) + frappe.db.set_value("Additional Salary", additional_salary, "amount", bonus_added) + self.db_set("additional_salary", additional_salary) + + def on_cancel(self): + additional_salary = self.get_additional_salary() + if additional_salary: + bonus_removed = ( + frappe.db.get_value("Additional Salary", additional_salary, "amount") - self.bonus_amount + ) + if bonus_removed == 0: + frappe.get_doc("Additional Salary", additional_salary).cancel() + else: + frappe.db.set_value("Additional Salary", additional_salary, "amount", bonus_removed) + + # self.db_set('additional_salary', '') + + def get_additional_salary(self): + return frappe.db.exists( + "Additional Salary", + { + "employee": self.employee, + "salary_component": self.salary_component, + "payroll_date": self.bonus_payment_date, + "company": self.company, + "docstatus": 1, + "ref_doctype": self.doctype, + "ref_docname": self.name, + "disabled": 0, + }, + ) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/test_retention_bonus.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/test_retention_bonus.py new file mode 100644 index 000000000..21f5ca849 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/retention_bonus/test_retention_bonus.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestRetentionBonus(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/README.md b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/README.md new file mode 100644 index 000000000..964419244 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/README.md @@ -0,0 +1 @@ +Type of earning and deductions that is a part of the salary. diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/salary_component.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/salary_component.js new file mode 100644 index 000000000..1cdb2b9f9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/salary_component.js @@ -0,0 +1,181 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Salary Component", { + setup: function (frm) { + frm.set_query("account", "accounts", function (doc, cdt, cdn) { + var d = locals[cdt][cdn]; + return { + filters: { + is_group: 0, + company: d.company, + }, + }; + }); + frm.set_query("earning_component_group", function () { + return { + filters: { + is_group: 1, + is_flexible_benefit: 1, + }, + }; + }); + }, + + refresh: function (frm) { + hrms.payroll_utils.set_autocompletions_for_condition_and_formula(frm); + + if (!frm.doc.__islocal) { + frm.trigger("add_update_structure_button"); + frm.add_custom_button( + __("Salary Structure"), + () => { + frm.trigger("create_salary_structure"); + }, + __("Create"), + ); + } + }, + + do_not_include_in_total: function (frm) { + if (!frm.doc.do_not_include_in_total) { + frm.set_value("do_not_include_in_accounts", 0); + } + }, + + arrear_component: function (frm) { + if (frm.doc.arrear_component) { + frm.set_value("depends_on_payment_days", 1); + } + }, + + is_flexible_benefit: function (frm) { + if (frm.doc.is_flexible_benefit) { + set_value_for_condition_and_formula(frm); + frm.set_value("formula", ""); + frm.set_value("amount", 0); + } else { + frm.set_value("payout_method", ""); + } + }, + + payout_method: (frm) => { + if (frm.doc.is_flexible_benefit) { + if ( + [ + "Accrue and payout at end of payroll period", + "Accrue per cycle, pay only on claim", + ].includes(frm.doc.payout_method) + ) { + frm.set_value("accrual_component", 1); + } else { + frm.set_value("accrual_component", 0); + } + } + }, + + type: function (frm) { + if (frm.doc.type == "Earning") { + frm.set_value("is_tax_applicable", 1); + frm.set_value("variable_based_on_taxable_salary", 0); + } + if (frm.doc.type == "Deduction") { + frm.set_value("is_tax_applicable", 0); + frm.set_value("is_flexible_benefit", 0); + frm.set_value("accrual_component", 0); + } + }, + + variable_based_on_taxable_salary: function (frm) { + if (frm.doc.variable_based_on_taxable_salary) { + set_value_for_condition_and_formula(frm); + } + frm.set_value("arrear_component", 0); + }, + + add_update_structure_button: function (frm) { + for (const df of ["Condition", "Formula"]) { + frm.add_custom_button( + __("Sync {0}", [__(df)]), + function () { + frappe + .call({ + method: "get_structures_to_be_updated", + doc: frm.doc, + }) + .then((r) => { + if (r.message.length) + frm.events.update_salary_structures(frm, df, r.message); + else + frappe.msgprint({ + message: __( + "Salary Component {0} is currently not used in any Salary Structure.", + [frm.doc.name.bold()], + ), + title: __("No Salary Structures"), + indicator: "orange", + }); + }); + }, + __("Update Salary Structures"), + ); + } + }, + + update_salary_structures: function (frm, df, structures) { + let msg = __("{0} will be updated for the following Salary Structures: {1}.", [ + __(df), + frappe.utils.comma_and( + structures.map((d) => + frappe.utils.get_form_link("Salary Structure", d, true).bold(), + ), + ), + ]); + msg += "
    "; + msg += __("Are you sure you want to proceed?"); + frappe.confirm(msg, () => { + frappe + .call({ + method: "update_salary_structures", + doc: frm.doc, + args: { + structures: structures, + field: df.toLowerCase(), + value: frm.get_field(df.toLowerCase()).value || "", + }, + }) + .then((r) => { + if (!r.exc) { + frappe.show_alert({ + message: __("Salary Structures updated successfully"), + indicator: "green", + }); + } + }); + }); + }, + + create_salary_structure: function (frm) { + frappe.model.with_doctype("Salary Structure", () => { + const salary_structure = frappe.model.get_new_doc("Salary Structure"); + const salary_detail = frappe.model.add_child( + salary_structure, + frm.doc.type === "Earning" ? "earnings" : "deductions", + ); + salary_detail.salary_component = frm.doc.name; + frappe.set_route("Form", "Salary Structure", salary_structure.name); + }); + }, +}); + +var set_value_for_condition_and_formula = function (frm) { + frm.set_value({ + formula: null, + condition: null, + amount_based_on_formula: 0, + statistical_component: 0, + do_not_include_in_total: 0, + do_not_include_in_accounts: 0, + depends_on_payment_days: 0, + }); +}; diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/salary_component.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/salary_component.json new file mode 100644 index 000000000..7963e3aae --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/salary_component.json @@ -0,0 +1,323 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "field:salary_component", + "creation": "2016-06-30 15:42:43.631931", + "doctype": "DocType", + "document_type": "Setup", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "overview_tab", + "salary_component", + "salary_component_abbr", + "type", + "description", + "column_break_4", + "depends_on_payment_days", + "is_tax_applicable", + "deduct_full_tax_on_selected_payroll_date", + "variable_based_on_taxable_salary", + "is_income_tax_component", + "exempted_from_income_tax", + "round_to_the_nearest_integer", + "statistical_component", + "accrual_component", + "do_not_include_in_total", + "do_not_include_in_accounts", + "remove_if_zero_valued", + "arrear_component", + "disabled", + "section_break_5", + "accounts", + "configure_component_tab", + "condition_and_formula", + "condition", + "amount", + "amount_based_on_formula", + "formula", + "column_break_28", + "help", + "flexible_benefits_tab", + "is_flexible_benefit", + "payout_method", + "final_cycle_accrual_payout", + "column_break_9", + "max_benefit_amount" + ], + "fields": [ + { + "fieldname": "salary_component", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Name", + "reqd": 1, + "unique": 1 + }, + { + "fieldname": "salary_component_abbr", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Abbr", + "print_width": "120px", + "reqd": 1, + "width": "120px" + }, + { + "fieldname": "type", + "fieldtype": "Select", + "in_standard_filter": 1, + "label": "Type", + "options": "Earning\nDeduction", + "reqd": 1 + }, + { + "default": "1", + "depends_on": "eval:doc.type == \"Earning\"", + "fieldname": "is_tax_applicable", + "fieldtype": "Check", + "label": "Is Tax Applicable" + }, + { + "default": "1", + "fieldname": "depends_on_payment_days", + "fieldtype": "Check", + "label": "Depends on Payment Days", + "print_hide": 1, + "read_only_depends_on": "eval:doc.arrear_component && !doc.amount_based_on_formula" + }, + { + "default": "0", + "fieldname": "do_not_include_in_total", + "fieldtype": "Check", + "label": "Do Not Include in Total" + }, + { + "default": "0", + "depends_on": "eval:doc.is_tax_applicable && doc.type=='Earning'", + "fieldname": "deduct_full_tax_on_selected_payroll_date", + "fieldtype": "Check", + "label": "Deduct Full Tax on Selected Payroll Date" + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "default": "0", + "fieldname": "disabled", + "fieldtype": "Check", + "label": "Disabled" + }, + { + "fieldname": "description", + "fieldtype": "Small Text", + "in_list_view": 1, + "label": "Description" + }, + { + "default": "0", + "description": "If enabled, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. ", + "fieldname": "statistical_component", + "fieldtype": "Check", + "label": "Statistical Component" + }, + { + "default": "0", + "fieldname": "is_flexible_benefit", + "fieldtype": "Check", + "label": "Is Flexible Benefit" + }, + { + "depends_on": "is_flexible_benefit", + "description": "If greater than zero, this sets the maximum benefit amount assignable to any employee", + "fieldname": "max_benefit_amount", + "fieldtype": "Currency", + "label": "Max Benefit Amount (Yearly)" + }, + { + "fieldname": "column_break_9", + "fieldtype": "Column Break" + }, + { + "default": "0", + "depends_on": "eval:doc.type == \"Deduction\"", + "description": "If enabled, the component will be considered as a tax component and the amount will be auto-calculated as per the configured income tax slabs", + "fieldname": "variable_based_on_taxable_salary", + "fieldtype": "Check", + "label": "Variable Based On Taxable Salary", + "search_index": 1 + }, + { + "depends_on": "eval:doc.statistical_component != 1", + "fieldname": "section_break_5", + "fieldtype": "Section Break", + "label": "Accounts" + }, + { + "fieldname": "accounts", + "fieldtype": "Table", + "label": "Accounts", + "options": "Salary Component Account" + }, + { + "depends_on": "eval:doc.is_flexible_benefit != 1 && doc.variable_based_on_taxable_salary != 1", + "fieldname": "condition_and_formula", + "fieldtype": "Section Break" + }, + { + "fieldname": "condition", + "fieldtype": "Code", + "label": "Condition", + "options": "PythonExpression" + }, + { + "default": "0", + "fieldname": "amount_based_on_formula", + "fieldtype": "Check", + "label": "Amount based on formula" + }, + { + "depends_on": "amount_based_on_formula", + "fieldname": "formula", + "fieldtype": "Code", + "label": "Formula", + "options": "PythonExpression" + }, + { + "depends_on": "eval:doc.amount_based_on_formula!==1", + "fieldname": "amount", + "fieldtype": "Currency", + "label": "Amount" + }, + { + "fieldname": "column_break_28", + "fieldtype": "Column Break" + }, + { + "fieldname": "help", + "fieldtype": "HTML", + "label": "Help", + "options": "

    Help

    \n\n

    Notes:

    \n\n
      \n
    1. Use field base for using base salary of the Employee
    2. \n
    3. Use Salary Component abbreviations in conditions and formulas. BS = Basic Salary
    4. \n
    5. Use field name for employee details in conditions and formulas. Employment Type = employment_typeBranch = branch
    6. \n
    7. Use field name from Salary Slip in conditions and formulas. Payment Days = payment_daysLeave without pay = leave_without_pay
    8. \n
    9. Direct Amount can also be entered based on Condition. See example 3
    \n\n

    Examples

    \n
      \n
    1. Calculating Basic Salary based on base\n
      Condition: base < 10000
      \n
      Formula: base * .2
    2. \n
    3. Calculating HRA based on Basic SalaryBS \n
      Condition: BS > 2000
      \n
      Formula: BS * .1
    4. \n
    5. Calculating TDS based on Employment Typeemployment_type \n
      Condition: employment_type==\"Intern\"
      \n
      Amount: 1000
    6. \n
    " + }, + { + "default": "0", + "fieldname": "round_to_the_nearest_integer", + "fieldtype": "Check", + "label": "Round to the Nearest Integer" + }, + { + "default": "0", + "depends_on": "eval:doc.type == \"Deduction\" && !doc.variable_based_on_taxable_salary", + "description": "If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission.", + "fieldname": "exempted_from_income_tax", + "fieldtype": "Check", + "label": "Exempted from Income Tax" + }, + { + "default": "0", + "depends_on": "eval:doc.type == \"Deduction\"", + "description": "If enabled, the component will be considered in the Income Tax Deductions report", + "fieldname": "is_income_tax_component", + "fieldtype": "Check", + "label": "Is Income Tax Component" + }, + { + "fieldname": "configure_component_tab", + "fieldtype": "Tab Break", + "label": "Condition & Formula" + }, + { + "fieldname": "overview_tab", + "fieldtype": "Tab Break", + "label": "Overview" + }, + { + "depends_on": "eval:doc.type==\"Earning\" && doc.statistical_component!=1", + "fieldname": "flexible_benefits_tab", + "fieldtype": "Tab Break", + "label": "Flexible Benefits" + }, + { + "default": "1", + "depends_on": "eval:!doc.statistical_component", + "description": "If enabled, the component will not be displayed in the salary slip if the amount is zero", + "fieldname": "remove_if_zero_valued", + "fieldtype": "Check", + "label": "Remove if Zero Valued" + }, + { + "default": "0", + "depends_on": "eval:doc.do_not_include_in_total", + "description": "If enabled, the amount will be excluded from accounting entries during Journal Entry creation.", + "fieldname": "do_not_include_in_accounts", + "fieldtype": "Check", + "label": "Do Not Include in Accounting Entries" + }, + { + "default": "0", + "description": "If enabled, this component will be included in arrear calculations", + "fieldname": "arrear_component", + "fieldtype": "Check", + "label": "Arrear Component", + "read_only_depends_on": "variable_based_on_taxable_salary" + }, + { + "default": "0", + "depends_on": "eval:doc.type==\"Earning\"", + "description": "If enabled, this component allows to accrue amounts without adding them to earnings. The accrued balance is tracked in the Employee Benefit Ledger and can be paid out later as needed.", + "fieldname": "accrual_component", + "fieldtype": "Check", + "label": "Accrual Component", + "read_only_depends_on": "eval:doc.is_flexible_benefit==1;" + }, + { + "depends_on": "is_flexible_benefit", + "fieldname": "payout_method", + "fieldtype": "Select", + "label": "Payout Method", + "mandatory_depends_on": "is_flexible_benefit", + "options": "\nAccrue and payout at end of payroll period\nAccrue per cycle, pay only on claim\nAllow claim for full benefit amount" + }, + { + "default": "0", + "depends_on": "eval:(doc.is_flexible_benefit && doc.payout_method==\"Accrue per cycle, pay only on claim\")", + "fieldname": "final_cycle_accrual_payout", + "fieldtype": "Check", + "label": "Payout Unclaimed Amount in Final Payroll Cycle" + } + ], + "icon": "fa fa-flag", + "index_web_pages_for_search": 1, + "links": [], + "modified": "2025-09-23 11:28:17.375819", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Component", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "write": 1 + }, + { + "read": 1, + "role": "Employee" + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/salary_component.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/salary_component.py new file mode 100644 index 000000000..256d5fbe1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/salary_component.py @@ -0,0 +1,141 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import copy + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.model.naming import append_number_if_name_exists + +from hrms.payroll.utils import sanitize_expression + + +class SalaryComponent(Document): + def before_validate(self): + self._condition, self.condition = self.condition, sanitize_expression(self.condition) + self._formula, self.formula = self.formula, sanitize_expression(self.formula) + + def validate(self): + self.validate_abbr() + self.validate_accounts() + self.validate_accrual_component() + self.valide_arrear_component() + + def on_update(self): + # set old values (allowing multiline strings for better readability in the doctype form) + if self._condition != self.condition: + self.db_set("condition", self._condition) + if self._formula != self.formula: + self.db_set("formula", self._formula) + + def clear_cache(self): + from hrms.payroll.doctype.salary_slip.salary_slip import ( + SALARY_COMPONENT_VALUES, + TAX_COMPONENTS_BY_COMPANY, + ) + + frappe.cache().delete_value(SALARY_COMPONENT_VALUES) + frappe.cache().delete_value(TAX_COMPONENTS_BY_COMPANY) + return super().clear_cache() + + def validate_abbr(self): + if not self.salary_component_abbr: + self.salary_component_abbr = "".join([c[0] for c in self.salary_component.split()]).upper() + + self.salary_component_abbr = self.salary_component_abbr.strip() + self.salary_component_abbr = append_number_if_name_exists( + "Salary Component", + self.salary_component_abbr, + "salary_component_abbr", + separator="_", + filters={"name": ["!=", self.name]}, + ) + + def validate_accounts(self): + if not (self.statistical_component or (self.accounts and all(d.account for d in self.accounts))): + frappe.msgprint( + title=_("Warning"), + msg=_("Accounts not set for Salary Component {0}").format(self.name), + indicator="orange", + ) + + def validate_accrual_component(self): + if self.type != "Earning" and self.accrual_component: + frappe.throw( + _("Accrual Component can only be set for Earning Salary Components."), + title=_("Invalid Accrual Component"), + ) + + if self.is_flexible_benefit: + requires_accrual = self.payout_method in [ + "Accrue and payout at end of payroll period", + "Accrue per cycle, pay only on claim", + ] + + if requires_accrual and not self.accrual_component: + frappe.throw( + _( + "Accrual Component must be set for Flexible Benefit Salary Components with accrual payout methods." + ), + title=_("Invalid Accrual Component"), + ) + + if not requires_accrual and self.accrual_component: + frappe.throw( + _( + "Accrual Component can only be set for Flexible Benefit Salary Components with accrual payout methods." + ), + title=_("Invalid Accrual Component"), + ) + + def valide_arrear_component(self): + if self.variable_based_on_taxable_salary and self.arrear_component: + frappe.throw( + _("Arrear Component cannot be set for Salary Components based on taxable salary."), + title=_("Invalid Arrear Component"), + ) + + @frappe.whitelist() + def get_structures_to_be_updated(self): + SalaryStructure = frappe.qb.DocType("Salary Structure") + SalaryDetail = frappe.qb.DocType("Salary Detail") + return ( + frappe.qb.from_(SalaryStructure) + .inner_join(SalaryDetail) + .on(SalaryStructure.name == SalaryDetail.parent) + .select(SalaryStructure.name) + .where((SalaryDetail.salary_component == self.name) & (SalaryStructure.docstatus != 2)) + .run(pluck=True) + ) + + @frappe.whitelist() + def update_salary_structures(self, field, value, structures=None): + is_formula_related = field == "formula" + + if not structures: + structures = self.get_structures_to_be_updated() + + for structure in structures: + salary_structure = frappe.get_doc("Salary Structure", structure) + # this is only used for versioning and we do not want + # to make separate db calls by using load_doc_before_save + # which proves to be expensive while doing bulk replace + salary_structure._doc_before_save = copy.deepcopy(salary_structure) + + salary_detail_row = next( + (d for d in salary_structure.get(f"{self.type.lower()}s") if d.salary_component == self.name), + None, + ) + if is_formula_related: + value = value if self.amount_based_on_formula else None + salary_detail_row.set("amount_based_on_formula", self.amount_based_on_formula) + + salary_detail_row.set(field, value) + salary_structure.db_update_all() + salary_structure.flags.updater_reference = { + "doctype": self.doctype, + "docname": self.name, + "label": _("via Salary Component sync"), + } + salary_structure.save_version() diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/test_records.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/test_records.json new file mode 100644 index 000000000..104b44ffa --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/test_records.json @@ -0,0 +1,36 @@ +[ + { + "doctype": "Salary Component", + "salary_component": "_Test Basic Salary", + "type": "Earning", + "is_tax_applicable": 1 + }, + { + "doctype": "Salary Component", + "salary_component": "_Test Allowance", + "type": "Earning", + "is_tax_applicable": 1 + }, + { + "doctype": "Salary Component", + "salary_component": "_Test Professional Tax", + "type": "Deduction" + }, + { + "doctype": "Salary Component", + "salary_component": "_Test TDS", + "type": "Deduction" + }, + { + "doctype": "Salary Component", + "salary_component": "Basic", + "type": "Earning", + "is_tax_applicable": 1 + }, + { + "doctype": "Salary Component", + "salary_component": "Leave Encashment", + "type": "Earning", + "is_tax_applicable": 1 + } +] \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/test_salary_component.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/test_salary_component.py new file mode 100644 index 000000000..d10c003c8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component/test_salary_component.py @@ -0,0 +1,73 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase + +from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + +class TestSalaryComponent(IntegrationTestCase): + def test_update_salary_structures(self): + salary_component = create_salary_component("Special Allowance") + salary_component.condition = "H < 10000" + salary_component.formula = "BS*.5" + salary_component.save() + + salary_structure1 = make_salary_structure("Salary Structure 1", "Monthly") + salary_structure2 = make_salary_structure("Salary Structure 2", "Monthly") + salary_structure3 = make_salary_structure("Salary Structure 3", "Monthly") + salary_structure3.cancel() # Details should not update for cancelled Salary Structures + + OLD_FORMULA = "BS\n*.5" + OLD_CONDITION = "H < 10000" + + ss1_detail = next( + (d for d in salary_structure1.earnings if d.salary_component == "Special Allowance"), None + ) + self.assertEqual(ss1_detail.condition, OLD_CONDITION) + self.assertEqual(ss1_detail.formula, OLD_FORMULA) + + ss2_detail = next( + (d for d in salary_structure2.earnings if d.salary_component == "Special Allowance"), None + ) + self.assertEqual(ss2_detail.condition, OLD_CONDITION) + self.assertEqual(ss2_detail.formula, OLD_FORMULA) + + ss3_detail = next( + (d for d in salary_structure3.earnings if d.salary_component == "Special Allowance"), None + ) + self.assertEqual(ss3_detail.condition, OLD_CONDITION) + self.assertEqual(ss3_detail.formula, OLD_FORMULA) + + salary_component.update_salary_structures("condition", "H < 8000") + ss1_detail.reload() + self.assertEqual(ss1_detail.condition, "H < 8000") + ss2_detail.reload() + self.assertEqual(ss2_detail.condition, "H < 8000") + ss3_detail.reload() + self.assertEqual(ss3_detail.condition, OLD_CONDITION) + + salary_component.update_salary_structures("formula", "BS*.3") + ss1_detail.reload() + self.assertEqual(ss1_detail.formula, "BS*.3") + ss2_detail.reload() + self.assertEqual(ss2_detail.formula, "BS*.3") + ss3_detail.reload() + self.assertEqual(ss3_detail.formula, OLD_FORMULA) + + +def create_salary_component(component_name, **args): + if frappe.db.exists("Salary Component", component_name): + return frappe.get_doc("Salary Component", component_name) + + return frappe.get_doc( + { + "doctype": "Salary Component", + "salary_component": component_name, + "type": args.get("type") or "Earning", + "is_tax_applicable": args.get("is_tax_applicable") or 1, + "do_not_include_in_total": args.get("do_not_include_in_total") or 0, + "do_not_include_in_accounts": args.get("do_not_include_in_accounts") or 0, + } + ).insert() diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component_account/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component_account/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component_account/salary_component_account.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component_account/salary_component_account.json new file mode 100644 index 000000000..605ea94c0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component_account/salary_component_account.json @@ -0,0 +1,39 @@ +{ + "actions": [], + "creation": "2016-07-27 17:24:24.956896", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "company", + "account" + ], + "fields": [ + { + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company" + }, + { + "description": "Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected.", + "fieldname": "account", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Account", + "options": "Account" + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:10:34.071210", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Component Account", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component_account/salary_component_account.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component_account/salary_component_account.py new file mode 100644 index 000000000..b70179aa9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_component_account/salary_component_account.py @@ -0,0 +1,9 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class SalaryComponentAccount(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_detail/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_detail/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_detail/salary_detail.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_detail/salary_detail.json new file mode 100644 index 000000000..293a1850e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_detail/salary_detail.json @@ -0,0 +1,292 @@ +{ + "actions": [], + "creation": "2016-06-30 15:32:36.385111", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "salary_component", + "abbr", + "column_break_3", + "amount", + "year_to_date", + "section_break_5", + "additional_salary", + "is_recurring_additional_salary", + "statistical_component", + "depends_on_payment_days", + "exempted_from_income_tax", + "is_tax_applicable", + "column_break_11", + "is_flexible_benefit", + "variable_based_on_taxable_salary", + "do_not_include_in_total", + "do_not_include_in_accounts", + "accrual_component", + "deduct_full_tax_on_selected_payroll_date", + "section_break_2", + "condition", + "column_break_18", + "amount_based_on_formula", + "formula", + "section_break_19", + "default_amount", + "additional_amount", + "column_break_24", + "tax_on_flexible_benefit", + "tax_on_additional_salary" + ], + "fields": [ + { + "columns": 2, + "fieldname": "salary_component", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Component", + "options": "Salary Component", + "reqd": 1, + "search_index": 1 + }, + { + "columns": 1, + "depends_on": "eval:doc.parenttype=='Salary Structure'", + "fetch_from": "salary_component.salary_component_abbr", + "fieldname": "abbr", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Abbr", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "default": "0", + "description": "If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. ", + "fetch_from": "salary_component.statistical_component", + "fieldname": "statistical_component", + "fieldtype": "Check", + "label": "Statistical Component" + }, + { + "default": "0", + "depends_on": "eval:doc.parentfield=='earnings'", + "fetch_from": "salary_component.is_tax_applicable", + "fieldname": "is_tax_applicable", + "fieldtype": "Check", + "in_list_view": 1, + "label": "Is Tax Applicable", + "print_hide": 1, + "read_only": 1, + "search_index": 1 + }, + { + "default": "0", + "depends_on": "eval:doc.parentfield=='earnings'", + "fetch_from": "salary_component.is_flexible_benefit", + "fieldname": "is_flexible_benefit", + "fieldtype": "Check", + "label": "Is Flexible Benefit", + "print_hide": 1, + "read_only": 1 + }, + { + "default": "0", + "depends_on": "eval:doc.parentfield=='deductions'", + "fetch_from": "salary_component.variable_based_on_taxable_salary", + "fieldname": "variable_based_on_taxable_salary", + "fieldtype": "Check", + "label": "Variable Based On Taxable Salary", + "print_hide": 1, + "read_only": 1, + "search_index": 1 + }, + { + "default": "0", + "fetch_from": "salary_component.depends_on_payment_days", + "fieldname": "depends_on_payment_days", + "fieldtype": "Check", + "in_list_view": 1, + "label": "Depends on Payment Days", + "print_hide": 1, + "read_only": 1 + }, + { + "default": "0", + "fieldname": "deduct_full_tax_on_selected_payroll_date", + "fieldtype": "Check", + "label": "Deduct Full Tax on Selected Payroll Date", + "print_hide": 1, + "read_only": 1 + }, + { + "collapsible": 1, + "depends_on": "eval:doc.is_flexible_benefit != 1", + "fieldname": "section_break_2", + "fieldtype": "Section Break", + "label": "Condition and formula" + }, + { + "allow_on_submit": 1, + "depends_on": "eval:doc.parenttype=='Salary Structure'", + "fieldname": "condition", + "fieldtype": "Code", + "label": "Condition", + "options": "PythonExpression" + }, + { + "default": "0", + "depends_on": "eval:doc.parenttype=='Salary Structure'", + "fieldname": "amount_based_on_formula", + "fieldtype": "Check", + "in_list_view": 1, + "label": "Amount based on formula" + }, + { + "allow_on_submit": 1, + "depends_on": "eval:doc.amount_based_on_formula!==0 && doc.parenttype==='Salary Structure'", + "fieldname": "formula", + "fieldtype": "Code", + "in_list_view": 1, + "label": "Formula", + "options": "PythonExpression" + }, + { + "depends_on": "eval:doc.amount_based_on_formula!==1 || doc.parenttype==='Salary Slip'", + "fieldname": "amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Amount", + "options": "currency" + }, + { + "default": "0", + "fetch_from": "salary_component.do_not_include_in_total", + "fieldname": "do_not_include_in_total", + "fieldtype": "Check", + "label": "Do not include in total" + }, + { + "depends_on": "eval:doc.parenttype=='Salary Structure'", + "fieldname": "default_amount", + "fieldtype": "Currency", + "label": "Default Amount", + "options": "currency", + "print_hide": 1 + }, + { + "fieldname": "additional_amount", + "fieldtype": "Currency", + "hidden": 1, + "label": "Additional Amount", + "no_copy": 1, + "options": "currency", + "print_hide": 1, + "read_only": 1 + }, + { + "depends_on": "eval:doc.parenttype=='Salary Slip' && doc.parentfield=='deductions' && doc.variable_based_on_taxable_salary == 1", + "fieldname": "tax_on_flexible_benefit", + "fieldtype": "Currency", + "label": "Tax on flexible benefit", + "options": "currency", + "read_only": 1 + }, + { + "depends_on": "eval:doc.parenttype=='Salary Slip' && doc.parentfield=='deductions' && doc.variable_based_on_taxable_salary == 1", + "fieldname": "tax_on_additional_salary", + "fieldtype": "Currency", + "label": "Tax on additional salary", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "additional_salary", + "fieldtype": "Link", + "label": "Additional Salary ", + "options": "Additional Salary", + "read_only": 1 + }, + { + "default": "0", + "depends_on": "eval:doc.parentfield=='deductions'", + "fetch_from": "salary_component.exempted_from_income_tax", + "fieldname": "exempted_from_income_tax", + "fieldtype": "Check", + "label": "Exempted from Income Tax", + "read_only": 1, + "search_index": 1 + }, + { + "collapsible": 1, + "fieldname": "section_break_5", + "fieldtype": "Section Break", + "label": "Component properties and references " + }, + { + "fieldname": "column_break_11", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_19", + "fieldtype": "Section Break" + }, + { + "fieldname": "column_break_18", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_24", + "fieldtype": "Column Break" + }, + { + "description": "Total salary booked against this component for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date.", + "fieldname": "year_to_date", + "fieldtype": "Currency", + "label": "Year To Date", + "options": "currency", + "read_only": 1 + }, + { + "default": "0", + "depends_on": "eval:doc.parenttype=='Salary Slip' && doc.additional_salary", + "fieldname": "is_recurring_additional_salary", + "fieldtype": "Check", + "label": "Is Recurring Additional Salary", + "read_only": 1 + }, + { + "default": "0", + "depends_on": "eval:doc.do_not_include_in_total", + "description": "If enabled, the amount will be excluded from accounting entries during Journal Entry creation.", + "fetch_from": "salary_component.do_not_include_in_accounts", + "fieldname": "do_not_include_in_accounts", + "fieldtype": "Check", + "label": "Do Not Include in Accounting Entries" + }, + { + "default": "0", + "fetch_from": "salary_component.accrual_component", + "fieldname": "accrual_component", + "fieldtype": "Check", + "in_list_view": 1, + "label": "Accrual Component", + "read_only": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2025-09-01 14:32:39.449384", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Detail", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_detail/salary_detail.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_detail/salary_detail.py new file mode 100644 index 000000000..c74bd546e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_detail/salary_detail.py @@ -0,0 +1,9 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +from frappe.model.document import Document + + +class SalaryDetail(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/README.md b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/README.md new file mode 100644 index 000000000..736550e42 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/README.md @@ -0,0 +1 @@ +Details of monthly salary paid for an Employee. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip.js new file mode 100644 index 000000000..f20bc5a49 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip.js @@ -0,0 +1,390 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.ui.form.on("Salary Slip", { + setup: function (frm) { + $.each(["earnings", "deductions"], function (i, table_fieldname) { + frm.get_field(table_fieldname).grid.editable_fields = [ + { fieldname: "salary_component", columns: 6 }, + { fieldname: "amount", columns: 4 }, + ]; + }); + + frm.fields_dict["timesheets"].grid.get_field("time_sheet").get_query = function () { + return { + filters: { + employee: frm.doc.employee, + }, + }; + }; + + frm.set_query("salary_component", "earnings", function () { + return { + filters: { + type: "earning", + }, + }; + }); + + frm.set_query("salary_component", "deductions", function () { + return { + filters: { + type: "deduction", + }, + }; + }); + + frm.set_query("employee", function () { + return { + query: "erpnext.controllers.queries.employee_query", + }; + }); + + frm.trigger("set_payment_days_description"); + }, + + validate: function (frm) { + frm.trigger("set_payment_days_description"); + }, + + start_date: function (frm) { + if (frm.doc.start_date) { + frm.trigger("set_end_date"); + } + }, + + end_date: function (frm) { + frm.events.get_emp_and_working_day_details(frm); + }, + + set_end_date: function (frm) { + frappe.call({ + method: "hrms.payroll.doctype.payroll_entry.payroll_entry.get_end_date", + args: { + frequency: frm.doc.payroll_frequency, + start_date: frm.doc.start_date, + }, + callback: function (r) { + if (r.message) { + frm.set_value("end_date", r.message.end_date); + } + }, + }); + }, + + company: function (frm) { + var company = locals[":Company"][frm.doc.company]; + if (!frm.doc.letter_head && company.default_letter_head) { + frm.set_value("letter_head", company.default_letter_head); + } + }, + + currency: function (frm) { + frm.trigger("update_currency_changes"); + }, + + update_currency_changes: function (frm) { + frm.trigger("set_exchange_rate"); + frm.trigger("set_dynamic_labels"); + }, + + set_dynamic_labels: function (frm) { + if (frm.doc.employee && frm.doc.currency) { + frappe.run_serially([ + () => frm.events.change_form_labels(frm), + () => frm.events.change_grid_labels(frm), + () => frm.refresh_fields(), + ]); + } + }, + + set_exchange_rate: function (frm) { + const company_currency = erpnext.get_currency(frm.doc.company); + + if (frm.doc.docstatus === 0) { + if (frm.doc.currency) { + var from_currency = frm.doc.currency; + if (from_currency != company_currency) { + frm.events.hide_loan_section(frm); + frappe.call({ + method: "erpnext.setup.utils.get_exchange_rate", + args: { + from_currency: from_currency, + to_currency: company_currency, + }, + callback: function (r) { + if (r.message) { + frm.set_value("exchange_rate", flt(r.message)); + frm.set_df_property("exchange_rate", "hidden", 0); + frm.set_df_property( + "exchange_rate", + "description", + "1 " + frm.doc.currency + " = [?] " + company_currency, + ); + } + }, + }); + } else { + frm.set_value("exchange_rate", 1.0); + frm.set_df_property("exchange_rate", "hidden", 1); + frm.set_df_property("exchange_rate", "description", ""); + } + } + } + }, + + exchange_rate: function (frm) { + set_totals(frm); + }, + + hide_loan_section: function (frm) { + frm.set_df_property("section_break_43", "hidden", 1); + }, + + change_form_labels: function (frm) { + const company_currency = erpnext.get_currency(frm.doc.company); + + frm.set_currency_labels( + [ + "base_hour_rate", + "base_gross_pay", + "base_total_deduction", + "base_net_pay", + "base_rounded_total", + "base_total_in_words", + "base_year_to_date", + "base_month_to_date", + "base_gross_year_to_date", + ], + company_currency, + ); + + frm.set_currency_labels( + [ + "hour_rate", + "gross_pay", + "total_deduction", + "net_pay", + "rounded_total", + "total_in_words", + "year_to_date", + "month_to_date", + "gross_year_to_date", + ], + frm.doc.currency, + ); + + // toggle fields + frm.toggle_display( + [ + "exchange_rate", + "base_hour_rate", + "base_gross_pay", + "base_total_deduction", + "base_net_pay", + "base_rounded_total", + "base_total_in_words", + "base_year_to_date", + "base_month_to_date", + "base_gross_year_to_date", + ], + frm.doc.currency != company_currency, + ); + }, + + change_grid_labels: function (frm) { + let fields = [ + "amount", + "year_to_date", + "default_amount", + "additional_amount", + "tax_on_flexible_benefit", + "tax_on_additional_salary", + ]; + + frm.set_currency_labels(fields, frm.doc.currency, "earnings"); + frm.set_currency_labels(fields, frm.doc.currency, "deductions"); + }, + + refresh: function (frm) { + frm.trigger("toggle_fields"); + + var salary_detail_fields = [ + "formula", + "abbr", + "statistical_component", + "variable_based_on_taxable_salary", + ]; + frm.fields_dict["earnings"].grid.set_column_disp(salary_detail_fields, false); + frm.fields_dict["deductions"].grid.set_column_disp(salary_detail_fields, false); + frm.trigger("set_dynamic_labels"); + }, + + salary_slip_based_on_timesheet: function (frm) { + frm.trigger("toggle_fields"); + frm.events.get_emp_and_working_day_details(frm); + }, + + payroll_frequency: function (frm) { + frm.trigger("toggle_fields"); + frm.set_value("end_date", ""); + }, + + employee: function (frm) { + frm.events.get_emp_and_working_day_details(frm); + }, + + leave_without_pay: function (frm) { + if (frm.doc.employee && frm.doc.start_date && frm.doc.end_date) { + return frappe.call({ + method: "process_salary_based_on_working_days", + doc: frm.doc, + callback: function () { + frm.refresh(); + }, + }); + } + }, + + toggle_fields: function (frm) { + frm.toggle_display( + ["hourly_wages", "timesheets"], + cint(frm.doc.salary_slip_based_on_timesheet) === 1, + ); + }, + + get_emp_and_working_day_details: function (frm) { + if (frm.doc.employee) { + return frappe.call({ + method: "get_emp_and_working_day_details", + doc: frm.doc, + callback: function (r) { + frm.refresh(); + // triggering events explicitly because structure is set on the server-side + // and currency is fetched from the structure + frm.trigger("update_currency_changes"); + }, + }); + } + }, + + set_payment_days_description: function (frm) { + if (frm.doc.docstatus !== 0) return; + + frappe.call("hrms.payroll.utils.get_payroll_settings_for_payment_days").then((r) => { + const { + payroll_based_on, + consider_unmarked_attendance_as, + include_holidays_in_total_working_days, + consider_marked_attendance_on_holidays, + } = r.message; + + const message = ` +
    + ${__("Note").bold()}: ${__("Payment Days calculations are based on these Payroll Settings")}: +

    ${__("Payroll Based On")}: ${__(payroll_based_on).bold()} +
    ${__("Consider Unmarked Attendance As")}: ${__(consider_unmarked_attendance_as).bold()} +
    ${__("Consider Marked Attendance on Holidays")}: + ${ + cint(include_holidays_in_total_working_days) && + cint(consider_marked_attendance_on_holidays) + ? __("Enabled").bold() + : __("Disabled").bold() + } +

    + ${__("Click {0} to change the configuration and then resave salary slip", [ + frappe.utils.get_form_link( + "Payroll Settings", + "Payroll Settings", + true, + "" + __("here") + "", + ), + ])} +
    + `; + + set_field_options("payment_days_calculation_help", message); + }); + }, +}); + +frappe.ui.form.on("Salary Slip Timesheet", { + time_sheet: function (frm) { + set_totals(frm); + }, + timesheets_remove: function (frm) { + set_totals(frm); + }, +}); + +var set_totals = function (frm) { + if (frm.doc.docstatus === 0 && frm.doc.doctype === "Salary Slip") { + if (frm.doc.earnings || frm.doc.deductions) { + frappe.call({ + method: "set_totals", + doc: frm.doc, + callback: function () { + frm.refresh_fields(); + }, + }); + } + } +}; + +frappe.ui.form.on("Salary Detail", { + amount: function (frm) { + set_totals(frm); + }, + + earnings_remove: function (frm) { + set_totals(frm); + }, + + deductions_remove: function (frm) { + set_totals(frm); + }, + + salary_component: function (frm, cdt, cdn) { + var child = locals[cdt][cdn]; + if (child.salary_component) { + frappe.call({ + method: "frappe.client.get", + args: { + doctype: "Salary Component", + name: child.salary_component, + }, + callback: function (data) { + if (data.message) { + var result = data.message; + frappe.model.set_value(cdt, cdn, { + condition: result.condition, + amount_based_on_formula: result.amount_based_on_formula, + statistical_component: result.statistical_component, + depends_on_payment_days: result.depends_on_payment_days, + do_not_include_in_total: result.do_not_include_in_total, + do_not_include_in_accounts: result.do_not_include_in_accounts, + variable_based_on_taxable_salary: + result.variable_based_on_taxable_salary, + is_tax_applicable: result.is_tax_applicable, + is_flexible_benefit: result.is_flexible_benefit, + ...(result.amount_based_on_formula == 1 + ? { formula: result.formula } + : { amount: result.amount }), + }); + refresh_field("earnings"); + refresh_field("deductions"); + } + }, + }); + } + }, + + amount_based_on_formula: function (frm, cdt, cdn) { + var child = locals[cdt][cdn]; + if (child.amount_based_on_formula === 1) { + frappe.model.set_value(cdt, cdn, "amount", null); + } else { + frappe.model.set_value(cdt, cdn, "formula", null); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip.json new file mode 100644 index 000000000..14d662f60 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip.json @@ -0,0 +1,828 @@ +{ + "actions": [], + "allow_import": 1, + "creation": "2013-01-10 16:34:15", + "doctype": "DocType", + "document_type": "Setup", + "engine": "InnoDB", + "field_order": [ + "employee_and_payroll_tab", + "section_break_6", + "employee", + "employee_name", + "company", + "department", + "designation", + "branch", + "column_break_obdl", + "posting_date", + "letter_head", + "column_break_18", + "status", + "salary_withholding", + "salary_withholding_cycle", + "currency", + "exchange_rate", + "section_break_gsts", + "payroll_frequency", + "start_date", + "end_date", + "column_break_ptcc", + "salary_structure", + "payroll_entry", + "current_payroll_period", + "mode_of_payment", + "column_break_wyhp", + "salary_slip_based_on_timesheet", + "section_break_gerh", + "deduct_tax_for_unsubmitted_tax_exemption_proof", + "payment_days_tab", + "total_working_days", + "unmarked_days", + "leave_without_pay", + "column_break_geio", + "absent_days", + "payment_days", + "help_section", + "payment_days_calculation_help", + "earnings_and_deductions_tab", + "timesheets_section", + "timesheets", + "column_break_ghjr", + "total_working_hours", + "hour_rate", + "base_hour_rate", + "earning_deduction_sb", + "earnings", + "column_break_k1jz", + "deductions", + "section_break_jgfy", + "accrued_benefits", + "totals", + "gross_pay", + "base_gross_pay", + "gross_year_to_date", + "base_gross_year_to_date", + "column_break_25", + "total_deduction", + "base_total_deduction", + "net_pay_info", + "net_pay", + "base_net_pay", + "rounded_total", + "base_rounded_total", + "column_break_dqnd", + "year_to_date", + "base_year_to_date", + "month_to_date", + "base_month_to_date", + "section_break_55", + "total_in_words", + "column_break_69", + "base_total_in_words", + "income_tax_calculation_breakup_section", + "ctc", + "income_from_other_sources", + "total_earnings", + "column_break_0rsw", + "non_taxable_earnings", + "standard_tax_exemption_amount", + "tax_exemption_declaration", + "deductions_before_tax_calculation", + "annual_taxable_amount", + "column_break_35wb", + "income_tax_deducted_till_date", + "current_month_income_tax", + "future_income_tax_deductions", + "total_income_tax", + "section_break_75", + "journal_entry", + "amended_from", + "column_break_ieob", + "bank_name", + "bank_account_no", + "leave_details_section", + "leave_details" + ], + "fields": [ + { + "default": "Today", + "fieldname": "posting_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Posting Date", + "reqd": 1 + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_global_search": 1, + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Employee", + "oldfieldname": "employee", + "oldfieldtype": "Link", + "options": "Employee", + "reqd": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Read Only", + "in_global_search": 1, + "in_list_view": 1, + "label": "Employee Name", + "oldfieldname": "employee_name", + "oldfieldtype": "Data", + "reqd": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Department", + "oldfieldname": "department", + "oldfieldtype": "Link", + "options": "Department", + "read_only": 1 + }, + { + "depends_on": "eval:doc.designation", + "fetch_from": "employee.designation", + "fieldname": "designation", + "fieldtype": "Link", + "label": "Designation", + "oldfieldname": "designation", + "oldfieldtype": "Link", + "options": "Designation", + "read_only": 1 + }, + { + "fetch_from": "employee.branch", + "fieldname": "branch", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Branch", + "oldfieldname": "branch", + "oldfieldtype": "Link", + "options": "Branch", + "read_only": 1 + }, + { + "fieldname": "status", + "fieldtype": "Select", + "label": "Status", + "options": "Draft\nSubmitted\nCancelled\nWithheld", + "read_only": 1 + }, + { + "fieldname": "journal_entry", + "fieldtype": "Link", + "label": "Journal Entry", + "options": "Journal Entry" + }, + { + "fieldname": "payroll_entry", + "fieldtype": "Link", + "label": "Payroll Entry", + "options": "Payroll Entry", + "read_only": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "allow_on_submit": 1, + "fieldname": "letter_head", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "label": "Letter Head", + "options": "Letter Head", + "print_hide": 1 + }, + { + "default": "0", + "fieldname": "salary_slip_based_on_timesheet", + "fieldtype": "Check", + "label": "Salary Slip Based on Timesheet", + "read_only": 1 + }, + { + "fieldname": "start_date", + "fieldtype": "Date", + "label": "Start Date", + "search_index": 1 + }, + { + "fieldname": "end_date", + "fieldtype": "Date", + "label": "End Date", + "search_index": 1 + }, + { + "fieldname": "salary_structure", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Salary Structure", + "options": "Salary Structure", + "read_only": 1, + "reqd": 1, + "search_index": 1 + }, + { + "fieldname": "payroll_frequency", + "fieldtype": "Select", + "label": "Payroll Frequency", + "options": "\nMonthly\nFortnightly\nBimonthly\nWeekly\nDaily" + }, + { + "fieldname": "total_working_days", + "fieldtype": "Float", + "label": "Working Days", + "oldfieldname": "total_days_in_month", + "oldfieldtype": "Int", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "leave_without_pay", + "fieldtype": "Float", + "label": "Leave Without Pay", + "oldfieldname": "leave_without_pay", + "oldfieldtype": "Currency" + }, + { + "fieldname": "payment_days", + "fieldtype": "Float", + "label": "Payment Days", + "oldfieldname": "payment_days", + "oldfieldtype": "Float", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "timesheets", + "fieldtype": "Table", + "label": "Salary Slip Timesheet", + "options": "Salary Slip Timesheet" + }, + { + "fieldname": "total_working_hours", + "fieldtype": "Float", + "label": "Total Working Hours", + "print_hide_if_no_value": 1 + }, + { + "fieldname": "hour_rate", + "fieldtype": "Currency", + "label": "Hour Rate", + "options": "currency", + "print_hide_if_no_value": 1 + }, + { + "fieldname": "bank_name", + "fieldtype": "Data", + "label": "Bank Name" + }, + { + "fieldname": "bank_account_no", + "fieldtype": "Data", + "label": "Bank Account No" + }, + { + "default": "0", + "fieldname": "deduct_tax_for_unsubmitted_tax_exemption_proof", + "fieldtype": "Check", + "label": "Deduct Tax For Unsubmitted Tax Exemption Proof" + }, + { + "fieldname": "earnings", + "fieldtype": "Table", + "label": "Earnings", + "oldfieldname": "earning_details", + "oldfieldtype": "Table", + "options": "Salary Detail" + }, + { + "fieldname": "deductions", + "fieldtype": "Table", + "label": "Deductions", + "oldfieldname": "deduction_details", + "oldfieldtype": "Table", + "options": "Salary Detail" + }, + { + "fieldname": "totals", + "fieldtype": "Section Break", + "label": "Totals", + "oldfieldtype": "Section Break" + }, + { + "fieldname": "gross_pay", + "fieldtype": "Currency", + "label": "Gross Pay", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "column_break_25", + "fieldtype": "Column Break" + }, + { + "fieldname": "net_pay_info", + "fieldtype": "Tab Break", + "label": "Net Pay Info" + }, + { + "fieldname": "net_pay", + "fieldtype": "Currency", + "label": "Net Pay", + "options": "currency", + "read_only": 1 + }, + { + "bold": 1, + "fieldname": "rounded_total", + "fieldtype": "Currency", + "label": "Rounded Total", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "section_break_55", + "fieldtype": "Section Break" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "label": "Amended From", + "no_copy": 1, + "oldfieldname": "amended_from", + "oldfieldtype": "Data", + "options": "Salary Slip", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "mode_of_payment", + "fieldtype": "Select", + "label": "Mode Of Payment", + "read_only": 1 + }, + { + "fieldname": "absent_days", + "fieldtype": "Float", + "label": "Absent Days", + "read_only": 1 + }, + { + "fieldname": "unmarked_days", + "fieldtype": "Float", + "hidden": 1, + "label": "Unmarked days" + }, + { + "fieldname": "column_break_18", + "fieldtype": "Column Break" + }, + { + "depends_on": "eval:(doc.docstatus==1 || doc.salary_structure)", + "fetch_from": "salary_structure.currency", + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "print_hide": 1, + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "total_deduction", + "fieldtype": "Currency", + "label": "Total Deduction", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "total_in_words", + "fieldtype": "Data", + "label": "Total in words", + "length": 240, + "read_only": 1 + }, + { + "fieldname": "section_break_75", + "fieldtype": "Tab Break", + "label": "Bank Details" + }, + { + "fieldname": "base_hour_rate", + "fieldtype": "Currency", + "label": "Hour Rate (Company Currency)", + "options": "Company:company:default_currency", + "print_hide_if_no_value": 1 + }, + { + "fieldname": "base_gross_pay", + "fieldtype": "Currency", + "label": "Gross Pay (Company Currency)", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "default": "1.0", + "fieldname": "exchange_rate", + "fieldtype": "Float", + "hidden": 1, + "label": "Exchange Rate", + "print_hide": 1, + "reqd": 1 + }, + { + "fieldname": "base_total_deduction", + "fieldtype": "Currency", + "label": "Total Deduction (Company Currency)", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "fieldname": "base_net_pay", + "fieldtype": "Currency", + "label": "Net Pay (Company Currency)", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "bold": 1, + "fieldname": "base_rounded_total", + "fieldtype": "Currency", + "label": "Rounded Total (Company Currency)", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "fieldname": "base_total_in_words", + "fieldtype": "Data", + "label": "Total in words (Company Currency)", + "length": 240, + "read_only": 1 + }, + { + "fieldname": "column_break_69", + "fieldtype": "Column Break" + }, + { + "description": "Total salary booked for this employee from the beginning of the year (payroll period or fiscal year) up to the current salary slip's end date.", + "fieldname": "year_to_date", + "fieldtype": "Currency", + "label": "Year To Date", + "options": "currency", + "read_only": 1 + }, + { + "description": "Total salary booked for this employee from the beginning of the month up to the current salary slip's end date.", + "fieldname": "month_to_date", + "fieldtype": "Currency", + "label": "Month To Date", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "base_year_to_date", + "fieldtype": "Currency", + "label": "Year To Date(Company Currency)", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "fieldname": "base_month_to_date", + "fieldtype": "Currency", + "label": "Month To Date(Company Currency)", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "fieldname": "leave_details_section", + "fieldtype": "Tab Break", + "label": "Leaves" + }, + { + "fieldname": "leave_details", + "fieldtype": "Table", + "label": "Leave Details", + "options": "Salary Slip Leave", + "read_only": 1 + }, + { + "fieldname": "gross_year_to_date", + "fieldtype": "Currency", + "label": "Gross Year To Date", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "base_gross_year_to_date", + "fieldtype": "Currency", + "label": "Gross Year To Date(Company Currency)", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "fieldname": "section_break_6", + "fieldtype": "Section Break", + "label": "Employee Info" + }, + { + "fieldname": "section_break_gsts", + "fieldtype": "Section Break", + "label": "Payroll Info" + }, + { + "fieldname": "column_break_obdl", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_ptcc", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_gerh", + "fieldtype": "Section Break" + }, + { + "fieldname": "column_break_geio", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_dqnd", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_ieob", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_ghjr", + "fieldtype": "Column Break" + }, + { + "collapsible": 1, + "depends_on": "eval:doc.ctc", + "fieldname": "income_tax_calculation_breakup_section", + "fieldtype": "Tab Break", + "label": "Income Tax Breakup" + }, + { + "fieldname": "ctc", + "fieldtype": "Currency", + "label": "CTC", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "income_from_other_sources", + "fieldtype": "Currency", + "label": "Income from Other Sources", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "total_earnings", + "fieldtype": "Currency", + "label": "Total Earnings", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "non_taxable_earnings", + "fieldtype": "Currency", + "label": "Non Taxable Earnings", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "column_break_0rsw", + "fieldtype": "Column Break" + }, + { + "fieldname": "deductions_before_tax_calculation", + "fieldtype": "Currency", + "label": "Deductions before tax calculation", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "tax_exemption_declaration", + "fieldtype": "Currency", + "label": "Tax Exemption Declaration", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "standard_tax_exemption_amount", + "fieldtype": "Currency", + "label": "Standard Tax Exemption Amount", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "annual_taxable_amount", + "fieldtype": "Currency", + "label": "Annual Taxable Amount", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "income_tax_deducted_till_date", + "fieldtype": "Currency", + "label": "Income Tax Deducted Till Date", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "employee_and_payroll_tab", + "fieldtype": "Tab Break", + "label": "Details" + }, + { + "fieldname": "column_break_35wb", + "fieldtype": "Column Break" + }, + { + "fieldname": "future_income_tax_deductions", + "fieldtype": "Currency", + "label": "Future Income Tax", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "earnings_and_deductions_tab", + "fieldtype": "Tab Break", + "label": "Earnings & Deductions" + }, + { + "fieldname": "current_month_income_tax", + "fieldtype": "Currency", + "label": "Current Month Income Tax", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "total_income_tax", + "fieldtype": "Currency", + "label": "Total Income Tax", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "payment_days_tab", + "fieldtype": "Tab Break", + "label": "Payment Days" + }, + { + "fieldname": "column_break_k1jz", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_wyhp", + "fieldtype": "Column Break" + }, + { + "depends_on": "eval:doc.salary_slip_based_on_timesheet", + "fieldname": "timesheets_section", + "fieldtype": "Section Break", + "label": "Timesheet Details" + }, + { + "fieldname": "help_section", + "fieldtype": "Section Break" + }, + { + "fieldname": "payment_days_calculation_help", + "fieldtype": "HTML", + "label": "Payment Days Calculation Help" + }, + { + "fieldname": "earning_deduction_sb", + "fieldtype": "Section Break", + "oldfieldtype": "Section Break" + }, + { + "fieldname": "salary_withholding", + "fieldtype": "Link", + "label": "Salary Withholding", + "no_copy": 1, + "options": "Salary Withholding", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "salary_withholding_cycle", + "fieldtype": "Data", + "hidden": 1, + "label": "Salary Withholding Cycle", + "no_copy": 1, + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "current_payroll_period", + "fieldtype": "Link", + "hidden": 1, + "label": "Current Payroll Period", + "options": "Payroll Period", + "read_only": 1, + "search_index": 1 + }, + { + "fieldname": "section_break_jgfy", + "fieldtype": "Section Break" + }, + { + "fieldname": "accrued_benefits", + "fieldtype": "Table", + "label": "Accrued Benefits", + "options": "Employee Benefit Detail", + "print_hide": 1, + "read_only": 1 + } + ], + "icon": "fa fa-file-text", + "idx": 9, + "is_submittable": 1, + "links": [], + "modified": "2025-09-19 21:25:42.584589", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Slip", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "print": 1, + "read": 1, + "role": "Employee" + } + ], + "row_format": "Dynamic", + "search_fields": "employee_name", + "show_name_in_global_search": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [ + { + "color": "Red", + "title": "Draft" + }, + { + "color": "Blue", + "title": "Submitted" + }, + { + "color": "Gray", + "title": "Cancelled" + }, + { + "color": "Yellow", + "title": "Withheld" + } + ], + "timeline_field": "employee", + "title_field": "employee_name" +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip.py new file mode 100644 index 000000000..c5d5bc92e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip.py @@ -0,0 +1,2724 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import unicodedata +from datetime import date + +import frappe +from frappe import _, msgprint +from frappe.model.naming import make_autoname +from frappe.query_builder import Order +from frappe.query_builder.functions import Count, Sum +from frappe.utils import ( + add_days, + ceil, + cint, + cstr, + date_diff, + floor, + flt, + formatdate, + get_first_day, + get_last_day, + get_link_to_form, + getdate, + money_in_words, + rounded, +) +from frappe.utils.background_jobs import enqueue + +import erpnext +from erpnext.accounts.utils import get_fiscal_year +from erpnext.setup.doctype.employee.employee import get_holiday_list_for_employee +from erpnext.utilities.transaction_base import TransactionBase + +from hrms.hr.utils import validate_active_employee +from hrms.payroll.doctype.additional_salary.additional_salary import get_additional_salaries +from hrms.payroll.doctype.employee_benefit_ledger.employee_benefit_ledger import ( + create_employee_benefit_ledger_entry, + delete_employee_benefit_ledger_entry, +) +from hrms.payroll.doctype.payroll_entry.payroll_entry import get_salary_withholdings, get_start_end_dates +from hrms.payroll.doctype.payroll_period.payroll_period import ( + get_payroll_period, + get_period_factor, +) +from hrms.payroll.doctype.salary_slip.salary_slip_loan_utils import ( + cancel_loan_repayment_entry, + make_loan_repayment_entry, + process_loan_interest_accrual_and_demand, + set_loan_repayment, +) +from hrms.payroll.utils import sanitize_expression +from hrms.utils.holiday_list import get_holiday_dates_between + +# cache keys +HOLIDAYS_BETWEEN_DATES = "holidays_between_dates" +LEAVE_TYPE_MAP = "leave_type_map" +SALARY_COMPONENT_VALUES = "salary_component_values" +TAX_COMPONENTS_BY_COMPANY = "tax_components_by_company" + + +class SalarySlip(TransactionBase): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.default_series = f"Sal Slip/{self.employee}/.#####" + self.whitelisted_globals = { + "int": int, + "float": float, + "long": int, + "round": round, + "rounded": rounded, + "date": date, + "getdate": getdate, + "get_first_day": get_first_day, + "get_last_day": get_last_day, + "ceil": ceil, + "floor": floor, + } + + def autoname(self): + if not self.has_custom_naming_series: + self.name = make_autoname(self.default_series) + + @property + def has_custom_naming_series(self): + if not hasattr(self, "__has_custom_naming_series"): + self.__has_custom_naming_series = frappe.db.exists( + "Property Setter", + { + "doc_type": "Salary Slip", + "property": "autoname", + }, + ) + + return self.__has_custom_naming_series + + @property + def joining_date(self): + if not hasattr(self, "__joining_date"): + self.__joining_date = frappe.get_cached_value( + "Employee", + self.employee, + "date_of_joining", + ) + + return self.__joining_date + + @property + def relieving_date(self): + if not hasattr(self, "__relieving_date"): + self.__relieving_date = frappe.get_cached_value( + "Employee", + self.employee, + "relieving_date", + ) + + return self.__relieving_date + + @property + def payroll_period(self): + if not hasattr(self, "__payroll_period"): + self.__payroll_period = get_payroll_period(self.start_date, self.end_date, self.company) + + return self.__payroll_period + + @property + def actual_start_date(self): + if not hasattr(self, "__actual_start_date"): + self.__actual_start_date = self.start_date + + if self.joining_date and getdate(self.start_date) < self.joining_date <= getdate(self.end_date): + self.__actual_start_date = self.joining_date + + return self.__actual_start_date + + @property + def actual_end_date(self): + if not hasattr(self, "__actual_end_date"): + self.__actual_end_date = self.end_date + + if self.relieving_date and getdate(self.start_date) <= self.relieving_date < getdate( + self.end_date + ): + self.__actual_end_date = self.relieving_date + + return self.__actual_end_date + + def validate(self): + self.check_salary_withholding() + self.status = self.get_status() + validate_active_employee(self.employee) + self.validate_dates() + self.check_existing() + + if self.payroll_frequency: + self.get_date_details() + + if not (len(self.get("earnings")) or len(self.get("deductions"))): + # get details from salary structure + self.get_emp_and_working_day_details() + else: + self.get_working_days_details(lwp=self.leave_without_pay) + + self.set_salary_structure_assignment() + self.calculate_net_pay() + self.compute_year_to_date() + self.compute_month_to_date() + self.compute_component_wise_year_to_date() + + self.add_leave_balances() + + max_working_hours = frappe.db.get_single_value( + "Payroll Settings", "max_working_hours_against_timesheet" + ) + if max_working_hours: + if self.salary_slip_based_on_timesheet and (self.total_working_hours > int(max_working_hours)): + frappe.msgprint( + _("Total working hours should not be greater than max working hours {0}").format( + max_working_hours + ), + alert=True, + ) + + if self.payroll_period and not self.current_payroll_period: + self.current_payroll_period = self.payroll_period.name + + def check_salary_withholding(self): + withholding = get_salary_withholdings(self.start_date, self.end_date, self.employee) + if withholding: + self.salary_withholding = withholding[0].salary_withholding + self.salary_withholding_cycle = withholding[0].salary_withholding_cycle + else: + self.salary_withholding = None + + def set_net_total_in_words(self): + doc_currency = self.currency + company_currency = erpnext.get_company_currency(self.company) + total = self.net_pay if self.is_rounding_total_disabled() else self.rounded_total + base_total = self.base_net_pay if self.is_rounding_total_disabled() else self.base_rounded_total + self.total_in_words = money_in_words(total, doc_currency) + self.base_total_in_words = money_in_words(base_total, company_currency) + + def on_update(self): + self.publish_update() + + def on_submit(self): + if self.net_pay < 0: + frappe.throw(_("Net Pay cannot be less than 0")) + else: + self.set_status() + self.update_status(self.name) + + make_loan_repayment_entry(self) + + if not frappe.flags.via_payroll_entry and not frappe.flags.in_patch: + email_salary_slip = cint( + frappe.db.get_single_value("Payroll Settings", "email_salary_slip_to_employee") + ) + if email_salary_slip: + self.email_salary_slip() + + self.update_payment_status_for_gratuity_and_leave_encashment() + self.create_benefits_ledger_entry() + + def update_payment_status_for_gratuity_and_leave_encashment(self): + additional_salary_docs = frappe.db.get_all( + "Additional Salary", + filters={ + "payroll_date": ("between", [self.start_date, self.end_date]), + "employee": self.employee, + "ref_doctype": ["in", ["Gratuity", "Leave Encashment"]], + "docstatus": 1, + }, + fields=["ref_doctype", "ref_docname", "name"], + ) + + if not additional_salary_docs: + return + + status = "Paid" if self.docstatus == 1 else "Unpaid" + earnings = {entry.additional_salary for entry in self.earnings} + + for additional_salary in additional_salary_docs: + if additional_salary.name in earnings: + frappe.db.set_value( + additional_salary.ref_doctype, additional_salary.ref_docname, "status", status + ) + + def create_benefits_ledger_entry(self): + if self.benefit_ledger_components: + args = { + "payroll_period": self.payroll_period.name, + "benefit_ledger_components": self.benefit_ledger_components, + "benefit_details_parent": self.benefit_details_parent, + "benefit_details_doctype": self.benefit_details_doctype, + } + create_employee_benefit_ledger_entry(self, args) + + def on_cancel(self): + self.set_status() + self.update_status() + self.update_payment_status_for_gratuity_and_leave_encashment() + delete_employee_benefit_ledger_entry("salary_slip", self.name) + + cancel_loan_repayment_entry(self) + self.publish_update() + + def publish_update(self): + employee_user = frappe.db.get_value("Employee", self.employee, "user_id", cache=True) + frappe.publish_realtime( + event="hrms:update_salary_slips", + message={"employee": self.employee}, + user=employee_user, + after_commit=True, + ) + + def on_trash(self): + from frappe.model.naming import revert_series_if_last + + if not self.has_custom_naming_series: + revert_series_if_last(self.default_series, self.name) + + delete_employee_benefit_ledger_entry("salary_slip", self.name) + + def get_status(self): + if self.docstatus == 2: + return "Cancelled" + else: + if self.salary_withholding: + return "Withheld" + elif self.docstatus == 0: + return "Draft" + elif self.docstatus == 1: + return "Submitted" + + def validate_dates(self): + self.validate_from_to_dates("start_date", "end_date") + + if not self.joining_date: + frappe.throw( + _("Please set the Date Of Joining for employee {0}").format(frappe.bold(self.employee_name)) + ) + + if date_diff(self.end_date, self.joining_date) < 0: + frappe.throw(_("Cannot create Salary Slip for Employee joining after Payroll Period")) + + if self.relieving_date and date_diff(self.relieving_date, self.start_date) < 0: + frappe.throw(_("Cannot create Salary Slip for Employee who has left before Payroll Period")) + + def is_rounding_total_disabled(self): + return cint(frappe.db.get_single_value("Payroll Settings", "disable_rounded_total")) + + def check_existing(self): + if not self.salary_slip_based_on_timesheet: + ss = frappe.qb.DocType("Salary Slip") + query = ( + frappe.qb.from_(ss) + .select(ss.name) + .where( + (ss.start_date == self.start_date) + & (ss.end_date == self.end_date) + & (ss.docstatus != 2) + & (ss.employee == self.employee) + & (ss.name != self.name) + ) + ) + + if self.payroll_entry: + query = query.where(ss.payroll_entry == self.payroll_entry) + + ret_exist = query.run() + + if ret_exist: + frappe.throw( + _("Salary Slip of employee {0} already created for this period").format(self.employee) + ) + else: + for data in self.timesheets: + if frappe.db.get_value("Timesheet", data.time_sheet, "status") == "Payrolled": + frappe.throw( + _("Salary Slip of employee {0} already created for time sheet {1}").format( + self.employee, data.time_sheet + ) + ) + + def get_date_details(self): + if not self.end_date: + date_details = get_start_end_dates(self.payroll_frequency, self.start_date or self.posting_date) + self.start_date = date_details.start_date + self.end_date = date_details.end_date + + @frappe.whitelist() + def get_emp_and_working_day_details(self): + """First time, load all the components from salary structure""" + if self.employee: + self.set("earnings", []) + self.set("deductions", []) + if hasattr(self, "loans"): + self.set("loans", []) + + if self.payroll_frequency: + self.get_date_details() + + self.validate_dates() + + # getin leave details + self.get_working_days_details() + struct = self.check_sal_struct() + + if struct: + self.set_salary_structure_doc() + self.salary_slip_based_on_timesheet = ( + self._salary_structure_doc.salary_slip_based_on_timesheet or 0 + ) + self.set_time_sheet() + self.pull_sal_struct() + + process_loan_interest_accrual_and_demand(self) + + def set_time_sheet(self): + if self.salary_slip_based_on_timesheet: + self.set("timesheets", []) + + Timesheet = frappe.qb.DocType("Timesheet") + timesheets = ( + frappe.qb.from_(Timesheet) + .select(Timesheet.star) + .where( + (Timesheet.employee == self.employee) + & (Timesheet.start_date.between(self.start_date, self.end_date)) + & ( + (Timesheet.status == "Submitted") + | (Timesheet.status == "Billed") + | (Timesheet.status == "Partially Billed") + ) + ) + ).run(as_dict=1) + + for data in timesheets: + self.append("timesheets", {"time_sheet": data.name, "working_hours": data.total_hours}) + + def check_sal_struct(self): + ss = frappe.qb.DocType("Salary Structure") + ssa = frappe.qb.DocType("Salary Structure Assignment") + + query = ( + frappe.qb.from_(ssa) + .join(ss) + .on(ssa.salary_structure == ss.name) + .select(ssa.salary_structure) + .where( + (ssa.docstatus == 1) + & (ss.docstatus == 1) + & (ss.is_active == "Yes") + & (ssa.employee == self.employee) + & ( + (ssa.from_date <= self.start_date) + | (ssa.from_date <= self.end_date) + | (ssa.from_date <= self.joining_date) + ) + ) + .orderby(ssa.from_date, order=Order.desc) + .limit(1) + ) + + if not self.salary_slip_based_on_timesheet and self.payroll_frequency: + query = query.where(ss.payroll_frequency == self.payroll_frequency) + + st_name = query.run() + + if st_name: + self.salary_structure = st_name[0][0] + return self.salary_structure + + else: + self.salary_structure = None + frappe.msgprint( + _("No active or default Salary Structure found for employee {0} for the given dates").format( + self.employee + ), + title=_("Salary Structure Missing"), + ) + + def pull_sal_struct(self): + from hrms.payroll.doctype.salary_structure.salary_structure import make_salary_slip + + if self.salary_slip_based_on_timesheet: + self.salary_structure = self._salary_structure_doc.name + self.hour_rate = self._salary_structure_doc.hour_rate + self.base_hour_rate = flt(self.hour_rate) * flt(self.exchange_rate) + self.total_working_hours = sum([d.working_hours or 0.0 for d in self.timesheets]) or 0.0 + wages_amount = self.hour_rate * self.total_working_hours + + self.add_earning_for_hourly_wages(self, self._salary_structure_doc.salary_component, wages_amount) + + make_salary_slip(self._salary_structure_doc.name, self) + + def get_working_days_details(self, lwp=None, for_preview=0, lwp_days_corrected=None): + payroll_settings = frappe.get_cached_value( + "Payroll Settings", + None, + ( + "payroll_based_on", + "include_holidays_in_total_working_days", + "consider_marked_attendance_on_holidays", + "daily_wages_fraction_for_half_day", + "consider_unmarked_attendance_as", + ), + as_dict=1, + ) + + consider_marked_attendance_on_holidays = ( + payroll_settings.include_holidays_in_total_working_days + and payroll_settings.consider_marked_attendance_on_holidays + ) + + daily_wages_fraction_for_half_day = flt(payroll_settings.daily_wages_fraction_for_half_day) or 0.5 + + working_days = date_diff(self.end_date, self.start_date) + 1 + if for_preview: + self.total_working_days = working_days + self.payment_days = working_days + return + + holidays = self.get_holidays_for_employee(self.start_date, self.end_date) + working_days_list = [add_days(getdate(self.start_date), days=day) for day in range(0, working_days)] + + if not cint(payroll_settings.include_holidays_in_total_working_days): + working_days_list = [i for i in working_days_list if i not in holidays] + + working_days -= len(holidays) + if working_days < 0: + frappe.throw(_("There are more holidays than working days this month.")) + + if not payroll_settings.payroll_based_on: + frappe.throw(_("Please set Payroll based on in Payroll settings")) + + if payroll_settings.payroll_based_on == "Attendance": + actual_lwp, absent = self.calculate_lwp_ppl_and_absent_days_based_on_attendance( + holidays, daily_wages_fraction_for_half_day, consider_marked_attendance_on_holidays + ) + self.absent_days = absent + else: + actual_lwp = self.calculate_lwp_or_ppl_based_on_leave_application( + holidays, working_days_list, daily_wages_fraction_for_half_day + ) + + if not lwp: + lwp = actual_lwp + elif lwp != actual_lwp: + frappe.msgprint( + _("Leave Without Pay does not match with approved {} records").format( + payroll_settings.payroll_based_on + ) + ) + + self.leave_without_pay = lwp + self.total_working_days = working_days + + payment_days = self.get_payment_days(payroll_settings.include_holidays_in_total_working_days) + + if flt(payment_days) > flt(lwp): + self.payment_days = flt(payment_days) - flt(lwp) + + if payroll_settings.payroll_based_on == "Attendance": + self.payment_days -= flt(absent) + + consider_unmarked_attendance_as = payroll_settings.consider_unmarked_attendance_as or "Present" + + if payroll_settings.payroll_based_on == "Attendance": + if consider_unmarked_attendance_as == "Absent": + unmarked_days = self.get_unmarked_days( + payroll_settings.include_holidays_in_total_working_days, holidays + ) + self.absent_days += unmarked_days # will be treated as absent + self.payment_days -= unmarked_days + half_absent_days = self.get_half_absent_days( + consider_marked_attendance_on_holidays, + holidays, + ) + self.absent_days += half_absent_days * daily_wages_fraction_for_half_day + self.payment_days -= half_absent_days * daily_wages_fraction_for_half_day + else: + self.payment_days = 0 + + if lwp_days_corrected and lwp_days_corrected > 0: + if verify_lwp_days_corrected(self.employee, self.start_date, self.end_date, lwp_days_corrected): + self.payment_days += lwp_days_corrected + + def get_unmarked_days( + self, include_holidays_in_total_working_days: bool, holidays: list | None = None + ) -> float: + """Calculates the number of unmarked days for an employee within a date range""" + unmarked_days = ( + self.total_working_days + - self._get_days_outside_period(include_holidays_in_total_working_days, holidays) + - self._get_marked_attendance_days(holidays) + ) + + if include_holidays_in_total_working_days and holidays: + unmarked_days -= self._get_number_of_holidays(holidays) + + return unmarked_days + + def get_half_absent_days(self, consider_marked_attendance_on_holidays, holidays): + """Calculates the number of half absent days for an employee within a date range""" + Attendance = frappe.qb.DocType("Attendance") + query = ( + frappe.qb.from_(Attendance) + .select(Count("*")) + .where( + (Attendance.attendance_date.between(self.actual_start_date, self.actual_end_date)) + & (Attendance.employee == self.employee) + & (Attendance.docstatus == 1) + & (Attendance.status == "Half Day") + & (Attendance.half_day_status == "Absent") + ) + ) + if (not consider_marked_attendance_on_holidays) and holidays: + query = query.where(Attendance.attendance_date.notin(holidays)) + return query.run()[0][0] + + def _get_days_outside_period( + self, include_holidays_in_total_working_days: bool, holidays: list | None = None + ): + """Returns days before DOJ or after relieving date""" + + def _get_days(start_date, end_date): + no_of_days = date_diff(end_date, start_date) + 1 + + if include_holidays_in_total_working_days: + return no_of_days + else: + days = 0 + end_date = getdate(end_date) + for day in range(no_of_days): + date = add_days(end_date, -day) + if date not in holidays: + days += 1 + return days + + days = 0 + if self.actual_start_date != self.start_date: + days += _get_days(self.start_date, add_days(self.joining_date, -1)) + + if self.actual_end_date != self.end_date: + days += _get_days(add_days(self.relieving_date, 1), self.end_date) + + return days + + def _get_number_of_holidays(self, holidays: list | None = None) -> float: + no_of_holidays = 0 + actual_end_date = getdate(self.actual_end_date) + + for days in range(date_diff(self.actual_end_date, self.actual_start_date) + 1): + date = add_days(actual_end_date, -days) + if date in holidays: + no_of_holidays += 1 + + return no_of_holidays + + def _get_marked_attendance_days(self, holidays: list | None = None) -> float: + Attendance = frappe.qb.DocType("Attendance") + query = ( + frappe.qb.from_(Attendance) + .select(Count("*")) + .where( + (Attendance.attendance_date.between(self.actual_start_date, self.actual_end_date)) + & (Attendance.employee == self.employee) + & (Attendance.docstatus == 1) + ) + ) + if holidays: + query = query.where(Attendance.attendance_date.notin(holidays)) + + return query.run()[0][0] + + def get_payment_days(self, include_holidays_in_total_working_days): + if self.joining_date and self.joining_date > getdate(self.end_date): + # employee joined after payroll date + return 0 + + if self.relieving_date: + employee_status = frappe.db.get_value("Employee", self.employee, "status") + if self.relieving_date < getdate(self.start_date) and employee_status != "Left": + frappe.throw( + _("Employee {0} relieved on {1} must be set as 'Left'").format( + get_link_to_form("Employee", self.employee), formatdate(self.relieving_date) + ) + ) + + payment_days = date_diff(self.actual_end_date, self.actual_start_date) + 1 + + if not cint(include_holidays_in_total_working_days): + holidays = self.get_holidays_for_employee(self.actual_start_date, self.actual_end_date) + payment_days -= len(holidays) + + return payment_days + + def get_holidays_for_employee(self, start_date, end_date): + holiday_list = get_holiday_list_for_employee(self.employee) + key = f"{holiday_list}:{start_date}:{end_date}" + holiday_dates = frappe.cache().hget(HOLIDAYS_BETWEEN_DATES, key) + + if not holiday_dates: + holiday_dates = get_holiday_dates_between(holiday_list, start_date, end_date) + frappe.cache().hset(HOLIDAYS_BETWEEN_DATES, key, holiday_dates) + + return holiday_dates + + def calculate_lwp_or_ppl_based_on_leave_application( + self, holidays, working_days_list, daily_wages_fraction_for_half_day + ): + lwp = 0 + leaves = get_lwp_or_ppl_for_date_range( + self.employee, + self.start_date, + self.end_date, + ) + + for d in working_days_list: + if self.relieving_date and d > self.relieving_date: + break + + leave = leaves.get(d) + + if not leave: + continue + + if not leave.include_holiday and getdate(d) in holidays: + continue + + equivalent_lwp_count = 0 + fraction_of_daily_salary_per_leave = flt(leave.fraction_of_daily_salary_per_leave) + + is_half_day_leave = False + if cint(leave.half_day) and (leave.half_day_date == d or leave.from_date == leave.to_date): + is_half_day_leave = True + + equivalent_lwp_count = (1 - daily_wages_fraction_for_half_day) if is_half_day_leave else 1 + + if cint(leave.is_ppl): + equivalent_lwp_count *= ( + (1 - fraction_of_daily_salary_per_leave) if fraction_of_daily_salary_per_leave else 1 + ) + + lwp += equivalent_lwp_count + + return lwp + + def get_leave_type_map(self) -> dict: + """Returns (partially paid leaves/leave without pay) leave types by name""" + + def _get_leave_type_map(): + leave_types = frappe.get_all( + "Leave Type", + or_filters={"is_ppl": 1, "is_lwp": 1}, + fields=["name", "is_lwp", "is_ppl", "fraction_of_daily_salary_per_leave", "include_holiday"], + ) + return {leave_type.name: leave_type for leave_type in leave_types} + + return frappe.cache().get_value(LEAVE_TYPE_MAP, _get_leave_type_map) + + def get_employee_attendance(self, start_date, end_date): + attendance = frappe.qb.DocType("Attendance") + + attendance_details = ( + frappe.qb.from_(attendance) + .select( + attendance.attendance_date, + attendance.status, + attendance.leave_type, + attendance.half_day_status, + ) + .where( + (attendance.status.isin(["Absent", "Half Day", "On Leave"])) + & (attendance.employee == self.employee) + & (attendance.docstatus == 1) + & (attendance.attendance_date.between(start_date, end_date)) + ) + ).run(as_dict=1) + + return attendance_details + + def calculate_lwp_ppl_and_absent_days_based_on_attendance( + self, holidays, daily_wages_fraction_for_half_day, consider_marked_attendance_on_holidays + ): + lwp = 0 + absent = 0 + + leave_type_map = self.get_leave_type_map() + attendance_details = self.get_employee_attendance( + start_date=self.start_date, end_date=self.actual_end_date + ) + + for d in attendance_details: + if ( + d.status in ("Half Day", "On Leave") + and d.leave_type + and d.leave_type not in leave_type_map.keys() + ): + continue + + # skip counting absent on holidays + if not consider_marked_attendance_on_holidays and getdate(d.attendance_date) in holidays: + if d.status in ["Absent", "Half Day"] or ( + d.leave_type + and d.leave_type in leave_type_map.keys() + and not leave_type_map[d.leave_type]["include_holiday"] + ): + continue + + if d.leave_type: + fraction_of_daily_salary_per_leave = leave_type_map[d.leave_type][ + "fraction_of_daily_salary_per_leave" + ] + + if d.status == "Half Day" and d.leave_type and d.leave_type in leave_type_map.keys(): + equivalent_lwp = 1 - daily_wages_fraction_for_half_day + + if leave_type_map[d.leave_type]["is_ppl"]: + equivalent_lwp *= ( + fraction_of_daily_salary_per_leave if fraction_of_daily_salary_per_leave else 1 + ) + lwp += equivalent_lwp + + elif d.status == "On Leave" and d.leave_type and d.leave_type in leave_type_map.keys(): + equivalent_lwp = 1 + if leave_type_map[d.leave_type]["is_ppl"]: + equivalent_lwp *= ( + fraction_of_daily_salary_per_leave if fraction_of_daily_salary_per_leave else 1 + ) + lwp += equivalent_lwp + + elif d.status == "Absent": + absent += 1 + + return lwp, absent + + def add_earning_for_hourly_wages(self, doc, salary_component, amount): + row_exists = False + for row in doc.earnings: + if row.salary_component == salary_component: + row.amount = amount + row_exists = True + break + + if not row_exists: + wages_row = get_salary_component_data(salary_component) + wages_amount = self.hour_rate * self.total_working_hours + + self.update_component_row( + wages_row, + wages_amount, + "earnings", + default_amount=wages_amount, + ) + + def set_salary_structure_assignment(self): + self._salary_structure_assignment = frappe.db.get_value( + "Salary Structure Assignment", + { + "employee": self.employee, + "salary_structure": self.salary_structure, + "from_date": ("<=", self.actual_start_date), + "docstatus": 1, + }, + "*", + order_by="from_date desc", + as_dict=True, + ) + + if not self._salary_structure_assignment: + frappe.throw( + _( + "Please assign a Salary Structure for Employee {0} applicable from or before {1} first" + ).format( + frappe.bold(self.employee_name), + frappe.bold(formatdate(self.actual_start_date)), + ) + ) + + def calculate_net_pay(self, skip_tax_breakup_computation: bool = False): + def set_gross_pay_and_base_gross_pay(): + self.gross_pay = self.get_component_totals("earnings", depends_on_payment_days=1) + self.base_gross_pay = flt( + flt(self.gross_pay) * flt(self.exchange_rate), self.precision("base_gross_pay") + ) + + # get remaining numbers of sub-period (period for which one salary is processed) + if self.payroll_period: + self.remaining_sub_periods = get_period_factor( + self.employee, + self.start_date, + self.end_date, + self.payroll_frequency, + self.payroll_period, + joining_date=self.joining_date, + relieving_date=self.relieving_date, + )[1] + + if self.salary_structure: + self.calculate_component_amounts("earnings") + + set_gross_pay_and_base_gross_pay() + + if self.salary_structure: + self.calculate_component_amounts("deductions") + + set_loan_repayment(self) + + self.set_precision_for_component_amounts() + self.set_net_pay() + if not skip_tax_breakup_computation: + self.compute_income_tax_breakup() + + def set_net_pay(self): + self.total_deduction = self.get_component_totals("deductions") + self.base_total_deduction = flt( + flt(self.total_deduction) * flt(self.exchange_rate), self.precision("base_total_deduction") + ) + self.net_pay = flt(self.gross_pay) - ( + flt(self.total_deduction) + flt(self.get("total_loan_repayment")) + ) + self.rounded_total = rounded(self.net_pay) + self.base_net_pay = flt(flt(self.net_pay) * flt(self.exchange_rate), self.precision("base_net_pay")) + self.base_rounded_total = flt(rounded(self.base_net_pay), self.precision("base_net_pay")) + if self.hour_rate: + self.base_hour_rate = flt( + flt(self.hour_rate) * flt(self.exchange_rate), self.precision("base_hour_rate") + ) + self.set_net_total_in_words() + + def compute_taxable_earnings_for_year(self): + # get taxable_earnings, opening_taxable_earning, paid_taxes for previous period + self.previous_taxable_earnings, exempted_amount = self.get_taxable_earnings_for_prev_period( + self.payroll_period.start_date, self.start_date, self.tax_slab.allow_tax_exemption + ) + + self.previous_taxable_earnings_before_exemption = self.previous_taxable_earnings + exempted_amount + + self.compute_current_and_future_taxable_earnings() + + # Deduct taxes forcefully for unsubmitted tax exemption proof and unclaimed benefits in the last period + if self.payroll_period.end_date <= getdate(self.end_date): + self.deduct_tax_for_unsubmitted_tax_exemption_proof = 1 + + # Get taxable unclaimed benefits + self.unclaimed_taxable_benefits = 0 + + # Total exemption amount based on tax exemption declaration + self.total_exemption_amount = self.get_total_exemption_amount() + + # Employee Other Incomes + self.other_incomes = self.get_income_form_other_sources() or 0.0 + + # Total taxable earnings including additional and other incomes + self.total_taxable_earnings = ( + self.previous_taxable_earnings + + self.current_structured_taxable_earnings + + self.future_structured_taxable_earnings + + self.current_additional_earnings + + self.other_incomes + + self.unclaimed_taxable_benefits + - self.total_exemption_amount + ) + + # Total taxable earnings without additional earnings with full tax + self.total_taxable_earnings_without_full_tax_addl_components = ( + self.total_taxable_earnings - self.current_additional_earnings_with_full_tax + ) + + def compute_current_and_future_taxable_earnings(self): + # get taxable_earnings for current period (all days) + self.current_taxable_earnings = self.get_taxable_earnings(self.tax_slab.allow_tax_exemption) + self.future_structured_taxable_earnings = self.current_taxable_earnings.taxable_earnings * ( + ceil(self.remaining_sub_periods) - 1 + ) + + current_taxable_earnings_before_exemption = ( + self.current_taxable_earnings.taxable_earnings + + self.current_taxable_earnings.amount_exempted_from_income_tax + ) + self.future_structured_taxable_earnings_before_exemption = ( + current_taxable_earnings_before_exemption * (ceil(self.remaining_sub_periods) - 1) + ) + + # get taxable_earnings, addition_earnings for current actual payment days + self.current_taxable_earnings_for_payment_days = self.get_taxable_earnings( + self.tax_slab.allow_tax_exemption, based_on_payment_days=1 + ) + + self.current_structured_taxable_earnings = ( + self.current_taxable_earnings_for_payment_days.taxable_earnings + ) + self.current_structured_taxable_earnings_before_exemption = ( + self.current_structured_taxable_earnings + + self.current_taxable_earnings_for_payment_days.amount_exempted_from_income_tax + ) + + self.current_additional_earnings = self.current_taxable_earnings_for_payment_days.additional_income + + self.current_additional_earnings_with_full_tax = ( + self.current_taxable_earnings_for_payment_days.additional_income_with_full_tax + ) + + def compute_income_tax_breakup(self): + if not self.payroll_period: + return + + self.standard_tax_exemption_amount = 0 + self.tax_exemption_declaration = 0 + self.deductions_before_tax_calculation = 0 + + self.non_taxable_earnings = self.compute_non_taxable_earnings() + + self.ctc = self.compute_ctc() + + self.income_from_other_sources = self.get_income_form_other_sources() + + self.total_earnings = self.ctc + self.income_from_other_sources + + if hasattr(self, "tax_slab"): + if self.tax_slab.allow_tax_exemption: + self.standard_tax_exemption_amount = self.tax_slab.standard_tax_exemption_amount + self.deductions_before_tax_calculation = ( + self.compute_annual_deductions_before_tax_calculation() + ) + + self.tax_exemption_declaration = ( + self.get_total_exemption_amount() - self.standard_tax_exemption_amount + ) + + self.annual_taxable_amount = self.total_earnings - ( + self.non_taxable_earnings + + self.deductions_before_tax_calculation + + self.tax_exemption_declaration + + self.standard_tax_exemption_amount + ) + + self.income_tax_deducted_till_date = self.get_income_tax_deducted_till_date() + + if hasattr(self, "total_structured_tax_amount") and hasattr(self, "current_structured_tax_amount"): + self.future_income_tax_deductions = ( + self.total_structured_tax_amount + + self.get("full_tax_on_additional_earnings", 0) + - self.income_tax_deducted_till_date + ) + + self.current_month_income_tax = self.get("current_tax_amount", 0) + + # non included current_month_income_tax separately as its already considered + # while calculating income_tax_deducted_till_date + + self.total_income_tax = self.income_tax_deducted_till_date + self.future_income_tax_deductions + + def compute_ctc(self): + if hasattr(self, "previous_taxable_earnings"): + return ( + self.previous_taxable_earnings_before_exemption + + self.current_structured_taxable_earnings_before_exemption + + self.future_structured_taxable_earnings_before_exemption + + self.current_additional_earnings + + self.unclaimed_taxable_benefits + + self.non_taxable_earnings + ) + + return 0.0 + + def compute_non_taxable_earnings(self): + # Previous period non taxable earnings + prev_period_non_taxable_earnings = self.get_salary_slip_details( + self.payroll_period.start_date, self.start_date, parentfield="earnings", is_tax_applicable=0 + ) + + ( + current_period_non_taxable_earnings, + non_taxable_additional_salary, + ) = self.get_non_taxable_earnings_for_current_period() + + future_period_non_taxable_earnings = self.get_future_period_non_taxable_earnings() + + non_taxable_earnings = ( + prev_period_non_taxable_earnings + + current_period_non_taxable_earnings + + future_period_non_taxable_earnings + + non_taxable_additional_salary + ) + + return non_taxable_earnings + + def get_future_period_non_taxable_earnings(self): + salary_slip = frappe.copy_doc(self) + # consider full payment days for future period + salary_slip.payment_days = salary_slip.total_working_days + salary_slip.calculate_net_pay(skip_tax_breakup_computation=True) + + future_period_non_taxable_earnings = 0 + for earning in salary_slip.earnings: + if not earning.is_tax_applicable and not earning.additional_salary: + future_period_non_taxable_earnings += earning.amount + + return future_period_non_taxable_earnings * (ceil(self.remaining_sub_periods) - 1) + + def get_non_taxable_earnings_for_current_period(self): + current_period_non_taxable_earnings = 0.0 + + non_taxable_additional_salary = self.get_salary_slip_details( + self.payroll_period.start_date, + self.start_date, + parentfield="earnings", + is_tax_applicable=0, + field_to_select="additional_amount", + ) + + # Current period non taxable earnings + for earning in self.earnings: + if earning.is_tax_applicable: + continue + + if earning.additional_amount: + non_taxable_additional_salary += earning.additional_amount + + # Future recurring additional salary + if earning.additional_salary and earning.is_recurring_additional_salary: + non_taxable_additional_salary += self.get_future_recurring_additional_amount( + earning.additional_salary, earning.additional_amount + ) + else: + current_period_non_taxable_earnings += earning.amount + + return current_period_non_taxable_earnings, non_taxable_additional_salary + + def compute_annual_deductions_before_tax_calculation(self): + prev_period_exempted_amount = 0 + current_period_exempted_amount = 0 + future_period_exempted_amount = 0 + + # Previous period exempted amount + prev_period_exempted_amount = self.get_salary_slip_details( + self.payroll_period.start_date, + self.start_date, + parentfield="deductions", + exempted_from_income_tax=1, + ) + + # Current period exempted amount + for d in self.get("deductions"): + if d.exempted_from_income_tax: + current_period_exempted_amount += d.amount + + # Future period exempted amount + for deduction in self._salary_structure_doc.get("deductions"): + if deduction.exempted_from_income_tax: + if deduction.amount_based_on_formula: + for sub_period in range(1, ceil(self.remaining_sub_periods)): + future_period_exempted_amount += self.get_amount_from_formula(deduction, sub_period) + else: + future_period_exempted_amount += deduction.amount * (ceil(self.remaining_sub_periods) - 1) + + return ( + prev_period_exempted_amount + current_period_exempted_amount + future_period_exempted_amount + ) or 0 + + def get_amount_from_formula(self, struct_row, sub_period=1): + if self.payroll_frequency == "Monthly": + start_date = frappe.utils.add_months(self.start_date, sub_period) + end_date = frappe.utils.add_months(self.end_date, sub_period) + posting_date = frappe.utils.add_months(self.posting_date, sub_period) + + else: + days_to_add = 0 + if self.payroll_frequency == "Weekly": + days_to_add = sub_period * 6 + + if self.payroll_frequency == "Fortnightly": + days_to_add = sub_period * 13 + + if self.payroll_frequency == "Daily": + days_to_add = start_date + + start_date = frappe.utils.add_days(self.start_date, days_to_add) + end_date = frappe.utils.add_days(self.end_date, days_to_add) + posting_date = start_date + + local_data = self.data.copy() + local_data.update({"start_date": start_date, "end_date": end_date, "posting_date": posting_date}) + + return flt(self.eval_condition_and_formula(struct_row, local_data)) + + def get_income_tax_deducted_till_date(self): + tax_deducted = 0.0 + for tax_component in self.get("_component_based_variable_tax") or {}: + tax_deducted += ( + self._component_based_variable_tax[tax_component]["previous_total_paid_taxes"] + + self._component_based_variable_tax[tax_component]["current_tax_amount"] + ) + return tax_deducted + + def calculate_component_amounts(self, component_type): + if component_type == "earnings": + self.accrued_benefits = [] + self.benefit_ledger_components = [] + + if not getattr(self, "_salary_structure_doc", None): + self.set_salary_structure_doc() + + self.add_structure_components(component_type) + self.add_additional_salary_components(component_type) + if component_type == "earnings": + self.add_employee_benefits() + else: + self.add_tax_components() + + def set_salary_structure_doc(self) -> None: + self._salary_structure_doc = frappe.get_cached_doc("Salary Structure", self.salary_structure) + # sanitize condition and formula fields + for table in ("earnings", "deductions"): + for row in self._salary_structure_doc.get(table): + row.condition = sanitize_expression(row.condition) + row.formula = sanitize_expression(row.formula) + + def add_structure_components(self, component_type): + self.data, self.default_data = self.get_data_for_eval() + + for struct_row in self._salary_structure_doc.get(component_type): + self.add_structure_component(struct_row, component_type) + + def add_structure_component(self, struct_row, component_type): + if ( + self.salary_slip_based_on_timesheet + and struct_row.salary_component == self._salary_structure_doc.salary_component + ): + return + + amount = self.eval_condition_and_formula(struct_row, self.data) + if struct_row.statistical_component or struct_row.accrual_component: + # update statitical component amount in reference data based on payment days + # since row for statistical component is not added to salary slip + + self.default_data[struct_row.abbr] = flt(amount) + if struct_row.depends_on_payment_days: + amount = ( + flt(amount) * flt(self.payment_days) / cint(self.total_working_days) + if self.total_working_days + else 0 + ) + self.data[struct_row.abbr] = flt(amount, struct_row.precision("amount")) + + is_accrual_component = ( + component_type == "earnings" + and struct_row.accrual_component + and hasattr(self, "benefit_ledger_components") + ) + if is_accrual_component: + # add accrual component to Accrued Benefits table and track in Employee Benefit Ledger + self.append( + "accrued_benefits", + { + "salary_component": struct_row.salary_component, + "amount": amount, + }, + ) + self.benefit_ledger_components.append( + { + "salary_component": struct_row.salary_component, + "amount": amount, + "is_accrual": 1, + "transaction_type": "Accrual", + "flexible_benefit": 0, + "remarks": "Accrual Component assigned via salary structure", + } + ) + else: + # default behavior, the system does not add if component amount is zero + # if remove_if_zero_valued is unchecked, then ask system to add component row + remove_if_zero_valued = frappe.get_cached_value( + "Salary Component", struct_row.salary_component, "remove_if_zero_valued" + ) + + default_amount = 0 + + if ( + amount + or (struct_row.amount_based_on_formula and amount is not None) + or (not remove_if_zero_valued and amount is not None and not self.data[struct_row.abbr]) + ): + default_amount = self.eval_condition_and_formula(struct_row, self.default_data) + self.update_component_row( + struct_row, + amount, + component_type, + data=self.data, + default_amount=default_amount, + remove_if_zero_valued=remove_if_zero_valued, + ) + + def get_data_for_eval(self): + """Returns data for evaluating formula""" + data = frappe._dict() + employee = frappe.get_cached_doc("Employee", self.employee).as_dict() + + if not hasattr(self, "_salary_structure_assignment"): + self.set_salary_structure_assignment() + + data.update(self._salary_structure_assignment) + data.update(self.as_dict()) + data.update(employee) + + data.update(self.get_component_abbr_map()) + + # shallow copy of data to store default amounts (without payment days) for tax calculation + default_data = data.copy() + + for key in ("earnings", "deductions"): + for d in self.get(key): + default_data[d.abbr] = d.default_amount or 0 + data[d.abbr] = d.amount or 0 + + return data, default_data + + def get_component_abbr_map(self): + def _fetch_component_values(): + return { + component_abbr: 0 + for component_abbr in frappe.get_all("Salary Component", pluck="salary_component_abbr") + } + + return frappe.cache().get_value(SALARY_COMPONENT_VALUES, generator=_fetch_component_values) + + def eval_condition_and_formula(self, struct_row, data): + try: + condition, formula, amount = struct_row.condition, struct_row.formula, struct_row.amount + if condition and not _safe_eval(condition, self.whitelisted_globals, data): + return None + if struct_row.amount_based_on_formula and formula: + amount = flt( + _safe_eval(formula, self.whitelisted_globals, data), struct_row.precision("amount") + ) + if amount: + data[struct_row.abbr] = amount + + return amount + + except NameError as ne: + throw_error_message( + struct_row, + ne, + title=_("Name error"), + description=_("This error can be due to missing or deleted field."), + ) + except SyntaxError as se: + throw_error_message( + struct_row, + se, + title=_("Syntax error"), + description=_("This error can be due to invalid syntax."), + ) + except Exception as exc: + throw_error_message( + struct_row, + exc, + title=_("Error in formula or condition"), + description=_("This error can be due to invalid formula or condition."), + ) + raise + + def add_employee_benefits(self): + # Fetch employee benefits based on mandatory benefit application setting, get amounts for accrual or payouts for each and add to salary slip accrued_benefits/earnings table + if not self.payroll_period: + return + + self.benefit_details_parent, self.benefit_details_doctype = get_benefits_details_parent( + self.employee, self.payroll_period.name, self._salary_structure_assignment.name + ) + + if not self.benefit_details_parent: + return + + SalaryComponent = frappe.qb.DocType("Salary Component") + EmployeeBenefitDetail = frappe.qb.DocType(self.benefit_details_doctype) + employee_benefits = ( + frappe.qb.from_(EmployeeBenefitDetail) + .join(SalaryComponent) + .on(EmployeeBenefitDetail.salary_component == SalaryComponent.name) + .select( + EmployeeBenefitDetail.salary_component, + EmployeeBenefitDetail.amount.as_("yearly_amount"), + SalaryComponent.payout_method, + SalaryComponent.depends_on_payment_days, + SalaryComponent.round_to_the_nearest_integer, + SalaryComponent.final_cycle_accrual_payout, + ) + .where(EmployeeBenefitDetail.parent == self.benefit_details_parent) + .where(SalaryComponent.is_flexible_benefit == 1) + .where(SalaryComponent.accrual_component == 1) + .run(as_dict=True) + ) + + if employee_benefits: + employee_benefits = self.get_current_period_employee_benefit_amounts(employee_benefits) + self.add_current_period_employee_benefits(employee_benefits) + + def add_current_period_employee_benefits(self, employee_benefits: dict): + """Add flexible benefit payouts and accruals to salary slip Accrued Benefits table. Maintain benefit_ledger_components list to track accruals and payouts in this payroll cycle to be added to Employee Benefit Ledger.""" + for benefit in employee_benefits: + if benefit.amount <= 0: + continue + + earning_component = get_salary_component_data(benefit.salary_component) + if not earning_component.is_flexible_benefit: + continue + + if benefit.is_accrual: + self.append( + "accrued_benefits", + { + "salary_component": benefit.salary_component, + "amount": benefit.amount, + }, + ) + else: + self.update_component_row( + earning_component, + benefit.amount, + "earnings", + ) + + transaction_type = "Accrual" if benefit.is_accrual else "Payout" + remarks = "Pro rata flexible benefit accrual" if benefit.is_accrual else "Flexible benefit payout" + + self.benefit_ledger_components.append( + { + "salary_component": benefit.salary_component, + "is_accrual": benefit.is_accrual, + "amount": flt(benefit.amount), + "transaction_type": transaction_type, + "flexible_benefit": 1, + "yearly_benefit": benefit.get("yearly_amount", 0), + "remarks": remarks, + } + ) + + def get_current_period_employee_benefit_amounts(self, employee_benefits: dict) -> dict: + """Calculate employee benefit amounts for the current salary slip period based on payout method.""" + from collections import defaultdict + + is_last_payroll_cycle = False + if self.payroll_period and getdate(self.payroll_period.end_date) <= getdate(self.end_date): + is_last_payroll_cycle = True + + total_sub_periods = get_period_factor( + self.employee, + self.start_date, + self.end_date, + self.payroll_frequency, + self.payroll_period, + )[0] + + ledger_map = self._get_benefit_ledger_entries(employee_benefits) + precision = frappe.get_precision("Employee Benefit Detail", "amount") + + # Process each benefit according to its payout method + for benefit in employee_benefits: + current_period_benefit = benefit.yearly_amount / total_sub_periods if total_sub_periods else 0 + if benefit.depends_on_payment_days: + current_period_benefit = ( + flt(current_period_benefit) * flt(self.payment_days) / cint(self.total_working_days) + ) + + # Get accrued and paid totals for this benefit + total_accrued = ledger_map[benefit.salary_component].get("Accrual", 0) + total_paid = ledger_map[benefit.salary_component].get("Payout", 0) + + current_period_benefit, is_accrual = self._get_benefit_amount_and_transaction_type( + benefit, current_period_benefit, total_accrued, total_paid, is_last_payroll_cycle + ) + + current_period_benefit = flt(current_period_benefit, precision) + if benefit.round_to_the_nearest_integer: + current_period_benefit = rounded(current_period_benefit or 0) + benefit.is_accrual = is_accrual + benefit.amount = current_period_benefit + + return employee_benefits + + def _get_benefit_ledger_entries(self, employee_benefits): + """Fetch existing benefit ledger entries and map amounts by benefit salary component and transaction type.""" + from collections import defaultdict + + ledger_entries = frappe.get_all( + "Employee Benefit Ledger", + filters={ + "employee": self.employee, + "salary_component": ["in", [benefit.salary_component for benefit in employee_benefits]], + "payroll_period": self.payroll_period.name, + }, + fields=["salary_component", "transaction_type", "amount"], + ) + benefit_ledger_map = defaultdict(lambda: defaultdict(float)) + for entry in ledger_entries: + benefit_ledger_map[entry["salary_component"]][entry["transaction_type"]] += entry["amount"] + + return benefit_ledger_map + + def _get_benefit_amount_and_transaction_type( + self, benefit, current_period_benefit, total_accrued, total_paid, is_last_payroll_cycle + ): # Process according to payout method + is_accrual = 1 + + if benefit.payout_method == "Accrue and payout at end of payroll period": + current_period_benefit, is_accrual = self._get_final_period_benefit_payout( + benefit, current_period_benefit, total_accrued, total_paid, is_last_payroll_cycle + ) + elif benefit.payout_method == "Accrue per cycle, pay only on claim": + current_period_benefit, is_accrual = self._get_claim_based_benefit_payout( + benefit, current_period_benefit, total_accrued, total_paid, is_last_payroll_cycle + ) + + return current_period_benefit, is_accrual + + def _get_final_period_benefit_payout( + self, benefit, current_period_benefit, total_accrued, total_paid, is_last_payroll_cycle + ): + """Process 'Accrue and payout at end of payroll period' benefit""" + is_accrual = 1 + benefit_claims = [ + row + for row in self.earnings + if row.salary_component == benefit.salary_component and getattr(row, "additional_salary", None) + ] # Any claims for this benefit component to be paid via additional salary in this payroll cycle + claimed_amount = sum(row.amount for row in benefit_claims) if benefit_claims else 0 + total_paid += claimed_amount + + if 0 < (benefit.yearly_amount - total_accrued) < current_period_benefit: + current_period_benefit = ( + benefit.yearly_amount - total_accrued + ) # Limit benefit amount to remaining yearly amount + + if is_last_payroll_cycle: # On last payroll cycle, pay out all accrued benefits + current_period_benefit = max(total_accrued + current_period_benefit - total_paid, 0) + is_accrual = 0 + + return current_period_benefit, is_accrual + + def _get_claim_based_benefit_payout( + self, benefit, current_period_benefit, total_accrued, total_paid, is_last_payroll_cycle + ): + """Process 'Accrue per cycle, pay only on claim' benefits. + Always record the full entitlement for the current cycle, even if part of it + was already claimed. This ensures the Employee Benefit Ledger shows + the correct total entitlement for accurate future claim balance calculations. + """ + is_accrual = 1 + benefit_claims = [ + row + for row in self.earnings + if row.salary_component == benefit.salary_component and getattr(row, "additional_salary", None) + ] + claimed_amount = sum(row.amount for row in benefit_claims) if benefit_claims else 0 + total_paid += claimed_amount + + # if more was paid than accrued, reduce current period accrual accordingly + if total_paid > total_accrued: + current_period_benefit -= total_paid - total_accrued + + if 0 < (benefit.yearly_amount - total_accrued) < current_period_benefit: + current_period_benefit = ( + benefit.yearly_amount - total_accrued + ) # Limit benefit amount to remaining yearly amount + + # Pay out all unclaimed benefits in final cycle if final payout option is enabled + if is_last_payroll_cycle and benefit.final_cycle_accrual_payout: + current_period_benefit = max(total_accrued + current_period_benefit - total_paid, 0) + is_accrual = 0 + + return current_period_benefit, is_accrual + + def add_additional_salary_components(self, component_type): + additional_salaries = get_additional_salaries( + self.employee, self.start_date, self.end_date, component_type + ) + + for additional_salary in additional_salaries: + component_data = get_salary_component_data(additional_salary.component) + self.update_component_row( + component_data, + additional_salary.amount, + component_type, + additional_salary, + is_recurring=additional_salary.is_recurring, + ) + + if component_type == "earnings" and hasattr(self, "benefit_ledger_components"): + if ( + additional_salary.ref_doctype == "Employee Benefit Claim" + and component_data.is_flexible_benefit + ) or component_data.accrual_component: + # track benefit claim or accrual component payout to record in Employee Benefit Ledger + if additional_salary.ref_doctype == "Employee Benefit Claim": + remarks = f"Payout against Employee Benefit Claim {additional_salary.ref_docname}" + flexible_benefit = 1 + else: + remarks = "Accrual Component payout via Additional Salary" + flexible_benefit = 0 + + self.benefit_ledger_components.append( + { + "salary_component": additional_salary.component, + "amount": additional_salary.amount, + "is_accrual": 0, + "transaction_type": "Payout", + "flexible_benefit": flexible_benefit, + "remarks": remarks, + } + ) + + def add_tax_components(self): + # Calculate variable_based_on_taxable_salary after all components updated in salary slip + tax_components, self.other_deduction_components = [], [] + for d in self._salary_structure_doc.get("deductions"): + if d.variable_based_on_taxable_salary == 1 and not d.formula and not flt(d.amount): + tax_components.append(d.salary_component) + else: + self.other_deduction_components.append(d.salary_component) + + # consider manually added tax component + if not tax_components: + tax_components = [ + d.salary_component for d in self.get("deductions") if d.variable_based_on_taxable_salary + ] + + if self.is_new() and not tax_components: + tax_components = self.get_tax_components() + frappe.msgprint( + _( + "Added tax components from the Salary Component master as the salary structure didn't have any tax component." + ), + indicator="blue", + alert=True, + ) + + self._component_based_variable_tax = {} + if tax_components and self.payroll_period and self.salary_structure: + self.tax_slab = self.get_income_tax_slabs() + self.compute_taxable_earnings_for_year() + + if self.handle_additional_salary_tax_component(): + self._component_based_variable_tax.setdefault(self.additional_salary_component, {}) + self.calculate_variable_tax(self.additional_salary_component, True) + return + + for tax_component in tax_components: + self._component_based_variable_tax.setdefault(tax_component, {}) + self.calculate_variable_based_on_taxable_salary(tax_component) + if self._component_based_variable_tax[tax_component]: + tax_amount = self._component_based_variable_tax[tax_component]["current_tax_amount"] + tax_row = get_salary_component_data(tax_component) + self.update_component_row(tax_row, tax_amount, "deductions") + + def get_tax_components(self) -> list: + """ + Returns: + list: A list of tax components specific to the company. + If no tax components are defined for the company, + it returns the default tax components. + """ + tax_components = frappe.cache().get_value( + TAX_COMPONENTS_BY_COMPANY, self._fetch_tax_components_by_company + ) + + default_tax_components = tax_components.get("default", []) + return tax_components.get(self.company, default_tax_components) + + def _fetch_tax_components_by_company(self) -> dict: + """ + Returns: + dict: A dictionary containing tax components grouped by company. + + Raises: + None + """ + + tax_components = {} + sc = frappe.qb.DocType("Salary Component") + sca = frappe.qb.DocType("Salary Component Account") + + components = ( + frappe.qb.from_(sc) + .left_join(sca) + .on(sca.parent == sc.name) + .select( + sc.name, + sca.company, + ) + .where(sc.variable_based_on_taxable_salary == 1) + .where(sc.disabled == 0) + ).run(as_dict=True) + + for component in components: + key = component.company or "default" + tax_components.setdefault(key, []) + tax_components[key].append(component.name) + + return tax_components + + def handle_additional_salary_tax_component(self) -> bool: + component = next( + (d for d in self.get("deductions") if d.variable_based_on_taxable_salary and d.additional_salary), + None, + ) + + if not component: + return False + + additional_salary = frappe.db.get_value( + "Additional Salary", + component.additional_salary, + ["amount", "overwrite_salary_structure_amount"], + as_dict=1, + ) + self.additional_salary_amount = additional_salary.amount + self.additional_salary_component = component.salary_component + + if additional_salary.overwrite_salary_structure_amount: + return True + else: + # overwriting disabled, remove addtional salary tax component + self.get("deductions", []).remove(component) + return False + + def update_component_row( + self, + component_data, + amount, + component_type, + additional_salary=None, + is_recurring=0, + data=None, + default_amount=None, + remove_if_zero_valued=None, + ): + component_row = None + for d in self.get(component_type): + if d.salary_component != component_data.salary_component: + continue + + if (not d.additional_salary and (not additional_salary or additional_salary.overwrite)) or ( + additional_salary and additional_salary.name == d.additional_salary + ): + component_row = d + break + + if additional_salary and additional_salary.overwrite: + # Additional Salary with overwrite checked, remove default rows of same component + self.set( + component_type, + [ + d + for d in self.get(component_type) + if d.salary_component != component_data.salary_component + or (d.additional_salary and additional_salary.name != d.additional_salary) + or d == component_row + ], + ) + + if not component_row: + if not (amount or default_amount) and remove_if_zero_valued: + return + + component_row = self.append(component_type) + for attr in ( + "depends_on_payment_days", + "salary_component", + "abbr", + "do_not_include_in_total", + "do_not_include_in_accounts", + "accrual_component", + "is_tax_applicable", + "is_flexible_benefit", + "variable_based_on_taxable_salary", + "exempted_from_income_tax", + ): + component_row.set(attr, component_data.get(attr)) + + if additional_salary and amount: + if additional_salary.overwrite: + component_row.additional_amount = flt( + flt(amount) - flt(component_row.get("default_amount", 0)), + component_row.precision("additional_amount"), + ) + else: + component_row.default_amount = 0 + component_row.additional_amount = amount + + component_row.is_recurring_additional_salary = is_recurring + component_row.additional_salary = additional_salary.name + component_row.deduct_full_tax_on_selected_payroll_date = ( + additional_salary.deduct_full_tax_on_selected_payroll_date + ) + else: + component_row.default_amount = default_amount or amount + component_row.additional_amount = 0 + component_row.deduct_full_tax_on_selected_payroll_date = ( + component_data.deduct_full_tax_on_selected_payroll_date + ) + + component_row.amount = amount + + # Skip payment days adjustment for: + # 1. Arrear/Payroll Correction additional salary - already calculated based on LWP days in previous cycles + # 2. Employee Benefit Claim - payout often includes amount for previous cycles + # 2. Accrual components - paid based on accrual amounts from previous cycles + skip_payment_days_adjustment = ( + additional_salary + and additional_salary.get("ref_doctype") + in ["Arrear", "Payroll Correction", "Employee Benefit Claim"] + ) or component_row.accrual_component + if not skip_payment_days_adjustment: + self.update_component_amount_based_on_payment_days(component_row, remove_if_zero_valued) + + if data: + data[component_row.abbr] = component_row.amount + + def update_component_amount_based_on_payment_days(self, component_row, remove_if_zero_valued=None): + component_row.amount = self.get_amount_based_on_payment_days(component_row)[0] + + # remove 0 valued components that have been updated later + if component_row.amount == 0 and remove_if_zero_valued: + self.remove(component_row) + + def set_precision_for_component_amounts(self): + for component_type in ("earnings", "deductions"): + for component_row in self.get(component_type): + component_row.amount = flt(component_row.amount, component_row.precision("amount")) + + def calculate_variable_based_on_taxable_salary(self, tax_component): + if not self.payroll_period: + frappe.msgprint( + _("Start and end dates not in a valid Payroll Period, cannot calculate {0}.").format( + tax_component + ) + ) + return + + return self.calculate_variable_tax(tax_component) + + def calculate_variable_tax(self, tax_component, has_additional_salary_tax_component=False): + self.previous_total_paid_taxes = self.get_tax_paid_in_period( + self.payroll_period.start_date, self.start_date, tax_component + ) + + # Structured tax amount + eval_locals, default_data = self.get_data_for_eval() + self.total_structured_tax_amount, __ = calculate_tax_by_tax_slab( + self.total_taxable_earnings_without_full_tax_addl_components, + self.tax_slab, + self.whitelisted_globals, + eval_locals, + ) + + if has_additional_salary_tax_component: + self.current_structured_tax_amount = self.additional_salary_amount + else: + self.current_structured_tax_amount = ( + self.total_structured_tax_amount - self.previous_total_paid_taxes + ) / self.remaining_sub_periods + + # Total taxable earnings with additional earnings with full tax + self.full_tax_on_additional_earnings = 0.0 + if self.current_additional_earnings_with_full_tax: + self.total_tax_amount, __ = calculate_tax_by_tax_slab( + self.total_taxable_earnings, self.tax_slab, self.whitelisted_globals, eval_locals + ) + self.full_tax_on_additional_earnings = self.total_tax_amount - self.total_structured_tax_amount + + self.current_tax_amount = max( + 0, + flt( + self.current_structured_tax_amount + if has_additional_salary_tax_component + else (self.current_structured_tax_amount + self.full_tax_on_additional_earnings) + ), + ) + + self._component_based_variable_tax[tax_component].update( + { + "previous_total_paid_taxes": self.previous_total_paid_taxes, + "total_structured_tax_amount": self.total_structured_tax_amount, + "current_structured_tax_amount": self.current_structured_tax_amount, + "full_tax_on_additional_earnings": self.full_tax_on_additional_earnings, + "current_tax_amount": self.current_tax_amount, + } + ) + + def get_income_tax_slabs(self): + income_tax_slab = self._salary_structure_assignment.income_tax_slab + + if not income_tax_slab: + frappe.throw( + _("Income Tax Slab not set in Salary Structure Assignment: {0}").format( + get_link_to_form("Salary Structure Assignment", self._salary_structure_assignment.name) + ), + title=_("Missing Tax Slab"), + ) + + income_tax_slab_doc = frappe.get_cached_doc("Income Tax Slab", income_tax_slab) + if income_tax_slab_doc.disabled: + frappe.throw(_("Income Tax Slab: {0} is disabled").format(income_tax_slab)) + + if getdate(income_tax_slab_doc.effective_from) > getdate(self.payroll_period.start_date): + frappe.throw( + _("Income Tax Slab must be effective on or before Payroll Period Start Date: {0}").format( + self.payroll_period.start_date + ) + ) + + return income_tax_slab_doc + + def get_taxable_earnings_for_prev_period(self, start_date, end_date, allow_tax_exemption=False): + exempted_amount = 0 + taxable_earnings = self.get_salary_slip_details( + start_date, end_date, parentfield="earnings", is_tax_applicable=1 + ) + + if allow_tax_exemption: + exempted_amount = self.get_salary_slip_details( + start_date, end_date, parentfield="deductions", exempted_from_income_tax=1 + ) + + opening_taxable_earning = self.get_opening_for("taxable_earnings_till_date", start_date, end_date) + + return (taxable_earnings + opening_taxable_earning) - exempted_amount, exempted_amount + + def get_opening_for(self, field_to_select, start_date, end_date): + if self._salary_structure_assignment.from_date < self.payroll_period.start_date: + return 0 + return self._salary_structure_assignment.get(field_to_select) or 0 + + def get_salary_slip_details( + self, + start_date, + end_date, + parentfield, + salary_component=None, + is_tax_applicable=None, + is_flexible_benefit=0, + exempted_from_income_tax=0, + variable_based_on_taxable_salary=0, + field_to_select="amount", + ): + ss = frappe.qb.DocType("Salary Slip") + sd = frappe.qb.DocType("Salary Detail") + + field = sd.amount if field_to_select == "amount" else sd.additional_amount + + query = ( + frappe.qb.from_(ss) + .join(sd) + .on(sd.parent == ss.name) + .select(Sum(field)) + .where(sd.parentfield == parentfield) + .where(sd.is_flexible_benefit == is_flexible_benefit) + .where(ss.docstatus == 1) + .where(ss.employee == self.employee) + .where(ss.start_date.between(start_date, end_date)) + .where(ss.end_date.between(start_date, end_date)) + ) + + if is_tax_applicable is not None: + query = query.where(sd.is_tax_applicable == is_tax_applicable) + + if exempted_from_income_tax: + query = query.where(sd.exempted_from_income_tax == exempted_from_income_tax) + + if variable_based_on_taxable_salary: + query = query.where(sd.variable_based_on_taxable_salary == variable_based_on_taxable_salary) + + if salary_component: + query = query.where(sd.salary_component == salary_component) + + result = query.run() + return flt(result[0][0]) if result else 0.0 + + def get_tax_paid_in_period(self, start_date, end_date, tax_component): + # find total_tax_paid, tax paid for benefit, additional_salary + total_tax_paid = self.get_salary_slip_details( + start_date, + end_date, + parentfield="deductions", + salary_component=tax_component, + variable_based_on_taxable_salary=1, + ) + + tax_deducted_till_date = self.get_opening_for("tax_deducted_till_date", start_date, end_date) + + return total_tax_paid + tax_deducted_till_date + + def get_taxable_earnings(self, allow_tax_exemption=False, based_on_payment_days=0): + taxable_earnings = 0 + additional_income = 0 + additional_income_with_full_tax = 0 + amount_exempted_from_income_tax = 0 + + for earning in self.earnings: + if based_on_payment_days: + amount, additional_amount = self.get_amount_based_on_payment_days(earning) + else: + if earning.additional_amount: + amount, additional_amount = earning.amount or 0, earning.additional_amount or 0 + else: + amount, additional_amount = earning.default_amount or 0, earning.additional_amount or 0 + + if earning.is_tax_applicable: + taxable_earnings += amount - additional_amount + additional_income += additional_amount + + # Get additional amount based on future recurring additional salary + if additional_amount and earning.is_recurring_additional_salary: + additional_income += self.get_future_recurring_additional_amount( + earning.additional_salary, earning.additional_amount + ) # Used earning.additional_amount to consider the amount for the full month + + if earning.deduct_full_tax_on_selected_payroll_date: + additional_income_with_full_tax += additional_amount + + if allow_tax_exemption: + for ded in self.deductions: + if ded.exempted_from_income_tax: + amount, additional_amount = ded.amount, ded.additional_amount + if based_on_payment_days: + amount, additional_amount = self.get_amount_based_on_payment_days(ded) + + taxable_earnings -= flt(amount - additional_amount) + additional_income -= additional_amount + amount_exempted_from_income_tax += flt(amount - additional_amount) + + if additional_amount and ded.is_recurring_additional_salary: + additional_income -= self.get_future_recurring_additional_amount( + ded.additional_salary, ded.additional_amount + ) # Used ded.additional_amount to consider the amount for the full month + + return frappe._dict( + { + "taxable_earnings": taxable_earnings, + "additional_income": additional_income, + "amount_exempted_from_income_tax": amount_exempted_from_income_tax, + "additional_income_with_full_tax": additional_income_with_full_tax, + } + ) + + def get_future_recurring_period( + self, + additional_salary, + ): + to_date = None + + if self.relieving_date: + to_date = self.relieving_date + + if not to_date: + to_date = frappe.db.get_value("Additional Salary", additional_salary, "to_date", cache=True) + + # future month count excluding current + from_date, to_date = getdate(self.start_date), getdate(to_date) + + # If recurring period end date is beyond the payroll period, + # last day of payroll period should be considered for recurring period calculation + if getdate(to_date) > getdate(self.payroll_period.end_date): + to_date = getdate(self.payroll_period.end_date) + + future_recurring_period = ((to_date.year - from_date.year) * 12) + (to_date.month - from_date.month) + + if future_recurring_period > 0 and to_date.month == from_date.month: + future_recurring_period -= 1 + + return future_recurring_period + + def get_future_recurring_additional_amount(self, additional_salary, monthly_additional_amount): + future_recurring_additional_amount = 0 + + future_recurring_period = self.get_future_recurring_period(additional_salary) + + if future_recurring_period > 0: + future_recurring_additional_amount = ( + monthly_additional_amount * future_recurring_period + ) # Used earning.additional_amount to consider the amount for the full month + return future_recurring_additional_amount + + def get_amount_based_on_payment_days(self, row): + amount, additional_amount = row.amount, row.additional_amount + timesheet_component = self._salary_structure_doc.salary_component + + if not row.additional_salary and not row.default_amount: + amount, additional_amount = amount, additional_amount + elif ( + self.salary_structure + and cint(row.depends_on_payment_days) + and cint(self.total_working_days) + and not ( + row.additional_salary and row.default_amount + ) # to identify overwritten additional salary + and ( + row.salary_component != timesheet_component + or getdate(self.start_date) < self.joining_date + or (self.relieving_date and getdate(self.end_date) > self.relieving_date) + ) + ): + additional_amount = flt( + (flt(row.additional_amount) * flt(self.payment_days) / cint(self.total_working_days)), + row.precision("additional_amount"), + ) + amount = ( + flt( + (flt(row.default_amount) * flt(self.payment_days) / cint(self.total_working_days)), + row.precision("amount"), + ) + + additional_amount + ) + + elif ( + not self.payment_days + and row.salary_component != timesheet_component + and cint(row.depends_on_payment_days) + ): + amount, additional_amount = 0, 0 + elif not row.amount and row.additional_amount: + amount = flt(row.additional_amount) + + # apply rounding + if frappe.db.get_value( + "Salary Component", row.salary_component, "round_to_the_nearest_integer", cache=True + ): + amount, additional_amount = rounded(amount or 0), rounded(additional_amount or 0) + + return amount, additional_amount + + def get_total_exemption_amount(self): + total_exemption_amount = 0 + if self.tax_slab.allow_tax_exemption: + if self.deduct_tax_for_unsubmitted_tax_exemption_proof: + exemption_proof = frappe.db.get_value( + "Employee Tax Exemption Proof Submission", + {"employee": self.employee, "payroll_period": self.payroll_period.name, "docstatus": 1}, + "exemption_amount", + cache=True, + ) + if exemption_proof: + total_exemption_amount = exemption_proof + else: + declaration = frappe.db.get_value( + "Employee Tax Exemption Declaration", + {"employee": self.employee, "payroll_period": self.payroll_period.name, "docstatus": 1}, + "total_exemption_amount", + cache=True, + ) + if declaration: + total_exemption_amount = declaration + + if self.tax_slab.standard_tax_exemption_amount: + total_exemption_amount += flt(self.tax_slab.standard_tax_exemption_amount) + + return total_exemption_amount + + def get_income_form_other_sources(self): + return ( + frappe.get_all( + "Employee Other Income", + filters={ + "employee": self.employee, + "payroll_period": self.payroll_period.name, + "company": self.company, + "docstatus": 1, + }, + fields=[{"SUM": "amount", "as": "total_amount"}], + )[0].total_amount + or 0.0 + ) + + def get_component_totals(self, component_type, depends_on_payment_days=0): + total = 0.0 + components = self.get(component_type) or [] + + for d in components: + if d.do_not_include_in_total: + continue + + if depends_on_payment_days: + amount = self.get_amount_based_on_payment_days(d)[0] + else: + amount = flt(d.amount, d.precision("amount")) + + total += amount + + return total + + def email_salary_slip(self): + receiver = frappe.db.get_value("Employee", self.employee, "prefered_email", cache=True) + payroll_settings = frappe.get_single("Payroll Settings") + + subject = f"Salary Slip - from {self.start_date} to {self.end_date}" + message = _("Please see attachment") + if payroll_settings.email_template: + email_template = frappe.get_doc("Email Template", payroll_settings.email_template) + context = self.as_dict() + subject = frappe.render_template(email_template.subject, context) + message = frappe.render_template(email_template.response, context) + + password = None + if payroll_settings.encrypt_salary_slips_in_emails: + password = generate_password_for_pdf(payroll_settings.password_policy, self.employee) + if not payroll_settings.email_template: + message += "
    " + _( + "Note: Your salary slip is password protected, the password to unlock the PDF is of the format {0}." + ).format(payroll_settings.password_policy) + + if receiver: + email_args = { + "sender": payroll_settings.sender_email, + "recipients": [receiver], + "message": message, + "subject": subject, + "attachments": [ + frappe.attach_print(self.doctype, self.name, file_name=self.name, password=password) + ], + "reference_doctype": self.doctype, + "reference_name": self.name, + } + if not frappe.flags.in_test: + enqueue(method=frappe.sendmail, queue="short", timeout=300, is_async=True, **email_args) + else: + frappe.sendmail(**email_args) + else: + msgprint(_("{0}: Employee email not found, hence email not sent").format(self.employee_name)) + + def update_status(self, salary_slip=None): + for data in self.timesheets: + if data.time_sheet: + timesheet = frappe.get_doc("Timesheet", data.time_sheet) + timesheet.salary_slip = salary_slip + timesheet.flags.ignore_validate_update_after_submit = True + timesheet.set_status() + timesheet.save() + + def set_status(self, status=None): + """Get and update status""" + if not status: + status = self.get_status() + self.db_set("status", status) + + def process_salary_structure(self, for_preview=0, lwp_days_corrected=None): + """Calculate salary after salary structure details have been updated""" + if self.payroll_frequency: + self.get_date_details() + self.pull_emp_details() + self.get_working_days_details(for_preview=for_preview, lwp_days_corrected=lwp_days_corrected) + self.calculate_net_pay() + + def pull_emp_details(self): + account_details = frappe.get_cached_value( + "Employee", self.employee, ["bank_name", "bank_ac_no", "salary_mode"], as_dict=1 + ) + if account_details: + self.mode_of_payment = account_details.salary_mode + self.bank_name = account_details.bank_name + self.bank_account_no = account_details.bank_ac_no + + @frappe.whitelist() + def process_salary_based_on_working_days(self): + self.get_working_days_details(lwp=self.leave_without_pay) + self.calculate_net_pay() + + @frappe.whitelist() + def set_totals(self): + self.gross_pay = 0.0 + if self.salary_slip_based_on_timesheet == 1: + self.calculate_total_for_salary_slip_based_on_timesheet() + else: + self.total_deduction = 0.0 + if hasattr(self, "earnings"): + for earning in self.earnings: + self.gross_pay += flt(earning.amount, earning.precision("amount")) + if hasattr(self, "deductions"): + for deduction in self.deductions: + self.total_deduction += flt(deduction.amount, deduction.precision("amount")) + self.net_pay = ( + flt(self.gross_pay) - flt(self.total_deduction) - flt(self.get("total_loan_repayment")) + ) + self.set_base_totals() + + def set_base_totals(self): + self.base_gross_pay = flt(self.gross_pay) * flt(self.exchange_rate) + self.base_total_deduction = flt(self.total_deduction) * flt(self.exchange_rate) + self.rounded_total = rounded(self.net_pay or 0) + self.base_net_pay = flt(self.net_pay) * flt(self.exchange_rate) + self.base_rounded_total = rounded(self.base_net_pay or 0) + self.set_net_total_in_words() + + # calculate total working hours, earnings based on hourly wages and totals + def calculate_total_for_salary_slip_based_on_timesheet(self): + if self.timesheets: + self.total_working_hours = 0 + for timesheet in self.timesheets: + if timesheet.working_hours: + self.total_working_hours += timesheet.working_hours + + wages_amount = self.total_working_hours * self.hour_rate + self.base_hour_rate = flt(self.hour_rate) * flt(self.exchange_rate) + salary_component = frappe.db.get_value( + "Salary Structure", {"name": self.salary_structure}, "salary_component", cache=True + ) + if self.earnings: + for i, earning in enumerate(self.earnings): + if earning.salary_component == salary_component: + self.earnings[i].amount = wages_amount + self.gross_pay += flt(self.earnings[i].amount, earning.precision("amount")) + self.net_pay = flt(self.gross_pay) - flt(self.total_deduction) + + def compute_year_to_date(self): + year_to_date = 0 + period_start_date, period_end_date = self.get_year_to_date_period() + + salary_slip_sum = frappe.get_list( + "Salary Slip", + fields=[{"SUM": "net_pay", "as": "net_sum"}, {"SUM": "gross_pay", "as": "gross_sum"}], + filters={ + "employee": self.employee, + "start_date": [">=", period_start_date], + "end_date": ["<", period_end_date], + "name": ["!=", self.name], + "docstatus": 1, + }, + ) + + year_to_date = flt(salary_slip_sum[0].net_sum) if salary_slip_sum else 0.0 + gross_year_to_date = flt(salary_slip_sum[0].gross_sum) if salary_slip_sum else 0.0 + + year_to_date += self.net_pay + gross_year_to_date += self.gross_pay + self.year_to_date = year_to_date + self.gross_year_to_date = gross_year_to_date + + def compute_month_to_date(self): + month_to_date = 0 + first_day_of_the_month = get_first_day(self.start_date) + salary_slip_sum = frappe.get_list( + "Salary Slip", + fields=[{"SUM": "net_pay", "as": "sum"}], + filters={ + "employee": self.employee, + "start_date": [">=", first_day_of_the_month], + "end_date": ["<", self.start_date], + "name": ["!=", self.name], + "docstatus": 1, + }, + ) + + month_to_date = flt(salary_slip_sum[0].sum) if salary_slip_sum else 0.0 + + month_to_date += self.net_pay + self.month_to_date = month_to_date + + def compute_component_wise_year_to_date(self): + period_start_date, period_end_date = self.get_year_to_date_period() + + ss = frappe.qb.DocType("Salary Slip") + sd = frappe.qb.DocType("Salary Detail") + + for key in ("earnings", "deductions"): + for component in self.get(key): + year_to_date = 0 + component_sum = ( + frappe.qb.from_(sd) + .inner_join(ss) + .on(sd.parent == ss.name) + .select(Sum(sd.amount).as_("sum")) + .where( + (ss.employee == self.employee) + & (sd.salary_component == component.salary_component) + & (ss.start_date >= period_start_date) + & (ss.end_date < period_end_date) + & (ss.name != self.name) + & (ss.docstatus == 1) + ) + ).run() + + year_to_date = flt(component_sum[0][0]) if component_sum else 0.0 + year_to_date += component.amount + component.year_to_date = year_to_date + + def get_year_to_date_period(self): + if self.payroll_period: + period_start_date = self.payroll_period.start_date + period_end_date = self.payroll_period.end_date + else: + # get dates based on fiscal year if no payroll period exists + fiscal_year = get_fiscal_year(date=self.start_date, company=self.company, as_dict=1) + period_start_date = fiscal_year.year_start_date + period_end_date = fiscal_year.year_end_date + + return period_start_date, period_end_date + + def add_leave_balances(self): + self.set("leave_details", []) + + if frappe.db.get_single_value("Payroll Settings", "show_leave_balances_in_salary_slip"): + from hrms.hr.doctype.leave_application.leave_application import get_leave_details + + leave_details = get_leave_details(self.employee, self.end_date, True) + + for leave_type, leave_values in leave_details["leave_allocation"].items(): + self.append( + "leave_details", + { + "leave_type": leave_type, + "total_allocated_leaves": flt(leave_values.get("total_leaves")), + "expired_leaves": flt(leave_values.get("expired_leaves")), + "used_leaves": flt(leave_values.get("leaves_taken")), + "pending_leaves": flt(leave_values.get("leaves_pending_approval")), + "available_leaves": flt(leave_values.get("remaining_leaves")), + }, + ) + + def on_discard(self): + self.db_set("status", "Cancelled") + + +def get_benefits_details_parent(employee, payroll_period, salary_structure_assignment): + """Returns the parent and doctype of benefit details based on the following logic: + 1. If 'Mandatory Benefit Application' is enabled in Payroll Settings, only consider Employee Benefit Application + 2. If not enabled, prefer Employee Benefit Application but fallback to Salary Structure Assignment if + former does not exist""" + mandatory_benefit_application = frappe.db.get_single_value( + "Payroll Settings", "mandatory_benefit_application" + ) + benefit_details_parent = None + benefit_details_doctype = None + # Check if Employee Benefit Application exists + employee_benefit_application = frappe.db.get_value( + "Employee Benefit Application", + {"employee": employee, "payroll_period": payroll_period, "docstatus": 1}, + "name", + ) + + if mandatory_benefit_application: + # If mandatory, only consider Employee Benefit Application + if employee_benefit_application: + benefit_details_parent = employee_benefit_application + benefit_details_doctype = "Employee Benefit Application Detail" + else: + # If not mandatory, prefer Employee Benefit Application but fallback to Salary Structure Assignment + if employee_benefit_application: + benefit_details_parent = employee_benefit_application + benefit_details_doctype = "Employee Benefit Application Detail" + else: + benefit_details_parent = salary_structure_assignment + benefit_details_doctype = "Employee Benefit Detail" + + return benefit_details_parent, benefit_details_doctype + + +def unlink_ref_doc_from_salary_slip(doc, method=None): + """Unlinks accrual Journal Entry from Salary Slips on cancellation""" + linked_ss = frappe.get_all( + "Salary Slip", filters={"journal_entry": doc.name, "docstatus": ["<", 2]}, pluck="name" + ) + + if linked_ss: + for ss in linked_ss: + ss_doc = frappe.get_doc("Salary Slip", ss) + frappe.db.set_value("Salary Slip", ss_doc.name, "journal_entry", "") + + +def generate_password_for_pdf(policy_template, employee): + employee = frappe.get_cached_doc("Employee", employee) + return policy_template.format(**employee.as_dict()) + + +def get_salary_component_data(component): + # get_cached_value doesn't work here due to alias "name as salary_component" + return frappe.db.get_value( + "Salary Component", + component, + ( + "name as salary_component", + "depends_on_payment_days", + "salary_component_abbr as abbr", + "do_not_include_in_total", + "do_not_include_in_accounts", + "is_tax_applicable", + "is_flexible_benefit", + "variable_based_on_taxable_salary", + "accrual_component", + ), + as_dict=1, + cache=True, + ) + + +def get_payroll_payable_account(company, payroll_entry): + if payroll_entry: + payroll_payable_account = frappe.db.get_value( + "Payroll Entry", payroll_entry, "payroll_payable_account", cache=True + ) + else: + payroll_payable_account = frappe.db.get_value( + "Company", company, "default_payroll_payable_account", cache=True + ) + + return payroll_payable_account + + +def calculate_tax_by_tax_slab(annual_taxable_earning, tax_slab, eval_globals=None, eval_locals=None): + from hrms.hr.utils import calculate_tax_with_marginal_relief + + tax_amount = 0 + total_other_taxes_and_charges = 0 + + if annual_taxable_earning > tax_slab.tax_relief_limit: + eval_locals.update({"annual_taxable_earning": annual_taxable_earning}) + + for slab in tax_slab.slabs: + cond = cstr(slab.condition).strip() + if cond and not eval_tax_slab_condition(cond, eval_globals, eval_locals): + continue + if not slab.to_amount and annual_taxable_earning >= slab.from_amount: + tax_amount += (annual_taxable_earning - slab.from_amount + 1) * slab.percent_deduction * 0.01 + continue + + if annual_taxable_earning >= slab.from_amount and annual_taxable_earning < slab.to_amount: + tax_amount += (annual_taxable_earning - slab.from_amount + 1) * slab.percent_deduction * 0.01 + elif annual_taxable_earning >= slab.from_amount and annual_taxable_earning >= slab.to_amount: + tax_amount += (slab.to_amount - slab.from_amount + 1) * slab.percent_deduction * 0.01 + + tax_with_marginal_relief = calculate_tax_with_marginal_relief( + tax_slab, tax_amount, annual_taxable_earning + ) + if tax_with_marginal_relief is not None: + tax_amount = tax_with_marginal_relief + + for d in tax_slab.other_taxes_and_charges: + if flt(d.min_taxable_income) and flt(d.min_taxable_income) > annual_taxable_earning: + continue + + if flt(d.max_taxable_income) and flt(d.max_taxable_income) < annual_taxable_earning: + continue + other_taxes_and_charges = tax_amount * flt(d.percent) / 100 + tax_amount += other_taxes_and_charges + total_other_taxes_and_charges += other_taxes_and_charges + + return tax_amount, total_other_taxes_and_charges + + +def eval_tax_slab_condition(condition, eval_globals=None, eval_locals=None): + if not eval_globals: + eval_globals = { + "int": int, + "float": float, + "long": int, + "round": round, + "date": date, + "getdate": getdate, + "get_first_day": get_first_day, + "get_last_day": get_last_day, + } + + try: + condition = condition.strip() + if condition: + return frappe.safe_eval(condition, eval_globals, eval_locals) + except NameError as err: + frappe.throw( + _("{0}
    This error can be due to missing or deleted field.").format(err), + title=_("Name error"), + ) + except SyntaxError as err: + frappe.throw(_("Syntax error in condition: {0} in Income Tax Slab").format(err)) + except Exception as e: + frappe.throw(_("Error in formula or condition: {0} in Income Tax Slab").format(e)) + raise + + +def get_lwp_or_ppl_for_date_range(employee, start_date, end_date): + LeaveApplication = frappe.qb.DocType("Leave Application") + LeaveType = frappe.qb.DocType("Leave Type") + + leaves = ( + frappe.qb.from_(LeaveApplication) + .inner_join(LeaveType) + .on(LeaveType.name == LeaveApplication.leave_type) + .select( + LeaveApplication.name, + LeaveType.is_ppl, + LeaveType.fraction_of_daily_salary_per_leave, + LeaveType.include_holiday, + LeaveApplication.from_date, + LeaveApplication.to_date, + LeaveApplication.half_day, + LeaveApplication.half_day_date, + ) + .where( + ((LeaveType.is_lwp == 1) | (LeaveType.is_ppl == 1)) + & (LeaveApplication.docstatus == 1) + & (LeaveApplication.status == "Approved") + & (LeaveApplication.employee == employee) + & ((LeaveApplication.salary_slip.isnull()) | (LeaveApplication.salary_slip == "")) + & ((LeaveApplication.from_date <= end_date) & (LeaveApplication.to_date >= start_date)) + ) + ).run(as_dict=True) + + leave_date_mapper = frappe._dict() + for leave in leaves: + if leave.from_date == leave.to_date: + leave_date_mapper[leave.from_date] = leave + else: + date_diff = (getdate(leave.to_date) - getdate(leave.from_date)).days + for i in range(date_diff + 1): + date = add_days(leave.from_date, i) + leave_date_mapper[date] = leave + + return leave_date_mapper + + +@frappe.whitelist() +def make_salary_slip_from_timesheet(source_name, target_doc=None): + target = frappe.new_doc("Salary Slip") + set_missing_values(source_name, target) + target.run_method("get_emp_and_working_day_details") + + return target + + +def set_missing_values(time_sheet, target): + doc = frappe.get_doc("Timesheet", time_sheet) + target.employee = doc.employee + target.employee_name = doc.employee_name + target.salary_slip_based_on_timesheet = 1 + target.start_date = doc.start_date + target.end_date = doc.end_date + target.posting_date = doc.modified + target.total_working_hours = doc.total_hours + target.append("timesheets", {"time_sheet": doc.name, "working_hours": doc.total_hours}) + + +def throw_error_message(row, error, title, description=None): + data = frappe._dict( + { + "doctype": row.parenttype, + "name": row.parent, + "doclink": get_link_to_form(row.parenttype, row.parent), + "row_id": row.idx, + "error": error, + "title": title, + "description": description or "", + } + ) + + message = _( + "Error while evaluating the {doctype} {doclink} at row {row_id}.

    Error: {error}

    Hint: {description}" + ).format(**data) + + frappe.throw(message, title=title) + + +def verify_lwp_days_corrected(employee, start_date, end_date, lwp_days_corrected): + # Verify that the provided lwp_days_corrected matches actual payroll corrections. + PayrollCorrection = frappe.qb.DocType("Payroll Correction") + SalarySlip = frappe.qb.DocType("Salary Slip") + + actual_days_reversed = ( + frappe.qb.from_(PayrollCorrection) + .join(SalarySlip) + .on(PayrollCorrection.salary_slip_reference == SalarySlip.name) + .select(Sum(PayrollCorrection.days_to_reverse).as_("total_days")) + .where( + (PayrollCorrection.employee == employee) + & (PayrollCorrection.docstatus == 1) + & (SalarySlip.start_date == start_date) + & (SalarySlip.end_date == end_date) + ) + ).run(pluck=True) + + actual_total = actual_days_reversed[0] or 0.0 + + if lwp_days_corrected != actual_total: + frappe.throw( + _( + "LWP Days Reversed ({0}) does not match actual Payroll Corrections total ({1}) for employee {2} from {3} to {4}" + ).format(lwp_days_corrected, actual_total, employee, start_date, end_date), + title=_("Invalid LWP Days Reversed"), + ) + + return True + + +def on_doctype_update(): + frappe.db.add_index("Salary Slip", ["employee", "start_date", "end_date"]) + + +def _safe_eval(code: str, eval_globals: dict | None = None, eval_locals: dict | None = None): + """Old version of safe_eval from framework. + + Note: current frappe.safe_eval transforms code so if you have nested + iterations with too much depth then it can hit recursion limit of python. + There's no workaround for this and people need large formulas in some + countries so this is alternate implementation for that. + + WARNING: DO NOT use this function anywhere else outside of this file. + """ + code = unicodedata.normalize("NFKC", code) + + _check_attributes(code) + + whitelisted_globals = {"int": int, "float": float, "long": int, "round": round} + if not eval_globals: + eval_globals = {} + + eval_globals["__builtins__"] = {} + eval_globals.update(whitelisted_globals) + return eval(code, eval_globals, eval_locals) # nosemgrep + + +def _check_attributes(code: str) -> None: + import ast + + from frappe.utils.safe_exec import UNSAFE_ATTRIBUTES + + unsafe_attrs = set(UNSAFE_ATTRIBUTES).union(["__"]) - {"format"} + + for attribute in unsafe_attrs: + if attribute in code: + raise SyntaxError(f'Illegal rule {frappe.bold(code)}. Cannot use "{attribute}"') + + BLOCKED_NODES = (ast.NamedExpr,) + + tree = ast.parse(code, mode="eval") + for node in ast.walk(tree): + if isinstance(node, BLOCKED_NODES): + raise SyntaxError(f"Operation not allowed: line {node.lineno} column {node.col_offset}") + if isinstance(node, ast.Attribute) and isinstance(node.attr, str) and node.attr in UNSAFE_ATTRIBUTES: + raise SyntaxError(f'Illegal rule {frappe.bold(code)}. Cannot use "{node.attr}"') + + +@frappe.whitelist() +def enqueue_email_salary_slips(names) -> None: + """enqueue bulk emailing salary slips""" + import json + + if isinstance(names, str): + names = json.loads(names) + + frappe.enqueue("hrms.payroll.doctype.salary_slip.salary_slip.email_salary_slips", names=names) + frappe.msgprint( + _("Salary slip emails have been enqueued for sending. Check {0} for status.").format( + f"""Email Queue""" + ) + ) + + +def email_salary_slips(names) -> None: + for name in names: + salary_slip = frappe.get_doc("Salary Slip", name) + salary_slip.email_salary_slip() diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip_list.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip_list.js new file mode 100644 index 000000000..a839039db --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip_list.js @@ -0,0 +1,26 @@ +frappe.listview_settings["Salary Slip"] = { + onload: function (listview) { + if ( + !has_common(frappe.user_roles, [ + "Administrator", + "System Manager", + "HR Manager", + "HR User", + ]) + ) + return; + + listview.page.add_menu_item(__("Email Salary Slips"), () => { + if (!listview.get_checked_items().length) { + frappe.msgprint(__("Please select the salary slips to email")); + return; + } + + frappe.confirm(__("Are you sure you want to email the selected salary slips?"), () => { + listview.call_for_selected_items( + "hrms.payroll.doctype.salary_slip.salary_slip.enqueue_email_salary_slips", + ); + }); + }); + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py new file mode 100644 index 000000000..f70a02cd6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/salary_slip_loan_utils.py @@ -0,0 +1,174 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +from typing import TYPE_CHECKING, Any + +import frappe +from frappe import _ + +if TYPE_CHECKING: + from hrms.payroll.doctype.salary_slip.salary_slip import SalarySlip + + +def if_lending_app_installed(function): + """Decorator to check if lending app is installed""" + + def wrapper(*args, **kwargs): + if "lending" in frappe.get_installed_apps(): + return function(*args, **kwargs) + return + + return wrapper + + +@if_lending_app_installed +def set_loan_repayment(doc: "SalarySlip"): + from lending.loan_management.doctype.loan_repayment.loan_repayment import calculate_amounts + + doc.total_loan_repayment = 0 + doc.total_interest_amount = 0 + doc.total_principal_amount = 0 + + if not doc.get("loans", []): + loan_details = _get_loan_details(doc) + + for loan in loan_details: + amounts = calculate_amounts(loan.name, doc.end_date) + + if amounts["payable_amount"]: + doc.append( + "loans", + { + "loan": loan.name, + "total_payment": amounts["payable_amount"], + "interest_amount": amounts["interest_amount"], + "principal_amount": amounts["payable_principal_amount"], + "loan_account": loan.loan_account, + "interest_income_account": loan.interest_income_account, + }, + ) + if not doc.get("loans"): + doc.set("loans", []) + + for payment in doc.get("loans", []): + amounts = calculate_amounts(payment.loan, doc.end_date) + total_amount = amounts["payable_amount"] + + if payment.total_payment > total_amount: + frappe.throw( + _( + """Row {0}: Paid amount {1} is greater than pending accrued amount {2} against loan {3}""" + ).format( + payment.idx, + frappe.bold(payment.total_payment), + frappe.bold(total_amount), + frappe.bold(payment.loan), + ) + ) + + doc.total_interest_amount += payment.interest_amount + doc.total_principal_amount += payment.principal_amount + doc.total_loan_repayment += payment.total_payment + + +def _get_loan_details(doc: "SalarySlip") -> dict[str, Any]: + loan_details = frappe.get_all( + "Loan", + fields=["name", "interest_income_account", "loan_account", "loan_product", "is_term_loan"], + filters={ + "applicant": doc.employee, + "docstatus": 1, + "repay_from_salary": 1, + "company": doc.company, + "status": ("!=", "Closed"), + }, + ) + return loan_details + + +@if_lending_app_installed +def process_loan_interest_accrual_and_demand(doc: "SalarySlip"): + loans = _get_loan_details(doc) + if not loans: + return + + loan_demand_exists = frappe.db.exists("DocType", "Loan Demand") + if loan_demand_exists: + from lending.loan_management.doctype.process_loan_demand.process_loan_demand import ( + process_daily_loan_demands, + ) + from lending.loan_management.doctype.process_loan_interest_accrual.process_loan_interest_accrual import ( + process_loan_interest_accrual_for_loans, + ) + else: + from lending.loan_management.doctype.process_loan_interest_accrual.process_loan_interest_accrual import ( + process_loan_interest_accrual_for_term_loans, + ) + + for loan in loans: + if loan.get("is_term_loan"): + if loan_demand_exists: + process_loan_interest_accrual_for_loans(doc.end_date, loan.loan_product, loan.name) + process_daily_loan_demands(doc.end_date, loan.loan_product, loan.name) + else: + process_loan_interest_accrual_for_term_loans( + posting_date=doc.end_date, loan_product=loan.loan_product, loan=loan.name + ) + + +@if_lending_app_installed +def make_loan_repayment_entry(doc: "SalarySlip"): + from lending.loan_management.doctype.loan_repayment.loan_repayment import create_repayment_entry + + payroll_payable_account = get_payroll_payable_account(doc.company, doc.payroll_entry) + process_payroll_accounting_entry_based_on_employee = frappe.db.get_single_value( + "Payroll Settings", "process_payroll_accounting_entry_based_on_employee" + ) + + if not doc.get("loans"): + doc.set("loans", []) + + for loan in doc.get("loans", []): + if not loan.total_payment: + continue + + repayment_entry = create_repayment_entry( + loan.loan, + doc.employee, + doc.company, + doc.posting_date, + loan.loan_product, + "Normal Repayment", + loan.interest_amount, + loan.principal_amount, + loan.total_payment, + payroll_payable_account=payroll_payable_account, + process_payroll_accounting_entry_based_on_employee=process_payroll_accounting_entry_based_on_employee, + ) + + repayment_entry.save() + repayment_entry.submit() + + frappe.db.set_value("Salary Slip Loan", loan.name, "loan_repayment_entry", repayment_entry.name) + + +@if_lending_app_installed +def cancel_loan_repayment_entry(doc: "SalarySlip"): + if not doc.get("loans"): + doc.set("loans", []) + + for loan in doc.get("loans", []): + if loan.loan_repayment_entry: + repayment_entry = frappe.get_doc("Loan Repayment", loan.loan_repayment_entry) + repayment_entry.cancel() + + +def get_payroll_payable_account(company, payroll_entry): + if payroll_entry: + payroll_payable_account = frappe.db.get_value( + "Payroll Entry", payroll_entry, "payroll_payable_account" + ) + else: + payroll_payable_account = frappe.db.get_value("Company", company, "default_payroll_payable_account") + + return payroll_payable_account diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/test_salary_slip.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/test_salary_slip.py new file mode 100644 index 000000000..8d8b91999 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip/test_salary_slip.py @@ -0,0 +1,3050 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import calendar +import random + +import frappe +from frappe.core.doctype.user_permission.test_user_permission import create_user +from frappe.model.document import Document +from frappe.tests import IntegrationTestCase, change_settings +from frappe.utils import ( + add_days, + add_months, + cstr, + date_diff, + flt, + get_first_day, + get_last_day, + get_year_ending, + get_year_start, + getdate, + nowdate, + rounded, +) +from frappe.utils.make_random import get_random + +import erpnext +from erpnext.accounts.utils import get_fiscal_year +from erpnext.setup.doctype.employee.employee import InactiveEmployeeStatusError +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.hr.doctype.leave_allocation.test_leave_allocation import create_leave_allocation +from hrms.hr.doctype.leave_type.test_leave_type import create_leave_type +from hrms.payroll.doctype.employee_tax_exemption_declaration.test_employee_tax_exemption_declaration import ( + create_exemption_category, + create_payroll_period, +) +from hrms.payroll.doctype.payroll_entry.payroll_entry import get_month_details +from hrms.payroll.doctype.salary_slip.salary_slip import ( + HOLIDAYS_BETWEEN_DATES, + LEAVE_TYPE_MAP, + SALARY_COMPONENT_VALUES, + TAX_COMPONENTS_BY_COMPANY, + SalarySlip, + _safe_eval, + make_salary_slip_from_timesheet, +) +from hrms.payroll.doctype.salary_structure.salary_structure import make_salary_slip +from hrms.tests.test_utils import get_email_by_subject, get_first_sunday + + +class TestSalarySlip(IntegrationTestCase): + def setUp(self): + setup_test() + frappe.flags.pop("via_payroll_entry", None) + create_ss_email_template() + clear_cache() + + def tearDown(self): + frappe.db.set_single_value("Payroll Settings", "include_holidays_in_total_working_days", 0) + frappe.set_user("Administrator") + clear_cache() + + @change_settings("Payroll Settings", {"show_leave_balances_in_salary_slip": True}) + def test_leave_details(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + emp_id = make_employee("test_leave_details@salary.com") + + first_sunday = get_first_sunday() + alloc = create_leave_allocation( + employee=emp_id, + from_date=first_sunday, + to_date=add_months(first_sunday, 10), + new_leaves_allocated=10, + leave_type="_Test Leave Type", + ) + alloc.save() + alloc.submit() + + make_leave_application(emp_id, first_sunday, add_days(first_sunday, 3), "_Test Leave Type") + next_month = add_months(nowdate(), 1) + make_leave_application(emp_id, next_month, add_days(next_month, 3), "_Test Leave Type") + ss = make_employee_salary_slip(emp_id, "Monthly") + + leave_detail = ss.leave_details[0] + self.assertEqual(leave_detail.leave_type, "_Test Leave Type") + self.assertEqual(leave_detail.total_allocated_leaves, 10) + self.assertEqual(leave_detail.expired_leaves, 0) + self.assertEqual(leave_detail.used_leaves, 4) + self.assertEqual(leave_detail.available_leaves, 6) + + def test_employee_status_inactive(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + employee = make_employee("test_employee_status@company.com") + employee_doc = frappe.get_doc("Employee", employee) + employee_doc.status = "Inactive" + employee_doc.save() + employee_doc.reload() + + make_holiday_list() + frappe.db.set_value( + "Company", employee_doc.company, "default_holiday_list", "Salary Slip Test Holiday List" + ) + + frappe.db.sql("""delete from `tabSalary Structure` where name='Test Inactive Employee Salary Slip'""") + salary_structure = make_salary_structure( + "Test Inactive Employee Salary Slip", + "Monthly", + employee=employee_doc.name, + company=employee_doc.company, + ) + salary_slip = make_salary_slip(salary_structure.name, employee=employee_doc.name) + + self.assertRaises(InactiveEmployeeStatusError, salary_slip.save) + + @change_settings( + "Payroll Settings", {"payroll_based_on": "Attendance", "daily_wages_fraction_for_half_day": 0.75} + ) + def test_payment_days_based_on_attendance(self): + no_of_days = get_no_of_days() + + emp_id = make_employee("test_payment_days_based_on_attendance@salary.com") + frappe.db.set_value("Employee", emp_id, {"relieving_date": None, "status": "Active"}) + + frappe.db.set_value("Leave Type", "Leave Without Pay", "include_holiday", 0) + + first_sunday = get_first_sunday() + + mark_attendance(emp_id, first_sunday, "Absent", ignore_validate=True) # invalid lwp + mark_attendance( + emp_id, add_days(first_sunday, 1), "Absent", ignore_validate=True + ) # counted as absent + mark_attendance( + emp_id, + add_days(first_sunday, 2), + "Half Day", + leave_type="Leave Without Pay", + ignore_validate=True, + half_day_status="Present", + ) # valid 0.75 lwp + mark_attendance( + emp_id, + add_days(first_sunday, 3), + "On Leave", + leave_type="Leave Without Pay", + ignore_validate=True, + ) # valid lwp + mark_attendance( + emp_id, add_days(first_sunday, 4), "On Leave", leave_type="Casual Leave", ignore_validate=True + ) # invalid lwp + mark_attendance( + emp_id, + add_days(first_sunday, 7), + "On Leave", + leave_type="Leave Without Pay", + ignore_validate=True, + ) # invalid lwp + + ss = make_employee_salary_slip( + emp_id, + "Monthly", + "Test Payment Based On Attendence", + ) + + self.assertEqual(ss.leave_without_pay, 1.25) + self.assertEqual(ss.absent_days, 1) + + days_in_month = no_of_days[0] + no_of_holidays = no_of_days[1] + + self.assertEqual(ss.payment_days, days_in_month - no_of_holidays - 2.25) + + # Gross pay calculation based on attendances + gross_pay = 78000 - ( + (78000 / (days_in_month - no_of_holidays)) * flt(ss.leave_without_pay + ss.absent_days) + ) + + self.assertEqual(rounded(ss.gross_pay), rounded(gross_pay)) + + @change_settings( + "Payroll Settings", + { + "payroll_based_on": "Attendance", + "consider_unmarked_attendance_as": "Absent", + "daily_wages_fraction_for_half_day": 0.5, + }, + ) + def test_payment_days_considering_half_days_unmarked_as_absent(self): + no_of_days = get_no_of_days() + + emp_id = make_employee("test_payment_days_based_on_attendance1@salary.com") + + first_sunday = get_first_sunday() + mark_attendance( + emp_id, add_days(first_sunday, 1), "Present", ignore_validate=True + ) # counted as Present + mark_attendance( + emp_id, + add_days(first_sunday, 2), + "Half Day", + leave_type="Casual Leave", + ignore_validate=True, + half_day_status="Absent", + ) # count as half absent in absent days + mark_attendance( + emp_id, add_days(first_sunday, 3), "Half Day", ignore_validate=True, half_day_status="Absent" + ) # count as half absent in absent days + mark_attendance( + emp_id, add_days(first_sunday, 4), "Half Day", ignore_validate=True, half_day_status="Present" + ) # count as full present + mark_attendance( + emp_id, add_days(first_sunday, 5), "On Leave", leave_type="Casual Leave", ignore_validate=True + ) # invalid lwp, full present + mark_attendance( + emp_id, + add_days(first_sunday, 6), + "Half Day", + leave_type="Leave Without Pay", + ignore_validate=True, + half_day_status="Absent", + ) # count as 0.5 lwp and 0.5 in absent days + + ss = make_employee_salary_slip( + emp_id, + "Monthly", + "Test Payment Based On Attendence", + ) + days_in_month = no_of_days[0] + no_of_holidays = no_of_days[1] + # from half lwp + self.assertEqual(ss.leave_without_pay, 0.5) + # 1 + 0.5 + 0.5 + 1 + 1 + 0.5 + self.assertEqual(ss.absent_days, (days_in_month - no_of_holidays - 4.5)) + + self.assertEqual(ss.payment_days, 4) + + # Gross pay calculation based on attendances + gross_pay = 78000 - ( + (78000 / (days_in_month - no_of_holidays)) * flt(ss.leave_without_pay + ss.absent_days) + ) + # half day (when absent) from checkins is considered as 0.5 lwp but half day (absent) from leave application is considered as absent + self.assertEqual(rounded(ss.gross_pay), rounded(gross_pay)) + + @change_settings( + "Payroll Settings", + { + "payroll_based_on": "Attendance", + "consider_unmarked_attendance_as": "Present", + "daily_wages_fraction_for_half_day": 0.5, + }, + ) + def test_payment_days_considering_half_days_unmarked_as_present(self): + no_of_days = get_no_of_days() + + emp_id = make_employee("test_payment_days_based_on_attendance2@salary.com") + + first_sunday = get_first_sunday() + mark_attendance( + emp_id, add_days(first_sunday, 1), "Absent", ignore_validate=True + ) # counted as absent + mark_attendance( + emp_id, + add_days(first_sunday, 2), + "Half Day", + leave_type="Casual Leave", + ignore_validate=True, + half_day_status="Absent", + ) # count as full present + mark_attendance( + emp_id, add_days(first_sunday, 3), "Half Day", ignore_validate=True, half_day_status="Absent" + ) # count as full present + mark_attendance( + emp_id, add_days(first_sunday, 4), "Half Day", ignore_validate=True, half_day_status="Present" + ) # count as full present + mark_attendance( + emp_id, add_days(first_sunday, 5), "On Leave", leave_type="Casual Leave", ignore_validate=True + ) # invalid lwp, full present + mark_attendance( + emp_id, + add_days(first_sunday, 6), + "Half Day", + leave_type="Leave Without Pay", + ignore_validate=True, + half_day_status="Absent", + ) # count as 0.5 lwp and 0.5 as present + + ss = make_employee_salary_slip( + emp_id, + "Monthly", + "Test Payment Based On Attendence", + ) + days_in_month = no_of_days[0] + no_of_holidays = no_of_days[1] + # from half lwp + self.assertEqual(ss.leave_without_pay, 0.5) + + self.assertEqual(ss.absent_days, 2.5) + + # total payment days = total working days - lwp - absent days + self.assertEqual(ss.payment_days, days_in_month - no_of_holidays - 0.5 - 2.5) + + # Gross pay calculation based on attendances + gross_pay = 78000 - ( + (78000 / (days_in_month - no_of_holidays)) * flt(ss.leave_without_pay + ss.absent_days) + ) + # half day (when absent) from checkins is considered as 0.5 lwp but half day (absent) from leave application is considered as absent + self.assertEqual(rounded(ss.gross_pay), rounded(gross_pay)) + + @change_settings( + "Payroll Settings", + { + "payroll_based_on": "Attendance", + "consider_unmarked_attendance_as": "Absent", + "include_holidays_in_total_working_days": True, + }, + ) + def test_payment_days_for_mid_joinee_including_holidays(self): + no_of_days = get_no_of_days() + month_start_date, month_end_date = get_first_day(nowdate()), get_last_day(nowdate()) + + new_emp_id = make_employee("test_payment_days_based_on_joining_date@salary.com") + joining_date, relieving_date = add_days(month_start_date, 3), add_days(month_end_date, -5) + + for days in range(date_diff(month_end_date, month_start_date) + 1): + date = add_days(month_start_date, days) + mark_attendance(new_emp_id, date, "Present", ignore_validate=True) + + # Case 1: relieving in mid month + frappe.db.set_value( + "Employee", + new_emp_id, + {"date_of_joining": month_start_date, "relieving_date": relieving_date, "status": "Active"}, + ) + + new_ss = make_employee_salary_slip( + new_emp_id, + "Monthly", + "Test Payment Based On Attendence", + ) + self.assertEqual(new_ss.payment_days, no_of_days[0] - 5) + + # Case 2: joining in mid month + frappe.db.set_value( + "Employee", + new_emp_id, + {"date_of_joining": joining_date, "relieving_date": month_end_date, "status": "Active"}, + ) + + frappe.delete_doc("Salary Slip", new_ss.name, force=True) + new_ss = make_employee_salary_slip( + new_emp_id, + "Monthly", + "Test Payment Based On Attendence", + ) + self.assertEqual(new_ss.payment_days, no_of_days[0] - 3) + + # Case 3: joining and relieving in mid-month + frappe.db.set_value( + "Employee", + new_emp_id, + {"date_of_joining": joining_date, "relieving_date": relieving_date, "status": "Left"}, + ) + + frappe.delete_doc("Salary Slip", new_ss.name, force=True) + new_ss = make_employee_salary_slip( + new_emp_id, + "Monthly", + "Test Payment Based On Attendence", + ) + + self.assertEqual(new_ss.total_working_days, no_of_days[0]) + self.assertEqual(new_ss.payment_days, no_of_days[0] - 8) + + @change_settings( + "Payroll Settings", + { + "payroll_based_on": "Attendance", + "consider_unmarked_attendance_as": "Absent", + "include_holidays_in_total_working_days": True, + }, + ) + def test_payment_days_for_mid_joinee_including_holidays_and_unmarked_days(self): + # tests mid month joining and relieving along with unmarked days + from erpnext.setup.doctype.holiday_list.holiday_list import is_holiday + + no_of_days = get_no_of_days() + month_start_date, month_end_date = get_first_day(nowdate()), get_last_day(nowdate()) + + new_emp_id = make_employee("test_payment_days_based_on_joining_date@salary.com") + joining_date, relieving_date = add_days(month_start_date, 3), add_days(month_end_date, -5) + + for days in range(date_diff(relieving_date, joining_date) + 1): + date = add_days(joining_date, days) + if not is_holiday("Salary Slip Test Holiday List", date): + mark_attendance(new_emp_id, date, "Present", ignore_validate=True) + + frappe.db.set_value( + "Employee", + new_emp_id, + {"date_of_joining": joining_date, "relieving_date": relieving_date, "status": "Left"}, + ) + + new_ss = make_employee_salary_slip( + new_emp_id, + "Monthly", + "Test Payment Based On Attendence", + ) + + self.assertEqual(new_ss.total_working_days, no_of_days[0]) + self.assertEqual(new_ss.payment_days, no_of_days[0] - 8) + + @change_settings( + "Payroll Settings", + { + "payroll_based_on": "Attendance", + "consider_unmarked_attendance_as": "Absent", + "include_holidays_in_total_working_days": False, + }, + ) + def test_payment_days_for_mid_joinee_excluding_holidays(self): + from erpnext.setup.doctype.holiday_list.holiday_list import is_holiday + + no_of_days = get_no_of_days() + month_start_date, month_end_date = get_first_day(nowdate()), get_last_day(nowdate()) + + new_emp_id = make_employee("test_payment_days_based_on_joining_date@salary.com") + joining_date, relieving_date = add_days(month_start_date, 3), add_days(month_end_date, -5) + frappe.db.set_value( + "Employee", + new_emp_id, + {"date_of_joining": joining_date, "relieving_date": relieving_date, "status": "Left"}, + ) + + holidays = 0 + + for days in range(date_diff(relieving_date, joining_date) + 1): + date = add_days(joining_date, days) + if not is_holiday("Salary Slip Test Holiday List", date): + mark_attendance(new_emp_id, date, "Present", ignore_validate=True) + else: + holidays += 1 + + new_ss = make_employee_salary_slip( + new_emp_id, + "Monthly", + "Test Payment Based On Attendence", + ) + + self.assertEqual(new_ss.total_working_days, no_of_days[0] - no_of_days[1]) + self.assertEqual(new_ss.payment_days, no_of_days[0] - holidays - 8) + + @change_settings("Payroll Settings", {"payroll_based_on": "Leave"}) + def test_payment_days_based_on_leave_application(self): + no_of_days = get_no_of_days() + + emp_id = make_employee("test_payment_days_based_on_leave_application@salary.com") + frappe.db.set_value("Employee", emp_id, {"relieving_date": None, "status": "Active"}) + + frappe.db.set_value("Leave Type", "Leave Without Pay", "include_holiday", 0) + + first_sunday = get_first_sunday() + + # 3 days LWP + make_leave_application(emp_id, first_sunday, add_days(first_sunday, 3), "Leave Without Pay") + + create_leave_type(leave_type_name="Test Partially Paid Leave", is_ppl=1) + + alloc = create_leave_allocation( + employee=emp_id, + from_date=add_days(first_sunday, 4), + to_date=add_days(first_sunday, 10), + new_leaves_allocated=3, + leave_type="Test Partially Paid Leave", + ) + alloc.save() + alloc.submit() + + # 1.5 day leave ppl with fraction_of_daily_salary_per_leave = 0.5 equivalent to single day lwp = 0.75 + make_leave_application( + emp_id, + add_days(first_sunday, 4), + add_days(first_sunday, 5), + "Test Partially Paid Leave", + half_day=True, + half_day_date=add_days(first_sunday, 4), + ) + + ss = make_employee_salary_slip( + emp_id, + "Monthly", + "Test Payment Based On Leave Application", + ) + + self.assertEqual(ss.leave_without_pay, 3.75) + + days_in_month = no_of_days[0] + no_of_holidays = no_of_days[1] + + self.assertEqual(ss.payment_days, days_in_month - no_of_holidays - 3.75) + + @change_settings("Payroll Settings", {"payroll_based_on": "Leave"}) + def test_payment_days_calculation_for_lwp_on_month_boundaries(self): + from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import ( + create_holiday_list_assignment, + ) + + """Tests LWP calculation leave applications created on month boundaries""" + holiday_list = make_holiday_list( + "Test Holiday List", + "2024-01-01", + "2024-12-31", + ) + emp_id = make_employee( + "test_payment_days_based_on_leave_application@salary.com", holiday_list=holiday_list + ) + create_holiday_list_assignment("Employee", emp_id, holiday_list) + make_leave_application(emp_id, "2024-06-28", "2024-07-03", "Leave Without Pay") # 3 days in July + make_leave_application(emp_id, "2024-07-10", "2024-07-13", "Leave Without Pay") # 4 days in July + make_leave_application(emp_id, "2024-07-28", "2024-08-05", "Leave Without Pay") # 3 days in July + + ss = make_employee_salary_slip( + emp_id, "Monthly", "Test Payment Based On Leave Application", "2024-07-01" + ) + + self.assertEqual(ss.leave_without_pay, 10) + self.assertEqual(ss.payment_days, 17) + + @change_settings("Payroll Settings", {"payroll_based_on": "Attendance"}) + def test_payment_days_in_salary_slip_based_on_timesheet(self): + from erpnext.projects.doctype.timesheet.test_timesheet import make_timesheet + + emp = make_employee( + "test_employee_timesheet@salary.com", + company="_Test Company", + holiday_list="Salary Slip Test Holiday List", + ) + frappe.db.set_value("Employee", emp, {"relieving_date": None, "status": "Active"}) + + # mark attendance + first_sunday = get_first_sunday() + + mark_attendance(emp, add_days(first_sunday, 1), "Absent", ignore_validate=True) # counted as absent + + # salary structure based on timesheet + make_salary_structure_for_timesheet(emp) + timesheet = make_timesheet(emp, simulate=True, is_billable=1) + salary_slip = make_salary_slip_from_timesheet(timesheet.name) + salary_slip.start_date = get_first_day(nowdate()) + salary_slip.end_date = get_last_day(nowdate()) + salary_slip.save() + salary_slip.submit() + salary_slip.reload() + + no_of_days = get_no_of_days() + days_in_month = no_of_days[0] + no_of_holidays = no_of_days[1] + + self.assertEqual(salary_slip.payment_days, days_in_month - no_of_holidays - 1) + + # component calculation based on attendance (payment days) + amount, precision = None, None + + for row in salary_slip.earnings: + if row.salary_component == "Basic Salary": + amount = row.amount + precision = row.precision("amount") + break + expected_amount = flt((50000 * salary_slip.payment_days / salary_slip.total_working_days), precision) + + self.assertEqual(amount, expected_amount) + + @change_settings("Payroll Settings", {"payroll_based_on": "Attendance"}) + def test_component_amount_dependent_on_another_payment_days_based_component(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import ( + create_salary_structure_assignment, + ) + + salary_structure = make_salary_structure_for_payment_days_based_component_dependency() + employee = make_employee("test_payment_days_based_component@salary.com", company="_Test Company") + + # base = 50000 + create_salary_structure_assignment( + employee, salary_structure.name, company="_Test Company", currency="INR" + ) + + # mark employee absent for a day since this case works fine if payment days are equal to working days + first_sunday = get_first_sunday() + + mark_attendance( + employee, add_days(first_sunday, 1), "Absent", ignore_validate=True + ) # counted as absent + + # make salary slip and assert payment days + ss = make_salary_slip_for_payment_days_dependency_test( + "test_payment_days_based_component@salary.com", salary_structure.name + ) + self.assertEqual(ss.absent_days, 1) + + ss.reload() + payment_days_based_comp_amount = 0 + for component in ss.earnings: + if component.salary_component == "HRA - Payment Days": + payment_days_based_comp_amount = flt(component.amount, component.precision("amount")) + break + + # check if the dependent component is calculated using the amount updated after payment days + actual_amount = 0 + precision = 0 + for component in ss.deductions: + if component.salary_component == "P - Employee Provident Fund": + precision = component.precision("amount") + actual_amount = flt(component.amount, precision) + break + + expected_amount = flt((flt(ss.gross_pay) - payment_days_based_comp_amount) * 0.12, precision) + + self.assertEqual(actual_amount, expected_amount) + + @change_settings("Payroll Settings", {"include_holidays_in_total_working_days": 1}) + def test_salary_slip_with_holidays_included(self): + no_of_days = get_no_of_days() + emp_id = make_employee( + "test_salary_slip_with_holidays_included@salary.com", + relieving_date=None, + status="Active", + ) + + ss = make_employee_salary_slip( + emp_id, + "Monthly", + "Test Salary Slip With Holidays Included", + ) + + self.assertEqual(ss.total_working_days, no_of_days[0]) + self.assertEqual(ss.payment_days, no_of_days[0]) + self.assertEqual(ss.earnings[0].amount, 50000) + self.assertEqual(ss.earnings[1].amount, 3000) + self.assertEqual(ss.gross_pay, 78000) + + @change_settings("Payroll Settings", {"include_holidays_in_total_working_days": 0}) + def test_salary_slip_with_holidays_excluded(self): + no_of_days = get_no_of_days() + emp_id = make_employee( + "test_salary_slip_with_holidays_excluded@salary.com", + relieving_date=None, + status="Active", + ) + + ss = make_employee_salary_slip( + emp_id, + "Monthly", + "Test Salary Slip With Holidays Excluded", + ) + + self.assertEqual(ss.total_working_days, no_of_days[0] - no_of_days[1]) + self.assertEqual(ss.payment_days, no_of_days[0] - no_of_days[1]) + self.assertEqual(ss.earnings[0].amount, 50000) + self.assertEqual(ss.earnings[0].default_amount, 50000) + self.assertEqual(ss.earnings[1].amount, 3000) + self.assertEqual(ss.gross_pay, 78000) + + @change_settings( + "Payroll Settings", + { + "payroll_based_on": "Attendance", + "consider_unmarked_attendance_as": "Present", + "include_holidays_in_total_working_days": 1, + "consider_marked_attendance_on_holidays": 1, + }, + ) + def test_consider_marked_attendance_on_holidays(self): + no_of_days = get_no_of_days() + emp_id = make_employee( + "test_salary_slip_with_holidays_included@salary.com", + relieving_date=None, + status="Active", + ) + + # mark absent on holiday + first_sunday = get_first_sunday(for_date=getdate()) + mark_attendance(emp_id, first_sunday, "Absent", ignore_validate=True) + + ss = make_employee_salary_slip( + emp_id, + "Monthly", + "Test Salary Slip With Holidays Included", + ) + + self.assertEqual(ss.total_working_days, no_of_days[0]) + # deduct 1 day for absent on holiday + self.assertEqual(ss.payment_days, no_of_days[0] - 1) + + # disable consider marked attendance on holidays + frappe.db.set_single_value("Payroll Settings", "consider_marked_attendance_on_holidays", 0) + ss.save() + self.assertEqual(ss.total_working_days, no_of_days[0]) + + @change_settings( + "Payroll Settings", + { + "payroll_based_on": "Attendance", + "consider_unmarked_attendance_as": "Absent", + "include_holidays_in_total_working_days": 1, + "consider_marked_attendance_on_holidays": 1, + }, + ) + def test_consider_marked_attendance_on_holidays_with_unmarked_attendance(self): + from erpnext.setup.doctype.holiday_list.holiday_list import is_holiday + + no_of_days = get_no_of_days() + month_start_date, month_end_date = get_first_day(nowdate()), get_last_day(nowdate()) + joining_date = add_days(month_start_date, 3) + + emp_id = make_employee( + "test_salary_slip_with_holidays_included1@salary.com", + status="Active", + date_of_joining=joining_date, + relieving_date=None, + ) + + for days in range(date_diff(month_end_date, joining_date) + 1): + date = add_days(joining_date, days) + if not is_holiday("Salary Slip Test Holiday List", date): + mark_attendance(emp_id, date, "Present", ignore_validate=True) + + # mark absent on holiday + first_sunday = get_first_sunday(for_date=joining_date, find_after_for_date=True) + mark_attendance(emp_id, first_sunday, "Absent", ignore_validate=True) + + # unmarked attendance for a day + frappe.db.delete("Attendance", {"employee": emp_id, "attendance_date": add_days(first_sunday, 1)}) + + ss = make_employee_salary_slip( + emp_id, + "Monthly", + "Test Salary Slip With Holidays Included", + ) + + self.assertEqual(ss.total_working_days, no_of_days[0]) + # no_of_days - absent on holiday - period before DOJ - 1 unmarked attendance + self.assertEqual(ss.payment_days, no_of_days[0] - 1 - 3 - 1) + + # disable consider marked attendance on holidays + frappe.db.set_single_value("Payroll Settings", "consider_marked_attendance_on_holidays", 0) + ss.save() + self.assertEqual(ss.total_working_days, no_of_days[0]) + # no_of_days - period before DOJ + self.assertEqual(ss.payment_days, no_of_days[0] - 3 - 1) + + @change_settings( + "Payroll Settings", + { + "payroll_based_on": "Attendance", + "consider_unmarked_attendance_as": "Present", + "include_holidays_in_total_working_days": 1, + "consider_marked_attendance_on_holidays": 0, + }, + ) + def test_consider_marked_attendance_on_holidays_with_half_day_on_holiday(self): + from erpnext.setup.doctype.holiday_list.holiday_list import is_holiday + + no_of_days = get_no_of_days() + month_start_date, month_end_date = get_first_day(nowdate()), get_last_day(nowdate()) + joining_date = add_days(month_start_date, 3) + + emp_id = make_employee( + "test_salary_slip_with_holidays_included1@salary.com", + status="Active", + date_of_joining=joining_date, + relieving_date=None, + ) + + for days in range(date_diff(month_end_date, joining_date) + 1): + date = add_days(joining_date, days) + if not is_holiday("Salary Slip Test Holiday List", date): + mark_attendance(emp_id, date, "Present", ignore_validate=True) + + # mark half day on holiday + first_sunday = get_first_sunday(for_date=joining_date, find_after_for_date=True) + mark_attendance( + emp_id, + first_sunday, + "Half Day", + half_day_status="Absent", + ignore_validate=True, + ) + + ss = make_employee_salary_slip( + emp_id, + "Monthly", + "Test Salary Slip With Holidays Included", + ) + + self.assertEqual(ss.total_working_days, no_of_days[0]) + # no_of_days - period before DOJ + self.assertEqual(ss.payment_days, no_of_days[0] - 3) + + # enable consider marked attendance on holidays + frappe.db.set_single_value("Payroll Settings", "consider_marked_attendance_on_holidays", 1) + ss.save() + self.assertEqual(ss.total_working_days, no_of_days[0]) + # no_of_days - period before DOJ - 0.5 LWP on holiday (half day present) + self.assertEqual(ss.payment_days, no_of_days[0] - 3 - 0.5) + + @change_settings("Payroll Settings", {"include_holidays_in_total_working_days": 1}) + def test_payment_days(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import ( + create_salary_structure_assignment, + ) + + no_of_days = get_no_of_days() + + # set joinng date in the same month + emp_id = make_employee("test_payment_days@salary.com") + if getdate(nowdate()).day >= 15: + relieving_date = getdate(add_days(nowdate(), -10)) + date_of_joining = getdate(add_days(nowdate(), -10)) + elif getdate(nowdate()).day < 15 and getdate(nowdate()).day >= 5: + date_of_joining = getdate(add_days(nowdate(), -3)) + relieving_date = getdate(add_days(nowdate(), -3)) + elif getdate(nowdate()).day < 5 and not getdate(nowdate()).day == 1: + date_of_joining = getdate(add_days(nowdate(), -1)) + relieving_date = getdate(add_days(nowdate(), -1)) + elif getdate(nowdate()).day == 1: + date_of_joining = getdate(nowdate()) + relieving_date = getdate(nowdate()) + + frappe.db.set_value( + "Employee", + emp_id, + {"date_of_joining": date_of_joining, "relieving_date": None, "status": "Active"}, + ) + + salary_structure = "Test Payment Days" + ss = make_employee_salary_slip(emp_id, "Monthly", salary_structure) + + self.assertEqual(ss.total_working_days, no_of_days[0]) + self.assertEqual(ss.payment_days, (no_of_days[0] - getdate(date_of_joining).day + 1)) + + # set relieving date in the same month + frappe.db.set_value( + "Employee", + emp_id, + { + "date_of_joining": add_days(nowdate(), -60), + "relieving_date": relieving_date, + "status": "Left", + }, + ) + + if date_of_joining.day > 1: + self.assertRaises(frappe.ValidationError, ss.save) + + create_salary_structure_assignment(emp_id, salary_structure) + ss.reload() + ss.save() + + self.assertEqual(ss.total_working_days, no_of_days[0]) + self.assertEqual(ss.payment_days, getdate(relieving_date).day) + + frappe.db.set_value( + "Employee", + emp_id, + { + "relieving_date": None, + "status": "Active", + }, + ) + + def test_employee_salary_slip_read_permission(self): + emp_id = make_employee("test_employee_salary_slip_read_permission@salary.com") + + salary_slip_test_employee = make_employee_salary_slip( + emp_id, + "Monthly", + "Test Employee Salary Slip Read Permission", + ) + frappe.set_user("test_employee_salary_slip_read_permission@salary.com") + self.assertTrue(salary_slip_test_employee.has_permission("read")) + + @change_settings("Payroll Settings", {"email_salary_slip_to_employee": 1}) + def test_email_salary_slip(self): + frappe.db.delete("Email Queue") + + emp_id = make_employee("test_email_salary_slip@salary.com", company="_Test Company") + ss = make_employee_salary_slip(emp_id, "Monthly", "Test Salary Slip Email") + ss.company = "_Test Company" + ss.save() + ss.submit() + + self.assertIsNotNone(get_email_by_subject("Salary Slip - from")) + + @change_settings( + "Payroll Settings", {"email_salary_slip_to_employee": 1, "email_template": "Salary Slip"} + ) + def test_email_salary_slip_with_email_template(self): + frappe.db.delete("Email Queue") + + emp_id = make_employee("test_email_salary_slip@salary.com", company="_Test Company") + ss = make_employee_salary_slip(emp_id, "Monthly", "Test Salary Slip Email") + ss.company = "_Test Company" + ss.save() + ss.submit() + + self.assertIsNotNone(get_email_by_subject("Test Salary Slip Email Template")) + + def test_payroll_frequency(self): + fiscal_year = get_fiscal_year(nowdate(), company=erpnext.get_default_company())[0] + month = "%02d" % getdate(nowdate()).month + m = get_month_details(fiscal_year, month) + + for payroll_frequency in ["Monthly", "Bimonthly", "Fortnightly", "Weekly", "Daily"]: + emp_id = make_employee(payroll_frequency + "_test_employee@salary.com") + ss = make_employee_salary_slip( + emp_id, + payroll_frequency, + payroll_frequency + "_Test Payroll Frequency", + ) + if payroll_frequency == "Monthly": + self.assertEqual(ss.end_date, m["month_end_date"]) + elif payroll_frequency == "Bimonthly": + if getdate(ss.start_date).day <= 15: + self.assertEqual(ss.end_date, m["month_mid_end_date"]) + else: + self.assertEqual(ss.end_date, m["month_end_date"]) + elif payroll_frequency == "Fortnightly": + self.assertEqual(ss.end_date, add_days(nowdate(), 13)) + elif payroll_frequency == "Weekly": + self.assertEqual(ss.end_date, add_days(nowdate(), 6)) + elif payroll_frequency == "Daily": + self.assertEqual(ss.end_date, nowdate()) + + def test_multi_currency_salary_slip(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + applicant = make_employee("test_multi_currency_salary_slip@salary.com", company="_Test Company") + frappe.db.sql("""delete from `tabSalary Structure` where name='Test Multi Currency Salary Slip'""") + salary_structure = make_salary_structure( + "Test Multi Currency Salary Slip", + "Monthly", + employee=applicant, + company="_Test Company", + currency="USD", + ) + salary_slip = make_salary_slip(salary_structure.name, employee=applicant) + salary_slip.exchange_rate = 70 + salary_slip.calculate_net_pay() + + self.assertEqual(salary_slip.gross_pay, 78000) + self.assertEqual(salary_slip.base_gross_pay, 78000 * 70) + + def test_year_to_date_computation(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + applicant = make_employee("test_ytd@salary.com", company="_Test Company") + + payroll_period = create_payroll_period(name="_Test Payroll Period", company="_Test Company") + + create_tax_slab( + payroll_period, + allow_tax_exemption=True, + currency="INR", + effective_date=getdate("2019-04-01"), + company="_Test Company", + ) + + salary_structure = make_salary_structure( + "Monthly Salary Structure Test for Salary Slip YTD", + "Monthly", + employee=applicant, + company="_Test Company", + currency="INR", + payroll_period=payroll_period, + ) + + # clear salary slip for this employee + frappe.db.sql("DELETE FROM `tabSalary Slip` where employee_name = 'test_ytd@salary.com'") + + create_salary_slips_for_payroll_period( + applicant, salary_structure.name, payroll_period, deduct_random=False, num=6 + ) + + salary_slips = frappe.get_all( + "Salary Slip", + fields=["year_to_date", "net_pay"], + filters={"employee_name": "test_ytd@salary.com"}, + order_by="posting_date", + ) + + year_to_date = 0 + for slip in salary_slips: + year_to_date += flt(slip.net_pay) + self.assertEqual(slip.year_to_date, year_to_date) + + def test_component_wise_year_to_date_computation(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + employee_name = "test_component_wise_ytd@salary.com" + applicant = make_employee(employee_name, company="_Test Company") + + payroll_period = create_payroll_period(name="_Test Payroll Period", company="_Test Company") + + create_tax_slab( + payroll_period, + allow_tax_exemption=True, + currency="INR", + effective_date=getdate("2019-04-01"), + company="_Test Company", + ) + + salary_structure = make_salary_structure( + "Monthly Salary Structure Test for Salary Slip YTD", + "Monthly", + employee=applicant, + company="_Test Company", + currency="INR", + payroll_period=payroll_period, + ) + + # clear salary slip for this employee + frappe.db.sql("DELETE FROM `tabSalary Slip` where employee_name = '%s'" % employee_name) + + create_salary_slips_for_payroll_period( + applicant, salary_structure.name, payroll_period, deduct_random=False, num=3 + ) + + salary_slips = frappe.get_all( + "Salary Slip", + fields=["name"], + filters={"employee_name": employee_name}, + order_by="posting_date", + ) + + year_to_date = dict() + for slip in salary_slips: + doc = frappe.get_doc("Salary Slip", slip.name) + for entry in doc.get("earnings"): + if not year_to_date.get(entry.salary_component): + year_to_date[entry.salary_component] = 0 + + year_to_date[entry.salary_component] += entry.amount + self.assertEqual(year_to_date[entry.salary_component], entry.year_to_date) + + def test_tax_for_payroll_period(self): + data = {} + # test the impact of tax exemption declaration, tax exemption proof submission + # and deduct check boxes in annual tax calculation + # as per assigned salary structure 40500 in monthly salary so 236000*5/100/12 + frappe.db.sql("""delete from `tabPayroll Period`""") + frappe.db.sql("""delete from `tabSalary Component`""") + + payroll_period = create_payroll_period() + + create_tax_slab(payroll_period, allow_tax_exemption=True) + + employee = make_employee("test_tax@salary.slip") + delete_docs = [ + "Salary Slip", + "Additional Salary", + "Employee Tax Exemption Declaration", + "Employee Tax Exemption Proof Submission", + "Employee Benefit Claim", + "Salary Structure Assignment", + ] + for doc in delete_docs: + frappe.db.sql(f"DELETE FROM `tab{doc}` WHERE employee='{employee}'") + + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + salary_structure = make_salary_structure( + "Structure to test tax", + "Monthly", + other_details={"max_benefits": 100000}, + test_tax=True, + employee=employee, + payroll_period=payroll_period, + ) + + # create salary slip for whole period deducting tax only on last period + # to find the total tax amount paid + create_salary_slips_for_payroll_period( + employee, salary_structure.name, payroll_period, deduct_random=False + ) + tax_paid = get_tax_paid_in_period(employee) + + annual_tax = 92789.0 + try: + self.assertEqual(tax_paid, annual_tax) + except AssertionError: + print("\nSalary Slip - Annual tax calculation failed\n") + raise + frappe.db.sql("""delete from `tabSalary Slip` where employee=%s""", (employee)) + + # create exemption declaration so the tax amount varies + create_exemption_declaration(employee, payroll_period.name) + + # create for payroll deducting in random months + data["deducted_dates"] = create_salary_slips_for_payroll_period( + employee, salary_structure.name, payroll_period + ) + tax_paid = get_tax_paid_in_period(employee) + + # No proof, total tax paid, should not change + try: + self.assertEqual(tax_paid, annual_tax) + except AssertionError: + print("\nSalary Slip - Tax calculation failed on following case\n", data, "\n") + raise + + # Submit proof for total 120000 + data["proof"] = create_proof_submission(employee, payroll_period, 120000) + + frappe.db.sql("""delete from `tabSalary Slip` where employee=%s""", (employee)) + data["deducted_dates"] = create_salary_slips_for_payroll_period( + employee, salary_structure.name, payroll_period + ) + tax_paid = get_tax_paid_in_period(employee) + + # total taxable income 416000, 166000 @ 5% ie. 8300 + try: + self.assertEqual(tax_paid, 71989.0) + except AssertionError: + print("\nSalary Slip - Tax calculation failed on following case\n", data, "\n") + raise + + # create additional salary of 150000 + frappe.db.sql("""delete from `tabSalary Slip` where employee=%s""", (employee)) + data["additional-1"] = create_additional_salary(employee, payroll_period, 150000) + data["deducted_dates"] = create_salary_slips_for_payroll_period( + employee, salary_structure.name, payroll_period + ) + + annual_tax = 103189.0 + # total taxable income 566000, 250000 @ 5%, 66000 @ 20%, 12500 + 13200 + tax_paid = get_tax_paid_in_period(employee) + try: + self.assertEqual(tax_paid, annual_tax) + except AssertionError: + print("\nSalary Slip - Tax calculation failed on following case\n", data, "\n") + raise + frappe.db.sql("""delete from `tabAdditional Salary` where employee=%s""", (employee)) + + # undelete fixture data + frappe.db.rollback() + + @change_settings( + "Payroll Settings", + { + "payroll_based_on": "Attendance", + "consider_unmarked_attendance_as": "Present", + "include_holidays_in_total_working_days": True, + }, + ) + def test_default_amount(self): + # Special Allowance (SA) uses another component Basic (BS) in it's formula : BD * .5 + # Basic has "Depends on Payment Days" enabled + # Test default amount for SA is based on default amount for BS (irrespective of PD) + # Test amount for SA is based on amount for BS (based on PD) + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + month_start_date = get_first_day(nowdate()) + joining_date = add_days(month_start_date, 3) + employee = make_employee("test_tax_for_mid_joinee@salary.com", date_of_joining=joining_date) + + salary_structure = make_salary_structure( + "Structure to test tax", + "Monthly", + test_tax=True, + from_date=joining_date, + employee=employee, + ) + + ss = make_salary_slip(salary_structure.name, employee=employee) + + # default amount for SA (special allowance = BS*0.5) should be based on default amount for basic + self.assertEqual(ss.earnings[2].default_amount, 25000) + self.assertEqual( + ss.earnings[2].amount, flt(ss.earnings[0].amount * 0.5, ss.earnings[0].precision("amount")) + ) + + def test_tax_for_recurring_additional_salary(self): + frappe.db.sql("""delete from `tabPayroll Period`""") + frappe.db.sql("""delete from `tabSalary Component`""") + + payroll_period = create_payroll_period() + + create_tax_slab(payroll_period, allow_tax_exemption=True) + + employee = make_employee("test_tax@salary.slip") + delete_docs = [ + "Salary Slip", + "Additional Salary", + "Employee Tax Exemption Declaration", + "Employee Tax Exemption Proof Submission", + "Employee Benefit Claim", + "Salary Structure Assignment", + ] + for doc in delete_docs: + frappe.db.sql(f"DELETE FROM `tab{doc}` WHERE employee='{employee}'") + + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + salary_structure = make_salary_structure( + "Structure to test tax", + "Monthly", + other_details={"max_benefits": 100000}, + test_tax=True, + employee=employee, + payroll_period=payroll_period, + ) + + create_salary_slips_for_payroll_period( + employee, salary_structure.name, payroll_period, deduct_random=False, num=3 + ) + + tax_paid = get_tax_paid_in_period(employee) + + annual_tax = 23196.0 + self.assertEqual(tax_paid, annual_tax) + + frappe.db.sql("""delete from `tabSalary Slip` where employee=%s""", (employee)) + + # ------------------------------------ + # Recurring additional salary + start_date = add_months(payroll_period.start_date, 3) + end_date = add_months(payroll_period.start_date, 5) + create_recurring_additional_salary(employee, "Performance Bonus", 20000, start_date, end_date) + + frappe.db.sql("""delete from `tabSalary Slip` where employee=%s""", (employee)) + + create_salary_slips_for_payroll_period( + employee, salary_structure.name, payroll_period, deduct_random=False, num=4 + ) + + tax_paid = get_tax_paid_in_period(employee) + + annual_tax = 32315.0 + self.assertEqual(tax_paid, annual_tax) + + frappe.db.rollback() + + def test_salary_slip_from_timesheet(self): + from erpnext.projects.doctype.timesheet.test_timesheet import make_timesheet + + emp = make_employee("test_employee_6@salary.com", company="_Test Company") + make_salary_structure_for_timesheet(emp) + timesheet = make_timesheet(emp, simulate=True, is_billable=1) + salary_slip = make_salary_slip_from_timesheet(timesheet.name) + salary_slip.submit() + + self.assertEqual(salary_slip.total_working_hours, 2) + self.assertEqual(salary_slip.hour_rate, 50) + self.assertEqual(salary_slip.earnings[0].salary_component, "Timesheet Component") + self.assertEqual(salary_slip.earnings[0].amount, 100) + self.assertEqual(salary_slip.timesheets[0].time_sheet, timesheet.name) + self.assertEqual(salary_slip.timesheets[0].working_hours, 2) + + timesheet = frappe.get_doc("Timesheet", timesheet.name) + self.assertEqual(timesheet.status, "Payslip") + salary_slip.cancel() + + timesheet = frappe.get_doc("Timesheet", timesheet.name) + self.assertEqual(timesheet.status, "Submitted") + + def test_do_not_show_statistical_component_in_slip(self): + emp_id = make_employee("test_statistical_component@salary.com") + new_ss = make_employee_salary_slip( + emp_id, + "Monthly", + "Test Payment Based On Attendence", + ) + components = [row.salary_component for row in new_ss.get("earnings")] + self.assertNotIn("Statistical Component", components) + + @change_settings( + "Payroll Settings", + {"payroll_based_on": "Attendance", "consider_unmarked_attendance_as": "Present"}, + ) + def test_statistical_component_based_on_payment_days(self): + """ + Tests whether component using statistical component in the formula + gets the updated value based on payment days + """ + from hrms.payroll.doctype.salary_structure.test_salary_structure import ( + create_salary_structure_assignment, + ) + + emp = make_employee("test_statistical_component@salary.com") + first_sunday = get_first_sunday() + mark_attendance(emp, add_days(first_sunday, 1), "Absent", ignore_validate=True) + salary_structure = make_salary_structure_for_payment_days_based_component_dependency( + test_statistical_comp=True + ) + create_salary_structure_assignment( + emp, salary_structure.name, company="_Test Company", currency="INR" + ) + # make salary slip and assert payment days + ss = make_salary_slip_for_payment_days_dependency_test( + "test_statistical_component@salary.com", salary_structure.name + ) + + amount = precision = None + for entry in ss.earnings: + if entry.salary_component == "Dependency Component": + amount = entry.amount + precision = entry.precision("amount") + break + + self.assertEqual( + amount, flt(flt((1000 * ss.payment_days / ss.total_working_days), precision) * 0.5, precision) + ) + + def make_activity_for_employee(self): + activity_type = frappe.get_doc("Activity Type", "_Test Activity Type") + activity_type.billing_rate = 50 + activity_type.costing_rate = 20 + activity_type.wage_rate = 25 + activity_type.save() + + def test_salary_slip_generation_against_opening_entries_in_ssa(self): + import math + + from hrms.payroll.doctype.payroll_period.payroll_period import get_period_factor + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + frappe.db.sql("DELETE FROM `tabPayroll Period` where company = '_Test Company'") + frappe.db.sql("DELETE FROM `tabIncome Tax Slab` where currency = 'INR'") + + payroll_period = create_payroll_period( + name="_Test Payroll Period for Tax", + company="_Test Company", + start_date="2023-04-01", + end_date="2024-03-31", + ) + + emp = make_employee( + "test_employee_ss_with_opening_balance@salary.com", + company="_Test Company", + **{"date_of_joining": "2021-12-01"}, + ) + employee_doc = frappe.get_doc("Employee", emp) + + tax_slab = create_tax_slab(payroll_period, effective_date="2022-04-01", allow_tax_exemption=True) + + effective_date = frappe.db.get_value("Income Tax Slab", tax_slab, "effective_from") + + if effective_date != "2022-04-01": + frappe.db.set_value("Income Tax Slab", tax_slab, "effective_from", "2022-04-01") + + salary_structure_name = "Test Salary Structure for Opening Balance" + if not frappe.db.exists("Salary Structure", salary_structure_name): + salary_structure_doc = make_salary_structure( + salary_structure_name, + "Monthly", + company="_Test Company", + employee=emp, + from_date="2023-04-01", + payroll_period=payroll_period, + test_tax=True, + currency="INR", + ) + + # validate no salary slip exists for the employee + self.assertTrue( + frappe.db.count( + "Salary Slip", + { + "employee": emp, + "salary_structure": salary_structure_doc.name, + "docstatus": 1, + "start_date": [">=", "2023-04-01"], + }, + ) + == 0 + ) + + remaining_sub_periods = get_period_factor( + emp, + get_first_day("2023-10-01"), + get_last_day("2023-10-01"), + "Monthly", + payroll_period, + depends_on_payment_days=0, + )[1] + + prev_period = math.ceil(remaining_sub_periods) + + monthly_tax_amount = 7774.0 + monthly_earnings = 77800 + + # Get Salary Structure Assignment + ssa = frappe.get_value( + "Salary Structure Assignment", + {"employee": emp, "salary_structure": salary_structure_doc.name}, + "name", + ) + ssa_doc = frappe.get_doc("Salary Structure Assignment", ssa) + + # Set opening balance for earning and tax deduction in Salary Structure Assignment + ssa_doc.taxable_earnings_till_date = monthly_earnings * prev_period + ssa_doc.tax_deducted_till_date = monthly_tax_amount * prev_period + ssa_doc.save() + + # Create Salary Slip + salary_slip = make_salary_slip( + salary_structure_doc.name, employee=employee_doc.name, posting_date=getdate("2023-10-01") + ) + for deduction in salary_slip.deductions: + if deduction.salary_component == "TDS": + self.assertEqual(deduction.amount, 7691.0) + + frappe.db.sql("DELETE FROM `tabPayroll Period` where company = '_Test Company'") + frappe.db.sql("DELETE FROM `tabIncome Tax Slab` where currency = 'INR'") + + def test_income_tax_breakup_fields(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + frappe.db.delete("Income Tax Slab", {"currency": "INR"}) + emp = make_employee( + "test_employee_ss_income_tax_breakup@salary.com", + company="_Test Company", + date_of_joining="2021-01-01", + ) + + payroll_period = frappe.get_last_doc("Payroll Period", filters={"company": "_Test Company"}) + create_tax_slab(payroll_period, effective_date=payroll_period.start_date, allow_tax_exemption=True) + + salary_structure_name = "Test Salary Structure to test Income Tax Breakup" + if not frappe.db.exists("Salary Structure", salary_structure_name): + salary_structure_doc = make_salary_structure( + salary_structure_name, + "Monthly", + company="_Test Company", + employee=emp, + from_date=payroll_period.start_date, + payroll_period=payroll_period, + test_tax=True, + base=65000, + ) + + create_exemption_declaration(emp, payroll_period.name) + + create_additional_salary_for_non_taxable_component(emp, payroll_period, company="_Test Company") + + create_employee_other_income(emp, payroll_period.name, company="_Test Company") + + # Create Salary Slip + salary_slip = make_salary_slip( + salary_structure_doc.name, employee=emp, posting_date=payroll_period.start_date + ) + + monthly_tax_amount = 11403.6 + + self.assertEqual(salary_slip.ctc, 1216000.0) + self.assertEqual(salary_slip.income_from_other_sources, 10000.0) + self.assertEqual(salary_slip.non_taxable_earnings, 10000.0) + self.assertEqual(salary_slip.total_earnings, 1226000.0) + self.assertEqual(salary_slip.standard_tax_exemption_amount, 50000.0) + self.assertEqual(salary_slip.tax_exemption_declaration, 100000.0) + self.assertEqual(salary_slip.deductions_before_tax_calculation, 2400.0) + self.assertEqual(salary_slip.annual_taxable_amount, 1063600.0) + self.assertEqual(flt(salary_slip.income_tax_deducted_till_date, 2), monthly_tax_amount) + self.assertEqual(flt(salary_slip.current_month_income_tax, 2), monthly_tax_amount) + self.assertEqual(flt(salary_slip.future_income_tax_deductions, 2), 125439.65) + self.assertEqual(flt(salary_slip.total_income_tax, 2), 136843.25) + + def test_income_tax_breakup_when_tax_added_via_additional_salary(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + frappe.db.delete("Income Tax Slab", {"currency": "INR"}) + emp = make_employee( + "test_employee_ss_income_tax_breakup_added_via_addnl_salary@salary.com", + company="_Test Company", + date_of_joining="2021-01-01", + ) + + payroll_period = frappe.get_last_doc("Payroll Period", filters={"company": "_Test Company"}) + create_tax_slab(payroll_period, effective_date=payroll_period.start_date, allow_tax_exemption=True) + + salary_structure_name = "Test Salary Structure to test Income Tax Breakup added via addnl salary" + if not frappe.db.exists("Salary Structure", salary_structure_name): + salary_structure_doc = make_salary_structure( + salary_structure_name, + "Monthly", + company="_Test Company", + employee=emp, + from_date=payroll_period.start_date, + payroll_period=payroll_period, + test_tax=True, + base=65000, + ) + + create_exemption_declaration(emp, payroll_period.name) + + create_additional_salary_for_non_taxable_component(emp, payroll_period, company="_Test Company") + + # create TDS of 12000 via addnl salary doctype + create_additional_salary_for_income_tax(emp, payroll_period, company="_Test Company") + + create_employee_other_income(emp, payroll_period.name, company="_Test Company") + + # Create Salary Slip + salary_slip = make_salary_slip( + salary_structure_doc.name, employee=emp, posting_date=payroll_period.start_date + ) + + monthly_tax_amount = 12000 # as 12000 is passed in addnl salary creation + + self.assertEqual(salary_slip.ctc, 1216000.0) + self.assertEqual(salary_slip.income_from_other_sources, 10000.0) + self.assertEqual(salary_slip.non_taxable_earnings, 10000.0) + self.assertEqual(salary_slip.total_earnings, 1226000.0) + self.assertEqual(salary_slip.standard_tax_exemption_amount, 50000.0) + self.assertEqual(salary_slip.tax_exemption_declaration, 100000.0) + self.assertEqual(salary_slip.deductions_before_tax_calculation, 2400.0) + self.assertEqual(salary_slip.annual_taxable_amount, 1063600.0) + self.assertEqual(flt(salary_slip.income_tax_deducted_till_date, 2), monthly_tax_amount) + self.assertEqual(flt(salary_slip.current_month_income_tax, 2), monthly_tax_amount) + self.assertEqual(flt(salary_slip.future_income_tax_deductions, 2), 124843.25) # as 136843.25 - 12000 + self.assertEqual(flt(salary_slip.total_income_tax, 2), 136843.25) + + def test_consistent_future_earnings_irrespective_of_payment_days(self): + """ + For CTC calculation, verifies that future non taxable earnings remain + consistent irrespective of the payment days of current month + """ + salary_slip = make_salary_slip_with_non_taxable_component() + salary_slip.save() + future_non_taxable_earnings_with_full_payment_days = ( + salary_slip.get_future_period_non_taxable_earnings() + ) + + salary_slip.payment_days = 20 + salary_slip.calculate_net_pay() + future_non_taxable_earnings_with_reduced_payment_days = ( + salary_slip.get_future_period_non_taxable_earnings() + ) + + self.assertEqual( + future_non_taxable_earnings_with_full_payment_days, + future_non_taxable_earnings_with_reduced_payment_days, + ) + + def test_tax_period_for_mid_month_payroll_period(self): + from hrms.payroll.doctype.payroll_period.payroll_period import get_period_factor + + frappe.db.delete("Payroll Period", {"company": "_Test Company"}) + payroll_period = create_payroll_period( + name="Test Mid Month Payroll Period", + company="_Test Company", + start_date="2024-07-16", + end_date="2025-07-15", + ) + emp_id = make_employee("test_mid_month_payroll@salary.com") + + period_factor = get_period_factor( + emp_id, + "2024-07-16", + "2024-08-15", + "Monthly", + payroll_period, + )[1] + + # count the last month only if end date's day > start date's day + # to handle cases like 16th Jul 2024 - 15th Jul 2025 + self.assertEqual(period_factor, 12) + + @change_settings("Payroll Settings", {"payroll_based_on": "Leave"}) + def test_lwp_calculation_based_on_relieving_date(self): + emp_id = make_employee("test_lwp_based_on_relieving_date@salary.com") + frappe.db.set_value("Employee", emp_id, {"relieving_date": None, "status": "Active"}) + frappe.db.set_value("Leave Type", "Leave Without Pay", "include_holiday", 0) + + month_start_date = get_first_day(nowdate()) + first_sunday = get_first_sunday(for_date=month_start_date) + relieving_date = add_days(first_sunday, 10) + leave_start_date = add_days(first_sunday, 16) + leave_end_date = add_days(leave_start_date, 2) + + make_leave_application(emp_id, leave_start_date, leave_end_date, "Leave Without Pay") + + frappe.db.set_value("Employee", emp_id, {"relieving_date": relieving_date, "status": "Left"}) + + ss = make_employee_salary_slip( + emp_id, + "Monthly", + "Test Payment Based On Leave Application", + ) + + holidays = ss.get_holidays_for_employee(month_start_date, relieving_date) + days_between_start_and_relieving = date_diff(relieving_date, month_start_date) + 1 + + self.assertEqual(ss.leave_without_pay, 0) + + self.assertEqual(ss.payment_days, (days_between_start_and_relieving - len(holidays))) + + def test_zero_value_component(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + emp = make_employee( + "test_zero_value_component@salary.com", + company="_Test Company", + **{"date_of_joining": "2021-12-01"}, + ) + + payroll_period = frappe.get_all("Payroll Period", filters={"company": "_Test Company"}, limit=1) + payroll_period = frappe.get_cached_doc("Payroll Period", payroll_period[0].name) + + salary_structure_name = "Test zero value component" + if not frappe.db.exists("Salary Structure", salary_structure_name): + salary_structure_doc = make_salary_structure( + salary_structure_name, + "Monthly", + company="_Test Company", + employee=emp, + from_date=payroll_period.start_date, + payroll_period=payroll_period, + base=65000, + ) + + # Create Salary Slip + salary_slip = make_salary_slip( + salary_structure_doc.name, employee=emp, posting_date=payroll_period.start_date + ) + earnings = {d.salary_component: d.amount for d in salary_slip.earnings} + + # Check if zero value component is included in salary slip based on component settings + self.assertIn("Arrear", earnings) + self.assertEqual(earnings["Arrear"], 0.0) + self.assertNotIn("Overtime", earnings) + + def test_component_default_amount_against_statistical_component(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import ( + create_salary_structure_assignment, + ) + + emp = make_employee( + "test_default_value_for_statistical_component@salary.com", + company="_Test Company", + **{"date_of_joining": "2021-12-01"}, + ) + + salary_structure_doc = make_salary_structure_for_statistical_component("_Test Company") + + create_salary_structure_assignment( + employee=emp, + salary_structure=salary_structure_doc.name, + company="_Test Company", + currency="INR", + base=40000, + ) + + # Create Salary Slip + salary_slip = make_salary_slip(salary_structure_doc.name, employee=emp, posting_date=nowdate()) + + for earning in salary_slip.earnings: + if earning.salary_component == "Leave Travel Allowance": + # formula for statistical component is, SC = base - BS - H + # formula for Leave Travel Allowance is , LTA = base - SC + # base = 40000 + # BS = base * 0.4 = 16000 + # H = 3000 + # SC = 40000 - 16000 - 3000 = 21000 + # LTA = 40000 - 21000 = 19000 + + self.assertEqual(earning.default_amount, 19000) + + def test_variable_tax_component(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + emp = make_employee( + "testtaxcomponents@salary.com", + company="_Test Company", + **{"date_of_joining": "2021-12-01"}, + ) + + salary_structure_name = "Test Tax Components" + + salary_structure_doc = make_salary_structure( + salary_structure=salary_structure_name, + payroll_frequency="Monthly", + employee=emp, + company="_Test Company", + from_date=get_first_day(nowdate()), + currency="INR", + base=40000, + ) + + make_income_tax_components() + + salary_slip = make_salary_slip(salary_structure_doc.name, employee=emp, posting_date=nowdate()) + + # check tax component not exist in salary slip + self.assertNotIn("_Test TDS", [com.salary_component for com in salary_slip.deductions]) + + # validate tax component is not configured as variable + test_tds = frappe.get_doc("Salary Component", "_Test TDS") + self.assertEqual(test_tds.variable_based_on_taxable_salary, 0) + self.assertListEqual(test_tds.accounts, []) + + # configure company in tax component and set variable_based_on_taxable_salary as 1 + test_tds.append( + "accounts", + { + "company": "_Test Company", + }, + ) + test_tds.variable_based_on_taxable_salary = 1 + test_tds.save() + + # validate tax component is configurations + self.assertEqual(test_tds.variable_based_on_taxable_salary, 1) + self.assertIn("_Test Company", [com.company for com in test_tds.accounts]) + + # define another tax component with variable_based_on_taxable_salary as 1 and company as empty + income_tax = frappe.get_doc("Salary Component", "_Test Income Tax") + income_tax.variable_based_on_taxable_salary = 1 + income_tax.save() + + self.assertEqual(income_tax.variable_based_on_taxable_salary, 1) + + # Validate tax component matching company criteria is added in salary slip + tax_component = salary_slip.get_tax_components() + self.assertEqual(test_tds.accounts[0].company, salary_slip.company) + self.assertListEqual(tax_component, ["_Test TDS"]) + + def test_opening_balances_excluded_from_tax_calculation(self): + """tests if opening balances in salary structure assignment are excluded from tax when assignment date is before payroll period""" + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + frappe.db.delete("Income Tax Slab", {"currency": "INR"}) + emp = make_employee( + "test_opening_balances@salary.com", + company="_Test Company", + date_of_joining="2022-04-01", + ) + + payroll_period = create_payroll_period( + name="_Test Opening Balance Payroll Period", + company="_Test Company", + start_date="2023-04-01", + end_date="2024-03-31", + ) + + # create salary structure and assignment with from_date before payroll period + salary_structure = make_salary_structure( + "Test Opening Balance Structure", + "Monthly", + company="_Test Company", + employee=emp, + from_date="2022-04-01", + payroll_period=payroll_period, + test_tax=True, + base=50000, + ) + + ssa = frappe.get_value( + "Salary Structure Assignment", + {"employee": emp, "salary_structure": salary_structure.name}, + "name", + ) + ssa_doc = frappe.get_doc("Salary Structure Assignment", ssa) + # Set opening tax balances in assignment + ssa_doc.db_set("taxable_earnings_till_date", 600000) + ssa_doc.db_set("tax_deducted_till_date", 45500) + + # Create salary slip + salary_slip = make_salary_slip(salary_structure.name, employee=emp, posting_date="2023-04-01") + + # calculate expected taxable amount without opening balance + # 50000 (base) + 28000 (other earnings from structure) + monthly_taxable_earnings = 78000 + expected_annual_taxable_amount = monthly_taxable_earnings * 12 + + # Verify that opening balance is not included in tax calculation + self.assertNotEqual( + salary_slip.annual_taxable_amount, + expected_annual_taxable_amount + ssa_doc.taxable_earnings_till_date, + ) + self.assertEqual(salary_slip.income_tax_deducted_till_date, salary_slip.current_month_income_tax) + + def test_tax_payable_with_tax_relief_and_marginal_relief_limits(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + from hrms.regional.india.setup import setup + + setup() + + frappe.db.delete("Income Tax Slab", {"currency": "INR"}) + emp = make_employee( + "test_employee_tax_relief@salary.com", + company="_Test Company", + date_of_joining="2021-01-01", + ) + + payroll_period = frappe.get_last_doc("Payroll Period", filters={"company": "_Test Company"}) + + create_tax_slab(payroll_period, effective_date=payroll_period.start_date, apply_tax_relief=True) + + salary_structure_doc = make_salary_structure( + "Test Tax Relief", + "Monthly", + company="_Test Company", + employee=emp, + payroll_period=payroll_period, + test_tax=True, + base=65000, + ) + + salary_slip = make_salary_slip( + salary_structure_doc.name, employee=emp, posting_date=payroll_period.start_date + ) + + tax_relief_limit, marginal_relief_limit = frappe.db.get_value( + "Income Tax Slab", {"currency": "INR"}, ["tax_relief_limit", "marginal_relief_limit"] + ) + + # taxable income within marginal relief limit + self.assertGreater(marginal_relief_limit, salary_slip.annual_taxable_amount) + + # tax payable is reduced to income excess over tax relief limit + total_income_tax = salary_slip.annual_taxable_amount - tax_relief_limit + total_income_tax += total_income_tax * 0.04 # add cess + + self.assertEqual(salary_slip.total_income_tax, total_income_tax) + + def test_status_on_discard(self): + salary_slip = make_salary_slip_with_non_taxable_component() + salary_slip.save() + salary_slip.discard() + salary_slip.reload() + self.assertEqual(salary_slip.status, "Cancelled") + + def test_salary_component_for_payment_days_zero(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import ( + create_salary_structure_assignment, + make_salary_structure, + ) + + emp = make_employee( + "test_payment_days_zero_component@salary.com", + company="_Test Company", + **{"date_of_joining": "2021-12-01"}, + ) + + payroll_period = frappe.get_all("Payroll Period", filters={"company": "_Test Company"}, limit=1) + payroll_period = frappe.get_cached_doc("Payroll Period", payroll_period[0].name) + + data = [ + { + "salary_component": "Basic", + "abbr": "BS", + "type": "Earning", + "formula": "base", + "amount_based_on_formula": 1, + "depends_on_payment_days": 1, + }, + { + "salary_component": "House Rent Allowance", + "abbr": "HRA", + "type": "Earning", + "formula": "BS * 0.5", + "amount_based_on_formula": 1, + "depends_on_payment_days": 0, + }, + ] + make_salary_component(data, False, company_list=["_Test Company"]) + + salary_structure_name = "Test Payment Days Zero Component" + salary_structure_doc = make_salary_structure( + salary_structure_name, + "Monthly", + company="_Test Company", + employee=emp, + from_date=payroll_period.start_date, + payroll_period=payroll_period, + base=65000, + ) + + create_salary_structure_assignment( + emp, + salary_structure_doc.name, + from_date=payroll_period.start_date, + company="_Test Company", + currency="INR", + payroll_period=payroll_period, + base=65000, + ) + + salary_slip = make_salary_slip( + salary_structure_doc.name, employee=emp, posting_date=payroll_period.start_date + ) + salary_slip.payment_days = 0 + + earnings = {d.salary_component: d for d in salary_slip.earnings} + + self.assertNotIn("Basic", earnings) + + self.assertNotIn("House Rent Allowance", earnings) + + def test_salary_component_for_additional_salary_zero(self): + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + emp = make_employee( + "test_zero_value_component@salary.com", + company="_Test Company", + **{"date_of_joining": "2021-12-01"}, + ) + + payroll_period = frappe.get_all("Payroll Period", filters={"company": "_Test Company"}, limit=1) + payroll_period = frappe.get_cached_doc("Payroll Period", payroll_period[0].name) + + data = [ + { + "salary_component": "Allowance", + "abbr": "ALL", + "type": "Earning", + "is_income_tax_component": 0, + "amount": 350, + }, + ] + make_salary_component(data, False, company_list=["_Test Company"]) + + salary_structure_name = "Test Additional Salary component" + salary_structure_doc = make_salary_structure( + salary_structure_name, + "Monthly", + company="_Test Company", + employee=emp, + from_date=payroll_period.start_date, + payroll_period=payroll_period, + base=65000, + ) + + frappe.get_doc( + { + "doctype": "Additional Salary", + "employee": emp, + "company": "_Test Company", + "salary_component": "Allowance", + "overwrite_salary_structure_amount": 1, + "amount": 0, + "payroll_date": payroll_period.start_date, + "currency": erpnext.get_default_currency(), + } + ).submit() + + salary_slip = make_salary_slip( + salary_structure_doc.name, employee=emp, posting_date=payroll_period.start_date + ) + earnings = {d.salary_component: d.amount for d in salary_slip.earnings} + + self.assertIn("Allowance", earnings) + self.assertEqual(earnings["Allowance"], 0.0) + + +class TestSalarySlipSafeEval(IntegrationTestCase): + def test_safe_eval_for_salary_slip(self): + TEST_CASES = { + "1+1": 2, + '"abc" in "abl"': False, + '"a" in "abl"': True, + '"a" in ("a", "b")': True, + '"a" in {"a", "b"}': True, + '"a" in {"a": 1, "b": 2}': True, + '"a" in ["a" ,"b"]': True, + } + + for code, result in TEST_CASES.items(): + self.assertEqual(_safe_eval(code), result) + + self.assertRaises(NameError, _safe_eval, "frappe.utils.os.path", {}) + + # Doc/dict objects + user = frappe.new_doc("User") + user.user_type = "System User" + user.enabled = 1 + self.assertTrue(_safe_eval("user_type == 'System User'", eval_locals=user.as_dict())) + self.assertEqual("System User Test", _safe_eval("user_type + ' Test'", eval_locals=user.as_dict())) + self.assertEqual(1, _safe_eval("int(enabled)", eval_locals=user.as_dict())) + + # Walrus not allowed + self.assertRaises(SyntaxError, _safe_eval, "(x := (40+2))") + + # Format check but saner + self.assertTrue(_safe_eval("'x' != 'Information Techonology'")) + self.assertRaises(SyntaxError, _safe_eval, "'blah'.format(1)") + + +def make_income_tax_components(): + tax_components = [ + { + "salary_component": "_Test TDS", + "abbr": "T_TDS", + "type": "Deduction", + "depends_on_payment_days": 0, + "variable_based_on_taxable_salary": 0, + "round_to_the_nearest_integer": 1, + }, + { + "salary_component": "_Test Income Tax", + "abbr": "T_IT", + "type": "Deduction", + "depends_on_payment_days": 0, + "variable_based_on_taxable_salary": 0, + "round_to_the_nearest_integer": 1, + }, + ] + make_salary_component(tax_components, False, company_list=[]) + + +def get_no_of_days(): + no_of_days_in_month = calendar.monthrange(getdate(nowdate()).year, getdate(nowdate()).month) + no_of_holidays_in_month = len( + [1 for i in calendar.monthcalendar(getdate(nowdate()).year, getdate(nowdate()).month) if i[6] != 0] + ) + + return [no_of_days_in_month[1], no_of_holidays_in_month] + + +def make_employee_salary_slip( + emp_id: str, + payroll_frequency: str, + salary_structure: str | None = None, + posting_date: str | None = None, + payroll_period: dict | None = None, +) -> dict: + from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + + if not salary_structure: + salary_structure = payroll_frequency + " Salary Structure Test for Salary Slip" + + employee = frappe.db.get_value("Employee", emp_id, ["name", "company", "employee_name"], as_dict=True) + + salary_structure_doc = make_salary_structure( + salary_structure, + payroll_frequency, + employee=employee.name, + company=employee.company, + from_date=posting_date, + payroll_period=payroll_period, + ) + salary_slip_name = frappe.db.get_value("Salary Slip", {"employee": emp_id}) + + if not salary_slip_name: + date = posting_date or nowdate() + salary_slip = make_salary_slip(salary_structure_doc.name, employee=employee.name, posting_date=date) + salary_slip.employee_name = employee.employee_name + salary_slip.payroll_frequency = payroll_frequency + salary_slip.posting_date = date + salary_slip.insert() + else: + salary_slip = frappe.get_doc("Salary Slip", salary_slip_name) + + return salary_slip + + +def make_salary_component(salary_components, test_tax, company_list=None): + for salary_component in salary_components: + if frappe.db.exists("Salary Component", salary_component["salary_component"]): + frappe.delete_doc("Salary Component", salary_component["salary_component"], force=True) + + if test_tax: + if salary_component["type"] == "Earning": + salary_component["is_tax_applicable"] = 1 + elif salary_component["salary_component"] == "TDS": + salary_component["variable_based_on_taxable_salary"] = 1 + salary_component["amount_based_on_formula"] = 0 + salary_component["amount"] = 0 + salary_component["formula"] = "" + salary_component["condition"] = "" + + salary_component["salary_component_abbr"] = salary_component["abbr"] + if salary_component.get("arrear_component"): + salary_component["arrear_component"] = 1 + doc = frappe.new_doc("Salary Component") + doc.update(salary_component) + doc.insert() + + set_salary_component_account(doc, company_list) + + +def set_salary_component_account(sal_comp, company_list=None): + company = erpnext.get_default_company() + + if company_list and company and company not in company_list: + company_list.append(company) + + if not isinstance(sal_comp, Document): + sal_comp = frappe.get_doc("Salary Component", sal_comp) + + if not sal_comp.get("accounts"): + for d in company_list: + company_abbr = frappe.get_cached_value("Company", d, "abbr") + + if sal_comp.type == "Earning": + account_name = "Salary" + parent_account = "Indirect Expenses - " + company_abbr + else: + account_name = "Salary Deductions" + parent_account = "Current Liabilities - " + company_abbr + + sal_comp.append( + "accounts", {"company": d, "account": create_account(account_name, d, parent_account)} + ) + sal_comp.save() + + +def create_account(account_name, company, parent_account, account_type=None): + company_abbr = frappe.get_cached_value("Company", company, "abbr") + account = frappe.db.get_value("Account", account_name + " - " + company_abbr) + if not account: + frappe.get_doc( + { + "doctype": "Account", + "account_name": account_name, + "parent_account": parent_account, + "company": company, + } + ).insert() + return account + + +def make_earning_salary_component( + setup=False, + test_tax=False, + company_list=None, + test_accrual_component=False, + test_arrear=False, + test_statistical_comp=False, +): + data = [ + { + "salary_component": "Basic Salary", + "abbr": "BS", + "condition": "base > 10000", + "formula": "base", + "type": "Earning", + "amount_based_on_formula": 1, + "arrear_component": 1 if test_arrear else 0, + "depends_on_payment_days": 1, + }, + {"salary_component": "HRA", "abbr": "H", "amount": 3000, "type": "Earning"}, + { + "salary_component": "Special Allowance", + "abbr": "SA", + "condition": "H < 10000", + # intentional to test multiline formula + "formula": "BS\n*.5", + "type": "Earning", + "amount_based_on_formula": 1, + "depends_on_payment_days": 0, + "arrear_component": 1 if test_arrear else 0, + }, + {"salary_component": "Leave Encashment", "abbr": "LE", "type": "Earning"}, + { + "salary_component": "Statistical Component", + "abbr": "SC", + "type": "Earning", + "statistical_component": 1, + "amount": 500, + }, + { + "salary_component": "Arrear", + "abbr": "A", + "type": "Earning", + "depends_on_payment_days": 0, + "amount": 0, + "remove_if_zero_valued": 0, + }, + { + "salary_component": "Overtime", + "abbr": "OT", + "type": "Earning", + "depends_on_payment_days": 0, + "amount": 0, + "remove_if_zero_valued": 1, + }, + { + "salary_component": "Recurring Salary Component", + "abbr": "RSC", + "type": "Earning", + "depends_on_payment_days": 0, + "amount": 0, + "remove_if_zero_valued": 1, + }, + ] + + if test_accrual_component: + data.extend( + [ + { + "salary_component": "Accrued Earnings", + "abbr": "AC", + "type": "Earning", + "accrual_component": 1, + "amount": 1000, + "arrear_component": 1, + } + ] + ) + + if test_tax: + data.extend( + [ + {"salary_component": "Performance Bonus", "abbr": "B", "type": "Earning"}, + ] + ) + + if setup or test_tax: + make_salary_component(data, test_tax, company_list) + + data.append( + { + "salary_component": "Basic Salary", + "abbr": "BS", + "condition": "base < 10000", + "formula": "base*.2", + "type": "Earning", + "amount_based_on_formula": 1, + } + ) + return data + + +def make_deduction_salary_component( + setup=False, test_tax=False, company_list=None, test_salary_structure_arrear=False +): + data = [ + { + "salary_component": "Professional Tax", + "abbr": "PT", + "type": "Deduction", + "amount": 300 + if test_salary_structure_arrear + else 200, # setting a different amount to test salary structure arrear calculation + "exempted_from_income_tax": 1, + "arrear_component": 1, + } + ] + if not test_tax: + data.append( + { + "salary_component": "TDS", + "abbr": "T", + "condition": 'employment_type=="Intern"', + "type": "Deduction", + "round_to_the_nearest_integer": 1, + } + ) + else: + data.append( + { + "salary_component": "TDS", + "abbr": "T", + "type": "Deduction", + "depends_on_payment_days": 0, + "variable_based_on_taxable_salary": 1, + "is_income_tax_component": 1, + "round_to_the_nearest_integer": 1, + } + ) + if setup or test_tax: + make_salary_component(data, test_tax, company_list) + + return data + + +def make_employee_benefit_earning_components( + setup=False, test_tax=False, company_list=None, test_arrear=False +): + if setup: + data = [ + { + "salary_component": "Leave Travel Allowance", + "abbr": "LTA", + "is_flexible_benefit": 1, + "type": "Earning", + "payout_method": "Allow claim for full benefit amount", + "max_benefit_amount": 50000, + "accrual_component": 0, + }, + { + "salary_component": "Mediclaim Allowance", + "abbr": "MA", + "is_flexible_benefit": 1, + "type": "Earning", + "payout_method": "Accrue per cycle, pay only on claim", + "final_cycle_accrual_payout": 1, + "accrual_component": 1, + }, + { + "salary_component": "Internet Reimbursement", + "abbr": "IR", + "is_flexible_benefit": 1, + "type": "Earning", + "payout_method": "Accrue and payout at end of payroll period", + "accrual_component": 1, + }, + ] + + if test_arrear: + data[1].update( + { + "arrear_component": 1, + "depends_on_payment_days": 1, + } + ) + + make_salary_component(data, test_tax, company_list) + + data = [ + { + "salary_component": "Leave Travel Allowance", + "amount": 50000, + }, + { + "salary_component": "Mediclaim Allowance", + "amount": 24000, + }, + { + "salary_component": "Internet Reimbursement", + "amount": 12000, + }, + ] + + return data + + +def get_tax_paid_in_period(employee): + tax_paid_amount = frappe.db.sql( + """select sum(sd.amount) from `tabSalary Detail` + sd join `tabSalary Slip` ss where ss.name=sd.parent and ss.employee=%s + and ss.docstatus=1 and sd.salary_component='TDS'""", + (employee), + ) + return tax_paid_amount[0][0] + + +def create_exemption_declaration(employee, payroll_period): + create_exemption_category() + declaration = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Declaration", + "employee": employee, + "payroll_period": payroll_period, + "company": erpnext.get_default_company(), + "currency": erpnext.get_default_currency(), + } + ) + declaration.append( + "declarations", + { + "exemption_sub_category": "_Test Sub Category", + "exemption_category": "_Test Category", + "amount": 100000, + }, + ) + declaration.submit() + + +def create_proof_submission(employee, payroll_period, amount): + submission_date = add_months(payroll_period.start_date, random.randint(0, 11)) + proof_submission = frappe.get_doc( + { + "doctype": "Employee Tax Exemption Proof Submission", + "employee": employee, + "payroll_period": payroll_period.name, + "submission_date": submission_date, + "currency": erpnext.get_default_currency(), + } + ) + proof_submission.append( + "tax_exemption_proofs", + { + "exemption_sub_category": "_Test Sub Category", + "exemption_category": "_Test Category", + "type_of_proof": "Test", + "amount": amount, + }, + ) + proof_submission.submit() + return submission_date + + +def create_tax_slab( + payroll_period, + effective_date=None, + allow_tax_exemption=False, + dont_submit=False, + currency=None, + company=None, + apply_tax_relief=False, +): + if not currency: + currency = erpnext.get_default_currency() + + if company: + currency = erpnext.get_company_currency(company) + + slabs = [ + { + "from_amount": 250000, + "to_amount": 500000, + "percent_deduction": 5, + "condition": "annual_taxable_earning > 500000", + }, + {"from_amount": 500001, "to_amount": 1000000, "percent_deduction": 20}, + {"from_amount": 1000001, "percent_deduction": 30}, + ] + + income_tax_slab_name = frappe.db.get_value("Income Tax Slab", {"currency": currency, "docstatus": 1}) + + if not income_tax_slab_name: + income_tax_slab = frappe.new_doc("Income Tax Slab") + income_tax_slab.name = "Tax Slab: " + payroll_period.name + " " + cstr(currency) + income_tax_slab.effective_from = effective_date or add_days(payroll_period.start_date, -2) + income_tax_slab.company = company or "" + income_tax_slab.currency = currency + + if allow_tax_exemption: + income_tax_slab.allow_tax_exemption = 1 + income_tax_slab.standard_tax_exemption_amount = 50000 + + for item in slabs: + income_tax_slab.append("slabs", item) + + income_tax_slab.append("other_taxes_and_charges", {"description": "cess", "percent": 4}) + + if apply_tax_relief: + income_tax_slab.tax_relief_limit = 1200000 + income_tax_slab.marginal_relief_limit = 1275000 + + income_tax_slab.save() + if not dont_submit: + income_tax_slab.submit() + + return income_tax_slab.name + else: + return income_tax_slab_name + + +def create_salary_slips_for_payroll_period( + employee, salary_structure, payroll_period, deduct_random=True, num=12 +): + deducted_dates = [] + i = 0 + while i < num: + slip = frappe.get_doc( + { + "doctype": "Salary Slip", + "employee": employee, + "salary_structure": salary_structure, + "frequency": "Monthly", + } + ) + if i == 0: + posting_date = add_days(payroll_period.start_date, 25) + else: + posting_date = add_months(posting_date, 1) + if i == 11: + slip.deduct_tax_for_unsubmitted_tax_exemption_proof = 1 + if deduct_random and not random.randint(0, 2): + slip.deduct_tax_for_unsubmitted_tax_exemption_proof = 1 + deducted_dates.append(posting_date) + slip.posting_date = posting_date + slip.start_date = get_first_day(posting_date) + slip.end_date = get_last_day(posting_date) + doc = make_salary_slip(salary_structure, slip, employee) + doc.submit() + i += 1 + return deducted_dates + + +def create_additional_salary(employee, payroll_period, amount): + salary_date = add_months(payroll_period.start_date, random.randint(0, 11)) + frappe.get_doc( + { + "doctype": "Additional Salary", + "employee": employee, + "company": erpnext.get_default_company(), + "salary_component": "Performance Bonus", + "payroll_date": salary_date, + "amount": amount, + "type": "Earning", + "currency": erpnext.get_default_currency(), + } + ).submit() + return salary_date + + +def make_leave_application( + employee, + from_date, + to_date, + leave_type, + company=None, + half_day=False, + half_day_date=None, + submit=True, +): + create_user("test@example.com") + + leave_application = frappe.get_doc( + dict( + doctype="Leave Application", + employee=employee, + leave_type=leave_type, + from_date=from_date, + to_date=to_date, + half_day=half_day, + half_day_date=half_day_date, + company=company or erpnext.get_default_company() or "_Test Company", + status="Approved", + leave_approver="test@example.com", + ) + ).insert() + + if submit: + leave_application.submit() + + return leave_application + + +def setup_test(): + make_earning_salary_component(setup=True, company_list=["_Test Company"]) + make_deduction_salary_component(setup=True, company_list=["_Test Company"]) + + for dt in [ + "Leave Application", + "Leave Allocation", + "Salary Slip", + "Attendance", + "Additional Salary", + "Employee Tax Exemption Declaration", + "Employee Tax Exemption Proof Submission", + "Employee Benefit Claim", + "Salary Structure Assignment", + "Payroll Period", + ]: + frappe.db.sql("delete from `tab%s`" % dt) + + make_holiday_list() + make_payroll_period() + + frappe.db.set_value( + "Company", erpnext.get_default_company(), "default_holiday_list", "Salary Slip Test Holiday List" + ) + + frappe.db.set_single_value("Payroll Settings", "email_salary_slip_to_employee", 0) + frappe.db.set_single_value("HR Settings", "leave_status_notification_template", None) + frappe.db.set_single_value("HR Settings", "leave_approval_notification_template", None) + + +def make_payroll_period(): + default_company = erpnext.get_default_company() + company_based_payroll_period = { + default_company: f"_Test Payroll Period {default_company}", + "_Test Company": "_Test Payroll Period", + } + for company in company_based_payroll_period: + payroll_period = frappe.db.get_value( + "Payroll Period", + { + "company": company, + "start_date": get_year_start(nowdate()), + "end_date": get_year_ending(nowdate()), + }, + ) + + if not payroll_period: + create_payroll_period(company=company, name=company_based_payroll_period[company]) + + +def make_holiday_list( + list_name=None, from_date=None, to_date=None, add_weekly_offs=True, weekly_off_days=None +): + fiscal_year = get_fiscal_year(nowdate(), company=erpnext.get_default_company()) + name = list_name or "Salary Slip Test Holiday List" + + frappe.delete_doc_if_exists("Holiday List", name, force=True) + + holiday_list = frappe.get_doc( + { + "doctype": "Holiday List", + "holiday_list_name": name, + "from_date": from_date or fiscal_year[1], + "to_date": to_date or fiscal_year[2], + } + ).insert() + + if add_weekly_offs: + if not weekly_off_days: + weekly_off_days = ["Sunday"] + for d in weekly_off_days: + holiday_list.weekly_off = d + holiday_list.get_weekly_off_dates() + + holiday_list.save() + holiday_list = holiday_list.name + + return holiday_list + + +def make_salary_structure_for_payment_days_based_component_dependency(test_statistical_comp=False): + earnings = [ + { + "salary_component": "Basic Salary - Payment Days", + "abbr": "P_BS", + "type": "Earning", + "formula": "base", + "amount_based_on_formula": 1, + }, + { + "salary_component": "HRA - Payment Days", + "abbr": "P_HRA", + "type": "Earning", + "depends_on_payment_days": 1, + "amount_based_on_formula": 1, + "formula": "base * 0.20", + }, + ] + if test_statistical_comp: + earnings.extend( + [ + { + "salary_component": "Statistical Component", + "abbr": "SC", + "type": "Earning", + "statistical_component": 1, + "amount": 1000, + "depends_on_payment_days": 1, + }, + { + "salary_component": "Dependency Component", + "abbr": "DC", + "type": "Earning", + "amount_based_on_formula": 1, + "formula": "SC * 0.5", + "depends_on_payment_days": 0, + }, + ] + ) + + make_salary_component(earnings, False, company_list=["_Test Company"]) + + deductions = [ + { + "salary_component": "P - Professional Tax", + "abbr": "P_PT", + "type": "Deduction", + "depends_on_payment_days": 1, + "amount": 200.00, + }, + { + "salary_component": "P - Employee Provident Fund", + "abbr": "P_EPF", + "type": "Deduction", + "exempted_from_income_tax": 1, + "amount_based_on_formula": 1, + "depends_on_payment_days": 0, + "formula": "(gross_pay - P_HRA) * 0.12", + }, + ] + + make_salary_component(deductions, False, company_list=["_Test Company"]) + + salary_structure = "Salary Structure with PF" + if frappe.db.exists("Salary Structure", salary_structure): + frappe.db.delete("Salary Structure", salary_structure) + + details = { + "doctype": "Salary Structure", + "name": salary_structure, + "company": "_Test Company", + "payroll_frequency": "Monthly", + "payment_account": get_random("Account", filters={"account_currency": "INR"}), + "currency": "INR", + } + + salary_structure_doc = frappe.get_doc(details) + + for entry in earnings: + salary_structure_doc.append("earnings", entry) + + for entry in deductions: + salary_structure_doc.append("deductions", entry) + + salary_structure_doc.insert() + salary_structure_doc.submit() + + return salary_structure_doc + + +def make_salary_slip_for_payment_days_dependency_test(employee, salary_structure): + employee = frappe.db.get_value( + "Employee", {"user_id": employee}, ["name", "company", "employee_name"], as_dict=True + ) + + salary_slip_name = frappe.db.get_value("Salary Slip", {"employee": employee.name}) + + if not salary_slip_name: + salary_slip = make_salary_slip(salary_structure, employee=employee.name) + salary_slip.employee_name = employee.employee_name + salary_slip.payroll_frequency = "Monthly" + salary_slip.posting_date = nowdate() + salary_slip.insert() + else: + salary_slip = frappe.get_doc("Salary Slip", salary_slip_name) + + return salary_slip + + +def create_recurring_additional_salary(employee, salary_component, amount, from_date, to_date, company=None): + frappe.get_doc( + { + "doctype": "Additional Salary", + "employee": employee, + "company": company or erpnext.get_default_company(), + "salary_component": salary_component, + "is_recurring": 1, + "from_date": from_date, + "to_date": to_date, + "amount": amount, + "type": "Earning", + "currency": erpnext.get_default_currency(), + } + ).submit() + + +def make_salary_structure_for_timesheet(employee, company=None): + from hrms.payroll.doctype.salary_structure.test_salary_structure import ( + create_salary_structure_assignment, + make_salary_structure, + ) + + salary_structure_name = "Timesheet Salary Structure Test" + frequency = "Monthly" + + if not frappe.db.exists("Salary Component", "Timesheet Component"): + frappe.get_doc({"doctype": "Salary Component", "salary_component": "Timesheet Component"}).insert() + + salary_structure = make_salary_structure( + salary_structure_name, frequency, company=company, dont_submit=True + ) + salary_structure.salary_component = "Timesheet Component" + salary_structure.salary_slip_based_on_timesheet = 1 + salary_structure.hour_rate = 50.0 + salary_structure.save() + salary_structure.submit() + + if not frappe.db.get_value("Salary Structure Assignment", {"employee": employee, "docstatus": 1}): + frappe.db.set_value("Employee", employee, "date_of_joining", add_months(nowdate(), -5)) + create_salary_structure_assignment(employee, salary_structure.name) + + return salary_structure + + +def create_employee_other_income(employee, payroll_period, company): + other_income = frappe.db.get_value( + "Employee Other Income", + { + "employee": employee, + "payroll_period": payroll_period, + "company": company, + "docstatus": 1, + }, + "name", + ) + + if not other_income: + other_income = frappe.get_doc( + { + "doctype": "Employee Other Income", + "employee": employee, + "payroll_period": payroll_period, + "company": company, + "source": "Other Income", + "amount": 10000, + } + ).insert() + + other_income.submit() + + return other_income + + +def create_additional_salary_for_non_taxable_component(employee, payroll_period, company): + data = [ + { + "salary_component": "Non Taxable Additional Salary", + "abbr": "AS", + "type": "Earning", + "is_tax_applicable": 0, + }, + ] + make_salary_component(data, False, company_list=[company]) + + add_sal = frappe.get_doc( + { + "doctype": "Additional Salary", + "employee": employee, + "company": company, + "salary_component": "Non Taxable Additional Salary", + "overwrite_salary_structure_amount": 0, + "amount": 10000, + "currency": "INR", + "payroll_date": payroll_period.start_date, + } + ).insert() + + add_sal.submit() + + +def create_additional_salary_for_income_tax(employee, payroll_period, company): + data = [ + { + "salary_component": "TDS", + "abbr": "T", + "type": "Deduction", + "is_income_tax_component": 1, + }, + ] + make_salary_component(data, True, company_list=[company]) + + add_sal = frappe.get_doc( + { + "doctype": "Additional Salary", + "employee": employee, + "company": company, + "salary_component": "TDS", + "overwrite_salary_structure_amount": 1, + "amount": 12000, + "currency": "INR", + "payroll_date": payroll_period.start_date, + } + ).insert() + add_sal.submit() + + +def make_salary_structure_for_statistical_component(company): + earnings = [ + { + "salary_component": "Basic Component", + "abbr": "BSC", + "formula": "base * 0.4", + "type": "Earning", + "amount_based_on_formula": 1, + }, + {"salary_component": "HRA Component", "abbr": "HRAC", "amount": 3000, "type": "Earning"}, + { + "salary_component": "Statistical Component", + "abbr": "SC", + "type": "Earning", + "formula": "base - BSC - HRAC", + "statistical_component": 1, + "amount_based_on_formula": 1, + "depends_on_payment_days": 0, + }, + { + "salary_component": "Leave Travel Allowance", + "abbr": "LTA", + "formula": "base - SC", + "type": "Earning", + "amount_based_on_formula": 1, + "depends_on_payment_days": 0, + }, + ] + + make_salary_component(earnings, False, company_list=[company]) + + deductions = [ + { + "salary_component": "P - Professional Tax", + "abbr": "P_PT", + "type": "Deduction", + "depends_on_payment_days": 1, + "amount": 200.00, + }, + ] + + make_salary_component(deductions, False, company_list=["_Test Company"]) + + salary_structure = "Salary Structure with Statistical Component" + if frappe.db.exists("Salary Structure", salary_structure): + frappe.db.delete("Salary Structure", salary_structure) + + details = { + "doctype": "Salary Structure", + "name": salary_structure, + "company": "_Test Company", + "payroll_frequency": "Monthly", + "payment_account": get_random("Account", filters={"account_currency": "INR"}), + "currency": "INR", + } + + salary_structure_doc = frappe.get_doc(details) + + for entry in earnings: + salary_structure_doc.append("earnings", entry) + + for entry in deductions: + salary_structure_doc.append("deductions", entry) + + salary_structure_doc.insert() + salary_structure_doc.submit() + + return salary_structure_doc + + +def make_salary_slip_with_non_taxable_component() -> SalarySlip: + from hrms.payroll.doctype.salary_structure.test_salary_structure import ( + create_salary_structure_assignment, + make_salary_structure, + ) + + frappe.db.delete("Income Tax Slab", {"currency": "INR"}) + emp = make_employee( + "test_employee_ss_income_tax_breakup@salary.com", + company="_Test Company", + date_of_joining="2021-01-01", + ) + + payroll_period = frappe.get_last_doc("Payroll Period", filters={"company": "_Test Company"}) + create_tax_slab(payroll_period, effective_date=payroll_period.start_date, allow_tax_exemption=True) + + earnings = [ + { + "salary_component": "Basic Salary", + "abbr": "P_BS", + "type": "Earning", + "formula": "base", + "amount_based_on_formula": 1, + }, + # non taxable component + { + "salary_component": "Children Education Allowance", + "abbr": "CH_EDU", + "type": "Earning", + "depends_on_payment_days": 1, + "amount_based_on_formula": 1, + "formula": "base * 0.20", + "is_tax_applicable": 0, + }, + ] + make_salary_component(earnings, False, company_list=["_Test Company"]) + + deductions = [ + { + "salary_component": "P - Professional Tax", + "abbr": "P_PT", + "type": "Deduction", + "depends_on_payment_days": 1, + "amount": 200.00, + }, + ] + make_salary_component(deductions, False, company_list=["_Test Company"]) + + salary_structure = "Salary Structure with Non Taxable Component" + if frappe.db.exists("Salary Structure", salary_structure): + frappe.db.delete("Salary Structure", salary_structure) + + details = { + "doctype": "Salary Structure", + "name": salary_structure, + "company": "_Test Company", + "payroll_frequency": "Monthly", + "payment_account": get_random("Account", filters={"account_currency": "INR"}), + "currency": "INR", + } + + salary_structure_doc = frappe.get_doc(details) + + for entry in earnings: + salary_structure_doc.append("earnings", entry) + + for entry in deductions: + salary_structure_doc.append("deductions", entry) + + salary_structure_doc.insert().submit() + create_salary_structure_assignment( + emp, + salary_structure_doc.name, + from_date=payroll_period.start_date, + company="_Test Company", + currency="INR", + payroll_period=payroll_period, + base=65000, + ) + + # Create Salary Slip + salary_slip = make_salary_slip( + salary_structure_doc.name, employee=emp, posting_date=payroll_period.start_date + ) + return salary_slip + + +def mark_attendance( + employee, + attendance_date, + status, + shift=None, + ignore_validate=False, + leave_type=None, + late_entry=False, + early_exit=False, + half_day_status=None, +): + attendance = frappe.new_doc("Attendance") + attendance.update( + { + "doctype": "Attendance", + "employee": employee, + "attendance_date": attendance_date, + "status": status, + "shift": shift, + "leave_type": leave_type, + "late_entry": late_entry, + "early_exit": early_exit, + "half_day_status": half_day_status, + } + ) + attendance.flags.ignore_validate = ignore_validate + attendance.insert() + attendance.submit() + + +def create_ss_email_template(): + if not frappe.db.exists("Email Template", "Salary Slip"): + ss_template = frappe.get_doc( + { + "doctype": "Email Template", + "name": "Salary Slip", + "response": "Test Salary Slip", + "subject": "Test Salary Slip Email Template", + "owner": frappe.session.user, + } + ) + ss_template.insert() + + +def clear_cache(): + for key in [ + HOLIDAYS_BETWEEN_DATES, + LEAVE_TYPE_MAP, + SALARY_COMPONENT_VALUES, + TAX_COMPONENTS_BY_COMPANY, + ]: + frappe.cache().delete_value(key) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_leave/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_leave/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json new file mode 100644 index 000000000..a960be202 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.json @@ -0,0 +1,79 @@ +{ + "actions": [], + "creation": "2021-02-19 11:45:18.173417", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "leave_type", + "total_allocated_leaves", + "expired_leaves", + "used_leaves", + "pending_leaves", + "available_leaves" + ], + "fields": [ + { + "fieldname": "leave_type", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Leave Type", + "no_copy": 1, + "options": "Leave Type", + "read_only": 1 + }, + { + "fieldname": "total_allocated_leaves", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Total Allocated Leave(s)", + "no_copy": 1, + "read_only": 1 + }, + { + "fieldname": "expired_leaves", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Expired Leave(s)", + "no_copy": 1, + "read_only": 1 + }, + { + "fieldname": "used_leaves", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Used Leave(s)", + "no_copy": 1, + "read_only": 1 + }, + { + "fieldname": "pending_leaves", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Leave(s) Pending Approval", + "no_copy": 1, + "read_only": 1 + }, + { + "fieldname": "available_leaves", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Available Leave(s)", + "no_copy": 1, + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2024-03-27 13:10:34.708218", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Slip Leave", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.py new file mode 100644 index 000000000..b29a60bd4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_leave/salary_slip_leave.py @@ -0,0 +1,10 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class SalarySlipLeave(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_loan/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_loan/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json new file mode 100644 index 000000000..228c4408a --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.json @@ -0,0 +1,101 @@ +{ + "actions": [], + "creation": "2019-08-29 18:11:36.829526", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "loan", + "loan_product", + "loan_account", + "interest_income_account", + "column_break_4", + "principal_amount", + "interest_amount", + "total_payment", + "loan_repayment_entry" + ], + "fields": [ + { + "fieldname": "loan", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Loan", + "options": "Loan", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "loan_account", + "fieldtype": "Link", + "label": "Loan Account", + "options": "Account", + "read_only": 1 + }, + { + "fieldname": "interest_income_account", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Interest Income Account", + "options": "Account", + "read_only": 1 + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "fieldname": "principal_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Principal Amount", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "fieldname": "interest_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Interest Amount", + "options": "Company:company:default_currency", + "read_only": 1 + }, + { + "fieldname": "total_payment", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Total Payment", + "options": "Company:company:default_currency" + }, + { + "fieldname": "loan_repayment_entry", + "fieldtype": "Link", + "label": "Loan Repayment Entry", + "no_copy": 1, + "options": "Loan Repayment", + "read_only": 1 + }, + { + "fetch_from": "loan.loan_product", + "fieldname": "loan_product", + "fieldtype": "Link", + "label": "Loan Product", + "options": "Loan Product", + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2022-06-21 14:50:14.823213", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Slip Loan", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.py new file mode 100644 index 000000000..91267b80b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_loan/salary_slip_loan.py @@ -0,0 +1,10 @@ +# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class SalarySlipLoan(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_timesheet/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_timesheet/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json new file mode 100644 index 000000000..a5df25eda --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.json @@ -0,0 +1,42 @@ +{ + "actions": [], + "creation": "2016-06-14 19:22:29.811658", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "time_sheet", + "working_hours" + ], + "fields": [ + { + "fieldname": "time_sheet", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Time Sheet", + "options": "Timesheet", + "reqd": 1 + }, + { + "fetch_from": "time_sheet.total_hours", + "fieldname": "working_hours", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Working Hours", + "no_copy": 1, + "read_only": 1 + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:10:34.860815", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Slip Timesheet", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.py new file mode 100644 index 000000000..022eba05f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_slip_timesheet/salary_slip_timesheet.py @@ -0,0 +1,10 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class SalarySlipTimesheet(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/README.md b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/README.md new file mode 100644 index 000000000..3795971c1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/README.md @@ -0,0 +1 @@ +Salary Template for an Employee, basis of which monthly Salary is calculated. \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/condition_and_formula_help.html b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/condition_and_formula_help.html new file mode 100644 index 000000000..0f6cc3785 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/condition_and_formula_help.html @@ -0,0 +1,47 @@ +

    Variables

    +
      +
    • + Variables from Salary Structure Assignment:
      + base = Base, variable = Variable etc. +
    • +
    • + Variables from Employee:
      Employment Type = employment_type, Branch = branch etc. +
    • +
    • + Variables from Salary Slip:
      + Payment Days = payment_days, Leave without pay = leave_without_pay etc. +
    • +
    • + Abbreviation from Salary Component:
      + BS = Basic Salary etc. +
    • +
    • + Some additional variable:
      + gross_pay and annual_taxable_earning can also be used. +
    • +
    • Direct Amount can also be used
    • +
    + +

    Examples for Conditions and formula

    +
      +
    • + Calculating Basic Salary based on base +
      Condition: base < 10000
      +
      Formula: base * .2
      +
    • +
    • + Calculating HRA based on Basic SalaryBS +
      Condition: BS > 2000
      +
      Formula: BS * .1
      +
    • +
    • + Calculating TDS based on Employment Typeemployment_type +
      Condition: employment_type=="Intern"
      +
      Amount: 1000
      +
    • +
    • + Calculating Income Tax based on annual_taxable_earning +
      Condition: annual_taxable_earning > 20000000
      +
      Formula: annual_taxable_earning * 0.10 
      +
    • +
    diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure.js new file mode 100755 index 000000000..aab126355 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure.js @@ -0,0 +1,373 @@ +// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +// License: GNU General Public License v3. See license.txt + +frappe.ui.form.on("Salary Structure", { + onload: function (frm) { + frm.alerted_rows = []; + + let help_button = $(` + ${__("Condition and Formula Help")} + `).click(() => { + let d = new frappe.ui.Dialog({ + title: __("Condition and Formula Help"), + fields: [ + { + fieldname: "msg_wrapper", + fieldtype: "HTML", + }, + ], + }); + + let message_html = frappe.render_template("condition_and_formula_help"); + + d.fields_dict.msg_wrapper.$wrapper.append(message_html); + + d.show(); + }); + let help_button_wrapper = frm.get_field( + "conditions_and_formula_variable_and_example", + ).$wrapper; + help_button_wrapper.empty(); + help_button_wrapper.append(frm.doc.filters_html).append(help_button); + + frm.toggle_reqd(["payroll_frequency"], !frm.doc.salary_slip_based_on_timesheet); + + frm.set_query("payment_account", function () { + var account_types = ["Bank", "Cash"]; + return { + filters: { + account_type: ["in", account_types], + is_group: 0, + company: frm.doc.company, + }, + }; + }); + frm.trigger("set_earning_deduction_component"); + }, + + mode_of_payment: function (frm) { + erpnext.accounts.pos.get_payment_mode_account( + frm, + frm.doc.mode_of_payment, + function (account) { + frm.set_value("payment_account", account); + }, + ); + }, + + set_earning_deduction_component: function (frm) { + if (!frm.doc.company) return; + frm.set_query("salary_component", "earnings", function () { + return { + filters: { component_type: "earning", company: frm.doc.company }, + query: "hrms.payroll.doctype.salary_structure.salary_structure.get_salary_component", + }; + }); + frm.set_query("salary_component", "deductions", function () { + return { + filters: { component_type: "deduction", company: frm.doc.company }, + query: "hrms.payroll.doctype.salary_structure.salary_structure.get_salary_component", + }; + }); + }, + + company: function (frm) { + frm.trigger("set_earning_deduction_component"); + }, + + currency: function (frm) { + calculate_totals(frm.doc); + frm.trigger("set_dynamic_labels"); + frm.refresh(); + }, + + set_dynamic_labels: function (frm) { + frm.set_currency_labels( + [ + "net_pay", + "hour_rate", + "leave_encashment_amount_per_day", + "max_benefits", + "total_earning", + "total_deduction", + ], + frm.doc.currency, + ); + + frm.set_currency_labels( + ["amount", "additional_amount", "tax_on_flexible_benefit", "tax_on_additional_salary"], + frm.doc.currency, + "earnings", + ); + + frm.set_currency_labels( + ["amount", "additional_amount", "tax_on_flexible_benefit", "tax_on_additional_salary"], + frm.doc.currency, + "deductions", + ); + + frm.refresh_fields(); + }, + + refresh: function (frm) { + frm.trigger("set_dynamic_labels"); + frm.trigger("toggle_fields"); + frm.fields_dict["earnings"].grid.set_column_disp("default_amount", false); + frm.fields_dict["deductions"].grid.set_column_disp("default_amount", false); + + if (frm.doc.docstatus === 1) { + frm.add_custom_button( + __("Single Assignment"), + function () { + const doc = frappe.model.get_new_doc("Salary Structure Assignment"); + doc.salary_structure = frm.doc.name; + doc.company = frm.doc.company; + frappe.set_route("Form", "Salary Structure Assignment", doc.name); + }, + __("Create"), + ); + + frm.add_custom_button( + __("Bulk Assignments"), + () => { + const doc = frappe.model.get_new_doc("Bulk Salary Structure Assignment"); + doc.salary_structure = frm.doc.name; + doc.company = frm.doc.company; + frappe.set_route("Form", "Bulk Salary Structure Assignment", doc.name); + }, + __("Create"), + ); + + frm.add_custom_button( + __("Income Tax Slab"), + () => { + frappe.model.with_doctype("Income Tax Slab", () => { + const doc = frappe.model.get_new_doc("Income Tax Slab"); + frappe.set_route("Form", "Income Tax Slab", doc.name); + }); + }, + __("Create"), + ); + + frm.page.set_inner_btn_group_as_primary(__("Create")); + + frm.add_custom_button( + __("Preview Salary Slip"), + function () { + frm.trigger("preview_salary_slip"); + }, + __("Actions"), + ); + } + + // set columns read-only + let fields_read_only = [ + "is_tax_applicable", + "is_flexible_benefit", + "variable_based_on_taxable_salary", + ]; + fields_read_only.forEach(function (field) { + frm.fields_dict.earnings.grid.update_docfield_property(field, "read_only", 1); + frm.fields_dict.deductions.grid.update_docfield_property(field, "read_only", 1); + }); + frm.trigger("set_earning_deduction_component"); + }, + + salary_slip_based_on_timesheet: function (frm) { + frm.trigger("toggle_fields"); + }, + + preview_salary_slip: function (frm) { + frappe.call({ + method: "hrms.payroll.doctype.salary_structure.salary_structure.get_employees", + args: { + salary_structure: frm.doc.name, + }, + callback: function (r) { + var employees = r.message; + if (!employees) return; + if (employees.length == 1) { + frm.events.open_salary_slip(frm, employees[0]); + } else { + var d = new frappe.ui.Dialog({ + title: __("Preview Salary Slip"), + fields: [ + { + label: __("Employee"), + fieldname: "employee", + fieldtype: "Autocomplete", + reqd: true, + options: employees, + }, + { + fieldname: "fetch", + label: __("Show Salary Slip"), + fieldtype: "Button", + }, + ], + }); + d.get_input("fetch").on("click", function () { + var values = d.get_values(); + if (!values) return; + frm.events.open_salary_slip(frm, values.employee); + }); + d.show(); + } + }, + }); + }, + + open_salary_slip: function (frm, employee) { + var print_format = frm.doc.salary_slip_based_on_timesheet + ? "Salary Slip based on Timesheet" + : "Salary Slip Standard"; + frappe.call({ + method: "hrms.payroll.doctype.salary_structure.salary_structure.make_salary_slip", + args: { + source_name: frm.doc.name, + employee: employee, + as_print: 1, + print_format: print_format, + for_preview: 1, + }, + callback: function (r) { + var new_window = window.open(); + new_window.document.write(r.message); + }, + }); + }, + + toggle_fields: function (frm) { + frm.toggle_display( + ["salary_component", "hour_rate"], + frm.doc.salary_slip_based_on_timesheet, + ); + frm.toggle_reqd(["salary_component", "hour_rate"], frm.doc.salary_slip_based_on_timesheet); + frm.toggle_reqd(["payroll_frequency"], !frm.doc.salary_slip_based_on_timesheet); + }, +}); + +var validate_date = function (frm, cdt, cdn) { + var doc = locals[cdt][cdn]; + if (doc.to_date && doc.from_date) { + var from_date = frappe.datetime.str_to_obj(doc.from_date); + var to_date = frappe.datetime.str_to_obj(doc.to_date); + + if (to_date < from_date) { + frappe.model.set_value(cdt, cdn, "to_date", ""); + frappe.throw(__("From Date cannot be greater than To Date")); + } + } +}; + +// nosemgrep: frappe-semgrep-rules.rules.frappe-cur-frm-usage +cur_frm.cscript.amount = function (doc, cdt, cdn) { + calculate_totals(doc, cdt, cdn); +}; + +var calculate_totals = function (doc) { + var tbl1 = doc.earnings || []; + var tbl2 = doc.deductions || []; + + var total_earn = 0; + var total_ded = 0; + for (var i = 0; i < tbl1.length; i++) { + total_earn += flt(tbl1[i].amount); + } + for (var j = 0; j < tbl2.length; j++) { + total_ded += flt(tbl2[j].amount); + } + doc.total_earning = total_earn; + doc.total_deduction = total_ded; + doc.net_pay = 0.0; + if (doc.salary_slip_based_on_timesheet == 0) { + doc.net_pay = flt(total_earn) - flt(total_ded); + } + + refresh_many(["total_earning", "total_deduction", "net_pay"]); +}; + +// nosemgrep: frappe-semgrep-rules.rules.frappe-cur-frm-usage +cur_frm.cscript.validate = function (doc, cdt, cdn) { + calculate_totals(doc); +}; + +frappe.ui.form.on("Salary Detail", { + form_render: function (frm, cdt, cdn) { + const row = locals[cdt][cdn]; + hrms.payroll_utils.set_autocompletions_for_condition_and_formula(frm, row); + }, + + amount: function (frm) { + calculate_totals(frm.doc); + }, + + earnings_remove: function (frm) { + calculate_totals(frm.doc); + }, + + deductions_remove: function (frm) { + calculate_totals(frm.doc); + }, + + formula: function (frm, cdt, cdn) { + const row = locals[cdt][cdn]; + if (row.formula && !row?.amount_based_on_formula && !frm.alerted_rows.includes(cdn)) { + frappe.msgprint({ + message: __( + "{0} Row #{1}: {2} needs to be enabled for the formula to be considered.", + [toTitle(row.parentfield), row.idx, __("Amount based on formula").bold()], + ), + title: __("Warning"), + indicator: "orange", + }); + frm.alerted_rows.push(cdn); + } + }, + + salary_component: function (frm, cdt, cdn) { + var child = locals[cdt][cdn]; + if (child.salary_component) { + frappe.call({ + method: "frappe.client.get", + args: { + doctype: "Salary Component", + name: child.salary_component, + }, + callback: function (data) { + if (data.message) { + var result = data.message; + frappe.model.set_value(cdt, cdn, { + condition: result.condition, + amount_based_on_formula: result.amount_based_on_formula, + statistical_component: result.statistical_component, + depends_on_payment_days: result.depends_on_payment_days, + do_not_include_in_total: result.do_not_include_in_total, + do_not_include_in_accounts: result.do_not_include_in_accounts, + variable_based_on_taxable_salary: + result.variable_based_on_taxable_salary, + is_tax_applicable: result.is_tax_applicable, + is_flexible_benefit: result.is_flexible_benefit, + ...(result.amount_based_on_formula == 1 + ? { formula: result.formula } + : { amount: result.amount }), + }); + refresh_field("earnings"); + refresh_field("deductions"); + } + }, + }); + } + }, + + amount_based_on_formula: function (frm, cdt, cdn) { + var child = locals[cdt][cdn]; + if (child.amount_based_on_formula == 1) { + frappe.model.set_value(cdt, cdn, "amount", null); + const index = frm.alerted_rows.indexOf(cdn); + if (index > -1) frm.alerted_rows.splice(index, 1); + } else { + frappe.model.set_value(cdt, cdn, "formula", null); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure.json new file mode 100644 index 000000000..b42449bd7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure.json @@ -0,0 +1,302 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "Prompt", + "creation": "2013-03-07 18:50:29", + "doctype": "DocType", + "document_type": "Document", + "engine": "InnoDB", + "field_order": [ + "company", + "letter_head", + "column_break1", + "is_active", + "is_default", + "currency", + "amended_from", + "time_sheet_earning_detail", + "leave_encashment_amount_per_day", + "max_benefits", + "column_break_17", + "salary_slip_based_on_timesheet", + "payroll_frequency", + "salary_component", + "hour_rate", + "earning_deduction", + "column_break_besp", + "earnings", + "deductions", + "employee_benefits", + "conditions_and_formula_variable_and_example", + "net_pay_detail", + "total_earning", + "total_deduction", + "column_break2", + "net_pay", + "account", + "mode_of_payment", + "column_break_28", + "payment_account" + ], + "fields": [ + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "remember_last_selected_value": 1, + "reqd": 1, + "search_index": 1 + }, + { + "allow_on_submit": 1, + "fetch_from": "company.default_letter_head", + "fetch_if_empty": 1, + "fieldname": "letter_head", + "fieldtype": "Link", + "label": "Letter Head", + "options": "Letter Head" + }, + { + "fieldname": "column_break1", + "fieldtype": "Column Break", + "width": "50%" + }, + { + "allow_on_submit": 1, + "default": "Yes", + "fieldname": "is_active", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Is Active", + "oldfieldname": "is_active", + "oldfieldtype": "Select", + "options": "\nYes\nNo", + "reqd": 1 + }, + { + "default": "Monthly", + "depends_on": "eval:doc.salary_slip_based_on_timesheet == 0", + "fieldname": "payroll_frequency", + "fieldtype": "Select", + "label": "Payroll Frequency", + "options": "\nMonthly\nFortnightly\nBimonthly\nWeekly\nDaily", + "search_index": 1 + }, + { + "default": "No", + "fieldname": "is_default", + "fieldtype": "Select", + "hidden": 1, + "label": "Is Default", + "no_copy": 1, + "options": "Yes\nNo", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "time_sheet_earning_detail", + "fieldtype": "Section Break" + }, + { + "default": "0", + "fieldname": "salary_slip_based_on_timesheet", + "fieldtype": "Check", + "label": "Salary Slip Based on Timesheet", + "search_index": 1 + }, + { + "fieldname": "column_break_17", + "fieldtype": "Column Break" + }, + { + "description": "Salary Component for timesheet based payroll.", + "fieldname": "salary_component", + "fieldtype": "Link", + "label": "Salary Component", + "options": "Salary Component" + }, + { + "fieldname": "hour_rate", + "fieldtype": "Currency", + "label": "Hour Rate", + "options": "currency" + }, + { + "allow_on_submit": 1, + "fieldname": "leave_encashment_amount_per_day", + "fieldtype": "Currency", + "label": "Leave Encashment Amount Per Day", + "options": "currency" + }, + { + "fieldname": "max_benefits", + "fieldtype": "Currency", + "label": "Max Benefits (Amount)", + "options": "currency" + }, + { + "description": "Salary breakup based on Earning and Deduction.", + "fieldname": "earning_deduction", + "fieldtype": "Tab Break", + "label": "Earnings & Deductions", + "oldfieldname": "earning_deduction", + "oldfieldtype": "Section Break", + "precision": "2" + }, + { + "fieldname": "earnings", + "fieldtype": "Table", + "label": "Earnings", + "oldfieldname": "earning_details", + "oldfieldtype": "Table", + "options": "Salary Detail" + }, + { + "fieldname": "deductions", + "fieldtype": "Table", + "label": "Deductions", + "oldfieldname": "deduction_details", + "oldfieldtype": "Table", + "options": "Salary Detail" + }, + { + "fieldname": "net_pay_detail", + "fieldtype": "Section Break", + "options": "Simple" + }, + { + "fieldname": "column_break2", + "fieldtype": "Column Break", + "width": "50%" + }, + { + "fieldname": "total_earning", + "fieldtype": "Currency", + "hidden": 1, + "label": "Total Earning", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "total_deduction", + "fieldtype": "Currency", + "hidden": 1, + "label": "Total Deduction", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "net_pay", + "fieldtype": "Currency", + "hidden": 1, + "label": "Net Pay", + "options": "currency", + "read_only": 1 + }, + { + "fieldname": "account", + "fieldtype": "Tab Break", + "label": "Account" + }, + { + "fieldname": "mode_of_payment", + "fieldtype": "Link", + "label": "Mode of Payment", + "options": "Mode of Payment" + }, + { + "fieldname": "column_break_28", + "fieldtype": "Column Break" + }, + { + "fieldname": "payment_account", + "fieldtype": "Link", + "label": "Payment Account", + "options": "Account" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Salary Structure", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "conditions_and_formula_variable_and_example", + "fieldtype": "HTML", + "label": "Conditions and Formula variable and example" + }, + { + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "reqd": 1, + "search_index": 1 + }, + { + "description": "Enter yearly benefit amounts", + "fieldname": "employee_benefits", + "fieldtype": "Table", + "label": "Flexible Benefits", + "options": "Employee Benefit Detail" + }, + { + "fieldname": "column_break_besp", + "fieldtype": "Column Break" + } + ], + "icon": "fa fa-file-text", + "idx": 1, + "is_submittable": 1, + "links": [], + "modified": "2025-09-15 15:56:52.814944", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Structure", + "naming_rule": "Set by user", + "owner": "Administrator", + "permissions": [ + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "import": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "show_name_in_global_search": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure.py new file mode 100644 index 000000000..8d7900041 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure.py @@ -0,0 +1,468 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import re + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.model.mapper import get_mapped_doc +from frappe.utils import cint, cstr, flt, get_link_to_form + +import erpnext + +from hrms.payroll.utils import sanitize_expression + + +class SalaryStructure(Document): + def before_validate(self): + self.sanitize_condition_and_formula_fields() + + def before_update_after_submit(self): + self.sanitize_condition_and_formula_fields() + + def validate(self): + self.set_missing_values() + self.validate_amount() + self.validate_component_based_on_tax_slab() + self.validate_payment_days_based_dependent_component() + self.validate_timesheet_component() + self.validate_formula_setup() + validate_max_benefit_for_flexible_benefit(self.employee_benefits, self.max_benefits) + + def on_update(self): + self.reset_condition_and_formula_fields() + + def on_update_after_submit(self): + self.reset_condition_and_formula_fields() + + def validate_formula_setup(self): + for table in ["earnings", "deductions"]: + for row in self.get(table): + if not row.amount_based_on_formula and row.formula: + frappe.msgprint( + _( + "{0} Row #{1}: Formula is set but {2} is disabled for the Salary Component {3}." + ).format( + table.capitalize(), + row.idx, + frappe.bold(_("Amount Based on Formula")), + frappe.bold(row.salary_component), + ), + title=_("Warning"), + indicator="orange", + ) + + def set_missing_values(self): + overwritten_fields = [ + "depends_on_payment_days", + "variable_based_on_taxable_salary", + "is_tax_applicable", + "is_flexible_benefit", + ] + overwritten_fields_if_missing = ["amount_based_on_formula", "formula", "amount"] + for table in ["earnings", "deductions"]: + for d in self.get(table): + component_default_value = frappe.db.get_value( + "Salary Component", + cstr(d.salary_component), + overwritten_fields + overwritten_fields_if_missing, + as_dict=1, + ) + if component_default_value: + for fieldname in overwritten_fields: + value = component_default_value.get(fieldname) + if d.get(fieldname) != value: + d.set(fieldname, value) + + if not (d.get("amount") or d.get("formula")): + for fieldname in overwritten_fields_if_missing: + d.set(fieldname, component_default_value.get(fieldname)) + + def validate_component_based_on_tax_slab(self): + for row in self.deductions: + if row.variable_based_on_taxable_salary and (row.amount or row.formula): + frappe.throw( + _( + "Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary" + ).format(row.idx, row.salary_component) + ) + + def validate_amount(self): + if flt(self.net_pay) < 0 and self.salary_slip_based_on_timesheet: + frappe.throw(_("Net pay cannot be negative")) + + def validate_payment_days_based_dependent_component(self): + abbreviations = self.get_component_abbreviations() + for component_type in ("earnings", "deductions"): + for row in self.get(component_type): + if ( + row.formula + and row.depends_on_payment_days + # check if the formula contains any of the payment days components + and any(re.search(r"\b" + abbr + r"\b", row.formula) for abbr in abbreviations) + ): + message = _("Row #{0}: The {1} Component has the options {2} and {3} enabled.").format( + row.idx, + frappe.bold(row.salary_component), + frappe.bold(_("Amount based on formula")), + frappe.bold(_("Depends On Payment Days")), + ) + message += "

    " + _( + "Disable {0} for the {1} component, to prevent the amount from being deducted twice, as its formula already uses a payment-days-based component." + ).format(frappe.bold(_("Depends On Payment Days")), frappe.bold(row.salary_component)) + frappe.throw(message, title=_("Payment Days Dependency")) + + def get_component_abbreviations(self): + abbr = [d.abbr for d in self.earnings if d.depends_on_payment_days] + abbr += [d.abbr for d in self.deductions if d.depends_on_payment_days] + + return abbr + + def validate_timesheet_component(self): + if not self.salary_slip_based_on_timesheet: + return + + for component in self.earnings: + if component.salary_component == self.salary_component: + frappe.msgprint( + _( + "Row #{0}: Timesheet amount will overwrite the Earning component amount for the Salary Component {1}" + ).format(self.idx, frappe.bold(self.salary_component)), + title=_("Warning"), + indicator="orange", + ) + break + + def sanitize_condition_and_formula_fields(self): + for table in ("earnings", "deductions"): + for row in self.get(table): + row.condition = row.condition.strip() if row.condition else "" + row.formula = row.formula.strip() if row.formula else "" + row._condition, row.condition = row.condition, sanitize_expression(row.condition) + row._formula, row.formula = row.formula, sanitize_expression(row.formula) + + def reset_condition_and_formula_fields(self): + # set old values (allowing multiline strings for better readability in the doctype form) + for table in ("earnings", "deductions"): + for row in self.get(table): + row.condition = row._condition + row.formula = row._formula + + self.db_update_all() + + def get_employees(self, **kwargs): + conditions, values = [], [] + for field, value in kwargs.items(): + if value: + conditions.append(f"{field}=%s") + values.append(value) + + condition_str = " and " + " and ".join(conditions) if conditions else "" + + # nosemgrep: frappe-semgrep-rules.rules.frappe-using-db-sql + employees = frappe.db.sql_list( + f"select name from tabEmployee where status='Active' {condition_str}", + tuple(values), + ) + + return employees + + @frappe.whitelist() + def assign_salary_structure( + self, + branch=None, + grade=None, + department=None, + designation=None, + employee=None, + payroll_payable_account=None, + from_date=None, + base=None, + variable=None, + income_tax_slab=None, + ): + employees = self.get_employees( + company=self.company, + grade=grade, + department=department, + designation=designation, + name=employee, + branch=branch, + ) + + if employees: + if len(employees) > 20: + frappe.enqueue( + assign_salary_structure_for_employees, + timeout=3000, + employees=employees, + salary_structure=self, + payroll_payable_account=payroll_payable_account, + from_date=from_date, + base=base, + variable=variable, + income_tax_slab=income_tax_slab, + ) + else: + assign_salary_structure_for_employees( + employees, + self, + payroll_payable_account=payroll_payable_account, + from_date=from_date, + base=base, + variable=variable, + income_tax_slab=income_tax_slab, + ) + else: + frappe.msgprint(_("No Employee Found")) + + +def assign_salary_structure_for_employees( + employees, + salary_structure, + payroll_payable_account=None, + from_date=None, + base=None, + variable=None, + income_tax_slab=None, +): + assignments = [] + existing_assignments_for = get_existing_assignments(employees, salary_structure, from_date) + count = 0 + savepoint = "before_assignment_submission" + + for employee in employees: + try: + frappe.db.savepoint(savepoint) + if employee in existing_assignments_for: + continue + + count += 1 + + assignment = create_salary_structure_assignment( + employee, + salary_structure.name, + salary_structure.company, + salary_structure.currency, + from_date, + payroll_payable_account, + base, + variable, + income_tax_slab, + ) + assignments.append(assignment) + frappe.publish_progress( + count * 100 / len(set(employees) - set(existing_assignments_for)), + title=_("Assigning Structures..."), + ) + except Exception: + frappe.db.rollback(save_point=savepoint) + frappe.log_error( + f"Salary Structure Assignment failed for employee {employee}", + reference_doctype="Salary Structure Assignment", + ) + + if assignments: + frappe.msgprint(_("Structures have been assigned successfully")) + + +def create_salary_structure_assignment( + employee, + salary_structure, + company, + currency, + from_date, + payroll_payable_account=None, + base=None, + variable=None, + income_tax_slab=None, +): + assignment = frappe.new_doc("Salary Structure Assignment") + + if not payroll_payable_account: + payroll_payable_account = frappe.db.get_value("Company", company, "default_payroll_payable_account") + if not payroll_payable_account: + frappe.throw(_('Please set "Default Payroll Payable Account" in Company Defaults')) + + payroll_payable_account_currency = frappe.db.get_value( + "Account", payroll_payable_account, "account_currency" + ) + company_curency = erpnext.get_company_currency(company) + if payroll_payable_account_currency != currency and payroll_payable_account_currency != company_curency: + frappe.throw( + _("Invalid Payroll Payable Account. The account currency must be {0} or {1}").format( + currency, company_curency + ) + ) + + assignment.employee = employee + assignment.salary_structure = salary_structure + assignment.company = company + assignment.currency = currency + assignment.payroll_payable_account = payroll_payable_account + assignment.from_date = from_date + assignment.base = base + assignment.variable = variable + assignment.income_tax_slab = income_tax_slab + assignment.save(ignore_permissions=True) + assignment.submit() + + return assignment.name + + +def get_existing_assignments(employees, salary_structure, from_date): + # nosemgrep: frappe-semgrep-rules.rules.frappe-using-db-sql + salary_structures_assignments = frappe.db.sql_list( + f""" + SELECT DISTINCT employee FROM `tabSalary Structure Assignment` + WHERE salary_structure=%s AND employee IN ({", ".join(["%s"] * len(employees))}) + AND from_date=%s AND company=%s AND docstatus=1 + """, + [salary_structure.name, *employees, from_date, salary_structure.company], + ) + if salary_structures_assignments: + frappe.msgprint( + _( + "Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}" + ).format("\n".join(salary_structures_assignments)) + ) + return salary_structures_assignments + + +@frappe.whitelist() +def make_salary_slip( + source_name, + target_doc=None, + employee=None, + posting_date=None, + as_print=False, + print_format=None, + for_preview=0, + ignore_permissions=False, + lwp_days_corrected=None, +): + def postprocess(source, target): + if employee: + target.employee = employee + if posting_date: + target.posting_date = posting_date + + target.run_method( + "process_salary_structure", for_preview=for_preview, lwp_days_corrected=lwp_days_corrected + ) + + doc = get_mapped_doc( + "Salary Structure", + source_name, + { + "Salary Structure": { + "doctype": "Salary Slip", + "field_map": { + "total_earning": "gross_pay", + "name": "salary_structure", + "currency": "currency", + }, + } + }, + target_doc, + postprocess, + ignore_child_tables=True, + ignore_permissions=ignore_permissions, + cached=True, + ) + + if cint(as_print): + doc.name = f"Preview for {employee}" + return frappe.get_print(doc.doctype, doc.name, doc=doc, print_format=print_format) + else: + return doc + + +@frappe.whitelist() +def get_employees(salary_structure): + employees = frappe.get_list( + "Salary Structure Assignment", + filters={"salary_structure": salary_structure, "docstatus": 1}, + pluck="employee", + ) + + if not employees: + frappe.throw( + _( + "There's no Employee with Salary Structure: {0}. Assign {1} to an Employee to preview Salary Slip" + ).format(salary_structure, salary_structure) + ) + + return list(set(employees)) + + +@frappe.whitelist() +def get_salary_component(doctype, txt, searchfield, start, page_len, filters): + sc = frappe.qb.DocType("Salary Component") + sca = frappe.qb.DocType("Salary Component Account") + + salary_components = ( + frappe.qb.from_(sc) + .left_join(sca) + .on(sca.parent == sc.name) + .select(sc.name, sca.account, sca.company) + .where( + (sc.type == filters.get("component_type")) + & (sc.disabled == 0) + & (sc[searchfield].like(f"%{txt}%") | sc.name.like(f"%{txt}%")) + ) + .limit(page_len) + .offset(start) + ).run(as_dict=True) + + accounts = [] + for component in salary_components: + if not component.company: + accounts.append((component.name, component.account, component.company)) + else: + if component.company == filters["company"]: + accounts.append((component.name, component.account, component.company)) + + return accounts + + +def validate_max_benefit_for_flexible_benefit(employee_benefits, max_benefits=None): + if not employee_benefits: + return + + benefit_total = 0 + benefit_components = [] + + for benefit in employee_benefits: + if benefit.salary_component in benefit_components: + frappe.throw( + _("Salary Component {0} cannot be selected more than once in Employee Benefits").format( + benefit.salary_component + ) + ) + + benefit_total += benefit.amount + max_of_component = frappe.db.get_value( + "Salary Component", benefit.salary_component, "max_benefit_amount" + ) + if max_of_component and max_of_component > 0 and benefit.amount > max_of_component: + frappe.throw( + _( + "Benefit amount {0} for Salary Component {1} should not be greater than maximum benefit amount {2} set in {3}" + ).format( + benefit.amount, + benefit.salary_component, + max_of_component, + get_link_to_form("Salary Component", benefit.salary_component), + ) + ) + benefit_components.append(benefit.salary_component) + + if max_benefits and benefit_total > max_benefits: + frappe.throw( + _("Total of all employee benefits cannot be greater that Max Benefits Amount {0}").format( + max_benefits + ), + title=_("Invalid Benefit Amounts"), + ) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure_dashboard.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure_dashboard.py new file mode 100644 index 000000000..cf363b410 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure_dashboard.py @@ -0,0 +1,9 @@ +def get_data(): + return { + "fieldname": "salary_structure", + "non_standard_fieldnames": {"Employee Grade": "default_salary_structure"}, + "transactions": [ + {"items": ["Salary Structure Assignment", "Salary Slip"]}, + {"items": ["Employee Grade"]}, + ], + } diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure_list.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure_list.js new file mode 100644 index 000000000..0efc391f1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/salary_structure_list.js @@ -0,0 +1,7 @@ +frappe.listview_settings["Salary Structure"] = { + onload: function (list_view) { + list_view.page.add_inner_button(__("Bulk Salary Structure Assignment"), function () { + frappe.set_route("Form", "Bulk Salary Structure Assignment"); + }); + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/test_salary_structure.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/test_salary_structure.py new file mode 100644 index 000000000..efb650a81 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure/test_salary_structure.py @@ -0,0 +1,304 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import add_years, cstr, date_diff, get_first_day, nowdate +from frappe.utils.make_random import get_random + +import erpnext +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.payroll.doctype.employee_tax_exemption_declaration.test_employee_tax_exemption_declaration import ( + create_payroll_period, +) +from hrms.payroll.doctype.salary_slip.test_salary_slip import ( + create_tax_slab, + make_deduction_salary_component, + make_earning_salary_component, + make_employee_benefit_earning_components, + make_employee_salary_slip, +) +from hrms.payroll.doctype.salary_structure.salary_structure import make_salary_slip +from hrms.tests.test_utils import create_employee_grade + +test_dependencies = ["Fiscal Year"] + + +class TestSalaryStructure(IntegrationTestCase): + def setUp(self): + for dt in ["Salary Slip", "Salary Structure", "Salary Structure Assignment"]: + frappe.db.sql("delete from `tab%s`" % dt) + + self.make_holiday_list() + frappe.db.set_value( + "Company", + erpnext.get_default_company(), + "default_holiday_list", + "Salary Structure Test Holiday List", + ) + make_employee("test_employee@salary.com") + make_employee("test_employee_2@salary.com") + + def make_holiday_list(self): + if not frappe.db.get_value("Holiday List", "Salary Structure Test Holiday List"): + holiday_list = frappe.get_doc( + { + "doctype": "Holiday List", + "holiday_list_name": "Salary Structure Test Holiday List", + "from_date": nowdate(), + "to_date": add_years(nowdate(), 1), + "weekly_off": "Sunday", + } + ).insert() + holiday_list.get_weekly_off_dates() + holiday_list.save() + + def test_salary_structure_deduction_based_on_gross_pay(self): + emp = make_employee("test_employee_3@salary.com") + + sal_struct = make_salary_structure("Salary Structure 2", "Monthly", dont_submit=True) + + sal_struct.earnings = [sal_struct.earnings[0]] + sal_struct.earnings[0].amount_based_on_formula = 1 + sal_struct.earnings[0].formula = "base" + + sal_struct.deductions = [sal_struct.deductions[0]] + + sal_struct.deductions[0].amount_based_on_formula = 1 + sal_struct.deductions[0].condition = "gross_pay > 100" + sal_struct.deductions[0].formula = "gross_pay * 0.2" + + sal_struct.submit() + + assignment = create_salary_structure_assignment(emp, "Salary Structure 2") + ss = make_salary_slip(sal_struct.name, employee=emp) + + self.assertEqual(assignment.base * 0.2, ss.deductions[0].amount) + + def test_amount_totals(self): + frappe.db.set_single_value("Payroll Settings", "include_holidays_in_total_working_days", 0) + emp_id = make_employee("test_employee_2@salary.com") + salary_slip = frappe.get_value("Salary Slip", {"employee": emp_id}) + + if not salary_slip: + salary_slip = make_employee_salary_slip(emp_id, "Monthly", "Salary Structure Sample") + self.assertEqual(salary_slip.get("salary_structure"), "Salary Structure Sample") + self.assertEqual(salary_slip.get("earnings")[0].amount, 50000) + self.assertEqual(salary_slip.get("earnings")[1].amount, 3000) + self.assertEqual(salary_slip.get("earnings")[2].amount, 25000) + self.assertEqual(salary_slip.get("gross_pay"), 78000) + self.assertEqual(salary_slip.get("deductions")[0].amount, 200) + self.assertEqual(salary_slip.get("net_pay"), 78000 - salary_slip.get("total_deduction")) + + def test_whitespaces_in_formula_conditions_fields(self): + def add_whitespaces(row): + row.formula = "\n%s\n\n" % row.formula + row.condition = "\n%s\n\n" % row.condition + + salary_structure = make_salary_structure("Salary Structure Sample", "Monthly", dont_submit=True) + for table in ("earnings", "deductions"): + for row in salary_structure.get(table): + add_whitespaces(row) + + # sanitized before validate and reset to original state to maintain readability + salary_structure.sanitize_condition_and_formula_fields() + + for row in salary_structure.earnings: + self.assertFalse("\n" in cstr(row.formula) or "\n" in cstr(row.condition)) + + for row in salary_structure.deductions: + self.assertFalse("\n" in cstr(row.formula) or "\n" in cstr(row.condition)) + + def test_salary_structures_assignment(self): + company_currency = erpnext.get_default_currency() + salary_structure = make_salary_structure( + "Salary Structure Sample", "Monthly", currency=company_currency + ) + employee = "test_assign_structure@salary.com" + employee_doc_name = make_employee(employee) + # clear the already assigned structures + frappe.db.sql( + """delete from `tabSalary Structure Assignment` where employee=%s and salary_structure=%s """, + ("test_assign_structure@salary.com", salary_structure.name), + ) + # test structure_assignment + salary_structure.assign_salary_structure( + employee=employee_doc_name, from_date="2013-01-01", base=5000, variable=200 + ) + salary_structure_assignment = frappe.get_doc( + "Salary Structure Assignment", {"employee": employee_doc_name, "from_date": "2013-01-01"} + ) + self.assertEqual(salary_structure_assignment.docstatus, 1) + self.assertEqual(salary_structure_assignment.base, 5000) + self.assertEqual(salary_structure_assignment.variable, 200) + + def test_employee_grade_defaults(self): + salary_structure = make_salary_structure( + "Salary Structure - Lead", "Monthly", currency="INR", company="_Test Company" + ) + create_employee_grade("Lead", salary_structure.name) + employee = make_employee("test_employee_grade@salary.com", company="_Test Company", grade="Lead") + + # structure assignment should have the default salary structure and base pay + salary_structure.assign_salary_structure(employee=employee, from_date=nowdate()) + structure, base = frappe.db.get_value( + "Salary Structure Assignment", + {"employee": employee, "salary_structure": salary_structure.name, "from_date": nowdate()}, + ["salary_structure", "base"], + ) + self.assertEqual(structure, salary_structure.name) + self.assertEqual(base, 50000) + + def test_multi_currency_salary_structure(self): + make_employee("test_muti_currency_employee@salary.com") + sal_struct = make_salary_structure("Salary Structure Multi Currency", "Monthly", currency="USD") + self.assertEqual(sal_struct.currency, "USD") + + +def make_salary_structure( + salary_structure, + payroll_frequency, + employee=None, + from_date=None, + dont_submit=False, + other_details=None, + test_tax=False, + company=None, + currency=None, + payroll_period=None, + include_flexi_benefits=False, + base=None, + test_accrual_component=False, + test_arrear=False, + test_salary_structure_arrear=False, +): + if not currency: + currency = erpnext.get_default_currency() + + if frappe.db.exists("Salary Structure", salary_structure): + frappe.db.delete("Salary Structure", salary_structure) + + employee_benefits = [] + if include_flexi_benefits: + employee_benefits = make_employee_benefit_earning_components( + setup=True, + company_list=["_Test Company"], + test_arrear=test_arrear, + ) + + details = { + "doctype": "Salary Structure", + "name": salary_structure, + "company": company or erpnext.get_default_company(), + "earnings": make_earning_salary_component( + setup=True, + test_tax=test_tax, + company_list=["_Test Company"], + test_accrual_component=test_accrual_component, + test_arrear=test_arrear, + ), + "deductions": make_deduction_salary_component( + setup=True, + test_tax=test_tax, + company_list=["_Test Company"], + test_salary_structure_arrear=test_salary_structure_arrear, + ), + "employee_benefits": employee_benefits, + "payroll_frequency": payroll_frequency, + "payment_account": get_random("Account", filters={"account_currency": currency}), + "currency": currency, + } + if other_details and isinstance(other_details, dict): + details.update(other_details) + salary_structure_doc = frappe.get_doc(details) + salary_structure_doc.insert() + if not dont_submit: + salary_structure_doc.submit() + + filters = {"employee": employee, "docstatus": 1} + if not from_date and payroll_period: + from_date = payroll_period.start_date + + if from_date: + filters["from_date"] = from_date + + if ( + employee + and not frappe.db.get_value("Salary Structure Assignment", filters) + and salary_structure_doc.docstatus == 1 + ): + create_salary_structure_assignment( + employee, + salary_structure, + from_date=from_date, + company=company, + currency=currency, + payroll_period=payroll_period, + base=base, + include_flexi_benefits=include_flexi_benefits, + ) + + return salary_structure_doc + + +def create_salary_structure_assignment( + employee, + salary_structure, + from_date=None, + company=None, + currency=None, + payroll_period=None, + base=None, + allow_duplicate=False, + include_flexi_benefits=False, + leave_encashment_amount_per_day=None, +): + if not currency: + currency = erpnext.get_default_currency() + + if not allow_duplicate and frappe.db.exists("Salary Structure Assignment", {"employee": employee}): + frappe.db.sql("""delete from `tabSalary Structure Assignment` where employee=%s""", (employee)) + + if not payroll_period: + payroll_period = create_payroll_period(company="_Test Company") + + income_tax_slab = frappe.db.get_value("Income Tax Slab", {"currency": currency, "docstatus": 1}) + + if not income_tax_slab: + income_tax_slab = create_tax_slab(payroll_period, allow_tax_exemption=True, currency=currency) + + employee_benefits = [] + if include_flexi_benefits: + employee_benefits = make_employee_benefit_earning_components() + + salary_structure_assignment = frappe.new_doc("Salary Structure Assignment") + salary_structure_assignment.employee = employee + salary_structure_assignment.base = base or 50000 + salary_structure_assignment.variable = 5000 + + if not from_date: + from_date = get_first_day(nowdate()) + joining_date = frappe.get_cached_value("Employee", employee, "date_of_joining") + if date_diff(joining_date, from_date) > 0: + from_date = joining_date + + salary_structure_assignment.from_date = from_date + salary_structure_assignment.salary_structure = salary_structure + salary_structure_assignment.currency = currency + salary_structure_assignment.payroll_payable_account = get_payable_account(company) + salary_structure_assignment.company = company or erpnext.get_default_company() + salary_structure_assignment.income_tax_slab = income_tax_slab + if leave_encashment_amount_per_day: + salary_structure_assignment.leave_encashment_amount_per_day = leave_encashment_amount_per_day + for benefit in employee_benefits: + salary_structure_assignment.append("employee_benefits", benefit) + salary_structure_assignment.save(ignore_permissions=True) + salary_structure_assignment.submit() + return salary_structure_assignment + + +def get_payable_account(company=None): + if not company: + company = erpnext.get_default_company() + return frappe.db.get_value("Company", company, "default_payroll_payable_account") diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js new file mode 100644 index 000000000..513fb9a24 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.js @@ -0,0 +1,191 @@ +// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Salary Structure Assignment", { + setup: function (frm) { + frm.set_query("employee", function () { + return { + query: "erpnext.controllers.queries.employee_query", + filters: { company: frm.doc.company }, + }; + }); + frm.set_query("salary_structure", function () { + return { + filters: { + company: frm.doc.company, + docstatus: 1, + is_active: "Yes", + }, + }; + }); + + frm.set_query("income_tax_slab", function () { + return { + filters: { + company: frm.doc.company, + docstatus: 1, + disabled: 0, + currency: frm.doc.currency, + }, + }; + }); + + frm.set_query("payroll_payable_account", function () { + var company_currency = erpnext.get_currency(frm.doc.company); + return { + filters: { + company: frm.doc.company, + root_type: "Liability", + is_group: 0, + account_currency: ["in", [frm.doc.currency, company_currency]], + }, + }; + }); + + frm.set_query("cost_center", "payroll_cost_centers", function () { + return { + filters: { + company: frm.doc.company, + is_group: 0, + }, + }; + }); + }, + + refresh: function (frm) { + frm.trigger("toggle_opening_balances_section"); + + if (frm.doc.docstatus != 1) return; + + frm.add_custom_button( + __("Payroll Entry"), + () => { + frappe.model.with_doctype("Payroll Entry", () => { + const doc = frappe.model.get_new_doc("Payroll Entry"); + frappe.set_route("Form", "Payroll Entry", doc.name); + }); + }, + __("Create"), + ); + frm.page.set_inner_btn_group_as_primary(__("Create")); + + frm.add_custom_button( + __("Preview Salary Slip"), + function () { + frm.trigger("preview_salary_slip"); + }, + __("Actions"), + ); + }, + + employee: function (frm) { + if (frm.doc.employee) { + frm.trigger("set_payroll_cost_centers"); + frm.trigger("toggle_opening_balances_section"); + } else { + frm.set_value("payroll_cost_centers", []); + } + }, + + company: function (frm) { + if (frm.doc.company) { + frappe.db.get_value( + "Company", + frm.doc.company, + "default_payroll_payable_account", + (r) => { + frm.set_value("payroll_payable_account", r.default_payroll_payable_account); + }, + ); + } + }, + + salary_structure: (frm) => { + if (frm.doc.salary_structure) { + frappe.db.get_doc("Salary Structure", frm.doc.salary_structure).then((doc) => { + frm.clear_table("employee_benefits"); + doc.employee_benefits.forEach((benefit) => { + const row = frm.add_child("employee_benefits"); + row.salary_component = benefit.salary_component; + row.amount = benefit.amount; + }); + refresh_field("employee_benefits"); + calculate_max_benefit_amount(frm.doc); + }); + } + }, + + preview_salary_slip: function (frm) { + frappe.db.get_value( + "Salary Structure", + frm.doc.salary_structure, + "salary_slip_based_on_timesheet", + (r) => { + const print_format = r.salary_slip_based_on_timesheet + ? "Salary Slip based on Timesheet" + : "Salary Slip Standard"; + frappe.call({ + method: "hrms.payroll.doctype.salary_structure.salary_structure.make_salary_slip", + args: { + source_name: frm.doc.salary_structure, + employee: frm.doc.employee, + posting_date: frm.doc.from_date, + as_print: 1, + print_format: print_format, + for_preview: 1, + }, + callback: function (r) { + const new_window = window.open(); + new_window.document.write(r.message); + }, + }); + }, + ); + }, + + set_payroll_cost_centers: function (frm) { + if (frm.doc.payroll_cost_centers && frm.doc.payroll_cost_centers.length < 1) { + frappe.call({ + method: "set_payroll_cost_centers", + doc: frm.doc, + callback: function (data) { + refresh_field("payroll_cost_centers"); + }, + }); + } + }, + + toggle_opening_balances_section: function (frm) { + if (!frm.doc.from_date || !frm.doc.employee || !frm.doc.salary_structure) return; + + frm.call("are_opening_entries_required").then((data) => { + if (data.message) { + frm.set_df_property("opening_balances_section", "hidden", 0); + } else { + frm.set_df_property("opening_balances_section", "hidden", 1); + } + }); + }, + + from_date: function (frm) { + if (frm.doc.from_date) { + frm.trigger("toggle_opening_balances_section"); + } + }, +}); + +frappe.ui.form.on("Employee Benefit Detail", { + amount: (frm) => calculate_max_benefit_amount(frm.doc), +}); + +let calculate_max_benefit_amount = (doc) => { + let employee_benefits = doc.employee_benefits || []; + let max_benefits = 0; + if (employee_benefits.length > 0) { + for (let i = 0; i < employee_benefits.length; i++) { + max_benefits += flt(employee_benefits[i].amount) || 0; + } + } + doc.max_benefits = max_benefits; + refresh_field("max_benefits"); +}; diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json new file mode 100644 index 000000000..e07e1c6fa --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.json @@ -0,0 +1,303 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "HR-SSA-.YY.-.MM.-.#####", + "creation": "2018-04-13 16:38:41.769237", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "employee", + "employee_name", + "department", + "designation", + "grade", + "column_break_6", + "salary_structure", + "from_date", + "income_tax_slab", + "column_break_11", + "company", + "payroll_payable_account", + "currency", + "section_break_7", + "base", + "column_break_9", + "variable", + "amended_from", + "column_break_kjvm", + "leave_encashment_amount_per_day", + "opening_balances_section", + "taxable_earnings_till_date", + "column_break_20", + "tax_deducted_till_date", + "employee_benefits_section", + "max_benefits", + "employee_benefits", + "section_break_17", + "payroll_cost_centers" + ], + "fields": [ + { + "fieldname": "employee", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.department", + "fieldname": "department", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Department", + "options": "Department", + "read_only": 1 + }, + { + "fetch_from": "employee.designation", + "fieldname": "designation", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Designation", + "options": "Designation", + "read_only": 1 + }, + { + "fieldname": "column_break_6", + "fieldtype": "Column Break" + }, + { + "fetch_from": "grade.default_salary_structure", + "fetch_if_empty": 1, + "fieldname": "salary_structure", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Salary Structure", + "options": "Salary Structure", + "reqd": 1, + "search_index": 1 + }, + { + "fieldname": "from_date", + "fieldtype": "Date", + "label": "From Date", + "reqd": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company", + "reqd": 1 + }, + { + "fieldname": "section_break_7", + "fieldtype": "Section Break", + "label": "Base, Variable & Leave Encashment" + }, + { + "fetch_from": "grade.default_base_pay", + "fetch_if_empty": 1, + "fieldname": "base", + "fieldtype": "Currency", + "label": "Base", + "options": "currency" + }, + { + "fieldname": "column_break_9", + "fieldtype": "Column Break" + }, + { + "fieldname": "variable", + "fieldtype": "Currency", + "label": "Variable", + "options": "currency" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Salary Structure Assignment", + "print_hide": 1, + "read_only": 1 + }, + { + "depends_on": "salary_structure", + "fieldname": "income_tax_slab", + "fieldtype": "Link", + "label": "Income Tax Slab", + "options": "Income Tax Slab" + }, + { + "depends_on": "eval:(doc.docstatus==1 || doc.salary_structure)", + "fetch_from": "salary_structure.currency", + "fieldname": "currency", + "fieldtype": "Link", + "label": "Currency", + "options": "Currency", + "print_hide": 1, + "read_only": 1, + "reqd": 1 + }, + { + "depends_on": "employee", + "fieldname": "payroll_payable_account", + "fieldtype": "Link", + "label": "Payroll Payable Account", + "options": "Account" + }, + { + "collapsible": 1, + "depends_on": "employee", + "fieldname": "section_break_17", + "fieldtype": "Section Break", + "label": "Payroll Cost Centers" + }, + { + "allow_on_submit": 1, + "fieldname": "payroll_cost_centers", + "fieldtype": "Table", + "label": "Cost Centers", + "options": "Employee Cost Center" + }, + { + "fetch_from": "employee.grade", + "fieldname": "grade", + "fieldtype": "Link", + "label": "Grade", + "options": "Employee Grade", + "read_only": 1 + }, + { + "fieldname": "column_break_11", + "fieldtype": "Column Break" + }, + { + "allow_on_submit": 1, + "fieldname": "tax_deducted_till_date", + "fieldtype": "Currency", + "label": "Tax Deducted Till Date", + "options": "currency" + }, + { + "fieldname": "column_break_20", + "fieldtype": "Column Break" + }, + { + "allow_on_submit": 1, + "fieldname": "taxable_earnings_till_date", + "fieldtype": "Currency", + "label": "Taxable Earnings Till Date", + "options": "currency" + }, + { + "collapsible_depends_on": "eval:doc.taxable_earnings_till_date && doc.tax_deducted_till_date", + "description": "Set opening balances for earnings and taxes from the previous employer", + "fieldname": "opening_balances_section", + "fieldtype": "Section Break", + "hidden": 1, + "label": "Opening Balances" + }, + { + "fieldname": "employee_benefits_section", + "fieldtype": "Section Break", + "label": "Employee Benefits" + }, + { + "fieldname": "employee_benefits", + "fieldtype": "Table", + "label": "Flexible Benefits", + "options": "Employee Benefit Detail" + }, + { + "fetch_from": "salary_structure.max_benefits", + "fetch_if_empty": 1, + "fieldname": "max_benefits", + "fieldtype": "Currency", + "label": "Maximum Benefit Amount", + "options": "currency" + }, + { + "fieldname": "column_break_kjvm", + "fieldtype": "Column Break" + }, + { + "fetch_from": "salary_structure.leave_encashment_amount_per_day", + "fetch_if_empty": 1, + "fieldname": "leave_encashment_amount_per_day", + "fieldtype": "Currency", + "label": "Leave Encashment Amount Per Day", + "options": "currency" + } + ], + "is_submittable": 1, + "links": [], + "modified": "2026-02-26 14:37:43.779340", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Structure Assignment", + "naming_rule": "Expression", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "share": 1, + "submit": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "search_fields": "employee_name, salary_structure", + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "title_field": "employee_name", + "track_changes": 1 +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py new file mode 100644 index 000000000..3f3b67c04 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/salary_structure_assignment.py @@ -0,0 +1,219 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import cint, flt, get_link_to_form, getdate + +from hrms.payroll.doctype.payroll_period.payroll_period import get_payroll_period +from hrms.payroll.doctype.salary_structure.salary_structure import validate_max_benefit_for_flexible_benefit + + +class DuplicateAssignment(frappe.ValidationError): + pass + + +class SalaryStructureAssignment(Document): + def validate(self): + self.validate_dates() + self.validate_company() + self.validate_income_tax_slab() + self.set_payroll_payable_account() + validate_max_benefit_for_flexible_benefit(self.employee_benefits, self.max_benefits) + + if not self.get("payroll_cost_centers"): + self.set_payroll_cost_centers() + + self.validate_cost_centers() + self.warn_about_missing_opening_entries() + + def on_update_after_submit(self): + self.validate_cost_centers() + + def validate_dates(self): + joining_date, relieving_date = frappe.db.get_value( + "Employee", self.employee, ["date_of_joining", "relieving_date"] + ) + + if self.from_date: + if frappe.db.exists( + "Salary Structure Assignment", + {"employee": self.employee, "from_date": self.from_date, "docstatus": 1}, + ): + frappe.throw( + _("Salary Structure Assignment for Employee already exists"), DuplicateAssignment + ) + + if joining_date and getdate(self.from_date) < joining_date: + frappe.throw( + _("From Date {0} cannot be before employee's joining Date {1}").format( + self.from_date, joining_date + ) + ) + + # flag - old_employee is for migrating the old employees data via patch + if relieving_date and getdate(self.from_date) > relieving_date and not self.flags.old_employee: + frappe.throw( + _("From Date {0} cannot be after employee's relieving Date {1}").format( + self.from_date, relieving_date + ) + ) + + def validate_company(self): + salary_structure_company = frappe.db.get_value( + "Salary Structure", self.salary_structure, "company", cache=True + ) + if self.company != salary_structure_company: + frappe.throw( + _("Salary Structure {0} does not belong to company {1}").format( + frappe.bold(self.salary_structure), frappe.bold(self.company) + ) + ) + + def validate_income_tax_slab(self): + tax_component = get_tax_component(self.salary_structure) + if tax_component and not self.income_tax_slab: + frappe.throw( + _( + "Income Tax Slab is mandatory since the Salary Structure {0} has a tax component {1}" + ).format( + get_link_to_form("Salary Structure", self.salary_structure), frappe.bold(tax_component) + ), + exc=frappe.MandatoryError, + title=_("Missing Mandatory Field"), + ) + + if not self.income_tax_slab: + return + + income_tax_slab_currency = frappe.db.get_value("Income Tax Slab", self.income_tax_slab, "currency") + if self.currency != income_tax_slab_currency: + frappe.throw( + _("Currency of selected Income Tax Slab should be {0} instead of {1}").format( + self.currency, income_tax_slab_currency + ) + ) + + def set_payroll_payable_account(self): + if not self.payroll_payable_account: + payroll_payable_account = frappe.db.get_value( + "Company", self.company, "default_payroll_payable_account" + ) + if not payroll_payable_account: + payroll_payable_account = frappe.db.get_value( + "Account", + { + "account_name": _("Payroll Payable"), + "company": self.company, + "account_currency": frappe.db.get_value("Company", self.company, "default_currency"), + "is_group": 0, + }, + ) + self.payroll_payable_account = payroll_payable_account + + @frappe.whitelist() + def set_payroll_cost_centers(self): + self.payroll_cost_centers = [] + default_payroll_cost_center = self.get_payroll_cost_center() + if default_payroll_cost_center: + self.append( + "payroll_cost_centers", {"cost_center": default_payroll_cost_center, "percentage": 100} + ) + + def get_payroll_cost_center(self): + payroll_cost_center = frappe.db.get_value("Employee", self.employee, "payroll_cost_center") + if not payroll_cost_center and self.department: + payroll_cost_center = frappe.db.get_value("Department", self.department, "payroll_cost_center") + + return payroll_cost_center + + def validate_cost_centers(self): + if not self.get("payroll_cost_centers"): + return + + total_percentage = 0 + for entry in self.payroll_cost_centers: + company = frappe.db.get_value("Cost Center", entry.cost_center, "company") + if company != self.company: + frappe.throw( + _("Row {0}: Cost Center {1} does not belong to Company {2}").format( + entry.idx, frappe.bold(entry.cost_center), frappe.bold(self.company) + ), + title=_("Invalid Cost Center"), + ) + + total_percentage += flt(entry.percentage) + + if total_percentage != 100: + frappe.throw(_("Total percentage against cost centers should be 100")) + + def warn_about_missing_opening_entries(self): + if ( + self.are_opening_entries_required() + and not self.taxable_earnings_till_date + and not self.tax_deducted_till_date + ): + msg = _( + "Please specify {0} and {1} (if any), for the correct tax calculation in future salary slips." + ).format( + frappe.bold(_("Taxable Earnings Till Date")), + frappe.bold(_("Tax Deducted Till Date")), + ) + frappe.msgprint( + msg, + indicator="orange", + title=_("Missing Opening Entries"), + ) + + @frappe.whitelist() + def are_opening_entries_required(self) -> bool: + if not get_tax_component(self.salary_structure): + return False + + payroll_period = get_payroll_period(self.from_date, self.from_date, self.company) + if payroll_period and getdate(self.from_date) <= getdate(payroll_period.start_date): + return False + + return True + + +def get_assigned_salary_structure(employee, on_date): + if not employee or not on_date: + return None + + salary_structure_assignment = frappe.qb.DocType("Salary Structure Assignment") + + query = ( + frappe.qb.from_(salary_structure_assignment) + .select(salary_structure_assignment.salary_structure) + .where(salary_structure_assignment.employee == employee) + .where(salary_structure_assignment.docstatus == 1) + .where(on_date >= salary_structure_assignment.from_date) + .orderby(salary_structure_assignment.from_date, order=frappe.qb.desc) + .limit(1) + ) + + result = query.run() + return result[0][0] if result else None + + +@frappe.whitelist() +def get_employee_currency(employee): + employee_currency = frappe.db.get_value("Salary Structure Assignment", {"employee": employee}, "currency") + if not employee_currency: + frappe.throw( + _("There is no Salary Structure assigned to {0}. First assign a Salary Structure.").format( + employee + ) + ) + return employee_currency + + +def get_tax_component(salary_structure: str) -> str | None: + salary_structure = frappe.get_cached_doc("Salary Structure", salary_structure) + for d in salary_structure.deductions: + if cint(d.variable_based_on_taxable_salary) and not d.formula and not flt(d.amount): + return d.salary_component + return None diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/test_salary_structure_assignment.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/test_salary_structure_assignment.py new file mode 100644 index 000000000..3061a7c0b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_structure_assignment/test_salary_structure_assignment.py @@ -0,0 +1,8 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestSalaryStructureAssignment(IntegrationTestCase): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/salary_withholding.js b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/salary_withholding.js new file mode 100644 index 000000000..c87cdab8b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/salary_withholding.js @@ -0,0 +1,35 @@ +// Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Salary Withholding", { + employee(frm) { + if (!frm.doc.employee) return; + + frappe + .call({ + method: "hrms.payroll.doctype.salary_withholding.salary_withholding.get_payroll_frequency", + args: { + employee: frm.doc.employee, + posting_date: frm.doc.posting_date, + }, + }) + .then((r) => { + if (r.message) { + frm.set_value("payroll_frequency", r.message); + } + }); + }, + + from_date(frm) { + if (!frm.doc.from_date || !frm.doc.payroll_frequency) + frappe.msgprint(__("Please select From Date and Payroll Frequency first")); + + frm.call({ + method: "set_withholding_cycles_and_to_date", + doc: frm.doc, + }).then((r) => { + frm.refresh_field("to_date"); + frm.refresh_field("cycles"); + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/salary_withholding.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/salary_withholding.json new file mode 100644 index 000000000..60a5abbf5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/salary_withholding.json @@ -0,0 +1,243 @@ +{ + "actions": [], + "autoname": "format:SAL-WTH-{#####}", + "creation": "2024-07-01 07:28:05.514677", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "section_break_fwuv", + "employee", + "employee_name", + "company", + "column_break_hbju", + "posting_date", + "payroll_frequency", + "number_of_withholding_cycles", + "column_break_rhlv", + "status", + "from_date", + "to_date", + "exit_details_section", + "date_of_joining", + "column_break_qlwx", + "relieving_date", + "reason_section", + "reason_for_withholding_salary", + "section_break_xeyl", + "cycles", + "amended_from" + ], + "fields": [ + { + "fieldname": "section_break_fwuv", + "fieldtype": "Section Break" + }, + { + "fieldname": "employee", + "fieldtype": "Link", + "in_standard_filter": 1, + "label": "Employee", + "options": "Employee", + "reqd": 1, + "search_index": 1 + }, + { + "fetch_from": "employee.employee_name", + "fieldname": "employee_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Employee Name", + "read_only": 1 + }, + { + "fetch_from": "employee.company", + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company", + "read_only": 1 + }, + { + "fieldname": "column_break_hbju", + "fieldtype": "Column Break" + }, + { + "fieldname": "payroll_frequency", + "fieldtype": "Select", + "in_standard_filter": 1, + "label": "Payroll Frequency", + "options": "\nMonthly\nFortnightly\nBimonthly\nWeekly\nDaily", + "read_only": 1 + }, + { + "fieldname": "number_of_withholding_cycles", + "fieldtype": "Int", + "label": "Number of Withholding Cycles", + "non_negative": 1, + "reqd": 1 + }, + { + "fieldname": "column_break_rhlv", + "fieldtype": "Column Break" + }, + { + "default": "Today", + "fieldname": "posting_date", + "fieldtype": "Date", + "label": "Posting Date", + "reqd": 1 + }, + { + "fieldname": "from_date", + "fieldtype": "Date", + "label": "From Date", + "reqd": 1 + }, + { + "fieldname": "to_date", + "fieldtype": "Date", + "label": "To Date", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "exit_details_section", + "fieldtype": "Section Break", + "label": "Exit Details" + }, + { + "fetch_from": "employee.date_of_joining", + "fieldname": "date_of_joining", + "fieldtype": "Date", + "label": "Date of Joining", + "read_only": 1 + }, + { + "fieldname": "column_break_qlwx", + "fieldtype": "Column Break" + }, + { + "fetch_from": "employee.relieving_date", + "fieldname": "relieving_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Relieving Date", + "read_only": 1 + }, + { + "fieldname": "reason_for_withholding_salary", + "fieldtype": "Small Text", + "label": "Reason for Withholding Salary" + }, + { + "fieldname": "section_break_xeyl", + "fieldtype": "Section Break" + }, + { + "fieldname": "cycles", + "fieldtype": "Table", + "label": "Cycles", + "options": "Salary Withholding Cycle", + "read_only": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Salary Withholding", + "print_hide": 1, + "read_only": 1, + "search_index": 1 + }, + { + "default": "Draft", + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Status", + "options": "\nDraft\nWithheld\nReleased\nCancelled", + "read_only": 1 + }, + { + "collapsible": 1, + "fieldname": "reason_section", + "fieldtype": "Section Break", + "label": "Reason" + } + ], + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [ + { + "link_doctype": "Salary Slip", + "link_fieldname": "salary_withholding" + } + ], + "modified": "2024-07-22 18:24:24.217371", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Withholding", + "naming_rule": "Expression", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "share": 1, + "submit": 1, + "write": 1 + }, + { + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "share": 1 + } + ], + "sort_field": "creation", + "sort_order": "DESC", + "states": [ + { + "color": "Red", + "title": "Draft" + }, + { + "color": "Yellow", + "title": "Withheld" + }, + { + "color": "Green", + "title": "Released" + }, + { + "color": "Red", + "title": "Cancelled" + } + ], + "title_field": "employee_name" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/salary_withholding.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/salary_withholding.py new file mode 100644 index 000000000..52e02f1aa --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/salary_withholding.py @@ -0,0 +1,199 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from datetime import date + +from dateutil.relativedelta import relativedelta + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.utils import add_days, add_to_date, cint, get_link_to_form, getdate + + +class SalaryWithholding(Document): + def validate(self): + if not self.payroll_frequency: + self.payroll_frequency = get_payroll_frequency(self.employee, self.from_date) + + self.set_withholding_cycles_and_to_date() + self.validate_duplicate_record() + self.set_status() + + def validate_duplicate_record(self): + Withholding = frappe.qb.DocType("Salary Withholding") + duplicate = ( + frappe.qb.from_(Withholding) + .select(Withholding.name) + .where( + (Withholding.employee == self.employee) + & (Withholding.docstatus != 2) + & (Withholding.name != self.name) + & (Withholding.to_date >= self.from_date) + & (Withholding.from_date <= self.to_date) + ) + ).run(pluck=True) + + if duplicate: + frappe.throw( + _("Salary Withholding {0} already exists for employee {1} for the selected period").format( + get_link_to_form("Salary Withholding", duplicate[0]), + frappe.bold(f"{self.employee}: {self.employee_name}"), + ), + title=_("Duplicate Salary Withholding"), + ) + + def set_status(self, update=False): + if self.docstatus == 0: + status = "Draft" + elif self.docstatus == 1: + if all(cycle.is_salary_released for cycle in self.cycles): + status = "Released" + else: + status = "Withheld" + elif self.docstatus == 2: + status = "Cancelled" + + if update: + self.db_set("status", status) + else: + self.status = status + + @frappe.whitelist() + def set_withholding_cycles_and_to_date(self): + self.to_date = self.get_to_date() + + cycle_from_date = cycle_to_date = getdate(self.from_date) + self.cycles = [] + + while cycle_to_date < getdate(self.to_date): + cycle_to_date = add_to_date(cycle_from_date, **self.get_frequency_kwargs()) - relativedelta( + days=1 + ) + self.append( + "cycles", + { + "from_date": cycle_from_date, + "to_date": cycle_to_date, + "is_salary_released": 0, + }, + ) + cycle_from_date = add_days(cycle_to_date, 1) + + def get_to_date(self) -> str: + from_date = getdate(self.from_date) + kwargs = self.get_frequency_kwargs(self.number_of_withholding_cycles) + to_date = add_to_date(from_date, **kwargs) - relativedelta(days=1) + return to_date + + def get_frequency_kwargs(self, withholding_cycles: int = 0) -> dict: + cycles = cint(withholding_cycles) or 1 + frequency_dict = { + "Monthly": {"months": 1 * cycles}, + "Bimonthly": {"months": 2 * cycles}, + "Fortnightly": {"days": 14 * cycles}, + "Weekly": {"days": 7 * cycles}, + "Daily": {"days": 1 * cycles}, + } + return frequency_dict.get(self.payroll_frequency) + + def on_discard(self): + self.db_set("status", "Cancelled") + + +@frappe.whitelist() +def get_payroll_frequency(employee: str, posting_date: str | date) -> str | None: + salary_structure = frappe.db.get_value( + "Salary Structure Assignment", + { + "employee": employee, + "from_date": ("<=", posting_date), + "docstatus": 1, + }, + "salary_structure", + order_by="from_date desc", + ) + + if not salary_structure: + frappe.throw( + _("No Salary Structure Assignment found for employee {0} on or before {1}").format( + employee, posting_date + ), + title=_("Error"), + ) + + return frappe.db.get_value("Salary Structure", salary_structure, "payroll_frequency") + + +def link_bank_entry_in_salary_withholdings(salary_slips: list[dict], bank_entry: str): + WithholdingCycle = frappe.qb.DocType("Salary Withholding Cycle") + ( + frappe.qb.update(WithholdingCycle) + .set(WithholdingCycle.journal_entry, bank_entry) + .where( + WithholdingCycle.name.isin([salary_slip.salary_withholding_cycle for salary_slip in salary_slips]) + ) + ).run() + + +def update_salary_withholding_payment_status(doc: "SalaryWithholding", method: str | None = None): + """update withholding status on bank entry submission/cancellation. Called from hooks""" + Withholding = frappe.qb.DocType("Salary Withholding") + WithholdingCycle = frappe.qb.DocType("Salary Withholding Cycle") + withholdings = ( + frappe.qb.from_(WithholdingCycle) + .inner_join(Withholding) + .on(WithholdingCycle.parent == Withholding.name) + .select( + WithholdingCycle.name.as_("salary_withholding_cycle"), + WithholdingCycle.parent.as_("salary_withholding"), + Withholding.employee, + ) + .where((WithholdingCycle.journal_entry == doc.name) & (WithholdingCycle.docstatus == 1)) + ).run(as_dict=True) + + if not withholdings: + return + + cancel = method == "on_cancel" + _update_payment_status_in_payroll(withholdings, cancel=cancel) + _update_salary_withholdings(withholdings, cancel=cancel) + + +def _update_payment_status_in_payroll(withholdings: list[dict], cancel: bool = False) -> None: + status = "Withheld" if cancel else "Submitted" + + SalarySlip = frappe.qb.DocType("Salary Slip") + ( + frappe.qb.update(SalarySlip) + .set(SalarySlip.status, status) + .where( + SalarySlip.salary_withholding_cycle.isin( + [withholding.salary_withholding_cycle for withholding in withholdings] + ) + ) + ).run() + + employees = [withholding.employee for withholding in withholdings] + is_salary_withheld = 1 if cancel else 0 + PayrollEmployee = frappe.qb.DocType("Payroll Employee Detail") + ( + frappe.qb.update(PayrollEmployee) + .set(PayrollEmployee.is_salary_withheld, is_salary_withheld) + .where(PayrollEmployee.employee.isin(employees)) + ).run() + + +def _update_salary_withholdings(withholdings: list[dict], cancel: bool = False) -> None: + is_salary_released = 0 if cancel else 1 + + for withholding in withholdings: + withholding_doc = frappe.get_doc("Salary Withholding", withholding.salary_withholding) + for cycle in withholding_doc.cycles: + if cycle.name == withholding.salary_withholding_cycle: + cycle.db_set("is_salary_released", is_salary_released) + if cancel: + cycle.db_set("journal_entry", None) + break + + withholding_doc.set_status(update=True) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/test_salary_withholding.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/test_salary_withholding.py new file mode 100644 index 000000000..7beaed1f5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding/test_salary_withholding.py @@ -0,0 +1,168 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.payroll.doctype.payroll_entry.payroll_entry import get_start_end_dates +from hrms.payroll.doctype.payroll_entry.test_payroll_entry import make_payroll_entry +from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure + +COMPANY_NAME = "_Test Company" +MONTH_1_START = getdate("2024-01-01") +MONTH_1_END = getdate("2024-01-31") +MONTH_2_START = getdate("2024-02-01") +MONTH_2_END = getdate("2024-02-29") + + +class TestSalaryWithholding(IntegrationTestCase): + def setUp(self): + for dt in [ + "Salary Withholding", + "Salary Withholding Cycle", + "Salary Slip", + "Payroll Entry", + "Salary Structure", + "Salary Structure Assignment", + "Payroll Employee Detail", + "Journal Entry", + ]: + frappe.db.delete(dt) + + self.company = frappe.get_doc("Company", COMPANY_NAME) + self.employee1 = make_employee("employee1@example.com", company=COMPANY_NAME, designation="Engineer") + self.employee2 = make_employee("employee2@example.com", company=COMPANY_NAME, designation="Engineer") + + make_salary_structure( + "Test Withholding", + "Monthly", + company=COMPANY_NAME, + employee=self.employee1, + from_date=MONTH_1_START, + ) + make_salary_structure( + "Test Withholding", + "Monthly", + company=COMPANY_NAME, + employee=self.employee2, + from_date=MONTH_1_START, + ) + + def test_set_withholding_cycles_and_to_date(self): + withholding = create_salary_withholding(self.employee1, MONTH_1_START, 2) + + self.assertEqual(withholding.to_date, MONTH_2_END) + self.assertEqual(withholding.cycles[0].from_date, MONTH_1_START) + self.assertEqual(withholding.cycles[0].to_date, MONTH_1_END) + self.assertEqual(withholding.cycles[1].from_date, MONTH_2_START) + self.assertEqual(withholding.cycles[1].to_date, MONTH_2_END) + + def test_salary_withholding(self): + withholding = create_salary_withholding(self.employee1, MONTH_1_START, 2) + withholding.submit() + payroll_entry = self._make_payroll_entry() + + payroll_employee = self._get_payroll_employee_row(payroll_entry) + self.assertEqual(payroll_employee.is_salary_withheld, 1) + + salary_slip = get_salary_slip_details(payroll_entry.name, self.employee1) + self.assertEqual(salary_slip.salary_withholding, withholding.name) + self.assertEqual(salary_slip.salary_withholding_cycle, withholding.cycles[0].name) + self.assertEqual(salary_slip.status, "Withheld") + self.assertEqual(withholding.status, "Withheld") + + def test_release_withheld_salaries(self): + withholding = create_salary_withholding(self.employee1, MONTH_1_START, 2) + withholding.submit() + + def test_run_payroll_for_cycle(withholding_cycle): + # bank entry should skip withheld salaries + payroll_entry = self._make_payroll_entry(withholding_cycle.from_date) + bank_entry = payroll_entry.make_bank_entry() + self._submit_bank_entry(bank_entry) + has_withheld_salary = any(row.party == self.employee1 for row in bank_entry.accounts) + self.assertFalse(has_withheld_salary) + + # separate bank entry for withheld salaries + # test Bank Entry linking + bank_entry_for_withheld_salaries = payroll_entry.make_bank_entry(for_withheld_salaries=1) + withholding_cycle.reload() + self.assertEqual(withholding_cycle.journal_entry, bank_entry_for_withheld_salaries.name) + + # test released salary on bank entry submission + self._submit_bank_entry(bank_entry_for_withheld_salaries) + withholding_cycle.reload() + self.assertEqual(withholding_cycle.is_salary_released, 1) + salary_slip = get_salary_slip_details(payroll_entry.name, self.employee1) + self.assertEqual(salary_slip.status, "Submitted") + payroll_employee = self._get_payroll_employee_row(payroll_entry) + self.assertEqual(payroll_employee.is_salary_withheld, 0) + + return payroll_entry, bank_entry_for_withheld_salaries + + # run payroll for each withholding cycle + for cycle in withholding.cycles: + payroll_entry, bank_entry = test_run_payroll_for_cycle(cycle) + withholding.reload() + self.assertEqual(withholding.status, "Released") + + # test payment cancellation for withheld salaries + bank_entry.cancel() + withholding.reload() + + self.assertEqual(withholding.cycles[-1].is_salary_released, 0) + salary_slip = get_salary_slip_details(payroll_entry.name, self.employee1) + self.assertEqual(salary_slip.status, "Withheld") + payroll_employee = self._get_payroll_employee_row(payroll_entry) + self.assertEqual(payroll_employee.is_salary_withheld, 1) + + def _make_payroll_entry(self, date: str | None = None): + dates = get_start_end_dates("Monthly", date or MONTH_1_START) + return make_payroll_entry( + start_date=dates.start_date, + end_date=dates.end_date, + payable_account=self.company.default_payroll_payable_account, + currency=self.company.default_currency, + company=self.company.name, + ) + + def _submit_bank_entry(self, bank_entry: dict): + bank_entry.cheque_no = "123456" + bank_entry.cheque_date = MONTH_1_START + bank_entry.submit() + + def _get_payroll_employee_row(self, payroll_entry: dict) -> dict | None: + payroll_entry.reload() + return next(employee for employee in payroll_entry.employees if employee.employee == self.employee1) + + def test_status_on_discard(self): + salary_withholding = create_salary_withholding(self.employee1, getdate()) + salary_withholding.discard() + salary_withholding.reload() + self.assertEqual(salary_withholding.status, "Cancelled") + + +def create_salary_withholding(employee: str, from_date: str, number_of_withholding_cycles: int = 0): + doc = frappe.new_doc("Salary Withholding") + doc.update( + { + "employee": employee, + "from_date": from_date, + "number_of_withholding_cycles": number_of_withholding_cycles, + } + ) + doc.insert() + + return doc + + +def get_salary_slip_details(payroll_entry: str, employee: str) -> dict: + return frappe.db.get_value( + "Salary Slip", + {"payroll_entry": payroll_entry, "employee": employee}, + ["status", "salary_withholding", "salary_withholding_cycle"], + as_dict=1, + ) diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding_cycle/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding_cycle/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json new file mode 100644 index 000000000..e048d2f9d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.json @@ -0,0 +1,62 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2024-07-01 07:28:02.446471", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "from_date", + "to_date", + "is_salary_released", + "journal_entry" + ], + "fields": [ + { + "columns": 2, + "fieldname": "from_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "From Date", + "reqd": 1 + }, + { + "columns": 2, + "fieldname": "to_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "To Date", + "reqd": 1 + }, + { + "columns": 2, + "default": "0", + "fieldname": "is_salary_released", + "fieldtype": "Check", + "in_list_view": 1, + "label": "Is Salary Released", + "no_copy": 1, + "read_only": 1 + }, + { + "fieldname": "journal_entry", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Journal Entry", + "options": "Journal Entry", + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2024-07-18 12:43:39.315699", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Withholding Cycle", + "owner": "Administrator", + "permissions": [], + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.py new file mode 100644 index 000000000..317eb7467 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/salary_withholding_cycle/salary_withholding_cycle.py @@ -0,0 +1,9 @@ +# Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class SalaryWithholdingCycle(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/taxable_salary_slab/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/taxable_salary_slab/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json b/apps/erpnext/src/hrms/hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json new file mode 100644 index 000000000..5e8e8dcbc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.json @@ -0,0 +1,69 @@ +{ + "actions": [], + "creation": "2018-04-13 17:42:13.516032", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "from_amount", + "to_amount", + "percent_deduction", + "condition", + "column_break_5", + "html_6" + ], + "fields": [ + { + "default": "0", + "fieldname": "from_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "From Amount", + "options": "currency", + "reqd": 1 + }, + { + "fieldname": "to_amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "To Amount", + "options": "currency" + }, + { + "default": "0", + "fieldname": "percent_deduction", + "fieldtype": "Percent", + "in_list_view": 1, + "label": "Percent Deduction", + "reqd": 1 + }, + { + "fieldname": "condition", + "fieldtype": "Code", + "in_list_view": 1, + "label": "Condition" + }, + { + "fieldname": "column_break_5", + "fieldtype": "Column Break" + }, + { + "fieldname": "html_6", + "fieldtype": "HTML", + "options": "

    Condition Examples

    \n
      \n
    1. Applying tax if employee born between 31-12-1937 and 01-01-1958 (Employees aged 60 to 80)
      \nCondition: date_of_birth>date(1937, 12, 31) and date_of_birth<date(1958, 01, 01)

    2. Applying tax by employee gender
      \nCondition: gender==\"Male\"

    3. \n
    4. Applying tax by Salary Component
      \nCondition: base > 10000
    " + } + ], + "istable": 1, + "links": [], + "modified": "2024-03-27 13:10:52.825555", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Taxable Salary Slab", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "creation", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.py b/apps/erpnext/src/hrms/hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.py new file mode 100644 index 000000000..d1ccbe385 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/doctype/taxable_salary_slab/taxable_salary_slab.py @@ -0,0 +1,10 @@ +# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +# import frappe +from frappe.model.document import Document + + +class TaxableSalarySlab(Document): + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/notification/as b/apps/erpnext/src/hrms/hrms/payroll/notification/as new file mode 100644 index 000000000..05c2c1bec --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/notification/as @@ -0,0 +1 @@ +update from `tabNotification` set module='Payroll' where name = "Retention Bonus" diff --git a/apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/retention_bonus.json b/apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/retention_bonus.json new file mode 100644 index 000000000..37381fa94 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/retention_bonus.json @@ -0,0 +1,27 @@ +{ + "attach_print": 0, + "channel": "Email", + "condition": "doc.docstatus==1", + "creation": "2018-05-15 18:52:36.362838", + "date_changed": "bonus_payment_date", + "days_in_advance": 14, + "docstatus": 0, + "doctype": "Notification", + "document_type": "Retention Bonus", + "enabled": 1, + "event": "Days Before", + "idx": 0, + "is_standard": 1, + "message": "

    {{ _(\"Hello\") }},

    \n\n

    {{ _(\"Retention Bonus for\") }} {{ doc.employee_name }} {{ _(\"due on\") }} {{ doc.bonus_payment_date }}

    ", + "modified": "2018-05-15 19:00:24.294418", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Retention Bonus", + "owner": "Administrator", + "recipients": [ + { + "email_by_role": "HR Manager" + } + ], + "subject": "Retention Bonus alert for {{ doc.employee }}" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/retention_bonus.md b/apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/retention_bonus.md new file mode 100644 index 000000000..8f4819399 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/retention_bonus.md @@ -0,0 +1,3 @@ +

    {{ _("Hello") }},

    + +

    {{ _("Retention Bonus for") }} {{ doc.employee_name }} {{ _("due on") }} {{ doc.bonus_payment_date }}

    \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/retention_bonus.py b/apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/retention_bonus.py new file mode 100644 index 000000000..02e3e9333 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/notification/retention_bonus/retention_bonus.py @@ -0,0 +1,3 @@ +def get_context(context): + # do your magic here + pass diff --git a/apps/erpnext/src/hrms/hrms/payroll/number_card/total_declaration_submitted/total_declaration_submitted.json b/apps/erpnext/src/hrms/hrms/payroll/number_card/total_declaration_submitted/total_declaration_submitted.json new file mode 100644 index 000000000..153684394 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/number_card/total_declaration_submitted/total_declaration_submitted.json @@ -0,0 +1,21 @@ +{ + "creation": "2020-07-22 11:56:34.575627", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Employee Tax Exemption Declaration", + "dynamic_filters_json": "[[\"Employee Tax Exemption Declaration\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Employee Tax Exemption Declaration\",\"creation\",\"Timespan\",\"last year\"],[\"Employee Tax Exemption Declaration\",\"docstatus\",\"=\",\"1\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Total Declaration Submitted", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Total Declaration Submitted", + "owner": "Administrator", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/number_card/total_incentive_given(last_month)/total_incentive_given(last_month).json b/apps/erpnext/src/hrms/hrms/payroll/number_card/total_incentive_given(last_month)/total_incentive_given(last_month).json new file mode 100644 index 000000000..7ff57c8ce --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/number_card/total_incentive_given(last_month)/total_incentive_given(last_month).json @@ -0,0 +1,22 @@ +{ + "aggregate_function_based_on": "incentive_amount", + "creation": "2020-07-22 11:56:34.599047", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Employee Incentive", + "dynamic_filters_json": "", + "filters_json": "[[\"Employee Incentive\",\"docstatus\",\"=\",\"1\"],[\"Employee Incentive\",\"payroll_date\",\"Timespan\",\"last year\"]]", + "function": "Sum", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Total Incentive Given(Last month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Total Incentive Given(Last month)", + "owner": "Administrator", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/number_card/total_outgoing_salary(last_month)/total_outgoing_salary(last_month).json b/apps/erpnext/src/hrms/hrms/payroll/number_card/total_outgoing_salary(last_month)/total_outgoing_salary(last_month).json new file mode 100644 index 000000000..d2a38cdea --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/number_card/total_outgoing_salary(last_month)/total_outgoing_salary(last_month).json @@ -0,0 +1,22 @@ +{ + "aggregate_function_based_on": "rounded_total", + "creation": "2020-07-22 11:56:34.626019", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Salary Slip", + "dynamic_filters_json": "[[\"Salary Slip\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Salary Slip\",\"docstatus\",\"=\",\"1\"],[\"Salary Slip\",\"start_date\",\"Timespan\",\"last month\"]]", + "function": "Sum", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Total Outgoing Salary(Last month)", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Total Outgoing Salary(Last month)", + "owner": "Administrator", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/number_card/total_salary_structure/total_salary_structure.json b/apps/erpnext/src/hrms/hrms/payroll/number_card/total_salary_structure/total_salary_structure.json new file mode 100644 index 000000000..b284ed313 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/number_card/total_salary_structure/total_salary_structure.json @@ -0,0 +1,21 @@ +{ + "creation": "2020-07-22 11:56:34.688843", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Salary Structure", + "dynamic_filters_json": "[[\"Salary Structure\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Salary Structure\",\"docstatus\",\"=\",\"1\"]]", + "function": "Count", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Total Salary Structure", + "modified": "2025-11-20 16:10:00.000000", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Total Salary Structure", + "owner": "Administrator", + "show_percentage_stats": 1, + "stats_time_interval": "Monthly", + "type": "Document Type" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/payroll_dashboard/payroll/payroll.json b/apps/erpnext/src/hrms/hrms/payroll/payroll_dashboard/payroll/payroll.json new file mode 100644 index 000000000..47e567e6c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/payroll_dashboard/payroll/payroll.json @@ -0,0 +1,42 @@ +{ + "cards": [ + { + "card": "Total Declaration Submitted" + }, + { + "card": "Total Salary Structure" + }, + { + "card": "Total Incentive Given(Last month)" + }, + { + "card": "Total Outgoing Salary(Last month)" + } + ], + "charts": [ + { + "chart": "Outgoing Salary", + "width": "Full" + }, + { + "chart": "Designation Wise Salary(Last Month)", + "width": "Half" + }, + { + "chart": "Department Wise Salary(Last Month)", + "width": "Half" + } + ], + "creation": "2020-07-22 11:56:34.727185", + "dashboard_name": "Payroll", + "docstatus": 0, + "doctype": "Dashboard", + "idx": 0, + "is_default": 1, + "is_standard": 1, + "modified": "2022-08-22 14:21:33.653983", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Payroll", + "owner": "Administrator" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/print_format/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/print_format/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_based_on_timesheet/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_based_on_timesheet/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_based_on_timesheet/salary_slip_based_on_timesheet.json b/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_based_on_timesheet/salary_slip_based_on_timesheet.json new file mode 100644 index 000000000..d5fee6b5b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_based_on_timesheet/salary_slip_based_on_timesheet.json @@ -0,0 +1,18 @@ +{ + "creation": "2016-07-07 12:38:32.447281", + "custom_format": 0, + "disabled": 0, + "doc_type": "Salary Slip", + "docstatus": 0, + "doctype": "Print Format", + "font": "Default", + "format_data": "[{\"fieldname\": \"print_heading_template\", \"fieldtype\": \"HTML\", \"options\": \"

    {{doc.name}}


    \"}, {\"fieldtype\": \"Section Break\"}, {\"fieldtype\": \"Column Break\"}, {\"print_hide\": 0, \"fieldname\": \"employee\"}, {\"print_hide\": 0, \"fieldname\": \"employee_name\"}, {\"print_hide\": 0, \"fieldname\": \"department\"}, {\"print_hide\": 0, \"fieldname\": \"designation\"}, {\"print_hide\": 0, \"fieldname\": \"branch\"}, {\"fieldtype\": \"Column Break\"}, {\"print_hide\": 0, \"fieldname\": \"start_date\"}, {\"print_hide\": 0, \"fieldname\": \"end_date\"}, {\"print_hide\": 0, \"fieldname\": \"total_working_hours\"}, {\"print_hide\": 0, \"fieldname\": \"hour_rate\"}, {\"fieldtype\": \"Section Break\"}, {\"fieldtype\": \"Column Break\"}, {\"visible_columns\": [{\"print_hide\": 0, \"fieldname\": \"time_sheet\", \"print_width\": \"\"}, {\"print_hide\": 0, \"fieldname\": \"working_hours\", \"print_width\": \"\"}], \"print_hide\": 0, \"fieldname\": \"timesheets\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldtype\": \"Section Break\"}, {\"fieldtype\": \"Column Break\"}, {\"visible_columns\": [{\"print_hide\": 0, \"fieldname\": \"salary_component\", \"print_width\": \"\"}, {\"print_hide\": 0, \"fieldname\": \"amount\", \"print_width\": \"\"}, {\"print_hide\": 0, \"fieldname\": \"depends_on_payment_days\", \"print_width\": \"\"}], \"print_hide\": 0, \"fieldname\": \"earnings\"}, {\"fieldtype\": \"Column Break\"}, {\"visible_columns\": [{\"print_hide\": 0, \"fieldname\": \"salary_component\", \"print_width\": \"\"}, {\"print_hide\": 0, \"fieldname\": \"amount\", \"print_width\": \"\"}, {\"print_hide\": 0, \"fieldname\": \"depends_on_payment_days\", \"print_width\": \"\"}], \"print_hide\": 0, \"fieldname\": \"deductions\"}, {\"fieldtype\": \"Section Break\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldtype\": \"Column Break\"}, {\"print_hide\": 0, \"fieldname\": \"gross_pay\"}, {\"print_hide\": 0, \"fieldname\": \"total_deduction\"}, {\"print_hide\": 0, \"fieldname\": \"net_pay\"}, {\"print_hide\": 0, \"fieldname\": \"rounded_total\"}, {\"print_hide\": 0, \"fieldname\": \"total_in_words\"}]", + "idx": 0, + "modified": "2016-08-21 21:02:59.896033", + "modified_by": "Administrator", + "name": "Salary Slip based on Timesheet", + "owner": "Administrator", + "print_format_builder": 1, + "print_format_type": "Jinja", + "standard": "Yes" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_standard/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_standard/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_standard/salary_slip_standard.json b/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_standard/salary_slip_standard.json new file mode 100644 index 000000000..98a4435a5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_standard/salary_slip_standard.json @@ -0,0 +1,22 @@ +{ + "align_labels_right": 0, + "creation": "2016-07-07 11:45:14.872204", + "custom_format": 0, + "disabled": 0, + "doc_type": "Salary Slip", + "docstatus": 0, + "doctype": "Print Format", + "font": "Default", + "format_data": "[{\"fieldname\": \"print_heading_template\", \"fieldtype\": \"Custom HTML\", \"options\": \"

    {{doc.name}}

    \\n
    \\n
    \\n
    \"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"print_hide\": 0, \"fieldname\": \"employee\", \"label\": \"Employee\"}, {\"print_hide\": 0, \"fieldname\": \"company\", \"label\": \"Company\"}, {\"print_hide\": 0, \"fieldname\": \"employee_name\", \"label\": \"Employee Name\"}, {\"print_hide\": 0, \"fieldname\": \"department\", \"label\": \"Department\"}, {\"print_hide\": 0, \"fieldname\": \"designation\", \"label\": \"Designation\"}, {\"print_hide\": 0, \"fieldname\": \"branch\", \"label\": \"Branch\"}, {\"fieldtype\": \"Column Break\"}, {\"print_hide\": 0, \"fieldname\": \"start_date\", \"label\": \"Start Date\"}, {\"print_hide\": 0, \"fieldname\": \"end_date\", \"label\": \"End Date\"}, {\"print_hide\": 0, \"fieldname\": \"total_working_days\", \"label\": \"Working Days\"}, {\"print_hide\": 0, \"fieldname\": \"leave_without_pay\", \"label\": \"Leave Without Pay\"}, {\"print_hide\": 0, \"fieldname\": \"payment_days\", \"label\": \"Payment Days\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"visible_columns\": [{\"print_hide\": 0, \"fieldname\": \"salary_component\", \"print_width\": \"\"}, {\"print_hide\": 0, \"fieldname\": \"amount\", \"print_width\": \"\"}], \"print_hide\": 0, \"fieldname\": \"earnings\", \"label\": \"Earnings\"}, {\"fieldtype\": \"Column Break\"}, {\"visible_columns\": [{\"print_hide\": 0, \"fieldname\": \"salary_component\", \"print_width\": \"\"}, {\"print_hide\": 0, \"fieldname\": \"amount\", \"print_width\": \"\"}, {\"print_hide\": 0, \"fieldname\": \"depends_on_payment_days\", \"print_width\": \"\"}], \"print_hide\": 0, \"fieldname\": \"deductions\", \"label\": \"Deductions\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldtype\": \"Column Break\"}, {\"print_hide\": 0, \"fieldname\": \"gross_pay\", \"label\": \"Gross Pay\"}, {\"print_hide\": 0, \"fieldname\": \"total_deduction\", \"label\": \"Total Deduction\"}, {\"print_hide\": 0, \"fieldname\": \"net_pay\", \"label\": \"Net Pay\"}, {\"print_hide\": 0, \"fieldname\": \"rounded_total\", \"label\": \"Rounded Total\"}, {\"print_hide\": 0, \"fieldname\": \"total_in_words\", \"label\": \"Total in words\"}]", + "idx": 0, + "line_breaks": 0, + "modified": "2018-07-24 19:31:39.040701", + "modified_by": "Administrator", + "module": "HR", + "name": "Salary Slip Standard", + "owner": "Administrator", + "print_format_builder": 1, + "print_format_type": "Jinja", + "show_section_headings": 0, + "standard": "Yes" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_with_year_to_date/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_with_year_to_date/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_with_year_to_date/salary_slip_with_year_to_date.json b/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_with_year_to_date/salary_slip_with_year_to_date.json new file mode 100644 index 000000000..71ba37f6e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/print_format/salary_slip_with_year_to_date/salary_slip_with_year_to_date.json @@ -0,0 +1,25 @@ +{ + "absolute_value": 0, + "align_labels_right": 0, + "creation": "2021-01-14 09:56:42.393623", + "custom_format": 0, + "default_print_language": "en", + "disabled": 0, + "doc_type": "Salary Slip", + "docstatus": 0, + "doctype": "Print Format", + "font": "Default", + "format_data": "[{\"fieldname\": \"print_heading_template\", \"fieldtype\": \"Custom HTML\", \"options\": \"

    {{doc.name}}

    \\n
    \\n
    \\n
    \"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"employee\", \"print_hide\": 0, \"label\": \"Employee\"}, {\"fieldname\": \"company\", \"print_hide\": 0, \"label\": \"Company\"}, {\"fieldname\": \"employee_name\", \"print_hide\": 0, \"label\": \"Employee Name\"}, {\"fieldname\": \"department\", \"print_hide\": 0, \"label\": \"Department\"}, {\"fieldname\": \"designation\", \"print_hide\": 0, \"label\": \"Designation\"}, {\"fieldname\": \"branch\", \"print_hide\": 0, \"label\": \"Branch\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"start_date\", \"print_hide\": 0, \"label\": \"Start Date\"}, {\"fieldname\": \"end_date\", \"print_hide\": 0, \"label\": \"End Date\"}, {\"fieldname\": \"total_working_days\", \"print_hide\": 0, \"label\": \"Working Days\"}, {\"fieldname\": \"leave_without_pay\", \"print_hide\": 0, \"label\": \"Leave Without Pay\"}, {\"fieldname\": \"payment_days\", \"print_hide\": 0, \"label\": \"Payment Days\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"earnings\", \"print_hide\": 0, \"label\": \"Earnings\", \"visible_columns\": [{\"fieldname\": \"salary_component\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"amount\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"year_to_date\", \"print_width\": \"\", \"print_hide\": 0}]}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"deductions\", \"print_hide\": 0, \"label\": \"Deductions\", \"visible_columns\": [{\"fieldname\": \"salary_component\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"amount\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"year_to_date\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"depends_on_payment_days\", \"print_width\": \"\", \"print_hide\": 0}]}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"gross_pay\", \"print_hide\": 0, \"label\": \"Gross Pay\"}, {\"fieldname\": \"total_deduction\", \"print_hide\": 0, \"label\": \"Total Deduction\"}, {\"fieldname\": \"net_pay\", \"print_hide\": 0, \"label\": \"Net Pay\"}, {\"fieldname\": \"rounded_total\", \"print_hide\": 0, \"label\": \"Rounded Total\"}, {\"fieldname\": \"total_in_words\", \"print_hide\": 0, \"label\": \"Total in words\"}, {\"fieldtype\": \"Section Break\", \"label\": \"net pay info\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"year_to_date\", \"print_hide\": 0, \"label\": \"Year To Date\"}, {\"fieldname\": \"month_to_date\", \"print_hide\": 0, \"label\": \"Month To Date\"}]", + "idx": 0, + "line_breaks": 0, + "modified": "2021-01-14 10:03:45.283725", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Slip with Year to Date", + "owner": "Administrator", + "print_format_builder": 0, + "print_format_type": "Jinja", + "raw_printing": 0, + "show_section_headings": 0, + "standard": "Yes" +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/report/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js b/apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js new file mode 100644 index 000000000..41990e42f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.js @@ -0,0 +1,113 @@ +// Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.query_reports["Accrued Earnings Report"] = { + filters: [ + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + reqd: 1, + default: frappe.defaults.get_user_default("Company"), + }, + { + fieldname: "employee", + label: __("Employee"), + fieldtype: "Link", + options: "Employee", + get_query: function () { + let company = frappe.query_report.get_filter_value("company"); + let department = frappe.query_report.get_filter_value("department"); + let branch = frappe.query_report.get_filter_value("branch"); + + let filters = {}; + if (company) { + filters["company"] = company; + } + if (department) { + filters["department"] = department; + } + if (branch) { + filters["branch"] = branch; + } + + return { + filters: filters, + }; + }, + }, + { + fieldname: "department", + label: __("Department"), + fieldtype: "Link", + options: "Department", + get_query: function () { + let company = frappe.query_report.get_filter_value("company"); + return { + filters: { + company: company, + }, + }; + }, + }, + { + fieldname: "branch", + label: __("Branch"), + fieldtype: "Link", + options: "Branch", + }, + { + fieldname: "payroll_period", + label: __("Payroll Period"), + fieldtype: "Link", + options: "Payroll Period", + reqd: 1, + get_query: function () { + let company = frappe.query_report.get_filter_value("company"); + return { + filters: { + company: company, + }, + }; + }, + }, + { + fieldname: "salary_component", + label: __("Salary Component"), + fieldtype: "Link", + options: "Salary Component", + get_query: function () { + return { + filters: { + accrual_component: 1, + }, + }; + }, + }, + { + fieldname: "flexible_benefit", + label: __("Flexible Benefit"), + fieldtype: "Select", + options: "\nYes\nNo", + default: "", + }, + ], +}; + +// To create additional salary with pre-populated fields +function create_additional_salary(employee, salary_component, amount) { + let company = frappe.query_report.get_filter_value("company"); + + const doc = frappe.model.get_new_doc("Additional Salary"); + doc.company = company; + doc.employee = employee; + doc.salary_component = salary_component; + doc.type = "Earning"; + doc.is_recurring = 0; + doc.payroll_date = frappe.datetime.get_today(); + doc.amount = amount; + doc.overwrite_salary_structure_amount = 0; + doc.ref_doctype = "Employee Benefit Ledger"; + frappe.set_route("Form", "Additional Salary", doc.name); +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json b/apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json new file mode 100644 index 000000000..ba6089ef0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.json @@ -0,0 +1,34 @@ +{ + "add_total_row": 0, + "add_translate_data": 0, + "columns": [], + "creation": "2025-08-30 15:55:53.970987", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "letterhead": null, + "modified": "2025-08-30 15:57:04.044724", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Accrued Earnings Report", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Employee Benefit Ledger", + "report_name": "Accrued Earnings Report", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + }, + { + "role": "HR Manager" + }, + { + "role": "HR User" + } + ], + "timeout": 0 +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py b/apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py new file mode 100644 index 000000000..0ee1a05fa --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/accrued_earnings_report/accrued_earnings_report.py @@ -0,0 +1,181 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from frappe.query_builder import DocType +from frappe.utils import getdate + + +def execute(filters: dict | None = None): + columns = get_columns() + data = get_data(filters) + + return columns, data + + +def get_columns() -> list[dict]: + return [ + { + "label": _("Employee"), + "fieldname": "employee", + "fieldtype": "Link", + "options": "Employee", + "width": 120, + }, + { + "label": _("Employee Name"), + "fieldname": "employee_name", + "fieldtype": "Data", + "width": 150, + }, + { + "label": _("Salary Component"), + "fieldname": "salary_component", + "fieldtype": "Link", + "options": "Salary Component", + "width": 150, + }, + { + "label": _("Yearly Benefit"), + "fieldname": "yearly_benefit", + "fieldtype": "Currency", + "width": 120, + }, + { + "label": _("Total Accrued"), + "fieldname": "total_accrued", + "fieldtype": "Currency", + "width": 120, + }, + { + "label": _("Total Payout"), + "fieldname": "total_payout", + "fieldtype": "Currency", + "width": 120, + }, + { + "label": _("Unpaid Accrual"), + "fieldname": "unpaid_accrual", + "fieldtype": "Currency", + "width": 120, + }, + { + "label": _("Flexible Component"), + "fieldname": "flexible_benefit", + "fieldtype": "Check", + "width": 120, + }, + { + "label": _("Action"), + "fieldname": "create_additional_salary", + "fieldtype": "Data", + "width": 150, + }, + ] + + +def get_data(filters): + EBL = DocType("Employee Benefit Ledger") + EMP = DocType("Employee") + SC = DocType("Salary Component") + + query = ( + frappe.qb.from_(EBL) + .inner_join(EMP) + .on(EBL.employee == EMP.name) + .inner_join(SC) + .on(EBL.salary_component == SC.name) + .select( + EBL.employee, + EBL.employee_name, + EBL.payroll_period, + EBL.salary_component, + EBL.transaction_type, + EBL.amount, + EBL.yearly_benefit, + SC.accrual_component, + EBL.flexible_benefit, + ) + ) + + if filters.get("company"): + query = query.where(EBL.company == filters["company"]) + + if filters.get("employee"): + query = query.where(EBL.employee == filters["employee"]) + + if filters.get("department"): + query = query.where(EMP.department == filters["department"]) + + if filters.get("branch"): + query = query.where(EMP.branch == filters["branch"]) + + if filters.get("payroll_period"): + query = query.where(EBL.payroll_period == filters["payroll_period"]) + + if filters.get("salary_component"): + query = query.where(EBL.salary_component == filters["salary_component"]) + + # Always filter accrual_component + query = query.where(SC.accrual_component == 1) + + flexible_benefit = filters.get("flexible_benefit") + if flexible_benefit == "Yes": + query = query.where(EBL.flexible_benefit == 1) + elif flexible_benefit == "No": + query = query.where((EBL.flexible_benefit == 0) | (EBL.flexible_benefit.isnull())) + + query = query.orderby(EBL.employee, EBL.salary_component, EBL.flexible_benefit) + ledger_entries = query.run(as_dict=True) + + # group data by employee, salary_component, and flexible_benefit + grouped_data = {} + + for entry in ledger_entries: + key = ( + entry.employee, + entry.employee_name, + entry.payroll_period, + entry.salary_component, + entry.flexible_benefit or 0, + ) + + if key not in grouped_data: + grouped_data[key] = { + "employee": entry.employee, + "employee_name": entry.employee_name, + "payroll_period": entry.payroll_period, + "salary_component": entry.salary_component, + "flexible_benefit": entry.flexible_benefit or 0, + "yearly_benefit": entry.yearly_benefit or 0, + "total_accrued": 0, + "total_payout": 0, + "unpaid_accrual": 0, + } + + if entry.transaction_type == "Accrual": + grouped_data[key]["total_accrued"] += entry.amount or 0 + elif entry.transaction_type == "Payout": + grouped_data[key]["total_payout"] += entry.amount or 0 + + # Calculate unpaid accrual and prepare final data + data = [] + for row_data in grouped_data.values(): + row_data["unpaid_accrual"] = row_data["total_accrued"] - row_data["total_payout"] + + # Add create additional salary button only for non-flexible benefits with unpaid accrual + if not row_data["flexible_benefit"] and row_data["unpaid_accrual"] > 0: + row_data["create_additional_salary"] = f""" + + Create Additional Salary + + """ + else: + row_data["create_additional_salary"] = "" + + data.append(row_data) + return data diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/bank_remittance.js b/apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/bank_remittance.js new file mode 100644 index 000000000..c83b9ea4e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/bank_remittance.js @@ -0,0 +1,26 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Bank Remittance"] = { + filters: [ + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_user_default("Company"), + reqd: 1, + }, + { + fieldname: "from_date", + label: __("From Date"), + fieldtype: "Date", + }, + { + fieldname: "to_date", + label: __("To Date"), + fieldtype: "Date", + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/bank_remittance.json b/apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/bank_remittance.json new file mode 100644 index 000000000..2a697b258 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/bank_remittance.json @@ -0,0 +1,24 @@ +{ + "add_total_row": 0, + "creation": "2019-03-26 16:57:52.558895", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 0, + "is_standard": "Yes", + "modified": "2020-05-28 00:08:08.097494", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Bank Remittance", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Payroll Entry", + "report_name": "Bank Remittance", + "report_type": "Script Report", + "roles": [ + { + "role": "HR Manager" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/bank_remittance.py b/apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/bank_remittance.py new file mode 100644 index 000000000..a571d6385 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/bank_remittance/bank_remittance.py @@ -0,0 +1,174 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _, get_all + + +def execute(filters=None): + columns = [ + { + "label": _("Payroll Number"), + "fieldtype": "Link", + "fieldname": "payroll_no", + "options": "Payroll Entry", + "width": 150, + }, + { + "label": _("Debit A/C Number"), + "fieldtype": "Int", + "fieldname": "debit_account", + "hidden": 1, + "width": 200, + }, + { + "label": _("Payment Date"), + "fieldtype": "Data", + "fieldname": "payment_date", + "width": 100, + }, + { + "label": _("Employee Name"), + "fieldtype": "Link", + "fieldname": "employee_name", + "options": "Employee", + "width": 200, + }, + {"label": _("Bank Name"), "fieldtype": "Data", "fieldname": "bank_name", "width": 50}, + { + "label": _("Employee A/C Number"), + "fieldtype": "Int", + "fieldname": "employee_account_no", + "width": 50, + }, + ] + + if frappe.db.has_column("Employee", "ifsc_code"): + columns.append({"label": _("IFSC Code"), "fieldtype": "Data", "fieldname": "bank_code", "width": 100}) + + columns += [ + {"label": _("Currency"), "fieldtype": "Data", "fieldname": "currency", "width": 50}, + { + "label": _("Net Salary Amount"), + "fieldtype": "Currency", + "options": "currency", + "fieldname": "amount", + "width": 100, + }, + ] + + data = [] + + accounts = get_bank_accounts() + payroll_entries = get_payroll_entries(accounts, filters) + salary_slips = get_salary_slips(payroll_entries) + + if frappe.db.has_column("Employee", "ifsc_code"): + get_emp_bank_ifsc_code(salary_slips) + + for salary in salary_slips: + if ( + salary.bank_name + and salary.bank_account_no + and salary.debit_acc_no + and salary.status in ["Submitted", "Paid"] + ): + row = { + "payroll_no": salary.payroll_entry, + "debit_account": salary.debit_acc_no, + "payment_date": frappe.utils.formatdate(salary.modified.strftime("%Y-%m-%d")), + "bank_name": salary.bank_name, + "employee_account_no": salary.bank_account_no, + "bank_code": salary.ifsc_code, + "employee_name": salary.employee + ": " + salary.employee_name, + "currency": frappe.get_cached_value("Company", filters.company, "default_currency"), + "amount": salary.net_pay, + } + data.append(row) + + return columns, data + + +def get_bank_accounts(): + accounts = [d.name for d in get_all("Account", filters={"account_type": "Bank"})] + return accounts + + +def get_payroll_entries(accounts, filters): + payroll_filter = [ + ("payment_account", "IN", accounts), + ("number_of_employees", ">", 0), + ("Company", "=", filters.company), + ] + if filters.to_date: + payroll_filter.append(("posting_date", "<", filters.to_date)) + + if filters.from_date: + payroll_filter.append(("posting_date", ">", filters.from_date)) + + entries = get_all("Payroll Entry", payroll_filter, ["name", "payment_account"]) + + payment_accounts = [d.payment_account for d in entries] + entries = set_company_account(payment_accounts, entries) + return entries + + +def get_salary_slips(payroll_entries): + payroll = [d.name for d in payroll_entries] + salary_slips = get_all( + "Salary Slip", + filters=[("payroll_entry", "IN", payroll)], + fields=[ + "modified", + "net_pay", + "bank_name", + "bank_account_no", + "payroll_entry", + "employee", + "employee_name", + "status", + ], + ) + + payroll_entry_map = {} + for entry in payroll_entries: + payroll_entry_map[entry.name] = entry + + # appending company debit accounts + for slip in salary_slips: + if slip.payroll_entry: + slip["debit_acc_no"] = payroll_entry_map[slip.payroll_entry]["company_account"] + else: + slip["debit_acc_no"] = None + + return salary_slips + + +def get_emp_bank_ifsc_code(salary_slips): + emp_names = [d.employee for d in salary_slips] + ifsc_codes = get_all("Employee", [("name", "IN", emp_names)], ["ifsc_code", "name"]) + + ifsc_codes_map = {code.name: code.ifsc_code for code in ifsc_codes} + + for slip in salary_slips: + slip["ifsc_code"] = ifsc_codes_map[slip.employee] + + return salary_slips + + +def set_company_account(payment_accounts, payroll_entries): + company_accounts = get_all( + "Bank Account", [("account", "in", payment_accounts)], ["account", "bank_account_no"] + ) + company_accounts_map = {} + for acc in company_accounts: + company_accounts_map[acc.account] = acc + + for entry in payroll_entries: + company_account = "" + if entry.payment_account in company_accounts_map: + company_account = company_accounts_map[entry.payment_account]["bank_account_no"] + entry["company_account"] = company_account + + return payroll_entries diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/income_tax_computation.js b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/income_tax_computation.js new file mode 100644 index 000000000..929abd516 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/income_tax_computation.js @@ -0,0 +1,54 @@ +// Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Income Tax Computation"] = { + filters: [ + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_user_default("Company"), + width: "90px", + reqd: 1, + }, + { + fieldname: "payroll_period", + label: __("Payroll Period"), + fieldtype: "Link", + options: "Payroll Period", + width: "90px", + reqd: 1, + }, + { + fieldname: "employee", + label: __("Employee"), + fieldtype: "Link", + options: "Employee", + width: "90px", + }, + { + fieldname: "department", + label: __("Department"), + fieldtype: "Link", + options: "Department", + width: "90px", + }, + + { + fieldname: "employee_status", + label: __("Employee Status"), + fieldtype: "Select", + options: "\nActive\nInactive\nSuspended\nLeft", + default: "Active", + width: "90px", + }, + { + fieldname: "consider_tax_exemption_declaration", + label: __("Consider Tax Exemption Declaration"), + fieldtype: "Check", + width: "180px", + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/income_tax_computation.json b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/income_tax_computation.json new file mode 100644 index 000000000..7cb5b2270 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/income_tax_computation.json @@ -0,0 +1,36 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2022-02-17 17:19:30.921422", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "letter_head": "", + "modified": "2022-02-23 13:07:30.347861", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Income Tax Computation", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Salary Slip", + "report_name": "Income Tax Computation", + "report_type": "Script Report", + "roles": [ + { + "role": "Employee" + }, + { + "role": "HR User" + }, + { + "role": "HR Manager" + }, + { + "role": "Employee Self Service" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/income_tax_computation.py b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/income_tax_computation.py new file mode 100644 index 000000000..607eb6415 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/income_tax_computation.py @@ -0,0 +1,635 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +import frappe +from frappe import _, scrub +from frappe.query_builder.functions import Sum +from frappe.utils import add_days, flt, getdate, rounded + +from hrms.payroll.doctype.payroll_entry.payroll_entry import get_start_end_dates +from hrms.payroll.doctype.salary_slip.salary_slip import calculate_tax_by_tax_slab + + +def execute(filters=None): + return IncomeTaxComputationReport(filters).run() + + +class IncomeTaxComputationReport: + def __init__(self, filters=None): + self.filters = frappe._dict(filters or {}) + self.columns = [] + self.data = [] + self.employees = frappe._dict() + self.payroll_period_start_date = None + self.payroll_period_end_date = None + if self.filters.payroll_period: + self.payroll_period_start_date, self.payroll_period_end_date = frappe.db.get_value( + "Payroll Period", self.filters.payroll_period, ["start_date", "end_date"] + ) + + def run(self): + self.get_fixed_columns() + self.get_data() + return self.columns, self.data + + def get_data(self): + self.get_employee_details() + self.get_future_salary_slips() + self.get_gross_earnings() + self.get_income_from_other_sources() + self.get_tax_exempted_earnings_and_deductions() + self.get_employee_tax_exemptions() + self.get_hra() + self.get_standard_tax_exemption() + self.get_total_taxable_amount() + self.get_applicable_tax() + self.get_total_deducted_tax() + self.get_payable_tax() + + self.data = list(self.employees.values()) + + def get_employee_details(self): + filters = self.get_employee_filters() + fields = [ + "name as employee", + "employee_name", + "department", + "designation", + "date_of_joining", + "relieving_date", + ] + + employees = frappe.get_all("Employee", filters=filters, fields=fields) + ss_assignments = self.get_ss_assignments([d.employee for d in employees]) + + for d in employees: + if d.employee in list(ss_assignments.keys()): + d.update(ss_assignments[d.employee]) + self.employees.setdefault(d.employee, d) + + if not self.employees: + frappe.throw(_("No employees found with selected filters and active salary structure")) + + def get_employee_filters(self): + filters = {"company": self.filters.company} + if self.filters.employee: + filters = {"name": self.filters.employee} + elif self.filters.department: + filters.update({"department": self.filters.department}) + elif self.filters.employee_status: + filters["status"] = self.filters.employee_status + + return filters + + def get_ss_assignments(self, employees): + ss_assignments = frappe.get_all( + "Salary Structure Assignment", + filters={ + "employee": ["in", employees], + "docstatus": 1, + "salary_structure": ["is", "set"], + "income_tax_slab": ["is", "set"], + }, + fields=[ + "employee", + "income_tax_slab", + "salary_structure", + "taxable_earnings_till_date", + "tax_deducted_till_date", + ], + order_by="from_date desc", + ) + + employee_ss_assignments = frappe._dict() + for d in ss_assignments: + if d.employee not in list(employee_ss_assignments.keys()): + tax_slab = frappe.get_cached_value( + "Income Tax Slab", d.income_tax_slab, ["allow_tax_exemption", "disabled"], as_dict=1 + ) + + if tax_slab and not tax_slab.disabled: + employee_ss_assignments.setdefault( + d.employee, + { + "salary_structure": d.salary_structure, + "income_tax_slab": d.income_tax_slab, + "allow_tax_exemption": tax_slab.allow_tax_exemption, + "taxable_earnings_till_date": d.taxable_earnings_till_date or 0.0, + "tax_deducted_till_date": d.tax_deducted_till_date or 0.0, + }, + ) + return employee_ss_assignments + + def get_future_salary_slips(self): + self.future_salary_slips = frappe._dict() + for employee in list(self.employees.keys()): + last_ss = self.get_last_salary_slip(employee) + if last_ss and last_ss.end_date == self.payroll_period_end_date: + continue + + relieving_date = self.employees[employee].get("relieving_date", "") + if last_ss: + ss_start_date = add_days(last_ss.end_date, 1) + else: + ss_start_date = self.payroll_period_start_date + last_ss = frappe._dict( + { + "payroll_frequency": "Monthly", + "salary_structure": self.employees[employee].get("salary_structure"), + } + ) + + while getdate(ss_start_date) < getdate(self.payroll_period_end_date) and ( + not relieving_date or getdate(ss_start_date) < relieving_date + ): + ss_end_date = get_start_end_dates(last_ss.payroll_frequency, ss_start_date).end_date + + ss = frappe.new_doc("Salary Slip") + ss.employee = employee + ss.start_date = ss_start_date + ss.end_date = ss_end_date + ss.salary_structure = last_ss.salary_structure + ss.payroll_frequency = last_ss.payroll_frequency + ss.company = self.filters.company + try: + ss.process_salary_structure(for_preview=1) + self.future_salary_slips.setdefault(employee, []).append(ss.as_dict()) + except Exception: + break + + ss_start_date = add_days(ss_end_date, 1) + + def get_last_salary_slip(self, employee): + last_salary_slip = frappe.db.get_value( + "Salary Slip", + { + "employee": employee, + "docstatus": 1, + "start_date": ["between", [self.payroll_period_start_date, self.payroll_period_end_date]], + }, + ["name", "start_date", "end_date", "salary_structure", "payroll_frequency"], + order_by="start_date desc", + as_dict=1, + ) + + return last_salary_slip + + def get_gross_earnings(self): + # Get total earnings from existing salary slip + ss = frappe.qb.DocType("Salary Slip") + existing_ss = frappe._dict( + ( + frappe.qb.from_(ss) + .select(ss.employee, Sum(ss.base_gross_pay).as_("amount")) + .where(ss.docstatus == 1) + .where(ss.employee.isin(list(self.employees.keys()))) + .where(ss.start_date >= self.payroll_period_start_date) + .where(ss.end_date <= self.payroll_period_end_date) + .groupby(ss.employee) + ).run() + ) + + for employee, employee_details in self.employees.items(): + opening_taxable_earnings = employee_details["taxable_earnings_till_date"] + future_ss_earnings = self.get_future_earnings(employee) + gross_earnings = ( + flt(opening_taxable_earnings) + flt(existing_ss.get(employee)) + future_ss_earnings + ) + + self.employees[employee].setdefault("gross_earnings", gross_earnings) + + def get_future_earnings(self, employee): + future_earnings = 0.0 + for ss in self.future_salary_slips.get(employee, []): + future_earnings += flt(ss.base_gross_pay) + + return future_earnings + + def get_tax_exempted_earnings_and_deductions(self): + tax_exempted_components = self.get_tax_exempted_components() + + if not tax_exempted_components: + return + + # Get component totals from existing salary slips + ss = frappe.qb.DocType("Salary Slip") + ss_comps = frappe.qb.DocType("Salary Detail") + + records = ( + frappe.qb.from_(ss) + .inner_join(ss_comps) + .on(ss.name == ss_comps.parent) + .select(ss.name, ss.employee, ss_comps.salary_component, Sum(ss_comps.amount).as_("amount")) + .where(ss.docstatus == 1) + .where(ss.employee.isin(list(self.employees.keys()))) + .where(ss_comps.do_not_include_in_total == 0) + .where(ss_comps.salary_component.isin(tax_exempted_components)) + .where(ss.start_date >= self.payroll_period_start_date) + .where(ss.end_date <= self.payroll_period_end_date) + .groupby(ss.employee, ss_comps.salary_component) + ).run(as_dict=True) + + existing_ss_exemptions = frappe._dict() + for d in records: + existing_ss_exemptions.setdefault(d.employee, {}).setdefault(scrub(d.salary_component), d.amount) + + for employee in list(self.employees.keys()): + if not self.employees[employee]["allow_tax_exemption"]: + continue + + exemptions = existing_ss_exemptions.get(employee, {}) + self.add_exemptions_from_future_salary_slips(employee, exemptions) + self.employees[employee].update(exemptions) + + total_exemptions = sum(list(exemptions.values())) + self.employees[employee]["total_exemption"] = 0 + self.employees[employee]["total_exemption"] += total_exemptions + + def add_exemptions_from_future_salary_slips(self, employee, exemptions): + for ss in self.future_salary_slips.get(employee, []): + for e in ss.earnings: + if not e.is_tax_applicable: + exemptions.setdefault(scrub(e.salary_component), 0) + exemptions[scrub(e.salary_component)] += flt(e.amount) + + for d in ss.deductions: + if d.exempted_from_income_tax: + exemptions.setdefault(scrub(d.salary_component), 0) + exemptions[scrub(d.salary_component)] += flt(d.amount) + + return exemptions + + def get_tax_exempted_components(self): + # nontaxable earning components + nontaxable_earning_components = [ + d.name + for d in frappe.get_all( + "Salary Component", {"type": "Earning", "is_tax_applicable": 0, "disabled": 0} + ) + ] + + # tax exempted deduction components + tax_exempted_deduction_components = [ + d.name + for d in frappe.get_all( + "Salary Component", {"type": "Deduction", "exempted_from_income_tax": 1, "disabled": 0} + ) + ] + + tax_exempted_components = nontaxable_earning_components + tax_exempted_deduction_components + + # Add columns + for d in tax_exempted_components: + self.add_column(d) + + return tax_exempted_components + + def get_employee_tax_exemptions(self): + # add columns + exemption_categories = frappe.get_all("Employee Tax Exemption Category", {"is_active": 1}) + for d in exemption_categories: + self.add_column(d.name) + + self.employees_with_proofs = [] + self.get_tax_exemptions("Employee Tax Exemption Proof Submission") + if self.filters.consider_tax_exemption_declaration: + self.get_tax_exemptions("Employee Tax Exemption Declaration") + + def get_tax_exemptions(self, source): + # Get category-wise exmeptions based on submitted proofs or declarations + if source == "Employee Tax Exemption Proof Submission": + child_doctype = "Employee Tax Exemption Proof Submission Detail" + else: + child_doctype = "Employee Tax Exemption Declaration Category" + + max_exemptions = self.get_max_exemptions_based_on_category() + + par = frappe.qb.DocType(source) + child = frappe.qb.DocType(child_doctype) + + records = ( + frappe.qb.from_(par) + .inner_join(child) + .on(par.name == child.parent) + .select(par.employee, child.exemption_category, Sum(child.amount).as_("amount")) + .where(par.docstatus == 1) + .where(par.employee.isin(list(self.employees.keys()))) + .where(par.payroll_period == self.filters.payroll_period) + .groupby(par.employee, child.exemption_category) + ).run(as_dict=True) + + for d in records: + if not self.employees[d.employee]["allow_tax_exemption"]: + continue + + if source == "Employee Tax Exemption Declaration" and d.employee in self.employees_with_proofs: + continue + + amount = flt(d.amount) + max_eligible_amount = flt(max_exemptions.get(d.exemption_category)) + if max_eligible_amount and amount > max_eligible_amount: + amount = max_eligible_amount + + self.employees[d.employee].setdefault(scrub(d.exemption_category), amount) + self.employees[d.employee]["total_exemption"] += amount + + if ( + source == "Employee Tax Exemption Proof Submission" + and d.employee not in self.employees_with_proofs + ): + self.employees_with_proofs.append(d.employee) + + def get_max_exemptions_based_on_category(self): + return dict( + frappe.get_all( + "Employee Tax Exemption Category", + filters={"is_active": 1}, + fields=["name", "max_amount"], + as_list=1, + ) + ) + + def get_hra(self): + if not frappe.get_meta("Employee Tax Exemption Declaration").has_field("monthly_house_rent"): + return + + self.add_column("HRA") + + self.employees_with_proofs = [] + self.get_eligible_hra("Employee Tax Exemption Proof Submission") + if self.filters.consider_tax_exemption_declaration: + self.get_eligible_hra("Employee Tax Exemption Declaration") + + def get_eligible_hra(self, source): + if source == "Employee Tax Exemption Proof Submission": + hra_amount_field = "total_eligible_hra_exemption" + else: + hra_amount_field = "annual_hra_exemption" + + records = frappe.get_all( + source, + filters={ + "docstatus": 1, + "employee": ["in", list(self.employees.keys())], + "payroll_period": self.filters.payroll_period, + }, + fields=["employee", hra_amount_field], + as_list=1, + ) + + for d in records: + if not self.employees[d[0]]["allow_tax_exemption"]: + continue + + if d[0] not in self.employees_with_proofs: + self.employees[d[0]].setdefault("hra", d[1]) + + self.employees[d[0]]["total_exemption"] += d[1] + self.employees_with_proofs.append(d[0]) + + def get_standard_tax_exemption(self): + self.add_column("Standard Tax Exemption") + + standard_exemptions_per_slab = dict( + frappe.get_all( + "Income Tax Slab", + filters={"company": self.filters.company, "docstatus": 1, "disabled": 0}, + fields=["name", "standard_tax_exemption_amount"], + as_list=1, + ) + ) + + for emp_details in self.employees.values(): + income_tax_slab = emp_details.get("income_tax_slab") + standard_exemption = standard_exemptions_per_slab.get(income_tax_slab, 0) + emp_details["standard_tax_exemption"] = standard_exemption + emp_details.setdefault("total_exemption", 0) + emp_details["total_exemption"] += standard_exemption + + self.add_column("Total Exemption") + + def get_income_from_other_sources(self): + self.add_column("Other Income") + + for employee in list(self.employees.keys()): + other_income = ( + frappe.get_all( + "Employee Other Income", + filters={ + "employee": employee, + "payroll_period": self.filters.payroll_period, + "company": self.filters.company, + "docstatus": 1, + }, + fields=[{"SUM": "amount", "as": "total_amount"}], + )[0].total_amount + or 0.0 + ) + + self.employees[employee].setdefault("other_income", other_income) + + def get_total_taxable_amount(self): + self.add_column("Total Taxable Amount") + + for employee, emp_details in self.employees.items(): + total_taxable_amount = 0.0 + annual_taxable_amount = tax_exemption_declaration = standard_tax_exemption_amount = ( + deductions_before_tax_calculation + ) = 0.0 + + last_ss = self.get_last_salary_slip(employee) + + if last_ss and last_ss.end_date == self.payroll_period_end_date: + ( + annual_taxable_amount, + tax_exemption_declaration, + deductions_before_tax_calculation, + standard_tax_exemption_amount, + ) = frappe.db.get_value( + "Salary Slip", + last_ss.name, + [ + "annual_taxable_amount", + "tax_exemption_declaration", + "deductions_before_tax_calculation", + "standard_tax_exemption_amount", + ], + ) + else: + future_salary_slips = self.future_salary_slips.get(employee, []) + if future_salary_slips: + last_ss = future_salary_slips[0] + annual_taxable_amount = last_ss.get("annual_taxable_amount", 0.0) + tax_exemption_declaration = last_ss.get("tax_exemption_declaration", 0.0) + standard_tax_exemption_amount = last_ss.get("standard_tax_exemption_amount", 0.0) + deductions_before_tax_calculation = last_ss.get("deductions_before_tax_calculation", 0.0) + + if annual_taxable_amount: + # Remove exemptions already factored into salary slip so that report can apply its own logic (declaration vs proof) + total_taxable_amount = ( + flt(annual_taxable_amount) + + flt(tax_exemption_declaration) + + flt(standard_tax_exemption_amount) + + flt(deductions_before_tax_calculation) + - emp_details["total_exemption"] + ) + + emp_details["total_taxable_amount"] = total_taxable_amount + + def get_applicable_tax(self): + self.add_column("Income Tax (Slab Based)", "income_tax_slab_based") + self.add_column("Other Taxes and Charges") + self.add_column("Total Applicable Tax", "applicable_tax") + + is_tax_rounded = frappe.db.get_value( + "Salary Component", + {"variable_based_on_taxable_salary": 1, "disabled": 0}, + "round_to_the_nearest_integer", + ) + + for emp, emp_details in self.employees.items(): + tax_slab = emp_details.get("income_tax_slab") + if tax_slab: + tax_slab = frappe.get_cached_doc("Income Tax Slab", tax_slab) + eval_globals, eval_locals = self.get_data_for_eval(emp, emp_details) + tax_amount, other_taxes_and_charges = calculate_tax_by_tax_slab( + emp_details["total_taxable_amount"], + tax_slab, + eval_globals=eval_globals, + eval_locals=eval_locals, + ) + else: + tax_amount = 0.0 + other_taxes_and_charges = 0.0 + + if is_tax_rounded: + tax_amount = rounded(tax_amount) + other_taxes_and_charges = rounded(other_taxes_and_charges) + + emp_details["income_tax_slab_based"] = tax_amount - other_taxes_and_charges + emp_details["other_taxes_and_charges"] = other_taxes_and_charges + emp_details["applicable_tax"] = tax_amount + + def get_data_for_eval(self, emp: str, emp_details: dict) -> tuple: + last_ss = self.get_last_salary_slip(emp) + + if last_ss: + salary_slip = frappe.get_cached_doc("Salary Slip", last_ss.name) + else: + salary_slip = frappe.new_doc("Salary Slip") + salary_slip.employee = emp + salary_slip.salary_structure = emp_details.salary_structure + salary_slip.start_date = max(self.payroll_period_start_date, emp_details.date_of_joining) + salary_slip.payroll_frequency = frappe.db.get_value( + "Salary Structure", emp_details.salary_structure, "payroll_frequency" + ) + salary_slip.end_date = get_start_end_dates( + salary_slip.payroll_frequency, salary_slip.start_date + ).end_date + salary_slip.process_salary_structure() + + eval_locals, __ = salary_slip.get_data_for_eval() + + return salary_slip.whitelisted_globals, eval_locals + + def get_total_deducted_tax(self): + SalaryComponent = frappe.qb.DocType("Salary Component") + tax_components = ( + frappe.qb.from_(SalaryComponent) + .select(SalaryComponent.name) + .where( + (SalaryComponent.is_income_tax_component == 1) + | (SalaryComponent.variable_based_on_taxable_salary == 1) + ) + .where(SalaryComponent.type == "Deduction") + .where(SalaryComponent.disabled == 0) + ).run(pluck="name") + if not tax_components: + return [] + + self.add_column("Total Tax Deducted") + + ss = frappe.qb.DocType("Salary Slip") + ss_ded = frappe.qb.DocType("Salary Detail") + + records = ( + frappe.qb.from_(ss) + .inner_join(ss_ded) + .on(ss.name == ss_ded.parent) + .select(ss.employee, Sum(ss_ded.amount).as_("amount")) + .where(ss.docstatus == 1) + .where(ss.employee.isin(list(self.employees.keys()))) + .where(ss_ded.salary_component.isin(tax_components)) + .where(ss_ded.parentfield == "deductions") + .where(ss.start_date >= self.payroll_period_start_date) + .where(ss.end_date <= self.payroll_period_end_date) + .groupby(ss.employee) + ).run(as_dict=True) + + for d in records: + total_tax_deducted = flt(self.employees[d.employee].get("tax_deducted_till_date", 0)) + d.amount + self.employees[d.employee].setdefault("total_tax_deducted", total_tax_deducted) + + def get_payable_tax(self): + self.add_column("Payable Tax") + + for __, emp_details in self.employees.items(): + payable_tax = flt(emp_details.get("applicable_tax")) - flt(emp_details.get("total_tax_deducted")) + if payable_tax < 0: + payable_tax = 0.0 + emp_details["payable_tax"] = payable_tax + + def add_column(self, label, fieldname=None, fieldtype=None, options=None, width=None): + col = { + "label": _(label), + "fieldname": fieldname or scrub(label), + "fieldtype": fieldtype or "Currency", + "options": options, + "width": width or "140px", + } + self.columns.append(col) + + def get_fixed_columns(self): + self.columns = [ + { + "label": _("Employee"), + "fieldname": "employee", + "fieldtype": "Link", + "options": "Employee", + "width": "140px", + }, + { + "label": _("Employee Name"), + "fieldname": "employee_name", + "fieldtype": "Data", + "width": "160px", + }, + { + "label": _("Department"), + "fieldname": "department", + "fieldtype": "Link", + "options": "Department", + "width": "140px", + }, + { + "label": _("Designation"), + "fieldname": "designation", + "fieldtype": "Link", + "options": "Designation", + "width": "140px", + }, + {"label": _("Date of Joining"), "fieldname": "date_of_joining", "fieldtype": "Date"}, + { + "label": _("Income Tax Slab"), + "fieldname": "income_tax_slab", + "fieldtype": "Link", + "options": "Income Tax Slab", + "width": "140px", + }, + { + "label": _("Gross Earnings"), + "fieldname": "gross_earnings", + "fieldtype": "Currency", + "width": "140px", + }, + ] diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/test_income_tax_computation.py b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/test_income_tax_computation.py new file mode 100644 index 000000000..484ec4e4b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_computation/test_income_tax_computation.py @@ -0,0 +1,148 @@ +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.payroll.doctype.employee_tax_exemption_declaration.test_employee_tax_exemption_declaration import ( + create_payroll_period, +) +from hrms.payroll.doctype.salary_slip.test_salary_slip import ( + create_exemption_declaration, + create_salary_slips_for_payroll_period, + create_tax_slab, +) +from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure +from hrms.payroll.report.income_tax_computation.income_tax_computation import execute + + +class TestIncomeTaxComputation(IntegrationTestCase): + def setUp(self): + self.cleanup_records() + self.create_records() + + def tearDown(self): + frappe.db.rollback() + + def cleanup_records(self): + frappe.db.sql("delete from `tabEmployee Tax Exemption Declaration`") + frappe.db.sql("delete from `tabPayroll Period`") + frappe.db.sql("delete from `tabIncome Tax Slab`") + frappe.db.sql("delete from `tabSalary Component`") + frappe.db.sql("delete from `tabEmployee Benefit Application`") + frappe.db.sql("delete from `tabEmployee Benefit Claim`") + frappe.db.sql("delete from `tabEmployee` where company='_Test Company'") + frappe.db.sql("delete from `tabSalary Slip`") + + def create_records(self): + self.employee = make_employee( + "employee_tax_computation@example.com", + company="_Test Company", + date_of_joining=getdate("01-10-2021"), + ) + + self.payroll_period = create_payroll_period(name="_Test Payroll Period 1", company="_Test Company") + + self.income_tax_slab = create_tax_slab( + self.payroll_period, + allow_tax_exemption=True, + effective_date=getdate("2019-04-01"), + company="_Test Company", + ) + salary_structure = make_salary_structure( + "Monthly Salary Structure Test Income Tax Computation", + "Monthly", + employee=self.employee, + company="_Test Company", + currency="INR", + payroll_period=self.payroll_period, + test_tax=True, + ) + + create_exemption_declaration(self.employee, self.payroll_period.name) + + create_salary_slips_for_payroll_period( + self.employee, salary_structure.name, self.payroll_period, deduct_random=False, num=3 + ) + + def test_report(self): + filters = frappe._dict( + { + "company": "_Test Company", + "payroll_period": self.payroll_period.name, + "employee": self.employee, + } + ) + + result = execute(filters) + + expected_data = { + "employee": self.employee, + "employee_name": "employee_tax_computation@example.com", + "department": "All Departments", + "income_tax_slab": self.income_tax_slab, + "gross_earnings": 936000.0, + "professional_tax": 2400.0, + "standard_tax_exemption": 50000, + "total_exemption": 52400.0, + "total_taxable_amount": 883600.0, + "applicable_tax": 92789.0, + "total_tax_deducted": 17997.0, + "payable_tax": 74792.0, + } + + for key, val in expected_data.items(): + self.assertEqual(result[1][0].get(key), val) + + # Run report considering tax exemption declaration + filters.consider_tax_exemption_declaration = 1 + + result = execute(filters) + + expected_data.update( + { + "_test_category": 100000.0, + "total_exemption": 152400.0, + "total_taxable_amount": 783600.0, + "applicable_tax": 71989.0, + "payable_tax": 53992.0, + } + ) + + for key, val in expected_data.items(): + self.assertEqual(result[1][0].get(key), val) + + def test_get_report_for_all_employees(self): + frappe.db.delete("Employee") + users = [ + {"email": "test_itrc1@example.com", "args": {"status": "Active"}}, + {"email": "test_itrc2@example.com", "args": {"status": "Inactive"}}, + {"email": "test_itrc3@example.com", "args": {"status": "Suspended"}}, + {"email": "test_itrc4@example.com", "args": {"status": "Left", "relieving_date": getdate()}}, + ] + + for user in users: + employee = make_employee(user["email"], company="_Test Company") + salary_structure = make_salary_structure( + "Monthly Salary Structure Test Income Tax Computation", + "Monthly", + employee=employee, + company="_Test Company", + currency="INR", + payroll_period=self.payroll_period, + test_tax=True, + ) + + create_salary_slips_for_payroll_period( + employee, salary_structure.name, self.payroll_period, deduct_random=False, num=3 + ) + frappe.db.set_value("Employee", employee, user["args"]) + + filters = frappe._dict( + { + "company": "_Test Company", + "payroll_period": self.payroll_period.name, + } + ) + result = execute(filters)[1] + self.assertEqual(len(result), 4) diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/income_tax_deductions.js b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/income_tax_deductions.js new file mode 100644 index 000000000..33f73d87b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/income_tax_deductions.js @@ -0,0 +1,8 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Income Tax Deductions"] = $.extend( + {}, + hrms.salary_slip_deductions_report_filters, +); diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/income_tax_deductions.json b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/income_tax_deductions.json new file mode 100644 index 000000000..e4cf9202f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/income_tax_deductions.json @@ -0,0 +1,35 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2020-05-30 00:07:56.744372", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "letterhead": null, + "modified": "2023-11-16 20:58:59.156949", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Income Tax Deductions", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Salary Slip", + "report_name": "Income Tax Deductions", + "report_type": "Script Report", + "roles": [ + { + "role": "HR User" + }, + { + "role": "HR Manager" + }, + { + "role": "Employee" + }, + { + "role": "Employee Self Service" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/income_tax_deductions.py b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/income_tax_deductions.py new file mode 100644 index 000000000..c8ca5b39d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/income_tax_deductions.py @@ -0,0 +1,133 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.query_builder.functions import Extract + +import erpnext + +Filters = frappe._dict + + +def execute(filters: Filters = None) -> tuple: + is_indian_company = erpnext.get_region(filters.get("company")) == "India" + columns = get_columns(is_indian_company) + data = get_data(filters, is_indian_company) + + return columns, data + + +def get_columns(is_indian_company: bool) -> list[dict]: + columns = [ + { + "label": _("Employee"), + "options": "Employee", + "fieldname": "employee", + "fieldtype": "Link", + "width": 200, + }, + { + "label": _("Employee Name"), + "fieldname": "employee_name", + "fieldtype": "Data", + "width": 160, + }, + ] + + if is_indian_company: + columns.append( + {"label": _("PAN Number"), "fieldname": "pan_number", "fieldtype": "Data", "width": 140} + ) + + columns += [ + {"label": _("Income Tax Component"), "fieldname": "it_comp", "fieldtype": "Data", "width": 170}, + { + "label": _("Income Tax Amount"), + "fieldname": "it_amount", + "fieldtype": "Currency", + "options": "currency", + "width": 140, + }, + { + "label": _("Gross Pay"), + "fieldname": "gross_pay", + "fieldtype": "Currency", + "options": "currency", + "width": 140, + }, + {"label": _("Posting Date"), "fieldname": "posting_date", "fieldtype": "Date", "width": 140}, + ] + + return columns + + +def get_data(filters: Filters, is_indian_company: bool) -> list[dict]: + data = [] + + employee_pan_dict = {} + if is_indian_company: + employee_pan_dict = frappe._dict( + frappe.get_all("Employee", fields=["name", "pan_number"], as_list=True) + ) + + deductions = get_income_tax_deductions(filters) + + for d in deductions: + employee = { + "employee": d.employee, + "employee_name": d.employee_name, + "it_comp": d.salary_component, + "posting_date": d.posting_date, + "it_amount": d.amount, + "gross_pay": d.gross_pay, + } + + if is_indian_company: + employee["pan_number"] = employee_pan_dict.get(d.employee) + + data.append(employee) + + return data + + +def get_income_tax_deductions(filters: Filters) -> list[dict]: + component_types = frappe.get_all("Salary Component", filters={"is_income_tax_component": 1}, pluck="name") + if not component_types: + return [] + + SalarySlip = frappe.qb.DocType("Salary Slip") + SalaryDetail = frappe.qb.DocType("Salary Detail") + + query = ( + frappe.qb.from_(SalarySlip) + .inner_join(SalaryDetail) + .on(SalarySlip.name == SalaryDetail.parent) + .select( + SalarySlip.employee, + SalarySlip.employee_name, + SalarySlip.posting_date, + SalaryDetail.salary_component, + SalaryDetail.amount, + SalarySlip.gross_pay, + ) + .where( + (SalarySlip.docstatus == 1) + & (SalaryDetail.parentfield == "deductions") + & (SalaryDetail.parenttype == "Salary Slip") + & (SalaryDetail.salary_component.isin(component_types)) + ) + ) + + for field in ["department", "branch", "company"]: + if filters.get(field): + query = query.where(getattr(SalarySlip, field) == filters.get(field)) + + if filters.get("month"): + query = query.where(Extract("month", SalarySlip.start_date) == filters.month) + + if filters.get("year"): + query = query.where(Extract("year", SalarySlip.start_date) == filters.year) + + return query.run(as_dict=True) diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/test_income_tax_deductions.py b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/test_income_tax_deductions.py new file mode 100644 index 000000000..9a4e3a98b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/income_tax_deductions/test_income_tax_deductions.py @@ -0,0 +1,67 @@ +import frappe +from frappe.tests import IntegrationTestCase +from frappe.utils import getdate + +from erpnext.setup.doctype.employee.test_employee import make_employee + +from hrms.payroll.doctype.employee_tax_exemption_declaration.test_employee_tax_exemption_declaration import ( + create_payroll_period, +) +from hrms.payroll.doctype.salary_slip.test_salary_slip import ( + create_salary_slips_for_payroll_period, +) +from hrms.payroll.doctype.salary_structure.test_salary_structure import make_salary_structure +from hrms.payroll.report.income_tax_deductions.income_tax_deductions import execute + + +class TestIncomeTaxDeductions(IntegrationTestCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + frappe.db.delete("Payroll Period") + frappe.db.delete("Salary Slip") + + cls.create_records() + + @classmethod + def tearDownClass(cls): + frappe.db.rollback() + + @classmethod + def create_records(cls): + cls.employee = make_employee( + "test_tax_deductions@example.com", + company="_Test Company", + date_of_joining=getdate("01-10-2021"), + ) + + cls.payroll_period = create_payroll_period(name="_Test Payroll Period 1", company="_Test Company") + frappe.db.set_single_value("Payroll Settings", "consider_unmarked_attendance_as", "Present") + salary_structure = make_salary_structure( + "Monthly Salary Structure Test Income Tax Deduction", + "Monthly", + employee=cls.employee, + company="_Test Company", + currency="INR", + payroll_period=cls.payroll_period, + test_tax=True, + ) + + create_salary_slips_for_payroll_period(cls.employee, salary_structure.name, cls.payroll_period, num=1) + + def test_report(self): + filters = frappe._dict({"company": "_Test Company"}) + + result = execute(filters) + posting_date = frappe.db.get_value("Salary Slip", {"employee": self.employee}, "posting_date") + expected_data = { + "employee": self.employee, + "employee_name": "test_tax_deductions@example.com", + "it_comp": "TDS", + "posting_date": posting_date, + "it_amount": 7732.0, + "gross_pay": 78000.0, + "pan_number": None, + } + + self.assertEqual(result[1][0], expected_data) diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.js b/apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.js new file mode 100644 index 000000000..0f473481f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.js @@ -0,0 +1,8 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Professional Tax Deductions"] = $.extend( + {}, + hrms.salary_slip_deductions_report_filters, +); diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json b/apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json new file mode 100644 index 000000000..87b070ce4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.json @@ -0,0 +1,20 @@ +{ + "add_total_row": 0, + "creation": "2020-06-02 00:37:44.537355", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 0, + "is_standard": "Yes", + "modified": "2022-06-26 19:02:26.306348", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Professional Tax Deductions", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Salary Slip", + "report_name": "Professional Tax Deductions", + "report_type": "Script Report", + "roles": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.py b/apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.py new file mode 100644 index 000000000..50a2f251c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/professional_tax_deductions/professional_tax_deductions.py @@ -0,0 +1,72 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ + +from hrms.payroll.report.provident_fund_deductions.provident_fund_deductions import get_conditions + + +def execute(filters=None): + data = get_data(filters) + columns = get_columns(filters) if len(data) else [] + + return columns, data + + +def get_columns(filters): + columns = [ + { + "label": _("Employee"), + "fieldname": "employee", + "fieldtype": "Link", + "options": "Employee", + "width": 200, + }, + { + "label": _("Employee Name"), + "fieldname": "employee_name", + "width": 160, + }, + {"label": _("Amount"), "fieldname": "amount", "fieldtype": "Currency", "width": 140}, + ] + + return columns + + +def get_data(filters): + data = [] + + component_type_dict = frappe._dict( + frappe.db.sql( + """ select name, component_type from `tabSalary Component` + where component_type = 'Professional Tax' """ + ) + ) + + if not len(component_type_dict): + return [] + + conditions = get_conditions(filters) + + # nosemgrep: frappe-semgrep-rules.rules.frappe-using-db-sql + entry = frappe.db.sql( + """SELECT sal.employee, sal.employee_name, ded.salary_component, ded.amount + FROM `tabSalary Slip` sal, `tabSalary Detail` ded + WHERE sal.name = ded.parent + AND ded.parentfield = 'deductions' + AND ded.parenttype = 'Salary Slip' + AND sal.docstatus = 1 {} + AND ded.salary_component IN ({}) + """.format(conditions, ", ".join(["%s"] * len(component_type_dict))), + tuple(component_type_dict.keys()), + as_dict=1, + ) + + for d in entry: + employee = {"employee": d.employee, "employee_name": d.employee_name, "amount": d.amount} + + data.append(employee) + + return data diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.js b/apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.js new file mode 100644 index 000000000..20302045b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.js @@ -0,0 +1,8 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Provident Fund Deductions"] = $.extend( + {}, + hrms.salary_slip_deductions_report_filters, +); diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json b/apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json new file mode 100644 index 000000000..454ffbe88 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.json @@ -0,0 +1,20 @@ +{ + "add_total_row": 0, + "creation": "2020-06-01 23:44:07.919117", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 0, + "is_standard": "Yes", + "modified": "2022-06-26 18:54:19.305763", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Provident Fund Deductions", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Salary Slip", + "report_name": "Provident Fund Deductions", + "report_type": "Script Report", + "roles": [] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py b/apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py new file mode 100644 index 000000000..2c0688763 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/provident_fund_deductions/provident_fund_deductions.py @@ -0,0 +1,183 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ +from frappe.utils import getdate + + +def execute(filters=None): + data = [] + provident_fund_components = ["Provident Fund", "Additional Provident Fund", "Provident Fund Loan"] + if not frappe.db.exists("Salary Component", {"component_type": ["in", provident_fund_components]}): + frappe.msgprint( + _( + "Salary components of type Provident Fund, Additional Provident Fund or Provident Fund Loan are not set up." + ), + title=_("Missing Salary Components"), + indicator="red", + ) + else: + data = get_data(filters) + + columns = get_columns(filters) if len(data) else [] + + return columns, data + + +def get_columns(filters): + columns = [ + { + "label": _("Employee"), + "fieldname": "employee", + "fieldtype": "Link", + "options": "Employee", + "width": 200, + }, + { + "label": _("Employee Name"), + "fieldname": "employee_name", + "width": 160, + }, + {"label": _("PF Account"), "fieldname": "pf_account", "fieldtype": "Data", "width": 140}, + {"label": _("PF Amount"), "fieldname": "pf_amount", "fieldtype": "Currency", "width": 140}, + { + "label": _("Additional PF"), + "fieldname": "additional_pf", + "fieldtype": "Currency", + "width": 140, + }, + {"label": _("PF Loan"), "fieldname": "pf_loan", "fieldtype": "Currency", "width": 140}, + {"label": _("Total"), "fieldname": "total", "fieldtype": "Currency", "width": 140}, + ] + + return columns + + +def get_conditions(filters): + conditions = [""] + + if filters.get("department"): + conditions.append("sal.department = '%s' " % (filters["department"])) + + if filters.get("branch"): + conditions.append("sal.branch = '%s' " % (filters["branch"])) + + if filters.get("company"): + conditions.append("sal.company = '%s' " % (filters["company"])) + + if filters.get("month"): + conditions.append("month(sal.start_date) = '%s' " % (filters["month"])) + + if filters.get("year"): + conditions.append("year(start_date) = '%s' " % (filters["year"])) + + if filters.get("mode_of_payment"): + conditions.append("sal.mode_of_payment = '%s' " % (filters["mode_of_payment"])) + + return " and ".join(conditions) + + +def prepare_data(entry, component_type_dict): + data_list = {} + + employee_account_dict = frappe._dict( + frappe.db.sql(""" select name, provident_fund_account from `tabEmployee`""") + ) + + for d in entry: + component_type = component_type_dict.get(d.salary_component) + + if data_list.get(d.name): + data_list[d.name][component_type] = d.amount + else: + data_list.setdefault( + d.name, + { + "employee": d.employee, + "employee_name": d.employee_name, + "pf_account": employee_account_dict.get(d.employee), + component_type: d.amount, + }, + ) + + return data_list + + +def get_data(filters): + data = [] + + conditions = get_conditions(filters) + + salary_slips = frappe.db.sql( + """ select sal.name from `tabSalary Slip` sal + where docstatus = 1 %s + """ + % (conditions), + as_dict=1, + ) + + component_type_dict = frappe._dict( + frappe.db.sql( + """ select name, component_type from `tabSalary Component` + where component_type in ('Provident Fund', 'Additional Provident Fund', 'Provident Fund Loan')""" + ) + ) + + if not len(component_type_dict): + return [] + + # nosemgrep: frappe-semgrep-rules.rules.frappe-using-db-sql + entry = frappe.db.sql( + """ select sal.name, sal.employee, sal.employee_name, ded.salary_component, ded.amount + from `tabSalary Slip` sal, `tabSalary Detail` ded + where sal.name = ded.parent + and ded.parentfield = 'deductions' + and ded.parenttype = 'Salary Slip' + and sal.docstatus = 1 {} + and ded.salary_component in ({}) + """.format(conditions, ", ".join(["%s"] * len(component_type_dict.keys()))), + tuple(component_type_dict.keys()), + as_dict=1, + ) + + data_list = prepare_data(entry, component_type_dict) + + for d in salary_slips: + total = 0 + if data_list.get(d.name): + employee = { + "employee": data_list.get(d.name).get("employee"), + "employee_name": data_list.get(d.name).get("employee_name"), + "pf_account": data_list.get(d.name).get("pf_account"), + } + + if data_list.get(d.name).get("Provident Fund"): + employee["pf_amount"] = data_list.get(d.name).get("Provident Fund") + total += data_list.get(d.name).get("Provident Fund") + + if data_list.get(d.name).get("Additional Provident Fund"): + employee["additional_pf"] = data_list.get(d.name).get("Additional Provident Fund") + total += data_list.get(d.name).get("Additional Provident Fund") + + if data_list.get(d.name).get("Provident Fund Loan"): + employee["pf_loan"] = data_list.get(d.name).get("Provident Fund Loan") + total += data_list.get(d.name).get("Provident Fund Loan") + + employee["total"] = total + + data.append(employee) + + return data + + +@frappe.whitelist() +def get_years(): + year_list = frappe.db.sql_list( + """select distinct YEAR(end_date) from `tabSalary Slip` ORDER BY YEAR(end_date) DESC""" + ) + if not year_list: + year_list = [getdate().year] + + return "\n".join(str(year) for year in year_list) diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.js b/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.js new file mode 100644 index 000000000..ca3cdb5d7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.js @@ -0,0 +1,17 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Salary Payments Based On Payment Mode"] = $.extend( + {}, + hrms.salary_slip_deductions_report_filters, + { + formatter: function (value, row, column, data, default_formatter) { + value = default_formatter(value, row, column, data); + if (data.branch && data.branch.includes("Total") && column.colIndex === 1) { + value = value.bold(); + } + return value; + }, + }, +); diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json b/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json new file mode 100644 index 000000000..c04cc32b9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.json @@ -0,0 +1,30 @@ +{ + "add_total_row": 0, + "creation": "2020-06-16 18:43:43.107246", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 0, + "is_standard": "Yes", + "modified": "2020-06-16 18:43:43.107246", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Payments Based On Payment Mode", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Salary Slip", + "report_name": "Salary Payments Based On Payment Mode", + "report_type": "Script Report", + "roles": [ + { + "role": "HR User" + }, + { + "role": "HR Manager" + }, + { + "role": "Employee" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py b/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py new file mode 100644 index 000000000..04a7cf66f --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py @@ -0,0 +1,174 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ + +import erpnext + +from hrms.payroll.report.provident_fund_deductions.provident_fund_deductions import get_conditions + + +def execute(filters=None): + mode_of_payments = get_payment_modes() + + if not len(mode_of_payments): + return [], [] + + columns = get_columns(filters, mode_of_payments) + data, total_rows, report_summary = get_data(filters, mode_of_payments) + chart = get_chart(mode_of_payments, total_rows) + + return columns, data, None, chart, report_summary + + +def get_columns(filters, mode_of_payments): + columns = [ + { + "label": _("Branch"), + "options": "Branch", + "fieldname": "branch", + "fieldtype": "Link", + "width": 200, + } + ] + + for mode in mode_of_payments: + columns.append({"label": _(mode), "fieldname": mode, "fieldtype": "Currency", "width": 160}) + + columns.append({"label": _("Total"), "fieldname": "total", "fieldtype": "Currency", "width": 140}) + + return columns + + +def get_payment_modes(): + mode_of_payments = frappe.db.sql_list( + """ + select distinct mode_of_payment from `tabSalary Slip` where docstatus = 1 + """ + ) + return mode_of_payments + + +def prepare_data(entry): + branch_wise_entries = {} + gross_pay = 0 + + for d in entry: + gross_pay += d.gross_pay + if branch_wise_entries.get(d.branch): + branch_wise_entries[d.branch][d.mode_of_payment] = d.net_pay + else: + branch_wise_entries.setdefault(d.branch, {}).setdefault(d.mode_of_payment, d.net_pay) + + return branch_wise_entries, gross_pay + + +def get_data(filters, mode_of_payments): + data = [] + + conditions = get_conditions(filters) + + entry = frappe.db.sql( + """ + select branch, mode_of_payment, sum(net_pay) as net_pay, sum(gross_pay) as gross_pay + from `tabSalary Slip` sal + where docstatus = 1 %s + group by branch, mode_of_payment + """ + % (conditions), + as_dict=1, + ) + + branch_wise_entries, gross_pay = prepare_data(entry) + + branches = frappe.db.sql_list( + """ + select distinct branch from `tabSalary Slip` sal + where docstatus = 1 %s + """ + % (conditions) + ) + + total_row = {"total": 0, "branch": "Total"} + + for branch in branches: + total = 0 + row = {"branch": branch} + for mode in mode_of_payments: + if branch_wise_entries.get(branch).get(mode): + row[mode] = branch_wise_entries.get(branch).get(mode) + total += branch_wise_entries.get(branch).get(mode) + + row["total"] = total + data.append(row) + + total_row = get_total_based_on_mode_of_payment(data, mode_of_payments) + total_deductions = gross_pay - total_row.get("total") + + report_summary = [] + + if data: + data.append(total_row) + data.append({}) + data.append({"branch": "Total Gross Pay", mode_of_payments[0]: gross_pay}) + data.append({"branch": "Total Deductions", mode_of_payments[0]: total_deductions}) + data.append({"branch": "Total Net Pay", mode_of_payments[0]: total_row.get("total")}) + + currency = erpnext.get_company_currency(filters.company) + report_summary = get_report_summary(gross_pay, total_deductions, total_row.get("total"), currency) + + return data, total_row, report_summary + + +def get_total_based_on_mode_of_payment(data, mode_of_payments): + total = 0 + total_row = {"branch": "Total"} + for mode in mode_of_payments: + sum_of_payment = sum([detail[mode] for detail in data if mode in detail.keys()]) + total_row[mode] = sum_of_payment + total += sum_of_payment + + total_row["total"] = total + return total_row + + +def get_report_summary(gross_pay, total_deductions, net_pay, currency): + return [ + { + "value": gross_pay, + "label": _("Total Gross Pay"), + "indicator": "Green", + "datatype": "Currency", + "currency": currency, + }, + { + "value": total_deductions, + "label": _("Total Deduction"), + "datatype": "Currency", + "indicator": "Red", + "currency": currency, + }, + { + "value": net_pay, + "label": _("Total Net Pay"), + "datatype": "Currency", + "indicator": "Blue", + "currency": currency, + }, + ] + + +def get_chart(mode_of_payments, data): + if data: + values = [] + labels = [] + + for mode in mode_of_payments: + values.append(data[mode]) + labels.append([mode]) + + chart = {"data": {"labels": labels, "datasets": [{"name": "Mode Of Payments", "values": values}]}} + chart["type"] = "bar" + return chart diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.js b/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.js new file mode 100644 index 000000000..f0fccc20b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.js @@ -0,0 +1,15 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Salary Payments via ECS"] = $.extend( + {}, + hrms.salary_slip_deductions_report_filters, +); + +frappe.query_reports["Salary Payments via ECS"]["filters"].push({ + fieldname: "type", + label: __("Type"), + fieldtype: "Select", + options: ["", "Bank", "Cash", "Cheque"], +}); diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json b/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json new file mode 100644 index 000000000..dd0ac7c4e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.json @@ -0,0 +1,27 @@ +{ + "add_total_row": 0, + "creation": "2020-06-16 18:35:30.508143", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 0, + "is_standard": "Yes", + "modified": "2020-06-16 18:38:23.680185", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Payments via ECS", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Salary Slip", + "report_name": "Salary Payments via ECS", + "report_type": "Script Report", + "roles": [ + { + "role": "HR Manager" + }, + { + "role": "HR User" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py b/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py new file mode 100644 index 000000000..6858e270d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/salary_payments_via_ecs/salary_payments_via_ecs.py @@ -0,0 +1,146 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe import _ + +import erpnext + + +def execute(filters=None): + columns = get_columns(filters) + data = get_data(filters) + + return columns, data + + +def get_columns(filters): + columns = [ + { + "label": _("Branch"), + "options": "Branch", + "fieldname": "branch", + "fieldtype": "Link", + "width": 200, + }, + { + "label": _("Employee Name"), + "options": "Employee", + "fieldname": "employee_name", + "fieldtype": "Link", + "width": 160, + }, + { + "label": _("Employee"), + "options": "Employee", + "fieldname": "employee", + "fieldtype": "Link", + "width": 140, + }, + { + "label": _("Gross Pay"), + "fieldname": "gross_pay", + "fieldtype": "Currency", + "options": "currency", + "width": 140, + }, + { + "label": _("Net Pay"), + "fieldname": "net_pay", + "fieldtype": "Currency", + "options": "currency", + "width": 140, + }, + {"label": _("Bank"), "fieldname": "bank", "fieldtype": "Data", "width": 140}, + {"label": _("Account No"), "fieldname": "account_no", "fieldtype": "Data", "width": 140}, + ] + if erpnext.get_region() == "India": + columns += [ + {"label": _("IFSC"), "fieldname": "ifsc", "fieldtype": "Data", "width": 140}, + {"label": _("MICR"), "fieldname": "micr", "fieldtype": "Data", "width": 140}, + ] + + return columns + + +def get_conditions(filters): + conditions = [""] + + if filters.get("department"): + conditions.append("department = '%s' " % (filters["department"])) + + if filters.get("branch"): + conditions.append("branch = '%s' " % (filters["branch"])) + + if filters.get("company"): + conditions.append("company = '%s' " % (filters["company"])) + + if filters.get("month"): + conditions.append("month(start_date) = '%s' " % (filters["month"])) + + if filters.get("year"): + conditions.append("year(start_date) = '%s' " % (filters["year"])) + + return " and ".join(conditions) + + +def get_data(filters): + data = [] + + fields = ["employee", "branch", "bank_name", "bank_ac_no", "salary_mode"] + if erpnext.get_region() == "India": + fields += ["ifsc_code", "micr_code"] + + employee_details = frappe.get_list("Employee", fields=fields) + employee_data_dict = {} + + for d in employee_details: + employee_data_dict.setdefault( + d.employee, + { + "bank_ac_no": d.bank_ac_no, + "ifsc_code": d.ifsc_code or None, + "micr_code": d.micr_code or None, + "branch": d.branch, + "salary_mode": d.salary_mode, + "bank_name": d.bank_name, + }, + ) + + conditions = get_conditions(filters) + + entry = frappe.db.sql( + """ select employee, employee_name, gross_pay, net_pay + from `tabSalary Slip` + where docstatus = 1 %s """ + % (conditions), + as_dict=1, + ) + + for d in entry: + employee = { + "branch": employee_data_dict.get(d.employee).get("branch"), + "employee_name": d.employee_name, + "employee": d.employee, + "gross_pay": d.gross_pay, + "net_pay": d.net_pay, + } + + if employee_data_dict.get(d.employee).get("salary_mode") == "Bank": + employee["bank"] = employee_data_dict.get(d.employee).get("bank_name") + employee["account_no"] = employee_data_dict.get(d.employee).get("bank_ac_no") + if erpnext.get_region() == "India": + employee["ifsc"] = employee_data_dict.get(d.employee).get("ifsc_code") + employee["micr"] = employee_data_dict.get(d.employee).get("micr_code") + else: + employee["account_no"] = employee_data_dict.get(d.employee).get("salary_mode") + + if filters.get("type") and employee_data_dict.get(d.employee).get("salary_mode") == filters.get( + "type" + ): + data.append(employee) + elif not filters.get("type"): + data.append(employee) + + return data diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/salary_register/__init__.py b/apps/erpnext/src/hrms/hrms/payroll/report/salary_register/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.html b/apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.html new file mode 100644 index 000000000..c4dc368d9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.html @@ -0,0 +1,40 @@ +{% + var report_columns = report.get_columns_for_print(); +%} +
    + {%= frappe.boot.letter_heads[filters.letter_head || frappe.defaults.get_default("letter_head")].header %} +
    +

    {%= __(report.report_name) %}

    +
    {%= __("From {0} to {1}", [frappe.datetime.str_to_user(filters.from_date), frappe.datetime.str_to_user(filters.to_date)]) %}
    +
    +
    {0}{1}
    + + + {% for(var i=1, l=report_columns.length; i{%= report_columns[i].label %} + {% } %} + + + + {% for(var j=0, k=data.length; j + {% for(var i=1, l=report_columns.length; i + {% var fieldname = report_columns[i].fieldname; %} + {% if (report_columns[i].fieldtype=='Currency' && !isNaN(row[fieldname])) { %} + {%= format_currency(row[fieldname]) %} + {% } else { %} + {% if (!is_null(row[fieldname])) { %} + {%= row[fieldname] %} + {% } %} + {% } %} + + {% } %} + + {% } %} + +
    +

    {%= __("Printed On {0}", [frappe.datetime.str_to_user(frappe.datetime.get_datetime_as_string())]) %}

    diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.js b/apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.js new file mode 100644 index 000000000..26fc78fa4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.js @@ -0,0 +1,83 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.query_reports["Salary Register"] = { + filters: [ + { + fieldname: "from_date", + label: __("From"), + fieldtype: "Date", + default: frappe.datetime.add_months(frappe.datetime.get_today(), -1), + reqd: 1, + width: "100px", + }, + { + fieldname: "to_date", + label: __("To"), + fieldtype: "Date", + default: frappe.datetime.get_today(), + reqd: 1, + width: "100px", + }, + { + fieldname: "currency", + fieldtype: "Link", + options: "Currency", + label: __("Currency"), + default: erpnext.get_currency(frappe.defaults.get_default("Company")), + width: "50px", + }, + { + fieldname: "employee", + label: __("Employee"), + fieldtype: "Link", + options: "Employee", + width: "100px", + }, + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_user_default("Company"), + width: "100px", + reqd: 1, + }, + { + fieldname: "docstatus", + label: __("Document Status"), + fieldtype: "Select", + options: ["Draft", "Submitted", "Cancelled"], + default: "Submitted", + width: "100px", + }, + { + fieldname: "department", + label: __("Department"), + fieldtype: "Link", + options: "Department", + width: "100px", + get_query: function () { + return { + filters: { + company: frappe.query_report.get_filter_value("company"), + }, + }; + }, + }, + { + fieldname: "designation", + label: __("Designation"), + fieldtype: "Link", + options: "Designation", + width: "100px", + }, + { + fieldname: "branch", + label: __("Branch"), + fieldtype: "Link", + options: "Branch", + width: "100px", + }, + ], +}; diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.json b/apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.json new file mode 100644 index 000000000..5a70c3259 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.json @@ -0,0 +1,27 @@ +{ + "add_total_row": 1, + "creation": "2017-01-10 17:36:58.153863", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 2, + "is_standard": "Yes", + "modified": "2020-05-28 00:07:18.576661", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Salary Register", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Salary Slip", + "report_name": "Salary Register", + "report_type": "Script Report", + "roles": [ + { + "role": "HR User" + }, + { + "role": "HR Manager" + } + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.py b/apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.py new file mode 100644 index 000000000..e8c41f26e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/report/salary_register/salary_register.py @@ -0,0 +1,354 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe +from frappe import _ +from frappe.utils import flt + +import erpnext + +salary_slip = frappe.qb.DocType("Salary Slip") +salary_detail = frappe.qb.DocType("Salary Detail") +salary_component = frappe.qb.DocType("Salary Component") + + +def execute(filters=None): + if not filters: + filters = {} + + currency = None + if filters.get("currency"): + currency = filters.get("currency") + company_currency = erpnext.get_company_currency(filters.get("company")) + + salary_slips = get_salary_slips(filters, company_currency) + if not salary_slips: + return [], [] + + earning_types, ded_types = get_earning_and_deduction_types(salary_slips) + columns = get_columns(earning_types, ded_types) + + ss_earning_map = get_salary_slip_details(salary_slips, currency, company_currency, "earnings") + ss_ded_map = get_salary_slip_details(salary_slips, currency, company_currency, "deductions") + + doj_map = get_employee_doj_map() + + data = [] + for ss in salary_slips: + row = { + "salary_slip_id": ss.name, + "employee": ss.employee, + "employee_name": ss.employee_name, + "data_of_joining": doj_map.get(ss.employee), + "branch": ss.branch, + "department": ss.department, + "designation": ss.designation, + "company": ss.company, + "start_date": ss.start_date, + "end_date": ss.end_date, + "leave_without_pay": ss.leave_without_pay, + "absent_days": ss.absent_days, + "payment_days": ss.payment_days, + "currency": currency or company_currency, + "total_loan_repayment": ss.total_loan_repayment, + } + + update_column_width(ss, columns) + + for e in earning_types: + row.update({frappe.scrub(e): ss_earning_map.get(ss.name, {}).get(e)}) + + for d in ded_types: + row.update({frappe.scrub(d): ss_ded_map.get(ss.name, {}).get(d)}) + + if currency == company_currency: + row.update( + { + "gross_pay": flt(ss.gross_pay) * flt(ss.exchange_rate), + "total_deduction": (flt(ss.total_deduction) + flt(ss.total_loan_repayment)) + * flt(ss.exchange_rate), + "net_pay": flt(ss.net_pay) * flt(ss.exchange_rate), + } + ) + + else: + row.update( + { + "gross_pay": ss.gross_pay, + "total_deduction": flt(ss.total_deduction) + flt(ss.total_loan_repayment), + "net_pay": ss.net_pay, + } + ) + + data.append(row) + + return columns, data + + +def get_earning_and_deduction_types(salary_slips): + salary_component_and_type = {_("Earning"): [], _("Deduction"): []} + + for salary_component in get_salary_components(salary_slips): + component_type = get_salary_component_type(salary_component) + salary_component_and_type[_(component_type)].append(salary_component) + + return sorted(salary_component_and_type[_("Earning")]), sorted(salary_component_and_type[_("Deduction")]) + + +def update_column_width(ss, columns): + if ss.branch is not None: + columns[3].update({"width": 120}) + if ss.department is not None: + columns[4].update({"width": 120}) + if ss.designation is not None: + columns[5].update({"width": 120}) + if ss.leave_without_pay is not None: + columns[9].update({"width": 120}) + + +def get_columns(earning_types, ded_types): + columns = [ + { + "label": _("Salary Slip ID"), + "fieldname": "salary_slip_id", + "fieldtype": "Link", + "options": "Salary Slip", + "width": 150, + }, + { + "label": _("Employee"), + "fieldname": "employee", + "fieldtype": "Link", + "options": "Employee", + "width": 120, + }, + { + "label": _("Employee Name"), + "fieldname": "employee_name", + "fieldtype": "Data", + "width": 140, + }, + { + "label": _("Date of Joining"), + "fieldname": "data_of_joining", + "fieldtype": "Date", + "width": 80, + }, + { + "label": _("Branch"), + "fieldname": "branch", + "fieldtype": "Link", + "options": "Branch", + "width": -1, + }, + { + "label": _("Department"), + "fieldname": "department", + "fieldtype": "Link", + "options": "Department", + "width": -1, + }, + { + "label": _("Designation"), + "fieldname": "designation", + "fieldtype": "Link", + "options": "Designation", + "width": 120, + }, + { + "label": _("Company"), + "fieldname": "company", + "fieldtype": "Link", + "options": "Company", + "width": 120, + }, + { + "label": _("Start Date"), + "fieldname": "start_date", + "fieldtype": "Data", + "width": 80, + }, + { + "label": _("End Date"), + "fieldname": "end_date", + "fieldtype": "Data", + "width": 80, + }, + { + "label": _("Leave Without Pay"), + "fieldname": "leave_without_pay", + "fieldtype": "Float", + "width": 50, + }, + { + "label": _("Absent Days"), + "fieldname": "absent_days", + "fieldtype": "Float", + "width": 50, + }, + { + "label": _("Payment Days"), + "fieldname": "payment_days", + "fieldtype": "Float", + "width": 120, + }, + ] + + for earning in earning_types: + columns.append( + { + "label": earning, + "fieldname": frappe.scrub(earning), + "fieldtype": "Currency", + "options": "currency", + "width": 120, + } + ) + + columns.append( + { + "label": _("Gross Pay"), + "fieldname": "gross_pay", + "fieldtype": "Currency", + "options": "currency", + "width": 120, + } + ) + + for deduction in ded_types: + columns.append( + { + "label": deduction, + "fieldname": frappe.scrub(deduction), + "fieldtype": "Currency", + "options": "currency", + "width": 120, + } + ) + + if "lending" in frappe.get_installed_apps(): + columns.append( + { + "label": _("Loan Repayment"), + "fieldname": "total_loan_repayment", + "fieldtype": "Currency", + "options": "currency", + "width": 120, + } + ) + + columns.extend( + [ + { + "label": _("Total Deduction"), + "fieldname": "total_deduction", + "fieldtype": "Currency", + "options": "currency", + "width": 120, + }, + { + "label": _("Net Pay"), + "fieldname": "net_pay", + "fieldtype": "Currency", + "options": "currency", + "width": 120, + }, + { + "label": _("Currency"), + "fieldtype": "Data", + "fieldname": "currency", + "options": "Currency", + "hidden": 1, + }, + ] + ) + return columns + + +def get_salary_components(salary_slips): + return ( + frappe.qb.from_(salary_detail) + .where((salary_detail.amount != 0) & (salary_detail.parent.isin([d.name for d in salary_slips]))) + .select(salary_detail.salary_component) + .distinct() + ).run(pluck=True) + + +def get_salary_component_type(salary_component): + return frappe.db.get_value("Salary Component", salary_component, "type", cache=True) + + +def get_salary_slips(filters, company_currency): + doc_status = {"Draft": 0, "Submitted": 1, "Cancelled": 2} + + query = frappe.qb.from_(salary_slip).select(salary_slip.star) + + if filters.get("docstatus"): + query = query.where(salary_slip.docstatus == doc_status[filters.get("docstatus")]) + + if filters.get("from_date"): + query = query.where(salary_slip.start_date >= filters.get("from_date")) + + if filters.get("to_date"): + query = query.where(salary_slip.end_date <= filters.get("to_date")) + + if filters.get("company"): + query = query.where(salary_slip.company == filters.get("company")) + + if filters.get("employee"): + query = query.where(salary_slip.employee == filters.get("employee")) + + if filters.get("currency") and filters.get("currency") != company_currency: + query = query.where(salary_slip.currency == filters.get("currency")) + + if filters.get("department"): + query = query.where(salary_slip.department == filters["department"]) + + if filters.get("designation"): + query = query.where(salary_slip.designation == filters["designation"]) + + if filters.get("branch"): + query = query.where(salary_slip.branch == filters["branch"]) + + salary_slips = query.run(as_dict=1) + + return salary_slips or [] + + +def get_employee_doj_map(): + employee = frappe.qb.DocType("Employee") + + result = (frappe.qb.from_(employee).select(employee.name, employee.date_of_joining)).run() + + return frappe._dict(result) + + +def get_salary_slip_details(salary_slips, currency, company_currency, component_type): + salary_slips = [ss.name for ss in salary_slips] + + result = ( + frappe.qb.from_(salary_slip) + .join(salary_detail) + .on(salary_slip.name == salary_detail.parent) + .where((salary_detail.parent.isin(salary_slips)) & (salary_detail.parentfield == component_type)) + .select( + salary_detail.parent, + salary_detail.salary_component, + salary_detail.amount, + salary_slip.exchange_rate, + ) + ).run(as_dict=1) + + ss_map = {} + + for d in result: + ss_map.setdefault(d.parent, frappe._dict()).setdefault(d.salary_component, 0.0) + if currency == company_currency: + ss_map[d.parent][d.salary_component] += flt(d.amount) * flt( + d.exchange_rate if d.exchange_rate else 1 + ) + else: + ss_map[d.parent][d.salary_component] += flt(d.amount) + + return ss_map diff --git a/apps/erpnext/src/hrms/hrms/payroll/utils.py b/apps/erpnext/src/hrms/hrms/payroll/utils.py new file mode 100644 index 000000000..61187336c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/utils.py @@ -0,0 +1,41 @@ +import frappe + + +def sanitize_expression(string: str | None = None) -> str | None: + """ + Removes leading and trailing whitespace and merges multiline strings into a single line. + + Args: + string (str, None): The string expression to be sanitized. Defaults to None. + + Returns: + str or None: The sanitized string expression or None if the input string is None. + + Example: + expression = "\r\n gross_pay > 10000\n " + sanitized_expr = sanitize_expression(expression) + + """ + + if not string: + return None + + parts = string.strip().splitlines() + string = " ".join(parts) + + return string + + +@frappe.whitelist() +def get_payroll_settings_for_payment_days() -> dict: + return frappe.get_cached_value( + "Payroll Settings", + None, + [ + "payroll_based_on", + "consider_unmarked_attendance_as", + "include_holidays_in_total_working_days", + "consider_marked_attendance_on_holidays", + ], + as_dict=True, + ) diff --git a/apps/erpnext/src/hrms/hrms/payroll/workspace/payroll/payroll.json b/apps/erpnext/src/hrms/hrms/payroll/workspace/payroll/payroll.json new file mode 100644 index 000000000..ba47fe996 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/workspace/payroll/payroll.json @@ -0,0 +1,393 @@ +{ + "app": "hrms", + "charts": [ + { + "chart_name": "Outgoing Salary", + "label": "Outgoing Salary" + } + ], + "content": "[{\"id\":\"sN-N90hh44\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Outgoing Salary\",\"col\":12}},{\"id\":\"ORKhwX-uqw\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"gGURwviUAZ\",\"type\":\"header\",\"data\":{\"text\":\"Transactions & Reports\",\"col\":12}},{\"id\":\"m7ibJXxzpl\",\"type\":\"card\",\"data\":{\"card_name\":\"Masters\",\"col\":4}},{\"id\":\"U-jv2v4nCv\",\"type\":\"card\",\"data\":{\"card_name\":\"Payroll\",\"col\":4}},{\"id\":\"LG69O3ku4y\",\"type\":\"card\",\"data\":{\"card_name\":\"Incentives\",\"col\":4}},{\"id\":\"kOuItimoNm\",\"type\":\"card\",\"data\":{\"card_name\":\"Accounting\",\"col\":4}},{\"id\":\"UJqBhPqNZd\",\"type\":\"card\",\"data\":{\"card_name\":\"Accounting Reports\",\"col\":4}},{\"id\":\"eNZuk6i-jy\",\"type\":\"card\",\"data\":{\"card_name\":\"Payroll Reports\",\"col\":4}},{\"id\":\"ll91Zs2cbx\",\"type\":\"card\",\"data\":{\"card_name\":\"Deduction Reports\",\"col\":4}}]", + "creation": "2022-08-20 16:43:32.769568", + "custom_blocks": [], + "docstatus": 0, + "doctype": "Workspace", + "for_user": "", + "hide_custom": 0, + "icon": "accounting", + "idx": 2, + "is_hidden": 0, + "label": "Payroll", + "links": [ + { + "hidden": 0, + "is_query_report": 0, + "label": "Masters", + "link_count": 4, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Salary Component", + "link_count": 0, + "link_to": "Salary Component", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Salary Structure", + "link_count": 0, + "link_to": "Salary Structure", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Income Tax Slab", + "link_count": 0, + "link_to": "Income Tax Slab", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Payroll Period", + "link_count": 0, + "link_to": "Payroll Period", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Incentives", + "link_count": 3, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Additional Salary", + "link_count": 0, + "link_to": "Additional Salary", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Incentive", + "link_count": 0, + "link_to": "Employee Incentive", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Retention Bonus", + "link_count": 0, + "link_to": "Retention Bonus", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Payroll Reports", + "link_count": 5, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Salary Register", + "link_count": 0, + "link_to": "Salary Register", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Bank Remittance", + "link_count": 0, + "link_to": "Bank Remittance", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Salary Payments Based On Payment Mode", + "link_count": 0, + "link_to": "Salary Payments Based On Payment Mode", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Salary Payments via ECS", + "link_count": 0, + "link_to": "Salary Payments via ECS", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Income Tax Computation", + "link_count": 0, + "link_to": "Income Tax Computation", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Deduction Reports", + "link_count": 3, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Provident Fund Deductions", + "link_count": 0, + "link_to": "Provident Fund Deductions", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Professional Tax Deductions", + "link_count": 0, + "link_to": "Professional Tax Deductions", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Income Tax Deductions", + "link_count": 0, + "link_to": "Income Tax Deductions", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Accounting", + "link_count": 7, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Chart of Accounts", + "link_count": 0, + "link_to": "Account", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Chart of Cost Centers", + "link_count": 0, + "link_to": "Cost Center", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Payment Entry", + "link_count": 0, + "link_to": "Payment Entry", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Journal Entry", + "link_count": 0, + "link_to": "Journal Entry", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Accounts Settings", + "link_count": 0, + "link_to": "Accounts Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Accounting Dimension", + "link_count": 0, + "link_to": "Accounting Dimension", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Currency", + "link_count": 0, + "link_to": "Currency", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Accounting Reports", + "link_count": 3, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "General Ledger", + "link_count": 0, + "link_to": "General Ledger", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Accounts Payable", + "link_count": 0, + "link_to": "Accounts Payable", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Accounts Receivable", + "link_count": 0, + "link_to": "Accounts Receivable", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Payroll", + "link_count": 5, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Salary Structure Assignment", + "link_count": 0, + "link_to": "Salary Structure Assignment", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Bulk Salary Structure Assignment", + "link_count": 0, + "link_to": "Bulk Salary Structure Assignment", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Salary Slip", + "link_count": 0, + "link_to": "Salary Slip", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Payroll Entry", + "link_count": 0, + "link_to": "Payroll Entry", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Salary Withholding", + "link_count": 0, + "link_to": "Salary Withholding", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + } + ], + "modified": "2026-01-09 17:59:39.577284", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Payroll", + "number_cards": [], + "owner": "Administrator", + "parent_page": "", + "public": 1, + "quick_lists": [], + "roles": [], + "sequence_id": 9.0, + "shortcuts": [], + "title": "Payroll", + "type": "Workspace" +} diff --git a/apps/erpnext/src/hrms/hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json b/apps/erpnext/src/hrms/hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json new file mode 100644 index 000000000..e4d780f0c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/payroll/workspace/tax_&_benefits/tax_&_benefits.json @@ -0,0 +1,153 @@ +{ + "app": "hrms", + "charts": [], + "content": "[{\"id\":\"MUnSuJ_4ZW\",\"type\":\"header\",\"data\":{\"text\":\"Masters & Reports\",\"col\":12}},{\"id\":\"rgbG6r_PeK\",\"type\":\"card\",\"data\":{\"card_name\":\"Tax Setup\",\"col\":4}},{\"id\":\"yJJhpwR32W\",\"type\":\"card\",\"data\":{\"card_name\":\"Exemption\",\"col\":4}},{\"id\":\"fklpIA_dvG\",\"type\":\"card\",\"data\":{\"card_name\":\"Benefits\",\"col\":4}},{\"id\":\"V_L6VdkAlV\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}}]", + "creation": "2022-08-20 17:04:52.350699", + "custom_blocks": [], + "docstatus": 0, + "doctype": "Workspace", + "for_user": "", + "hide_custom": 0, + "icon": "money-coins-1", + "idx": 1, + "is_hidden": 0, + "label": "Tax & Benefits", + "links": [ + { + "hidden": 0, + "is_query_report": 0, + "label": "Benefits", + "link_count": 2, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Benefit Application", + "link_count": 0, + "link_to": "Employee Benefit Application", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Benefit Claim", + "link_count": 0, + "link_to": "Employee Benefit Claim", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Tax Setup", + "link_count": 3, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Income Tax Slab", + "link_count": 0, + "link_to": "Income Tax Slab", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Tax Exemption Category", + "link_count": 0, + "link_to": "Employee Tax Exemption Category", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Tax Exemption Sub Category", + "link_count": 0, + "link_to": "Employee Tax Exemption Sub Category", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Exemption", + "link_count": 2, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Tax Exemption Declaration", + "link_count": 0, + "link_to": "Employee Tax Exemption Declaration", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Employee Tax Exemption Proof Submission", + "link_count": 0, + "link_to": "Employee Tax Exemption Proof Submission", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Reports", + "link_count": 2, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Income Tax Computation", + "link_count": 0, + "link_to": "Income Tax Computation", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Income Tax Deductions", + "link_count": 0, + "link_to": "Income Tax Deductions", + "link_type": "Report", + "onboard": 0, + "type": "Link" + } + ], + "modified": "2026-01-09 17:58:37.952323", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Tax & Benefits", + "number_cards": [], + "owner": "Administrator", + "parent_page": "", + "public": 1, + "quick_lists": [], + "roles": [], + "sequence_id": 10.0, + "shortcuts": [], + "title": "Tax & Benefits", + "type": "Workspace" +} diff --git a/apps/erpnext/src/hrms/hrms/public/.gitkeep b/apps/erpnext/src/hrms/hrms/public/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/public/build.json b/apps/erpnext/src/hrms/hrms/public/build.json new file mode 100644 index 000000000..55b5a220e --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/build.json @@ -0,0 +1,9 @@ +{ + "js/hrms.min.js": [ + "public/js/utils.js" + ], + "js/hierarchy-chart.min.js": [ + "public/js/hierarchy_chart/hierarchy_chart_desktop.js", + "public/js/hierarchy_chart/hierarchy_chart_mobile.js" + ] +} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/employee_lifecycle.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/employee_lifecycle.svg new file mode 100644 index 000000000..33bae0ada --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/employee_lifecycle.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/expense_claim.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/expense_claim.svg new file mode 100644 index 000000000..83f00abae --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/expense_claim.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/leaves.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/leaves.svg new file mode 100644 index 000000000..0da4267bb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/leaves.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/people.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/people.svg new file mode 100644 index 000000000..eaa529b8c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/people.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/performance.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/performance.svg new file mode 100644 index 000000000..e3ab8c30c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/performance.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/recruitment.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/recruitment.svg new file mode 100644 index 000000000..7b0139385 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/recruitment.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/salary_payout.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/salary_payout.svg new file mode 100644 index 000000000..4a8ceaed3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/salary_payout.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/shift-attendence.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/shift-attendence.svg new file mode 100644 index 000000000..b99b41b1c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/shift-attendence.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/expenses.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/expenses.svg new file mode 100644 index 000000000..51106d3d3 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/expenses.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/leaves.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/leaves.svg new file mode 100644 index 000000000..d9c304d28 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/leaves.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/payroll.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/payroll.svg new file mode 100644 index 000000000..c54fbec6b --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/payroll.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/people.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/people.svg new file mode 100644 index 000000000..1faa287ea --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/people.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/performance.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/performance.svg new file mode 100644 index 000000000..96419f968 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/performance.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/recruitment.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/recruitment.svg new file mode 100644 index 000000000..b77ce6899 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/recruitment.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/shift_&_attendance.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/shift_&_attendance.svg new file mode 100644 index 000000000..cfaf99e87 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/shift_&_attendance.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/tax_&_benefits.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/tax_&_benefits.svg new file mode 100644 index 000000000..53f99d27c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/tax_&_benefits.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/tenure.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/tenure.svg new file mode 100644 index 000000000..f0c4f6421 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/solid/tenure.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/expenses.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/expenses.svg new file mode 100644 index 000000000..60116ebcc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/expenses.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/leaves.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/leaves.svg new file mode 100644 index 000000000..cef2d7d10 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/leaves.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/people.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/people.svg new file mode 100644 index 000000000..743a64a77 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/people.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/performance.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/performance.svg new file mode 100644 index 000000000..aa32b05e6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/performance.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/recruitment.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/recruitment.svg new file mode 100644 index 000000000..a548b375c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/recruitment.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/salary_payout.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/salary_payout.svg new file mode 100644 index 000000000..4a643ee71 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/salary_payout.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/shift_&_attendance.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/shift_&_attendance.svg new file mode 100644 index 000000000..de385d4d1 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/shift_&_attendance.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/tas_&_benefit.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/tas_&_benefit.svg new file mode 100644 index 000000000..ec3b76096 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/tas_&_benefit.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/tenure.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/tenure.svg new file mode 100644 index 000000000..8b6e29f00 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/subtle/tenure.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/tax-benefits.svg b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/tax-benefits.svg new file mode 100644 index 000000000..c7c8c1c20 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/icons/desktop_icons/tax-benefits.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/images/frappe-hr-logo.png b/apps/erpnext/src/hrms/hrms/public/images/frappe-hr-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..adda0415e231e27774a8ceef13ed13d1c0bc303b GIT binary patch literal 6741 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

    ga&&Pk)x(_9)KVVZFnbfvw}? + + + + diff --git a/apps/erpnext/src/hrms/hrms/public/js/erpnext/bank_transaction.js b/apps/erpnext/src/hrms/hrms/public/js/erpnext/bank_transaction.js new file mode 100644 index 000000000..cdf3d6de7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/erpnext/bank_transaction.js @@ -0,0 +1,14 @@ +// Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Bank Transaction", { + get_payment_doctypes: function () { + return [ + "Payment Entry", + "Journal Entry", + "Sales Invoice", + "Purchase Invoice", + "Expense Claim", + ]; + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/public/js/erpnext/company.js b/apps/erpnext/src/hrms/hrms/public/js/erpnext/company.js new file mode 100644 index 000000000..1630195df --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/erpnext/company.js @@ -0,0 +1,42 @@ +// Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Company", { + refresh: function (frm) { + frm.set_query("default_expense_claim_payable_account", function () { + return { + filters: { + company: frm.doc.name, + is_group: 0, + }, + }; + }); + + frm.set_query("default_employee_advance_account", function () { + return { + filters: { + company: frm.doc.name, + is_group: 0, + root_type: "Asset", + account_type: "Receivable", + }, + }; + }); + + frm.set_query("default_payroll_payable_account", function () { + return { + filters: { + company: frm.doc.name, + is_group: 0, + root_type: "Liability", + }, + }; + }); + + frm.set_query("hra_component", function () { + return { + filters: { type: "Earning" }, + }; + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/public/js/erpnext/delivery_trip.js b/apps/erpnext/src/hrms/hrms/public/js/erpnext/delivery_trip.js new file mode 100644 index 000000000..0fa7ec000 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/erpnext/delivery_trip.js @@ -0,0 +1,19 @@ +// Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Delivery Trip", { + refresh: function (frm) { + if (frm.doc.docstatus === 1 && frm.doc.employee) { + frm.add_custom_button( + __("Expense Claim"), + function () { + frappe.model.open_mapped_doc({ + method: "hrms.hr.doctype.expense_claim.expense_claim.make_expense_claim_for_delivery_trip", + frm: frm, + }); + }, + __("Create"), + ); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/public/js/erpnext/department.js b/apps/erpnext/src/hrms/hrms/public/js/erpnext/department.js new file mode 100644 index 000000000..92184dece --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/erpnext/department.js @@ -0,0 +1,15 @@ +// Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Department", { + refresh: function (frm) { + frm.set_query("payroll_cost_center", function () { + return { + filters: { + company: frm.doc.company, + is_group: 0, + }, + }; + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/public/js/erpnext/employee.js b/apps/erpnext/src/hrms/hrms/public/js/erpnext/employee.js new file mode 100644 index 000000000..99550db01 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/erpnext/employee.js @@ -0,0 +1,42 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Employee", { + refresh: function (frm) { + frm.set_query("payroll_cost_center", function () { + return { + filters: { + company: frm.doc.company, + is_group: 0, + }, + }; + }); + + // filter advance account based on salary currency + if (frm.doc.salary_currency) { + frm.set_query("employee_advance_account", function () { + return { + filters: { + root_type: "Asset", + is_group: 0, + company: frm.doc.company, + account_currency: frm.doc.salary_currency, + account_type: "Receivable", + }, + }; + }); + } + frm.set_df_property("holiday_list", "hidden", 1); + }, + + date_of_birth(frm) { + frm.call({ + method: "hrms.overrides.employee_master.get_retirement_date", + args: { + date_of_birth: frm.doc.date_of_birth, + }, + }).then((r) => { + if (r && r.message) frm.set_value("date_of_retirement", r.message); + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/public/js/erpnext/journal_entry.js b/apps/erpnext/src/hrms/hrms/public/js/erpnext/journal_entry.js new file mode 100644 index 000000000..ddce126dd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/erpnext/journal_entry.js @@ -0,0 +1,100 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Journal Entry", { + setup(frm) { + frm.ignore_doctypes_on_cancel_all.push("Salary Withholding"); + if (frm.doc.voucher_type === "Bank Entry") { + // since salary withholding is linked to salary slip, nested links are also pulled for cancellation + frm.ignore_doctypes_on_cancel_all.push("Salary Slip"); + } + }, + + refresh(frm) { + frm.set_query("reference_name", "accounts", function (frm, cdt, cdn) { + let jvd = frappe.get_doc(cdt, cdn); + + // filters for hrms doctypes + if (jvd.reference_type === "Expense Claim") { + return { + filters: { + total_sanctioned_amount: [">", 0], + status: ["!=", "Paid"], + docstatus: 1, + }, + }; + } + + if (jvd.reference_type === "Employee Advance") { + return { + filters: { + docstatus: 1, + }, + }; + } + + if (jvd.reference_type === "Payroll Entry") { + return { + query: "hrms.payroll.doctype.payroll_entry.payroll_entry.get_payroll_entries_for_jv", + }; + } + + // filters for erpnext doctypes + if (jvd.reference_type === "Journal Entry") { + frappe.model.validate_missing(jvd, "account"); + return { + query: "erpnext.accounts.doctype.journal_entry.journal_entry.get_against_jv", + filters: { + account: jvd.account, + party: jvd.party, + }, + }; + } + + const out = { + filters: [[jvd.reference_type, "docstatus", "=", 1]], + }; + + if (["Sales Invoice", "Purchase Invoice"].includes(jvd.reference_type)) { + out.filters.push([jvd.reference_type, "outstanding_amount", "!=", 0]); + // Filter by cost center + if (jvd.cost_center) { + out.filters.push([ + jvd.reference_type, + "cost_center", + "in", + ["", jvd.cost_center], + ]); + } + // account filter + frappe.model.validate_missing(jvd, "account"); + const party_account_field = + jvd.reference_type === "Sales Invoice" ? "debit_to" : "credit_to"; + out.filters.push([jvd.reference_type, party_account_field, "=", jvd.account]); + } + + if (["Sales Order", "Purchase Order"].includes(jvd.reference_type)) { + // party_type and party mandatory + frappe.model.validate_missing(jvd, "party_type"); + frappe.model.validate_missing(jvd, "party"); + + out.filters.push([jvd.reference_type, "per_billed", "<", 100]); + } + + if (jvd.party_type && jvd.party) { + let party_field = ""; + if (jvd.reference_type.indexOf("Sales") === 0) { + party_field = "customer"; + } else if (jvd.reference_type.indexOf("Purchase") === 0) { + party_field = "supplier"; + } + + if (party_field) { + out.filters.push([jvd.reference_type, party_field, "=", jvd.party]); + } + } + + return out; + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/public/js/erpnext/payment_entry.js b/apps/erpnext/src/hrms/hrms/public/js/erpnext/payment_entry.js new file mode 100644 index 000000000..35fd82b67 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/erpnext/payment_entry.js @@ -0,0 +1,107 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Payment Entry", { + refresh: function (frm) { + frm.set_query("reference_doctype", "references", function () { + let doctypes = []; + + if (frm.doc.party_type == "Customer") { + doctypes = ["Sales Order", "Sales Invoice", "Journal Entry", "Dunning"]; + } else if (frm.doc.party_type == "Supplier") { + doctypes = ["Purchase Order", "Purchase Invoice", "Journal Entry"]; + } else if (frm.doc.party_type == "Employee") { + doctypes = [ + "Expense Claim", + "Employee Advance", + "Leave Encashment", + "Journal Entry", + ]; + } else { + doctypes = ["Journal Entry"]; + } + + return { + filters: { name: ["in", doctypes] }, + }; + }); + + frm.set_query("reference_name", "references", function (doc, cdt, cdn) { + const child = locals[cdt][cdn]; + const filters = { docstatus: 1, company: doc.company }; + const party_type_doctypes = [ + "Sales Invoice", + "Sales Order", + "Purchase Invoice", + "Purchase Order", + "Expense Claim", + "Leave Encashment", + "Dunning", + ]; + + if (in_list(party_type_doctypes, child.reference_doctype)) { + filters[doc.party_type.toLowerCase()] = doc.party; + } + + if (child.reference_doctype == "Expense Claim") { + filters["is_paid"] = 0; + } + + if ( + child.reference_doctype == "Employee Advance" || + child.reference_doctype == "Leave Encashment" + ) { + filters["status"] = "Unpaid"; + } + + return { + filters: filters, + }; + }); + }, + + get_order_doctypes: function (frm) { + return ["Sales Order", "Purchase Order", "Expense Claim"]; + }, + + get_invoice_doctypes: function (frm) { + return ["Sales Invoice", "Purchase Invoice", "Expense Claim"]; + }, +}); + +frappe.ui.form.on("Payment Entry Reference", { + reference_name: function (frm, cdt, cdn) { + let row = locals[cdt][cdn]; + + if (row.reference_name && row.reference_doctype) { + return frappe.call({ + method: "hrms.overrides.employee_payment_entry.get_payment_reference_details", + args: { + reference_doctype: row.reference_doctype, + reference_name: row.reference_name, + party_account_currency: + frm.doc.payment_type == "Receive" + ? frm.doc.paid_from_account_currency + : frm.doc.paid_to_account_currency, + party_type: frm.doc.party_type, + party: frm.doc.party, + }, + callback: function (r, rt) { + if (r.message) { + $.each(r.message, function (field, value) { + frappe.model.set_value(cdt, cdn, field, value); + }); + + let allocated_amount = + frm.doc.unallocated_amount > row.outstanding_amount + ? row.outstanding_amount + : frm.doc.unallocated_amount; + + frappe.model.set_value(cdt, cdn, "allocated_amount", allocated_amount); + frm.refresh_fields(); + } + }, + }); + } + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/public/js/erpnext/timesheet.js b/apps/erpnext/src/hrms/hrms/public/js/erpnext/timesheet.js new file mode 100644 index 000000000..ab3146828 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/erpnext/timesheet.js @@ -0,0 +1,21 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Timesheet", { + refresh(frm) { + if (frm.doc.docstatus === 1 && frappe.model.can_create("Salary Slip")) { + if (!frm.doc.salary_slip && frm.doc.employee) { + frm.add_custom_button(__("Create Salary Slip"), function () { + frm.trigger("make_salary_slip"); + }); + } + } + }, + + make_salary_slip: function (frm) { + frappe.model.open_mapped_doc({ + method: "hrms.payroll.doctype.salary_slip.salary_slip.make_salary_slip_from_timesheet", + frm: frm, + }); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/public/js/hierarchy-chart.bundle.js b/apps/erpnext/src/hrms/hrms/public/js/hierarchy-chart.bundle.js new file mode 100644 index 000000000..02703139d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/hierarchy-chart.bundle.js @@ -0,0 +1,3 @@ +import "./hierarchy_chart/hierarchy_chart_desktop.js"; +import "./hierarchy_chart/hierarchy_chart_mobile.js"; +import "./templates/node_card.html"; diff --git a/apps/erpnext/src/hrms/hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js b/apps/erpnext/src/hrms/hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js new file mode 100644 index 000000000..51019d225 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/hierarchy_chart/hierarchy_chart_desktop.js @@ -0,0 +1,644 @@ +import html2canvas from "html2canvas"; +hrms.HierarchyChart = class { + /* Options: + - doctype + - wrapper: wrapper for the hierarchy view + - method: + - to get the data for each node + - this method should return id, name, title, image, and connections for each node + */ + constructor(doctype, wrapper, method) { + this.page = wrapper.page; + this.method = method; + this.doctype = doctype; + + this.setup_page_style(); + this.page.main.addClass("frappe-card"); + + this.nodes = {}; + this.setup_node_class(); + } + + setup_page_style() { + this.page.main.css({ + "min-height": "300px", + "max-height": "700px", + overflow: "auto", + position: "relative", + }); + } + + setup_node_class() { + let me = this; + this.Node = class { + constructor({ + id, + parent, + parent_id, + image, + name, + title, + expandable, + connections, + is_root, // eslint-disable-line + }) { + // to setup values passed via constructor + $.extend(this, arguments[0]); + + this.expanded = 0; + + me.nodes[this.id] = this; + me.make_node_element(this); + + if (!me.all_nodes_expanded) { + me.setup_node_click_action(this); + } + + me.setup_edit_node_action(this); + } + }; + } + + make_node_element(node) { + let node_card = frappe.render_template("node_card", { + id: node.id, + name: node.name, + title: node.title, + image: node.image, + parent: node.parent_id, + connections: node.connections, + is_mobile: false, + }); + + node.parent.append(node_card); + node.$link = $(`[id="${node.id}"]`); + } + + show() { + this.setup_actions(); + if (this.page.main.find('[data-fieldname="company"]').length) return; + let me = this; + + let company = this.page.add_field({ + fieldtype: "Link", + options: "Company", + fieldname: "company", + placeholder: __("Select Company"), + default: frappe.defaults.get_default("company"), + only_select: true, + reqd: 1, + change: () => { + me.company = ""; + $("#hierarchy-chart-wrapper").remove(); + + if (company.get_value()) { + me.company = company.get_value(); + + // svg for connectors + me.make_svg_markers(); + me.setup_hierarchy(); + me.render_root_nodes(); + me.all_nodes_expanded = false; + } else { + frappe.throw(__("Please select a company first.")); + } + }, + }); + + company.refresh(); + $(`[data-fieldname="company"]`).trigger("change"); + $(`[data-fieldname="company"] .link-field`).css("z-index", 2); + } + + setup_actions() { + let me = this; + this.page.clear_inner_toolbar(); + this.page.add_inner_button(__("Export"), function () { + me.export_chart(); + }); + + this.page.add_inner_button(__("Expand All"), function () { + me.load_children(me.root_node, true); + me.all_nodes_expanded = true; + + me.page.remove_inner_button(__("Expand All")); + me.page.add_inner_button(__("Collapse All"), function () { + me.setup_hierarchy(); + me.render_root_nodes(); + me.all_nodes_expanded = false; + + me.page.remove_inner_button(__("Collapse All")); + me.setup_actions(); + }); + }); + } + + export_chart() { + frappe.dom.freeze(__("Exporting...")); + this.page.main.css({ + "min-height": "", + "max-height": "", + overflow: "visible", + position: "fixed", + left: "0", + top: "0", + }); + + $(".node-card").addClass("exported"); + + html2canvas(document.querySelector("#hierarchy-chart-wrapper"), { + scrollY: -window.scrollY, + scrollX: 0, + }) + .then(function (canvas) { + // Export the canvas to its data URI representation + let dataURL = canvas.toDataURL("image/png"); + + // download the image + let a = document.createElement("a"); + a.href = dataURL; + a.download = "hierarchy_chart"; + a.click(); + }) + .finally(() => { + frappe.dom.unfreeze(); + }); + + this.setup_page_style(); + $(".node-card").removeClass("exported"); + } + + setup_hierarchy() { + if (this.$hierarchy) this.$hierarchy.remove(); + + $(`#connectors`).empty(); + + // setup hierarchy + this.$hierarchy = $( + `

      +
    • +
        +
      • +
      `, + ); + + this.page.main.find("#hierarchy-chart").empty().append(this.$hierarchy); + + this.nodes = {}; + } + + make_svg_markers() { + $("#hierarchy-chart-wrapper").remove(); + + this.page.main.append(` +
      + + + + + + + + + + + + + + + + + + + +
      +
      +
      `); + } + + render_root_nodes(expanded_view = false) { + let me = this; + + return frappe + .call({ + method: me.method, + args: { + company: me.company, + }, + }) + .then((r) => { + if (r.message.length) { + let expand_node; + let node; + + $.each(r.message, (_i, data) => { + if ($(`[id="${data.id}"]`).length) return; + + node = new me.Node({ + id: data.id, + parent: $('
    • ').appendTo( + me.$hierarchy.find(".node-children"), + ), + parent_id: "", + image: data.image, + name: data.name, + title: data.title, + expandable: true, + connections: data.connections, + is_root: true, + }); + + if (!expand_node && data.connections) expand_node = node; + }); + + me.root_node = expand_node; + if (!expanded_view) { + me.expand_node(expand_node); + } + } + }); + } + + expand_node(node) { + const is_sibling = this.selected_node && this.selected_node.parent_id === node.parent_id; + this.set_selected_node(node); + this.show_active_path(node); + this.collapse_previous_level_nodes(node); + + // since the previous node collapses, all connections to that node need to be rebuilt + // if a sibling node is clicked, connections don't need to be rebuilt + if (!is_sibling) { + // rebuild outgoing connections + this.refresh_connectors(node.parent_id); + + // rebuild incoming connections + let grandparent = $(`[id="${node.parent_id}"]`).attr("data-parent"); + this.refresh_connectors(grandparent); + } + + if (node.expandable && !node.expanded) { + return this.load_children(node); + } + } + + collapse_node() { + if (this.selected_node.expandable) { + this.selected_node.$children.hide(); + $(`path[data-parent="${this.selected_node.id}"]`).hide(); + this.selected_node.expanded = false; + } + } + + show_active_path(node) { + // mark node parent on active path + $(`[id="${node.parent_id}"]`).addClass("active-path"); + } + + load_children(node, deep = false) { + if (!this.company) { + frappe.throw(__("Please select a company first.")); + } + + if (!deep) { + frappe.run_serially([ + () => this.get_child_nodes(node.id), + (child_nodes) => this.render_child_nodes(node, child_nodes), + ]); + } else { + frappe.run_serially([ + () => frappe.dom.freeze(), + () => this.setup_hierarchy(), + () => this.render_root_nodes(true), + () => this.get_all_nodes(), + (data_list) => this.render_children_of_all_nodes(data_list), + () => frappe.dom.unfreeze(), + ]); + } + } + + get_child_nodes(node_id) { + let me = this; + return new Promise((resolve) => { + frappe + .call({ + method: me.method, + args: { + parent: node_id, + company: me.company, + }, + }) + .then((r) => resolve(r.message)); + }); + } + + render_child_nodes(node, child_nodes) { + const last_level = this.$hierarchy.find(".level:last").index(); + const current_level = $(`[id="${node.id}"]`).parent().parent().parent().index(); + + if (last_level === current_level) { + this.$hierarchy.append(` +
    • + `); + } + + if (!node.$children) { + node.$children = $('
        ') + .hide() + .appendTo(this.$hierarchy.find(".level:last")); + + node.$children.empty(); + + if (child_nodes) { + $.each(child_nodes, (_i, data) => { + if (!$(`[id="${data.id}"]`).length) { + this.add_node(node, data); + setTimeout(() => { + this.add_connector(node.id, data.id); + }, 250); + } + }); + } + } + + node.$children.show(); + $(`path[data-parent="${node.id}"]`).show(); + node.expanded = true; + } + + get_all_nodes() { + let me = this; + return new Promise((resolve) => { + frappe.call({ + method: "hrms.utils.hierarchy_chart.get_all_nodes", + args: { + method: me.method, + company: me.company, + }, + callback: (r) => { + resolve(r.message); + }, + }); + }); + } + + render_children_of_all_nodes(data_list) { + let entry; + let node; + + while (data_list.length) { + // to avoid overlapping connectors + entry = data_list.shift(); + node = this.nodes[entry.parent]; + if (node) { + this.render_child_nodes_for_expanded_view(node, entry.data); + } else if (data_list.length) { + data_list.push(entry); + } + } + } + + render_child_nodes_for_expanded_view(node, child_nodes) { + node.$children = $('
          '); + + const last_level = this.$hierarchy.find(".level:last").index(); + const node_level = $(`[id="${node.id}"]`).parent().parent().parent().index(); + + if (last_level === node_level) { + this.$hierarchy.append(` +
        • + `); + node.$children.appendTo(this.$hierarchy.find(".level:last")); + } else { + node.$children.appendTo(this.$hierarchy.find(".level:eq(" + (node_level + 1) + ")")); + } + + node.$children.hide().empty(); + + if (child_nodes) { + $.each(child_nodes, (_i, data) => { + this.add_node(node, data); + setTimeout(() => { + this.add_connector(node.id, data.id); + }, 250); + }); + } + + node.$children.show(); + $(`path[data-parent="${node.id}"]`).show(); + node.expanded = true; + } + + add_node(node, data) { + return new this.Node({ + id: data.id, + parent: $('
        • ').appendTo(node.$children), + parent_id: node.id, + image: data.image, + name: data.name, + title: data.title, + expandable: data.expandable, + connections: data.connections, + children: null, + }); + } + + add_connector(parent_id, child_id) { + // using pure javascript for better performance + const parent_node = document.getElementById(`${parent_id}`); + const child_node = document.getElementById(`${child_id}`); + + let path = document.createElementNS("http://www.w3.org/2000/svg", "path"); + + // we need to connect right side of the parent to the left side of the child node + const pos_parent_right = { + x: parent_node.offsetLeft + parent_node.offsetWidth, + y: parent_node.offsetTop + parent_node.offsetHeight / 2, + }; + const pos_child_left = { + x: child_node.offsetLeft - 5, + y: child_node.offsetTop + child_node.offsetHeight / 2, + }; + + const connector = this.get_connector(pos_parent_right, pos_child_left); + + path.setAttribute("d", connector); + this.set_path_attributes(path, parent_id, child_id); + + document.getElementById("connectors").appendChild(path); + } + + get_connector(pos_parent_right, pos_child_left) { + if (pos_parent_right.y === pos_child_left.y) { + // don't add arcs if it's a straight line + return ( + "M" + + pos_parent_right.x + + "," + + pos_parent_right.y + + " " + + "L" + + pos_child_left.x + + "," + + pos_child_left.y + ); + } else { + let arc_1 = ""; + let arc_2 = ""; + let offset = 0; + + if (pos_parent_right.y > pos_child_left.y) { + // if child is above parent on Y axis 1st arc is anticlocwise + // second arc is clockwise + arc_1 = "a10,10 1 0 0 10,-10 "; + arc_2 = "a10,10 0 0 1 10,-10 "; + offset = 10; + } else { + // if child is below parent on Y axis 1st arc is clockwise + // second arc is anticlockwise + arc_1 = "a10,10 0 0 1 10,10 "; + arc_2 = "a10,10 1 0 0 10,10 "; + offset = -10; + } + + return ( + "M" + + pos_parent_right.x + + "," + + pos_parent_right.y + + " " + + "L" + + (pos_parent_right.x + 40) + + "," + + pos_parent_right.y + + " " + + arc_1 + + "L" + + (pos_parent_right.x + 50) + + "," + + (pos_child_left.y + offset) + + " " + + arc_2 + + "L" + + pos_child_left.x + + "," + + pos_child_left.y + ); + } + } + + set_path_attributes(path, parent_id, child_id) { + path.setAttribute("data-parent", parent_id); + path.setAttribute("data-child", child_id); + const parent = $(`[id="${parent_id}"]`); + + if (parent.hasClass("active")) { + path.setAttribute("class", "active-connector"); + path.setAttribute("marker-start", "url(#arrowstart-active)"); + path.setAttribute("marker-end", "url(#arrowhead-active)"); + } else { + path.setAttribute("class", "collapsed-connector"); + path.setAttribute("marker-start", "url(#arrowstart-collapsed)"); + path.setAttribute("marker-end", "url(#arrowhead-collapsed)"); + } + } + + set_selected_node(node) { + // remove active class from the current node + if (this.selected_node) this.selected_node.$link.removeClass("active"); + + // add active class to the newly selected node + this.selected_node = node; + node.$link.addClass("active"); + } + + collapse_previous_level_nodes(node) { + let node_parent = $(`[id="${node.parent_id}"]`); + let previous_level_nodes = node_parent.parent().parent().children("li"); + let node_card; + + previous_level_nodes.each(function () { + node_card = $(this).find(".node-card"); + + if (!node_card.hasClass("active-path")) { + node_card.addClass("collapsed"); + } + }); + } + + refresh_connectors(node_parent) { + if (!node_parent) return; + + $(`path[data-parent="${node_parent}"]`).remove(); + + frappe.run_serially([ + () => this.get_child_nodes(node_parent), + (child_nodes) => { + if (child_nodes) { + $.each(child_nodes, (_i, data) => { + this.add_connector(node_parent, data.id); + }); + } + }, + ]); + } + + setup_node_click_action(node) { + let me = this; + let node_element = $(`[id="${node.id}"]`); + + node_element.click(function () { + const is_sibling = me.selected_node.parent_id === node.parent_id; + + if (is_sibling) { + me.collapse_node(); + } else if ( + node_element.is(":visible") && + (node_element.hasClass("collapsed") || node_element.hasClass("active-path")) + ) { + me.remove_levels_after_node(node); + me.remove_orphaned_connectors(); + } + + me.expand_node(node); + }); + } + + setup_edit_node_action(node) { + let node_element = $(`[id="${node.id}"]`); + let me = this; + + node_element.find(".btn-edit-node").click(function () { + frappe.set_route("Form", me.doctype, node.id); + }); + } + + remove_levels_after_node(node) { + let level = $(`[id="${node.id}"]`).parent().parent().parent().index(); + + level = $(".hierarchy > li:eq(" + level + ")"); + level.nextAll("li").remove(); + + let nodes = level.find(".node-card"); + let node_object; + + $.each(nodes, (_i, element) => { + node_object = this.nodes[element.id]; + node_object.expanded = 0; + node_object.$children = null; + }); + + nodes.removeClass("collapsed active-path"); + } + + remove_orphaned_connectors() { + let paths = $("#connectors > path"); + $.each(paths, (_i, path) => { + const parent = $(path).data("parent"); + const child = $(path).data("child"); + + if ($(`[id="${parent}"]`).length && $(`[id="${child}"]`).length) return; + + $(path).remove(); + }); + } +}; diff --git a/apps/erpnext/src/hrms/hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js b/apps/erpnext/src/hrms/hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js new file mode 100644 index 000000000..3505ef1fc --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/hierarchy_chart/hierarchy_chart_mobile.js @@ -0,0 +1,567 @@ +hrms.HierarchyChartMobile = class { + /* Options: + - doctype + - wrapper: wrapper for the hierarchy view + - method: + - to get the data for each node + - this method should return id, name, title, image, and connections for each node + */ + constructor(doctype, wrapper, method) { + this.page = wrapper.page; + this.method = method; + this.doctype = doctype; + + this.page.main.css({ + "min-height": "300px", + "max-height": "600px", + overflow: "auto", + position: "relative", + }); + this.page.main.addClass("frappe-card"); + + this.nodes = {}; + this.setup_node_class(); + } + + setup_node_class() { + let me = this; + this.Node = class { + constructor({ + id, + parent, + parent_id, + image, + name, + title, + expandable, + connections, + is_root, // eslint-disable-line + }) { + // to setup values passed via constructor + $.extend(this, arguments[0]); + + this.expanded = 0; + + me.nodes[this.id] = this; + me.make_node_element(this); + me.setup_node_click_action(this); + me.setup_edit_node_action(this); + } + }; + } + + make_node_element(node) { + let node_card = frappe.render_template("node_card", { + id: node.id, + name: node.name, + title: node.title, + image: node.image, + parent: node.parent_id, + connections: node.connections, + is_mobile: true, + }); + + node.parent.append(node_card); + node.$link = $(`[id="${node.id}"]`); + node.$link.addClass("mobile-node"); + } + + show() { + if (this.page.main.find('[data-fieldname="company"]').length) return; + let me = this; + + let company = this.page.add_field({ + fieldtype: "Link", + options: "Company", + fieldname: "company", + placeholder: __("Select Company"), + default: frappe.defaults.get_default("company"), + only_select: true, + reqd: 1, + change: () => { + me.company = ""; + + if (company.get_value() && me.company != company.get_value()) { + me.company = company.get_value(); + + // svg for connectors + me.make_svg_markers(); + + if (me.$sibling_group) me.$sibling_group.remove(); + + // setup sibling group wrapper + me.$sibling_group = $(`
          `); + me.page.main.append(me.$sibling_group); + + me.setup_hierarchy(); + me.render_root_nodes(); + } + }, + }); + + company.refresh(); + $(`[data-fieldname="company"]`).trigger("change"); + } + + make_svg_markers() { + $("#arrows").remove(); + + this.page.main.prepend(` + + + + + + + + + + + + + + + + + + + `); + } + + setup_hierarchy() { + $(`#connectors`).empty(); + if (this.$hierarchy) this.$hierarchy.remove(); + + if (this.$sibling_group) this.$sibling_group.empty(); + + this.$hierarchy = $( + `
            +
          • +
          `, + ); + + this.page.main.append(this.$hierarchy); + } + + render_root_nodes() { + let me = this; + + frappe + .call({ + method: me.method, + args: { + company: me.company, + }, + }) + .then((r) => { + if (r.message.length) { + let root_level = me.$hierarchy.find(".root-level"); + root_level.empty(); + + $.each(r.message, (_i, data) => { + return new me.Node({ + id: data.id, + parent: root_level, + parent_id: "", + image: data.image, + name: data.name, + title: data.title, + expandable: true, + connections: data.connections, + is_root: true, + }); + }); + } + }); + } + + expand_node(node) { + const is_same_node = this.selected_node && this.selected_node.id === node.id; + this.set_selected_node(node); + this.show_active_path(node); + + if (this.$sibling_group) { + const sibling_parent = this.$sibling_group.find(".node-group").attr("data-parent"); + if (node.parent_id != "" && node.parent_id != sibling_parent) + this.$sibling_group.empty(); + } + + if (!is_same_node) { + // since the previous/parent node collapses, all connections to that node need to be rebuilt + // rebuild outgoing connections of parent + this.refresh_connectors(node.parent_id, node.id); + + // rebuild incoming connections of parent + let grandparent = $(`[id="${node.parent_id}"]`).attr("data-parent"); + this.refresh_connectors(grandparent, node.parent_id); + } + + if (node.expandable && !node.expanded) { + return this.load_children(node); + } + } + + collapse_node() { + let node = this.selected_node; + if (node.expandable && node.$children) { + node.$children.hide(); + node.expanded = 0; + + // add a collapsed level to show the collapsed parent + // and a button beside it to move to that level + let node_parent = node.$link.parent(); + node_parent.prepend(`
          `); + + node_parent.find(".collapsed-level").append(node.$link); + + frappe.run_serially([ + () => this.get_child_nodes(node.parent_id, node.id), + (child_nodes) => this.get_node_group(child_nodes, node.parent_id), + (node_group) => node_parent.find(".collapsed-level").append(node_group), + () => this.setup_node_group_action(), + ]); + } + } + + show_active_path(node) { + // mark node parent on active path + $(`[id="${node.parent_id}"]`).addClass("active-path"); + } + + load_children(node) { + if (!this.company) { + frappe.throw(__("Please select a company first")); + } + + frappe.run_serially([ + () => this.get_child_nodes(node.id), + (child_nodes) => this.render_child_nodes(node, child_nodes), + ]); + } + + get_child_nodes(node_id, exclude_node = null) { + let me = this; + return new Promise((resolve) => { + frappe + .call({ + method: me.method, + args: { + parent: node_id, + company: me.company, + exclude_node: exclude_node, + }, + }) + .then((r) => resolve(r.message)); + }); + } + + render_child_nodes(node, child_nodes) { + if (!node.$children) { + node.$children = $('
            ') + .hide() + .appendTo(node.$link.parent()); + + node.$children.empty(); + + if (child_nodes) { + $.each(child_nodes, (_i, data) => { + this.add_node(node, data); + $(`[id="${data.id}"]`).addClass("active-child"); + + setTimeout(() => { + this.add_connector(node.id, data.id); + }, 250); + }); + } + } + + node.$children.show(); + node.expanded = 1; + } + + add_node(node, data) { + var $li = $('
          • '); + + return new this.Node({ + id: data.id, + parent: $li.appendTo(node.$children), + parent_id: node.id, + image: data.image, + name: data.name, + title: data.title, + expandable: data.expandable, + connections: data.connections, + children: null, + }); + } + + add_connector(parent_id, child_id) { + const parent_node = document.getElementById(`${parent_id}`); + const child_node = document.getElementById(`${child_id}`); + + const path = document.createElementNS("http://www.w3.org/2000/svg", "path"); + + let connector = null; + + if ($(`[id="${parent_id}"]`).hasClass("active")) { + connector = this.get_connector_for_active_node(parent_node, child_node); + } else if ($(`[id="${parent_id}"]`).hasClass("active-path")) { + connector = this.get_connector_for_collapsed_node(parent_node, child_node); + } + + path.setAttribute("d", connector); + this.set_path_attributes(path, parent_id, child_id); + + document.getElementById("connectors").appendChild(path); + } + + get_connector_for_active_node(parent_node, child_node) { + // we need to connect the bottom left of the parent to the left side of the child node + let pos_parent_bottom = { + x: parent_node.offsetLeft + 20, + y: parent_node.offsetTop + parent_node.offsetHeight, + }; + let pos_child_left = { + x: child_node.offsetLeft - 5, + y: child_node.offsetTop + child_node.offsetHeight / 2, + }; + + let connector = + "M" + + pos_parent_bottom.x + + "," + + pos_parent_bottom.y + + " " + + "L" + + pos_parent_bottom.x + + "," + + (pos_child_left.y - 10) + + " " + + "a10,10 1 0 0 10,10 " + + "L" + + pos_child_left.x + + "," + + pos_child_left.y; + + return connector; + } + + get_connector_for_collapsed_node(parent_node, child_node) { + // we need to connect the bottom left of the parent to the top left of the child node + let pos_parent_bottom = { + x: parent_node.offsetLeft + 20, + y: parent_node.offsetTop + parent_node.offsetHeight, + }; + let pos_child_top = { + x: child_node.offsetLeft + 20, + y: child_node.offsetTop, + }; + + let connector = + "M" + + pos_parent_bottom.x + + "," + + pos_parent_bottom.y + + " " + + "L" + + pos_child_top.x + + "," + + pos_child_top.y; + + return connector; + } + + set_path_attributes(path, parent_id, child_id) { + path.setAttribute("data-parent", parent_id); + path.setAttribute("data-child", child_id); + const parent = $(`[id="${parent_id}"]`); + + if (parent.hasClass("active")) { + path.setAttribute("class", "active-connector"); + path.setAttribute("marker-start", "url(#arrowstart-active)"); + path.setAttribute("marker-end", "url(#arrowhead-active)"); + } else if (parent.hasClass("active-path")) { + path.setAttribute("class", "collapsed-connector"); + } + } + + set_selected_node(node) { + // remove .active class from the current node + if (this.selected_node) this.selected_node.$link.removeClass("active"); + + // add active class to the newly selected node + this.selected_node = node; + node.$link.addClass("active"); + } + + setup_node_click_action(node) { + let me = this; + let node_element = $(`[id="${node.id}"]`); + + node_element.click(function () { + let el = null; + + if (node.is_root) { + el = $(this).detach(); + me.$hierarchy.empty(); + $(`#connectors`).empty(); + me.add_node_to_hierarchy(el, node); + } else if (node_element.is(":visible") && node_element.hasClass("active-path")) { + me.remove_levels_after_node(node); + me.remove_orphaned_connectors(); + } else { + el = $(this).detach(); + me.add_node_to_hierarchy(el, node); + me.collapse_node(); + } + + me.expand_node(node); + }); + } + + setup_edit_node_action(node) { + let node_element = $(`[id="${node.id}"]`); + let me = this; + + node_element.find(".btn-edit-node").click(function () { + frappe.set_route("Form", me.doctype, node.id); + }); + } + + setup_node_group_action() { + let me = this; + + $(".node-group").on("click", function () { + let parent = $(this).attr("data-parent"); + if (parent == "") { + me.setup_hierarchy(); + me.render_root_nodes(); + } else { + me.expand_sibling_group_node(parent); + } + }); + } + + add_node_to_hierarchy(node_element, node) { + this.$hierarchy.append(`
          • `); + node_element.removeClass("active-child active-path"); + this.$hierarchy.find(".level:last").append(node_element); + + let node_object = this.nodes[node.id]; + node_object.expanded = 0; + node_object.$children = null; + this.nodes[node.id] = node_object; + } + + get_node_group(nodes, parent, collapsed = true) { + let limit = 2; + const display_nodes = nodes.slice(0, limit); + const extra_nodes = nodes.slice(limit); + + let html = display_nodes.map((node) => this.get_avatar(node)).join(""); + + if (extra_nodes.length === 1) { + let node = extra_nodes[0]; + html += this.get_avatar(node); + } else if (extra_nodes.length > 1) { + html = ` + ${html} + +
            + +${extra_nodes.length} +
            +
            + `; + } + + if (html) { + const $node_group = + $(`
            +
            + ${html} +
            +
            `); + + if (collapsed) $node_group.addClass("collapsed"); + + return $node_group; + } + + return null; + } + + get_avatar(node) { + return ` + + `; + } + + expand_sibling_group_node(parent) { + let node_object = this.nodes[parent]; + let node = node_object.$link; + + node.removeClass("active-child active-path"); + node_object.expanded = 0; + node_object.$children = null; + this.nodes[node.id] = node_object; + + // show parent's siblings and expand parent node + frappe.run_serially([ + () => this.get_child_nodes(node_object.parent_id, node_object.id), + (child_nodes) => this.get_node_group(child_nodes, node_object.parent_id, false), + (node_group) => { + if (node_group) this.$sibling_group.empty().append(node_group); + }, + () => this.setup_node_group_action(), + () => this.reattach_and_expand_node(node, node_object), + ]); + } + + reattach_and_expand_node(node, node_object) { + var el = node.detach(); + + this.$hierarchy.empty().append(` +
          • + `); + this.$hierarchy.find(".level").append(el); + $(`#connectors`).empty(); + this.expand_node(node_object); + } + + remove_levels_after_node(node) { + let level = $(`[id="${node.id}"]`).parent().parent().index(); + + level = $(".hierarchy-mobile > li:eq(" + level + ")"); + level.nextAll("li").remove(); + + let node_object = this.nodes[node.id]; + let current_node = level.find(`[id="${node.id}"]`).detach(); + + current_node.removeClass("active-child active-path"); + + node_object.expanded = 0; + node_object.$children = null; + + level.empty().append(current_node); + } + + remove_orphaned_connectors() { + let paths = $("#connectors > path"); + $.each(paths, (_i, path) => { + const parent = $(path).data("parent"); + const child = $(path).data("child"); + + if ($(`[id="${parent}"]`).length && $(`[id="${child}"]`).length) return; + + $(path).remove(); + }); + } + + refresh_connectors(node_parent, node_id) { + if (!node_parent) return; + + $(`path[data-parent="${node_parent}"]`).remove(); + this.add_connector(node_parent, node_id); + } +}; diff --git a/apps/erpnext/src/hrms/hrms/public/js/hrms.bundle.js b/apps/erpnext/src/hrms/hrms/public/js/hrms.bundle.js new file mode 100644 index 000000000..8793d7842 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/hrms.bundle.js @@ -0,0 +1,8 @@ +import "./templates/employees_with_unmarked_attendance.html"; +import "./templates/feedback_summary.html"; +import "./templates/feedback_history.html"; +import "./templates/rating.html"; +import "./utils"; +import "./utils/payroll_utils"; +import "./utils/leave_utils"; +import "./salary_slip_deductions_report_filters.js"; diff --git a/apps/erpnext/src/hrms/hrms/public/js/interview.bundle.js b/apps/erpnext/src/hrms/hrms/public/js/interview.bundle.js new file mode 100644 index 000000000..084f0dac4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/interview.bundle.js @@ -0,0 +1,2 @@ +import "./templates/interview_feedback.html"; +import "./templates/circular_progress_bar.html"; diff --git a/apps/erpnext/src/hrms/hrms/public/js/performance.bundle.js b/apps/erpnext/src/hrms/hrms/public/js/performance.bundle.js new file mode 100644 index 000000000..b4e8294dd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/performance.bundle.js @@ -0,0 +1,2 @@ +import "./performance/performance_feedback.js"; +import "./templates/performance_feedback.html"; diff --git a/apps/erpnext/src/hrms/hrms/public/js/performance/performance_feedback.js b/apps/erpnext/src/hrms/hrms/public/js/performance/performance_feedback.js new file mode 100644 index 000000000..05a823743 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/performance/performance_feedback.js @@ -0,0 +1,182 @@ +frappe.provide("hrms"); + +hrms.PerformanceFeedback = class PerformanceFeedback { + constructor({ frm, wrapper }) { + this.frm = frm; + this.wrapper = wrapper; + } + + refresh() { + this.prepare_dom(); + this.setup_feedback_view(); + } + + prepare_dom() { + this.wrapper.find(".feedback-section").remove(); + } + + setup_feedback_view() { + frappe.run_serially([ + () => this.get_feedback_history(), + (data) => this.render_feedback_history(data), + () => this.setup_actions(), + ]); + } + + get_feedback_history() { + let me = this; + + return new Promise((resolve) => { + frappe + .call({ + method: "hrms.hr.doctype.appraisal.appraisal.get_feedback_history", + args: { + employee: me.frm.doc.employee, + appraisal: me.frm.doc.name, + }, + }) + .then((r) => resolve(r.message)); + }); + } + + async render_feedback_history(data) { + const { feedback_history, reviews_per_rating, avg_feedback_score } = data || {}; + const can_create = await this.can_create(); + + const feedback_html = frappe.render_template("performance_feedback", { + feedback_history: feedback_history, + average_feedback_score: avg_feedback_score, + reviews_per_rating: reviews_per_rating, + can_create: can_create, + }); + + $(this.wrapper).empty(); + $(feedback_html).appendTo(this.wrapper); + } + + setup_actions() { + let me = this; + + $(".new-feedback-btn").click(() => { + me.add_feedback(); + }); + } + + add_feedback() { + frappe.run_serially([ + () => this.get_feedback_criteria_data(), + (criteria_data) => this.show_add_feedback_dialog(criteria_data), + ]); + } + + get_feedback_criteria_data() { + let me = this; + + return new Promise((resolve) => { + frappe.db + .get_doc("Appraisal Template", me.frm.doc.appraisal_template) + .then(({ rating_criteria }) => { + const criteria_list = []; + rating_criteria.forEach((entry) => { + criteria_list.push({ + criteria: entry.criteria, + per_weightage: entry.per_weightage, + }); + }); + resolve(criteria_list); + }); + }); + } + + show_add_feedback_dialog(criteria_data) { + let me = this; + + const dialog = new frappe.ui.Dialog({ + title: __("Add Feedback"), + fields: me.get_feedback_dialog_fields(criteria_data), + size: "large", + minimizable: true, + primary_action_label: __("Submit"), + primary_action: function () { + const data = dialog.get_values(); + + frappe.call({ + method: "add_feedback", + doc: me.frm.doc, + args: { + feedback: data.feedback, + feedback_ratings: data.feedback_ratings, + }, + freeze: true, + callback: function (r) { + if (!r.exc) { + frappe.run_serially([ + () => me.frm.refresh_fields(), + () => me.refresh(), + ]); + + frappe.show_alert({ + message: __("Feedback {0} added successfully", [ + r.message?.name?.bold(), + ]), + indicator: "green", + }); + } + dialog.hide(); + }, + }); + }, + }); + + dialog.show(); + } + + get_feedback_dialog_fields(criteria_data) { + return [ + { + label: "Feedback", + fieldname: "feedback", + fieldtype: "Text Editor", + reqd: 1, + enable_mentions: true, + }, + { + label: "Feedback Rating", + fieldtype: "Table", + fieldname: "feedback_ratings", + cannot_add_rows: true, + data: criteria_data, + fields: [ + { + fieldname: "criteria", + fieldtype: "Link", + in_list_view: 1, + label: "Criteria", + options: "Employee Feedback Criteria", + reqd: 1, + }, + { + fieldname: "per_weightage", + fieldtype: "Percent", + in_list_view: 1, + label: "Weightage", + }, + { + fieldname: "rating", + fieldtype: "Rating", + in_list_view: 1, + label: "Rating", + }, + ], + }, + ]; + } + + async can_create() { + const is_employee = + (await frappe.db.get_value("Employee", { user_id: frappe.session.user }, "name")) + ?.message?.name || false; + + return is_employee && frappe.model.can_create("Employee Performance Feedback"); + } +}; diff --git a/apps/erpnext/src/hrms/hrms/public/js/salary_slip_deductions_report_filters.js b/apps/erpnext/src/hrms/hrms/public/js/salary_slip_deductions_report_filters.js new file mode 100644 index 000000000..3ca648b0d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/salary_slip_deductions_report_filters.js @@ -0,0 +1,65 @@ +frappe.provide("hrms.salary_slip_deductions_report_filters"); + +hrms.salary_slip_deductions_report_filters = { + filters: [ + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + reqd: 1, + default: frappe.defaults.get_user_default("Company"), + }, + { + fieldname: "month", + label: __("Month"), + fieldtype: "Select", + reqd: 1, + options: [ + { value: 1, label: __("Jan") }, + { value: 2, label: __("Feb") }, + { value: 3, label: __("Mar") }, + { value: 4, label: __("Apr") }, + { value: 5, label: __("May") }, + { value: 6, label: __("June") }, + { value: 7, label: __("July") }, + { value: 8, label: __("Aug") }, + { value: 9, label: __("Sep") }, + { value: 10, label: __("Oct") }, + { value: 11, label: __("Nov") }, + { value: 12, label: __("Dec") }, + ], + default: frappe.datetime.str_to_obj(frappe.datetime.get_today()).getMonth() + 1, + }, + { + fieldname: "year", + label: __("Year"), + fieldtype: "Select", + reqd: 1, + }, + { + fieldname: "department", + label: __("Department"), + fieldtype: "Link", + options: "Department", + }, + { + fieldname: "branch", + label: __("Branch"), + fieldtype: "Link", + options: "Branch", + }, + ], + onload: function () { + return frappe.call({ + method: "hrms.payroll.report.provident_fund_deductions.provident_fund_deductions.get_years", + callback: function (r) { + var year_filter = frappe.query_report.get_filter("year"); + year_filter.df.options = r.message; + year_filter.df.default = r.message.split("\n")[0]; + year_filter.refresh(); + year_filter.set_input(year_filter.df.default); + }, + }); + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/public/js/templates/circular_progress_bar.html b/apps/erpnext/src/hrms/hrms/public/js/templates/circular_progress_bar.html new file mode 100644 index 000000000..542250035 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/templates/circular_progress_bar.html @@ -0,0 +1,13 @@ +
            + {% degree = Math.floor(rating*360/5) %} + {% deg_right = degree > 180 ? 180 : degree %} + {% deg_left = degree > 180 ? degree - 180 : 0 %} + + + + + + +
            {{ flt(rating, 2) }}
            +
            +
            {{ skill }}
            diff --git a/apps/erpnext/src/hrms/hrms/public/js/templates/employees_with_unmarked_attendance.html b/apps/erpnext/src/hrms/hrms/public/js/templates/employees_with_unmarked_attendance.html new file mode 100644 index 000000000..16bfc06de --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/templates/employees_with_unmarked_attendance.html @@ -0,0 +1,39 @@ +{% if data.length %} + +
            +
            + {{ + __( + "Attendance is pending for these employees between the selected payroll dates. Mark attendance to proceed. Refer {0} for details.", + ["Monthly Attendance Sheet"] + ) + }} +
            +
            + + + + + + + + + + + {% for item in data %} + + + + + + {% } %} + +
            {{ __("Employee") }}{{ __("Employee Name") }}{{ __("Unmarked Days") }}
            {{ item.employee }} {{ item.employee_name }} {{ item.unmarked_days }}
            + +{% } else { %} + +
            +
            {{ __("Attendance has been marked for all the employees between the selected payroll dates.") }}
            +
            + +{% } %} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/public/js/templates/feedback_history.html b/apps/erpnext/src/hrms/hrms/public/js/templates/feedback_history.html new file mode 100644 index 000000000..9cdd23144 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/templates/feedback_history.html @@ -0,0 +1,58 @@ + + {% } %} + + {% } else { %} +
            + {{ __("No feedback has been received yet") }} +
            + {% } %} +

            XmO^W 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%0D#sB)t`ax+T%c#|+Z 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�qry2T$e(bkZpjq2}hi>UVRU8RB_ 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

            \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/public/js/templates/feedback_summary.html b/apps/erpnext/src/hrms/hrms/public/js/templates/feedback_summary.html new file mode 100644 index 000000000..377eec6e6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/templates/feedback_summary.html @@ -0,0 +1,49 @@ + diff --git a/apps/erpnext/src/hrms/hrms/public/js/templates/interview_feedback.html b/apps/erpnext/src/hrms/hrms/public/js/templates/interview_feedback.html new file mode 100644 index 000000000..053d50739 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/templates/interview_feedback.html @@ -0,0 +1,29 @@ + diff --git a/apps/erpnext/src/hrms/hrms/public/js/templates/node_card.html b/apps/erpnext/src/hrms/hrms/public/js/templates/node_card.html new file mode 100644 index 000000000..b17ce42b5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/templates/node_card.html @@ -0,0 +1,39 @@ +
            +
            +
            + + + +
            +
            +
            + {{ name }} +
            + + + + + + {{ __("Edit") }} +
            +
            +
            + {% if title %} +
            {{ title }} · 
            + {% endif %} + + {% if is_mobile %} +
            +  {{ connections }} +
            + {% else %} + {% if connections == 1 %} +
            {{ connections }} Connection
            + {% else %} +
            {{ connections }} Connections
            + {% endif %} + {% endif %} +
            +
            +
            +
            diff --git a/apps/erpnext/src/hrms/hrms/public/js/templates/performance_feedback.html b/apps/erpnext/src/hrms/hrms/public/js/templates/performance_feedback.html new file mode 100644 index 000000000..c4e0c93a0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/templates/performance_feedback.html @@ -0,0 +1,37 @@ + diff --git a/apps/erpnext/src/hrms/hrms/public/js/templates/rating.html b/apps/erpnext/src/hrms/hrms/public/js/templates/rating.html new file mode 100644 index 000000000..d93b91fe7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/templates/rating.html @@ -0,0 +1,27 @@ +
            +
            + {% for (let i = 1; i <= number_of_stars; i++) { %} + {% if (i <= average_rating) { %} + {% right_class = 'star-click'; %} + {% } else { %} + {% right_class = ''; %} + {% } %} + + {% if ((i <= average_rating) || ((i - 0.5) == average_rating)) { %} + {% left_class = 'star-click'; %} + {% } else { %} + {% left_class = ''; %} + {% } %} + + + + + + {% } %} +
            + {% if (!for_summary) { %} +

            + ({{ flt(average_rating, 2) }}) +

            + {% } %} +
            diff --git a/apps/erpnext/src/hrms/hrms/public/js/utils/index.js b/apps/erpnext/src/hrms/hrms/public/js/utils/index.js new file mode 100644 index 000000000..437737098 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/utils/index.js @@ -0,0 +1,280 @@ +frappe.provide("hrms"); + +$.extend(hrms, { + proceed_save_with_reminders_frequency_change: () => { + frappe.ui.hide_open_dialog(); + frappe.call({ + method: "hrms.hr.doctype.hr_settings.hr_settings.set_proceed_with_frequency_change", + callback: () => { + // nosemgrep: frappe-semgrep-rules.rules.frappe-cur-frm-usage + cur_frm.save(); + }, + }); + }, + + set_payroll_frequency_to_null: (frm) => { + if (cint(frm.doc.salary_slip_based_on_timesheet)) { + frm.set_value("payroll_frequency", ""); + } + }, + + get_current_employee: async (frm) => { + const employee = ( + await frappe.db.get_value("Employee", { user_id: frappe.session.user }, "name") + )?.message?.name; + + return employee; + }, + + validate_mandatory_fields: (frm, selected_rows, items = "Employees") => { + const missing_fields = []; + for (d in frm.fields_dict) { + if (frm.fields_dict[d].df.reqd && !frm.doc[d] && d !== "__newname") + missing_fields.push(frm.fields_dict[d].df.label); + } + + if (missing_fields.length) { + let message = __("Mandatory fields required for this action:"); + message += "

            • " + missing_fields.join("
            • ") + "
            "; + frappe.throw({ + message: message, + title: __("Missing Fields"), + }); + } + + if (!selected_rows.length) + frappe.throw({ + message: __("Please select at least one row to perform this action."), + title: __("No {0} Selected", [__(items)]), + }); + }, + + setup_employee_filter_group: (frm) => { + const filter_wrapper = frm.fields_dict.filter_list.$wrapper; + filter_wrapper.empty(); + + frappe.model.with_doctype("Employee", () => { + frm.filter_list = new frappe.ui.FilterGroup({ + parent: filter_wrapper, + doctype: "Employee", + on_change: () => { + frm.advanced_filters = frm.filter_list + .get_filters() + .reduce((filters, item) => { + // item[3] is the value from the array [doctype, fieldname, condition, value] + if (item[3]) { + filters.push(item.slice(1, 4)); + } + return filters; + }, []); + frm.trigger("get_employees"); + }, + }); + }); + }, + + render_employees_datatable: ( + frm, + columns, + employees, + no_data_message = __("No Data"), + get_editor = null, + events = {}, + ) => { + // section automatically collapses on applying a single filter + frm.set_df_property("quick_filters_section", "collapsible", 0); + frm.set_df_property("advanced_filters_section", "collapsible", 0); + + if (frm.employees_datatable) { + frm.employees_datatable.rowmanager.checkMap = []; + frm.employees_datatable.options.noDataMessage = no_data_message; + frm.employees_datatable.refresh(employees, columns); + return; + } + + const $wrapper = frm.get_field("employees_html").$wrapper; + const employee_wrapper = $(`
            `).appendTo($wrapper); + const datatable_options = { + columns: columns, + data: employees, + checkboxColumn: true, + checkedRowStatus: false, + serialNoColumn: false, + dynamicRowHeight: true, + inlineFilters: true, + layout: "fluid", + cellHeight: 35, + noDataMessage: no_data_message, + disableReorderColumn: true, + getEditor: get_editor, + events: events, + }; + frm.employees_datatable = new frappe.DataTable(employee_wrapper.get(0), datatable_options); + }, + + handle_realtime_bulk_action_notification: (frm, event, doctype) => { + frappe.realtime.off(event); + frappe.realtime.on(event, (message) => { + hrms.notify_bulk_action_status( + doctype, + message.failure, + message.success, + message.for_processing, + ); + + // refresh only on complete/partial success + if (message.success) frm.refresh(); + }); + }, + + notify_bulk_action_status: (doctype, failure, success, for_processing = false) => { + let action = __("create/submit"); + let action_past = __("created"); + if (for_processing) { + action = __("process"); + action_past = __("processed"); + } + + let message = ""; + let title = __("Success"); + let indicator = "green"; + + if (failure.length) { + message += __("Failed to {0} {1} for employees:", [action, doctype]); + message += " " + frappe.utils.comma_and(failure) + "
            "; + message += __( + "Check {1} for more details", + [doctype, __("Error Log")], + ); + title = __("Failure"); + indicator = "red"; + + if (success.length) { + message += "
            "; + title = __("Partial Success"); + indicator = "orange"; + } + } + + if (success.length) { + message += __("Successfully {0} {1} for the following employees:", [ + action_past, + doctype, + ]); + message += __( + "", + [__("Employee"), doctype], + ); + for (const d of success) { + message += ``; + } + message += "
            {0}{1}
            ${d.employee}${d.doc}
            "; + } + + frappe.msgprint({ + message, + title, + indicator, + is_minimizable: true, + }); + }, + + fetch_geolocation: async (frm) => { + if (!navigator.geolocation) { + frappe.msgprint({ + message: __("Geolocation is not supported by your current browser"), + title: __("Geolocation Error"), + indicator: "red", + }); + hide_field(["geolocation"]); + return; + } + + frappe.dom.freeze(__("Fetching your geolocation") + "..."); + + navigator.geolocation.getCurrentPosition( + async (position) => { + frappe.run_serially([ + () => frm.set_value("latitude", position.coords.latitude), + () => frm.set_value("longitude", position.coords.longitude), + () => frm.call("set_geolocation"), + () => frappe.dom.unfreeze(), + ]); + }, + + (error) => { + frappe.dom.unfreeze(); + + let msg = __("Unable to retrieve your location") + "

            "; + if (error) { + msg += __("ERROR({0}): {1}", [error.code, error.message]); + } + frappe.msgprint({ + message: msg, + title: __("Geolocation Error"), + indicator: "red", + }); + }, + ); + }, + + get_doctype_fields_for_autocompletion: (doctype) => { + const fields = frappe.get_meta(doctype).fields; + const autocompletions = []; + + fields + .filter((df) => !frappe.model.no_value_type.includes(df.fieldtype)) + .map((df) => { + autocompletions.push({ + value: df.fieldname, + score: 8, + meta: __("{0} Field", [doctype]), + }); + }); + + return autocompletions; + }, + + add_shift_tools_button_to_list: (list_view, action = "Assign Shift") => { + list_view.page.add_inner_button( + __("Shift Assignment Tool"), + () => { + const doc = frappe.model.get_new_doc("Shift Assignment Tool"); + doc.action = action; + doc.company = frappe.defaults.get_default("company"); + doc.status = "Active"; + frappe.set_route("Form", "Shift Assignment Tool", doc.name); + }, + __("Shift Tools"), + ); + + list_view.page.add_inner_button( + __("Roster"), + () => { + window.location.href = "/hr/roster"; + }, + __("Shift Tools"), + ); + }, + + add_shift_tools_button_to_form: (frm, fields) => { + frm.add_custom_button( + __("Shift Assignment Tool"), + () => { + const doc = frappe.model.get_new_doc("Shift Assignment Tool"); + Object.assign(doc, fields); + doc.company = frappe.defaults.get_default("company"); + doc.status = "Active"; + frappe.set_route("Form", "Shift Assignment Tool", doc.name); + }, + __("Shift Tools"), + ); + frm.add_custom_button( + __("Roster"), + () => { + window.location.href = "/hr/roster"; + }, + __("Shift Tools"), + ); + }, +}); diff --git a/apps/erpnext/src/hrms/hrms/public/js/utils/leave_utils.js b/apps/erpnext/src/hrms/hrms/public/js/utils/leave_utils.js new file mode 100644 index 000000000..3e139bddd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/utils/leave_utils.js @@ -0,0 +1,15 @@ +hrms.leave_utils = { + add_view_ledger_button(frm) { + if (frm.doc.__islocal || frm.doc.docstatus != 1) return; + + frm.add_custom_button(__("View Ledger"), () => { + frappe.route_options = { + from_date: frm.doc.from_date, + to_date: frm.doc.to_date, + transaction_type: frm.doc.doctype, + transaction_name: frm.doc.name, + }; + frappe.set_route("query-report", "Leave Ledger"); + }); + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/public/js/utils/payroll_utils.js b/apps/erpnext/src/hrms/hrms/public/js/utils/payroll_utils.js new file mode 100644 index 000000000..d1a6b8b04 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/js/utils/payroll_utils.js @@ -0,0 +1,57 @@ +hrms.payroll_utils = { + set_autocompletions_for_condition_and_formula: function (frm, child_row = "") { + const autocompletions = []; + frappe.run_serially([ + ...["Employee", "Salary Structure", "Salary Structure Assignment", "Salary Slip"].map( + (doctype) => + frappe.model.with_doctype(doctype, () => { + autocompletions.push( + ...hrms.get_doctype_fields_for_autocompletion(doctype), + ); + }), + ), + () => { + frappe.db + .get_list("Salary Component", { + fields: ["salary_component_abbr"], + }) + .then((salary_components) => { + autocompletions.push( + ...salary_components.map((d) => ({ + value: d.salary_component_abbr, + score: 9, + meta: __("Salary Component"), + })), + ); + + autocompletions.push( + ...["base", "variable"].map((d) => ({ + value: d, + score: 10, + meta: __("Salary Structure Assignment field"), + })), + ); + + if (child_row) { + ["condition", "formula"].forEach((field) => { + frm.set_df_property( + child_row.parentfield, + "autocompletions", + autocompletions, + frm.doc.name, + field, + child_row.name, + ); + }); + + frm.refresh_field(child_row.parentfield); + } else { + ["condition", "formula"].forEach((field) => { + frm.set_df_property(field, "autocompletions", autocompletions); + }); + } + }); + }, + ]); + }, +}; diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-icon-180.png b/apps/erpnext/src/hrms/hrms/public/manifest/apple-icon-180.png new file mode 100644 index 0000000000000000000000000000000000000000..796b698bbfe1fd5563930043ab5aa13569e793b2 GIT binary patch literal 3517 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 G-Sc0}({u9x literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1136-640.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1136-640.jpg new file mode 100644 index 0000000000000000000000000000000000000000..516437a7a170d044bef9030dd115faa23ed66898 GIT binary patch literal 8828 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 KR|p*38~7hM6f&Fu literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1242-2208.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1242-2208.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e75b74bd9ee03dbfcb8e9fea4cc01f79b438876a GIT binary patch literal 25984 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1242-2688.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1242-2688.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1503944614715d2dfd2cb58acf581eecce722bd9 GIT binary patch literal 29494 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[BN+I`(s=O!f ztj4buVRC&Lhh#MiFAjWE*5Iw6X~+!@Io6uZJw8=KV)uuQ0u0;bqu(rh*O9Z^eKq+> zpgGgj4b!BJkTJ&)&9lGUp6l~ZbC|^3LC0w$0^Rd9j!oH|Xww{X26yt=j~k$JCVLCU zBh%t;L=Jj8m#>Gm9em-u5pGw|TC(iDcOq!-^jhFzgi(c3J*iOmwGOGWxz&}Gt1N8- z0)Z413hIrnyng#T@;g4xxIe&+x_6Gy)R(h68MbfzS$Cex_MapX32MI?w2l|u&ela$CtG_bNh3G^vxzYaWDW4ypB z+r4WGC~rS8RA>Y{FHSL7MfZ(UvV}uBI%uSHYa-Y#NFw zhVyGF&eE~HIxaLpqcJk9f6@v53aT-%VZnd~ncKw~mhi(8s@DjG_WHYpo1f1W^e2zC zi*8_36iFKVEi}ihOt0bM7|~XpU6IC0?M7zXvnnTab-fOc$BY+~q#M04NaJDIL)V_B zg==?Oi7zC%Bw1mgnyqgYi-tVxx_A5zAdm3n%O97lkxAd%R4Fp3SdS{GTD!4nUf`}N z1f#z!xszp>&JxK;UdD=%ETOg@#B1i@PdPzXqwr-QJ_ zw&UQ0C&sGSg|0I8;2CLhAbXtUt`=btjF{GXwj`qs9ym`^D?%gVv}g_MSk~gVWcr-* zAg)ahH#2|=WY1(FTs1#-c{my0P9kOhbt>Yt(6RTb7amHFt0{HrBV7rbP>C6q_4;`9 z`!M;4NX6w0aJh!LaOvDaeQbEfdMfBh-9g!Mdrynre2)xcKJ)g&&GF$8;#zaLW8uAp zkXoFqEeavq&TFhhVpH?i)qc=2`R}!(Kc3BH>$9>a41q_qrFyR)$A(2))VCmWMC1=W zY;3>%28Zy(xZ}idt}4mwrv`yGg14uemGY#I>?rIoUbi7_MoQwITxYvz91e=D{e)Ca zJT;wY)9>FbGrK*G$Wx(e*xI>(KCwrnj4X+TM7dNewja*F5R}(-FukFnQzETDd2-B) zl>i!BbBwrz=qDBiWIY#s!c+v4CsLo=t!m3KhRTFUYk4HAvbxs{ZJu_9wsCVH%q(6s zse-7WeP#+C5mWV)onlbxV!MwIWGk0l{AUZPmDh?MVWtB^En%{%fiYRRsM4_bkKNzQ zy#RZ%Vip-p+-8!+M0YHVTts$*q+&)W7X;>ir7f3Pj^3GXS!!Xr+FTs} z+VfZJsacUWN3E8yX#f5~-xN%#)Ks#$z1@5A8$X?jar^fbiYgGI)v8;)$WXw?+73p) zgWZl-wH(Dl5ZG!( zvdmk*FQa#V{2F}Dg*oPXinUsL+hN8_M?EqLs*!LZX~LNqA27ku^$Ey9SlPK{PGK#d zJeCn5f2o1}bqJSDx1mfz*-d4FeK+_^Q?ZvbIrAx7?j#DoTymkOU5Mwc`$9(y*=Gn;g~HXH39Et_rAJVRjxlBrH)dc2;)7N zZDhCFV@dbP0S7MimMEE-8Z}J}YYXO82cIyNn7G{?I}o($QY$j#7s{;hbUNBF+$K^x zJfN^iiN+n~|rt!nV*Za5=2m8C0zy1^jR}PsW<9L$fS=|_eqZImzXAC$VWhx6v zzB}5xQ{U2}Jr1eGUlUX`x>2^oWG_E&(yO#0#4l9%1AknI@yF}2JKte=L*(T9w6G=( zY6xurJ86d$e3uWB*R2o_lYG~80TMN5Pe^;#9Iw#ltPLx4koLx4koLx4koLx4koLx4koLx4koLx4koLx4koLx4koLx4koLx4ko ULx4koLx4koL*OeC5Z&tee?$Ah-T(jq literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1284-2778.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1284-2778.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9562f5863e2571870c497fc2f56ba46cfb5f3e98 GIT binary patch literal 31217 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1334-750.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1334-750.jpg new file mode 100644 index 0000000000000000000000000000000000000000..45435571f1a57592bd70a207768b3fbbe3e3ee3a GIT binary patch literal 11066 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 Wfh`8M7}#Q9i-G@d7}&Pa@&5p;zC>*R literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1620-2160.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1620-2160.jpg new file mode 100644 index 0000000000000000000000000000000000000000..746c271f628959d94c94006d2414b8f86a211c7a GIT binary patch literal 33174 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%0DLz$Eh#YZyC?mkBIudyq7v1?kHuBMK8!P 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1668-2388.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-1668-2388.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b8091c41ca26c1b53063695e91dcb0fcef32c57d GIT binary patch literal 36381 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 VA+SSWhrkYj9RmNW1O&Fa{tuy_HnIQ! literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2048-2732.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2048-2732.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7e47ec94c042bc33869b986b5166898202cfa50f GIT binary patch literal 48732 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 P>=M`|@PCWIcF+F-)3hYy literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2208-1242.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2208-1242.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c21c8db07e9fa161d3536eb4944db3925dfd1d82 GIT binary patch literal 24129 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2388-1668.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2388-1668.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9f90f31088abf35ab2bac646974d04a4d8f8a6e GIT binary patch literal 35268 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2436-1125.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2436-1125.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4e923040a40874ca097758814094107de8086f20 GIT binary patch literal 22383 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2556-1179.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2556-1179.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f93ff71681e1a1ee9b4367fd23e61a79359a89f6 GIT binary patch literal 24061 zcmeI4cT`i^zW9TvI3g%RQ)yQi0Y$_ZAV?tSNO3d-F@z{}1O*8MkP;v?eO?P7WDt-} zG)PMzh?E$Lpfo9giJ^uj9YP5$^z!1&o4LPv_pbHU`{Vb=8E0qpbuE&~n<2^|pHfAGM81HuOn3X2{+A}S&xDkmu= zc2r5>w~2LQkGG{OPjZ6|g=O@=b`qL1AH05mDJA zM`R(YimH(Rb=j!`h#lCQ{N1LYfFfXzn1G;|z)lT7mS^N1L4j}f{!#V|?cH}kP+$+Q z_v#Uz6M}mL_8sK8uvhTgMFM*S_wEzhFZBHh;3aWI^V|0yM!zm#NJyXm@dncCMa)M@ zr5`|-5e}Lbj^6J+eff{r!8xguL_?meV>}%^MSp1dcK%Hkuj_AOJR<~n^8e8*ut!W# z9BBUiiQAXX@2~)ec)EElVgLic+Xr{%s{UUo{NH>6d;)v|d;)v|d;)v|d;)v|d;)v| zd;)v|d;)v|d;)v|d;)v|d;)v||8@kFv0(%Na0hVZ=N&*${iangr}A+1_KM^DiPrRB zLSD&-(!+yYg#O&^9~2JNZZA4>stJP5lf~R$3Bq;T^RAp~&L_7}=)k~J{r#;>*QwVZ z#GKdKf+rxw`D2Wg*R3ZCmssl)AyXcc%*o(!#!~v1anJ5`Ot6ocu1bjzCJ@7B z-)kIbeg-t=n{0+)8YCkWo_~#lE!%9|UP?AF&8Iw(UF_q8YFAch^j!$h3`&V8T2o8V z4oSAR-LHCDEAmELO;6jqi3E0%N4rAu?Z~=vlL%mQyL+d+aDlWz`}dJK#%&aa<)Bvv z$tvM_vtCe=BjsLyA7Tc7!!*+i|9TuLaR=#raAXId4bBQJR!D1vr@p?G@%oHH1bBLc zl{phpWJ^UMeUOrdYl9o+7ys=7{l73+AvvbFG^G>e%qTqrT$kujVI`FVgaM_Lvn0Q?~T z=G84d9wXlz~#)B3s0-0ZFuh;XpS^l zq}XD|_W5Ew&JP4Cbeh3%wEhgzE6s9NQ6EZLJ9VW1o3tF&6*h_gaXT}cl0ZuAR|bbg zb!z7ZHi=wWiU0N3`TyCQU2%mZ_|$Ptm-W#L9XYHHA5(-_w-*$Z)1z zd+=AuyQL<(16aQXHQ4UO*OL1;))D4WxtoMKa{qwq6egd%c^ybb-*3+z4bie&>FV&k z!ft!F1CYn%D~Tfoc;eKj^4(5?4#1XH0Ra2r8w^9Lvs<5xim~JF717QV(|>(8JF~D5@FCn~rLb+=qHP=D zDNFhJPw~6zhk37Uq)z#*9P5Ohz(sG4-#{`v(Tni7S0}u~!Xz-p0Zb6FXkoI)UQ-%d zTt!JO4gjf}fc@2%+On>6o?G0;Bu8t_EIAYNEt>59=3}H~Dt*+2=Zs zFhgZJ?*JO_hiv7#1;%qw5>~~qc3VWdn4DL-PQ)!5WeT-8)vrnlD9Irt8~U1zk0!ci z*|b=>)H$pFEE<22C;0uEeqBn)kvfv2ONFhU3I}FFIsrF?H5(c)>R+!cN-cg&3;K3mpzt~Xu-_?~ zG%~@8OPRJRq4X{>^^x^%X5lDoMDCDlsqeA(aU4@yNppkK;bjgMYR<2w*2?u$kLkp5 zU`sZ|7AsVxj|Q=Y6?(B1dhu`DCS@)`Rk+I2QTaBReWgk`G6nk#FH3emJG$R%BHxUGCPjc4-YO(l{66S`d2XH+{k>Ij z;^1Peyn5DoQV|9^wtSDg91+`U+;s-EJ}<4^~c|!-)67hjdZ+L`7l~;l#LB9b4hE! z|Bz?x-(s0NS z2jxhx)EF{2u9u^_(wc*cFpm9^ktISYt|_Hd*sXPoYY+Kl(#7aR0@&lF-^=XdhPU4s z1HR|EdFc5eHP*}Elry-1PLECr1ZM%*fl^M<*Us(C8(|cq6z|oCMUev0i(FjLX;wcl z4x{rtlZ6$@1HtP*7ATMl49&#{=UNGQFGRtryKZ3p;n0bc*Pi8U|ImzcGo1KHv#C>= zy6)y2ywmo{8xwKX^}Q!_gW1Kw(1B^{>3(jh;|kKuqnltsWmb-qFsUQ20bsX3B>mS} z5Pao}7dP+6eknQGsW@&k*IcgHEKJbg@2l<{F?IpkFH5SU-JT{F{S_~}G3wi0=pj#+ za$`tXQ(*`rAa8BCUiE7c3?m4mK8}=`VS0_!n>Lm?Sxc+WjGlGvX}l=GoB4KW5o(+u z&Xnf$W~vdhStNAikmE;C1BBKuLsVyBH8y zRI^N`sEy3}vq zrBn^-7LIwc>LLF09ON;f!!F;Y0_T`X+ay9xL=z|cbwwo{Z(EIVn6{0jXd3j`%a8QH zHQW>F54(1v{sZPcorp(8{Uq`{UyECTE{%Ox6 z%q!$Wg;M=u#E>9Ub8&GQn3?NUwkaxaOm_OLoMX(4v_%r-CehQwtff$Hdd-Esx@&N0Jg6V=3O_~%bmO>OU#6olnRHwqW;Wd)aee|`M$ z&4RUiSms!MVxLM$i-BPPJB?uYqC8n#`P|kMB0VCZ5yEYI#BY0R=NuG5fI@vP&+r9zqlBxX+zxVRex#G;;f@IhN zfb_eOyZI=vT7h>~?(L~`>SL);k|x8`8R}>4_j-=qY3|Ilrdlj_CsL_NDjo=&va;jf zYno5QubpMM`*b%n7ehsZwM-}m+Hy9rjg0)cKIwMcbYq@s5KL&W-y6@xtn zBS987*Zar6nryxVxLX&kb=zO5(Mf%suePFEI4 zFlWNt3TV26%>n)8t~7B4dYQpYx9VXC77xLG`o!?5fOtHdTwQj8`brI*Ug8#BLS8(w zn}hX#*EeyXSozXrVI}J?1>jZVj4-t0J91miI`|6xxbUWLwIz5Q?b8Vr#!ivDWzL=T zN~~TAN@$`jV@$@+5oCO*&zIs47zL4Bfcj&icj}{5@$_*$(&Sc>J8TV|0hOAVqyE(O z$mDdXM+@^^dV^-`*fO;-Dh$Wo467@%}vBUq#_Z3mz{L!dh4H(~4Q zrRKKbeXXcEUg9y)9<*hxREINpzSM(PJ9cwTbFqNKDwCJ-t+lHsW&a-to-5Zh@ERj~ z+X>n$opyubgqb{g9~KH$$_#3&ABWy07V4=>CJs6_&&V`g%btJo zDAPllE9~2gAMD<`YX^_Y*Cn>Se~M}!3y~vWXF!`eX&42p?(vR-jGilBW*phFB!&z# z%cU6kHD9r!aH5Yw#l>G7Wb0T( zewch5@2r^CO|?N%z&oZ%e){IRSZzq)#hS&RH-CnhHj6hFUECuD6+@0W* zY?w1A`%)&&hA(^})P7JbHB(JePXE^b*1h#ECwh#es}DJ;X+xZm=%w0fF)TbJ5s;ed zQ(;lJnqgk+f96bf;c%;M^VL&Vk@E6>r&@r9pwkiwdrfRwqpj~BK6NaycRE-x>Fu3K}PMg4B9xKlq z#%IlY|BbUY&OnS^Di`>56lp5M(I#=S$@I1QYc~}gmCqL!oxS0+xs6GMKl@avFT1r; zj3Q771{vpxqtf>>M@uIu;psSZre7FdEwu+D9>%rZGXj@4r01=WYFpOB%lp!9cE=T! z-o-%U6Q0j;WG73fnRxGISi`ntW2qWpl1y#rh&h*#F#5cv{%;2^{x{2ZMRlREvEXr} z9o&?KxkZ&}xAiW%sBbQ>JiMu{M2L7uZ)%PTV}+vJgS>m7sz$5%_ysL^h*Z4R@E{lI zO)4u`Gl|IWdIHWQOqWmy)9<+ICM)!yDbazjV#N?(4z9PKrr75tY88`kRt6u)-{Dy4joAy>T415u^ z3!f%QPNx!|C1om+AQn`qdF6~ewq#c$G1paFEg?&KqS?m-^#pZQuHHuBcx_nQTlMWe zblUc_Z7pE;a(W@-t4kJ8db>r! z{7RJv`K9EN&X3t9utde%Mi8@;z`zU;;{d)pTk*=7FY zL}itYR*1?DfHLbnNX5SIp?{#mQ74mZKPT3w7PHfT1sShzZ!A;kF@`yBvFc7V(bV^uTgfDGPOxUT5e`4HAI|?}S_ID=S+Q!Pq zF&-*XGnV<*sgsmMmV+H^OUAgV)A#tf0@Z#}DVh>uDzV&5{K+asrnYhuFJA_prXRze z3Zo%4ThG6rt64USU<}1*tt&@_y_#&hJ%nJ$X>|ezY{(^d-+EaeTN+7m{&mkT+}fbZ zLqGPe(()!t$|gAPFbKKOPO+J#Rb(|0X)iYyI#E`PP71Em?1JR4}z&y9{{Iln}>q+OJ}`1@FZ8P?R)&Feo9 zk;?jr6D3!mJY5RCLc{R=NcIFl??fr}@A7CF^ zNz{@MtqlUs-Yiql9)*}~+lfACWqKCF0t!+i-M47d6mU<2{(Y#SkljdK>4navYrU&e zt6JTYJAlmm(2QbVhX9Q2l{Dl8x1qN3X$bk4wre3aj73t*a(NnK`2Zl;DgOO77FllN zinOi3QZN#T&hv+D!SKfR!o0!TJ<0LzaE4s8Tp{$pV@7olB%(UW$FZAL);iPC&3NJ0^fE%)ZB{6W!GqpvYKHD{qyeUoEvb7CrSO=~7n`d2e{&^UE6Xm%uW7Gt8 zVUc)C6t0ab?m1>6ibgn$al7&Z3j93c%|1YEb^Tg%d~U39)j>8REQo5C^y=OQ%i3!h`*6HWGB?7DUUVETbN7FDrL%Pns7~=7oD$rmyZ9oY180eT2wEhJ3A^4)8)WyGewQDNp zd?OVO+c4Rm=tMLzr#~rYf)vJEJ+A4P2`UH)O2ewDVNacsEirX%O!@A)*2rHD{Il!( zOJ^Tu^mnMU+lS0AV26p7hn8XWZuNI|0D}eMzx?B`T>kk^ehZ%fp8%f#p8%f#p8%f# np8%f#p8%f#p8%f#p8%f#p8%f#p8%f#p8%i0zXbuoo$mhx#W|F{ literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2688-1242.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2688-1242.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d3bf6affb3ceb42b74434fe40cfc630fc7ac4faf GIT binary patch literal 26889 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2778-1284.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2778-1284.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0a096ea1a3ef229d10111dcf4376af3007d16e86 GIT binary patch literal 28617 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2796-1290.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-2796-1290.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c8b27ef16e11d67c7c5252b6521ff5738ca131e5 GIT binary patch literal 28780 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 V2nYxW2nYxW2nc-E1a@up{1;VUW%B?4 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-640-1136.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-640-1136.jpg new file mode 100644 index 0000000000000000000000000000000000000000..79827d210235f5248af23b9f820256188cfd3f92 GIT binary patch literal 9683 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-750-1334.jpg b/apps/erpnext/src/hrms/hrms/public/manifest/apple-splash-750-1334.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cbbca41f9396d9c489d09f2340f459144b41c781 GIT binary patch literal 12191 zcmeHNd010Pw!dJjxG^G|vZ<)3pkQQE31GKCTmlg=L_xyH7Fi<%i0t;z+Cl`LB3lAM zp(T(&kToQ1F6?V#2z!XK6G$LHkewI0-*or9_s#p-nLpn9!*lOVovL&0sZ+l?->s_i zWutrJBe3_X*%dQDObh_TL>I6zDAs-D(j|xMRxq|{|SlgE_7~M2LR^jf1>lhHSchC!8nN&W<<|XUs2~GXJtgZ z4C+_@#3t|fD-Yh}v3~dbL^{_udEXmWmqfg?h(Ce)1Mm0;-szt2rv4L=4%o}nf3vSm z+Vpt0i#Oa_R7!{*B>)3h0TAH3&GC!sB0{GFz&RlRZ26Dh+Z>Ytfc6jo_V@nYcJu`R z{N)D#C~5n>?RQM>-SNHii@9$^zv8a005D4efIYVWK>B9@*lG8RO!V_ld^;o(DT(|- zi!K!43Ag}v4UArXr zNGk2!t7LFO^@PC})5aS>N@A;?IDd<9#zxPbHZfEoBS=k@ZHQOk+lP&c;B)a^S{$C)hD} zC>R#C)H4^XwKet$ZP1q0gIzE%nwpe$qcLaEsmQ_3Iml_oEydoVt5uWaQEqi`cS-D| z$9mq|w)ch^%e|i|Gj=sL0(k#Ptw#iiuz1?k`1_eIH>2W;ancOx~ zv;L!{OEd2Ib6s10U}_eKEq4;gA=Ut>=r-B&Nj%fE@AGHJ0+pO4xla zxiop9TvN?FC(6j5JeVcaKJnsTnh$aPce^(LC+%R~2B56&=6ml)^dV)WuCbH@Fu zrVQNATWlWu!Se2Idh$8_!S!P+37Qby04^TYk$ksYZOqABuh_#f(Sz`=UCO+E4g;f9 zY?q}c_G-E;RQjc2&AU!5-rkM(=Etf>4pWJXM4Pu`<(@fDPDS~G&z>dx!RbksH9z{VN5mjQtIRpVuFavEyo{ z*Y>oP9jZNhzhVP;N&oCD2;KlLVfgi+|Nhc$r{g%zvSM1me;JSX6EqlvVF0d#i`PicBIDDsP$=dqzsEix z^+o$>7ihIZMtv33520+xY#YPOqVh`L#~Fsw4uSra0Qe1FC_4H>*XY!GY?d`BK6B`H z@)A-~H4o}rA|AZg-tKR!8XYWTd>m4@6^BK|LIT$B3n^=MCLKD^G_kZ;I6V!AFx0KP z4ZFJRKR3T>ZoRMkcAv~Zp@X5WUqIcBg`&1 q|1Hni~$mCmUcvsULtyAY33eRa0? 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 literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/favicon-196.png b/apps/erpnext/src/hrms/hrms/public/manifest/favicon-196.png new file mode 100644 index 0000000000000000000000000000000000000000..d03a58f40734dcf4b1825ab616ccfbe5aa057c7d GIT binary patch literal 3955 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 N@QRs!xvpdM{{Z?;Njd-k literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/frappe-hr-logo.svg b/apps/erpnext/src/hrms/hrms/public/manifest/frappe-hr-logo.svg new file mode 100644 index 000000000..0ba340881 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/manifest/frappe-hr-logo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/public/manifest/manifest-icon-192.maskable.png b/apps/erpnext/src/hrms/hrms/public/manifest/manifest-icon-192.maskable.png new file mode 100644 index 0000000000000000000000000000000000000000..fdbcdea1abef79760db6be6b95e1850c0790240e GIT binary patch literal 3707 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 span { + width: 50%; + height: 100%; + overflow: hidden; + position: absolute; + top: 0; + z-index: 1; +} + +.circular-progress .progress-left { + left: 0; +} + +.circular-progress .progress-bar { + width: 100%; + height: 100%; + background: none; + border-width: 6px; + border-style: solid; + position: absolute; + top: 0; +} + +.circular-progress .progress-left .progress-bar { + left: 100%; + border-top-right-radius: 80px; + border-bottom-right-radius: 80px; + border-left: 0; + -webkit-transform-origin: center left; + transform-origin: center left; +} + +.circular-progress .progress-right { + right: 0; +} + +.circular-progress .progress-right .progress-bar { + left: -100%; + border-top-left-radius: 80px; + border-bottom-left-radius: 80px; + border-right: 0; + -webkit-transform-origin: center right; + transform-origin: center right; + animation: loading-1 0.8s linear forwards; +} + +.circular-progress .progress-value { + width: 100%; + height: 100%; + font-size: 15px; + font-weight: bold; + text-align: center; + position: absolute; +} + +.circular-progress .progress-left .progress-bar { + animation: loading-2 0.5s linear forwards 0.8s; +} + +@keyframes loading-1 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(var(--deg-right)); + transform: rotate(var(--deg-right)); + } +} + +@keyframes loading-2 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(var(--deg-left)); + transform: rotate(var(--deg-left)); + } +} diff --git a/apps/erpnext/src/hrms/hrms/public/scss/feedback.scss b/apps/erpnext/src/hrms/hrms/public/scss/feedback.scss new file mode 100644 index 000000000..791716113 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/scss/feedback.scss @@ -0,0 +1,62 @@ +.feedback-section { + .no-feedback { + min-height: 100px; + } + + .new-feedback-btn { + gap: 5px; + } +} + +.feedback-summary-section { + .rating-summary-numbers { + display: flex; + flex-direction: column; + align-items: center; + border-right: 1px solid var(--gray-100); + + .average-rating { + font-size: 2rem; + } + + .feedback-count { + margin-top: -0.5rem; + } + } + + .rating-progress-bar-section { + padding-bottom: 2rem; + + .rating-bar-title { + margin-left: -15px; + } + + .rating-progress-bar { + margin-bottom: 4px; + height: 7px; + margin-top: 6px; + } + + .progress-bar-cosmetic { + background-color: var(--gray-600); + border-radius: var(--border-radius); + } + } + + .ratings-pill { + background-color: var(--gray-100); + padding: 0.5rem 1rem; + border-radius: 66px; + } +} + +.feedback-history { + .feedback-content { + border-radius: var(--border-radius); + border: 1px solid var(--border-color); + } + + .feedback-content:last-child { + border-bottom: 1px solid var(--border-color); + } +} diff --git a/apps/erpnext/src/hrms/hrms/public/scss/hierarchy_chart.scss b/apps/erpnext/src/hrms/hrms/public/scss/hierarchy_chart.scss new file mode 100644 index 000000000..5667533d0 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/scss/hierarchy_chart.scss @@ -0,0 +1,325 @@ +.node-card { + background: white; + border-radius: 0.5rem; + padding: 0.75rem; + margin-left: 3rem; + width: 18rem; + overflow: hidden; + + .btn-edit-node { + display: none; + } + + .edit-chart-node { + display: none; + } + + .node-edit-icon { + display: none; + } +} + +.node-card.exported { + box-shadow: none; +} + +.node-image { + width: 3rem; + height: 3rem; +} + +.node-name { + font-size: var(--text-lg); + color: var(--text-color); + line-height: 1.72; +} + +.node-title { + font-size: 0.75rem; + line-height: 1.35; +} + +.node-info { + width: 12.7rem; +} + +.node-connections { + font-size: 0.75rem; + line-height: 1.35; +} + +.node-card.active { + background: var(--gray-100); + border: 1px solid var(--gray-600); + box-shadow: var(--shadow-md); + border-radius: 0.5rem; + padding: 0.75rem; + width: 18rem; + + .btn-edit-node { + display: flex; + background: var(--gray-300); + color: var(--gray-800); + font-size: 0.75rem; + align-items: center; + justify-content: center; + box-shadow: var(--shadow-sm); + gap: 6px; + } + + .edit-chart-node { + display: block; + } + + .node-edit-icon { + display: block; + } + + .node-edit-icon > .icon { + margin-top: -3px; + } + + .node-name { + align-items: center; + justify-content: space-between; + margin-bottom: 2px; + width: 12.2rem; + } +} + +.node-card.active-path { + background: var(--gray-100); + border: 1px solid var(--gray-300); + box-shadow: var(--shadow-sm); + border-radius: 0.5rem; + padding: 0.75rem; + width: 15rem; + height: 3rem; + + .btn-edit-node { + display: none !important; + } + + .edit-chart-node { + display: none; + } + + .node-edit-icon { + display: none; + } + + .node-info { + display: none; + } + + .node-title { + display: none; + } + + .node-connections { + display: none; + } + + .node-name { + font-size: 0.85rem; + line-height: 1.35; + } + + .node-image { + width: 1.5rem; + height: 1.5rem; + } + + .node-meta { + align-items: baseline; + } +} + +.node-card.collapsed { + background: white; + border-radius: 0.5rem; + padding: 0.75rem; + width: 15rem; + height: 3rem; + + .btn-edit-node { + display: none !important; + } + + .edit-chart-node { + display: none; + } + + .node-edit-icon { + display: none; + } + + .node-info { + display: none; + } + + .node-title { + display: none; + } + + .node-connections { + display: none; + } + + .node-name { + font-size: 0.85rem; + line-height: 1.35; + } + + .node-image { + width: 1.5rem; + height: 1.5rem; + } + + .node-meta { + align-items: baseline; + } +} + +// horizontal hierarchy tree view +#hierarchy-chart-wrapper { + padding-top: 30px; + + #arrows { + margin-top: -80px; + } +} + +.hierarchy { + display: flex; +} + +.hierarchy li { + list-style-type: none; +} + +.child-node { + margin: 0px 0px 16px 0px; +} + +.hierarchy, +.hierarchy-mobile { + .level { + margin-right: 8px; + align-items: flex-start; + flex-direction: column; + } +} + +#arrows { + position: absolute; + overflow: visible; +} + +.active-connector { + stroke: var(--gray-600); +} + +.collapsed-connector { + stroke: var(--gray-400); +} + +// mobile + +.hierarchy-mobile { + display: flex; + flex-direction: column; + align-items: center; + padding-top: 10px; + padding-left: 0px; +} + +.hierarchy-mobile li { + list-style-type: none; + display: flex; + flex-direction: column; + align-items: flex-end; +} + +.mobile-node { + margin-left: 0; +} + +.mobile-node.active-path { + width: 12.25rem; +} + +.active-child { + width: 15.5rem; +} + +.mobile-node .node-connections { + max-width: 80px; +} + +.hierarchy-mobile .node-children { + margin-top: 16px; +} + +.root-level .node-card { + margin: 0 0 16px; +} + +// node group + +.collapsed-level { + margin-bottom: 16px; + width: 18rem; +} + +.node-group { + background: white; + border: 1px solid var(--border-color); + box-shadow: var(--shadow-sm); + border-radius: 0.5rem; + padding: 0.75rem; + width: 18rem; + height: 3rem; + overflow: hidden; + align-items: center; +} + +.node-group .avatar-group { + margin-left: 0px; +} + +.node-group .avatar-extra-count { + background-color: var(--gray-100); + color: var(--gray-500); +} + +.node-group .avatar-frame { + width: 1.5rem; + height: 1.5rem; +} + +.node-group.collapsed { + width: 5rem; + margin-left: 12px; +} + +.sibling-group { + display: flex; + flex-direction: column; + align-items: center; +} + +[data-theme="dark"] { + .node-card { + background-color: var(--gray-800); + color: var(--text-on-gray); + + .avatar-frame { + background-color: var(--gray-700); + } + + .node-edit-icon > .icon { + fill: var(--gray-700); + } + } +} diff --git a/apps/erpnext/src/hrms/hrms/public/scss/hrms.bundle.scss b/apps/erpnext/src/hrms/hrms/public/scss/hrms.bundle.scss new file mode 100644 index 000000000..73a869896 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/public/scss/hrms.bundle.scss @@ -0,0 +1,3 @@ +@import "./feedback"; +@import "./circular_progress"; +@import "./hierarchy_chart"; diff --git a/apps/erpnext/src/hrms/hrms/regional/india/data/salary_components.json b/apps/erpnext/src/hrms/hrms/regional/india/data/salary_components.json new file mode 100644 index 000000000..3605df2f9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/regional/india/data/salary_components.json @@ -0,0 +1,44 @@ +[ + { + "doctype": "Salary Component", + "salary_component": "Professional Tax", + "description": "Professional Tax", + "type": "Deduction", + "exempted_from_income_tax": 1 + }, + { + "doctype": "Salary Component", + "salary_component": "Provident Fund", + "description": "Provident fund", + "type": "Deduction", + "is_tax_applicable": 1 + }, + { + "doctype": "Salary Component", + "salary_component": "House Rent Allowance", + "description": "House Rent Allowance", + "type": "Earning", + "is_tax_applicable": 1 + }, + { + "doctype": "Salary Component", + "salary_component": "Basic", + "description": "Basic", + "type": "Earning", + "is_tax_applicable": 1 + }, + { + "doctype": "Salary Component", + "salary_component": "Arrear", + "description": "Arrear", + "type": "Earning", + "is_tax_applicable": 1 + }, + { + "doctype": "Salary Component", + "salary_component": "Leave Encashment", + "description": "Leave Encashment", + "type": "Earning", + "is_tax_applicable": 1 + } +] \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/regional/india/setup.py b/apps/erpnext/src/hrms/hrms/regional/india/setup.py new file mode 100644 index 000000000..d63eae835 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/regional/india/setup.py @@ -0,0 +1,285 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + + +import frappe +from frappe.custom.doctype.custom_field.custom_field import create_custom_fields + +from hrms.setup import delete_custom_fields + + +def setup(): + make_custom_fields() + add_custom_roles_for_reports() + create_gratuity_rule_for_india() + + +def uninstall(): + custom_fields = get_custom_fields() + delete_custom_fields(custom_fields) + + +def make_custom_fields(update=True): + custom_fields = get_custom_fields() + create_custom_fields(custom_fields, update=update) + + +def get_custom_fields(): + return { + "Salary Component": [ + { + "fieldname": "component_type", + "label": "Component Type", + "fieldtype": "Select", + "insert_after": "description", + "options": ( + "\nProvident Fund\nAdditional Provident Fund\nProvident Fund Loan\nProfessional Tax" + ), + "depends_on": 'eval:doc.type == "Deduction"', + "translatable": 0, + }, + ], + "Employee": [ + { + "fieldname": "bank_cb", + "fieldtype": "Column Break", + "insert_after": "bank_ac_no", + }, + { + "fieldname": "ifsc_code", + "label": "IFSC Code", + "fieldtype": "Data", + "insert_after": "bank_cb", + "print_hide": 1, + "depends_on": 'eval:doc.salary_mode == "Bank"', + "translatable": 0, + }, + { + "fieldname": "pan_number", + "label": "PAN Number", + "fieldtype": "Data", + "insert_after": "payroll_cost_center", + "print_hide": 1, + "translatable": 0, + }, + { + "fieldname": "micr_code", + "label": "MICR Code", + "fieldtype": "Data", + "insert_after": "ifsc_code", + "print_hide": 1, + "depends_on": 'eval:doc.salary_mode == "Bank"', + "translatable": 0, + }, + { + "fieldname": "provident_fund_account", + "label": "Provident Fund Account", + "fieldtype": "Data", + "insert_after": "pan_number", + "translatable": 0, + }, + ], + "Company": [ + { + "fieldname": "hra_section", + "label": "HRA Settings", + "fieldtype": "Section Break", + "insert_after": "default_payroll_payable_account", + "collapsible": 1, + }, + { + "fieldname": "basic_component", + "label": "Basic Component", + "fieldtype": "Link", + "options": "Salary Component", + "insert_after": "hra_section", + }, + { + "fieldname": "hra_component", + "label": "HRA Component", + "fieldtype": "Link", + "options": "Salary Component", + "insert_after": "basic_component", + }, + { + "fieldname": "hra_column_break", + "fieldtype": "Column Break", + "insert_after": "hra_component", + }, + { + "fieldname": "arrear_component", + "label": "Arrear Component", + "fieldtype": "Link", + "options": "Salary Component", + "insert_after": "hra_column_break", + }, + ], + "Employee Tax Exemption Declaration": [ + { + "fieldname": "hra_section", + "label": "HRA Exemption", + "fieldtype": "Section Break", + "insert_after": "declarations", + }, + { + "fieldname": "monthly_house_rent", + "label": "Monthly House Rent", + "fieldtype": "Currency", + "insert_after": "hra_section", + }, + { + "fieldname": "rented_in_metro_city", + "label": "Rented in Metro City", + "fieldtype": "Check", + "insert_after": "monthly_house_rent", + "depends_on": "monthly_house_rent", + }, + { + "fieldname": "salary_structure_hra", + "label": "HRA as per Salary Structure", + "fieldtype": "Currency", + "insert_after": "rented_in_metro_city", + "read_only": 1, + "depends_on": "monthly_house_rent", + }, + { + "fieldname": "hra_column_break", + "fieldtype": "Column Break", + "insert_after": "salary_structure_hra", + "depends_on": "monthly_house_rent", + }, + { + "fieldname": "annual_hra_exemption", + "label": "Annual HRA Exemption", + "fieldtype": "Currency", + "insert_after": "hra_column_break", + "read_only": 1, + "depends_on": "monthly_house_rent", + }, + { + "fieldname": "monthly_hra_exemption", + "label": "Monthly HRA Exemption", + "fieldtype": "Currency", + "insert_after": "annual_hra_exemption", + "read_only": 1, + "depends_on": "monthly_house_rent", + }, + ], + "Employee Tax Exemption Proof Submission": [ + { + "fieldname": "hra_section", + "label": "HRA Exemption", + "fieldtype": "Section Break", + "insert_after": "tax_exemption_proofs", + }, + { + "fieldname": "house_rent_payment_amount", + "label": "House Rent Payment Amount", + "fieldtype": "Currency", + "insert_after": "hra_section", + }, + { + "fieldname": "rented_in_metro_city", + "label": "Rented in Metro City", + "fieldtype": "Check", + "insert_after": "house_rent_payment_amount", + "depends_on": "house_rent_payment_amount", + }, + { + "fieldname": "rented_from_date", + "label": "Rented From Date", + "fieldtype": "Date", + "insert_after": "rented_in_metro_city", + "depends_on": "house_rent_payment_amount", + }, + { + "fieldname": "rented_to_date", + "label": "Rented To Date", + "fieldtype": "Date", + "insert_after": "rented_from_date", + "depends_on": "house_rent_payment_amount", + }, + { + "fieldname": "hra_column_break", + "fieldtype": "Column Break", + "insert_after": "rented_to_date", + "depends_on": "house_rent_payment_amount", + }, + { + "fieldname": "monthly_house_rent", + "label": "Monthly House Rent", + "fieldtype": "Currency", + "insert_after": "hra_column_break", + "read_only": 1, + "depends_on": "house_rent_payment_amount", + }, + { + "fieldname": "monthly_hra_exemption", + "label": "Monthly Eligible Amount", + "fieldtype": "Currency", + "insert_after": "monthly_house_rent", + "read_only": 1, + "depends_on": "house_rent_payment_amount", + }, + { + "fieldname": "total_eligible_hra_exemption", + "label": "Total Eligible HRA Exemption", + "fieldtype": "Currency", + "insert_after": "monthly_hra_exemption", + "read_only": 1, + "depends_on": "house_rent_payment_amount", + }, + ], + "Income Tax Slab": [ + { + "fieldname": "marginal_relief_limit", + "label": "Marginal Relief Threshold Limit", + "fieldtype": "Currency", + "description": "Maximum taxable income for which marginal relief can be applied. Beyond this limit, normal tax slabs are used for tax calculation.", + "insert_after": "column_break_pdmy", + "depends_on": "eval:doc.tax_relief_limit > 0 && doc.currency == 'INR'", + } + ], + } + + +def add_custom_roles_for_reports(): + for report_name in ( + "Professional Tax Deductions", + "Provident Fund Deductions", + "Income Tax Deductions", + ): + if not frappe.db.get_value("Custom Role", dict(report=report_name)): + doc = frappe.new_doc("Custom Role") + doc.update( + dict( + report=report_name, + roles=[dict(role="HR User"), dict(role="HR Manager"), dict(role="Employee")], + ) + ).insert(ignore_permissions=True) + + +def create_gratuity_rule_for_india(): + if not frappe.db.exists("DocType", "Gratuity Rule"): + return + + if frappe.db.exists("Gratuity Rule", "Indian Standard Gratuity Rule"): + return + + rule = frappe.new_doc("Gratuity Rule") + rule.update( + { + "name": "Indian Standard Gratuity Rule", + "calculate_gratuity_amount_based_on": "Current Slab", + "work_experience_calculation_method": "Round Off Work Experience", + "minimum_year_for_gratuity": 5, + "gratuity_rule_slabs": [ + { + "from_year": 0, + "to_year": 0, + "fraction_of_applicable_earnings": 15 / 26, + } + ], + } + ) + rule.insert(ignore_permissions=True, ignore_mandatory=True) diff --git a/apps/erpnext/src/hrms/hrms/regional/india/utils.py b/apps/erpnext/src/hrms/hrms/regional/india/utils.py new file mode 100644 index 000000000..543fd96bf --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/regional/india/utils.py @@ -0,0 +1,223 @@ +import math + +import frappe +from frappe import _ +from frappe.utils import add_days, date_diff, flt, get_link_to_form, month_diff + +from hrms.hr.utils import get_salary_assignments +from hrms.payroll.doctype.salary_structure.salary_structure import make_salary_slip + + +def calculate_annual_eligible_hra_exemption(doc): + basic_component, hra_component = frappe.db.get_value( + "Company", doc.company, ["basic_component", "hra_component"] + ) + + if not (basic_component and hra_component): + frappe.throw( + _("Please set Basic and HRA component in Company {0}").format( + get_link_to_form("Company", doc.company) + ) + ) + + annual_exemption = monthly_exemption = hra_amount = basic_amount = 0 + + if hra_component and basic_component: + assignments = get_salary_assignments(doc.employee, doc.payroll_period) + + if not assignments and doc.docstatus == 1: + frappe.throw(_("Salary Structure must be submitted before submission of {0}").format(doc.doctype)) + + period_start_date = frappe.db.get_value("Payroll Period", doc.payroll_period, "start_date") + + assignment_dates = [] + for assignment in assignments: + # if assignment is before payroll period, use period start date to get the correct days + assignment.from_date = max(assignment.from_date, period_start_date) + assignment_dates.append(assignment.from_date) + + for idx, assignment in enumerate(assignments): + if has_hra_component(assignment.salary_structure, hra_component): + basic_salary_amt, hra_salary_amt = get_component_amt_from_salary_slip( + doc.employee, + assignment.salary_structure, + basic_component, + hra_component, + assignment.from_date, + ) + to_date = get_end_date_for_assignment(assignment_dates, idx, doc.payroll_period) + + frequency = frappe.get_value( + "Salary Structure", assignment.salary_structure, "payroll_frequency" + ) + basic_amount += get_component_pay(frequency, basic_salary_amt, assignment.from_date, to_date) + hra_amount += get_component_pay(frequency, hra_salary_amt, assignment.from_date, to_date) + + if hra_amount: + if doc.monthly_house_rent: + annual_exemption = calculate_hra_exemption( + assignment.salary_structure, + basic_amount, + hra_amount, + doc.monthly_house_rent, + doc.rented_in_metro_city, + ) + if annual_exemption > 0: + monthly_exemption = annual_exemption / 12 + else: + annual_exemption = 0 + + return frappe._dict( + { + "hra_amount": hra_amount, + "annual_exemption": annual_exemption, + "monthly_exemption": monthly_exemption, + } + ) + + +def has_hra_component(salary_structure, hra_component): + return frappe.db.exists( + "Salary Detail", + { + "parent": salary_structure, + "salary_component": hra_component, + "parentfield": "earnings", + "parenttype": "Salary Structure", + }, + ) + + +def get_end_date_for_assignment(assignment_dates, idx, payroll_period): + end_date = None + + try: + end_date = assignment_dates[idx + 1] + end_date = add_days(end_date, -1) + except IndexError: + pass + + if not end_date: + end_date = frappe.db.get_value("Payroll Period", payroll_period, "end_date") + + return end_date + + +def get_component_amt_from_salary_slip(employee, salary_structure, basic_component, hra_component, from_date): + salary_slip = make_salary_slip( + salary_structure, + employee=employee, + for_preview=1, + ignore_permissions=True, + posting_date=from_date, + ) + + basic_amt, hra_amt = 0, 0 + for earning in salary_slip.earnings: + if earning.salary_component == basic_component: + basic_amt = earning.amount + elif earning.salary_component == hra_component: + hra_amt = earning.amount + if basic_amt and hra_amt: + return basic_amt, hra_amt + return basic_amt, hra_amt + + +def calculate_hra_exemption( + salary_structure, annual_basic, annual_hra, monthly_house_rent, rented_in_metro_city +): + # TODO make this configurable + exemptions = [] + # case 1: The actual amount allotted by the employer as the HRA. + exemptions.append(annual_hra) + + # case 2: Actual rent paid less 10% of the basic salary. + actual_annual_rent = monthly_house_rent * 12 + exemptions.append(flt(actual_annual_rent) - flt(annual_basic * 0.1)) + + # case 3: 50% of the basic salary, if the employee is staying in a metro city (40% for a non-metro city). + exemptions.append(annual_basic * 0.5 if rented_in_metro_city else annual_basic * 0.4) + + # return minimum of 3 cases + return min(exemptions) + + +def get_component_pay(frequency, amount, from_date, to_date): + days = date_diff(to_date, from_date) + 1 + + if frequency == "Daily": + return amount * days + elif frequency == "Weekly": + return amount * math.floor(days / 7) + elif frequency == "Fortnightly": + return amount * math.floor(days / 14) + elif frequency == "Monthly": + return amount * month_diff(to_date, from_date) + elif frequency == "Bimonthly": + return amount * (month_diff(to_date, from_date) / 2) + + +def validate_house_rent_dates(doc): + if not doc.rented_to_date or not doc.rented_from_date: + frappe.throw(_("House rented dates required for exemption calculation")) + + if date_diff(doc.rented_to_date, doc.rented_from_date) < 14: + frappe.throw(_("House rented dates should be atleast 15 days apart")) + + proofs = frappe.db.sql( + """ + select name + from `tabEmployee Tax Exemption Proof Submission` + where + docstatus=1 and employee=%(employee)s and payroll_period=%(payroll_period)s + and (rented_from_date between %(from_date)s and %(to_date)s or rented_to_date between %(from_date)s and %(to_date)s) + """, + { + "employee": doc.employee, + "payroll_period": doc.payroll_period, + "from_date": doc.rented_from_date, + "to_date": doc.rented_to_date, + }, + ) + + if proofs: + frappe.throw(_("House rent paid days overlapping with {0}").format(proofs[0][0])) + + +def calculate_hra_exemption_for_period(doc): + monthly_rent, eligible_hra = 0, 0 + if doc.house_rent_payment_amount: + validate_house_rent_dates(doc) + # TODO receive rented months or validate dates are start and end of months? + # Calc monthly rent, round to nearest .5 + factor = flt(date_diff(doc.rented_to_date, doc.rented_from_date) + 1) / 30 + factor = round(factor * 2) / 2 + monthly_rent = doc.house_rent_payment_amount / factor + # update field used by calculate_annual_eligible_hra_exemption + doc.monthly_house_rent = monthly_rent + exemptions = calculate_annual_eligible_hra_exemption(doc) + + if exemptions["monthly_exemption"]: + # calc total exemption amount + eligible_hra = exemptions["monthly_exemption"] * factor + exemptions["monthly_house_rent"] = monthly_rent + exemptions["total_eligible_hra_exemption"] = eligible_hra + return exemptions + + +def calculate_tax_with_marginal_relief(tax_slab, tax_amount, annual_taxable_earning): + """ + Returns the tax payable after applying marginal relief (if applicable). + If taxable income is between tax relief limit and marginal relief limit, and tax payable on income is more than income excess over tax relief, then tax payable is reduced to just the excess income. + """ + if tax_slab.get("marginal_relief_limit"): + tax_relief_limit = tax_slab.tax_relief_limit or 0 + marginal_relief_limit = tax_slab.marginal_relief_limit or 0 + + if annual_taxable_earning > tax_relief_limit and annual_taxable_earning < marginal_relief_limit: + income_excess_over_tax_relief = annual_taxable_earning - tax_slab.tax_relief_limit + + if income_excess_over_tax_relief < tax_amount: + tax_amount = income_excess_over_tax_relief # marginal relief applies + + return tax_amount diff --git a/apps/erpnext/src/hrms/hrms/regional/united_arab_emirates/setup.py b/apps/erpnext/src/hrms/hrms/regional/united_arab_emirates/setup.py new file mode 100644 index 000000000..2627cc305 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/regional/united_arab_emirates/setup.py @@ -0,0 +1,57 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +import frappe + + +def setup(): + create_gratuity_rules_for_uae() + + +def create_gratuity_rules_for_uae(): + docs = get_gratuity_rules() + for d in docs: + doc = frappe.get_doc(d) + doc.insert(ignore_if_duplicate=True, ignore_permissions=True, ignore_mandatory=True) + + +def get_gratuity_rules(): + return [ + { + "doctype": "Gratuity Rule", + "name": "Rule Under Limited Contract (UAE)", + "calculate_gratuity_amount_based_on": "Sum of all previous slabs", + "work_experience_calculation_method": "Take Exact Completed Years", + "minimum_year_for_gratuity": 1, + "gratuity_rule_slabs": [ + {"from_year": 0, "to_year": 1, "fraction_of_applicable_earnings": 0}, + {"from_year": 1, "to_year": 5, "fraction_of_applicable_earnings": 21 / 30}, + {"from_year": 5, "to_year": 0, "fraction_of_applicable_earnings": 1}, + ], + }, + { + "doctype": "Gratuity Rule", + "name": "Rule Under Unlimited Contract on termination (UAE)", + "calculate_gratuity_amount_based_on": "Current Slab", + "work_experience_calculation_method": "Take Exact Completed Years", + "minimum_year_for_gratuity": 1, + "gratuity_rule_slabs": [ + {"from_year": 0, "to_year": 1, "fraction_of_applicable_earnings": 0}, + {"from_year": 1, "to_year": 5, "fraction_of_applicable_earnings": 21 / 30}, + {"from_year": 5, "to_year": 0, "fraction_of_applicable_earnings": 1}, + ], + }, + { + "doctype": "Gratuity Rule", + "name": "Rule Under Unlimited Contract on resignation (UAE)", + "calculate_gratuity_amount_based_on": "Current Slab", + "work_experience_calculation_method": "Take Exact Completed Years", + "minimum_year_for_gratuity": 1, + "gratuity_rule_slabs": [ + {"from_year": 0, "to_year": 1, "fraction_of_applicable_earnings": 0}, + {"from_year": 1, "to_year": 3, "fraction_of_applicable_earnings": 1 / 3 * 21 / 30}, + {"from_year": 3, "to_year": 5, "fraction_of_applicable_earnings": 2 / 3 * 21 / 30}, + {"from_year": 5, "to_year": 0, "fraction_of_applicable_earnings": 21 / 30}, + ], + }, + ] diff --git a/apps/erpnext/src/hrms/hrms/setup.py b/apps/erpnext/src/hrms/hrms/setup.py new file mode 100644 index 000000000..9d07252d2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/setup.py @@ -0,0 +1,861 @@ +import os + +import frappe +from frappe.custom.doctype.custom_field.custom_field import create_custom_fields +from frappe.desk.page.setup_wizard.install_fixtures import ( + _, # NOTE: this is not the real translation function +) +from frappe.desk.page.setup_wizard.setup_wizard import make_records +from frappe.installer import update_site_config + +from hrms.overrides.company import delete_company_fixtures + + +def after_install(): + create_custom_fields(get_custom_fields(), ignore_validate=True) + create_salary_slip_loan_fields() + make_fixtures() + setup_notifications() + update_hr_defaults() + add_non_standard_user_types() + set_single_defaults() + create_default_role_profiles() + run_post_install_patches() + + +def before_uninstall(): + delete_custom_fields(get_custom_fields()) + delete_custom_fields(get_salary_slip_loan_fields()) + delete_company_fixtures() + + +def after_app_install(app_name): + """Set up loan integration with payroll""" + if app_name != "lending": + return + + print("Updating payroll setup for loans") + create_custom_fields(get_salary_slip_loan_fields(), ignore_validate=True) + add_lending_docperms_to_ess() + + +def before_app_uninstall(app_name): + """Clean up loan integration with payroll""" + if app_name != "lending": + return + + print("Updating payroll setup for loans") + delete_custom_fields(get_salary_slip_loan_fields()) + remove_lending_docperms_from_ess() + + +def get_custom_fields(): + """HR specific custom fields that need to be added to the masters in ERPNext""" + return { + "Company": [ + { + "fieldname": "hr_and_payroll_tab", + "fieldtype": "Tab Break", + "label": _("HR & Payroll"), + "insert_after": "purchase_expense_contra_account", + }, + { + "fieldname": "hr_settings_section", + "fieldtype": "Section Break", + "label": _("HR & Payroll Settings"), + "insert_after": "hr_and_payroll_tab", + }, + { + "depends_on": "eval:!doc.__islocal", + "fieldname": "default_expense_claim_payable_account", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "label": _("Default Expense Claim Payable Account"), + "no_copy": 1, + "options": "Account", + "insert_after": "hr_settings_section", + }, + { + "fieldname": "default_employee_advance_account", + "fieldtype": "Link", + "label": _("Default Employee Advance Account"), + "no_copy": 1, + "options": "Account", + "insert_after": "default_expense_claim_payable_account", + }, + { + "fieldname": "column_break_10", + "fieldtype": "Column Break", + "insert_after": "default_employee_advance_account", + }, + { + "depends_on": "eval:!doc.__islocal", + "fieldname": "default_payroll_payable_account", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "label": _("Default Payroll Payable Account"), + "no_copy": 1, + "options": "Account", + "insert_after": "column_break_10", + }, + ], + "Department": [ + { + "fieldname": "section_break_4", + "fieldtype": "Section Break", + "insert_after": "disabled", + }, + { + "fieldname": "payroll_cost_center", + "fieldtype": "Link", + "label": _("Payroll Cost Center"), + "options": "Cost Center", + "insert_after": "section_break_4", + }, + { + "fieldname": "column_break_9", + "fieldtype": "Column Break", + "insert_after": "payroll_cost_center", + }, + { + "description": _("Days for which Holidays are blocked for this department."), + "fieldname": "leave_block_list", + "fieldtype": "Link", + "in_list_view": 1, + "label": _("Leave Block List"), + "options": "Leave Block List", + "insert_after": "column_break_9", + }, + { + "description": _("The first Approver in the list will be set as the default Approver."), + "fieldname": "approvers", + "fieldtype": "Section Break", + "label": _("Approvers"), + "insert_after": "leave_block_list", + }, + { + "fieldname": "shift_request_approver", + "fieldtype": "Table", + "label": _("Shift Request Approver"), + "options": "Department Approver", + "insert_after": "approvers", + }, + { + "fieldname": "leave_approvers", + "fieldtype": "Table", + "label": _("Leave Approver"), + "options": "Department Approver", + "insert_after": "shift_request_approver", + }, + { + "fieldname": "expense_approvers", + "fieldtype": "Table", + "label": _("Expense Approver"), + "options": "Department Approver", + "insert_after": "leave_approvers", + }, + ], + "Designation": [ + { + "fieldname": "appraisal_template", + "fieldtype": "Link", + "label": _("Appraisal Template"), + "options": "Appraisal Template", + "insert_after": "description", + "allow_in_quick_entry": 1, + }, + { + "fieldname": "required_skills_section", + "fieldtype": "Section Break", + "label": _("Required Skills"), + "insert_after": "appraisal_template", + }, + { + "fieldname": "skills", + "fieldtype": "Table", + "label": _("Skills"), + "options": "Designation Skill", + "insert_after": "required_skills_section", + }, + ], + "Employee": [ + { + "fieldname": "employment_type", + "fieldtype": "Link", + "ignore_user_permissions": 1, + "label": _("Employment Type"), + "options": "Employment Type", + "insert_after": "department", + }, + { + "fieldname": "job_applicant", + "fieldtype": "Link", + "label": _("Job Applicant"), + "options": "Job Applicant", + "insert_after": "employment_details", + }, + { + "fieldname": "grade", + "fieldtype": "Link", + "label": _("Grade"), + "options": "Employee Grade", + "insert_after": "branch", + }, + { + "fieldname": "default_shift", + "fieldtype": "Link", + "label": _("Default Shift"), + "options": "Shift Type", + "insert_after": "holiday_list", + }, + { + "collapsible": 1, + "fieldname": "health_insurance_section", + "fieldtype": "Section Break", + "label": _("Health Insurance"), + "insert_after": "health_details", + }, + { + "fieldname": "health_insurance_provider", + "fieldtype": "Link", + "label": _("Health Insurance Provider"), + "options": "Employee Health Insurance", + "insert_after": "health_insurance_section", + }, + { + "depends_on": "eval:doc.health_insurance_provider", + "fieldname": "health_insurance_no", + "fieldtype": "Data", + "label": _("Health Insurance No"), + "insert_after": "health_insurance_provider", + }, + { + "fieldname": "approvers_section", + "fieldtype": "Section Break", + "label": _("Approvers"), + "insert_after": "default_shift", + }, + { + "fieldname": "expense_approver", + "fieldtype": "Link", + "label": _("Expense Approver"), + "options": "User", + "insert_after": "approvers_section", + }, + { + "fieldname": "leave_approver", + "fieldtype": "Link", + "label": _("Leave Approver"), + "options": "User", + "insert_after": "expense_approver", + }, + { + "fieldname": "column_break_45", + "fieldtype": "Column Break", + "insert_after": "leave_approver", + }, + { + "fieldname": "shift_request_approver", + "fieldtype": "Link", + "label": _("Shift Request Approver"), + "options": "User", + "insert_after": "column_break_45", + }, + { + "fieldname": "employee_advance_account", + "fieldtype": "Link", + "label": _("Employee Advance Account"), + "options": "Account", + "insert_after": "salary_mode", + }, + { + "fieldname": "salary_cb", + "fieldtype": "Column Break", + "insert_after": "employee_advance_account", + }, + { + "fetch_from": "department.payroll_cost_center", + "fetch_if_empty": 1, + "fieldname": "payroll_cost_center", + "fieldtype": "Link", + "label": _("Payroll Cost Center"), + "options": "Cost Center", + "insert_after": "salary_cb", + }, + ], + "Project": [ + { + "fieldname": "total_expense_claim", + "fieldtype": "Currency", + "label": _("Total Expense Claim (via Expense Claims)"), + "read_only": 1, + "insert_after": "total_costing_amount", + }, + ], + "Task": [ + { + "fieldname": "total_expense_claim", + "fieldtype": "Currency", + "label": _("Total Expense Claim (via Expense Claim)"), + "options": "Company:company:default_currency", + "read_only": 1, + "insert_after": "total_costing_amount", + }, + ], + "Timesheet": [ + { + "fieldname": "salary_slip", + "fieldtype": "Link", + "label": _("Salary Slip"), + "no_copy": 1, + "options": "Salary Slip", + "print_hide": 1, + "read_only": 1, + "insert_after": "column_break_3", + }, + ], + "Terms and Conditions": [ + { + "default": "1", + "fieldname": "hr", + "fieldtype": "Check", + "label": _("HR"), + "insert_after": "buying", + }, + ], + } + + +def make_fixtures(): + records = [ + # expense claim type + {"doctype": "Expense Claim Type", "name": _("Calls"), "expense_type": _("Calls")}, + {"doctype": "Expense Claim Type", "name": _("Food"), "expense_type": _("Food")}, + {"doctype": "Expense Claim Type", "name": _("Medical"), "expense_type": _("Medical")}, + {"doctype": "Expense Claim Type", "name": _("Others"), "expense_type": _("Others")}, + {"doctype": "Expense Claim Type", "name": _("Travel"), "expense_type": _("Travel")}, + # vehicle service item + {"doctype": "Vehicle Service Item", "service_item": "Brake Oil"}, + {"doctype": "Vehicle Service Item", "service_item": "Brake Pad"}, + {"doctype": "Vehicle Service Item", "service_item": "Clutch Plate"}, + {"doctype": "Vehicle Service Item", "service_item": "Engine Oil"}, + {"doctype": "Vehicle Service Item", "service_item": "Oil Change"}, + {"doctype": "Vehicle Service Item", "service_item": "Wheels"}, + # leave type + { + "doctype": "Leave Type", + "leave_type_name": _("Casual Leave"), + "name": _("Casual Leave"), + "allow_encashment": 1, + "is_carry_forward": 1, + "max_continuous_days_allowed": "3", + "include_holiday": 1, + }, + { + "doctype": "Leave Type", + "leave_type_name": _("Compensatory Off"), + "name": _("Compensatory Off"), + "allow_encashment": 0, + "is_carry_forward": 0, + "include_holiday": 1, + "is_compensatory": 1, + }, + { + "doctype": "Leave Type", + "leave_type_name": _("Sick Leave"), + "name": _("Sick Leave"), + "allow_encashment": 0, + "is_carry_forward": 0, + "include_holiday": 1, + }, + { + "doctype": "Leave Type", + "leave_type_name": _("Privilege Leave"), + "name": _("Privilege Leave"), + "allow_encashment": 0, + "is_carry_forward": 0, + "include_holiday": 1, + }, + { + "doctype": "Leave Type", + "leave_type_name": _("Leave Without Pay"), + "name": _("Leave Without Pay"), + "allow_encashment": 0, + "is_carry_forward": 0, + "is_lwp": 1, + "include_holiday": 1, + }, + # Employment Type + {"doctype": "Employment Type", "employee_type_name": _("Full-time")}, + {"doctype": "Employment Type", "employee_type_name": _("Part-time")}, + {"doctype": "Employment Type", "employee_type_name": _("Probation")}, + {"doctype": "Employment Type", "employee_type_name": _("Contract")}, + {"doctype": "Employment Type", "employee_type_name": _("Commission")}, + {"doctype": "Employment Type", "employee_type_name": _("Piecework")}, + {"doctype": "Employment Type", "employee_type_name": _("Intern")}, + {"doctype": "Employment Type", "employee_type_name": _("Apprentice")}, + # Job Applicant Source + {"doctype": "Job Applicant Source", "source_name": _("Website Listing")}, + {"doctype": "Job Applicant Source", "source_name": _("Walk In")}, + {"doctype": "Job Applicant Source", "source_name": _("Employee Referral")}, + {"doctype": "Job Applicant Source", "source_name": _("Campaign")}, + # Offer Term + {"doctype": "Offer Term", "offer_term": _("Date of Joining")}, + {"doctype": "Offer Term", "offer_term": _("Annual Salary")}, + {"doctype": "Offer Term", "offer_term": _("Probationary Period")}, + {"doctype": "Offer Term", "offer_term": _("Employee Benefits")}, + {"doctype": "Offer Term", "offer_term": _("Working Hours")}, + {"doctype": "Offer Term", "offer_term": _("Stock Options")}, + {"doctype": "Offer Term", "offer_term": _("Department")}, + {"doctype": "Offer Term", "offer_term": _("Job Description")}, + {"doctype": "Offer Term", "offer_term": _("Responsibilities")}, + {"doctype": "Offer Term", "offer_term": _("Leaves per Year")}, + {"doctype": "Offer Term", "offer_term": _("Notice Period")}, + {"doctype": "Offer Term", "offer_term": _("Incentives")}, + # Email Account + {"doctype": "Email Account", "email_id": "jobs@example.com", "append_to": "Job Applicant"}, + ] + + make_records(records) + + +def setup_notifications(): + base_path = frappe.get_app_path("hrms", "hr", "doctype") + + # Leave Application + response = frappe.read_file( + os.path.join(base_path, "leave_application/leave_application_email_template.html") + ) + records = [ + { + "doctype": "Email Template", + "name": _("Leave Approval Notification"), + "response": response, + "subject": _("Leave Approval Notification"), + "owner": frappe.session.user, + } + ] + records += [ + { + "doctype": "Email Template", + "name": _("Leave Status Notification"), + "response": response, + "subject": _("Leave Status Notification"), + "owner": frappe.session.user, + } + ] + + # Interview + response = frappe.read_file( + os.path.join(base_path, "interview/interview_reminder_notification_template.html") + ) + records += [ + { + "doctype": "Email Template", + "name": _("Interview Reminder"), + "response": response, + "subject": _("Interview Reminder"), + "owner": frappe.session.user, + } + ] + response = frappe.read_file( + os.path.join(base_path, "interview/interview_feedback_reminder_template.html") + ) + records += [ + { + "doctype": "Email Template", + "name": _("Interview Feedback Reminder"), + "response": response, + "subject": _("Interview Feedback Reminder"), + "owner": frappe.session.user, + } + ] + + # Exit Interview + response = frappe.read_file( + os.path.join(base_path, "exit_interview/exit_questionnaire_notification_template.html") + ) + records += [ + { + "doctype": "Email Template", + "name": _("Exit Questionnaire Notification"), + "response": response, + "subject": _("Exit Questionnaire Notification"), + "owner": frappe.session.user, + } + ] + + make_records(records) + + +def update_hr_defaults(): + hr_settings = frappe.get_doc("HR Settings") + hr_settings.emp_created_by = "Naming Series" + hr_settings.leave_approval_notification_template = _("Leave Approval Notification") + hr_settings.leave_status_notification_template = _("Leave Status Notification") + + hr_settings.send_interview_reminder = 1 + hr_settings.interview_reminder_template = _("Interview Reminder") + hr_settings.remind_before = "00:15:00" + + hr_settings.send_interview_feedback_reminder = 1 + hr_settings.feedback_reminder_notification_template = _("Interview Feedback Reminder") + + hr_settings.exit_questionnaire_notification_template = _("Exit Questionnaire Notification") + hr_settings.save() + + +def set_single_defaults(): + for dt in ("HR Settings", "Payroll Settings"): + default_values = frappe.get_all( + "DocField", + filters={"parent": dt}, + fields=["fieldname", "default"], + as_list=True, + ) + if default_values: + try: + doc = frappe.get_doc(dt, dt) + for fieldname, value in default_values: + doc.set(fieldname, value) + doc.flags.ignore_mandatory = True + doc.save() + except frappe.ValidationError: + pass + + +def create_default_role_profiles(): + for role_profile_name, roles in DEFAULT_ROLE_PROFILES.items(): + if frappe.db.exists("Role Profile", role_profile_name): + continue + + role_profile = frappe.new_doc("Role Profile") + role_profile.role_profile = role_profile_name + for role in roles: + role_profile.append("roles", {"role": role}) + + role_profile.insert(ignore_permissions=True) + + +def get_post_install_patches(): + return ( + "erpnext.patches.v13_0.move_tax_slabs_from_payroll_period_to_income_tax_slab", + "erpnext.patches.v13_0.move_doctype_reports_and_notification_from_hr_to_payroll", + "erpnext.patches.v13_0.move_payroll_setting_separately_from_hr_settings", + "erpnext.patches.v13_0.update_start_end_date_for_old_shift_assignment", + "erpnext.patches.v13_0.updates_for_multi_currency_payroll", + "erpnext.patches.v13_0.update_reason_for_resignation_in_employee", + "erpnext.patches.v13_0.set_company_in_leave_ledger_entry", + "erpnext.patches.v13_0.rename_stop_to_send_birthday_reminders", + "erpnext.patches.v13_0.set_training_event_attendance", + "erpnext.patches.v14_0.set_payroll_cost_centers", + "erpnext.patches.v13_0.update_employee_advance_status", + "erpnext.patches.v13_0.update_expense_claim_status_for_paid_advances", + "erpnext.patches.v14_0.delete_employee_transfer_property_doctype", + "erpnext.patches.v13_0.set_payroll_entry_status", + # HRMS + "create_country_fixtures", + "update_allocate_on_in_leave_type", + "update_performance_module_changes", + ) + + +def run_post_install_patches(): + print("\nPatching Existing Data...") + + POST_INSTALL_PATCHES = get_post_install_patches() + frappe.flags.in_patch = True + + try: + for patch in POST_INSTALL_PATCHES: + patch_name = patch.split(".")[-1] + if not patch_name: + continue + + frappe.get_attr(f"hrms.patches.post_install.{patch_name}.execute")() + finally: + frappe.flags.in_patch = False + + +# LENDING APP SETUP & CLEANUP +def create_salary_slip_loan_fields(): + if "lending" in frappe.get_installed_apps(): + create_custom_fields(get_salary_slip_loan_fields(), ignore_validate=True) + + +def add_lending_docperms_to_ess(): + doc = frappe.get_doc("User Type", "Employee Self Service") + + loan_docperms = get_lending_docperms_for_ess() + append_docperms_to_user_type(loan_docperms, doc) + + doc.flags.ignore_links = True + doc.save(ignore_permissions=True) + + +def remove_lending_docperms_from_ess(): + doc = frappe.get_doc("User Type", "Employee Self Service") + + loan_docperms = get_lending_docperms_for_ess() + + for row in list(doc.user_doctypes): + if row.document_type in loan_docperms: + doc.user_doctypes.remove(row) + + doc.flags.ignore_links = True + doc.save(ignore_permissions=True) + + +# ESS USER TYPE SETUP & CLEANUP +def add_non_standard_user_types(): + user_types = get_user_types_data() + update_user_type_doctype_limit(user_types) + + for user_type, data in user_types.items(): + create_custom_role(data) + create_user_type(user_type, data) + + +def update_user_type_doctype_limit(user_types=None): + if not user_types: + user_types = get_user_types_data() + + user_type_limit = {} + for user_type, __ in user_types.items(): + user_type_limit.setdefault(frappe.scrub(user_type), 40) + + update_site_config("user_type_doctype_limit", user_type_limit) + + +def get_user_types_data(): + return { + "Employee Self Service": { + "role": "Employee Self Service", + "apply_user_permission_on": "Employee", + "user_id_field": "user_id", + "doctypes": { + # masters + "Holiday List": ["read"], + "Employee": ["read", "write"], + "Company": ["read"], + # payroll + "Salary Slip": ["read"], + "Employee Benefit Application": ["read", "write", "create", "delete"], + # expenses + "Expense Claim": ["read", "write", "create", "delete"], + "Expense Claim Type": ["read"], + "Employee Advance": ["read", "write", "create", "delete"], + # leave and attendance + "Leave Type": ["read"], + "Leave Application": ["read", "write", "create", "delete"], + "Attendance Request": ["read", "write", "create", "delete"], + "Compensatory Leave Request": ["read", "write", "create", "delete"], + # tax + "Employee Tax Exemption Declaration": ["read", "write", "create", "delete"], + "Employee Tax Exemption Proof Submission": ["read", "write", "create", "delete"], + # projects + "Timesheet": ["read", "write", "create", "delete", "submit", "cancel", "amend"], + # trainings + "Training Program": ["read"], + "Training Feedback": ["read", "write", "create", "delete", "submit", "cancel", "amend"], + # shifts + "Employee Checkin": ["read"], + "Shift Request": ["read", "write", "create", "delete", "submit", "cancel", "amend"], + # misc + "Employee Grievance": ["read", "write", "create", "delete"], + "Employee Referral": ["read", "write", "create", "delete"], + "Travel Request": ["read", "write", "create", "delete"], + }, + } + } + + +def get_lending_docperms_for_ess(): + return { + "Loan": ["read"], + "Loan Application": ["read", "write", "create", "delete", "submit"], + "Loan Product": ["read"], + } + + +def create_custom_role(data): + if data.get("role") and not frappe.db.exists("Role", data.get("role")): + frappe.get_doc( + {"doctype": "Role", "role_name": data.get("role"), "desk_access": 1, "is_custom": 1} + ).insert(ignore_permissions=True) + + +def create_user_type(user_type, data): + if frappe.db.exists("User Type", user_type): + doc = frappe.get_cached_doc("User Type", user_type) + doc.user_doctypes = [] + else: + doc = frappe.new_doc("User Type") + doc.update( + { + "name": user_type, + "role": data.get("role"), + "user_id_field": data.get("user_id_field"), + "apply_user_permission_on": data.get("apply_user_permission_on"), + } + ) + + docperms = data.get("doctypes") + if doc.role == "Employee Self Service" and "lending" in frappe.get_installed_apps(): + docperms.update(get_lending_docperms_for_ess()) + + append_docperms_to_user_type(docperms, doc) + + doc.flags.ignore_links = True + doc.save(ignore_permissions=True) + + +def append_docperms_to_user_type(docperms, doc): + existing_doctypes = [d.document_type for d in doc.user_doctypes] + + for doctype, perms in docperms.items(): + if doctype in existing_doctypes: + continue + + args = {"document_type": doctype} + for perm in perms: + args[perm] = 1 + + doc.append("user_doctypes", args) + + +def update_select_perm_after_install(): + if not frappe.flags.update_select_perm_after_migrate: + return + + frappe.flags.ignore_select_perm = False + for row in frappe.get_all("User Type", filters={"is_standard": 0}): + print("Updating user type :- ", row.name) + doc = frappe.get_doc("User Type", row.name) + doc.flags.ignore_links = True + doc.save() + + frappe.flags.update_select_perm_after_migrate = False + + +def delete_custom_fields(custom_fields: dict): + """ + :param custom_fields: a dict like `{'Salary Slip': [{fieldname: 'loans', ...}]}` + """ + for doctype, fields in custom_fields.items(): + frappe.db.delete( + "Custom Field", + { + "fieldname": ("in", [field["fieldname"] for field in fields]), + "dt": doctype, + }, + ) + + frappe.clear_cache(doctype=doctype) + + +DEFAULT_ROLE_PROFILES = { + "HR": [ + "HR User", + "HR Manager", + "Leave Approver", + "Expense Approver", + ], +} + + +def get_salary_slip_loan_fields(): + return { + "Salary Slip": [ + { + "fieldname": "loan_repayment_sb_1", + "fieldtype": "Section Break", + "label": _("Loan Repayment"), + "depends_on": "total_loan_repayment", + "insert_after": "base_total_deduction", + }, + { + "fieldname": "loans", + "fieldtype": "Table", + "label": _("Employee Loan"), + "options": "Salary Slip Loan", + "print_hide": 1, + "insert_after": "loan_repayment_sb_1", + }, + { + "fieldname": "loan_details_sb_1", + "fieldtype": "Section Break", + "depends_on": "eval:doc.docstatus != 0", + "insert_after": "loans", + }, + { + "fieldname": "total_principal_amount", + "fieldtype": "Currency", + "label": _("Total Principal Amount"), + "default": "0", + "options": "Company:company:default_currency", + "read_only": 1, + "insert_after": "loan_details_sb_1", + }, + { + "fieldname": "total_interest_amount", + "fieldtype": "Currency", + "label": _("Total Interest Amount"), + "default": "0", + "options": "Company:company:default_currency", + "read_only": 1, + "insert_after": "total_principal_amount", + }, + { + "fieldname": "loan_cb_1", + "fieldtype": "Column Break", + "insert_after": "total_interest_amount", + }, + { + "fieldname": "total_loan_repayment", + "fieldtype": "Currency", + "label": _("Total Loan Repayment"), + "default": "0", + "options": "Company:company:default_currency", + "read_only": 1, + "insert_after": "loan_cb_1", + }, + ], + "Loan": [ + { + "default": "0", + "depends_on": 'eval:doc.applicant_type=="Employee"', + "fieldname": "repay_from_salary", + "fieldtype": "Check", + "label": _("Repay From Salary"), + "insert_after": "status", + }, + ], + "Loan Repayment": [ + { + "default": "0", + "fieldname": "repay_from_salary", + "fieldtype": "Check", + "label": _("Repay From Salary"), + "insert_after": "is_term_loan", + }, + { + "depends_on": "eval:doc.repay_from_salary", + "fieldname": "payroll_payable_account", + "fieldtype": "Link", + "label": _("Payroll Payable Account"), + "mandatory_depends_on": "eval:doc.repay_from_salary", + "options": "Account", + "insert_after": "payment_account", + }, + { + "default": "0", + "depends_on": 'eval:doc.applicant_type=="Employee"', + "fieldname": "process_payroll_accounting_entry_based_on_employee", + "hidden": 1, + "fieldtype": "Check", + "label": _("Process Payroll Accounting Entry based on Employee"), + "insert_after": "repay_from_salary", + }, + ], + } diff --git a/apps/erpnext/src/hrms/hrms/subscription_utils.py b/apps/erpnext/src/hrms/hrms/subscription_utils.py new file mode 100644 index 000000000..6f386e9db --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/subscription_utils.py @@ -0,0 +1,180 @@ +import requests + +import frappe + +STANDARD_ROLES = [ + # standard roles + "Administrator", + "All", + "Guest", + # accounts + "Accounts Manager", + "Accounts User", + # projects + "Projects User", + "Projects Manager", + # framework + "Blogger", + "Dashboard Manager", + "Inbox User", + "Newsletter Manager", + "Prepared Report User", + "Report Manager", + "Script Manager", + "System Manager", + "Website Manager", + "Workspace Manager", +] + + +@frappe.whitelist(allow_guest=True) +def get_add_on_details(plan: str) -> dict[str, int]: + """ + Returns the number of employees to be billed under add-ons for SAAS subscription + site_details = { + "country": "India", + "plan": "Basic", + "credit_balance": 1000, + "add_ons": { + "employee": 2, + }, + "expiry_date": "2021-01-01", # as per current usage + } + """ + EMPLOYEE_LIMITS = {"Basic": 25, "Essential": 50, "Professional": 100} + add_on_details = {} + + employees_included_in_plan = EMPLOYEE_LIMITS.get(plan) + if employees_included_in_plan: + active_employees = get_active_employees() + add_on_employees = ( + active_employees - employees_included_in_plan + if active_employees > employees_included_in_plan + else 0 + ) + else: + add_on_employees = 0 + + add_on_details["employees"] = add_on_employees + return add_on_details + + +def get_active_employees() -> int: + return frappe.db.count("Employee", {"status": "Active"}) + + +@frappe.whitelist(allow_guest=True) +def subscription_updated(app: str, plan: str): + if app in ["hrms", "erpnext"] and plan: + update_erpnext_access() + + +def update_erpnext_access(user_input: dict | None): + """ + Called from hooks after setup wizard completion, ignored if user has no hrms subscription + enables erpnext workspaces and roles if user has subscribed to both hrms and erpnext + disables erpnext workspaces and roles if user has subscribed to hrms but not erpnext + """ + if not frappe.utils.get_url().endswith(".frappehr.com"): + return + + update_erpnext_workspaces(True) + update_erpnext_roles(True) + set_app_logo() + + +def update_erpnext_workspaces(disable: bool = True): + erpnext_workspaces = [ + "Home", + "Assets", + "Accounting", + "Buying", + "CRM", + "Manufacturing", + "Quality", + "Selling", + "Stock", + "Support", + ] + + for workspace in erpnext_workspaces: + try: + workspace_doc = frappe.get_doc("Workspace", workspace) + workspace_doc.flags.ignore_links = True + workspace_doc.flags.ignore_validate = True + workspace_doc.public = 0 if disable else 1 + workspace_doc.save() + except Exception: + frappe.clear_messages() + + +def update_erpnext_roles(disable: bool = True): + roles = get_erpnext_roles() + for role in roles: + try: + role_doc = frappe.get_doc("Role", role) + role_doc.disabled = disable + role_doc.flags.ignore_links = True + role_doc.save() + except Exception: + pass + + +def set_app_logo(): + frappe.db.set_single_value("Navbar Settings", "app_logo", "/assets/hrms/images/frappe-hr-logo.svg") + + +def get_erpnext_roles() -> set: + erpnext_roles = get_roles_for_app("erpnext") + hrms_roles = get_roles_for_app("hrms") + return erpnext_roles - hrms_roles - set(STANDARD_ROLES) + + +def get_roles_for_app(app_name: str) -> set: + erpnext_modules = get_modules_by_app(app_name) + doctypes = get_doctypes_by_modules(erpnext_modules) + roles = roles_by_doctype(doctypes) + + return roles + + +def get_modules_by_app(app_name: str) -> list: + return frappe.db.get_all("Module Def", filters={"app_name": app_name}, pluck="name") + + +def get_doctypes_by_modules(modules: list) -> list: + return frappe.db.get_all("DocType", filters=[["module", "in", modules]], pluck="name") + + +def roles_by_doctype(doctypes: list) -> set: + roles = [] + for d in doctypes: + permissions = frappe.get_meta(d).permissions + + for d in permissions: + roles.append(d.role) + + return set(roles) + + +def hide_erpnext() -> bool: + hr_subscription = has_subscription(frappe.conf.sk_hrms) + erpnext_subscription = has_subscription(frappe.conf.sk_erpnext_smb or frappe.conf.sk_erpnext) + + if not hr_subscription: + return False + + if hr_subscription and erpnext_subscription: + # subscribed for ERPNext + return False + + # no subscription for ERPNext + return True + + +def has_subscription(secret_key) -> bool: + url = f"https://frappecloud.com/api/method/press.api.developer.marketplace.get_subscription_status?secret_key={secret_key}" + response = requests.request(method="POST", url=url, timeout=5) + + status = response.json().get("message") + return True if status == "Active" else False diff --git a/apps/erpnext/src/hrms/hrms/templates/__init__.py b/apps/erpnext/src/hrms/hrms/templates/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/templates/emails/anniversary_reminder.html b/apps/erpnext/src/hrms/hrms/templates/emails/anniversary_reminder.html new file mode 100644 index 000000000..db338ddcb --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/templates/emails/anniversary_reminder.html @@ -0,0 +1,25 @@ +
            +
            + {% for person in anniversary_persons %} + {% if person.image %} + + + {% else %} + + {{ frappe.utils.get_abbr(person.name) }} + + {% endif %} + {% endfor %} +
            +
            + {{ reminder_text }} +

            {{ message }}

            +
            +
            diff --git a/apps/erpnext/src/hrms/hrms/templates/emails/birthday_reminder.html b/apps/erpnext/src/hrms/hrms/templates/emails/birthday_reminder.html new file mode 100644 index 000000000..1f57b4969 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/templates/emails/birthday_reminder.html @@ -0,0 +1,25 @@ +
            +
            + {% for person in birthday_persons %} + {% if person.image %} + + + {% else %} + + {{ frappe.utils.get_abbr(person.name) }} + + {% endif %} + {% endfor %} +
            +
            + {{ reminder_text }} +

            {{ message }}

            +
            +
            diff --git a/apps/erpnext/src/hrms/hrms/templates/emails/daily_work_summary.html b/apps/erpnext/src/hrms/hrms/templates/emails/daily_work_summary.html new file mode 100644 index 000000000..1764e8f70 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/templates/emails/daily_work_summary.html @@ -0,0 +1,55 @@ + + +

            {{ title }}

            + +
            +{% for reply in replies %} + + + + + + + + + + +
            + {% if reply.image %} + + {% else %} +
            + {{ reply.sender_name[0] }} +
            + {% endif %} +
            +
            + {{ reply.sender_name }} +
            +
            + + + + + + + + +
            +
            + {{ reply.content }} +
            +
            + + +
            +{% endfor %} +{% if did_not_reply %} + + +
            +

            {{ did_not_reply_title }}: {{ did_not_reply }}

            +
            + +
            +{% endif %} diff --git a/apps/erpnext/src/hrms/hrms/templates/emails/daily_work_summary.txt b/apps/erpnext/src/hrms/hrms/templates/emails/daily_work_summary.txt new file mode 100644 index 000000000..2fb4380d8 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/templates/emails/daily_work_summary.txt @@ -0,0 +1,11 @@ +{{ title }} + +{% for reply in replies %} +{{ reply.sender_name }}: +{{ reply.content }} + + +{% endfor %} +{% if did_not_reply %} +{{ did_not_reply_title }}: {{ did_not_reply }} +{% endif %} \ No newline at end of file diff --git a/apps/erpnext/src/hrms/hrms/templates/emails/holiday_reminder.html b/apps/erpnext/src/hrms/hrms/templates/emails/holiday_reminder.html new file mode 100644 index 000000000..bbef6be67 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/templates/emails/holiday_reminder.html @@ -0,0 +1,16 @@ +
            + {{ reminder_text }} +

            {{ message }}

            +
            + +{% if advance_holiday_reminder %} + {% if holidays | len > 0 %} +
              + {% for holiday in holidays %} +
            1. {{ frappe.format(holiday.holiday_date, 'Date') }} - {{ holiday.description }}
            2. + {% endfor %} +
            + {% else %} +

            You have no upcoming holidays this {{ frequency }}.

            + {% endif %} +{% endif %} diff --git a/apps/erpnext/src/hrms/hrms/templates/emails/training_event.html b/apps/erpnext/src/hrms/hrms/templates/emails/training_event.html new file mode 100644 index 000000000..8a2414a3c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/templates/emails/training_event.html @@ -0,0 +1,21 @@ +

            {{_("Training Event")}}

            +

            {{ message }}

            + +

            {{_("Details")}}

            +{{_("Event Name")}}:
            {{ name }} +
            {{_("Event Location")}}: {{ location }} +
            {{_("Start Time")}}: {{ start_time }} +
            {{_("End Time")}}: {{ end_time }} +
            {{_("Attendance")}}: {{ attendance }} + +

            {{_("Update Response")}}

            +{% if not self_study %} +

            {{_("Please update your status for this training event")}}:

            +
            +
            +{% else %} +

            {{_("Please confirm once you have completed your training")}}:

            +
            +{% endif %} +

            {{_("Thank you")}},
            +{{ user_fullname }}

            diff --git a/apps/erpnext/src/hrms/hrms/templates/generators/job_opening.html b/apps/erpnext/src/hrms/hrms/templates/generators/job_opening.html new file mode 100644 index 000000000..eacfdb663 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/templates/generators/job_opening.html @@ -0,0 +1,225 @@ +{% extends "templates/web.html" %} +{% block page_content %} + +
            + +
            +
            +

            + {{ job_title }} +

            +
            +
            + {{ company }} + {{ " · " }} + {{ posted_on }} +
            +
            +
            +
            +
            + {%- if status == "Open" -%} + + {{ _("Apply Now") }} + + {%- else -%} +
            + {{ _("Opening closed.") }} +
            + {% endif %} +
            +
            +
            + + +
            +
            + {%- if location -%} +
            +
            +
            + + + + + + + +
            +
            +
            {{ _("Location") }}
            +
            {{ location }}
            +
            +
            +
            + {% endif %} + + {%- if department -%} +
            +
            +
            + + + +
            +
            +
            {{ _("Department") }}
            +
            {{ department }}
            +
            +
            +
            + {% endif %} + + {%- if publish_salary_range -%} +
            +
            +
            + + + +
            +
            +
            {{ _("Salary Range") }}
            +
            + {%- if lower_range -%} + {{ frappe.format_value(frappe.utils.flt(lower_range) , currency=currency) }} + {% endif %} + {%- if lower_range and upper_range -%} + {{ " - " }} + {% endif %} + {%- if upper_range -%} + {{ frappe.format_value(frappe.utils.flt(upper_range) , currency=currency) }} + {% endif %} + / + {{ salary_per.lower() }} +
            +
            +
            +
            + {% endif %} + + {%- if employment_type -%} +
            +
            +
            + + + +
            +
            +
            {{ _("Employment Type") }}
            +
            {{ employment_type }}
            +
            +
            +
            + {% endif %} + + {%- if publish_applications_received -%} +
            +
            +
            + + + +
            +
            +
            {{ _("Applications Received") }}
            +
            {{ no_of_applications }}
            +
            +
            +
            + {%- endif -%} + + {%- if (status == 'Open' and closes_on) or (status == 'Closed' and closed_on) -%} +
            +
            +
            + + + +
            +
            +
            + {{ _("Closes On") if status == "Open" else _("Closed On") }} +
            +
            + {{ frappe.utils.format_date(closes_on if status == "Open" else closed_on, "d MMM, YYYY") }} +
            +
            +
            +
            + {% endif %} +
            +
            + + {%- if description -%}

            {{ description }}

            {% endif %} + + +
            +
            + {%- if status == "Open" -%} + + {{ _("Apply Now") }} + + {%- else -%} +
            + {{ _("Opening closed.") }} +
            + {% endif %} +
            +
            +
            + +{% endblock page_content %} diff --git a/apps/erpnext/src/hrms/hrms/templates/includes/salary_slip_log.html b/apps/erpnext/src/hrms/hrms/templates/includes/salary_slip_log.html new file mode 100644 index 000000000..22c62ceec --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/templates/includes/salary_slip_log.html @@ -0,0 +1,19 @@ + + + + + {% for key in keys %} + + {% endfor %} + + + + {% for ss_dict in ss_list %} + + {% for key, value in ss_dict.items()|sort %} + + {% endfor %} + + {% endfor %} + +
            {{title}}
            {{ key }}
            {{value}}
            diff --git a/apps/erpnext/src/hrms/hrms/templates/pages/__init__.py b/apps/erpnext/src/hrms/hrms/templates/pages/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/tests/test_utils.py b/apps/erpnext/src/hrms/hrms/tests/test_utils.py new file mode 100644 index 000000000..05de681c7 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/tests/test_utils.py @@ -0,0 +1,156 @@ +import frappe +from frappe.utils import add_months, get_first_day, get_last_day, getdate, now_datetime + +from erpnext.setup.doctype.department.department import get_abbreviated_name +from erpnext.setup.doctype.designation.test_designation import create_designation +from erpnext.setup.utils import enable_all_roles_and_domains + + +def before_tests(): + frappe.clear_cache() + # complete setup if missing + from frappe.desk.page.setup_wizard.setup_wizard import setup_complete + + year = now_datetime().year + if not frappe.get_list("Company"): + setup_complete( + { + "currency": "INR", + "full_name": "Test User", + "company_name": "_Test Company", + "timezone": "Asia/Kolkata", + "company_abbr": "_TC", + "industry": "Manufacturing", + "country": "India", + "fy_start_date": f"{year}-01-01", + "fy_end_date": f"{year}-12-31", + "language": "english", + "company_tagline": "Testing", + "email": "test@erpnext.com", + "password": "test", + "chart_of_accounts": "Standard", + } + ) + + enable_all_roles_and_domains() + set_defaults() + frappe.db.commit() # nosemgrep + + +def set_defaults(): + from hrms.hr.doctype.holiday_list_assignment.test_holiday_list_assignment import ( + create_holiday_list_assignment, + ) + from hrms.payroll.doctype.salary_slip.test_salary_slip import make_holiday_list + + make_holiday_list("Salary Slip Test Holiday List") + frappe.db.set_value("Company", "_Test Company", "default_holiday_list", "Salary Slip Test Holiday List") + create_holiday_list_assignment("Company", "_Test Company", "Salary Slip Test Holiday List") + + +def get_first_sunday(holiday_list="Salary Slip Test Holiday List", for_date=None, find_after_for_date=False): + date = for_date or getdate() + month_start_date = get_first_day(date) + + if find_after_for_date: + # explictly find first sunday after for_date + # useful when DOJ is after the month start + month_start_date = date + + month_end_date = get_last_day(date) + first_sunday = frappe.db.sql( + """ + select holiday_date from `tabHoliday` + where parent = %s + and holiday_date between %s and %s + order by holiday_date + """, + (holiday_list, month_start_date, month_end_date), + )[0][0] + + return first_sunday + + +def get_first_day_for_prev_month(): + prev_month = add_months(getdate(), -1) + prev_month_first = prev_month.replace(day=1) + return prev_month_first + + +def add_date_to_holiday_list(date: str, holiday_list: str, is_half_day: bool = 0) -> None: + if frappe.db.exists("Holiday", {"parent": holiday_list, "holiday_date": date}): + return + + holiday_list = frappe.get_doc("Holiday List", holiday_list) + holiday_list.append( + "holidays", + {"holiday_date": date, "description": "test", "is_half_day": is_half_day}, + ) + holiday_list.save() + + +def create_company(name: str = "_Test Company", is_group: 0 | 1 = 0, parent_company: str | None = None): + if frappe.db.exists("Company", name): + return frappe.get_doc("Company", name) + + return frappe.get_doc( + { + "doctype": "Company", + "company_name": name, + "default_currency": "INR", + "country": "India", + "is_group": is_group, + "parent_company": parent_company, + } + ).insert() + + +def create_department(name: str, company: str = "_Test Company") -> str: + docname = get_abbreviated_name(name, company) + + if frappe.db.exists("Department", docname): + return docname + + department = frappe.new_doc("Department") + department.update({"doctype": "Department", "department_name": name, "company": "_Test Company"}) + department.insert() + return department.name + + +def create_employee_grade(grade: str, default_structure: str | None = None, default_base: float = 50000): + if frappe.db.exists("Employee Grade", grade): + return frappe.get_doc("Employee Grade", grade) + return frappe.get_doc( + { + "doctype": "Employee Grade", + "__newname": grade, + "default_salary_structure": default_structure, + "default_base_pay": default_base, + } + ).insert() + + +def create_job_applicant(**args): + args = frappe._dict(args) + filters = { + "applicant_name": args.applicant_name or "_Test Applicant", + "email_id": args.email_id or "test_applicant@example.com", + } + + if frappe.db.exists("Job Applicant", filters): + return frappe.get_doc("Job Applicant", filters) + + job_applicant = frappe.get_doc( + { + "doctype": "Job Applicant", + "status": args.status or "Open", + "designation": create_designation().name, + } + ) + job_applicant.update(filters) + job_applicant.save() + return job_applicant + + +def get_email_by_subject(subject: str) -> str | None: + return frappe.db.exists("Email Queue", {"message": ("like", f"%{subject}%")}) diff --git a/apps/erpnext/src/hrms/hrms/tests/utils.py b/apps/erpnext/src/hrms/hrms/tests/utils.py new file mode 100644 index 000000000..14c5387fd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/tests/utils.py @@ -0,0 +1,120 @@ +import frappe + +from erpnext.tests.utils import ERPNextTestSuite + + +class HRMSTestSuite(ERPNextTestSuite): + """Class for creating HRMS test records""" + + @classmethod + def setUpClass(cls): + super().setUpClass() + + @classmethod + def make_employees(cls): + """Create test employees""" + # Create test employees here + super().make_employees() + + @classmethod + def make_departments(cls): + """Create test departments""" + # Create test departments here + records = [ + { + "doctype": "Department", + "department_name": "_Test Department", + "company": "_Test Company", + "parent_department": "All Departments", + }, + { + "doctype": "Department", + "department_name": "_Test Department 1", + "company": "_Test Company", + "parent_department": "All Departments", + }, + ] + cls.departments = [] + for x in records: + if not frappe.db.exists("Department", x.get("department_name")): + cls.departments.append(frappe.get_doc(x).insert()) + else: + cls.departments.append(frappe.get_doc("Department", x.get("department_name"))) + + @classmethod + def make_leave_types(cls): + """Create test leave types""" + # Create test leave types here + records = [ + {"doctype": "Leave Type", "leave_type_name": "_Test Leave Type", "include_holiday": 1}, + { + "doctype": "Leave Type", + "is_lwp": 1, + "leave_type_name": "_Test Leave Type LWP", + "include_holiday": 1, + }, + { + "doctype": "Leave Type", + "leave_type_name": "_Test Leave Type Encashment", + "include_holiday": 1, + "allow_encashment": 1, + "non_encashable_leaves": 5, + "earning_component": "Leave Encashment", + }, + { + "doctype": "Leave Type", + "leave_type_name": "_Test Leave Type Earned", + "include_holiday": 1, + "is_earned_leave": 1, + }, + ] + cls.leave_types = [] + for x in records: + if not frappe.db.exists("Leave Type", x.get("leave_type_name")): + cls.leave_types.append(frappe.get_doc(x).insert()) + else: + cls.leave_types.append(frappe.get_doc("Leave Type", x.get("leave_type_name"))) + + @classmethod + def make_leave_allocations(cls): + """Create test leave applications""" + # Create test leave applications here + records = [ + { + "docstatus": 1, + "doctype": "Leave Allocation", + "employee": "_T-Employee-00001", + "from_date": "2013-01-01", + "to_date": "2013-12-31", + "leave_type": "_Test Leave Type", + "new_leaves_allocated": 15, + }, + { + "docstatus": 1, + "doctype": "Leave Allocation", + "employee": "_T-Employee-00002", + "from_date": "2013-01-01", + "to_date": "2013-12-31", + "leave_type": "_Test Leave Type", + "new_leaves_allocated": 15, + }, + ] + + cls.leave_allocations = [] + for x in records: + if not frappe.db.exists( + "Leave Allocation", + {"employee": x.get("employee"), "from_date": x.get("from_date"), "to_date": x.get("to_date")}, + ): + cls.leave_allocations.append(frappe.get_doc(x).insert()) + else: + cls.leave_allocations.append( + frappe.get_doc( + "Employee", + { + "employee": x.get("employee"), + "from_date": x.get("from_date"), + "to_date": x.get("to_date"), + }, + ) + ) diff --git a/apps/erpnext/src/hrms/hrms/uninstall.py b/apps/erpnext/src/hrms/hrms/uninstall.py new file mode 100644 index 000000000..9145ea7e4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/uninstall.py @@ -0,0 +1,21 @@ +import click + +from hrms.setup import before_uninstall as remove_custom_fields + + +def before_uninstall(): + try: + print("Removing customizations created by the Frappe HR app...") + remove_custom_fields() + + except Exception as e: + BUG_REPORT_URL = "https://github.com/frappe/hrms/issues/new" + click.secho( + "Removing Customizations for Frappe HR failed due to an error." + " Please try again or" + f" report the issue on {BUG_REPORT_URL} if not resolved.", + fg="bright_red", + ) + raise e + + click.secho("Frappe HR app customizations have been removed successfully...", fg="green") diff --git a/apps/erpnext/src/hrms/hrms/utils/__init__.py b/apps/erpnext/src/hrms/hrms/utils/__init__.py new file mode 100644 index 000000000..3bb399267 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/utils/__init__.py @@ -0,0 +1,62 @@ +from collections.abc import Generator + +import requests + +import frappe +from frappe.utils import add_days, date_diff + +country_info = {} + + +@frappe.whitelist(allow_guest=True) +def get_country(fields=None): + global country_info + ip = frappe.local.request_ip + + if ip not in country_info: + fields = ["countryCode", "country", "regionName", "city"] + res = requests.get( + "https://pro.ip-api.com/json/{ip}?key={key}&fields={fields}".format( + ip=ip, key=frappe.conf.get("ip-api-key"), fields=",".join(fields) + ) + ) + + try: + country_info[ip] = res.json() + + except Exception: + country_info[ip] = {} + + return country_info[ip] + + +def get_date_range(start_date: str, end_date: str) -> list[str]: + """returns list of dates between start and end dates""" + no_of_days = date_diff(end_date, start_date) + 1 + return [add_days(start_date, i) for i in range(no_of_days)] + + +def generate_date_range(start_date: str, end_date: str, reverse: bool = False) -> Generator[str, None, None]: + no_of_days = date_diff(end_date, start_date) + 1 + + date_field = end_date if reverse else start_date + direction = -1 if reverse else 1 + + for n in range(no_of_days): + yield add_days(date_field, direction * n) + + +def get_employee_email(employee_id: str) -> str | None: + employee_emails = frappe.db.get_value( + "Employee", + employee_id, + ["prefered_email", "user_id", "company_email", "personal_email"], + as_dict=True, + ) + + return ( + employee_emails.prefered_email + or employee_emails.user_id + or employee_emails.company_email + or employee_emails.personal_email + ) diff --git a/apps/erpnext/src/hrms/hrms/utils/custom_method_for_charts.py b/apps/erpnext/src/hrms/hrms/utils/custom_method_for_charts.py new file mode 100644 index 000000000..de5924444 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/utils/custom_method_for_charts.py @@ -0,0 +1,29 @@ +import frappe +from frappe.utils import get_first_day, get_last_day, getdate + +from erpnext import get_default_company +from erpnext.setup.doctype.employee.employee import get_holiday_list_for_employee + +from hrms.utils.holiday_list import get_assigned_holiday_list + + +@frappe.whitelist() +def get_upcoming_holidays(): + employee = frappe.get_value("Employee", {"user_id": frappe.session.user}, "name") + if employee: + holiday_list = get_holiday_list_for_employee(employee, raise_exception=False, as_on=getdate()) + else: + default_company = get_default_company() + holiday_list = get_assigned_holiday_list(default_company, as_on=getdate()) + + if not holiday_list: + return 0 + + month_start = get_first_day(getdate()) + month_end = get_last_day(getdate()) + + holidays = frappe.db.get_all( + "Holiday", {"parent": holiday_list, "holiday_date": ("between", (month_start, month_end))} + ) + + return len(holidays) diff --git a/apps/erpnext/src/hrms/hrms/utils/hierarchy_chart.py b/apps/erpnext/src/hrms/hrms/utils/hierarchy_chart.py new file mode 100644 index 000000000..4bf4353cd --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/utils/hierarchy_chart.py @@ -0,0 +1,36 @@ +# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors +# MIT License. See license.txt + + +import frappe +from frappe import _ + + +@frappe.whitelist() +def get_all_nodes(method, company): + """Recursively gets all data from nodes""" + method = frappe.get_attr(method) + + if method not in frappe.whitelisted: + frappe.throw(_("Not Permitted"), frappe.PermissionError) + + root_nodes = method(company=company) + result = [] + nodes_to_expand = [] + + for root in root_nodes: + data = method(root.id, company) + result.append(dict(parent=root.id, parent_name=root.name, data=data)) + nodes_to_expand.extend( + [{"id": d.get("id"), "name": d.get("name")} for d in data if d.get("expandable")] + ) + + while nodes_to_expand: + parent = nodes_to_expand.pop(0) + data = method(parent.get("id"), company) + result.append(dict(parent=parent.get("id"), parent_name=parent.get("name"), data=data)) + for d in data: + if d.get("expandable"): + nodes_to_expand.append({"id": d.get("id"), "name": d.get("name")}) + + return result diff --git a/apps/erpnext/src/hrms/hrms/utils/holiday_list.py b/apps/erpnext/src/hrms/hrms/utils/holiday_list.py new file mode 100644 index 000000000..7f8680bb9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/utils/holiday_list.py @@ -0,0 +1,145 @@ +from datetime import date + +import frappe +from frappe import _ +from frappe.utils import add_days, formatdate, get_link_to_form, getdate + + +def get_holiday_dates_between( + holiday_list: str, + start_date: str, + end_date: str, + skip_weekly_offs: bool = False, + as_dict: bool = False, + select_weekly_off: bool = False, +) -> list: + Holiday = frappe.qb.DocType("Holiday") + query = frappe.qb.from_(Holiday).select(Holiday.holiday_date) + + if select_weekly_off: + query = query.select(Holiday.weekly_off) + + query = query.where( + (Holiday.parent == holiday_list) & (Holiday.holiday_date.between(start_date, end_date)) + ) + + if skip_weekly_offs: + query = query.where(Holiday.weekly_off == 0) + + if as_dict: + return query.run(as_dict=True) + + return query.run(pluck=True) + + +def get_holiday_dates_between_range( + assigned_to: str, + start_date: str, + end_date: str, + skip_weekly_offs: bool = False, + select_weekly_offs: bool = False, + raise_exception_for_holiday_list: bool = True, +) -> list: + start_date = getdate(start_date) + end_date = getdate(end_date) + + from_holiday_list = ( + get_holiday_list_for_employee( + assigned_to, as_on=start_date, as_dict=True, raise_exception=raise_exception_for_holiday_list + ) + or {} + ) + to_holiday_list = ( + get_holiday_list_for_employee( + assigned_to, as_on=end_date, as_dict=True, raise_exception=raise_exception_for_holiday_list + ) + or {} + ) + + if ( + from_holiday_list + and to_holiday_list + and from_holiday_list.holiday_list != to_holiday_list.holiday_list + ): + return list( + set( + get_holiday_dates_between( + holiday_list=from_holiday_list.holiday_list, + start_date=start_date, + end_date=add_days(to_holiday_list.from_date, -1), + select_weekly_off=select_weekly_offs, + skip_weekly_offs=skip_weekly_offs, + ) + + get_holiday_dates_between( + holiday_list=to_holiday_list.holiday_list, + start_date=to_holiday_list.from_date, + end_date=end_date, + select_weekly_off=select_weekly_offs, + skip_weekly_offs=skip_weekly_offs, + ) + ) + ) + elif holiday_list := from_holiday_list.get("holiday_list", None) or to_holiday_list.get( + "holiday_list", None + ): + return get_holiday_dates_between( + holiday_list=holiday_list, + start_date=start_date, + end_date=end_date, + select_weekly_off=select_weekly_offs, + skip_weekly_offs=skip_weekly_offs, + ) + else: + return [] + + +def get_holiday_list_for_employee( + employee: str, raise_exception: bool = True, as_on: date | str | None = None, as_dict: bool = False +) -> str: + as_on = frappe.utils.getdate(as_on) + holiday_list = get_assigned_holiday_list(employee, as_on, as_dict) + if not holiday_list: + company = frappe.db.get_value("Employee", employee, "company") + holiday_list = get_assigned_holiday_list(company, as_on, as_dict) + + if not holiday_list and raise_exception: + frappe.throw( + _( + "No Holiday List was found for Employee {0} or their company {1} for date {2}. Please assign through {3}" + ).format( + frappe.bold(employee), + frappe.bold(company), + frappe.bold(formatdate(as_on)), + get_link_to_form("Holiday List Assignment", label="Holiday List Assignment"), + ) + ) + return holiday_list + + +def get_assigned_holiday_list(assigned_to: str, as_on=None, as_dict: bool = False) -> str: + as_on = frappe.utils.getdate(as_on) + HLA = frappe.qb.DocType("Holiday List Assignment") + query = ( + frappe.qb.from_(HLA) + .select(HLA.holiday_list) + .where(HLA.assigned_to == assigned_to) + .where(HLA.from_date <= as_on) + .where(HLA.docstatus == 1) + .orderby(HLA.from_date, order=frappe.qb.desc) + .limit(1) + ) + if as_dict: + query = query.select(HLA.from_date) + holiday_list = query.run(as_dict=True) + return holiday_list[0] if holiday_list else None + + result = query.run() + holiday_list = result[0][0] if result else None + + return holiday_list + + +def invalidate_cache(doc, method=None): + from hrms.payroll.doctype.salary_slip.salary_slip import HOLIDAYS_BETWEEN_DATES + + frappe.cache().delete_value(HOLIDAYS_BETWEEN_DATES) diff --git a/apps/erpnext/src/hrms/hrms/workspace_sidebar/expenses.json b/apps/erpnext/src/hrms/hrms/workspace_sidebar/expenses.json new file mode 100644 index 000000000..fe00f9142 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/workspace_sidebar/expenses.json @@ -0,0 +1,278 @@ +{ + "app": "hrms", + "creation": "2025-10-26 21:53:46.574309", + "docstatus": 0, + "doctype": "Workspace Sidebar", + "header_icon": "expenses", + "idx": 0, + "items": [ + { + "child": 0, + "collapsible": 1, + "icon": "home", + "indent": 0, + "keep_closed": 0, + "label": "Home", + "link_to": "Expenses", + "link_type": "Workspace", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "layout-dashboard", + "indent": 0, + "keep_closed": 0, + "label": "Dashboard", + "link_to": "Expense Claims", + "link_type": "Dashboard", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "upload", + "indent": 0, + "keep_closed": 0, + "label": "Employee Advance", + "link_to": "Employee Advance", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "arrow-down-from-line", + "indent": 0, + "keep_closed": 0, + "label": "Expense Claim", + "link_to": "Expense Claim", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "plane", + "indent": 1, + "keep_closed": 1, + "label": "Travel", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Purpose of Travel", + "link_to": "Purpose of Travel", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Travel Request", + "link_to": "Travel Request", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Vehicle Log", + "link_to": "Vehicle Log", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "money-coins-1", + "indent": 1, + "keep_closed": 1, + "label": "Accounting Entries", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Payment Entry", + "link_to": "Payment Entry", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Journal Entry", + "link_to": "Journal Entry", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "notepad-text", + "indent": 1, + "keep_closed": 1, + "label": "Reports", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Unpaid Expense Claim", + "link_to": "Unpaid Expense Claim", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Vehicle Expenses", + "link_to": "Vehicle Expenses", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Accounts Receivable", + "link_to": "Accounts Receivable", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Accounts Payable", + "link_to": "Accounts Payable", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "General Ledger", + "link_to": "General Ledger", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "database", + "indent": 1, + "keep_closed": 1, + "label": "Setup", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Expense Claim Type", + "link_to": "Expense Claim Type", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Driver", + "link_to": "Driver", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Vehicle", + "link_to": "Vehicle", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "settings", + "indent": 0, + "keep_closed": 0, + "label": "Settings", + "link_to": "HR Settings", + "link_type": "DocType", + "navigate_to_tab": "expenses_tab", + "show_arrow": 0, + "type": "Link" + } + ], + "modified": "2026-01-08 14:16:38.878865", + "modified_by": "Administrator", + "module": "HR", + "name": "Expenses", + "owner": "Administrator", + "standard": 1, + "title": "Expenses" +} diff --git a/apps/erpnext/src/hrms/hrms/workspace_sidebar/leaves.json b/apps/erpnext/src/hrms/hrms/workspace_sidebar/leaves.json new file mode 100644 index 000000000..c832f4ea9 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/workspace_sidebar/leaves.json @@ -0,0 +1,231 @@ +{ + "app": "hrms", + "creation": "2025-10-26 21:53:46.590129", + "docstatus": 0, + "doctype": "Workspace Sidebar", + "header_icon": "non-profit", + "idx": 0, + "items": [ + { + "child": 0, + "collapsible": 1, + "icon": "home", + "indent": 0, + "keep_closed": 0, + "label": "Home", + "link_to": "Leaves", + "link_type": "Workspace", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "clipboard-pen", + "indent": 0, + "keep_closed": 0, + "label": "Leave Application", + "link_to": "Leave Application", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "money-coins-1", + "indent": 0, + "keep_closed": 0, + "label": "Leave Encashment", + "link_to": "Leave Encashment", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "setting", + "indent": 0, + "keep_closed": 0, + "label": "Leave Control Panel", + "link_to": "Leave Control Panel", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "calendar-heart", + "indent": 0, + "keep_closed": 0, + "label": "Leave Policy Assignment", + "link_to": "Leave Policy Assignment", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "clipboard-check", + "indent": 0, + "keep_closed": 0, + "label": "Leave Allocation", + "link_to": "Leave Allocation", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "notepad-text", + "indent": 1, + "keep_closed": 1, + "label": "Reports", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Leave Balance", + "link_to": "Employee Leave Balance", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Leave Balance Summary", + "link_to": "Employee Leave Balance Summary", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Employees Working on a Holiday", + "link_to": "Employees working on a holiday", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "database", + "indent": 1, + "keep_closed": 1, + "label": "Setup", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Holiday List", + "link_to": "Holiday List", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "indent": 0, + "keep_closed": 0, + "label": "Holiday List Assignment", + "link_to": "Holiday List Assignment", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Leave Period", + "link_to": "Leave Period", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Leave Policy", + "link_to": "Leave Policy", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Leave Block List", + "link_to": "Leave Block List", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Leave Type", + "link_to": "Leave Type", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "settings", + "indent": 0, + "keep_closed": 0, + "label": "Settings", + "link_to": "HR Settings", + "link_type": "DocType", + "navigate_to_tab": "leaves_tab", + "show_arrow": 0, + "type": "Link" + } + ], + "modified": "2026-01-12 14:12:08.828397", + "modified_by": "Administrator", + "module": "HR", + "name": "Leaves", + "owner": "Administrator", + "standard": 1, + "title": "Leaves" +} diff --git a/apps/erpnext/src/hrms/hrms/workspace_sidebar/payroll.json b/apps/erpnext/src/hrms/hrms/workspace_sidebar/payroll.json new file mode 100644 index 000000000..3501a13da --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/workspace_sidebar/payroll.json @@ -0,0 +1,219 @@ +{ + "app": "hrms", + "creation": "2025-11-12 15:31:27.314457", + "docstatus": 0, + "doctype": "Workspace Sidebar", + "header_icon": "accounting", + "idx": 0, + "items": [ + { + "child": 0, + "collapsible": 1, + "icon": "home", + "indent": 0, + "keep_closed": 0, + "label": "Home", + "link_to": "Payroll", + "link_type": "Workspace", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "layout-dashboard", + "indent": 0, + "keep_closed": 0, + "label": "Dashboard", + "link_to": "Payroll", + "link_type": "Dashboard", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "banknote-arrow-up", + "indent": 0, + "keep_closed": 0, + "label": "Payroll Entry", + "link_to": "Payroll Entry", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "loan", + "indent": 0, + "keep_closed": 0, + "label": "Salary Structure Assignment", + "link_to": "Salary Structure Assignment", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "accounting", + "indent": 0, + "keep_closed": 0, + "label": "Salary Slip", + "link_to": "Salary Slip", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "piggy-bank", + "indent": 0, + "keep_closed": 0, + "label": "Additional Salary", + "link_to": "Additional Salary", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "banknote-x", + "indent": 0, + "keep_closed": 0, + "label": "Salary Withholding", + "link_to": "Salary Withholding", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "notepad-text", + "indent": 1, + "keep_closed": 1, + "label": "Reports", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Salary Register", + "link_to": "Salary Register", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Income Tax Deductions", + "link_to": "Income Tax Deductions", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Professional Tax Deductions", + "link_to": "Professional Tax Deductions", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "General Ledger", + "link_to": "General Ledger", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Accounts Payable", + "link_to": "Accounts Payable", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "database", + "indent": 1, + "keep_closed": 1, + "label": "Setup", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Salary Component", + "link_to": "Salary Component", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Salary Structure", + "link_to": "Salary Structure", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "settings", + "indent": 0, + "keep_closed": 0, + "label": "Settings", + "link_to": "Payroll Settings", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + } + ], + "modified": "2026-01-08 14:16:38.399025", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Payroll", + "owner": "Administrator", + "standard": 1, + "title": "Payroll" +} diff --git a/apps/erpnext/src/hrms/hrms/workspace_sidebar/people.json b/apps/erpnext/src/hrms/hrms/workspace_sidebar/people.json new file mode 100644 index 000000000..43386fdd2 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/workspace_sidebar/people.json @@ -0,0 +1,157 @@ +{ + "app": "hrms", + "creation": "2025-11-12 15:31:27.305365", + "docstatus": 0, + "doctype": "Workspace Sidebar", + "for_user": "", + "header_icon": "hr", + "idx": 0, + "items": [ + { + "child": 0, + "collapsible": 1, + "icon": "home", + "indent": 0, + "keep_closed": 0, + "label": "Home", + "link_to": "People", + "link_type": "Workspace", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "layout-dashboard", + "indent": 0, + "keep_closed": 0, + "label": "Dashboard", + "link_to": "Human Resource", + "link_type": "Dashboard", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "square-user-round", + "indent": 0, + "keep_closed": 0, + "label": "Employee", + "link_to": "Employee", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "organization", + "indent": 0, + "keep_closed": 0, + "label": "Organizational Chart", + "link_to": "organizational-chart", + "link_type": "Page", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "database", + "indent": 1, + "keep_closed": 1, + "label": "Setup", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "indent": 0, + "keep_closed": 0, + "label": "Company", + "link_to": "Company", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "indent": 0, + "keep_closed": 0, + "label": "Branch", + "link_to": "Branch", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "indent": 0, + "keep_closed": 0, + "label": "Department", + "link_to": "Department", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "indent": 0, + "keep_closed": 0, + "label": "Designation", + "link_to": "Designation", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "indent": 0, + "keep_closed": 0, + "label": "Employee Group", + "link_to": "Employee Group", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "indent": 0, + "keep_closed": 0, + "label": "Employee Grade", + "link_to": "Employee Grade", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "settings", + "indent": 0, + "keep_closed": 0, + "label": "Settings", + "link_to": "HR Settings", + "link_type": "DocType", + "navigate_to_tab": "employee_tab", + "route_options": "", + "show_arrow": 0, + "type": "Link", + "url": "/desk/hr-settings#employee_tab" + } + ], + "modified": "2026-01-09 17:22:08.890026", + "modified_by": "Administrator", + "module": "HR", + "name": "People", + "owner": "Administrator", + "title": "People" +} diff --git a/apps/erpnext/src/hrms/hrms/workspace_sidebar/performance.json b/apps/erpnext/src/hrms/hrms/workspace_sidebar/performance.json new file mode 100644 index 000000000..a48321775 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/workspace_sidebar/performance.json @@ -0,0 +1,158 @@ +{ + "app": "hrms", + "creation": "2025-10-26 21:53:46.604449", + "docstatus": 0, + "doctype": "Workspace Sidebar", + "header_icon": "star", + "idx": 0, + "items": [ + { + "child": 0, + "collapsible": 1, + "icon": "home", + "indent": 0, + "keep_closed": 0, + "label": "Home", + "link_to": "Performance", + "link_type": "Workspace", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "goal", + "indent": 0, + "keep_closed": 0, + "label": "Goal", + "link_to": "Goal", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "orbit", + "indent": 0, + "keep_closed": 0, + "label": "Appraisal Cycle", + "link_to": "Appraisal Cycle", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "up-arrow", + "indent": 0, + "keep_closed": 0, + "label": "Appraisal", + "link_to": "Appraisal", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "criticize", + "indent": 0, + "keep_closed": 0, + "label": "Employee Performance Feedback", + "link_to": "Employee Performance Feedback", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "graduation-cap", + "indent": 0, + "keep_closed": 0, + "label": "Employee Promotion", + "link_to": "Employee Promotion", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "notepad-text", + "indent": 1, + "keep_closed": 1, + "label": "Reports", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "indent": 0, + "keep_closed": 0, + "label": "Appraisal Overview", + "link_to": "Appraisal Overview", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "database", + "indent": 1, + "keep_closed": 1, + "label": "Setup", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Appraisal Template", + "link_to": "Appraisal Template", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "KRA", + "link_to": "KRA", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Employee Feedback Criteria", + "link_to": "Employee Feedback Criteria", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + } + ], + "modified": "2026-01-10 15:07:50.379158", + "modified_by": "Administrator", + "module": "HR", + "name": "Performance", + "owner": "Administrator", + "standard": 1, + "title": "Performance" +} diff --git a/apps/erpnext/src/hrms/hrms/workspace_sidebar/recruitment.json b/apps/erpnext/src/hrms/hrms/workspace_sidebar/recruitment.json new file mode 100644 index 000000000..bed0cad6c --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/workspace_sidebar/recruitment.json @@ -0,0 +1,208 @@ +{ + "app": "hrms", + "creation": "2025-11-12 15:31:27.312859", + "docstatus": 0, + "doctype": "Workspace Sidebar", + "header_icon": "users", + "idx": 0, + "items": [ + { + "child": 0, + "collapsible": 1, + "icon": "home", + "indent": 0, + "keep_closed": 0, + "label": "Home", + "link_to": "Recruitment", + "link_type": "Workspace", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "layout-dashboard", + "indent": 0, + "keep_closed": 0, + "label": "Dashboard", + "link_to": "Recruitment", + "link_type": "Dashboard", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "circle-user-round", + "indent": 0, + "keep_closed": 0, + "label": "Job Applicant", + "link_to": "Job Applicant", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "videotape", + "indent": 0, + "keep_closed": 0, + "label": "Interview", + "link_to": "Interview", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "user-round-check", + "indent": 0, + "keep_closed": 0, + "label": "Job Offer", + "link_to": "Job Offer", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "file", + "indent": 0, + "keep_closed": 0, + "label": "Appointment Letter", + "link_to": "Appointment Letter", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "notepad-text", + "indent": 1, + "keep_closed": 1, + "label": "Reports", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Recruitment Analytics", + "link_to": "Recruitment Analytics", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "database", + "indent": 1, + "keep_closed": 1, + "label": "Setup", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Staffing Plan", + "link_to": "Staffing Plan", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Job Requisition", + "link_to": "Job Requisition", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Job Opening", + "link_to": "Job Opening", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Interview Type", + "link_to": "Interview Type", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Interview Round", + "link_to": "Interview Round", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Appointment Letter Template", + "link_to": "Appointment Letter Template", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "settings", + "indent": 0, + "keep_closed": 0, + "label": "Settings", + "link_to": "HR Settings", + "link_type": "DocType", + "navigate_to_tab": "recruitment_tab", + "show_arrow": 0, + "type": "Link" + } + ], + "modified": "2026-01-08 14:16:38.419516", + "modified_by": "Administrator", + "module": "HR", + "name": "Recruitment", + "owner": "Administrator", + "standard": 1, + "title": "Recruitment" +} diff --git a/apps/erpnext/src/hrms/hrms/workspace_sidebar/shift_&_attendance.json b/apps/erpnext/src/hrms/hrms/workspace_sidebar/shift_&_attendance.json new file mode 100644 index 000000000..a45b045ee --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/workspace_sidebar/shift_&_attendance.json @@ -0,0 +1,279 @@ +{ + "app": "hrms", + "creation": "2025-11-12 15:31:27.318914", + "docstatus": 0, + "doctype": "Workspace Sidebar", + "header_icon": "milestone", + "idx": 0, + "items": [ + { + "child": 0, + "collapsible": 1, + "icon": "home", + "indent": 0, + "keep_closed": 0, + "label": "Home", + "link_to": "Shift & Attendance", + "link_type": "Workspace", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "calendar-range", + "indent": 0, + "keep_closed": 0, + "label": "Roster", + "link_type": "URL", + "show_arrow": 0, + "type": "Link", + "url": "/hr/roster" + }, + { + "child": 0, + "collapsible": 1, + "icon": "layout-dashboard", + "indent": 0, + "keep_closed": 0, + "label": "Dashboard", + "link_to": "Attendance", + "link_type": "Dashboard", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "tool", + "indent": 0, + "keep_closed": 0, + "label": "Employee Attendance Tool", + "link_to": "Employee Attendance Tool", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "pointer", + "indent": 0, + "keep_closed": 0, + "label": "Employee Checkin", + "link_to": "Employee Checkin", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "bell-dot", + "indent": 0, + "keep_closed": 0, + "label": "Shift Request", + "link_to": "Shift Request", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "calendar-check", + "indent": 0, + "keep_closed": 0, + "label": "Attendance Request", + "link_to": "Attendance Request", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "calendar-clock", + "indent": 1, + "keep_closed": 1, + "label": "Overtime", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Overtime Type", + "link_to": "Overtime Type", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Overtime Slip", + "link_to": "Overtime Slip", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "notepad-text", + "indent": 1, + "keep_closed": 1, + "label": "Reports", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Monthly Attendance Sheet", + "link_to": "Monthly Attendance Sheet", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Shift Attendance", + "link_to": "Shift Attendance", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Employee Hours Utilization", + "link_to": "Employee Hours Utilization Based On Timesheet", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Project Profitability", + "link_to": "Project Profitability", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "database", + "indent": 1, + "keep_closed": 1, + "label": "Setup", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Shift Type", + "link_to": "Shift Type", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Shift Location", + "link_to": "Shift Location", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Shift Schedule", + "link_to": "Shift Schedule", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Activity Type", + "link_to": "Activity Type", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Timesheet", + "link_to": "Timesheet", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "settings", + "indent": 0, + "keep_closed": 0, + "label": "Settings", + "link_to": "HR Settings", + "link_type": "DocType", + "navigate_to_tab": "shift_and_attendance_tab", + "show_arrow": 0, + "type": "Link" + } + ], + "modified": "2026-01-08 14:16:38.373198", + "modified_by": "Administrator", + "module": "HR", + "name": "Shift & Attendance", + "owner": "Administrator", + "standard": 1, + "title": "Shift & Attendance" +} diff --git a/apps/erpnext/src/hrms/hrms/workspace_sidebar/tax_&_benefits.json b/apps/erpnext/src/hrms/hrms/workspace_sidebar/tax_&_benefits.json new file mode 100644 index 000000000..486a52d33 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/workspace_sidebar/tax_&_benefits.json @@ -0,0 +1,158 @@ +{ + "app": "hrms", + "creation": "2025-11-12 15:31:27.323617", + "docstatus": 0, + "doctype": "Workspace Sidebar", + "header_icon": "money-coins-1", + "idx": 0, + "items": [ + { + "child": 0, + "collapsible": 1, + "icon": "home", + "indent": 0, + "keep_closed": 0, + "label": "Home", + "link_to": "Tax & Benefits", + "link_type": "Workspace", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "badge-alert", + "indent": 0, + "keep_closed": 0, + "label": "Exemption Declaration", + "link_to": "Employee Tax Exemption Declaration", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "liabilities", + "indent": 0, + "keep_closed": 0, + "label": "Exemption Submission Proof", + "link_to": "Employee Tax Exemption Proof Submission", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "criticize", + "indent": 0, + "keep_closed": 0, + "label": "Benefit Application", + "link_to": "Employee Benefit Application", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "list-todo", + "indent": 0, + "keep_closed": 0, + "label": "Benefit Claim", + "link_to": "Employee Benefit Claim", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "notepad-text", + "indent": 1, + "keep_closed": 1, + "label": "Reports", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Income Tax Computation", + "link_to": "Income Tax Computation", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Income Tax Deductions", + "link_to": "Income Tax Deductions", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "indent": 0, + "keep_closed": 0, + "label": "Accrued Earnings Report", + "link_to": "Accrued Earnings Report", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "database", + "indent": 1, + "keep_closed": 1, + "label": "Setup", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Income Tax Slab", + "link_to": "Income Tax Slab", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Exemption Category", + "link_to": "Employee Tax Exemption Category", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + } + ], + "modified": "2026-02-23 12:00:35.246366", + "modified_by": "Administrator", + "module": "Payroll", + "name": "Tax & Benefits", + "owner": "Administrator", + "standard": 1, + "title": "Tax & Benefits" +} diff --git a/apps/erpnext/src/hrms/hrms/workspace_sidebar/tenure.json b/apps/erpnext/src/hrms/hrms/workspace_sidebar/tenure.json new file mode 100644 index 000000000..003b9d5c5 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/workspace_sidebar/tenure.json @@ -0,0 +1,232 @@ +{ + "app": "hrms", + "creation": "2025-10-26 21:53:46.569705", + "docstatus": 0, + "doctype": "Workspace Sidebar", + "header_icon": "customer", + "idx": 0, + "items": [ + { + "child": 0, + "collapsible": 1, + "icon": "home", + "indent": 0, + "keep_closed": 0, + "label": "Home", + "link_to": "Tenure", + "link_type": "Workspace", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "layout-dashboard", + "indent": 0, + "keep_closed": 0, + "label": "Dashboard", + "link_to": "Employee Lifecycle", + "link_type": "Dashboard", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "user-star", + "indent": 0, + "keep_closed": 0, + "label": "Employee Onboarding", + "link_to": "Employee Onboarding", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "user-round-minus", + "indent": 0, + "keep_closed": 0, + "label": "Employee Separation", + "link_to": "Employee Separation", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "user-lock", + "indent": 0, + "keep_closed": 0, + "label": "Employee Grievance", + "link_to": "Employee Grievance", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "notepad-text", + "indent": 1, + "keep_closed": 1, + "label": "Reports", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Employee Exits", + "link_to": "Employee Exits", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Employee Birthday", + "link_to": "Employee Birthday", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Employee Information", + "link_to": "Employee Information", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Employee Analytics", + "link_to": "Employee Analytics", + "link_type": "Report", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "database", + "indent": 1, + "keep_closed": 1, + "label": "Setup", + "link_type": "DocType", + "show_arrow": 0, + "type": "Section Break" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Employee Skill Map", + "link_to": "Employee Skill Map", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Grievance Type", + "link_to": "Grievance Type", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Training Program", + "link_to": "Training Program", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Training Event", + "link_to": "Training Event", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Training Feedback", + "link_to": "Training Feedback", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 1, + "collapsible": 1, + "icon": "", + "indent": 0, + "keep_closed": 0, + "label": "Training Result", + "link_to": "Training Result", + "link_type": "DocType", + "show_arrow": 0, + "type": "Link" + }, + { + "child": 0, + "collapsible": 1, + "icon": "settings", + "indent": 0, + "keep_closed": 0, + "label": "Settings", + "link_to": "HR Settings", + "link_type": "DocType", + "navigate_to_tab": "tenure_tab", + "show_arrow": 0, + "type": "Link" + } + ], + "modified": "2026-01-08 14:16:38.897628", + "modified_by": "Administrator", + "module": "HR", + "name": "Tenure", + "owner": "Administrator", + "standard": 1, + "title": "Tenure" +} diff --git a/apps/erpnext/src/hrms/hrms/www/__init__.py b/apps/erpnext/src/hrms/hrms/www/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/www/hrms.py b/apps/erpnext/src/hrms/hrms/www/hrms.py new file mode 100644 index 000000000..cf3482771 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/www/hrms.py @@ -0,0 +1,39 @@ +import frappe +from frappe.boot import load_translations + +no_cache = 1 + + +def get_context(context): + csrf_token = frappe.sessions.get_csrf_token() + frappe.db.commit() # nosempgrep + context = frappe._dict() + context.csrf_token = csrf_token + context.boot = get_boot() + return context + + +@frappe.whitelist(methods=["POST"], allow_guest=True) +def get_context_for_dev(): + if not frappe.conf.developer_mode: + frappe.throw(frappe._("This method is only meant for developer mode")) + return get_boot() + + +def get_boot(): + bootinfo = frappe._dict( + { + "site_name": frappe.local.site, + "push_relay_server_url": frappe.conf.get("push_relay_server_url") or "", + "default_route": get_default_route(), + } + ) + + bootinfo.lang = frappe.local.lang + load_translations(bootinfo) + + return bootinfo + + +def get_default_route(): + return "/hrms" diff --git a/apps/erpnext/src/hrms/hrms/www/jobs/__init__.py b/apps/erpnext/src/hrms/hrms/www/jobs/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/erpnext/src/hrms/hrms/www/jobs/index.css b/apps/erpnext/src/hrms/hrms/www/jobs/index.css new file mode 100644 index 000000000..0f7b73c9d --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/www/jobs/index.css @@ -0,0 +1,106 @@ +body.jobs-page { + background: var(--gray-50); +} + +h3.jobs-page { + font-size: 1.7rem; +} + +h4.jobs-page { + font-size: 1.35rem; +} + +.text-18 { + font-size: 18px; +} + +.text-17 { + font-size: 17px; +} + +.text-15 { + font-size: 15px; +} + +.text-14 { + font-size: 14px; +} + +.text-13 { + font-size: 13px; +} + +.text-12 { + font-size: 12px; +} + +.full-time-badge { + background: var(--bg-green); + color: var(--text-on-green); + border-radius: var(--border-radius); +} + +.part-time-badge { + background: var(--bg-orange); + color: var(--text-on-orange); + border-radius: var(--border-radius); +} + +.other-badge { + background: var(--bg-blue); + color: var(--text-on-blue); + border-radius: var(--border-radius); +} + +.order-item:active { + background-color: var(--gray-200); +} + +.job-card-footer { + background: var(--gray-100); + border-radius: 0 0 0.75rem 0.75rem; +} + +.search-box-container { + width: 100%; +} + +#search-box { + padding-left: 36px; + background-color: var(--bg-color); +} + +.search-bar .search-icon { + position: absolute; + margin-left: 12px; + display: flex; + align-items: center; + height: 100%; +} + +.filters-section .title-section { + border-bottom: 1px solid var(--gray-300); +} + +.filters-drawer { + height: 80vh; + bottom: -80vh; + display: flex; + flex-direction: column; + left: 0; + transition: bottom 0.3s ease; + box-shadow: 0px -5px 15px rgba(0, 0, 0, 0.1); + border-radius: 16px 16px 0px 0px; + z-index: 5 !important; +} + +.overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); + display: none; + z-index: 3 !important; +} diff --git a/apps/erpnext/src/hrms/hrms/www/jobs/index.html b/apps/erpnext/src/hrms/hrms/www/jobs/index.html new file mode 100644 index 000000000..5e85dfbc4 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/www/jobs/index.html @@ -0,0 +1,359 @@ +{% extends "templates/web.html" %} +{% block title %} {{ _("Job Openings") }} {% endblock title %} + +{% block header %} +

            {{ _("Job Openings") }}

            +{% endblock header %} + +{% block page_content %} + + +
            + +
            +
            +

            {{ _("Filters") }}

            + {{ _("Clear All") }} +
            +
            + + {% for name, values in all_filters.items() %} +
            +

            + {{ name.title() | replace('_', ' ') }} +

            + + {% for value in values %} +
            + + +
            + {% endfor %} +
            + {% endfor %} +
            + +
            +
            + +
            + +
            + + +
            +
            +
            + + + {% set sort = frappe.form_dict.sort %} + +
            + {{ _("Posting Date") }} +
            + + + + +
            +
            +
            +
            + + +

            + {% set job_opening_count = job_openings|length %} + {{ _("Showing") + " " + frappe.utils.cstr(job_opening_count) + " " }} + {{ _("result") if job_opening_count == 1 else _("results")}} +

            + +
            + {% for jo in job_openings %} +
            +
            +
            +
            +
            +

            + {{ jo.job_title }} +

            +
            + {{ jo.company }} + + {{ " · " }} {{ jo.posted_on }} + +
            +
            + + {%- if jo.employment_type -%} +
            +
            + {%- if jo.employment_type == "Full-time" -%} +
            + • {{ jo.employment_type }} +
            + {%- elif jo.employment_type == "Part-time" -%} +
            + • {{ jo.employment_type }} +
            + {%- else -%} +
            + • {{ jo.employment_type }} +
            + {% endif %} +
            +
            + {% endif %} +
            + + +
            + {%- if jo.location -%} +
            + + + + + + + {{ jo.location }} +
            + {% endif %} + + {%- if jo.department -%} +
            + + + + {{ jo.department }} +
            + {% endif %} + + {%- if jo.publish_salary_range -%} +
            + + + +   + {%- if jo.lower_range -%} + {{ frappe.format_value(frappe.utils.flt(jo.lower_range), currency=jo.currency) }} + {% endif %} + {%- if jo.lower_range and jo.upper_range -%} + {{ " - " }} + {% endif %} + {%- if jo.upper_range -%} + {{ frappe.format_value(frappe.utils.flt(jo.upper_range), currency=jo.currency) }} + {% endif %} + / + {{ jo.salary_per.lower() }} +
            + {% endif %} +
            +
            + + +
            +
            + {% endfor %} +
            + + + {%- if no_of_pages > 1 -%} +
            +
            + {% set page = frappe.form_dict.page %} + {% set page = '1' if (not page or page|int > no_of_pages or page|int < 1) else page %} + + +
            + {% set initial_page = 1 if page|int == 1 else ((page|int / 3 + 0.5) | round(method='floor')|int * 3 - 2) %} + {% set no_of_displayed_pages = 5 if no_of_pages - initial_page > 5 else no_of_pages - initial_page + 1 %} + {% for i in range(no_of_displayed_pages) %} + {% set pg = i + initial_page %} + + {% endfor %} +
            + + +
            +
            + {% endif %} +
            + + +
            +
            +

            {{ _("Filters") }}

            +
            + + + +
            +
            + +
            + {% for name, values in all_filters.items() %} +
            +

            + {{ name.title() | replace('_', ' ') }} +

            + + {% for value in values %} +
            + + +
            + {% endfor %} +
            + {% endfor %} +
            + + +
            + +
            + +
            +{% endblock page_content %} diff --git a/apps/erpnext/src/hrms/hrms/www/jobs/index.js b/apps/erpnext/src/hrms/hrms/www/jobs/index.js new file mode 100644 index 000000000..01a56aa37 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/www/jobs/index.js @@ -0,0 +1,138 @@ +$(() => { + const query_params = frappe.utils.get_query_params(); + update_ui_with_filters(); + + $(".desktop-filters").change(function () { + update_params(get_new_params(".desktop-filters")); + }); + + $("#apply-filters").on("click", function () { + update_params(get_new_params(".mobile-filters")); + }); + + $("[name=clear-filters]").on("click", function () { + update_params(); + }); + + $("#filter").click(function () { + scroll_up_and_execute(() => { + $("#filters-drawer").css("bottom", 0); + $("#overlay").show(); + $("html, body").css({ + overflow: "hidden", + height: "100%", + }); + }); + }); + + $("[name=close-filters-drawer").click(function () { + $("#filters-drawer").css("bottom", "-80vh"); + $("#overlay").hide(); + $("html, body").css({ + overflow: "auto", + height: "auto", + }); + }); + + $("#search-box").bind("search", function () { + update_params(get_new_params(".desktop-filters")); + }); + + $("#search-box").keyup(function (e) { + if (e.keyCode == 13) { + $(this).trigger("search"); + } + }); + + $("#sort").on("click", function () { + const filters = $(".desktop-filters").serialize(); + query_params.sort === "asc" + ? update_params(filters) + : update_params(filters + "&sort=asc"); + }); + + $("[name=card]").on("click", function () { + window.location.href = this.id; + }); + + $("[name=pagination]").on("click", function () { + const filters = $(".desktop-filters").serialize(); + update_params(filters + "&page=" + this.id); + }); + + $("#previous").on("click", function () { + const new_page = (Number(query_params?.page) || 1) - 1; + const filters = $(".desktop-filters").serialize(); + update_params(filters + "&page=" + new_page); + }); + + $("#next").on("click", function () { + const new_page = (Number(query_params?.page) || 1) + 1; + const filters = $(".desktop-filters").serialize(); + update_params(filters + "&page=" + new_page); + }); + + function update_ui_with_filters() { + const allowed_filters = Object.keys( + JSON.parse($("#data").data("filters").replace(/'/g, '"')), + ); + + for (const filter in query_params) { + if (filter === "query") $("#search-box").val(query_params["query"]); + else if (filter === "page") disable_inapplicable_pagination_buttons(); + else if (allowed_filters.includes(filter)) { + if (typeof query_params[filter] === "string") { + $("#desktop-" + $.escapeSelector(query_params[filter])).prop("checked", true); + $("#mobile-" + $.escapeSelector(query_params[filter])).prop("checked", true); + } else + for (const d of query_params[filter]) { + $("#desktop-" + $.escapeSelector(d)).prop("checked", true); + $("#mobile-" + $.escapeSelector(d)).prop("checked", true); + } + } else continue; + } + } + + function disable_inapplicable_pagination_buttons() { + const no_of_pages = JSON.parse($("#data").data("no-of-pages")); + const page_no = Number(query_params["page"]); + if (page_no === no_of_pages) { + $("#next").prop("disabled", true); + } else if (page_no > no_of_pages || page_no <= 1) { + $("#previous").prop("disabled", true); + } + } + + function get_new_params(filter_group) { + return "sort" in query_params + ? $(filter_group).serialize() + "&" + $.param({ sort: query_params["sort"] }) + : $(filter_group).serialize(); + } +}); + +function update_params(params = "") { + if ($("#filters-drawer").css("bottom") != "0px") + return scroll_up_and_execute(() => (window.location.href = "/jobs?" + params)); + + $("#filters-drawer").css("bottom", "-80vh"); + $("#filters-drawer").on("transitionend webkitTransitionEnd oTransitionEnd", () => + scroll_up_and_execute(() => (window.location.href = "/jobs?" + params)), + ); +} + +function scroll_up_and_execute(callback) { + if (window.scrollY === 0) return callback(); + + function execute_after_scrolling_up() { + if (window.scrollY === 0) { + callback(); + window.removeEventListener("scroll", execute_after_scrolling_up); + } + } + + window.scroll({ + top: 0, + behavior: "smooth", + }); + window.addEventListener("scroll", execute_after_scrolling_up); +} diff --git a/apps/erpnext/src/hrms/hrms/www/jobs/index.py b/apps/erpnext/src/hrms/hrms/www/jobs/index.py new file mode 100644 index 000000000..f8f100f13 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/www/jobs/index.py @@ -0,0 +1,131 @@ +import math + +import frappe +from frappe import _ +from frappe.query_builder import Order +from frappe.query_builder.functions import Count +from frappe.utils import pretty_date + + +def get_context(context): + context.no_cache = 1 + if frappe.session.user == "Guest": + context.parents = [{"name": _("Home"), "route": "/"}] + else: + context.parents = [{"name": _("My Account"), "route": "/me"}] + context.body_class = "jobs-page" + page_len = 20 + filters, txt, sort, offset = get_filters_txt_sort_offset(page_len) + context.job_openings = get_job_openings(filters, txt, sort, page_len, offset) + context.no_of_pages = get_no_of_pages(filters, txt, page_len) + context.all_filters = get_all_filters(filters) + context.sort = sort + + +def get_job_openings(filters=None, txt=None, sort=None, limit=20, offset=0): + jo = frappe.qb.DocType("Job Opening") + ja = frappe.qb.DocType("Job Applicant") + + query = ( + frappe.qb.from_(jo) + .left_join(ja) + .on(ja.job_title == jo.name) + .select( + jo.name, + jo.status, + jo.job_title, + jo.description, + jo.publish_applications_received, + jo.publish_salary_range, + jo.lower_range, + jo.upper_range, + jo.currency, + jo.job_application_route, + jo.salary_per, + jo.route, + jo.location, + jo.department, + jo.employment_type, + jo.company, + jo.posted_on, + jo.closes_on, + Count(ja.job_title).as_("no_of_applications"), + ) + .where((jo.status == "Open") & (jo.publish == 1)) + .groupby(jo.name) + .limit(limit) + .offset(offset) + ) + + for d in filters: + query = query.where(frappe.qb.Field(d).isin(filters[d])) + + if txt: + query = query.where((jo.job_title.like(f"%{txt}%")) | (jo.description.like(f"%{txt}%"))) + + query = query.orderby("posted_on", order=Order.asc if sort == "asc" else Order.desc) + results = query.run(as_dict=True) + + for d in results: + d.posted_on = pretty_date(d.posted_on) + return results + + +def get_no_of_pages(filters=None, txt=None, page_length=20): + jo = frappe.qb.DocType("Job Opening") + query = ( + frappe.qb.from_(jo) + .select( + Count("*").as_("no_of_openings"), + ) + .where((jo.status == "Open") & (jo.publish == 1)) + ) + + for d in filters: + query = query.where(frappe.qb.Field(d).isin(filters[d])) + + if txt: + query = query.where((jo.job_title.like(f"%{txt}%")) | (jo.description.like(f"%{txt}%"))) + + result = query.run(as_dict=True) + return math.ceil(result[0].no_of_openings / page_length) + + +def get_all_filters(filters=None): + job_openings = frappe.get_all( + "Job Opening", + filters={"publish": 1, "status": "Open"}, + fields=["company", "department", "employment_type", "location"], + ) + + companies = filters.get("company", []) + + all_filters = {} + for opening in job_openings: + for key, value in opening.items(): + if value and (key == "company" or not companies or opening.company in companies): + all_filters.setdefault(key, set()).add(value) + + return {key: sorted(value) for key, value in all_filters.items()} + + +def get_filters_txt_sort_offset(page_len=20): + args = frappe.request.args.to_dict(flat=False) + filters = {} + txt = "" + sort = None + offset = 0 + allowed_filters = ["company", "department", "employment_type", "location"] + + for d in args: + if d in allowed_filters: + filters[d] = args[d] + elif d == "query": + txt = args["query"][0] + elif d == "sort": + if args["sort"][0]: + sort = args["sort"][0] + elif d == "page": + offset = (int(args["page"][0]) - 1) * page_len + + return filters, txt, sort, offset diff --git a/apps/erpnext/src/hrms/hrms/www/roster.py b/apps/erpnext/src/hrms/hrms/www/roster.py new file mode 100644 index 000000000..ed97f99c6 --- /dev/null +++ b/apps/erpnext/src/hrms/hrms/www/roster.py @@ -0,0 +1,9 @@ +import frappe + + +def get_context(context): + csrf_token = frappe.sessions.get_csrf_token() + frappe.db.commit() # nosempgrep + context = frappe._dict() + context.csrf_token = csrf_token + return context diff --git a/apps/erpnext/src/hrms/license.txt b/apps/erpnext/src/hrms/license.txt new file mode 100644 index 000000000..a238a97b0 --- /dev/null +++ b/apps/erpnext/src/hrms/license.txt @@ -0,0 +1,675 @@ +### GNU GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +### Preamble + +The GNU General Public License is a free, copyleft license for +software and other kinds of works. + +The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom +to share and change all versions of a program--to make sure it remains +free software for all its users. We, the Free Software Foundation, use +the GNU General Public License for most of our software; it applies +also to any other work released this way by its authors. You can apply +it to your programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you +have certain responsibilities if you distribute copies of the +software, or if you modify it: responsibilities to respect the freedom +of others. + +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + +Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + +Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the +manufacturer can do so. This is fundamentally incompatible with the +aim of protecting users' freedom to change the software. The +systematic pattern of such abuse occurs in the area of products for +individuals to use, which is precisely where it is most unacceptable. +Therefore, we have designed this version of the GPL to prohibit the +practice for those products. If such problems arise substantially in +other domains, we stand ready to extend this provision to those +domains in future versions of the GPL, as needed to protect the +freedom of users. + +Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish +to avoid the special danger that patents applied to a free program +could make it effectively proprietary. To prevent this, the GPL +assures that patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and +modification follow. + +### TERMS AND CONDITIONS + +#### 0. Definitions. + +"This License" refers to version 3 of the GNU General Public License. + +"Copyright" also means copyright-like laws that apply to other kinds +of works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of +an exact copy. The resulting work is called a "modified version" of +the earlier work or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based +on the Program. + +To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + +To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user +through a computer network, with no transfer of a copy, is not +conveying. + +An interactive user interface displays "Appropriate Legal Notices" to +the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + +#### 1. Source Code. + +The "source code" for a work means the preferred form of the work for +making modifications to it. "Object code" means any non-source form of +a work. + +A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + +The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can +regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same +work. + +#### 2. Basic Permissions. + +All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, +without conditions so long as your license otherwise remains in force. +You may convey covered works to others for the sole purpose of having +them make modifications exclusively for you, or provide you with +facilities for running those works, provided that you comply with the +terms of this License in conveying all material for which you do not +control copyright. Those thus making or running the covered works for +you must do so exclusively on your behalf, under your direction and +control, on terms that prohibit them from making any copies of your +copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the +conditions stated below. Sublicensing is not allowed; section 10 makes +it unnecessary. + +#### 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + +When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such +circumvention is effected by exercising rights under this License with +respect to the covered work, and you disclaim any intention to limit +operation or modification of the work as a means of enforcing, against +the work's users, your or third parties' legal rights to forbid +circumvention of technological measures. + +#### 4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + +#### 5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these +conditions: + +- a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. +- b) The work must carry prominent notices stating that it is + released under this License and any conditions added under + section 7. This requirement modifies the requirement in section 4 + to "keep intact all notices". +- c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. +- d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + +A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + +#### 6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms of +sections 4 and 5, provided that you also convey the machine-readable +Corresponding Source under the terms of this License, in one of these +ways: + +- a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. +- b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the Corresponding + Source from a network server at no charge. +- c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. +- d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. +- e) Convey the object code using peer-to-peer transmission, + provided you inform other peers where the object code and + Corresponding Source of the work are being offered to the general + public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, +family, or household purposes, or (2) anything designed or sold for +incorporation into a dwelling. In determining whether a product is a +consumer product, doubtful cases shall be resolved in favor of +coverage. For a particular product received by a particular user, +"normally used" refers to a typical or common use of that class of +product, regardless of the status of the particular user or of the way +in which the particular user actually uses, or expects or is expected +to use, the product. A product is a consumer product regardless of +whether the product has substantial commercial, industrial or +non-consumer uses, unless such uses represent the only significant +mode of use of the product. + +"Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to +install and execute modified versions of a covered work in that User +Product from a modified version of its Corresponding Source. The +information must suffice to ensure that the continued functioning of +the modified object code is in no case prevented or interfered with +solely because modification has been made. + +If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + +The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or +updates for a work that has been modified or installed by the +recipient, or for the User Product in which it has been modified or +installed. Access to a network may be denied when the modification +itself materially and adversely affects the operation of the network +or violates the rules and protocols for communication across the +network. + +Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + +#### 7. Additional Terms. + +"Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders +of that material) supplement the terms of this License with terms: + +- a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or +- b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or +- c) Prohibiting misrepresentation of the origin of that material, + or requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or +- d) Limiting the use for publicity purposes of names of licensors + or authors of the material; or +- e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or +- f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions + of it) with contractual assumptions of liability to the recipient, + for any liability that these contractual assumptions directly + impose on those licensors and authors. + +All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; the +above requirements apply either way. + +#### 8. Termination. + +You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + +#### 9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run +a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + +#### 10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + +An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + +#### 11. Patents. + +A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims owned +or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + +In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + +If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + +A patent license is "discriminatory" if it does not include within the +scope of its coverage, prohibits the exercise of, or is conditioned on +the non-exercise of one or more of the rights that are specifically +granted under this License. You may not convey a covered work if you +are a party to an arrangement with a third party that is in the +business of distributing software, under which you make payment to the +third party based on the extent of your activity of conveying the +work, and under which the third party grants, to any of the parties +who would receive the covered work from you, a discriminatory patent +license (a) in connection with copies of the covered work conveyed by +you (or copies made from those copies), or (b) primarily for and in +connection with specific products or compilations that contain the +covered work, unless you entered into that arrangement, or that patent +license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + +#### 12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under +this License and any other pertinent obligations, then as a +consequence you may not convey it at all. For example, if you agree to +terms that obligate you to collect a royalty for further conveying +from those to whom you convey the Program, the only way you could +satisfy both those terms and this License would be to refrain entirely +from conveying the Program. + +#### 13. Use with the GNU Affero General Public License. + +Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + +#### 14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions +of the GNU General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in +detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies that a certain numbered version of the GNU General Public +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that numbered version or +of any later version published by the Free Software Foundation. If the +Program does not specify a version number of the GNU General Public +License, you may choose any version ever published by the Free +Software Foundation. + +If the Program specifies that a proxy can decide which future versions +of the GNU General Public License can be used, that proxy's public +statement of acceptance of a version permanently authorizes you to +choose that version for the Program. + +Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + +#### 15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE +DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR +CORRECTION. + +#### 16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR +CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT +NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR +LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM +TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER +PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +#### 17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + +### How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + +To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively state +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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. + + This program 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 this program. If not, see . + +Also add information on how to contact you by electronic and paper +mail. + +If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands \`show w' and \`show c' should show the +appropriate parts of the General Public License. Of course, your +program's commands might be different; for a GUI interface, you would +use an "about box". + +You should also get your employer (if you work as a programmer) or +institute, if any, to sign a "copyright disclaimer" for the program, if +necessary. For more information on this, and how to apply and follow +the GNU GPL, see . + +The GNU General Public License does not permit incorporating your +program into proprietary programs. If your program is a subroutine +library, you may consider it more useful to permit linking proprietary +applications with the library. If this is what you want to do, use the +GNU Lesser General Public License instead of this License. But first, +please read . \ No newline at end of file diff --git a/apps/erpnext/src/hrms/package.json b/apps/erpnext/src/hrms/package.json new file mode 100644 index 000000000..6477a5211 --- /dev/null +++ b/apps/erpnext/src/hrms/package.json @@ -0,0 +1,29 @@ +{ + "private": true, + "name": "hrms", + "description": "Open Source HR & Payroll System powered by the Frappe Framework", + "repository": { + "type": "git", + "url": "git+https://github.com/frappe/hrms.git" + }, + "homepage": "https://frappe.io/hr", + "author": "Frappe Technologies Pvt. Ltd.", + "license": "GPL-3.0", + "bugs": { + "url": "https://github.com/frappe/hrms/issues" + }, + "aworkspaces": ["frontend", "roster", "frappe-ui"], + "scripts": { + "postinstall": "yarn install-pwa-deps && yarn install-roster-deps", + "install-pwa-deps": "cd frontend && yarn install --check-files", + "install-roster-deps": "cd roster && yarn install --check-files", + "dev-pwa": "cd frontend && yarn dev", + "dev-roster": "cd roster && yarn dev", + "build": "yarn build-pwa && yarn build-roster", + "build-pwa": "cd frontend && yarn build", + "build-roster": "cd roster && yarn build" + }, + "dependencies": { + "html2canvas": "^1.4.1" + } +} diff --git a/apps/erpnext/src/hrms/pyproject.toml b/apps/erpnext/src/hrms/pyproject.toml new file mode 100644 index 000000000..d8a0b4441 --- /dev/null +++ b/apps/erpnext/src/hrms/pyproject.toml @@ -0,0 +1,73 @@ +[project] +name = "hrms" +authors = [ + { name = "Frappe Technologies Pvt Ltd", email = "developers@frappe.io" }, +] +description = "Open Source HR & Payroll Software" +requires-python = ">=3.10" +readme = "README.md" +dynamic = ["version"] + +[build-system] +requires = ["flit_core >=3.4,<4"] +build-backend = "flit_core.buildapi" + +[tool.frappe.testing.function_type_validation] +max_module_depth = 0 + +[tool.ruff] +line-length = 110 +target-version = "py310" + +[tool.ruff.lint] +select = ["F", "E", "W", "I", "UP", "B", "RUF"] +ignore = [ + "B017", # assertRaises(Exception) - should be more specific + "B018", # useless expression, not assigned to anything + "B023", # function doesn't bind loop variable - will have last iteration's value + "B904", # raise inside except without from + "E101", # indentation contains mixed spaces and tabs + "E402", # module level import not at top of file + "E501", # line too long + "E741", # ambiguous variable name + "F401", # "unused" imports + "F403", # can't detect undefined names from * import + "F405", # can't detect undefined names from * import + "F722", # syntax error in forward type annotation + "W191", # indentation contains tabs + "RUF001", # string contains ambiguous unicode character +] +typing-modules = ["frappe.types.DF"] + +[tool.ruff.format] +quote-style = "double" +indent-style = "tab" +docstring-code-format = true + +[tool.ruff.lint.isort.sections] +"frappe" = ["frappe"] +"erpnext" = ["erpnext"] +"hrms" = ["hrms"] + +[tool.ruff.lint.isort] +section-order = [ + "future", + "standard-library", + "third-party", + "frappe", + "erpnext", + "hrms", + "first-party", + "local-folder", +] + + +[project.urls] +Homepage = "https://frappe.io/hr" +Repository = "https://github.com/frappe/hrms.git" +"Bug Reports" = "https://github.com/frappe/hrms/issues" + + +[tool.bench.frappe-dependencies] +frappe = ">=16.0.0,<17.0.0" +erpnext = ">=16.0.0,<17.0.0" diff --git a/apps/erpnext/src/hrms/roster/.gitignore b/apps/erpnext/src/hrms/roster/.gitignore new file mode 100644 index 000000000..53f7466ac --- /dev/null +++ b/apps/erpnext/src/hrms/roster/.gitignore @@ -0,0 +1,5 @@ +node_modules +.DS_Store +dist +dist-ssr +*.local \ No newline at end of file diff --git a/apps/erpnext/src/hrms/roster/index.d.ts b/apps/erpnext/src/hrms/roster/index.d.ts new file mode 100644 index 000000000..b7da2476a --- /dev/null +++ b/apps/erpnext/src/hrms/roster/index.d.ts @@ -0,0 +1 @@ +declare module "frappe-ui"; diff --git a/apps/erpnext/src/hrms/roster/index.html b/apps/erpnext/src/hrms/roster/index.html new file mode 100644 index 000000000..a4de8f7ee --- /dev/null +++ b/apps/erpnext/src/hrms/roster/index.html @@ -0,0 +1,19 @@ + + + + + + + Roster + + +
            +
            +
            + + + + + diff --git a/apps/erpnext/src/hrms/roster/package.json b/apps/erpnext/src/hrms/roster/package.json new file mode 100644 index 000000000..8b7cbfe3a --- /dev/null +++ b/apps/erpnext/src/hrms/roster/package.json @@ -0,0 +1,27 @@ +{ + "name": "roster", + "private": true, + "version": "0.0.0", + "type":"module", + "scripts": { + "dev": "vite", + "serve": "vite preview", + "build": "vite build --base=/assets/hrms/roster/ && yarn copy-html-entry", + "copy-html-entry": "cp ../hrms/public/roster/index.html ../hrms/www/roster.html" + }, + "dependencies": { + "@vitejs/plugin-vue": "^4.4.0", + "autoprefixer": "^10.4.19", + "dayjs": "^1.11.11", + "feather-icons": "^4.29.1", + "frappe-ui": "0.1.105", + "postcss": "^8.4.5", + "tailwindcss": "^3.4.3", + "vite": "^5.4.10", + "vue": "^3.5.12", + "vue-router": "^4.3.2" + }, + "devDependencies": { + "typescript": "^5.4.5" + } +} diff --git a/apps/erpnext/src/hrms/roster/postcss.config.js b/apps/erpnext/src/hrms/roster/postcss.config.js new file mode 100644 index 000000000..7b75c83af --- /dev/null +++ b/apps/erpnext/src/hrms/roster/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/apps/erpnext/src/hrms/roster/public/favicon.png b/apps/erpnext/src/hrms/roster/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..b51db82f82b906b30609f807f0f663cac40d20b4 GIT binary patch literal 440 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$a>caTa()7Beu2se&-0XOPMVpde#$ zkh>GZx^prwfgF}}M_)$E)e-c@Na=xA}jv*C{Z|`n2ZE+NFc(}bULexYtxXVk! zRa1H)JCmwK`xQRZ9Zdhl)Xnb@xa7e_h#Kc{rb11QMP%$ zyna9bX2;pHxqo~9%j-KE^?Uy3M6(kqS{SBbSa7?V|4TdH>w?cef9;X4JIhPRIT!|D tb@a_URnxz=-&b0D_xf+-FaWXL-%6{zP`s|39McHmdb;|#taD0e0su)Qf|39L literal 0 HcmV?d00001 diff --git a/apps/erpnext/src/hrms/roster/src/App.vue b/apps/erpnext/src/hrms/roster/src/App.vue new file mode 100644 index 000000000..eb1533e30 --- /dev/null +++ b/apps/erpnext/src/hrms/roster/src/App.vue @@ -0,0 +1,5 @@ + diff --git a/apps/erpnext/src/hrms/roster/src/components/Link.vue b/apps/erpnext/src/hrms/roster/src/components/Link.vue new file mode 100644 index 000000000..3f6056dfe --- /dev/null +++ b/apps/erpnext/src/hrms/roster/src/components/Link.vue @@ -0,0 +1,107 @@ + + + diff --git a/apps/erpnext/src/hrms/roster/src/components/MonthViewHeader.vue b/apps/erpnext/src/hrms/roster/src/components/MonthViewHeader.vue new file mode 100644 index 000000000..dcb77c300 --- /dev/null +++ b/apps/erpnext/src/hrms/roster/src/components/MonthViewHeader.vue @@ -0,0 +1,124 @@ + + + diff --git a/apps/erpnext/src/hrms/roster/src/components/MonthViewTable.vue b/apps/erpnext/src/hrms/roster/src/components/MonthViewTable.vue new file mode 100644 index 000000000..8d9a6ca33 --- /dev/null +++ b/apps/erpnext/src/hrms/roster/src/components/MonthViewTable.vue @@ -0,0 +1,532 @@ + + + + + diff --git a/apps/erpnext/src/hrms/roster/src/components/NavBar.vue b/apps/erpnext/src/hrms/roster/src/components/NavBar.vue new file mode 100644 index 000000000..5605ff64e --- /dev/null +++ b/apps/erpnext/src/hrms/roster/src/components/NavBar.vue @@ -0,0 +1,60 @@ + + + diff --git a/apps/erpnext/src/hrms/roster/src/components/ShiftAssignmentDialog.vue b/apps/erpnext/src/hrms/roster/src/components/ShiftAssignmentDialog.vue new file mode 100644 index 000000000..5f6ee83c5 --- /dev/null +++ b/apps/erpnext/src/hrms/roster/src/components/ShiftAssignmentDialog.vue @@ -0,0 +1,526 @@ + + + diff --git a/apps/erpnext/src/hrms/roster/src/icons/FrappeHRLogo.vue b/apps/erpnext/src/hrms/roster/src/icons/FrappeHRLogo.vue new file mode 100644 index 000000000..bec12b341 --- /dev/null +++ b/apps/erpnext/src/hrms/roster/src/icons/FrappeHRLogo.vue @@ -0,0 +1,29 @@ + diff --git a/apps/erpnext/src/hrms/roster/src/index.css b/apps/erpnext/src/hrms/roster/src/index.css new file mode 100644 index 000000000..49a32792e --- /dev/null +++ b/apps/erpnext/src/hrms/roster/src/index.css @@ -0,0 +1 @@ +@import "frappe-ui/src/style.css"; diff --git a/apps/erpnext/src/hrms/roster/src/main.ts b/apps/erpnext/src/hrms/roster/src/main.ts new file mode 100644 index 000000000..e1ecb39f9 --- /dev/null +++ b/apps/erpnext/src/hrms/roster/src/main.ts @@ -0,0 +1,17 @@ +import "./index.css"; + +import { createApp } from "vue"; +import router from "./router"; +import App from "./App.vue"; + +import { Button, setConfig, frappeRequest, resourcesPlugin } from "frappe-ui"; + +const app = createApp(App); + +setConfig("resourceFetcher", frappeRequest); + +app.use(router); +app.use(resourcesPlugin); + +app.component("Button", Button); +app.mount("#app"); diff --git a/apps/erpnext/src/hrms/roster/src/router.ts b/apps/erpnext/src/hrms/roster/src/router.ts new file mode 100644 index 000000000..9c1350b8d --- /dev/null +++ b/apps/erpnext/src/hrms/roster/src/router.ts @@ -0,0 +1,16 @@ +import { createRouter, createWebHistory } from "vue-router"; + +const routes = [ + { + path: "/", + name: "Home", + component: () => import("./views/Home.vue"), + }, +]; + +const router = createRouter({ + history: createWebHistory("/hr/roster"), + routes, +}); + +export default router; diff --git a/apps/erpnext/src/hrms/roster/src/utils/dayjs.ts b/apps/erpnext/src/hrms/roster/src/utils/dayjs.ts new file mode 100644 index 000000000..e8a0c7ae8 --- /dev/null +++ b/apps/erpnext/src/hrms/roster/src/utils/dayjs.ts @@ -0,0 +1,14 @@ +import dayjs from "dayjs"; +import updateLocale from "dayjs/plugin/updateLocale"; +import localizedFormat from "dayjs/plugin/localizedFormat"; +import isSameOrBefore from "dayjs/plugin/isSameOrBefore"; +import isSameOrAfter from "dayjs/plugin/isSameOrAfter"; +import customParseFormat from "dayjs/plugin/customParseFormat"; + +dayjs.extend(updateLocale); +dayjs.extend(localizedFormat); +dayjs.extend(isSameOrBefore); +dayjs.extend(isSameOrAfter); +dayjs.extend(customParseFormat); + +export default dayjs; diff --git a/apps/erpnext/src/hrms/roster/src/utils/index.ts b/apps/erpnext/src/hrms/roster/src/utils/index.ts new file mode 100644 index 000000000..da78e06ae --- /dev/null +++ b/apps/erpnext/src/hrms/roster/src/utils/index.ts @@ -0,0 +1,32 @@ +import { toast } from "frappe-ui"; + +export { default as dayjs } from "./dayjs"; + +export const raiseToast = (type: "success" | "error", message: string) => { + if (type === "success") + return toast({ + title: "Success", + text: message, + icon: "check-circle", + position: "bottom-right", + iconClasses: "text-green-500", + }); + + const div = document.createElement("div"); + div.innerHTML = message; + // strip html tags + const text = + div.textContent || div.innerText || "Failed to perform action. Please try again later."; + toast({ + title: "Error", + text: text, + icon: "alert-circle", + position: "bottom-right", + iconClasses: "text-red-500", + timeout: 7, + }); +}; + +export const goTo = (path: string) => { + window.location.href = path; +}; diff --git a/apps/erpnext/src/hrms/roster/src/views/Home.vue b/apps/erpnext/src/hrms/roster/src/views/Home.vue new file mode 100644 index 000000000..849f33a54 --- /dev/null +++ b/apps/erpnext/src/hrms/roster/src/views/Home.vue @@ -0,0 +1,30 @@ + + + diff --git a/apps/erpnext/src/hrms/roster/src/views/MonthView.vue b/apps/erpnext/src/hrms/roster/src/views/MonthView.vue new file mode 100644 index 000000000..803f8aac3 --- /dev/null +++ b/apps/erpnext/src/hrms/roster/src/views/MonthView.vue @@ -0,0 +1,132 @@ + + + diff --git a/apps/erpnext/src/hrms/roster/tailwind.config.js b/apps/erpnext/src/hrms/roster/tailwind.config.js new file mode 100644 index 000000000..89454da34 --- /dev/null +++ b/apps/erpnext/src/hrms/roster/tailwind.config.js @@ -0,0 +1,12 @@ +import frappeUIPreset from "frappe-ui/src/tailwind/preset"; +export default { + presets: [frappeUIPreset], + content: [ + "./index.html", + "./src/**/*.{vue,js,ts,jsx,tsx}", + "./node_modules/frappe-ui/src/components/**/*.{vue,js,ts,jsx,tsx}", + "../node_modules/frappe-ui/src/components/**/*.{vue,js,ts,jsx,tsx}", + ], + theme: {}, + plugins: [], +}; diff --git a/apps/erpnext/src/hrms/roster/tsconfig.json b/apps/erpnext/src/hrms/roster/tsconfig.json new file mode 100644 index 000000000..986bad1d3 --- /dev/null +++ b/apps/erpnext/src/hrms/roster/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "moduleResolution": "Node", + "strict": true, + "jsx": "preserve", + "sourceMap": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "lib": ["ESNext", "DOM"], + "skipLibCheck": true, + "types": ["vite/client"] + }, + "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.vue", "index.d.ts"] +} diff --git a/apps/erpnext/src/hrms/roster/vite.config.js b/apps/erpnext/src/hrms/roster/vite.config.js new file mode 100644 index 000000000..5f5625373 --- /dev/null +++ b/apps/erpnext/src/hrms/roster/vite.config.js @@ -0,0 +1,73 @@ +import { defineConfig } from "vite"; +import vue from "@vitejs/plugin-vue"; +import fs from "fs"; +import path from "path"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + server: { + port: 8081, + proxy: getProxyOptions(), + allowedHosts: true, + }, + resolve: { + alias: { + "@": path.resolve(__dirname, "src"), + }, + }, + build: { + outDir: `../hrms/public/roster`, + emptyOutDir: true, + target: "es2015", + commonjsOptions: { + include: [/tailwind.config.js/, /node_modules/], + }, + }, + optimizeDeps: { + include: [ + "frappe-ui > feather-icons", + "showdown", + "tailwind.config.js", + "engine.io-client", + ], + }, +}); + +function getProxyOptions() { + const config = getCommonSiteConfig(); + const webserver_port = config ? config.webserver_port : 8000; + if (!config) { + console.log("No common_site_config.json found, using default port 8000"); + } + return { + "^/(app|login|api|assets|files|private)": { + target: `http://127.0.0.1:${webserver_port}`, + ws: true, + router: function (req) { + const site_name = req.headers.host.split(":")[0]; + console.log(`Proxying ${req.url} to ${site_name}:${webserver_port}`); + return `http://${site_name}:${webserver_port}`; + }, + }, + }; +} + +function getCommonSiteConfig() { + let currentDir = path.resolve("."); + // traverse up till we find frappe-bench with sites directory + while (currentDir !== "/") { + if ( + fs.existsSync(path.join(currentDir, "sites")) && + fs.existsSync(path.join(currentDir, "apps")) + ) { + let configPath = path.join(currentDir, "sites", "common_site_config.json"); + if (fs.existsSync(configPath)) { + return JSON.parse(fs.readFileSync(configPath)); + } + return null; + } + currentDir = path.resolve(currentDir, ".."); + } + return null; +} diff --git a/apps/erpnext/src/hrms/roster/yarn.lock b/apps/erpnext/src/hrms/roster/yarn.lock new file mode 100644 index 000000000..6f9a5e7f0 --- /dev/null +++ b/apps/erpnext/src/hrms/roster/yarn.lock @@ -0,0 +1,2264 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@babel/helper-string-parser@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" + integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== + +"@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== + +"@babel/parser@^7.25.3": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.0.tgz#3d7d6ee268e41d2600091cbd4e145ffee85a44ec" + integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg== + dependencies: + "@babel/types" "^7.27.0" + +"@babel/types@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" + integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== + dependencies: + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== + +"@floating-ui/core@^1.0.0": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.2.tgz#d37f3e0ac1f1c756c7de45db13303a266226851a" + integrity sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg== + dependencies: + "@floating-ui/utils" "^0.2.0" + +"@floating-ui/dom@^1.6.1", "@floating-ui/dom@^1.6.5": + version "1.6.5" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.5.tgz#323f065c003f1d3ecf0ff16d2c2c4d38979f4cb9" + integrity sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw== + dependencies: + "@floating-ui/core" "^1.0.0" + "@floating-ui/utils" "^0.2.0" + +"@floating-ui/utils@^0.2.0", "@floating-ui/utils@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.2.tgz#d8bae93ac8b815b2bd7a98078cf91e2724ef11e5" + integrity sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw== + +"@floating-ui/vue@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@floating-ui/vue/-/vue-1.0.6.tgz#31860a12f1135d19554c232d99c5bab631c5c576" + integrity sha512-EdrOljjkpkkqZnrpqUcPoz9NvHxuTjUtSInh6GMv3+Mcy+giY2cE2pHh9rpacRcZ2eMSCxel9jWkWXTjLmY55w== + dependencies: + "@floating-ui/dom" "^1.6.1" + "@floating-ui/utils" "^0.2.1" + vue-demi ">=0.13.0" + +"@headlessui/vue@^1.7.14": + version "1.7.22" + resolved "https://registry.yarnpkg.com/@headlessui/vue/-/vue-1.7.22.tgz#8d55a3a670c3d48beb660b7c47a7a8ff76caacfe" + integrity sha512-Hoffjoolq1rY+LOfJ+B/OvkhuBXXBFgd8oBlN+l1TApma2dB0En0ucFZrwQtb33SmcCqd32EQd0y07oziXWNYg== + dependencies: + "@tanstack/vue-virtual" "^3.0.0-beta.60" + +"@internationalized/date@^3.5.4": + version "3.5.4" + resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.5.4.tgz#49ba11634fd4350b7a9308e297032267b4063c44" + integrity sha512-qoVJVro+O0rBaw+8HPjUB1iH8Ihf8oziEnqMnvhJUSuVIrHOuZ6eNLHNvzXJKUvAtaDiqMnRlg8Z2mgh09BlUw== + dependencies: + "@swc/helpers" "^0.5.0" + +"@internationalized/number@^3.5.3": + version "3.5.3" + resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.5.3.tgz#9fa060c1c4809f23fb3d38dd3f3d1ae4c87e95a8" + integrity sha512-rd1wA3ebzlp0Mehj5YTuTI50AQEx80gWFyHcQu+u91/5NgdwBecO8BH6ipPfE+lmQ9d63vpB3H9SHoIUiupllw== + dependencies: + "@swc/helpers" "^0.5.0" + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.24": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@popperjs/core@^2.11.2", "@popperjs/core@^2.9.0": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== + +"@remirror/core-constants@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@remirror/core-constants/-/core-constants-2.0.2.tgz#f05eccdc69e3a65e7d524b52548f567904a11a1a" + integrity sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ== + +"@rollup/rollup-android-arm-eabi@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.37.0.tgz#9bedc746a97fe707154086365f269ced92ff4aa9" + integrity sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ== + +"@rollup/rollup-android-arm64@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.37.0.tgz#6edc6ffc8af8773e4bc28c72894dd5e846b8ee6c" + integrity sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA== + +"@rollup/rollup-darwin-arm64@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.37.0.tgz#737a7b8be9ff79bd24a7efaae0903e8c66ac0676" + integrity sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA== + +"@rollup/rollup-darwin-x64@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.37.0.tgz#a6a697bb685ca9462a7caeea5f22f6a686acff1f" + integrity sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ== + +"@rollup/rollup-freebsd-arm64@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.37.0.tgz#18113e8e133ccb6de4b9dc9d3e09f7acff344cb7" + integrity sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA== + +"@rollup/rollup-freebsd-x64@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.37.0.tgz#5e56ffd4a0d7ccfcbc86867c40b8f0e6a2c0c81e" + integrity sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA== + +"@rollup/rollup-linux-arm-gnueabihf@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.37.0.tgz#5addf1a51e1495ae7ff28d26442a88adf629c980" + integrity sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w== + +"@rollup/rollup-linux-arm-musleabihf@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.37.0.tgz#00cddb9ab51086c5f2cd33cd4738259e24be4e73" + integrity sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag== + +"@rollup/rollup-linux-arm64-gnu@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.37.0.tgz#c3b4324496236b6fd9f31fda5701c6d6060b1512" + integrity sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA== + +"@rollup/rollup-linux-arm64-musl@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.37.0.tgz#b5222180bb1a50e6e9bc8263efd771c1ce770b6f" + integrity sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ== + +"@rollup/rollup-linux-loongarch64-gnu@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.37.0.tgz#5660181c1c1efb7b19c7a531d496e685236c5ce7" + integrity sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA== + +"@rollup/rollup-linux-powerpc64le-gnu@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.37.0.tgz#8273166495d2f5d3fbc556cf42a5a6e24b78bdab" + integrity sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ== + +"@rollup/rollup-linux-riscv64-gnu@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.37.0.tgz#9677e39288ccc91ebcd707cdd794732d701cd174" + integrity sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw== + +"@rollup/rollup-linux-riscv64-musl@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.37.0.tgz#71cc5ca7be1ed263357618bfe4f8f50c09725a7e" + integrity sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA== + +"@rollup/rollup-linux-s390x-gnu@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.37.0.tgz#6b0b7df33eb32b0ee7423898b183acc1b5fee33e" + integrity sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A== + +"@rollup/rollup-linux-x64-gnu@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.37.0.tgz#52c27717d3c4819d13b5ebc2373ddea099d2e71b" + integrity sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ== + +"@rollup/rollup-linux-x64-musl@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.37.0.tgz#c134a22d30642345de8b799c816345674bf68019" + integrity sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w== + +"@rollup/rollup-win32-arm64-msvc@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.37.0.tgz#8063d5f8195dd1845e056d069366fbe06a424d09" + integrity sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg== + +"@rollup/rollup-win32-ia32-msvc@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.37.0.tgz#891d90e3b5517f9d290bb416afdfe2ebfb12139e" + integrity sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA== + +"@rollup/rollup-win32-x64-msvc@4.37.0": + version "4.37.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.37.0.tgz#a54d7304c3bd45573d8bcd1270de89771f8195fe" + integrity sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA== + +"@socket.io/component-emitter@~3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2" + integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== + +"@swc/helpers@^0.5.0": + version "0.5.11" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.11.tgz#5bab8c660a6e23c13b2d23fcd1ee44a2db1b0cb7" + integrity sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A== + dependencies: + tslib "^2.4.0" + +"@tailwindcss/forms@^0.5.3": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.7.tgz#db5421f062a757b5f828bc9286ba626c6685e821" + integrity sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw== + dependencies: + mini-svg-data-uri "^1.2.3" + +"@tailwindcss/typography@^0.5.0": + version "0.5.13" + resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.13.tgz#cd788a4fa4d0ca2506e242d512f377b22c1f7932" + integrity sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw== + dependencies: + lodash.castarray "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + postcss-selector-parser "6.0.10" + +"@tanstack/virtual-core@3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.5.0.tgz#108208d0f1d75271300bc5560cf9a85a1fa01e89" + integrity sha512-KnPRCkQTyqhanNC0K63GBG3wA8I+D1fQuVnAvcBF8f13akOKeQp1gSbu6f77zCxhEk727iV5oQnbHLYzHrECLg== + +"@tanstack/vue-virtual@^3.0.0-beta.60", "@tanstack/vue-virtual@^3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@tanstack/vue-virtual/-/vue-virtual-3.5.0.tgz#5794af3b2d0cc0331ba3f671fba8770e0abd4993" + integrity sha512-wvRQ8sFxn/NDr3WvI5XabhFovZ5MBmpEck2GHpTxYunmV63Ovpl30lRu6W5BPQo35a1GqDZ+Pvzlz6WDWRNqqw== + dependencies: + "@tanstack/virtual-core" "3.5.0" + +"@tiptap/core@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.4.0.tgz#6f8eee8beb5b89363582366b201ccc4798ac98a9" + integrity sha512-YJSahk8pkxpCs8SflCZfTnJpE7IPyUWIylfgXM2DefjRQa5DZ+c6sNY0s/zbxKYFQ6AuHVX40r9pCfcqHChGxQ== + +"@tiptap/extension-blockquote@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.4.0.tgz#0179076ea2fa12e41a198dad087b81d368653b8d" + integrity sha512-nJJy4KsPgQqWTTDOWzFRdjCfG5+QExfZj44dulgDFNh+E66xhamnbM70PklllXJgEcge7xmT5oKM0gKls5XgFw== + +"@tiptap/extension-bold@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.4.0.tgz#b5ced2c3bf51f304890137dbdf394d58c01eb208" + integrity sha512-csnW6hMDEHoRfxcPRLSqeJn+j35Lgtt1YRiOwn7DlS66sAECGRuoGfCvQSPij0TCDp4VCR9if5Sf8EymhnQumQ== + +"@tiptap/extension-bubble-menu@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.4.0.tgz#a079329318fc21407f9a3c9c3da6ef72cb0b4ab6" + integrity sha512-s99HmttUtpW3rScWq8rqk4+CGCwergNZbHLTkF6Rp6TSboMwfp+rwL5Q/JkcAG9KGLso1vGyXKbt1xHOvm8zMw== + dependencies: + tippy.js "^6.3.7" + +"@tiptap/extension-bullet-list@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.4.0.tgz#60eea05b5ac8c8e8d615c057559fddb95033abeb" + integrity sha512-9S5DLIvFRBoExvmZ+/ErpTvs4Wf1yOEs8WXlKYUCcZssK7brTFj99XDwpHFA29HKDwma5q9UHhr2OB2o0JYAdw== + +"@tiptap/extension-code-block@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.4.0.tgz#b7f1da4825677a2ea6b8e970a1197877551e5dc8" + integrity sha512-QWGdv1D56TBGbbJSj2cIiXGJEKguPiAl9ONzJ/Ql1ZksiQsYwx0YHriXX6TOC//T4VIf6NSClHEtwtxWBQ/Csg== + +"@tiptap/extension-code@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.4.0.tgz#3a9fed3585bf49f445505c2e9ad71fd66e117304" + integrity sha512-wjhBukuiyJMq4cTcK3RBTzUPV24k5n1eEPlpmzku6ThwwkMdwynnMGMAmSF3fErh3AOyOUPoTTjgMYN2d10SJA== + +"@tiptap/extension-color@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-color/-/extension-color-2.4.0.tgz#eaddbd574953da85aaae9785269f2891b2d683ad" + integrity sha512-aVuqGtzTIZO93niADdu+Hx8g03X0pS7wjrJcCcYkkDEbC/siC03zlxKZIYBW1Jiabe99Z7/s2KdtLoK6DW2A2g== + +"@tiptap/extension-document@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.4.0.tgz#a396b2cbcc8708aa2a0a41d0be481fda4b61c77b" + integrity sha512-3jRodQJZDGbXlRPERaloS+IERg/VwzpC1IO6YSJR9jVIsBO6xC29P3cKTQlg1XO7p6ZH/0ksK73VC5BzzTwoHg== + +"@tiptap/extension-dropcursor@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.4.0.tgz#8f54908f84a4ab7d2d7de7fc0197511138445740" + integrity sha512-c46HoG2PEEpSZv5rmS5UX/lJ6/kP1iVO0Ax+6JrNfLEIiDULUoi20NqdjolEa38La2VhWvs+o20OviiTOKEE9g== + +"@tiptap/extension-floating-menu@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.4.0.tgz#75c48b98d0f833251eab70f269ed186f48fc398e" + integrity sha512-vLb9v+htbHhXyty0oaXjT3VC8St4xuGSHWUB9GuAJAQ+NajIO6rBPbLUmm9qM0Eh2zico5mpSD1Qtn5FM6xYzg== + dependencies: + tippy.js "^6.3.7" + +"@tiptap/extension-gapcursor@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.4.0.tgz#2a738509d40f5f856492c11e32b10e4462f71216" + integrity sha512-F4y/0J2lseohkFUw9P2OpKhrJ6dHz69ZScABUvcHxjznJLd6+0Zt7014Lw5PA8/m2d/w0fX8LZQ88pZr4quZPQ== + +"@tiptap/extension-hard-break@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.4.0.tgz#b5bf5b065827280e450fba8f53d137654509d836" + integrity sha512-3+Z6zxevtHza5IsDBZ4lZqvNR3Kvdqwxq/QKCKu9UhJN1DUjsg/l1Jn2NilSQ3NYkBYh2yJjT8CMo9pQIu776g== + +"@tiptap/extension-heading@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.4.0.tgz#16302ce691714244c3d3fa92d2db86a5c895a025" + integrity sha512-fYkyP/VMo7YHO76YVrUjd95Qeo0cubWn/Spavmwm1gLTHH/q7xMtbod2Z/F0wd6QHnc7+HGhO7XAjjKWDjldaw== + +"@tiptap/extension-highlight@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-highlight/-/extension-highlight-2.4.0.tgz#29a200993b0e599223efac373785089109579fd3" + integrity sha512-p2I/CaMrs6hzpj/dSw6UNobOWTV38yTjPK+B4ShJQ7IN2u/C82KOTOeFfJoFd9KykmpVOVW3w3nKG3ad0HXPuQ== + +"@tiptap/extension-history@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.4.0.tgz#1dbf8410c091175627414d48a0d857232a8f4094" + integrity sha512-gr5qsKAXEVGr1Lyk1598F7drTaEtAxqZiuuSwTCzZzkiwgEQsWMWTWc9F8FlneCEaqe1aIYg6WKWlmYPaFwr0w== + +"@tiptap/extension-horizontal-rule@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.4.0.tgz#7f27c0778004602686251af7e2f7a8461a3d77ba" + integrity sha512-yDgxy+YxagcEsBbdWvbQiXYxsv3noS1VTuGwc9G7ZK9xPmBHJ5y0agOkB7HskwsZvJHoaSqNRsh7oZTkf0VR3g== + +"@tiptap/extension-image@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-image/-/extension-image-2.4.0.tgz#21a18e80ed6bc330cf8ab2ca990a3addb40916c8" + integrity sha512-NIVhRPMO/ONo8OywEd+8zh0Q6Q7EbFHtBxVsvfOKj9KtZkaXQfUO4MzONTyptkvAchTpj9pIzeaEY5fyU87gFA== + +"@tiptap/extension-italic@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.4.0.tgz#42ab003e04e1e8d825f698914c0e80ac849144f1" + integrity sha512-aaW/L9q+KNHHK+X73MPloHeIsT191n3VLd3xm6uUcFDnUNvzYJ/q65/1ZicdtCaOLvTutxdrEvhbkrVREX6a8g== + +"@tiptap/extension-link@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-link/-/extension-link-2.4.0.tgz#e44edfe2f8d878959bd3ad64fda1b9e232f1f011" + integrity sha512-r3PjT0bjSKAorHAEBPA0icSMOlqALbxVlWU9vAc+Q3ndzt7ht0CTPNewzFF9kjzARABVt1cblXP/2+c0qGzcsg== + dependencies: + linkifyjs "^4.1.0" + +"@tiptap/extension-list-item@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.4.0.tgz#a97a48850b81e94b9a60cc2aa16e515aa5311456" + integrity sha512-reUVUx+2cI2NIAqMZhlJ9uK/+zvRzm1GTmlU2Wvzwc7AwLN4yemj6mBDsmBLEXAKPvitfLh6EkeHaruOGymQtg== + +"@tiptap/extension-mention@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-mention/-/extension-mention-2.4.0.tgz#35f13d71e207280cafe5b00e76f17b4c372fbe8b" + integrity sha512-7BqCNfqF1Mv9IrtdlHADwXMFo968UNmthf/TepVXC7EX2Ke6/Y4vvxmpYVNZc55FdswFwpVyZ2VeXBj3AC2JcA== + +"@tiptap/extension-ordered-list@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.4.0.tgz#6cf82e10d7e7f7cc44156d29b0b71a22dec31612" + integrity sha512-Zo0c9M0aowv+2+jExZiAvhCB83GZMjZsxywmuOrdUbq5EGYKb7q8hDyN3hkrktVHr9UPXdPAYTmLAHztTOHYRA== + +"@tiptap/extension-paragraph@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.4.0.tgz#5b9aea8775937b327bbe6754be12ae3144fb09ff" + integrity sha512-+yse0Ow67IRwcACd9K/CzBcxlpr9OFnmf0x9uqpaWt1eHck1sJnti6jrw5DVVkyEBHDh/cnkkV49gvctT/NyCw== + +"@tiptap/extension-placeholder@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-placeholder/-/extension-placeholder-2.4.0.tgz#b4cf5655cf6a4a39eaa5ef6a8376d5b31614db52" + integrity sha512-SmWOjgWpmhFt0BPOnL65abCUH0wS5yksUJgtANn5bQoHF4HFSsyl7ETRmgf0ykxdjc7tzOg31FfpWVH4wzKSYg== + +"@tiptap/extension-strike@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.4.0.tgz#f09c4f51f7fed01c356026d7e8d8a1d1f2ac8f18" + integrity sha512-pE1uN/fQPOMS3i+zxPYMmPmI3keubnR6ivwM+KdXWOMnBiHl9N4cNpJgq1n2eUUGKLurC2qrQHpnVyGAwBS6Vg== + +"@tiptap/extension-table-cell@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-table-cell/-/extension-table-cell-2.4.0.tgz#048d869acbf6cfbcd31076adf8130ffd679990a7" + integrity sha512-zylResMWLvV17Z6+GEDjvvl+YpJqJhNMyJsZPZNx/72OcNCDN3p2d6RGFwhpnCpdzZDD6LGaIgWaTj9oeg53SA== + +"@tiptap/extension-table-header@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-table-header/-/extension-table-header-2.4.0.tgz#618a86bc5e66149661129b7e8fbe2fd363882c2d" + integrity sha512-FZCOyJHSFsMTCfBh49J1DlwgpUIM5Ivpr57Za8FVvUkk8RKUIOKpNsZqxE+Wrw+2Bvy5H4X7Azb588x0NDqfOQ== + +"@tiptap/extension-table-row@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-table-row/-/extension-table-row-2.4.0.tgz#751ecd4ce49ebe1ccdea153f27c3a61e4449cfd4" + integrity sha512-K4FDI4YzyLWZbhIZYYL15uqs6M3QsPZGTpTdkSaxcKMLholcskDSHhJmySxnrjI0+JNAtyIiqlWBfA1/9Zyhng== + +"@tiptap/extension-table@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-table/-/extension-table-2.4.0.tgz#a29bb933a10ddbd9469263df0c7527ae1fa1de00" + integrity sha512-ceIUnPSqVCb+qC0XZSgApoG3dL3MRvWrGl1nIMxEqPgMsD/MP6MsYV1Lx/GmtdUlEEsV1624cGTBiRzeCuWkZA== + +"@tiptap/extension-text-align@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-text-align/-/extension-text-align-2.4.0.tgz#15bda62a8f0d0feaede0632a15fb2d032ff81754" + integrity sha512-wpRe2OiLXTK4kTy4RZEPnPjFbK16kYHPAx1552hLXrOdyxbS7Sdbo+w4x7aGLLZZqZdudCFfkdtnqrc7PDVZdA== + +"@tiptap/extension-text-style@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-text-style/-/extension-text-style-2.4.0.tgz#9f86d8de4606bc37090b7b02c2aaf40bb37a860f" + integrity sha512-H0uPWeZ4sXz3o836TDWnpd38qClqzEM2d6QJ9TK+cQ1vE5Gp8wQ5W4fwUV1KAHzpJKE/15+BXBjLyVYQdmXDaQ== + +"@tiptap/extension-text@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.4.0.tgz#a3a5f45a9856d513e574f24e2c9b6028273f8eb3" + integrity sha512-LV0bvE+VowE8IgLca7pM8ll7quNH+AgEHRbSrsI3SHKDCYB9gTHMjWaAkgkUVaO1u0IfCrjnCLym/PqFKa+vvg== + +"@tiptap/extension-typography@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-typography/-/extension-typography-2.4.0.tgz#52a4f0d252165db2976014b572ffaa14cd04fd1d" + integrity sha512-RuGenfdPA6ggu5IVLdcIdhGCdRlwSvWp0lETySM3PILE6fxCrxTD54m3pxpY0Q1cg+F71YDUHdSmSipQTwQnsQ== + +"@tiptap/pm@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-2.4.0.tgz#f6fe81d24569da584658d2e8a3a378aea3619fb3" + integrity sha512-B1HMEqGS4MzIVXnpgRZDLm30mxDWj51LkBT/if1XD+hj5gm8B9Q0c84bhvODX6KIs+c6z+zsY9VkVu8w9Yfgxg== + dependencies: + prosemirror-changeset "^2.2.1" + prosemirror-collab "^1.3.1" + prosemirror-commands "^1.5.2" + prosemirror-dropcursor "^1.8.1" + prosemirror-gapcursor "^1.3.2" + prosemirror-history "^1.3.2" + prosemirror-inputrules "^1.3.0" + prosemirror-keymap "^1.2.2" + prosemirror-markdown "^1.12.0" + prosemirror-menu "^1.2.4" + prosemirror-model "^1.19.4" + prosemirror-schema-basic "^1.2.2" + prosemirror-schema-list "^1.3.0" + prosemirror-state "^1.4.3" + prosemirror-tables "^1.3.5" + prosemirror-trailing-node "^2.0.7" + prosemirror-transform "^1.8.0" + prosemirror-view "^1.32.7" + +"@tiptap/starter-kit@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/starter-kit/-/starter-kit-2.4.0.tgz#ad2c2d900af41e55eaaccafa92fd6b2acaebd97e" + integrity sha512-DYYzMZdTEnRn9oZhKOeRCcB+TjhNz5icLlvJKoHoOGL9kCbuUyEf8WRR2OSPckI0+KUIPJL3oHRqO4SqSdTjfg== + dependencies: + "@tiptap/core" "^2.4.0" + "@tiptap/extension-blockquote" "^2.4.0" + "@tiptap/extension-bold" "^2.4.0" + "@tiptap/extension-bullet-list" "^2.4.0" + "@tiptap/extension-code" "^2.4.0" + "@tiptap/extension-code-block" "^2.4.0" + "@tiptap/extension-document" "^2.4.0" + "@tiptap/extension-dropcursor" "^2.4.0" + "@tiptap/extension-gapcursor" "^2.4.0" + "@tiptap/extension-hard-break" "^2.4.0" + "@tiptap/extension-heading" "^2.4.0" + "@tiptap/extension-history" "^2.4.0" + "@tiptap/extension-horizontal-rule" "^2.4.0" + "@tiptap/extension-italic" "^2.4.0" + "@tiptap/extension-list-item" "^2.4.0" + "@tiptap/extension-ordered-list" "^2.4.0" + "@tiptap/extension-paragraph" "^2.4.0" + "@tiptap/extension-strike" "^2.4.0" + "@tiptap/extension-text" "^2.4.0" + +"@tiptap/suggestion@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/suggestion/-/suggestion-2.4.0.tgz#1926cde5f197d116baf7794f55bd971245540e5c" + integrity sha512-6dCkjbL8vIzcLWtS6RCBx0jlYPKf2Beuyq5nNLrDDZZuyJow5qJAY0eGu6Xomp9z0WDK/BYOxT4hHNoGMDkoAg== + +"@tiptap/vue-3@^2.0.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/vue-3/-/vue-3-2.4.0.tgz#906dc45167498e88b56b8390aabf658e8f1c2fc4" + integrity sha512-NCw1Y4ScIrMCKC9YlepUHSAB8jq/PQ2f+AbZKh5bY2t/kMSJYLCJVHq9NFzG4TQtktgMGWCcEQVcDJ7YNpsfxw== + dependencies: + "@tiptap/extension-bubble-menu" "^2.4.0" + "@tiptap/extension-floating-menu" "^2.4.0" + +"@types/estree@1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + +"@types/web-bluetooth@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" + integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== + +"@vitejs/plugin-vue@^4.4.0": + version "4.6.2" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz#057d2ded94c4e71b94e9814f92dcd9306317aa46" + integrity sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw== + +"@vue/compiler-core@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz#b0ae6c4347f60c03e849a05d34e5bf747c9bda05" + integrity sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q== + dependencies: + "@babel/parser" "^7.25.3" + "@vue/shared" "3.5.13" + entities "^4.5.0" + estree-walker "^2.0.2" + source-map-js "^1.2.0" + +"@vue/compiler-dom@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz#bb1b8758dbc542b3658dda973b98a1c9311a8a58" + integrity sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA== + dependencies: + "@vue/compiler-core" "3.5.13" + "@vue/shared" "3.5.13" + +"@vue/compiler-sfc@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz#461f8bd343b5c06fac4189c4fef8af32dea82b46" + integrity sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ== + dependencies: + "@babel/parser" "^7.25.3" + "@vue/compiler-core" "3.5.13" + "@vue/compiler-dom" "3.5.13" + "@vue/compiler-ssr" "3.5.13" + "@vue/shared" "3.5.13" + estree-walker "^2.0.2" + magic-string "^0.30.11" + postcss "^8.4.48" + source-map-js "^1.2.0" + +"@vue/compiler-ssr@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz#e771adcca6d3d000f91a4277c972a996d07f43ba" + integrity sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA== + dependencies: + "@vue/compiler-dom" "3.5.13" + "@vue/shared" "3.5.13" + +"@vue/devtools-api@^6.5.1": + version "6.6.1" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.1.tgz#7c14346383751d9f6ad4bea0963245b30220ef83" + integrity sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA== + +"@vue/reactivity@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.13.tgz#b41ff2bb865e093899a22219f5b25f97b6fe155f" + integrity sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg== + dependencies: + "@vue/shared" "3.5.13" + +"@vue/runtime-core@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.13.tgz#1fafa4bf0b97af0ebdd9dbfe98cd630da363a455" + integrity sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw== + dependencies: + "@vue/reactivity" "3.5.13" + "@vue/shared" "3.5.13" + +"@vue/runtime-dom@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz#610fc795de9246300e8ae8865930d534e1246215" + integrity sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog== + dependencies: + "@vue/reactivity" "3.5.13" + "@vue/runtime-core" "3.5.13" + "@vue/shared" "3.5.13" + csstype "^3.1.3" + +"@vue/server-renderer@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.13.tgz#429ead62ee51de789646c22efe908e489aad46f7" + integrity sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA== + dependencies: + "@vue/compiler-ssr" "3.5.13" + "@vue/shared" "3.5.13" + +"@vue/shared@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.13.tgz#87b309a6379c22b926e696893237826f64339b6f" + integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ== + +"@vueuse/core@^10.4.1", "@vueuse/core@^10.5.0": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.10.0.tgz#05a98d3c5674762455a2c552c915d461d83e6490" + integrity sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw== + dependencies: + "@types/web-bluetooth" "^0.0.20" + "@vueuse/metadata" "10.10.0" + "@vueuse/shared" "10.10.0" + vue-demi ">=0.14.7" + +"@vueuse/metadata@10.10.0": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.10.0.tgz#53e61e9380670e342cbe6e03d852f3319308cb5b" + integrity sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug== + +"@vueuse/shared@10.10.0", "@vueuse/shared@^10.5.0": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.10.0.tgz#93f7c2210151ff43c2c7677963f7aa3aef5d9896" + integrity sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og== + dependencies: + vue-demi ">=0.14.7" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-hidden@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.4.tgz#b78e383fdbc04d05762c78b4a25a501e736c4522" + integrity sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A== + dependencies: + tslib "^2.0.0" + +autoprefixer@^10.4.19: + version "10.4.19" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.19.tgz#ad25a856e82ee9d7898c59583c1afeb3fa65f89f" + integrity sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew== + dependencies: + browserslist "^4.23.0" + caniuse-lite "^1.0.30001599" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browserslist@^4.23.0: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + dependencies: + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001599: + version "1.0.30001625" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001625.tgz#ead1b155ea691d6a87938754d3cb119c24465b03" + integrity sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w== + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +classnames@^2.2.5: + version "2.5.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^9.0.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== + +core-js@^3.1.3: + version "3.37.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.0.tgz#d8dde58e91d156b2547c19d8a4efd5c7f6c426bb" + integrity sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug== + +crelt@^1.0.0: + version "1.0.6" + resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.6.tgz#7cc898ea74e190fb6ef9dae57f8f81cf7302df72" + integrity sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g== + +cross-spawn@^7.0.0: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csstype@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +dayjs@^1.11.11: + version "1.11.11" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.11.tgz#dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e" + integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg== + +dayjs@^1.11.13: + version "1.11.13" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== + +debug@~4.3.1, debug@~4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +defu@^6.1.4: + version "6.1.4" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" + integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +electron-to-chromium@^1.4.668: + version "1.4.786" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.786.tgz#974d7eeac61c5ffa285dc55555d06b97b05f6831" + integrity sha512-i/A2UB0sxYViMN0M2zIotQFRIOt1jLuVXudACHBDiJ5gGuAUzf/crZxwlBTdA0O52Hy4CNtTzS7AKRAacs/08Q== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +engine.io-client@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.5.3.tgz#4cf6fa24845029b238f83c628916d9149c399bc5" + integrity sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + engine.io-parser "~5.2.1" + ws "~8.11.0" + xmlhttprequest-ssl "~2.0.0" + +engine.io-parser@~5.2.1: + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== + +entities@^4.4.0, entities@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== + optionalDependencies: + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" + +escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +feather-icons@^4.28.0: + version "4.29.2" + resolved "https://registry.yarnpkg.com/feather-icons/-/feather-icons-4.29.2.tgz#b03a47588a1c400f215e884504db1c18860d89f8" + integrity sha512-0TaCFTnBTVCz6U+baY2UJNKne5ifGh7sMG4ZC2LoBWCZdIyPa+y6UiR4lEYGws1JOFWdee8KAsAIvu0VcXqiqA== + dependencies: + classnames "^2.2.5" + core-js "^3.1.3" + +feather-icons@^4.29.1: + version "4.29.1" + resolved "https://registry.yarnpkg.com/feather-icons/-/feather-icons-4.29.1.tgz#f222aaa4cc6fca499356660c9de6c009ee2cb117" + integrity sha512-P1we61haGTds6lKWe6CCVPsNULb8tHr1y6S9gXEpU+lNR1Ja7GdV0A1l2hTNmzXv+0Stix/3YMWMAn7n1Qtd6A== + dependencies: + classnames "^2.2.5" + core-js "^3.1.3" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +frappe-ui@0.1.105: + version "0.1.105" + resolved "https://registry.yarnpkg.com/frappe-ui/-/frappe-ui-0.1.105.tgz#3bdf3c458ba27f27ff2f2a28cf7eb6f9ed872367" + integrity sha512-9bZ/hj/HhQ9vp7DxE8aOKS8HqwETZrKT3IhSzjpYOk21efK8QwdbQ9sp0t4m3UII+HaUTSOTHnFzF7y9EhRZxg== + dependencies: + "@headlessui/vue" "^1.7.14" + "@popperjs/core" "^2.11.2" + "@tailwindcss/forms" "^0.5.3" + "@tailwindcss/typography" "^0.5.0" + "@tiptap/extension-color" "^2.0.3" + "@tiptap/extension-highlight" "^2.0.3" + "@tiptap/extension-image" "^2.0.3" + "@tiptap/extension-link" "^2.0.3" + "@tiptap/extension-mention" "^2.0.3" + "@tiptap/extension-placeholder" "^2.0.3" + "@tiptap/extension-table" "^2.0.3" + "@tiptap/extension-table-cell" "^2.0.3" + "@tiptap/extension-table-header" "^2.0.3" + "@tiptap/extension-table-row" "^2.0.3" + "@tiptap/extension-text-align" "^2.0.3" + "@tiptap/extension-text-style" "^2.0.3" + "@tiptap/extension-typography" "^2.0.3" + "@tiptap/pm" "^2.0.3" + "@tiptap/starter-kit" "^2.0.3" + "@tiptap/suggestion" "^2.0.3" + "@tiptap/vue-3" "^2.0.3" + "@vueuse/core" "^10.4.1" + dayjs "^1.11.13" + feather-icons "^4.28.0" + idb-keyval "^6.2.0" + ora "5.4.1" + prettier "^3.3.2" + radix-vue "^1.5.3" + showdown "^2.1.0" + socket.io-client "^4.5.1" + tippy.js "^6.3.7" + typescript "^5.0.2" + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^10.3.10: + version "10.4.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.1.tgz#0cfb01ab6a6b438177bfe6a58e2576f6efe909c2" + integrity sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + path-scurry "^1.11.1" + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +idb-keyval@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.2.1.tgz#94516d625346d16f56f3b33855da11bfded2db33" + integrity sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg== + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-core-module@^2.13.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jackspeak@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.1.2.tgz#eada67ea949c6b71de50f1b09c92a961897b90ab" + integrity sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jiti@^1.21.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + +lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lilconfig@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" + integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +linkify-it@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" + integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== + dependencies: + uc.micro "^2.0.0" + +linkifyjs@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-4.1.3.tgz#0edbc346428a7390a23ea2e5939f76112c9ae07f" + integrity sha512-auMesunaJ8yfkHvK4gfg1K0SaKX/6Wn9g2Aac/NwX+l5VdmFZzo/hdPGxEOETj+ryRa4/fiOPjeeKURSAJx1sg== + +lodash.castarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" + integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +lru-cache@^10.2.0: + version "10.2.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" + integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== + +magic-string@^0.30.11: + version "0.30.17" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" + integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + +markdown-it@^14.0.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" + integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== + dependencies: + argparse "^2.0.1" + entities "^4.4.0" + linkify-it "^5.0.0" + mdurl "^2.0.0" + punycode.js "^2.3.1" + uc.micro "^2.1.0" + +mdurl@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" + integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mini-svg-data-uri@^1.2.3: + version "1.4.4" + resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" + integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== + +minimatch@^9.0.4: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +nanoid@^3.3.8: + version "3.3.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== + +nanoid@^5.0.6: + version "5.0.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-5.0.7.tgz#6452e8c5a816861fd9d2b898399f7e5fd6944cc6" + integrity sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ== + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +object-assign@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +ora@5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +orderedmap@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/orderedmap/-/orderedmap-2.1.1.tgz#61481269c44031c449915497bf5a4ad273c512d2" + integrity sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + +postcss-load-config@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + dependencies: + postcss-selector-parser "^6.0.11" + +postcss-selector-parser@6.0.10: + version "6.0.10" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-selector-parser@^6.0.11: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz#49694cb4e7c649299fea510a29fa6577104bcf53" + integrity sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.4.23: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + +postcss@^8.4.43, postcss@^8.4.48, postcss@^8.4.5: + version "8.5.3" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" + integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== + dependencies: + nanoid "^3.3.8" + picocolors "^1.1.1" + source-map-js "^1.2.1" + +prettier@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a" + integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== + +prosemirror-changeset@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz#dae94b63aec618fac7bb9061648e6e2a79988383" + integrity sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ== + dependencies: + prosemirror-transform "^1.0.0" + +prosemirror-collab@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz#0e8c91e76e009b53457eb3b3051fb68dad029a33" + integrity sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ== + dependencies: + prosemirror-state "^1.0.0" + +prosemirror-commands@^1.0.0, prosemirror-commands@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.5.2.tgz#e94aeea52286f658cd984270de9b4c3fff580852" + integrity sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ== + dependencies: + prosemirror-model "^1.0.0" + prosemirror-state "^1.0.0" + prosemirror-transform "^1.0.0" + +prosemirror-dropcursor@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz#49b9fb2f583e0d0f4021ff87db825faa2be2832d" + integrity sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw== + dependencies: + prosemirror-state "^1.0.0" + prosemirror-transform "^1.1.0" + prosemirror-view "^1.1.0" + +prosemirror-gapcursor@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz#5fa336b83789c6199a7341c9493587e249215cb4" + integrity sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ== + dependencies: + prosemirror-keymap "^1.0.0" + prosemirror-model "^1.0.0" + prosemirror-state "^1.0.0" + prosemirror-view "^1.0.0" + +prosemirror-history@^1.0.0, prosemirror-history@^1.3.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.4.0.tgz#1edbce630aaf21b808e5a5cd798a09976ecb1827" + integrity sha512-UUiGzDVcqo1lovOPdi9YxxUps3oBFWAIYkXLu3Ot+JPv1qzVogRbcizxK3LhHmtaUxclohgiOVesRw5QSlMnbQ== + dependencies: + prosemirror-state "^1.2.2" + prosemirror-transform "^1.0.0" + prosemirror-view "^1.31.0" + rope-sequence "^1.3.0" + +prosemirror-inputrules@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.4.0.tgz#ef1519bb2cb0d1e0cec74bad1a97f1c1555068bb" + integrity sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg== + dependencies: + prosemirror-state "^1.0.0" + prosemirror-transform "^1.0.0" + +prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz#14a54763a29c7b2704f561088ccf3384d14eb77e" + integrity sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ== + dependencies: + prosemirror-state "^1.0.0" + w3c-keyname "^2.2.0" + +prosemirror-markdown@^1.12.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.13.0.tgz#67ebfa40af48a22d1e4ed6cad2e29851eb61e649" + integrity sha512-UziddX3ZYSYibgx8042hfGKmukq5Aljp2qoBiJRejD/8MH70siQNz5RB1TrdTPheqLMy4aCe4GYNF10/3lQS5g== + dependencies: + markdown-it "^14.0.0" + prosemirror-model "^1.20.0" + +prosemirror-menu@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz#3cfdc7c06d10f9fbd1bce29082c498bd11a0a79a" + integrity sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA== + dependencies: + crelt "^1.0.0" + prosemirror-commands "^1.0.0" + prosemirror-history "^1.0.0" + prosemirror-state "^1.0.0" + +prosemirror-model@^1.0.0, prosemirror-model@^1.19.0, prosemirror-model@^1.19.4, prosemirror-model@^1.20.0, prosemirror-model@^1.21.0, prosemirror-model@^1.8.1: + version "1.21.0" + resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.21.0.tgz#2d69ed04b4e7c441c3eb87c1c964fab4f9b217df" + integrity sha512-zLpS1mVCZLA7VTp82P+BfMiYVPcX1/z0Mf3gsjKZtzMWubwn2pN7CceMV0DycjlgE5JeXPR7UF4hJPbBV98oWA== + dependencies: + orderedmap "^2.0.0" + +prosemirror-schema-basic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.2.tgz#6695f5175e4628aab179bf62e5568628b9cfe6c7" + integrity sha512-/dT4JFEGyO7QnNTe9UaKUhjDXbTNkiWTq/N4VpKaF79bBjSExVV2NXmJpcM7z/gD7mbqNjxbmWW5nf1iNSSGnw== + dependencies: + prosemirror-model "^1.19.0" + +prosemirror-schema-list@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.3.0.tgz#05374702cf35a3ba5e7ec31079e355a488d52519" + integrity sha512-Hz/7gM4skaaYfRPNgr421CU4GSwotmEwBVvJh5ltGiffUJwm7C8GfN/Bc6DR1EKEp5pDKhODmdXXyi9uIsZl5A== + dependencies: + prosemirror-model "^1.0.0" + prosemirror-state "^1.0.0" + prosemirror-transform "^1.7.3" + +prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.4.3.tgz#94aecf3ffd54ec37e87aa7179d13508da181a080" + integrity sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q== + dependencies: + prosemirror-model "^1.0.0" + prosemirror-transform "^1.0.0" + prosemirror-view "^1.27.0" + +prosemirror-tables@^1.3.5: + version "1.3.7" + resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.3.7.tgz#9d296bd432d2bc7dca90f14e5c3b5c5f61277f7a" + integrity sha512-oEwX1wrziuxMtwFvdDWSFHVUWrFJWt929kVVfHvtTi8yvw+5ppxjXZkMG/fuTdFo+3DXyIPSKfid+Be1npKXDA== + dependencies: + prosemirror-keymap "^1.1.2" + prosemirror-model "^1.8.1" + prosemirror-state "^1.3.1" + prosemirror-transform "^1.2.1" + prosemirror-view "^1.13.3" + +prosemirror-trailing-node@^2.0.7: + version "2.0.8" + resolved "https://registry.yarnpkg.com/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.8.tgz#233ddcbda72de06f9b5d758d2a65a8cac482ea10" + integrity sha512-ujRYhSuhQb1Jsarh1IHqb2KoSnRiD7wAMDGucP35DN7j5af6X7B18PfdPIrbwsPTqIAj0fyOvxbuPsWhNvylmA== + dependencies: + "@remirror/core-constants" "^2.0.2" + escape-string-regexp "^4.0.0" + +prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1, prosemirror-transform@^1.7.3, prosemirror-transform@^1.8.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.9.0.tgz#81fd1fbd887929a95369e6dd3d240c23c19313f8" + integrity sha512-5UXkr1LIRx3jmpXXNKDhv8OyAOeLTGuXNwdVfg8x27uASna/wQkr9p6fD3eupGOi4PLJfbezxTyi/7fSJypXHg== + dependencies: + prosemirror-model "^1.21.0" + +prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.27.0, prosemirror-view@^1.31.0, prosemirror-view@^1.32.7: + version "1.33.6" + resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.33.6.tgz#85804eb922411af8e300a07f4f376722b15900b9" + integrity sha512-zRLUNgLIQfd8IfGprsXxWTjdA8xEAFJe8cDNrOptj6Mop9sj+BMeVbJvceyAYCm5G2dOdT2prctH7K9dfnpIMw== + dependencies: + prosemirror-model "^1.20.0" + prosemirror-state "^1.0.0" + prosemirror-transform "^1.1.0" + +punycode.js@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" + integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +radix-vue@^1.5.3: + version "1.8.2" + resolved "https://registry.yarnpkg.com/radix-vue/-/radix-vue-1.8.2.tgz#1268b03510d8810463d2fb1d00de570cad01e409" + integrity sha512-ey6jG1rPAD/521PsXGrNkjztvh7PRw6Wwbk7LsHjsKqRoy/S4k58ryzmQ0tmoNOiUALfX92+MOnd5F3ONmuZ/w== + dependencies: + "@floating-ui/dom" "^1.6.5" + "@floating-ui/vue" "^1.0.6" + "@internationalized/date" "^3.5.4" + "@internationalized/number" "^3.5.3" + "@tanstack/vue-virtual" "^3.5.0" + "@vueuse/core" "^10.5.0" + "@vueuse/shared" "^10.5.0" + aria-hidden "^1.2.3" + defu "^6.1.4" + fast-deep-equal "^3.1.3" + nanoid "^5.0.6" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + +readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +resolve@^1.1.7, resolve@^1.22.2: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rollup@^4.20.0: + version "4.37.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.37.0.tgz#e4172f8bdb6ea7df08a1b0acf99abeccb2250378" + integrity sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg== + dependencies: + "@types/estree" "1.0.6" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.37.0" + "@rollup/rollup-android-arm64" "4.37.0" + "@rollup/rollup-darwin-arm64" "4.37.0" + "@rollup/rollup-darwin-x64" "4.37.0" + "@rollup/rollup-freebsd-arm64" "4.37.0" + "@rollup/rollup-freebsd-x64" "4.37.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.37.0" + "@rollup/rollup-linux-arm-musleabihf" "4.37.0" + "@rollup/rollup-linux-arm64-gnu" "4.37.0" + "@rollup/rollup-linux-arm64-musl" "4.37.0" + "@rollup/rollup-linux-loongarch64-gnu" "4.37.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.37.0" + "@rollup/rollup-linux-riscv64-gnu" "4.37.0" + "@rollup/rollup-linux-riscv64-musl" "4.37.0" + "@rollup/rollup-linux-s390x-gnu" "4.37.0" + "@rollup/rollup-linux-x64-gnu" "4.37.0" + "@rollup/rollup-linux-x64-musl" "4.37.0" + "@rollup/rollup-win32-arm64-msvc" "4.37.0" + "@rollup/rollup-win32-ia32-msvc" "4.37.0" + "@rollup/rollup-win32-x64-msvc" "4.37.0" + fsevents "~2.3.2" + +rope-sequence@^1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.4.tgz#df85711aaecd32f1e756f76e43a415171235d425" + integrity sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +showdown@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/showdown/-/showdown-2.1.0.tgz#1251f5ed8f773f0c0c7bfc8e6fd23581f9e545c5" + integrity sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ== + dependencies: + commander "^9.0.0" + +signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +socket.io-client@^4.5.1: + version "4.7.5" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.7.5.tgz#919be76916989758bdc20eec63f7ee0ae45c05b7" + integrity sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.2" + engine.io-client "~6.5.2" + socket.io-parser "~4.2.4" + +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + +source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +sucrase@^3.32.0: + version "3.35.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "^10.3.10" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tailwindcss@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.3.tgz#be48f5283df77dfced705451319a5dffb8621519" + integrity sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.5.3" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.3.0" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.21.0" + lilconfig "^2.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" + postcss-selector-parser "^6.0.11" + resolve "^1.22.2" + sucrase "^3.32.0" + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +tippy.js@^6.3.7: + version "6.3.7" + resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-6.3.7.tgz#8ccfb651d642010ed9a32ff29b0e9e19c5b8c61c" + integrity sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ== + dependencies: + "@popperjs/core" "^2.9.0" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +tslib@^2.0.0, tslib@^2.4.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +typescript@^5.0.2: + version "5.8.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.2.tgz#8170b3702f74b79db2e5a96207c15e65807999e4" + integrity sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ== + +typescript@^5.4.5: + version "5.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== + +update-browserslist-db@^1.0.13: + version "1.0.16" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" + integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +vite@^5.4.10: + version "5.4.15" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.15.tgz#2941547f10ebb4bf9b0fa0da863c06711eb7e5e5" + integrity sha512-6ANcZRivqL/4WtwPGTKNaosuNJr5tWiftOC7liM7G9+rMb8+oeJeyzymDu4rTN93seySBmbjSfsS3Vzr19KNtA== + dependencies: + esbuild "^0.21.3" + postcss "^8.4.43" + rollup "^4.20.0" + optionalDependencies: + fsevents "~2.3.3" + +vue-demi@>=0.13.0, vue-demi@>=0.14.7: + version "0.14.7" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.7.tgz#8317536b3ef74c5b09f268f7782e70194567d8f2" + integrity sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA== + +vue-router@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.3.2.tgz#08096c7765dacc6832f58e35f7a081a8b34116a7" + integrity sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q== + dependencies: + "@vue/devtools-api" "^6.5.1" + +vue@^3.5.12: + version "3.5.13" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.13.tgz#9f760a1a982b09c0c04a867903fc339c9f29ec0a" + integrity sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ== + dependencies: + "@vue/compiler-dom" "3.5.13" + "@vue/compiler-sfc" "3.5.13" + "@vue/runtime-dom" "3.5.13" + "@vue/server-renderer" "3.5.13" + "@vue/shared" "3.5.13" + +w3c-keyname@^2.2.0: + version "2.2.8" + resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5" + integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +ws@~8.11.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" + integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== + +xmlhttprequest-ssl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" + integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== + +yaml@^2.3.4: + version "2.4.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.2.tgz#7a2b30f2243a5fc299e1f14ca58d475ed4bc5362" + integrity sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA== diff --git a/apps/erpnext/src/hrms/yarn.lock b/apps/erpnext/src/hrms/yarn.lock new file mode 100644 index 000000000..91f2a557f --- /dev/null +++ b/apps/erpnext/src/hrms/yarn.lock @@ -0,0 +1,37 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +base64-arraybuffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc" + integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ== + +css-line-break@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-line-break/-/css-line-break-2.1.0.tgz#bfef660dfa6f5397ea54116bb3cb4873edbc4fa0" + integrity sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w== + dependencies: + utrie "^1.0.2" + +html2canvas@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/html2canvas/-/html2canvas-1.4.1.tgz#7cef1888311b5011d507794a066041b14669a543" + integrity sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA== + dependencies: + css-line-break "^2.1.0" + text-segmentation "^1.0.3" + +text-segmentation@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/text-segmentation/-/text-segmentation-1.0.3.tgz#52a388159efffe746b24a63ba311b6ac9f2d7943" + integrity sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw== + dependencies: + utrie "^1.0.2" + +utrie@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/utrie/-/utrie-1.0.2.tgz#d42fe44de9bc0119c25de7f564a6ed1b2c87a645" + integrity sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw== + dependencies: + base64-arraybuffer "^1.0.2"

            XmO^W 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%0D#sB)t`ax+T%c#|+Z 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�qry2T$e(bkZpjq2}hi>UVRU8RB_ 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

            (yZ#yY)%aY99MZ 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

            adG_j-s&GUD~D*QHb5 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%0AmAzNyP=&h?*1P;)HG; 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≪jg0)Zxu}GfTQv?eI6Tx+j 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 lHnd-*3V#^dqZ@9*$%fs63 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